[open-ils-commits] r1007 - in conifer/branches/rel_1_6_1/web/opac/skin/uwin: . css js xml xml/common xml/rdetail (artunit)

svn at svn.open-ils.org svn at svn.open-ils.org
Sat Sep 25 23:40:21 EDT 2010


Author: artunit
Date: 2010-09-25 23:40:19 -0400 (Sat, 25 Sep 2010)
New Revision: 1007

Added:
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/README
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/bibtemplate.js
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rsdetail.xml
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml
Modified:
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/css/layout.css
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/rdetail.js
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/result_common.js
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/sidebar_extras.js
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/common/libselect.xml
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rresult.xml
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_summary.xml
   conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/setenv.xml
Log:
some changes for records with many items, slight reformat of subject display

Added: conifer/branches/rel_1_6_1/web/opac/skin/uwin/README
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/README	                        (rev 0)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/README	2010-09-26 03:40:19 UTC (rev 1007)
@@ -0,0 +1,25 @@
+The University of Windsor has serial titles where hundreds
+and even thousands of items that have been added, typically microfilm
+that has been individually barcoded for interlibrary loan. This skin
+has a number of workarounds to accomodate the overhead associated
+with exposing extensive holdings in marcxml-format, we also add one page
+definition to "config.js", usually installed at:
+
+/openils/var/web/opac/common/js/config.js
+
+anchored by the comment (/* */) sections below:
+
+/* pages */
+var RSDETAIL            = "rsdetail";
+
+/* Set up the page names */
+config.page[RSDETAIL]           = "rsdetail.xml";
+
+Dan Scott (dbs) came up with a much more elegant solution to
+how it is handled in this layout this evening on IRC but
+I have taken the route that is least disruptive to the other
+skins for switching this version over to production in the
+short term (since the massive multi-item problem can slurp 
+up a lot of cpu processing capacity).
+
+art rhyno, u. of windsor - Sept. 25, 2010

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/css/layout.css
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/css/layout.css	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/css/layout.css	2010-09-26 03:40:19 UTC (rev 1007)
@@ -273,9 +273,18 @@
 */
 
 .search_link {
-   color: blue; 
+   color: #005596;
 }
 
 .search_link:visited {
-   color: purple; 
+   color: #005596; 
 }
+
+.search_link:hover {
+   color: red; 
+   text-decoration: none;
+}
+
+.libselect {
+   text-decoration: none;
+}

Added: conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/bibtemplate.js
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/bibtemplate.js	                        (rev 0)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/bibtemplate.js	2010-09-26 03:40:19 UTC (rev 1007)
@@ -0,0 +1,85 @@
+/* ---------------------------------------------------------------------------
+ * Copyright (C) 2009  Equinox Software, Inc.
+ * Mike Rylander <miker at esilibrary.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * ---------------------------------------------------------------------------
+ */
+
+if(!dojo._hasResource["bibtemplate"]) {
+
+    dojo.require('dojox.data.dom');
+    dojo._hasResource["bibtemplate"] = true;
+    dojo.provide("bibtemplate");
+    dojo.declare('bibtemplate', null, {
+
+        constructor : function(kwargs) {
+            this.root = kwargs.root;
+            this.record = kwargs.record;
+            this.org_unit = kwargs.org_unit || '-';
+        },
+
+        render : function() {
+            var all_slots = dojo.query('*[type^=opac/slot-data]', this.root);
+        
+            var slots = {};
+            dojo.forEach(all_slots, function(s){
+                var datatype = 'marcxml';
+        
+                if (s.getAttribute('type').indexOf('+') > -1) 
+                    datatype = s.getAttribute('type').split('+').reverse()[0];
+        
+                if (!slots[datatype]) slots[datatype] = [];
+                slots[datatype].push(s);
+            });
+        
+            for (var datatype in slots) {
+
+                (function (slot_list,dtype,rec,org) {
+
+                    dojo.xhrGet({
+                        url: '/opac/extras/unapi?id=tag:opac:biblio-record_entry/' + rec + '/' + org + '&format=' + datatype,
+                        handleAs: 'xml',
+                        load: function (bib) {
+
+                            dojo.forEach(slot_list, function (slot) {
+                                var joiner = slot.getAttribute('join') || ' ';
+
+                                var slot_handler = dojo.map(
+                                    dojo.query( '*[type=opac/slot-format]', slot ).orphan(),
+                                    function(x){ return dojox.data.dom.textContent(x) || x.innerHTML }
+                                ).join('');
+
+                                if (slot_handler) slot_handler = new Function('item', slot_handler);
+                                else slot_handler = new Function('item','return dojox.data.dom.textContent(item);');
+                
+                                var item_list = dojo.query(
+                                    slot.getAttribute('query'),
+                                    bib
+                                );
+
+                                if (item_list.length) slot.innerHTML = dojo.map(item_list, slot_handler).join(joiner);
+
+                                delete(slot_handler);
+
+                            });
+                       }
+                    });
+
+                })(slots[datatype],datatype,this.record,this.org_unit);
+            
+            }
+
+            return true;
+        }
+    });
+
+}

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/rdetail.js
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/rdetail.js	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/rdetail.js	2010-09-26 03:40:19 UTC (rev 1007)
@@ -16,6 +16,9 @@
 var rdetailRefWorksHost = 'http://refworks.scholarsportal.info';
 var enableHoldsOnAvailable = false;
 
+var urlCheck = true; //whether to use a url check to mask legacy urls
+var urlExpr = "/ezproxy|laws/i"; //regular expression
+
 /* threshold for paging */
 var rdetailBreakUpLargeSets = true; //flag for paging support
 var pgThreshold = 15; //the number of items to invoke paging
@@ -48,6 +51,7 @@
 var rdetailStart = null;
 var rdetailEnd = null;
 
+	dojo.require("bibtemplate");
 /* serials are currently the only use of Dojo strings in the OPAC */
 if (rdetailDisplaySerialHoldings) {
 	dojo.require("dijit.Menu");
@@ -374,7 +378,8 @@
 	for( var i = 0; links && links.length > 0 && i < links.length; i = i + 3 ) {
 		var href = links[i];
 		// avoid matching "HTTP: The Complete Reference"
-		if( href.match(/https?:\/|ftps?:\/|mailto:/i) ) {
+		//if( href.match(/https?:\/|ftps?:\/|mailto:|http?:/i) && href.match(/ezproxy|law/i )) {
+		if( href.match(/https?:\/|ftps?:\/|mailto:|http?:/i) && urlCheck?href.match(urlExpr):true) {
 			unHideMe($('rdetail_online_row'));
 			// MODS can contain a display label (used for the text of the link)
 			// as well as a note about the URL; many legacy systems conflate the

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/result_common.js
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/result_common.js	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/result_common.js	2010-09-26 03:40:19 UTC (rev 1007)
@@ -8,7 +8,7 @@
 var enableExtraSearchesLowHits = true;
 var localProxyPrefix = '';
 var suppressCopyCounts = true;
-var lookUpLimit = 25; //limit for invoking live status info
+var lookUpLimit = 100; //limit for invoking live status info
 
 function sortOutCopies(loc_id, rec_id, form_id) {
         var copies = 0;
@@ -17,7 +17,6 @@
         if (recreq) {
                 var copy_info =  recreq.result();
                 for (var i in copy_info) {
-                        //alert(loc_id + ' - ' + i + ' - ' + copy_info[i].available);
                         if (loc_id == copy_info[i].org_unit)
                                 return copy_info[i].available;
                 }//for
@@ -521,11 +520,15 @@
 }
 
 /* riff on buildTitleDetailLink from opac_utils */
-function buildResultTitleDetailLink(rec, link) {
+function buildResultTitleDetailLink(rec, link, copyCnt) {
         if(!rec) return;
         link.appendChild(text(normalize(truncate(rec.title(), 500))));
         var args = {};
         args.page = RDETAIL;
+		
+	if (copyCnt > lookUpLimit)
+        	args.page = RSDETAIL;
+
         args[PARAM_RID] = rec.doc_id();
     // in IE, if the link text contains a '@', it replaces the innerHTML text
     // with the value of the href attribute.  Wait, what?  Yes.  Capture the
@@ -611,9 +614,11 @@
 		}
 
 	} else {
-		buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', rec.doc_id());
+                var onlyrec = rec.doc_id();
+		buildunAPISpan($n(r,'unapi'), 'biblio-record_entry', onlyrec);
+		var copyCnt = sortOutCopies(getLocation(), onlyrec, null);
 
-		buildResultTitleDetailLink(rec, title_link); 
+		buildResultTitleDetailLink(rec, title_link, copyCnt); 
 		var args = {};
 		args.page = RDETAIL;
 		args[PARAM_OFFSET] = 0;
@@ -632,8 +637,6 @@
 		*/
                 // Stolen from trunk - (and stolen again from lul :-))
                 var here = findOrgUnit(getLocation());
-                var onlyrec = rec.doc_id();
-		var copyCnt = sortOutCopies(getLocation(), onlyrec, null);
 
 		if (copyCnt <= lookUpLimit) {
                 	dojo.require('openils.BibTemplate');
@@ -653,7 +656,7 @@
 			var callSpot = $n(r, "local_callnumber_list").parentNode;
 			var newTd = document.createElement( 'td' )
 			//to do: internationalize this
-			newTd.appendChild(text("... " + copyCnt + " print items, please see full record for details."));
+			newTd.appendChild(text("... " + copyCnt + " print items, please see full record for details on print and digital coverage."));
 			addCSSClass(newTd,"too_many_copies");
 			var newTr = document.createElement( 'tr' )
 			newTr.appendChild(newTd);

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/sidebar_extras.js
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/sidebar_extras.js	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/js/sidebar_extras.js	2010-09-26 03:40:19 UTC (rev 1007)
@@ -106,6 +106,9 @@
 		var topic = xrefCache[i];
 		query.push( [ topic.type, topic.term ] );
 	}
+	//FLAG for UWIN before SVN - art
+	return;
+	//alert(FETCH_CROSSREF_BATCH + ' - ' + query);
 	var req = new Request(FETCH_CROSSREF_BATCH, query);
 	var tree;
 	eval('tree=' + treeName);

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/common/libselect.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/common/libselect.xml	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/common/libselect.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -4,7 +4,7 @@
 		<!--#if expr="$SHOW_DEPTHSEL_TEXT='true'"-->
 		<span>&library.select; </span>
 		<!--#endif-->
-		<select id='depth_selector' >
+		<select id='depth_selector' class='libselect'>
 			<option value='new'>&library.select.label;</option>
 		</select>
 	</span>

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rresult.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rresult.xml	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rresult.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -4,6 +4,7 @@
 	<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/tips.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/bibtemplate.js'></script>   
 	<!--#include virtual="result/result_common.xml"-->
 </div>
 

Added: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rsdetail.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rsdetail.xml	                        (rev 0)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/page_rsdetail.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -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>

Added: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml	                        (rev 0)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_subset_summary.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -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 -->
+

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_summary.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_summary.xml	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/rdetail/rdetail_summary.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -431,17 +431,29 @@
             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]) + ' ';
-                var current = '<a class="search_link" href="rresult.xml?rt=subject&tp=subject&t=' + total;
+		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]);
                 }
-                current += '">' + dojox.data.dom.textContent(list[i]) + '</a>'
+		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 '<span>' + output.join(' &#x2d;&#x2d; ') + '</span><br/>';
+		
+           return output.join(' &nbsp;&nbsp;');
         }
 
         dojo.addOnLoad( function () {

Modified: conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/setenv.xml
===================================================================
--- conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/setenv.xml	2010-09-24 14:44:57 UTC (rev 1006)
+++ conifer/branches/rel_1_6_1/web/opac/skin/uwin/xml/setenv.xml	2010-09-26 03:40:19 UTC (rev 1007)
@@ -16,6 +16,9 @@
 <!--#elif expr="$DOCUMENT_NAME='rdetail.xml'"-->
 	<!--#set var='OILS_TITLE' value='opac.title.rdetail'-->
 
+<!--#elif expr="$DOCUMENT_NAME='rsdetail.xml'"-->
+	<!--#set var='OILS_TITLE' value='opac.title.rsdetail'-->
+
 <!--#elif expr="$DOCUMENT_NAME='myopac.xml'"-->
 	<!--#set var='OILS_TITLE' value='opac.title.myopac'-->
 



More information about the open-ils-commits mailing list