More uwin skin updates
authordbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Mon, 18 Apr 2011 18:25:51 +0000 (18:25 +0000)
committerdbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Mon, 18 Apr 2011 18:25:51 +0000 (18:25 +0000)
* Fix non-wellformed XML in opac/skin/uwin/xml/result/result_table.xml
* Add the RSDETAIL declaration and XML pages corresponding to this

git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/branches/rel_2_0@1383 6d9bc8c9-1ec2-4278-b937-99fde70a366f

web/opac/common/js/config.js [new file with mode: 0644]
web/opac/skin/uwin/js/result_common.js
web/opac/skin/uwin/xml/page_rsdetail.xml [new file with mode: 0644]
web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml [new file with mode: 0644]
web/opac/skin/uwin/xml/result/result_table.xml

diff --git a/web/opac/common/js/config.js b/web/opac/common/js/config.js
new file mode 100644 (file)
index 0000000..6a76c2c
--- /dev/null
@@ -0,0 +1,450 @@
+/* Export some constants  ----------------------------------------------------- */
+
+var SHOW_MR_DEFAULT = false; /* true if we show metarecords by default */
+
+//var DO_AUTHORITY_LOOKUPS = false;
+var DO_AUTHORITY_LOOKUPS = true;
+
+var STAFF_WEB_BASE_PATH = '/eg'; // root of the web-based staff interfaces
+
+/* URL param names */
+var PARAM_TERM                 = "t";                  /* search term */
+var PARAM_FACET                        = "ft";                 /* facet term */
+var PARAM_STYPE                = "tp";                 /* search type */
+var PARAM_LOCATION     = "l";                  /* current location */
+var PARAM_LASSO        = "sg";                 /* current location */
+var PARAM_DEPTH                = "d";                  /* search depth */
+var PARAM_FORM                 = "f";                  /* search format */
+var PARAM_OFFSET               = "o";                  /* search offset */
+var PARAM_COUNT                = "c";                  /* hits per page */
+var PARAM_HITCOUNT     = "hc";                 /* hits per page */
+var PARAM_MRID                 = "m";                  /* metarecord id */
+var PARAM_RID                  = "r";                  /* record id */
+var PARAM_RLIST                = "rl";
+var PARAM_ORIGLOC              = "ol";                 /* the original location */
+var PARAM_AUTHTIME     = "at";                 /* inactivity timeout in seconds */
+var PARAM_ADVTERM              = "adv";                        /* advanced search term */
+var PARAM_ADVTYPE              = "adt";                        /* the advanced search type */
+var PARAM_RTYPE                = "rt";
+var PARAM_SORT                 = "s";
+var PARAM_SORT_DIR     = "sd";
+var PARAM_DEBUG                = "dbg";
+var PARAM_CN                   = "cn";
+var PARAM_LITFORM              = 'lf';
+var PARAM_ITEMFORM     = 'if';
+var PARAM_ITEMTYPE     = 'it';
+var PARAM_BIBLEVEL     = 'bl';
+var PARAM_AUDIENCE     = 'a';
+var PARAM_SEARCHES     = 'ss';
+var PARAM_LANGUAGE     = 'la';
+var PARAM_TFORM                = 'tf'; /* temporary format for title result pages */
+var PARAM_RDEPTH               = 'rd';
+var PARAM_REDIR                = 're'; /* true if we have been redirected by IP (we're at a real lib) */
+var PARAM_AVAIL     = 'av'; /* limit search results to available items */
+var PARAM_COPYLOCS  = 'cl'; // copy (shelving) locations
+var PARAM_PUBD_BEFORE = 'pdb';
+var PARAM_PUBD_AFTER = 'pda';
+var PARAM_PUBD_BETWEEN = 'pdt';
+var PARAM_PUBD_DURING = 'pdd';
+var PARAM_NOPERSIST_SEARCH = 'nps';
+
+/* URL param values (see comments above) */
+var TERM;  
+var FACET;  
+var STYPE;  
+var LOCATION;  
+var LASSO;  
+var DEPTH;  
+var FORM; 
+var OFFSET;
+var COUNT;  
+var HITCOUNT;  
+var RANKS; 
+var FONTSIZE;
+var ORIGLOC;
+var AUTHTIME;
+var ADVTERM;
+var ADVTYPE;
+var MRID;
+var RID;
+var RTYPE;
+var SORT;
+var SORT_DIR;
+var RLIST;
+var DEBUG;
+var CALLNUM;
+var LITFORM;
+var ITEMFORM;
+var ITEMTYPE;
+var BIBLEVEL;
+var AUDIENCE;
+var SEARCHES;
+var LANGUAGE;
+var TFORM;
+var RDEPTH;
+var AVAIL;
+var COPYLOCS;
+var PUBD_BEFORE;
+var PUBD_AFTER;
+var PUBD_BETWEEN;
+var PUBD_DURING;
+
+/* cookie values */
+var SBEXTRAS; 
+var SKIN;
+
+/* cookies */
+var COOKIE_SB          = "sbe";
+var COOKIE_SES         = "ses";
+//var COOKIE_IDS               = "ids"; /* list of mrecord ids */
+//var COOKIE_SRIDS     = "srids"; /* record ids cached from a search */
+var COOKIE_FONT        = "fnt";
+var COOKIE_SKIN        = "skin";
+var COOKIE_RIDS        = "rids"; /* list of record ids */
+var COOKIE_SEARCH = 'sr';
+
+/* pages */
+var MRESULT            = "mresult";
+var RRESULT            = "rresult";
+var RDETAIL            = "rdetail";
+var RSDETAIL           = "rsdetail";
+var MYOPAC             = "myopac";
+var ADVANCED   = "advanced";
+var HOME                       = "home";
+var BBAGS              = "bbags";
+var REQITEMS   = "reqitems";
+var CNBROWSE   = "cnbrowse";
+
+/* search type (STYPE) options */
+var STYPE_AUTHOR       = "author";
+var STYPE_TITLE        = "title";
+var STYPE_SUBJECT      = "subject";
+var STYPE_SERIES       = "series";
+var STYPE_KEYWORD      = "keyword";
+
+/* record-level search types */
+var RTYPE_MRID         = "mrid";
+var RTYPE_COOKIE       = "cookie";
+var RTYPE_AUTHOR       = STYPE_AUTHOR;
+var RTYPE_SUBJECT      = STYPE_SUBJECT;
+var RTYPE_TITLE        = STYPE_TITLE;
+var RTYPE_SERIES       = STYPE_SERIES;
+var RTYPE_KEYWORD      = STYPE_KEYWORD;
+var RTYPE_LIST         = "list";
+var RTYPE_MULTI        = 'multi';
+var RTYPE_MARC         = 'marc';
+var RTYPE_ISBN         = 'isbn';
+var RTYPE_ISSN         = 'issn';
+var RTYPE_TCN          = 'tcn';
+
+var SORT_TYPE_REL                      = "rel";
+var SORT_TYPE_AUTHOR           = STYPE_AUTHOR; 
+var SORT_TYPE_TITLE            = STYPE_TITLE;
+var SORT_TYPE_PUBDATE  = "pubdate";
+var SORT_DIR_ASC                       = "asc";
+var SORT_DIR_DESC                      = "desc";
+
+/* types of advanced search */
+var ADVTYPE_MULTI = 'ml';
+var ADVTYPE_MARC       = 'ma';
+
+/*
+var ADVTYPE_ISBN       = 'isbn';
+var ADVTYPE_ISSN       = 'issn';
+*/
+
+var LOGOUT_WARNING_TIME = 30; /* "head up" for session timeout */
+
+/* user preferences */
+var PREF_HITS_PER              = 'opac.hits_per_page';
+var PREF_DEF_FONT              = 'opac.default_font';
+var PREF_HOLD_NOTIFY = 'opac.hold_notify';
+var PREF_DEF_LOCATION = 'opac.default_search_location';
+var PREF_DEF_DEPTH     = 'opac.default_search_depth';
+
+
+/** If enabled, added content attribution links will be 
+    made visible where appropriate.  The added content vendor name 
+    and URL are defined in the entities in opac.dtd
+    */
+var ENABLE_ADDED_CONTENT_ATTRIB_LINKS = false;
+
+
+/* container for global variables shared accross pages */
+var G          = {};
+G.user = null; /* global user object */
+G.ui           = {} /* cache of UI components */
+
+
+/* regexes */
+var REGEX_BARCODE = /^\d+/; /* starts with a number */
+var REGEX_PHONE = /^\d{3}-\d{3}-\d{4}$/; /* 111-222-3333 */
+
+
+/* call me after page init and I will load references 
+       to all of the ui object id's defined below 
+       They will be stored in G.ui.<page>.<thingy>
+ */
+function loadUIObjects() {
+       for( var p in config.ids ) {
+               G.ui[p] = {};
+               for( var o in config.ids[p] ) 
+                       G.ui[p][o] = getId(config.ids[p][o]);
+       }
+}
+
+/* try our best to free memory */
+function clearUIObjects() {
+       for( var p in config.ids ) {
+               for( var o in config.ids[p] ) {
+                       if(G.ui[p][o]) {
+                               G.ui[p][o].onclick = null;
+                               G.ui[p][o].onkeydown = null;
+                               G.ui[p][o] = null;
+                       }
+               }
+               G.ui[p] = null;
+       }
+}
+
+/* ---------------------------------------------------------------------------- 
+       Set up ID's and CSS classes 
+       Any new ids, css, etc. may be added by giving the unique names and putting 
+       them into the correct scope 
+/* ---------------------------------------------------------------------------- */
+
+var config = {};
+
+/* Set up the page names */
+config.page = {};
+config.page[HOME]                      = "index.xml";
+config.page[ADVANCED]  = "advanced.xml";
+config.page[MRESULT]           = "mresult.xml";
+config.page[RRESULT]           = "rresult.xml";
+config.page[MYOPAC]            = "myopac.xml";
+config.page[RDETAIL]           = "rdetail.xml";
+config.page[RSDETAIL]          = "rsdetail.xml";
+config.page[BBAGS]             = "bbags.xml";
+config.page[REQITEMS]  = "reqitems.xml";
+config.page[CNBROWSE]  = "cnbrowse.xml";
+
+/* themes */
+config.themes = {};
+
+/* set up images  */
+config.images = {};
+config.images.logo = "main_logo.jpg";
+
+
+/* set up ID's, CSS, and node names */
+config.ids                             = {};
+config.ids.result              = {};
+config.ids.mresult     = {};
+config.ids.advanced    = {};
+config.ids.rresult     = {};
+config.ids.myopac              = {};
+config.ids.rdetail     = {};
+
+config.css                             = {};
+config.css.result              = {};
+config.css.mresult     = {};
+config.css.advanced    = {};
+config.css.rresult     = {};
+config.css.myopac              = {};
+config.css.rdetail     = {};
+
+config.names                   = {};
+config.names.result    = {};
+config.names.mresult = {};
+config.names.advanced = {};
+config.names.rresult = {};
+config.names.myopac    = {};
+config.names.rdetail = {};
+
+
+/* id's shared accross skins. These *must* be defined */
+config.ids.common = {};
+config.ids.common.loading                      = "loading_div";                
+config.ids.common.canvas                       = "canvas";                             
+config.ids.common.canvas_main          = "canvas_main";                
+config.ids.common.org_tree                     = "org_tree";                   
+config.ids.common.org_container        = "org_container";
+
+config.ids.xul = {};
+
+
+/* shared CSS */
+config.css.hide_me = "hide_me";
+config.css.dim = "dim";
+config.css.dim2 = "dim2";
+
+
+/* ---------------------------------------------------------------------------- */
+/* These are pages that may replace the canvas */
+/* ---------------------------------------------------------------------------- */
+config.ids.altcanvas = {};
+
+
+
+/* ---------------------------------------------------------------------------- */
+/* Methods are defined as service:method 
+       An optional 3rd component is when a method is followed by a :1, such methods
+       have a staff counterpart and should have ".staff" appended to the method 
+       before the method is called when in XUL mode */
+
+var SEARCH_MRS                                         = 'open-ils.search:open-ils.search.metabib.multiclass:1';
+var SEARCH_RS                                          = 'open-ils.search:open-ils.search.biblio.multiclass:1';
+var SEARCH_MRS_QUERY                   = 'open-ils.search:open-ils.search.metabib.multiclass.query:1';
+var SEARCH_RS_QUERY             = 'open-ils.search:open-ils.search.biblio.multiclass.query:1';
+var FETCH_SEARCH_RIDS                  = "open-ils.search:open-ils.search.biblio.record.class.search:1";
+var CREATE_MFHD_RECORD                 = "open-ils.cat:open-ils.cat.serial.record.xml.create";
+var DELETE_MFHD_RECORD                 = "open-ils.cat:open-ils.cat.serial.record.delete";
+var FETCH_MFHD_SUMMARY                 = "open-ils.search:open-ils.search.serial.record.bib.retrieve";
+var FETCH_MRMODS                                       = "open-ils.search:open-ils.search.biblio.metarecord.mods_slim.retrieve";
+var FETCH_MODS_FROM_COPY               = "open-ils.search:open-ils.search.biblio.mods_from_copy";
+var FETCH_MR_COPY_COUNTS               = "open-ils.search:open-ils.search.biblio.metarecord.copy_count:1";
+var FETCH_RIDS                                         = "open-ils.search:open-ils.search.biblio.metarecord_to_records:1";
+var FETCH_RMODS                                        = "open-ils.search:open-ils.search.biblio.record.mods_slim.retrieve";
+var FETCH_R_COPY_COUNTS                        = "open-ils.search:open-ils.search.biblio.record.copy_count:1";
+var FETCH_FLESHED_USER                 = "open-ils.actor:open-ils.actor.user.fleshed.retrieve";
+var FETCH_SESSION                                      = "open-ils.auth:open-ils.auth.session.retrieve";
+var LOGIN_INIT                                         = "open-ils.auth:open-ils.auth.authenticate.init";
+var LOGIN_COMPLETE                             = "open-ils.auth:open-ils.auth.authenticate.complete";
+var LOGIN_DELETE                                       = "open-ils.auth:open-ils.auth.session.delete";
+var FETCH_USER_PREFS                           = "open-ils.actor:open-ils.actor.patron.settings.retrieve"; 
+var UPDATE_USER_PREFS                  = "open-ils.actor:open-ils.actor.patron.settings.update"; 
+var FETCH_COPY_STATUSES                        = "open-ils.search:open-ils.search.config.copy_status.retrieve.all";
+var FETCH_COPY_LOCATION_COUNTS_SUMMARY = "open-ils.search:open-ils.search.biblio.copy_location_counts.summary.retrieve";
+var FETCH_COPY_COUNTS_SUMMARY  = "open-ils.search:open-ils.search.biblio.copy_counts.summary.retrieve";
+//var FETCH_COPY_COUNTS_SUMMARY        = "open-ils.search:open-ils.search.biblio.copy_counts.location.summary.retrieve";
+var FETCH_MARC_HTML                            = "open-ils.search:open-ils.search.biblio.record.html";
+var FETCH_CHECKED_OUT_SUM              = "open-ils.actor:open-ils.actor.user.checked_out";
+var FETCH_HOLDS                                        = "open-ils.circ:open-ils.circ.holds.retrieve";
+var FETCH_FINES_SUMMARY                        = "open-ils.actor:open-ils.actor.user.fines.summary";
+var FETCH_TRANSACTIONS                 = "open-ils.actor:open-ils.actor.user.transactions.have_charge.fleshed";
+var FETCH_MONEY_BILLING                        = 'open-ils.circ:open-ils.circ.money.billing.retrieve.all';
+var FETCH_CROSSREF                             = "open-ils.search:open-ils.search.authority.crossref";
+var FETCH_CROSSREF_BATCH               = "open-ils.search:open-ils.search.authority.crossref.batch";
+var CREATE_HOLD                                        = "open-ils.circ:open-ils.circ.holds.create";
+var CREATE_HOLD_OVERRIDE               = "open-ils.circ:open-ils.circ.holds.create.override";
+var CANCEL_HOLD                                        = "open-ils.circ:open-ils.circ.hold.cancel";
+var UPDATE_USERNAME                            = "open-ils.actor:open-ils.actor.user.username.update";
+var UPDATE_PASSWORD                            = "open-ils.actor:open-ils.actor.user.password.update";
+var UPDATE_EMAIL                                       = "open-ils.actor:open-ils.actor.user.email.update";
+var RENEW_CIRC                                         = "open-ils.circ:open-ils.circ.renew";
+var CHECK_SPELL                                        = "open-ils.search:open-ils.search.spellcheck";
+var FETCH_REVIEWS                                      = "open-ils.search:open-ils.search.added_content.review.retrieve.all";
+var FETCH_TOC                                          = "open-ils.search:open-ils.search.added_content.toc.retrieve";
+var FETCH_ACONT_SUMMARY                        = "open-ils.search:open-ils.search.added_content.summary.retrieve";
+var FETCH_USER_BYBARCODE               = "open-ils.actor:open-ils.actor.user.fleshed.retrieve_by_barcode";
+var FETCH_ADV_MARC_MRIDS               = "open-ils.search:open-ils.search.biblio.marc:1";
+var FETCH_ADV_ISBN_RIDS                        = "open-ils.search:open-ils.search.biblio.isbn";
+var FETCH_ADV_ISSN_RIDS                        = "open-ils.search:open-ils.search.biblio.issn";
+var FETCH_ADV_TCN_RIDS                 = "open-ils.search:open-ils.search.biblio.tcn";
+var FETCH_CNBROWSE                             = 'open-ils.search:open-ils.search.callnumber.browse';
+var FETCH_CONTAINERS                           = 'open-ils.actor:open-ils.actor.container.retrieve_by_class';
+var FETCH_CONTAINERS                           = 'open-ils.actor:open-ils.actor.container.retrieve_by_class';
+var CREATE_CONTAINER                           = 'open-ils.actor:open-ils.actor.container.create';
+var DELETE_CONTAINER                           = 'open-ils.actor:open-ils.actor.container.full_delete';
+var CREATE_CONTAINER_ITEM              = 'open-ils.actor:open-ils.actor.container.item.create';
+var DELETE_CONTAINER_ITEM              = 'open-ils.actor:open-ils.actor.container.item.delete';
+var FLESH_CONTAINER                            = 'open-ils.actor:open-ils.actor.container.flesh';
+var FLESH_PUBLIC_CONTAINER             = 'open-ils.actor:open-ils.actor.container.public.flesh';
+var UPDATE_CONTAINER                           = 'open-ils.actor:open-ils.actor.container.update';
+var FETCH_COPY                                         = 'open-ils.search:open-ils.search.asset.copy.retrieve';
+var FETCH_FLESHED_COPY                 = 'open-ils.search:open-ils.search.asset.copy.fleshed2.retrieve';
+var CHECK_HOLD_POSSIBLE                        = 'open-ils.circ:open-ils.circ.title_hold.is_possible';
+var UPDATE_HOLD                                        = 'open-ils.circ:open-ils.circ.hold.update';
+var FETCH_COPIES_FROM_VOLUME   = 'open-ils.search:open-ils.search.asset.copy.retrieve_by_cn_label:1';
+var FETCH_VOLUME_BY_INFO               = 'open-ils.search:open-ils.search.call_number.retrieve_by_info'; /* XXX staff method? */
+var FETCH_VOLUME                                       = 'open-ils.search:open-ils.search.asset.call_number.retrieve';
+var FETCH_ISSUANCE                                     = 'open-ils.serial:open-ils.serial.issuance.pub_fleshed.batch.retrieve';
+var FETCH_COPY_LOCATIONS               = 'open-ils.circ:open-ils.circ.copy_location.retrieve.all';
+var FETCH_COPY_NOTES                           = 'open-ils.circ:open-ils.circ.copy_note.retrieve.all';
+var FETCH_COPY_STAT_CATS               = 'open-ils.circ:open-ils.circ.asset.stat_cat_entries.fleshed.retrieve_by_copy';
+var FETCH_LIT_FORMS                            = 'open-ils.search:open-ils.search.biblio.lit_form_map.retrieve.all';
+var FETCH_ITEM_FORMS                           = 'open-ils.search:open-ils.search.biblio.item_form_map.retrieve.all';
+var FETCH_ITEM_TYPES                           = 'open-ils.search:open-ils.search.biblio.item_type_map.retrieve.all';
+var FETCH_BIB_LEVELS                           = 'open-ils.search:open-ils.search.biblio.bib_level_map.retrieve.all';
+var FETCH_AUDIENCES                            = 'open-ils.search:open-ils.search.biblio.audience_map.retrieve.all';
+//var FETCH_HOLD_STATUS                        = 'open-ils.circ:open-ils.circ.hold.status.retrieve';
+var FETCH_HOLD_STATUS                  = 'open-ils.circ:open-ils.circ.hold.queue_stats.retrieve';
+var FETCH_NON_CAT_CIRCS                        = 'open-ils.circ:open-ils.circ.open_non_cataloged_circulation.user';
+var FETCH_NON_CAT_CIRC                 = 'open-ils.circ:open-ils.circ.non_cataloged_circulation.retrieve';
+var FETCH_NON_CAT_TYPES                        = "open-ils.circ:open-ils.circ.non_cat_types.retrieve.all";
+var FETCH_BRE                                          = 'open-ils.search:open-ils.search.biblio.record_entry.slim.retrieve';
+var CHECK_USERNAME                             = 'open-ils.actor:open-ils.actor.username.exists';
+var FETCH_CIRC_BY_ID                           = 'open-ils.circ:open-ils.circ.retrieve';
+var FETCH_MR_DESCRIPTORS               = 'open-ils.search:open-ils.search.metabib.record_to_descriptors';
+var FETCH_HIGHEST_PERM_ORG             = 'open-ils.actor:open-ils.actor.user.perm.highest_org.batch';
+var FETCH_USER_NOTES                           = 'open-ils.actor:open-ils.actor.note.retrieve.all';
+var FETCH_ORG_BY_SHORTNAME             = 'open-ils.actor:open-ils.actor.org_unit.retrieve_by_shortname';
+var FETCH_BIB_ID_BY_BARCODE = 'open-ils.search:open-ils.search.bib_id.by_barcode';
+var FETCH_ORG_SETTING = 'open-ils.actor:open-ils.actor.ou_setting.ancestor_default';
+
+/* ---------------------------------------------------------------------------- */
+
+
+/* ---------------------------------------------------------------------------- */
+/* event callback functions. Other functions may be appended to these vars to
+       for added functionality.  */
+
+G.evt                          = {}; /* events container */
+
+function runEvt(scope, name, a, b, c, d, e, f, g) {
+       var evt = G.evt[scope][name];
+       for( var i in evt ) {
+               evt[i](a, b, c, d, e, f, g);    
+       }
+}
+
+/* creates a new event if it doesn't already exist */
+function createEvt(scope, name) {
+       if(!G.evt[scope]) G.evt[scope] = {};
+       if(G.evt[scope][name] == null)
+               G.evt[scope][name] = []; 
+}
+
+function attachEvt(scope, name, action) {
+       createEvt(scope, name);
+       G.evt[scope][name].push(action);
+}
+
+function detachAllEvt(scope, name) {
+       G.evt[scope][name] = [];
+}
+
+
+createEvt("common", "init");                                           /* f() : what happens on page init */
+createEvt("common", "pageRendered");                   /* f() : what happens when the page is done (up to the skin to call this even)*/
+createEvt("common", "unload");                                 /* f() : what happens on window unload (clean memory, etc.)*/
+createEvt("common", "locationChanged");                /* f() : what happens when the location has changed */
+createEvt("common", "locationUpdated");                /* f() : what happens when the location has updated by the code */
+
+createEvt("common", "run");                                            /* f() : make the page do stuff */
+createEvt("result", "idsReceived");                            /* f(ids) */
+createEvt("rresult", "recordDrawn");                   /* f(recordid, linkDOMNode) : after record is drawn, allow others (xul) to plugin actions */
+createEvt("result", "preCollectRecords");              /* f() we're about to go and grab the recs */
+
+createEvt("result", "hitCountReceived");               /* f() : display hit info, pagination, etc. */
+createEvt("result", "recordReceived");                 /* f(mvr, pagePosition, isMr) : display the record*/
+createEvt("result", "recordDrawn");                            /* f(recordid, linkDOMNode) : after record is drawn, allow others (xul) to plugin actions */
+createEvt("result", "copyCountsReceived");     /* f(mvr, pagePosition, copyCountInfo) : display copy counts*/
+createEvt("result", "allRecordsReceived");     /* f(mvrsArray) : add other page stuff, sidebars, etc.*/
+
+createEvt("rdetail", "recordDrawn");                   /* f() : the record has been drawn */
+
+createEvt("common", "loggedIn");                                       /* f() : user has just logged in */
+createEvt('result', 'zeroHits');
+createEvt('result', 'lowHits');
+createEvt('rdetail', 'recordRetrieved');                       /* we are about to draw the rdetail page */
+createEvt('common', 'depthChanged');
+createEvt('common', 'holdUpdated'); 
+createEvt('common', 'holdUpdateCanceled'); 
+
+createEvt('rdetail', 'nextPrevDrawn');
+
+
+
+
+
index bba9257..e7df882 100644 (file)
@@ -656,6 +656,7 @@ function resultDisplayRecord(rec, pos, is_mr) {
        } else {
                onlyrec = rec.doc_id();
                buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', onlyrec);
+               var copyCnt = sortOutCopies(getLocation(), onlyrec, null);
 
                buildResultTitleDetailLink(rec, title_link, copyCnt); 
                var args = {};
diff --git a/web/opac/skin/uwin/xml/page_rsdetail.xml b/web/opac/skin/uwin/xml/page_rsdetail.xml
new file mode 100644 (file)
index 0000000..94dd235
--- /dev/null
@@ -0,0 +1,88 @@
+<div id='canvas_main' class='canvas'>
+
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/sidebar_extras.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/result_common.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rresult.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/rdetail.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/holds.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/cn_browse.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/container.js'></script>
+       <script language='javascript' type='text/javascript' src='<!--#echo var="OILS_OPAC_JS_HOST"-->/skin/uwin/js/bibtemplate.js'></script>
+
+       <script language='javascript' type='text/javascript'>
+               config.ids.rdetail = {};
+               config.ids.rdetail.view_marc = "rdetail_view_marc";
+       </script>
+
+       <table width='100%' id='np_table' class='hide_me' style='margin-top: 3px;'>
+               <tbody>
+                       <tr class='color_4' style='height: 1em;'>
+                               <td style='vertical-align: top;'>
+
+                                       <span>
+                                               &rdetail.result; <span id='np_offset'> </span>
+                                               <span> &common.of; </span>
+                                               <span id='np_count'> </span>
+                                       </span>
+       
+                                       <span style='padding-left: 40px;' >
+                                               <a class='np_nav_link classic_link hide_me' id='np_start'
+                                                       href='javascript:rdetailStart();' title="&rdetail.page.results;">&rdetail.start;</a>
+                                               <a class='np_nav_link classic_link hide_me' id='np_prev'
+                                                       href='javascript:rdetailPrev();' title='&rdetail.page.previous;'>&lt;&lt; &rdetail.page.previous;</a>
+                                               <span> </span>
+                                               <a  class='np_nav_link classic_link hide_me' id='np_next'
+                                                       href='javascript:rdetailNext();' title='&rdetail.page.next;'>&rdetail.page.next; &gt;&gt;</a>
+                                               <a class='np_nav_link classic_link hide_me' id='np_end'
+                                                       href='javascript:rdetailEnd();' title="&rdetail.page.last;">&rdetail.end;</a>
+                                       </span>
+       
+                               </td>
+                       </tr>
+               </tbody>
+       </table>
+
+       <table style='' class='rdetail_header color_1' width='100%'>
+               <tbody>
+
+                       <tr>
+                               <td width='33%' align='left'>
+                                       <span>&rdetail.detailMain.headerLabel;</span>
+                               </td>
+
+                               <td align='right' style='padding-right: 7px;' width='33%'>
+                                       <span id='rdetail_exp_refworks_span' class='hide_me' style='padding-right: 7px;'>
+                                               <a id='rdetail_exp_refworks'>&opac.holds.exportRefWorks;</a>
+                                       </span>
+                                       <span style='padding-right: 7px;'>
+                                               <a id='rdetail_place_hold' class='classic_link'>&opac.holds.placeHold;</a>
+                                       </span>
+                                       <span style='padding-right: 7px;' class='hide_me' id='rdetail_more_actions'>
+                                               <select id='rdetail_more_actions_selector' style='max-width: 11em;'>
+                                                       <option value='start'>&rdetail.more;</option>
+                                                       <option disabled='disabled'>--------------</option>
+                                                       <option disabled='disabled'>&rdetail.bookbag.add;</option>
+                                                       <option disabled='disabled'>--------------</option>
+                                                       <option value='new_bookbag' onclick='rdetailNewBookbag();'>&rdetail.bookbag.create;</option>
+                                               </select>
+                                       </span>
+
+                               </td>
+                       </tr>
+               </tbody>
+       </table>
+
+       <div style='font-weight: bold; padding: 5px; margin: 5px; width: 100%;' 
+               class='hide_me color_4' id='rdetail_deleted_exp'>
+               &rdetail.record.deleted;
+       </div>
+
+       <!--#include virtual="rdetail/rdetail_subset_summary.xml"-->
+       <!--#include virtual="rdetail/rdetail_extras.xml"-->
+
+       <div class='hide_me' id='rdetail_bb_none'>&rdetail.none;</div>
+       <div class='hide_me' id='rdetail_bb_item_success'>&rdetail.bookbag.add.success;</div>
+       <div class='hide_me' id='rdetail_bb_new'>&rdetail.bookbag.name;</div>
+       <div class='hide_me' id='rdetail_bb_success'>&rdetail.bookbag.create.success;</div>
+
+</div>
diff --git a/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml b/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml
new file mode 100644 (file)
index 0000000..b548efb
--- /dev/null
@@ -0,0 +1,471 @@
+
+<abbr name="unapi" class="unapi-id" title='tag:<!--#echo var="HTTP_HOST"-->,<!--#echo var="OILS_TIME_YEAR"-->:biblio-record_entry/<!--#echo var="OILS_OPAC_RID"-->'></abbr>
+<!-- This holds the record summary information -->
+<div>
+       <!-- Hack to give IE somewhere to put these things; should just rip out from rdetail.js -->
+       <span class='hide_me' id='rdetail_title'></span>
+       <span class='hide_me' id='rdetail_isbn'></span>
+       <span class='hide_me' id='rdetail_publisher'></span>
+       <span class='hide_me' id='rdetail_abstract'></span>
+       <span class='hide_me' id='rdetail_edition'></span>
+       <table id='rdetail_details_table'>
+               <tbody id='rdetail_details_tbody'>
+
+                       <tr>
+                               <td id='rdetail_image_cell' rowspan='40'>
+                                       <a id='rdetail_img_link'>
+                                               <img style='border: none;' id='rdetail_image' 
+                            onerror='
+                                hideMe($("rdetail.jacket_attrib_div"));
+                                hideMe($("rdetail_img_link"));'/>
+                                       </a>
+                    <!-- vendor attribution link -->
+                    <div class='jacket_attrib hide_me' id='rdetail.jacket_attrib_div'>
+                        <div>&opac.image_provided;</div>
+                        <div><a target='_blank' href='&vendor.base_link;' 
+                            class='classic_link' id='rdetail.jacket_attrib_link'>&vendor.name;</a></div>
+                    </div>
+                               </td>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.title;</td>            
+                                <td type='opac/slot-data' query='datafield[tag=245]' class='rdetail_item'>
+                                         <script type='opac/slot-format'><![CDATA[
+                                               var rdetail_bib_title = dojox.data.dom.textContent(item);
+                                               var title_node = dojo.query('head title');
+                                               dojo.addOnLoad(function() {dojo.place('<title>' + rdetail_bib_title + '</title>', title_node[0], 'replace');});
+                                                return '<span>' + rdetail_bib_title + '</span><br/>';
+                                        ]]></script>
+                                </td>
+                       </tr>
+
+                       <tr class='hide_me' id='tag246'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.alternate.title;</td>
+                               <td type='opac/slot-data' query='datafield[tag=246] subfield[code=a]' class='rdetail_item'>
+                                       <script type='opac/slot-format'><![CDATA[
+                                               dojo.query('#tag246').removeClass('hide_me');
+                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       ]]></script>
+                               </td>
+                       </tr>
+                       <tr class='hide_me'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>           
+                               <td class='rdetail_item'>
+                                       <a title='&rdetail.author.search;' id='rdetail_author'> </a>
+                               </td>
+                       </tr>
+                       <tr class='hide_me' id='tag100'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.author;</td>
+                               <td type='opac/slot-data' query='datafield[tag=100]' class='rdetail_item'>
+                                       <script type='opac/slot-format'><![CDATA[
+                                               dojo.query('#tag100').removeClass('hide_me');
+                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       ]]></script>
+                               </td>
+                       </tr>
+                       <tr class='hide_me' id='tag110'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.corporate.author;</td>
+                               <td type='opac/slot-data' query='datafield[tag=110]' class='rdetail_item'>
+                                       <script type='opac/slot-format'><![CDATA[
+                                               dojo.query('#tag110').removeClass('hide_me');
+                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       ]]></script>
+                               </td>
+                       </tr>
+                       <tr class='hide_me' id='tag111'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.meeting.name;</td>
+                               <td type='opac/slot-data' query='datafield[tag=111]' class='rdetail_item'>
+                                       <script type='opac/slot-format'><![CDATA[
+                                               dojo.query('#tag111').removeClass('hide_me');
+                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       ]]></script>
+                               </td>
+                       </tr>
+                       <tr class='hide_me' id='tag020'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.isbn;</td>                     
+                               <td type='opac/slot-data' query='datafield[tag=020]' class='rdetail_item'>
+                                   <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('#tag020').removeClass('hide_me');
+                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                   ]]></script>
+                               </td>
+
+                       </tr>
+                       <tr class='hide_me' id='tag022'>
+                               <td nowrap='nowrap' class='rdetail_desc' id='issn_title'>&common.issn;</td>                     
+                               <td type='opac/slot-data' query='datafield[tag=022]' class='rdetail_ite' id='rdetail_issn'>
+                                   <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('#tag022').removeClass('hide_me');
+                                       var issn_raw = dojo.trim(dojox.data.dom.textContent(item));
+
+                                       // textContent returns multiple subfields concatenated with linefeeds,
+                                       // so our regex needs to match against linefeeds. "." does not match
+                                       // linefeeds, so get \s into the mix
+                                        var issn = issn_raw.replace(/^(\s|.)*?(\d{4}).(\d{3,4}[xX]?)(\s|.)*/, "$2-$3");
+
+                                       var ses = new OpenSRF.ClientSession('open-ils.resolver');       
+                                       var req = ses.request('open-ils.resolver.resolve_holdings.raw', 'issn', issn, 'http://sfx.scholarsportal.info/windsor');        
+                                       req.oncomplete = function(r) {
+                                               var msg;
+                                               dojo.forEach(r.recv().content(), function(entry) {
+                                                       var resolverInfo = entry.public_name + "_" + entry.target_coverage;
+                                                       //uwin has a lot of duplicates for some reason
+                                                       if (url_list.indexOf(resolverInfo) == -1) {
+                                                               if (first_issn) {
+                                                                       dojo.query('#rdetail_sfx *').orphan();
+                                                                       first_issn = false;
+                                                               }
+
+                                                               dojo.place('<div style="width: 100%">'
+                                                                       + ' <a class="search_link" href="' + entry.target_url
+                                                                       + '">' + entry.public_name + '</a> - '
+                                                                       + entry.target_coverage 
+                                                                       + (entry.target_embargo ? (' / ' + entry.target_embargo) : '') 
+                                                                       + '</div>', 'rdetail_sfx');
+                                                               dojo.query('#rdetail_sfx_row').removeClass('hide_me');
+                                                               url_list += resolverInfo;
+                                                       }//if url_list
+                                               });
+                                       }
+                                       req.send();
+
+                                       return '<span>' + issn + '</span><br/>';
+                                   ]]></script>
+                               </td>
+
+                       </tr>
+
+                       <tr class='hide_me' id='tag250'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.edition;</td>
+                               <td type='opac/slot-data' query='datafield[tag=250]' class='rdetail_item'>
+                                   <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('#tag250').removeClass('hide_me');
+                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                   ]]></script>
+                           </td>
+                       </tr>
+
+                       <tr class='hide_me'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.pubdate;</td>          
+                               <td class='rdetail_item' id='rdetail_pubdate'> </td>
+                       </tr>
+
+                       <tr class='hide_me' id='tag260'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.publisher;</td>                
+                               <td type='opac/slot-data' query='datafield[tag=260]' class='rdetail_item'>
+                                   <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('#tag260').removeClass('hide_me');
+                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                   ]]></script>
+                           </td> 
+                       </tr>
+
+
+                       <tr>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.physical;</td>         
+                               <td class='rdetail_item' id='rdetail_physical_desc'> </td>
+                       </tr>
+
+                       <tr>
+                               <td nowrap='nowrap' class='rdetail_desc'>&common.format;</td>                   
+                               <td class='rdetail_item'>
+                                       <img id='rdetail_tor_pic' class='tor_pic' />
+                                       <span id='rdetail_tor' style='padding-left: 5px;'> </span>
+                               </td>
+                       </tr>
+
+                       <tr class='hide_me' id='tag520'>
+                               <td nowrap='nowrap' class='rdetail_desc'>&rdetail.detailMain.abstract;</td>     
+                               <td type='opac/slot-data' query='datafield[tag=520]' class='rdetail_item'>
+                                   <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('#tag520').removeClass('hide_me');
+                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                   ]]></script>
+                               </td>
+
+                       </tr>
+
+            <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
+                 *** summary screen with complex information, such as new search links on subjects. -->
+                <tr class='hide_me' id='tag600'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.600;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=600]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag600', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag610'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.610;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=610]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag610', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag611'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.611;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=611]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag611', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag630'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.630;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=630]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag630', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag648'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.648;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=648]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag648', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag650'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subjects;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=650]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag650', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag651'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.651;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=651]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag651', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag653'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.653;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=653]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag653', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag654'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.654;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=654]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag654', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag655'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.655;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=655]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag655', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag656'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.656;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=656]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag656', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag657'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.657;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=657]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag657', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag658'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.658;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=658]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag658', item);
+                       ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag662'>
+                        <td nowrap='nowrap' class='rdetail_desc'>&common.subject.662;</td>
+                        <td type='opac/slot-data' query='datafield[tag^=662]' class='rdetail_item'>
+                        <script type='opac/slot-format'><![CDATA[
+                               return subjectMe('#tag662', item);
+                       ]]></script>
+                       </td>
+               </tr>
+
+               <tr class='hide_me' id='tag500'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.general.note;</td>
+                       <td type='opac/slot-data' query='datafield[tag=500]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag500').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag505'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.contents.note;</td>
+                       <td type='opac/slot-data' query='datafield[tag=505]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag505').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag506'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.usage.restrictions;</td>
+                       <td type='opac/slot-data' query='datafield[tag=506] subfield[code=a]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag506').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span> ';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag511'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.performer.note;</td>
+                       <td type='opac/slot-data' query='datafield[tag=511]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag511').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag700'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.additional.authors;</td>
+                       <td type='opac/slot-data' query='datafield[tag=700]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag700').removeClass('hide_me');
+                               var text = '';
+                               var list = dojo.query( 'subfield:not([code=4])', item );
+                               for (var i =0; i < list.length; i++) {
+                                       text += dojox.data.dom.textContent(list[i]) + ' ';
+                               }
+                               return '<span>' + text + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag780'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.preceding.entry;</td>
+                       <td type='opac/slot-data' query='datafield[tag=780]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag780').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+               <tr class='hide_me' id='tag785'>
+                       <td nowrap='nowrap' class='rdetail_desc'>&common.succeeding.entry;</td>
+                       <td type='opac/slot-data' query='datafield[tag=785]' class='rdetail_item'>
+                               <script type='opac/slot-format'><![CDATA[
+                               dojo.query('#tag785').removeClass('hide_me');
+                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+                <tr id='rdetail_sfx_row' class="hide_me">
+                               <td nowrap='nowrap' class='rdetail_desc'>
+                               <div class='sfx_image'>
+                                <img align='left' src='../local/images/sfxinfo.gif' alt=''/>
+                                </div>
+                               SFX E-Journals</td>
+                        <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
+                             *** summary screen with complex information, such as location-specific URIs (856$9). -->
+                        <td class='rdetail_item result_table_sfx_cell resolver_item' id='rdetail_sfx'>
+                        </td>
+                </tr>
+               <tr class='hide_me' id='rdetail_online_row'>
+                       <!-- *** Example of how to use the openils.BibTemplate infrastructure to augment the stock
+                            *** summary screen with complex information, such as location-specific URIs (856$9). -->
+                       <td nowrap='nowrap' class='rdetail_desc'>&rdetail.summary.online;</td>
+                       <td class='rdetail_item' id='rdetail_online' type='opac/slot-data' query='volumes volume uris uri'>
+                               <script type='opac/slot-format'><![CDATA[
+                                       dojo.query('*:not([type^=opac])', 'rdetail_online').orphan();
+                                       var uri = new Object;
+                                       uri.href = item.getAttribute('href');
+                                       uri.label = item.getAttribute('label');
+                                       uri.use = item.getAttribute('use_restriction');
+                                       if (uri.href == uri.label) {
+                                               if (uri.use && uri.use != uri.label) {
+                                                       uri.label = uri.use;
+                                                       uri.use = null;
+                                               }
+                                       }
+                                       var link = '<a class="search_link" href="' + uri.href + '">' + uri.label + '</a>';
+                                       if (uri.use) {
+                                               link += ' (' + uri.use + ')';
+                                       }
+                                       return '<span>' + link + '</span><br/>';
+                               ]]></script>
+                       </td>
+               </tr>
+
+               </tbody>
+       </table>
+
+       <script language='javascript' type='text/javascript'><![CDATA[
+
+               config.ids.rdetail.details_body         = 'rdetail_details_body'; 
+               config.ids.rdetail.title                                = 'rdetail_title';
+               config.ids.rdetail.author                               = 'rdetail_author';
+               config.ids.rdetail.isbn                                 = 'rdetail_isbn';
+               config.ids.rdetail.edition                              = 'rdetail_edition';
+               config.ids.rdetail.pubdate                              = 'rdetail_pubdate';
+               config.ids.rdetail.publisher                    = 'rdetail_publisher';
+               config.ids.rdetail.tor                                  = 'rdetail_tor';
+               config.ids.rdetail.abstr                                = 'rdetail_abstract';
+               config.ids.rdetail.image                                = 'rdetail_image';
+               config.ids.rdetail.tor_pic                              = 'rdetail_tor_pic';
+
+        /* Only clear the resources box once */
+        var first_issn = true;
+        var url_list = "";
+
+        function subjectMe(tag, item) {
+           dojo.query(tag).removeClass('hide_me');
+            var cgi = new CGI();
+            var other_params = [ 'd', 'l', 'r', 'av', 's', 'sd' ];
+            var total = '';
+            var output = [];
+            var list = dojo.query( 'subfield:not([code=2])', item );
+           var main_subject = '';
+            for (var i =0; i < list.length; i++) {
+               var current = "";
+                total += dojox.data.dom.textContent(list[i]) + ' ';
+               if (i > 0)
+                       current +='>> ';
+                current += '<span><a class="search_link" href="rresult.xml?rt=subject&tp=subject&t=' + total;
+                for (var p in other_params) {
+                if (cgi.param(other_params[p]))
+                    current += '&' + other_params[p] + '=' + cgi.param(other_params[p]);
+                }
+               if (i > 0) {
+                       current += '">' + main_subject + dojox.data.dom.textContent(list[i]) + '</a>'
+               } else {
+                       current += '">' + dojox.data.dom.textContent(list[i]) + '</a>'
+               }
+                       
+               main_subject += dojox.data.dom.textContent(list[i]) + ' -- ';
+               current +=  '</span><br/>';
+                output.push(current);
+            }
+               
+           return output.join(' &nbsp;&nbsp;');
+        }
+
+        dojo.addOnLoad( function () {
+            var here = findOrgUnit(getLocation());
+            if (getDepth() > 0 || getDepth === 0 ) {
+                while (getDepth() < findOrgDepth(here))
+                    here = findOrgUnit( here.parent_ou() );
+            }
+
+            new bibtemplate({ record : new CGI().param('r'), org_unit : here.shortname() }).render();
+        });
+       ]]></script>
+
+</div> <!-- details_body -->
+
index f5ff20b..9d6aff4 100644 (file)
                                 placed here from the js layer
                             -->
                             <tr id='result_table_recid' class='result_table_title_cell hide_me'>
-                                                               <td class='sfx_display'> 
-                                                                       <span class='sfx_image'>
-                                                                       <img src='../local/images/sfxinfo.gif' alt=''/>
-                                                                       <i>SFX E-Journals</i>
-                                                                       </span>
-                                                                       <span id='result_table_recid_span' name='result_table_recid_span' class='recid'>
-                                    <span name='result_table_recid_span' class='recid'>
+                                <td class='sfx_display'> 
+                                    <span class='sfx_image'>
+                                    <img src='../local/images/sfxinfo.gif' alt=''/>
+                                    <i>SFX E-Journals</i>
+                                    </span>
+                                    <span id='result_table_recid_span' name='result_table_recid_span' class='recid'>
                                         <span name='recid_holder' class='hide_me'></span>
                                     </span>
                                 </td>
-                                                               <td class='sfx_right'></td>
+                                <td class='sfx_right'></td>
                             </tr>
 
                             <tr name="local_callnumber_list" class="result_table_title_cell">