[open-ils-commits] r14292 - in trunk/Open-ILS: web/opac/locale/en-US xul/staff_client/server/cat xul/staff_client/server/circ xul/staff_client/server/locale/en-US (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Oct 7 11:56:15 EDT 2009


Author: phasefx
Date: 2009-10-07 11:56:12 -0400 (Wed, 07 Oct 2009)
New Revision: 14292

Added:
   trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.js
   trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
   trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.xul
Modified:
   trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
   trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.xul
   trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
   trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
   trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
Log:
Toward a new look for XUL Record Summary.  bib_brief.xul modified for existing instances of Record Summary, but the alternate Item Details interface is doing it differently.

The old Record Summary is a dedicated XUL file that typically lives in an iframe.  It would fetch its own data if fed some ID's either via xulG or URL parameters.

The new way (which is really an old way that was tried before and is used with bill summaries) involves a XUL overlay, and a render function matching the overlay name.  A caller can feed it already fetched objects or have it fetch 
its own objects given ID's.

To do this, 

Include these in your XUL file:  
	<?xul-overlay href="/xul/server/cat/bib_brief_overlay.xul"?>
	<grid id="bib_brief_grid"/>

This pulls in the overlay, which merges with the <grid/> in your XUL and loads bib_brief_overlay.js.

In your javascript, call bib_brief_overlay():

	bib_brief_overlay( { 'mvr' : details.mvr, 'acp' : details.copy } );

Different options include mvr, mvr_id, bre, bre_id, and acp.  This will render values into the grid.

Since this is an overlay, you can mix-in your own elements.  The new Item Details is doing this:

	<grid id="bib_brief_grid">
	    <rows id="bib_brief_grid_rows">
		<row>
		    <label value="&staff.circ.alternate_copy_summary.Call_Number.label;" accesskey="&staff.circ.alternate_copy_summary.call_number.accesskey;" control="call_number"/>
		    <textbox name="call_number" readonly="true" context="clipboard"/>
		</row>
	    </rows>
	</grid>

This is adding a custom/local row to the bottom of the Record Summary grid.



Modified: trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
===================================================================
--- trunk/Open-ILS/web/opac/locale/en-US/lang.dtd	2009-10-07 15:37:04 UTC (rev 14291)
+++ trunk/Open-ILS/web/opac/locale/en-US/lang.dtd	2009-10-07 15:56:12 UTC (rev 14292)
@@ -2002,16 +2002,24 @@
 <!ENTITY staff.main.ws_info.help_btn.label "Help">
 <!ENTITY staff.main.ws_info.help_btn.accesskey "H">
 <!ENTITY staff.cat.bib_brief.record_summary "Record Summary">
-<!ENTITY staff.cat.bib_brief.title "Title:">
+<!ENTITY staff.cat.bib_brief.title.label "Title:">
+<!ENTITY staff.cat.bib_brief.title.accesskey "">
 <!ENTITY staff.cat.bib_brief.view_marc "View MARC">
-<!ENTITY staff.cat.bib_brief.author "Author:">
-<!ENTITY staff.cat.bib_brief.edition "Edition:">
-<!ENTITY staff.cat.bib_brief.pub_date "Publication Date:">
+<!ENTITY staff.cat.bib_brief.author.label "Author:">
+<!ENTITY staff.cat.bib_brief.author.accesskey "">
+<!ENTITY staff.cat.bib_brief.edition.label "Edition:">
+<!ENTITY staff.cat.bib_brief.edition.accesskey "">
+<!ENTITY staff.cat.bib_brief.pub_date.label "Publication Date:">
+<!ENTITY staff.cat.bib_brief.pub_date.accesskey "">
 <!-- "TCN" is an abbreviation for "title control number" -->
-<!ENTITY staff.cat.bib_brief.title_control_number "TCN:">
-<!ENTITY staff.cat.bib_brief.created_by "Created By:">
-<!ENTITY staff.cat.bib_brief.last_edited_by "Last Edited By:">
-<!ENTITY staff.cat.bib_brief.last_edited_on "Last Edited On:">
+<!ENTITY staff.cat.bib_brief.title_control_number.label "TCN:">
+<!ENTITY staff.cat.bib_brief.title_control_number.accesskey "">
+<!ENTITY staff.cat.bib_brief.created_by.label "Created By:">
+<!ENTITY staff.cat.bib_brief.created_by.accesskey "">
+<!ENTITY staff.cat.bib_brief.last_edited_by.label "Last Edited By:">
+<!ENTITY staff.cat.bib_brief.last_edited_by.accesskey "">
+<!ENTITY staff.cat.bib_brief.last_edited_on.label "Last Edited On:">
+<!ENTITY staff.cat.bib_brief.last_edited_on.accesskey "">
 <!ENTITY staff.circ.holds.copy_to_clipboard "Copy to Clipboard">
 <!ENTITY staff.circ.holds.copy_to_clipboard.accesskey "C">
 <!ENTITY staff.circ.holds.show_in_catalog "Show in Catalog">
@@ -2879,16 +2887,13 @@
 <!ENTITY ui.network.progress_meter.desc "This enables a network activity indicator in the bottom status bar.">
 <!ENTITY staff.circ.alternate_copy_summary.Alert.label "Alert">
 <!ENTITY staff.circ.alternate_copy_summary.Alternate_View.label "Alternate View">
-<!ENTITY staff.circ.alternate_copy_summary.Author.label "Author">
 <!ENTITY staff.circ.alternate_copy_summary.Barcode.label "Barcode">
 <!ENTITY staff.circ.alternate_copy_summary.Call_Number.label "Call Number">
 <!ENTITY staff.circ.alternate_copy_summary.Cataloging_Info.label "Cataloging Info">
-<!ENTITY staff.circ.alternate_copy_summary.Checkin_Library.label "Checkin Library">
 <!ENTITY staff.circ.alternate_copy_summary.Checkin_Scan_Time.label "Checkin Scan Time">
 <!ENTITY staff.circ.alternate_copy_summary.Checkin_Time.label "Checkin Time">
 <!ENTITY staff.circ.alternate_copy_summary.Checkin_Workstation.label "Checkin Workstation">
 <!ENTITY staff.circ.alternate_copy_summary.Checkout_Date.label "Checkout Date">
-<!ENTITY staff.circ.alternate_copy_summary.Checkout_Library.label "Checkout Library">
 <!ENTITY staff.circ.alternate_copy_summary.Circ_Modifier.label "Circ Modifier">
 <!ENTITY staff.circ.alternate_copy_summary.Circulation_History.label "Circulation History">
 <!ENTITY staff.circ.alternate_copy_summary.Copy_ID.label "Copy ID">
@@ -2912,7 +2917,6 @@
 <!ENTITY staff.circ.alternate_copy_summary.Rolling_Counter.label "Rolling Counter">
 <!ENTITY staff.circ.alternate_copy_summary.Status.label "Status">
 <!ENTITY staff.circ.alternate_copy_summary.TCN.label "TCN">
-<!ENTITY staff.circ.alternate_copy_summary.Title.label "Title">
 <!ENTITY staff.circ.alternate_copy_summary.Total_Circs___Current_Year.label "Total Circs - Current Year">
 <!ENTITY staff.circ.alternate_copy_summary.Total_Circs.label "Total Circs">
 <!ENTITY staff.circ.alternate_copy_summary.Total_Circs___Prev_Year.label "Total Circs - Prev Year">

Added: trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.js	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.js	2009-10-07 15:56:12 UTC (rev 14292)
@@ -0,0 +1,117 @@
+var docid;
+
+function my_init() {
+    try {
+        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+        if (typeof JSAN == 'undefined') { throw( document.getElementById("commonStrings").getString('common.jsan.missing') ); }
+        JSAN.errorLevel = "die"; // none, warn, or die
+        JSAN.addRepository('/xul/server/');
+        JSAN.use('util.error'); g.error = new util.error();
+        g.error.sdump('D_TRACE','my_init() for cat_bib_brief.xul');
+
+        JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
+
+        docid = xul_param('docid');
+
+        var key = location.pathname + location.search + location.hash;
+        if (!docid && typeof data.modal_xulG_stack != 'undefined' && typeof data.modal_xulG_stack[key] != 'undefined') {
+            var xulG = data.modal_xulG_stack[key][ data.modal_xulG_stack[key].length - 1 ];
+            if (typeof xulG == 'object') {
+                docid = xulG.docid;
+            }
+        }
+
+        JSAN.use('util.network'); g.network = new util.network();
+        JSAN.use('util.date');
+
+        document.getElementById('caption').setAttribute('tooltiptext',document.getElementById('catStrings').getFormattedString('staff.cat.bib_brief.record_id', [docid]));
+
+        if (docid > -1) {
+
+            data.last_record = docid; data.stash('last_record');
+
+            g.network.simple_request(
+                'MODS_SLIM_RECORD_RETRIEVE.authoritative',
+                [ docid ],
+                function (req) {
+                    var mods = req.getResultObject();
+                    
+                    if (window.xulG && typeof window.xulG.set_tab_name == 'function') {
+                        try {
+                            window.xulG.set_tab_name(mods.tcn());
+                        } catch(E) {
+                            g.error.sdump('D_ERROR','bib_brief.xul, set_tab: ' + E);
+                        }
+                    }
+
+                    g.network.simple_request(
+                        'FM_BRE_RETRIEVE_VIA_ID.authoritative',
+                        [ ses(), [ docid ] ],
+                        function (req) {
+                            try {
+                                var meta = req.getResultObject();
+                                if (typeof meta.ilsevent != 'undefined') throw(meta);
+                                meta = meta[0];
+                                var t = document.getElementById('caption').getAttribute('label');
+                                if (get_bool( meta.deleted() )) { 
+                                    t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.deleted') + ' '; 
+                                    document.getElementById('caption').setAttribute('style','background: red; color: white;');
+                                }
+                                if ( ! get_bool( meta.active() ) ) { 
+                                    t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.inactive') + ' '; 
+                                    document.getElementById('caption').setAttribute('style','background: red; color: white;');
+                                }
+                                document.getElementById('caption').setAttribute('label',t);
+
+                                bib_brief_overlay( { 'mvr' : mods, 'bre' : meta } );
+
+                            } catch(E) {
+                                g.error.standard_unexpected_error_alert('meta retrieve',E);
+                            }
+                        }
+                    );
+                }
+            );
+
+        } else {
+            var t = document.getElementById('caption').getAttribute('label');
+            t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.noncat') + ' '; 
+            document.getElementById('caption').setAttribute('style','background: red; color: white;');
+            document.getElementById('caption').setAttribute('label',t);
+        }
+
+    } catch(E) {
+        var err_msg = document.getElementById("commonStrings").getFormattedString('common.exception', ['cat/bib_brief.xul', E]);
+        try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
+        alert(err_msg);
+    }
+}
+
+function view_marc() {
+    try {
+        JSAN.use('util.window'); var win = new util.window();
+        if (docid < 0) {
+            alert(document.getElementById("catStrings").getString('staff.cat.bib_brief.noncat.alert'));
+        } else {
+            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+            //win.open( urls.XUL_MARC_VIEW + '?noprint=1&docid=' + docid, 'marc_view', 'chrome,resizable,modal,width=400,height=400');
+            win.open( urls.XUL_MARC_VIEW, 'marc_view', 'chrome,resizable,modal,width=400,height=400',{'noprint':1,'docid':docid});
+        }
+    } catch(E) {
+        g.error.standard_unexpected_error_alert('spawning marc display',E);
+    }
+}
+
+function spawn_patron(span) {
+    try {
+        if (typeof window.xulG == 'object' && typeof window.xulG.set_patron_tab == 'function') {
+            window.xulG.set_patron_tab( {}, { 'id' : span.getAttribute('au_id') } );
+        } else {
+            copy_to_clipboard( span.textContent );
+        }
+    } catch(E) {
+        g.error.standard_unexpected_error_alert('spawning patron display',E);
+    }
+}
+
+

Modified: trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.xul	2009-10-07 15:37:04 UTC (rev 14291)
+++ trunk/Open-ILS/xul/staff_client/server/cat/bib_brief.xul	2009-10-07 15:56:12 UTC (rev 14292)
@@ -19,10 +19,10 @@
 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
 <!-- OVERLAYS -->
 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+<?xul-overlay href="/xul/server/cat/bib_brief_overlay.xul"?>
 
 <window id="cat_bib_brief_win" 
 	onload="try { my_init(); font_helper(); } catch(E) { alert(E); }"
-	xmlns:html="http://www.w3.org/1999/xhtml"
 	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
 	<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
@@ -33,214 +33,14 @@
         <scripts id="openils_util_scripts"/>
 
 	<script type="text/javascript" src="/xul/server/main/JSAN.js"/>
-	<script>
-	<![CDATA[
+	<script type="text/javascript" src="/xul/server/cat/bib_brief.js"/>
 
-		var docid;
-
-		function my_init() {
-			try {
-				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-				if (typeof JSAN == 'undefined') { throw( document.getElementById("commonStrings").getString('common.jsan.missing') ); }
-				JSAN.errorLevel = "die"; // none, warn, or die
-				JSAN.addRepository('/xul/server/');
-				JSAN.use('util.error'); g.error = new util.error();
-				g.error.sdump('D_TRACE','my_init() for cat_bib_brief.xul');
-
-				JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
-
-				docid = xul_param('docid');
-
-				var key = location.pathname + location.search + location.hash;
-				if (!docid && typeof data.modal_xulG_stack != 'undefined' && typeof data.modal_xulG_stack[key] != 'undefined') {
-					var xulG = data.modal_xulG_stack[key][ data.modal_xulG_stack[key].length - 1 ];
-					if (typeof xulG == 'object') {
-						docid = xulG.docid;
-					}
-				}
-
-				JSAN.use('util.network'); g.network = new util.network();
-				JSAN.use('util.date');
-
-				document.getElementById('caption').setAttribute('tooltiptext',document.getElementById('catStrings').getFormattedString('staff.cat.bib_brief.record_id', [docid]));
-
-				if (docid > -1) {
-
-					data.last_record = docid; data.stash('last_record');
-
-					g.network.simple_request(
-						'MODS_SLIM_RECORD_RETRIEVE.authoritative',
-						[ docid ],
-						function (req) {
-							var mods = req.getResultObject();
-							
-							if (mods.title()) document.getElementById('title').appendChild(
-								document.createTextNode(String(mods.title()).substr(0,50))
-							);
-							if (mods.author()) document.getElementById('author').appendChild(
-								document.createTextNode(mods.author())
-							);
-							if (mods.edition()) document.getElementById('edition').appendChild(
-								document.createTextNode(mods.edition())
-							);
-							if (mods.pubdate()) document.getElementById('pubdate').appendChild(
-								document.createTextNode(mods.pubdate())
-							);
-							if (mods.tcn()) document.getElementById('tcn').appendChild(
-								document.createTextNode(mods.tcn())
-							);
-	
-							if (window.xulG && typeof window.xulG.set_tab_name == 'function') {
-								try {
-									window.xulG.set_tab_name(mods.tcn());
-								} catch(E) {
-									g.error.sdump('D_ERROR','bib_brief.xul, set_tab: ' + E);
-								}
-							}
-	
-							g.network.simple_request(
-								'FM_BRE_RETRIEVE_VIA_ID.authoritative',
-								[ ses(), [ docid ] ],
-								function (req) {
-									try {
-										var meta = req.getResultObject();
-										if (typeof meta.ilsevent != 'undefined') throw(meta);
-										meta = meta[0];
-										document.getElementById('tcn_source').appendChild(
-											document.createTextNode(meta.tcn_source())
-										);
-										g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.creator().id()],
-											function(rreq) {
-												var creator_au = rreq.getResultObject();
-												document.getElementById('creator_bc').appendChild(
-													document.createTextNode(creator_au.card().barcode())
-												);
-											}
-										);
-										g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.editor().id()],
-											function(rreq) {
-												var editor_au = rreq.getResultObject();
-												document.getElementById('editor_bc').appendChild(
-													document.createTextNode(editor_au.card().barcode())
-												);
-											}
-										);
-										document.getElementById('creator').appendChild(
-											document.createTextNode('('+data.hash.aou[meta.creator().home_ou()].shortname()+') ')
-										);
-										document.getElementById('creator_bc').setAttribute('au_id',meta.creator().id());
-										document.getElementById('editor').appendChild(
-											document.createTextNode('('+data.hash.aou[meta.editor().home_ou()].shortname()+') ')
-										);
-										document.getElementById('editor_bc').setAttribute('au_id',meta.editor().id());
-										document.getElementById('edit_date').appendChild(
-											document.createTextNode(
-												util.date.formatted_date(meta.edit_date(),"%D")
-											)
-										);
-										var t = document.getElementById('caption').getAttribute('label');
-										if (get_bool( meta.deleted() )) { 
-											t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.deleted') + ' '; 
-											document.getElementById('caption').setAttribute('style','background: red; color: white;');
-										}
-										if ( ! get_bool( meta.active() ) ) { 
-											t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.inactive') + ' '; 
-											document.getElementById('caption').setAttribute('style','background: red; color: white;');
-										}
-										document.getElementById('caption').setAttribute('label',t);
-									} catch(E) {
-										g.error.standard_unexpected_error_alert('meta retrieve',E);
-									}
-								}
-							);
-						}
-					);
-
-				} else {
-					var t = document.getElementById('caption').getAttribute('label');
-					t += ' ' + document.getElementById('catStrings').getString('staff.cat.bib_brief.noncat') + ' '; 
-					document.getElementById('caption').setAttribute('style','background: red; color: white;');
-					document.getElementById('caption').setAttribute('label',t);
-				}
-
-			} catch(E) {
-				var err_msg = document.getElementById("commonStrings").getFormattedString('common.exception', ['cat/bib_brief.xul', E]);
-				try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
-				alert(err_msg);
-			}
-		}
-
-		function view_marc() {
-			try {
-				JSAN.use('util.window'); var win = new util.window();
-				if (docid < 0) {
-					alert(document.getElementById("catStrings").getString('staff.cat.bib_brief.noncat.alert'));
-				} else {
-					netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-					//win.open( urls.XUL_MARC_VIEW + '?noprint=1&docid=' + docid, 'marc_view', 'chrome,resizable,modal,width=400,height=400');
-					win.open( urls.XUL_MARC_VIEW, 'marc_view', 'chrome,resizable,modal,width=400,height=400',{'noprint':1,'docid':docid});
-				}
-			} catch(E) {
-                g.error.standard_unexpected_error_alert('spawning marc display',E);
-			}
-		}
-
-		function spawn_patron(span) {
-            try {
-                if (typeof window.xulG == 'object' && typeof window.xulG.set_patron_tab == 'function') {
-                    window.xulG.set_patron_tab( {}, { 'id' : span.getAttribute('au_id') } );
-                } else {
-					copy_to_clipboard( span.textContent );
-				}
-            } catch(E) {
-                g.error.standard_unexpected_error_alert('spawning patron display',E);
-            }
-		}
-
-	]]>
-	</script>
-
     <messagecatalog id="catStrings" src="/xul/server/locale/<!--#echo var='locale'-->/cat.properties"/>
+    <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties"/>
 
-	<groupbox id="groupbox" flex="1" style="overflow: auto; min-height: 100px;">
-		<caption label="&staff.cat.bib_brief.record_summary;" id="caption"/>
-			<html:table width="90%">
-				<html:tr valign="top">
-					<html:td colspan="3">
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.title; </html:span><html:span id="title" />
-					</html:td>
-					<html:td>
-						(<html:a href="javascript:view_marc();" style="text-decoration: underline; color: blue;">&staff.cat.bib_brief.view_marc;</html:a>)
-					</html:td>
-				</html:tr>
-				<html:tr valign="top">
-					<html:td colspan="2">
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.author; </html:span><html:span id="author" />
-					</html:td>
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.edition; </html:span><html:span id="edition" />
-					</html:td>
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.pub_date; </html:span><html:span id="pubdate" />
-					</html:td>
-				</html:tr>
-				<html:tr valign="top">
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.title_control_number; (</html:span><html:span id="tcn_source"/><html:span style="font-weight: bold;">) </html:span><html:span id="tcn" style="text-decoration: underline; color: blue;" onclick="copy_to_clipboard(event)"/>
-					</html:td>
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.created_by; </html:span><html:span id="creator" />
-						<html:span id="creator_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
-					</html:td>
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.last_edited_by; </html:span><html:span id="editor" />
-						<html:span id="editor_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
-					</html:td>
-					<html:td>
-						<html:span style="font-weight: bold;">&staff.cat.bib_brief.last_edited_on; </html:span><html:span id="edit_date" />
-					</html:td>
-				</html:tr>
-			</html:table>
+	<groupbox id="groupbox" flex="1">
+		<caption id="caption"><label value="&staff.cat.bib_brief.record_summary;"/>(<label value="&staff.cat.bib_brief.view_marc;" class="click_link" onclick="view_marc();"/>)</caption>
+        <grid id="bib_brief_grid" />
 	</groupbox>
 
 </window>

Added: trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js	2009-10-07 15:56:12 UTC (rev 14292)
@@ -0,0 +1,90 @@
+dump('loading bib_brief_overlay.js\n');
+
+function bib_brief_overlay(params) {
+    try {
+
+        var net; var session;
+
+        if (params.network) {
+            net = params.network;
+        } else {
+            JSAN.use('util.network');
+            net = new util.network();
+        }
+
+        if (params.session) {
+            session = params.session;
+        } else {
+            session = ses(); // For some reason, this breaks, starting with an internal instantiation of util.error failing because util.error being an object instead of a constructor
+        }
+
+
+        // See if we have mvr or mvr.id, and possibly retrieve the mvr ourselves
+        if (params.mvr_id && ! params.mvr) {
+            var robj = net.simple_request('MODS_SLIM_RECORD_RETRIEVE.authoritative',[ params.mvr_id ]);
+            if (typeof robj.ilsevent != 'undefined') throw(robj); 
+            params.mvr = robj;
+        }
+        if (! params.mvr) { alert('early mvr return!'); return; }
+        if (! params.mvr_id) params.mvr_id = params.mvr.doc_id();
+
+        // Ditto with the bre
+        if ( (params.bre_id || params.mvr_id) && ! params.bre) {
+            var robj = net.simple_request('FM_BRE_RETRIEVE_VIA_ID.authoritative',[ session, [ (params.bre_id||params.mvr_id) ] ]);
+            if (typeof robj.ilsevent != 'undefined') throw(robj); 
+            params.bre = robj[0];
+        }
+        if (! params.bre) { alert('early bre return!'); return; }
+
+        JSAN.use('util.widgets');
+        function set(name,value) { 
+            var nodes = document.getElementsByAttribute('name',name); 
+            for (var i = 0; i < nodes.length; i++) {
+                util.widgets.set_text( nodes[i], value ); 
+            }
+            return nodes.length;
+        }
+        function set_tooltip(name,value) { 
+            var nodes = document.getElementsByAttribute('name',name); 
+            for (var i = 0; i < nodes.length; i++) {
+                nodes[i].setAttribute('tooltiptext',value);
+            }
+            return nodes.length;
+        }
+
+
+        // Use the list column definitions for rendering the mvr against the elements in bib_brief_overlay.xul
+        JSAN.use('circ.util');
+        var columns = circ.util.columns({});
+        for (var i = 0; i < columns.length; i++) {
+            var c = columns[i];
+            //dump('considering column ' + c.id + '... ');
+            if (c.fm_class == 'mvr' || c.fm_class == 'bre') {
+                //dump('is an mvr or bre... ');
+                if (typeof c.render == 'function') { // Non-function renders are deprecated
+                    //dump('render is a function... ');
+                    var value;
+                    try { 
+                        value = c.render( { 'mvr' : params.mvr, 'acp' : params.acp, 'bre' : params.bre } ); 
+                    } catch(E) { 
+                        value = ''; 
+                        //dump('Error in bib_brief_overlay(), with render() for c.id = ' + c.id + ' : ' + E + '\n'); 
+                    }
+                    //dump('value = ' + value + '\n');
+                    var n = set(c.id, value ? value : '');
+                    if (c.id == 'tcn_source') set_tooltip('tcn',value);
+                    if (c.id == 'doc_id') set_tooltip('title',value);
+                    //dump('set text on ' + n + ' elements\n');
+                } else {
+                    //dump('render is not a function\n');
+                }
+            } else {
+                //dump('is not an mvr or bre\n');
+            }
+        }
+
+    } catch(E) {
+        alert(location.href + '\nError in bib_brief_overlay(' + js2JSON(params) + '): ' + E);
+        return;
+    }
+}

Added: trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.xul	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.xul	2009-10-07 15:56:12 UTC (rev 14292)
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE overlay PUBLIC "" ""[
+	<!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
+]>
+<overlay id="bib_brief_overlay" 
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+	    <script type="text/javascript" src="/xul/server/cat/bib_brief_overlay.js"/>
+
+        <grid id="bib_brief_grid" flex="0">
+            <columns>
+                <column />
+                <column flex="1" />
+                <column />
+                <column />
+                <column />
+                <column />
+                <column />
+                <column />
+            </columns>
+            <rows id="bib_brief_grid_rows">
+                <row id="bib_brief_grid_row1" position="1">
+                    <label value="&staff.cat.bib_brief.title.label;" accesskey="&staff.cat.bib_brief.title.accesskey;" control="title"/>
+                    <textbox id="title" name="title" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.edition.label;" accesskey="&staff.cat.bib_brief.edition.accesskey;" control="edition"/>
+                    <textbox id="edition" name="edition" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.created_by.label;" accesskey="&staff.cat.bib_brief.created_by.accesskey;" control="creator"/>
+                    <textbox id="creator" name="creator" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.last_edited_by.label;" accesskey="&staff.cat.bib_brief.last_edited_by.accesskey;" control="editor"/>
+                    <textbox id="editor" name="editor" readonly="true" context="clipboard"/>
+                </row>
+                <row position="2">
+                    <label value="&staff.cat.bib_brief.author.label;" accesskey="&staff.cat.bib_brief.author.accesskey;" control="author"/>
+                    <textbox id="author" name="author" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.pub_date.label;" accesskey="&staff.cat.bib_brief.pub_date.accesskey;" control="pubdate"/>
+                    <textbox id="pubdate" name="pubdate" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.title_control_number.label;" accesskey="&staff.cat.bib_brief.title_control_number.accesskey;" control="tcn"/>
+                    <textbox id="tcn" name="tcn" readonly="true" context="clipboard"/>
+                    <label value="&staff.cat.bib_brief.last_edited_on.label;" accesskey="&staff.cat.bib_brief.last_edited_on.accesskey;" control="edit_date"/>
+                    <textbox id="edit_date" name="edit_date" readonly="true" context="clipboard"/>
+                </row>
+            </rows>
+        </grid>
+</overlay>

Modified: trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js	2009-10-07 15:37:04 UTC (rev 14291)
+++ trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js	2009-10-07 15:56:12 UTC (rev 14292)
@@ -42,6 +42,8 @@
         var details = network.simple_request('FM_ACP_DETAILS_VIA_BARCODE.authoritative', [ ses(), xulG.barcode ]);
         // Should get back .mvr, .copy, .volume, .transit, .circ, .hold
 
+        if (typeof bib_brief_overlay == 'function') bib_brief_overlay( { 'mvr' : details.mvr, 'acp' : details.copy } );
+/*
         set('title', '');
         set('author', '');
         set('doc_id', '');
@@ -87,7 +89,7 @@
             set('author',details.copy.dummy_author()); 
             set('isbn',details.copy.dummy_isbn());
         }
-
+*/
         set("stat_cat_entries", '');
         set("age_protect", '');
         set("alert_message", '');
@@ -98,15 +100,15 @@
         set("circ_modifier", '');
         set("circulate", '');
         set("copy_number", '');
-        set("create_date", '');
-        set("creator", '');
+        set("copy_create_date", '');
+        set("copy_creator", '');
         set("deleted", '');
         set("deposit", '');
         set("deposit_amount", '');
         set("dummy_author", '');
         set("dummy_title", '');
-        set("edit_date", '');
-        set("editor", '');
+        set("copy_edit_date", '');
+        set("copy_editor", '');
         set("fine_level", '');
         set("holdable", '');
         set("copy_id", '');
@@ -136,15 +138,15 @@
             set("circ_modifier", details.copy.circ_modifier()); 
             set("circulate", details.copy.circulate()); 
             set("copy_number", details.copy.copy_number()); 
-            set("create_date", details.copy.create_date()); 
-            set("creator", details.copy.creator()); 
+            set("copy_create_date", details.copy.create_date()); 
+            set("copy_creator", details.copy.creator()); 
             set("deleted", details.copy.deleted()); 
             set("deposit", details.copy.deposit()); 
             set("deposit_amount", details.copy.deposit_amount()); 
             set("dummy_author", details.copy.dummy_author()); 
             set("dummy_title", details.copy.dummy_title()); 
-            set("edit_date", details.copy.edit_date()); 
-            set("editor", details.copy.editor()); 
+            set("copy_edit_date", details.copy.edit_date()); 
+            set("copy_editor", details.copy.editor()); 
             set("fine_level", details.copy.fine_level()); 
             set("holdable", details.copy.holdable()); 
             set("copy_id", details.copy.id()); 
@@ -186,11 +188,11 @@
         }
 
         set("copies", '');
-        set("create_date", '');
-        set("creator", '');
+        set("volume_create_date", '');
+        set("volume_creator", '');
         set("deleted", '');
-        set("edit_date", '');
-        set("editor", '');
+        set("volume_edit_date", '');
+        set("volume_editor", '');
         set("volume_id", '');
         set("label", '');
         set("owning_lib" , '');
@@ -201,11 +203,11 @@
 
         if (details.volume) {
             set("copies", details.volume.copies()); 
-            set("create_date", details.volume.create_date()); 
-            set("creator", details.volume.creator()); 
+            set("volume_create_date", details.volume.create_date()); 
+            set("volume_creator", details.volume.creator()); 
             set("deleted", details.volume.deleted()); 
-            set("edit_date", details.volume.edit_date()); 
-            set("editor", details.volume.editor()); 
+            set("volume_edit_date", details.volume.edit_date()); 
+            set("volume_editor", details.volume.editor()); 
             set("volume_id", details.volume.id()); 
             set("label", details.volume.label()); 
             set("owning_lib" , details.volume.owning_lib()); 

Modified: trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul	2009-10-07 15:37:04 UTC (rev 14291)
+++ trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul	2009-10-07 15:56:12 UTC (rev 14292)
@@ -16,6 +16,7 @@
 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
 <!-- OVERLAYS -->
 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+<?xul-overlay href="/xul/server/cat/bib_brief_overlay.xul"?>
 
 <window id="alt_copy_summary_win" 
 	onload="try { my_init(); font_helper(); } catch(E) { alert(E); }"
@@ -29,7 +30,7 @@
 	<scripts id="openils_util_scripts"/>
 
 	<script type="text/javascript" src="/xul/server/main/JSAN.js"/>
-	<script type="text/javascript" src="alternate_copy_summary.js"/>
+    <script type="text/javascript" src="alternate_copy_summary.js"/>
 
     <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties"/>
 
@@ -37,31 +38,12 @@
 
         <caption label="&staff.circ.alternate_copy_summary.Alternate_View.label;" />
 
-        <grid id="grid0" flex="0">
-            <columns>
-                <column />
-                <column flex="1" />
-                <column />
-                <column />
-            </columns>
-            <rows>
+        <!-- Most of this gets filled in by bib_brief_overlay.xul -->
+        <grid id="bib_brief_grid"> 
+            <rows id="bib_brief_grid_rows">
                 <row>
-                    <label value="&staff.circ.alternate_copy_summary.Title.label;" />
-                    <textbox name="title" readonly="true" context="clipboard"/>
-                    <spacer />
-                    <spacer />
-                </row>
-                <row>
-                    <label value="&staff.circ.alternate_copy_summary.Author.label;" />
-                    <textbox name="author" readonly="true" context="clipboard"/>
-                    <label value="&staff.circ.alternate_copy_summary.Edition.label;" />
-                    <textbox name="edition" readonly="true" context="clipboard"/>
-                </row>
-                <row>
-                    <label value="&staff.circ.alternate_copy_summary.Call_Number.label;" />
+                    <label value="&staff.circ.alternate_copy_summary.Call_Number.label;" accesskey="&staff.circ.alternate_copy_summary.call_number.accesskey;" control="call_number"/>
                     <textbox name="call_number" readonly="true" context="clipboard"/>
-                    <label value="&staff.circ.alternate_copy_summary.Pub_Date.label;" />
-                    <textbox name="pubdate" readonly="true" context="clipboard"/>
                 </row>
             </rows>
         </grid>
@@ -102,8 +84,8 @@
                                 <textbox name="price" readonly="true" context="clipboard"/>
                                 <label value="&staff.circ.alternate_copy_summary.Copy_Location.label;" />
                                 <textbox name="location" readonly="true" context="clipboard"/>
-                                <label value="&staff.circ.alternate_copy_summary.Author.label;" />
-                                <textbox name="author" readonly="true" context="clipboard"/>
+                                <spacer />
+                                <spacer />
                                 <label value="&staff.circ.alternate_copy_summary.Due_Date.label;" />
                                 <textbox name="due_date" readonly="true" context="clipboard"/>
                             </row>
@@ -112,20 +94,18 @@
                                 <textbox name="isbn" readonly="true" context="clipboard"/>
                                 <label value="&staff.circ.alternate_copy_summary.Loan_Duration.label;" />
                                 <textbox name="loan_duration" readonly="true" context="clipboard"/>
-                                <label value="&staff.circ.alternate_copy_summary.Publisher.label;" />
-                                <textbox name="publisher" readonly="true" context="clipboard"/>
+                                <spacer />
+                                <spacer />
                                 <label value="&staff.circ.alternate_copy_summary.Checkout_Date.label;" />
                                 <textbox name="xact_start" readonly="true" context="clipboard"/>
                             </row>
                             <row>
                                 <label value="&staff.circ.alternate_copy_summary.Date_Created.label;" />
-                                <textbox name="date_created" readonly="true" context="clipboard"/>
+                                <textbox name="copy_create_date" readonly="true" context="clipboard"/>
                                 <label value="&staff.circ.alternate_copy_summary.Reference.label;" />
                                 <textbox name="reference" readonly="true" context="clipboard"/>
                                 <label value="&staff.circ.alternate_copy_summary.Total_Circs.label;" />
                                 <textbox name="total_circ_count" readonly="true" context="clipboard"/>
-                                <label value="&staff.circ.alternate_copy_summary.Checkout_Library.label;" />
-                                <textbox name="circ_circ_lib" readonly="true" context="clipboard"/>
                             </row>
                             <row>
                                 <label value="&staff.circ.alternate_copy_summary.Copy_ID.label;" />
@@ -154,8 +134,6 @@
                                 <textbox name="circ_mod" readonly="true" context="clipboard"/>
                                 <label value="&staff.circ.alternate_copy_summary.Rolling_Counter.label;" />
                                 <textbox name="rolling_counter" readonly="true" context="clipboard"/>
-                                <label value="&staff.circ.alternate_copy_summary.Checkin_Library.label;" />
-                                <textbox name="checkin_lib" readonly="true" context="clipboard"/>
                             </row>
                             <row>
                                 <spacer />

Modified: trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties	2009-10-07 15:37:04 UTC (rev 14291)
+++ trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties	2009-10-07 15:56:12 UTC (rev 14292)
@@ -248,8 +248,11 @@
 staff.circ.utils.isbn=ISBN
 staff.circ.utils.pubdate=Publication Date
 staff.circ.utils.publisher=Publisher
+staff.circ.utils.creator=Created By
+staff.circ.utils.editor=Edited By
 # TCN is an acronym for Title Control Number
 staff.circ.utils.tcn=TCN
+staff.circ.utils.tcn_source=TCN Source
 staff.circ.utils.stop_fines=Fines Stopped
 staff.circ.utils.stop_fines_time=Fines Stopped Time
 staff.circ.utils.route_to=Route To



More information about the open-ils-commits mailing list