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

svn at svn.open-ils.org svn at svn.open-ils.org
Thu Sep 3 04:24:41 EDT 2009


Author: phasefx
Date: 2009-09-03 04:24:36 -0400 (Thu, 03 Sep 2009)
New Revision: 13954

Added:
   trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
   trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
Modified:
   trunk/Open-ILS/xul/staff_client/server/circ/copy_status.js
   trunk/Open-ILS/xul/staff_client/server/circ/copy_status.xul
   trunk/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul
   trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
Log:
Alternate Item Status View

This is a work in process and I expect a lot of churn; I promise to I18N-ize it before it leaves trunk.  Some stuff like Rolling Counter is more mock-up than anything; I have no idea what a Rolling Counter is.  :D

The main notion here is that we want a quick toggle in Item Status for a denser view of information for a single item.  Something less like the current Actions -> Show Item Details and more like the MARC View button in the Z39.50 
interface.  Note, you can scan in new barcodes while remaining in this view.   In general, I want to move away from pop-up dialogs and interfaces in any case, and this sort of deck swapping is probably the future.

Feedback welcome.



Added: trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js	2009-09-03 08:24:36 UTC (rev 13954)
@@ -0,0 +1,192 @@
+var error; 
+var network;
+
+function my_init() {
+    try {
+        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+        if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
+        JSAN.errorLevel = "die"; // none, warn, or die
+        JSAN.addRepository('/xul/server/');
+        JSAN.use('util.error'); error = new util.error();
+        error.sdump('D_TRACE','my_init() for alternate_copy_summary.xul');
+
+        JSAN.use('util.network'); network = new util.network();
+
+        setTimeout( function() { load_item(); }, 1000 ); // timeout so xulG gets a chance to get pushed in
+
+    } catch(E) {
+        try { error.standard_unexpected_error_alert('main/test.xul',E); } catch(F) { alert(E); }
+    }
+}
+
+function set(name,value) { 
+    var nodes = document.getElementsByAttribute('name',name); 
+    for (var i = 0; i < nodes.length; i++) {
+        if (value) { nodes[i].setAttribute('value',value); nodes[i].value = value; }; 
+    }
+}
+
+function load_item() {
+    if (! xulG.barcode) return;
+    var details = network.simple_request('FM_ACP_DETAILS_VIA_BARCODE.authoritative', [ ses(), xulG.barcode ]);
+    // Should get back .mvr, .copy, .volume, .transit, .circ, .hold
+
+    if (details.mvr) {
+        set('title', details.mvr.title());
+        set('author', details.mvr.author());
+        set('doc_id', details.mvr.doc_id());
+        set('doc_type', details.mvr.doc_type());
+        set('pubdate', details.mvr.pubdate());
+        set('isbn', details.mvr.isbn());
+        set('publisher', details.mvr.publisher());
+        set('tcn', details.mvr.tcn());
+        set('subject', details.mvr.subject());
+        set('types_of_resource', details.mvr.types_of_resource());
+        set('call_numbers', details.mvr.call_numbers());
+        set('edition', details.mvr.edition());
+        set('online_loc', details.mvr.online_loc());
+        set('synopsis', details.mvr.synopsis());
+        set('physical_description', details.mvr.physical_description());
+        set('toc', details.mvr.toc());
+        set('copy_count', details.mvr.copy_count());
+        set('series', details.mvr.series());
+        set('serials', details.mvr.serials());
+    }
+
+    if (details.copy) {
+        set("stat_cat_entries", details.copy.stat_cat_entries()); 
+        set("age_protect", details.copy.age_protect()); 
+        set("alert_message", details.copy.alert_message()); 
+        set("barcode", details.copy.barcode()); 
+        set("call_number", details.copy.call_number()); 
+        set("circ_as_type", details.copy.circ_as_type()); 
+        set("circ_lib" , details.copy.circ_lib()); 
+        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("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("fine_level", details.copy.fine_level()); 
+        set("holdable", details.copy.holdable()); 
+        set("copy_id", details.copy.id()); 
+        set("loan_duration", details.copy.loan_duration()); 
+        set("location", details.copy.location()); 
+        set("opac_visible", details.copy.opac_visible()); 
+        set("price", details.copy.price()); 
+        set("ref", details.copy.ref()); 
+        set("status", details.copy.status()); 
+        set("notes", details.copy.notes()); 
+        set("stat_cat_entry_copy_maps", details.copy.stat_cat_entry_copy_maps()); 
+        set("circulations", details.copy.circulations()); 
+        set("total_circ_count", details.copy.total_circ_count()); 
+        set("holds", details.copy.holds()); 
+    }
+
+    if (details.volume) {
+        set("copies", details.volume.copies()); 
+        set("create_date", details.volume.create_date()); 
+        set("creator", details.volume.creator()); 
+        set("deleted", details.volume.deleted()); 
+        set("edit_date", details.volume.edit_date()); 
+        set("editor", details.volume.editor()); 
+        set("volume_id", details.volume.id()); 
+        set("label", details.volume.label()); 
+        set("owning_lib" , details.volume.owning_lib()); 
+        set("record", details.volume.record()); 
+        set("notes", details.volume.notes()); 
+        set("uri_maps", details.volume.uri_maps()); 
+        set("uris", details.volume.uris()); 
+    }
+
+    if (details.transit) {
+        set("copy_status", details.transit.copy_status()); 
+        set("dest", details.transit.dest()); 
+        set("dest_recv_time", details.transit.dest_recv_time()); 
+        set("transit_id", details.transit.id()); 
+        set("persistant_transfer", details.transit.persistant_transfer()); 
+        set("prev_hop", details.transit.prev_hop()); 
+        set("source", details.transit.source()); 
+        set("source_send_time", details.transit.source_send_time()); 
+        set("target_copy", details.transit.target_copy()); 
+        set("hold_transit_copy", details.transit.hold_transit_copy()); 
+    }
+
+    if (details.circ) {
+        set("checkin_lib", details.circ.checkin_lib()); 
+        set("checkin_staff", details.circ.checkin_staff()); 
+        set("checkin_time", details.circ.checkin_time()); 
+        set("circ_lib" , details.circ.circ_lib()); 
+        set("circ_staff", details.circ.circ_staff()); 
+        set("desk_renewal", details.circ.desk_renewal()); 
+        set("due_date", details.circ.due_date()); 
+        set("duration", details.circ.duration()); 
+        set("duration_rule", details.circ.duration_rule()); 
+        set("fine_interval", details.circ.fine_interval()); 
+        set("circ_id", details.circ.id()); 
+        set("max_fine", details.circ.max_fine()); 
+        set("max_fine_rule", details.circ.max_fine_rule()); 
+        set("opac_renewal", details.circ.opac_renewal()); 
+        set("phone_renewal", details.circ.phone_renewal()); 
+        set("recuring_fine", details.circ.recuring_fine()); 
+        set("recuring_fine_rule", details.circ.recuring_fine_rule()); 
+        set("renewal_remaining", details.circ.renewal_remaining()); 
+        set("stop_fines", details.circ.stop_fines()); 
+        set("stop_fines_time", details.circ.stop_fines_time()); 
+        set("target_copy", details.circ.target_copy()); 
+        set("usr", details.circ.usr()); 
+        set("xact_finish", details.circ.xact_finish()); 
+        set("xact_start", details.circ.xact_start()); 
+        set("create_time", details.circ.create_time()); 
+        set("workstation", details.circ.workstation()); 
+        set("billings", details.circ.billings()); 
+        set("payments", details.circ.payments()); 
+        set("billable_transaction", details.circ.billable_transaction()); 
+        set("circ_type", details.circ.circ_type()); 
+        set("billing_total", details.circ.billing_total()); 
+        set("payment_total", details.circ.payment_total()); 
+    }
+
+    if (details.hold) {
+        set("status", details.hold.status()); 
+        set("transit", details.hold.transit()); 
+        set("capture_time", details.hold.capture_time()); 
+        set("current_copy", details.hold.current_copy()); 
+        set("email_notify", details.hold.email_notify()); 
+        set("expire_time", details.hold.expire_time()); 
+        set("fulfillment_lib", details.hold.fulfillment_lib()); 
+        set("fulfillment_staff", details.hold.fulfillment_staff()); 
+        set("fulfillment_time", details.hold.fulfillment_time()); 
+        set("hold_type", details.hold.hold_type()); 
+        set("holdable_formats", details.hold.holdable_formats()); 
+        set("hold_id", details.hold.id()); 
+        set("phone_notify", details.hold.phone_notify()); 
+        set("pickup_lib", details.hold.pickup_lib()); 
+        set("prev_check_time", details.hold.prev_check_time()); 
+        set("request_lib", details.hold.request_lib()); 
+        set("request_time", details.hold.request_time()); 
+        set("requestor", details.hold.requestor()); 
+        set("selection_depth", details.hold.selection_depth()); 
+        set("selection_ou", details.hold.selection_ou()); 
+        set("target", details.hold.target()); 
+        set("usr", details.hold.usr()); 
+        set("cancel_time", details.hold.cancel_time()); 
+        set("notify_time", details.hold.notify_time()); 
+        set("notify_count", details.hold.notify_count()); 
+        set("notifications", details.hold.notifications()); 
+        set("bib_rec", details.hold.bib_rec()); 
+        set("eligible_copies", details.hold.eligible_copies()); 
+        set("frozen", details.hold.frozen()); 
+        set("thaw_date", details.hold.thaw_date()); 
+        set("shelf_time", details.hold.shelf_time()); 
+        set("cancel_cause", details.hold.cancel_cause()); 
+        set("cancel_note", details.hold.cancel_note()); 
+        set("notes", details.hold.notes()); 
+    } 
+}

Added: trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul	2009-09-03 08:24:36 UTC (rev 13954)
@@ -0,0 +1,191 @@
+<?xml version="1.0"?>
+<!-- Application: Evergreen Staff Client -->
+<!-- Screen: Alternate Copy Summary -->
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- STYLESHEETS -->
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- LOCALIZATION -->
+<!DOCTYPE window PUBLIC "" ""[
+	<!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
+]>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- OVERLAYS -->
+<?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+
+<window id="alt_copy_summary_win" 
+	onload="try { my_init(); font_helper(); } catch(E) { alert(E); }"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+	<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+	<!-- BEHAVIOR -->
+	<script type="text/javascript">
+		var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true;
+	</script>
+	<scripts id="openils_util_scripts"/>
+
+	<script type="text/javascript" src="/xul/server/main/JSAN.js"/>
+	<script type="text/javascript" src="alternate_copy_summary.js"/>
+
+    <groupbox flex="1">
+
+        <caption label="Alternate View" />
+
+        <grid id="grid0" flex="0">
+            <columns>
+                <column />
+                <column flex="1" />
+                <column />
+                <column />
+            </columns>
+            <rows>
+                <row>
+                    <label value="Title" />
+                    <textbox name="title" readonly="true" />
+                    <spacer />
+                    <spacer />
+                </row>
+                <row>
+                    <label value="Author" />
+                    <textbox name="author" readonly="true" />
+                    <label value="Edition" />
+                    <textbox name="edition" readonly="true" />
+                </row>
+                <row>
+                    <label value="Call Number" />
+                    <textbox name="call_number" readonly="true" />
+                    <label value="Pub Date" />
+                    <textbox name="pubdate" readonly="true" />
+                </row>
+            </rows>
+        </grid>
+
+        <tabbox flex="1">
+            <tabs>
+                <tab label="Quick Summary" />
+                <tab label="Circulation History" />
+                <tab label="Holds/Transit" />
+                <tab label="Cataloging Info" />
+            </tabs>
+            <tabpanels flex="1">
+                <tabpanel orient="vertical">
+                    <grid id="grid1" flex="0">
+                        <columns>
+                            <column id="g1column1"/>
+                            <column />
+                            <column />
+                            <column />
+                            <column />
+                            <column />
+                            <column />
+                            <column />
+                        </columns>
+                        <rows>
+                            <row>
+                                <label value="Barcode" />
+                                <textbox name="barcode" readonly="true"/>
+                                <label value="Owning Library" />
+                                <textbox name="owning_lib" readonly="true"/>
+                                <label value="Call Number" />
+                                <textbox name="call_number" readonly="true"/>
+                                <label value="Status" />
+                                <textbox name="status" readonly="true"/>
+                            </row>
+                            <row>
+                                <label value="Price" />
+                                <textbox name="price" readonly="true"/>
+                                <label value="Copy Location" />
+                                <textbox name="location" readonly="true"/>
+                                <label value="Author" />
+                                <textbox name="author" readonly="true"/>
+                                <label value="Due Date" />
+                                <textbox name="due_date" readonly="true"/>
+                            </row>
+                            <row>
+                                <label value="ISBN" />
+                                <textbox name="isbn" readonly="true"/>
+                                <label value="Loan Duration" />
+                                <textbox name="loan_duration" readonly="true"/>
+                                <label value="Publisher" />
+                                <textbox name="publisher" readonly="true"/>
+                                <label value="Checkout Date" />
+                                <textbox name="checkout_date" readonly="true"/>
+                            </row>
+                            <row>
+                                <label value="Date Created" />
+                                <textbox name="date_created" readonly="true"/>
+                                <label value="Reference" />
+                                <textbox name="reference" readonly="true"/>
+                                <label value="Pub Date" />
+                                <textbox name="pubdate" readonly="true"/>
+                                <label value="Checkout Library" />
+                                <textbox name="checkout_lib" readonly="true"/>
+                            </row>
+                            <row>
+                                <label value="Copy ID" />
+                                <textbox name="copy_id" readonly="true"/>
+                                <label value="OPAC Visible" />
+                                <textbox name="opac_visible" readonly="true"/>
+                                <label value="Edition" />
+                                <textbox name="edition" readonly="true"/>
+                                <label value="Checkin Date" />
+                                <textbox name="checkin_date" readonly="true"/>
+                            </row>
+                            <row>
+                                <label value="TCN" />
+                                <textbox name="tcn" readonly="true"/>
+                                <label value="Holdable" />
+                                <textbox name="holdable" readonly="true"/>
+                                <label value="Total Circs" />
+                                <textbox name="total_circs" readonly="true"/>
+                                <label value="Checkin Library" />
+                                <textbox name="checkin_lib" readonly="true"/>
+                            </row>
+                            <row>
+                                <spacer />
+                                <spacer />
+                                <label value="Circ Modifier" />
+                                <textbox name="circ_mod" readonly="true"/>
+                                <label value="Rolling Counter" />
+                                <textbox name="rolling_counter" readonly="true"/>
+                                <label value="Remaining Renewals" />
+                                <textbox name="remaining_renewals" readonly="true"/>
+                            </row>
+                            <row>
+                                <spacer />
+                                <spacer />
+                                <spacer />
+                                <spacer />
+                                <spacer />
+                                <spacer />
+                                <label value="Hold Shelf Location" />
+                                <textbox name="hold_shelf_loc" readonly="true"/>
+                            </row>
+                        </rows>
+                    </grid>
+                    <grid id="grid2" flex="1">
+                        <columns>
+                            <column id="g2column1" />
+                            <column flex="1" />
+                        </columns>
+                        <rows>
+                            <row>
+                                <label value="Alert" />
+                                <textbox name="alert_message" multiline="true" />
+                            </row>
+                        </rows>
+                    </grid>
+                </tabpanel>
+                <tabpanel />
+                <tabpanel />
+                <tabpanel />
+            </tabpanels>
+        </tabbox>
+    </groupbox>
+
+</window>
+

Modified: trunk/Open-ILS/xul/staff_client/server/circ/copy_status.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/copy_status.js	2009-09-03 04:14:48 UTC (rev 13953)
+++ trunk/Open-ILS/xul/staff_client/server/circ/copy_status.js	2009-09-03 08:24:36 UTC (rev 13954)
@@ -15,6 +15,7 @@
 circ.copy_status.prototype = {
 	'selection_list' : [],
 	'list_copyid_map' : {},
+    'detail_map' : {},
 
 	'init' : function( params ) {
 
@@ -53,6 +54,7 @@
 						);
 						obj.error.sdump('D_TRACE','circ/copy_status: selection list = ' + js2JSON(obj.selection_list) );
 						if (obj.selection_list.length == 0) {
+							obj.controller.view.cmd_alt_view.setAttribute('disabled','true');
 							obj.controller.view.sel_checkin.setAttribute('disabled','true');
 							obj.controller.view.cmd_replace_barcode.setAttribute('disabled','true');
 							obj.controller.view.sel_edit.setAttribute('disabled','true');
@@ -76,6 +78,7 @@
 							obj.controller.view.cmd_mark_library.setAttribute('disabled','true');
 							obj.controller.view.cmd_transfer_volume.setAttribute('disabled','true');
 						} else {
+							obj.controller.view.cmd_alt_view.setAttribute('disabled','false');
 							obj.controller.view.sel_checkin.setAttribute('disabled','false');
 							obj.controller.view.cmd_replace_barcode.setAttribute('disabled','false');
 							obj.controller.view.sel_edit.setAttribute('disabled','false');
@@ -125,6 +128,40 @@
                     ],
                     'sel_clip' : [ ['command'], function() { obj.list.clipboard(); obj.controller.view.copy_status_barcode_entry_textbox.focus(); } ],
                     'save_columns' : [ ['command'], function() { obj.list.save_columns(); obj.controller.view.copy_status_barcode_entry_textbox.focus(); } ],
+                    'alt_view_btn' : [
+                        ['render'],
+                        function(e) {
+                            e.setAttribute('label', document.getElementById("circStrings").getString('staff.circ.copy_status.alt_view.label'));
+                            e.setAttribute('accesskey', document.getElementById("circStrings").getString('staff.circ.copy_status.alt_view.accesskey'));
+                        }
+                    ],
+                    'cmd_alt_view' : [
+                        ['command'],
+                        function(ev) {
+                            try {
+                                var n = obj.controller.view.alt_view_btn;
+                                if (n.getAttribute('toggle') == '1') {
+                                    document.getElementById('deck').selectedIndex = 0;
+                                    n.setAttribute('toggle','0');
+                                    n.setAttribute('label', document.getElementById("circStrings").getString('staff.circ.copy_status.alt_view.label'));
+                                    n.setAttribute('accesskey', document.getElementById("circStrings").getString('staff.circ.copy_status.alt_view.accesskey'));
+                                    //document.getElementById('results').focus();
+                                } else {
+                                    document.getElementById('deck').selectedIndex = 1;
+                                    n.setAttribute('toggle','1');
+                                    n.setAttribute('label', document.getElementById("circStrings").getString('staff.circ.copy_status.list_view.label'));
+                                    n.setAttribute('accesskey', document.getElementById("circStrings").getString('staff.circ.copy_status.list_view.accesskey'));
+                                    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
+                                    var f = obj.browser.get_content();
+                                    xulG.barcode = obj.selection_list[0].barcode; 
+                                    f.xulG = xulG;
+                                    f.load_item();
+                                }
+                            } catch(E) {
+                                alert('Error in copy_status.js, cmd_alt_view handler: ' + E);
+                            }
+                        },
+                    ],
 					'sel_checkin' : [
 						['command'],
 						function() {
@@ -932,6 +969,18 @@
 		this.controller.render();
 		this.controller.view.copy_status_barcode_entry_textbox.focus();
 
+        JSAN.use('util.browser');
+        obj.browser = new util.browser();
+        obj.browser.init(
+            {
+                'url' : 'alternate_copy_summary.xul',
+                'push_xulG' : true,
+                'alt_print' : false,
+                'browser_id' : 'copy_status_frame',
+                'passthru_content_params' : xulG,
+            }
+        );
+
 	},
 
 	'test_barcode' : function(bc) {
@@ -1072,6 +1121,17 @@
 			}
 			var result = obj.network.simple_request('FM_ACP_DETAILS_VIA_BARCODE.authoritative', [ ses(), barcode ]);
 			handle_req({'getResultObject':function(){return result;}}); // used to be async
+            if (result.copy && document.getElementById('deck').selectedIndex == 1) {
+                netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
+                var f = obj.browser.get_content();
+                xulG.barcode = result.copy.barcode(); // FIXME: We could pass the already-fetched data, but need to figure out how to manage that and honor Trim List, the whole point of which is to limit memory consumption
+                if (f) {
+                    f.xulG = xulG;
+                    f.load_item();
+                } else {
+                    alert('hrmm');
+                }
+            }
 			obj.controller.view.copy_status_barcode_entry_textbox.value = '';
 			obj.controller.view.copy_status_barcode_entry_textbox.focus();
 			

Modified: trunk/Open-ILS/xul/staff_client/server/circ/copy_status.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/copy_status.xul	2009-09-03 04:14:48 UTC (rev 13953)
+++ trunk/Open-ILS/xul/staff_client/server/circ/copy_status.xul	2009-09-03 08:24:36 UTC (rev 13954)
@@ -101,6 +101,7 @@
 		<command id="cmd_copy_status_submit_barcode" />
 		<command id="cmd_copy_status_upload_file" />
 		<command id="cmd_copy_status_print" />
+        <command id="cmd_alt_view" disabled="true" />
 		<command id="save_columns" />
 		<command id="sel_copy_details" disabled="true"/>
 		<command id="sel_mark_items_damaged" disabled="true"/>

Modified: trunk/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul	2009-09-03 04:14:48 UTC (rev 13953)
+++ trunk/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul	2009-09-03 08:24:36 UTC (rev 13954)
@@ -85,7 +85,10 @@
 	<groupbox id="cmgb1" flex="2">
 		<caption label="&staff.circ.copy_status_overlay.last_scanned.caption;" />
 		<hbox id="copy_status_top_ui" />
-		<tree id="copy_status_list" flex="1" enableColumnDrag="true" context="copy_status_actions" />
+        <deck id="deck" flex="1">
+            <tree id="copy_status_list" flex="1" enableColumnDrag="true" context="copy_status_actions" />
+            <browser id="copy_status_frame" src="" flex="1" />
+        </deck>
 		<hbox id="copy_status_bottom_ui" />
 	</groupbox>
 </vbox>
@@ -105,6 +108,7 @@
 		accesskey="&staff.circ.copy_status_overlay.copy_status_upload_file.accesskey;"
 		command="cmd_copy_status_upload_file"/>
 	<spacer flex="1"/>
+    <button id="alt_view_btn" command="cmd_alt_view" />
 	<menubar>
 	<menu label="&staff.circ.copy_status_overlay.cataloger_actions.label;" accesskey="&staff.circ.copy_status_overlay.cataloger_actions.accesskey;">
 		<menupopup>

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-09-03 04:14:48 UTC (rev 13953)
+++ trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties	2009-09-03 08:24:36 UTC (rev 13954)
@@ -136,6 +136,10 @@
 staff.circ.copy_status.status.hold=Item is captured for a Hold.
 staff.circ.copy_status.status.transit=Item is in Transit.
 staff.circ.copy_status.status.circ=Item is circulating.
+staff.circ.copy_status.alt_view.label=Alternate View
+staff.circ.copy_status.alt_view.accesskey=V
+staff.circ.copy_status.list_view.label=List View
+staff.circ.copy_status.list_view.accesskey=V
 staff.circ.hold_capture.print.to_printer=To Printer
 # pad this with whitespace to align with the rest of the staff.circ.hold_capture.print.* entries
 staff.circ.hold_capture.print.barcode= Barcode:



More information about the open-ils-commits mailing list