[open-ils-commits] r13949 - in trunk/Open-ILS: web/opac/locale/en-US xul/staff_client/chrome/content/OpenILS xul/staff_client/chrome/content/main xul/staff_client/chrome/content/util xul/staff_client/chrome/locale/en-US xul/staff_client/server/admin xul/staff_client/server/circ xul/staff_client/server/locale/en-US xul/staff_client/server/patron (phasefx)
svn at svn.open-ils.org
svn at svn.open-ils.org
Wed Sep 2 09:39:29 EDT 2009
Author: phasefx
Date: 2009-09-02 09:39:27 -0400 (Wed, 02 Sep 2009)
New Revision: 13949
Added:
trunk/Open-ILS/xul/staff_client/server/admin/work_log.js
trunk/Open-ILS/xul/staff_client/server/admin/work_log.xul
Modified:
trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
trunk/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js
trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
trunk/Open-ILS/xul/staff_client/chrome/content/util/error.js
trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
trunk/Open-ILS/xul/staff_client/server/circ/checkout.js
trunk/Open-ILS/xul/staff_client/server/circ/util.js
trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
trunk/Open-ILS/xul/staff_client/server/patron/display.js
Log:
Simple in-client "activity log" interface (Admin -> Local Administration -> Work Log), and an example of such logging in the Checkout interface.
The log function itself is part of util/error.js. Example:
JSAN.use('util.error'); var logger = new util.error();
logger.work_log(
"Staff member Foo circulated item Bar to patron Baz", // The log message
// Additional Row data to pass to a util.list construct in the work log interface, which can be used in rendering columns, and accessed by actions acting on the list
{
au_id : 1, // Id for patron Baz; needed if you want the Retrieve Patron action to work with this log entry
acp_barcode : 'Bar', // Barcode of the item; needed if you want the Retrieve Item action to work with this log entry
}
);
TODO:
* Add logging statements to the Check In interface (complication there is that we don't have patron data, which would be useful) and Patron Registration
* Possibly add explicit columns for the type of action, the item involved, the patron involved, and the staff involved (to compliment Operator Change), rather than just Message and When.
* Add filtering support for action types
Modified: trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
===================================================================
--- trunk/Open-ILS/web/opac/locale/en-US/lang.dtd 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/web/opac/locale/en-US/lang.dtd 2009-09-02 13:39:27 UTC (rev 13949)
@@ -171,6 +171,16 @@
<!ENTITY staff.admin.survey.save_question.label "Save this Question">
<!ENTITY staff.admin.survey.staff_client.label "Staff Client:">
<!ENTITY staff.admin.survey.start.label "Start:">
+<!ENTITY staff.admin.work_log.list1.header "Most Recent Staff Actions">
+<!ENTITY staff.admin.work_log.list2.header "Most Recently Affected Patrons and Last Action for each">
+<!ENTITY staff.admin.work_log.refresh_btn.label "Refresh">
+<!ENTITY staff.admin.work_log.refresh_btn.accesskey "R">
+<!ENTITY staff.admin.work_log.list1.retrieve_item_btn.label "Retrieve Item">
+<!ENTITY staff.admin.work_log.list1.retrieve_item_btn.accesskey "I">
+<!ENTITY staff.admin.work_log.list1.retrieve_patron_btn.label "Retrieve Patron">
+<!ENTITY staff.admin.work_log.list1.retrieve_patron_btn.accesskey "P">
+<!ENTITY staff.admin.work_log.list2.retrieve_patron_btn.label "Retrieve Patron">
+<!ENTITY staff.admin.work_log.list2.retrieve_patron_btn.accesskey "n">
<!ENTITY staff.auth.login_header "Log in">
<!ENTITY staff.auth.logoff_prompt "Log off">
<!ENTITY staff.auth.logoff_prompt.accesskey "f">
@@ -624,6 +634,8 @@
<!ENTITY staff.main.menu.admin.local_admin.conify.grp_penalty_threshold.label "Group Penalty Thresholds">
<!ENTITY staff.main.menu.admin.local_admin.circ_matrix_matchpoint.label "Circulation Policies">
<!ENTITY staff.main.menu.admin.local_admin.hold_matrix_matchpoint.label "Hold Policies">
+<!ENTITY staff.main.menu.admin.local_admin.work_log.label "Work Log">
+<!ENTITY staff.main.menu.admin.local_admin.work_log.accesskey "W">
<!ENTITY staff.main.menu.admin.server_admin.label "Server Administration">
<!ENTITY staff.main.menu.admin.server_admin.conify.org_unit_type.label "Organization Types">
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -3,6 +3,8 @@
function ses(a) {
JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
switch(a) {
+ case 'staff_id' : return data.list.au[0].id(); break;
+ case 'staff_usrname' : return data.list.au[0].usrname(); break;
case 'ws_ou' :
return data.list.au[0].ws_ou();
break;
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -349,6 +349,7 @@
'XUL_VOLUME_BUCKETS' : '/xul/server/cat/volume_buckets.xul',
'XUL_VOLUME_COPY_CREATOR' : '/xul/server/cat/volume_copy_creator.xul',
'XUL_VOLUME_EDITOR' : '/xul/server/cat/volume_editor.xul',
+ 'XUL_WORK_LOG' : '/xul/server/admin/work_log.xul',
'XUL_Z3950_IMPORT' : '/xul/server/cat/z3950.xul',
'TEST_HTML' : '/xul/server/main/test.html',
'TEST_XUL' : '/xul/server/main/test.xul',
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -95,7 +95,7 @@
obj.set_tab(
loc,
{'tab_name' : label, 'browser' : false },
- {'no_xulG' : false, 'show_print_button' : false, show_nav_buttons:true}
+ {'no_xulG' : false, 'show_print_button' : false, 'show_nav_buttons' : true }
);
}
@@ -553,6 +553,16 @@
function() { open_eg_web_page('conify/global/config/hold_matrix_matchpoint',
'menu.local_admin.hold_matrix_matchpoint.tab'); }
],
+ 'cmd_local_admin_work_log' : [
+ ['oncommand'],
+ function() {
+ obj.set_tab(
+ urls.XUL_WORK_LOG,
+ { 'tab_name' : offlineStrings.getString('menu.local_admin.work_log.tab') },
+ {}
+ );
+ }
+ ],
'cmd_server_admin_org_type' : [
['oncommand'],
function() { open_conify_page('actor/org_unit_type', null); }
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2009-09-02 13:39:27 UTC (rev 13949)
@@ -105,6 +105,7 @@
<command id="cmd_local_admin_transit_list"/>
<command id="cmd_local_admin_circ_matrix_matchpoint"/>
<command id="cmd_local_admin_hold_matrix_matchpoint"/>
+ <command id="cmd_local_admin_work_log"/>
<!-- server admin menu commands -->
<command id="cmd_server_admin_org_type"/>
@@ -292,6 +293,7 @@
<menuitem label="&staff.server.admin.index.transit_list;" command="cmd_local_admin_transit_list"/>
<menuitem label="&staff.main.menu.admin.local_admin.circ_matrix_matchpoint.label;" command="cmd_local_admin_circ_matrix_matchpoint"/>
<menuitem label="&staff.main.menu.admin.local_admin.hold_matrix_matchpoint.label;" command="cmd_local_admin_hold_matrix_matchpoint"/>
+ <menuitem label="&staff.main.menu.admin.local_admin.work_log.label;" accesskey="&staff.main.menu.admin.local_admin.work_log.accesskey;" command="cmd_local_admin_work_log"/>
</menupopup>
</menu>
<menu id="main.menu.admin.server" label="&staff.main.menu.admin.server_admin.label;">
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/util/error.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/util/error.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/util/error.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -552,7 +552,55 @@
return false; // We can pass over low surrogates now as the second component in a pair which we have already processed
}
return str[i];
- }
+ },
+
+ 'work_log' : function(msg,row_data) {
+ try {
+ JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve();
+ var max_entries = data.hash.aous['ui.admin.work_log.max_entries'] || 20;
+ if (! data.work_log) data.work_log = [];
+ if (! row_data) row_data = {};
+ row_data.message = msg;
+ row_data.when = new Date();
+ var ds = {
+ retrieve_id: js2JSON( { 'au_id' : row_data.au_id, 'au_barcode' : row_data.au_barcode, 'au_family_name' : row_data.au_family_name, 'acp_id' : row_data.acp_id, 'acp_barcode' : row_data.acp_barcode } ),
+ row: { my: row_data },
+ to_top: true
+ };
+ data.work_log.push( ds );
+ if (data.work_log.length > max_entries) data.work_log.shift();
+ data.stash('work_log');
+ if (row_data.au_id) {
+ this.patron_log(msg,row_data);
+ }
+ } catch(E) {
+ try { this.standard_unexpected_error_alert('error in error.js, work_log(): ',E); } catch(F) { alert(E); }
+ }
+ },
+
+ 'patron_log' : function(msg,row_data) {
+ try {
+ JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve();
+ var max_entries = data.hash.aous['ui.admin.patron_log.max_entries'] || 10;
+ if (! data.patron_log) data.patron_log = [];
+ if (! row_data) row_data = {};
+ row_data.message = msg;
+ row_data.when = new Date();
+ var ds = {
+ retrieve_id: js2JSON( { 'au_id' : row_data.au_id, 'au_barcode' : row_data.au_barcode, 'au_family_name' : row_data.au_family_name, 'acp_id' : row_data.acp_id, 'acp_barcode' : row_data.acp_barcode } ),
+ row: { my: row_data },
+ to_top: true
+ };
+ if (data.patron_log.length > 0) {
+ if ( data.patron_log[ data.patron_log.length -1 ].row.my.au_id == row_data.au_id ) data.patron_log.pop();
+ }
+ data.patron_log.push( ds );
+ if (data.patron_log.length > max_entries) data.patron_log.shift();
+ data.stash('patron_log');
+ } catch(E) {
+ try { this.standard_unexpected_error_alert('error in error.js, patron_log(): ',E); } catch(F) { alert(E); }
+ }
+ }
}
dump('exiting util/error.js\n');
Modified: trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2009-09-02 13:39:27 UTC (rev 13949)
@@ -227,3 +227,4 @@
menu.cmd_acq_view_distrib_formula.tab=Distribution Formulas
menu.local_admin.circ_matrix_matchpoint.tab=Circulation Policies
menu.local_admin.hold_matrix_matchpoint.tab=Hold Policies
+menu.local_admin.work_log.tab=Work Log
Added: trunk/Open-ILS/xul/staff_client/server/admin/work_log.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/admin/work_log.js (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/admin/work_log.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -0,0 +1,161 @@
+var error;
+var list1; var selected1 = [];
+var list2; var selected2 = [];
+var data;
+
+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 main_test.xul');
+
+ JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
+
+ init_lists();
+ set_behavior();
+ populate_lists();
+ default_focus();
+
+ } catch(E) {
+ try { error.standard_unexpected_error_alert('admin/work_log.xul,my_init():',E); } catch(F) { alert(E); }
+ }
+}
+
+function default_focus() {
+ var btn = document.getElementById('refresh_btn');
+ if (btn) btn.focus();
+}
+
+function init_lists() {
+ try {
+ var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
+ var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
+ var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
+
+ JSAN.use('util.list');
+
+ list1 = new util.list('work_action_log');
+ list2 = new util.list('work_patron_log');
+
+ JSAN.use('circ.util'); var columns = circ.util.work_log_columns({}); var column_mapper_func = circ.util.std_map_row_to_columns();
+
+ list1.init( {
+ 'columns' : columns,
+ 'map_row_to_columns' : column_mapper_func,
+ 'on_select' : function(ev) {
+ JSAN.use('util.functional'); var sel = list1.retrieve_selection();
+ selected1 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
+ if (selected1.length == 0) {
+ cmd_retrieve_patron1.setAttribute('disabled','true');
+ cmd_retrieve_item.setAttribute('disabled','true');
+ } else {
+ cmd_retrieve_patron1.setAttribute('disabled','false');
+ cmd_retrieve_item.setAttribute('disabled','false');
+ }
+ }
+ } );
+
+ list2.init( {
+ 'columns' : columns,
+ 'map_row_to_columns' : column_mapper_func,
+ 'on_select' : function(ev) {
+ JSAN.use('util.functional'); var sel = list1.retrieve_selection();
+ selected2 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
+ if (selected2.length == 0) {
+ cmd_retrieve_patron2.setAttribute('disabled','true');
+ } else {
+ cmd_retrieve_patron2.setAttribute('disabled','false');
+ }
+ }
+ } );
+
+ } catch(E) {
+
+ try { error.standard_unexpected_error_alert('admin/work_log.xul,init_lists():',E); } catch(F) { alert(E); }
+ }
+}
+
+function populate_lists() {
+ try {
+ list1.clear();
+ data.stash_retrieve();
+ if (data.work_log) {
+ for (var i = 0; i < data.work_log.length; i++ ) {
+ list1.append( data.work_log[i] );
+ }
+ }
+ list2.clear();
+ if (data.patron_log) {
+ for (var i = 0; i < data.patron_log.length; i++ ) {
+ list2.append( data.patron_log[i] );
+ }
+ }
+ } catch(E) {
+ try { error.standard_unexpected_error_alert('admin/work_log.xul,populate_lists():',E); } catch(F) { alert(E); }
+ }
+}
+
+function set_behavior() {
+ try {
+ var cmd_refresh = document.getElementById('cmd_refresh');
+ var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
+ var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
+ var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
+
+ if (cmd_refresh) cmd_refresh.addEventListener('command', function() { populate_lists(); }, false);
+
+ function gen_patron_retrieval_func(which) {
+ return function(ev) {
+ try {
+ var selected = which == 1 ? selected1 : selected2;
+ var seen = {};
+ for (var i = 0; i < selected.length; i++) {
+ var patron_id = selected[i].au_id;
+ if (typeof patron_id == 'null') continue;
+ if (seen[patron_id]) continue; seen[patron_id] = true;
+ xulG.new_patron_tab(
+ {},
+ { 'id' : patron_id }
+ );
+ }
+ } catch(E) {
+ error.standard_unexpected_error_alert('Error in work_log.js, patron_retrieval_func():',E);
+ }
+ };
+ }
+ if (cmd_retrieve_patron1) cmd_retrieve_patron1.addEventListener('command', gen_patron_retrieval_func(1), false);
+ if (cmd_retrieve_patron2) cmd_retrieve_patron2.addEventListener('command', gen_patron_retrieval_func(2), false);
+
+ if (cmd_retrieve_item) cmd_retrieve_item.addEventListener(
+ 'command',
+ function(ev) {
+ try {
+ var seen = {}; var barcodes = [];
+ for (var i = 0; i < selected1.length; i++) {
+ var barcode = selected1[i].acp_barcode;
+ if (typeof barcode == 'null') continue;
+ if (seen[barcode]) continue; seen[barcode] = true;
+ barcodes.push( barcode );
+ }
+ if (barcodes.length > 0) {
+ xulG.new_tab(
+ urls.XUL_COPY_STATUS,
+ {},
+ { 'barcodes' : barcodes }
+ );
+ }
+ } catch(E) {
+ error.standard_unexpected_error_alert('Error in work_log.js, retrieve_item():',E);
+ }
+ },
+ false
+ );
+
+ } catch(E) {
+ try { error.standard_unexpected_error_alert('admin/work_log.xul,set_behavior():',E); } catch(F) { alert(E); }
+ }
+}
+
Added: trunk/Open-ILS/xul/staff_client/server/admin/work_log.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/admin/work_log.xul (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/admin/work_log.xul 2009-09-02 13:39:27 UTC (rev 13949)
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!-- Application: Evergreen Staff Client -->
+<!-- Screen: Display log of recent staff actions -->
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- 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="work_log_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"/>
+ <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties" />
+
+ <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
+ <script type="text/javascript" src="work_log.js"/>
+
+ <vbox flex="1">
+ <toolbox>
+ <toolbar>
+ <label value="&staff.admin.work_log.list1.header;" />
+ <spacer flex="1"/>
+ <toolbarbutton id="refresh_btn" label="&staff.admin.work_log.refresh_btn.label;" accesskey="&staff.admin.work_log.refresh_btn.accesskey;" command="cmd_refresh" style="-moz-user-focus: normal" />
+ <toolbarbutton label="&staff.admin.work_log.list1.retrieve_item_btn.label;" accesskey="&staff.admin.work_log.list1.retrieve_item_btn.accesskey;" command="cmd_retrieve_item" style="-moz-user-focus: normal" />
+ <toolbarbutton label="&staff.admin.work_log.list1.retrieve_patron_btn.label;" accesskey="&staff.admin.work_log.list1.retrieve_patron_btn.accesskey;" command="cmd_retrieve_patron1" style="-moz-user-focus: normal" />
+ </toolbar>
+ </toolbox>
+ <tree id="work_action_log" flex="1" enableColumnDrag="true" context="work_log_actions"/>
+ <splitter><grippy/></splitter>
+ <toolbox>
+ <toolbar>
+ <label value="&staff.admin.work_log.list2.header;" />
+ <spacer flex="1"/>
+ <toolbarbutton label="&staff.admin.work_log.list2.retrieve_patron_btn.label;" accesskey="&staff.admin.work_log.list2.retrieve_patron_btn.accesskey;" command="cmd_retrieve_patron2" style="-moz-user-focus: normal" />
+ </toolbar>
+ </toolbox>
+ <tree id="work_patron_log" flex="1" enableColumnDrag="true" context="patron_actions"/>
+ </vbox>
+
+ <popupset>
+ <popup id="work_log_actions">
+ <menuitem label="&staff.admin.work_log.list1.retrieve_item_btn.label;" accesskey="&staff.admin.work_log.list1.retrieve_item_btn.accesskey;" command="cmd_retrieve_item" />
+ <menuitem label="&staff.admin.work_log.list1.retrieve_patron_btn.label;" accesskey="&staff.admin.work_log.list1.retrieve_patron_btn.accesskey;" command="cmd_retrieve_patron1" />
+ </popup>
+ <popup id="patron_actions">
+ <menuitem label="&staff.admin.work_log.list2.retrieve_patron_btn.label;" accesskey="&staff.admin.work_log.list2.retrieve_patron_btn.accesskey;" command="cmd_retrieve_patron2" />
+ </popup>
+ </popupset>
+
+ <commandset>
+ <command id="cmd_refresh" />
+ <command id="cmd_retrieve_item" />
+ <command id="cmd_retrieve_patron1" />
+ <command id="cmd_retrieve_patron2" />
+ </commandset>
+
+</window>
+
Modified: trunk/Open-ILS/xul/staff_client/server/circ/checkout.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/checkout.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/server/circ/checkout.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -429,6 +429,22 @@
//I could override map_row_to_column here
}
);
+ obj.error.work_log(
+ document.getElementById('circStrings').getFormattedString(
+ 'staff.circ.work_log_checkout.message',
+ [
+ ses('staff_usrname'),
+ xulG.patron.family_name(),
+ xulG.patron.card().barcode(),
+ checkout.payload.copy.barcode()
+ ]
+ ), {
+ 'au_id' : xulG.patron.id(),
+ 'au_family_name' : xulG.patron.family_name(),
+ 'au_barcode' : xulG.patron.card().barcode(),
+ 'acp_barcode' : checkout.payload.copy.barcode()
+ }
+ );
document.getElementById('msg_area').removeChild(x);
/*
if (typeof obj.on_checkout == 'function') {
Modified: trunk/Open-ILS/xul/staff_client/server/circ/util.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/util.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/server/circ/util.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -7,7 +7,7 @@
circ.util.EXPORT_OK = [
'offline_checkout_columns', 'offline_checkin_columns', 'offline_renew_columns', 'offline_inhouse_use_columns',
'columns', 'hold_columns', 'checkin_via_barcode', 'std_map_row_to_columns',
- 'show_last_few_circs', 'abort_transits', 'transit_columns', 'renew_via_barcode'
+ 'show_last_few_circs', 'abort_transits', 'transit_columns', 'work_log_columns', 'renew_via_barcode'
];
circ.util.EXPORT_TAGS = { ':all' : circ.util.EXPORT_OK };
@@ -1154,6 +1154,62 @@
return c.sort( function(a,b) { if (a.label < b.label) return -1; if (a.label > b.label) return 1; return 0; } );
};
+circ.util.work_log_columns = function(modify,params) {
+
+ JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
+
+ var c = [
+ {
+ 'persist' : 'hidden width ordinal',
+ 'id' : 'message',
+ 'label' : document.getElementById('circStrings').getString('staff.circ.work_log_column.message'),
+ 'flex' : 3,
+ 'primary' : true,
+ 'hidden' : false,
+ 'render' : function(my) { return my.message; }
+ },
+ {
+ 'persist' : 'hidden width ordinal',
+ 'id' : 'when',
+ 'label' : document.getElementById('circStrings').getString('staff.circ.work_log_column.when'),
+ 'flex' : 1,
+ 'primary' : false,
+ 'hidden' : false,
+ 'render' : function(my) { return String( my.when ); }
+ }
+
+ ];
+ for (var i = 0; i < c.length; i++) {
+ if (modify[ c[i].id ]) {
+ for (var j in modify[ c[i].id ]) {
+ c[i][j] = modify[ c[i].id ][j];
+ }
+ }
+ }
+ if (params) {
+ if (params.just_these) {
+ JSAN.use('util.functional');
+ var new_c = [];
+ for (var i = 0; i < params.just_these.length; i++) {
+ var x = util.functional.find_list(c,function(d){return(d.id==params.just_these[i]);});
+ new_c.push( function(y){ return y; }( x ) );
+ }
+ c = new_c;
+ }
+ if (params.except_these) {
+ JSAN.use('util.functional');
+ var new_c = [];
+ for (var i = 0; i < c.length; i++) {
+ var x = util.functional.find_list(params.except_these,function(d){return(d==c[i].id);});
+ if (!x) new_c.push(c[i]);
+ }
+ c = new_c;
+ }
+
+ }
+ return c.sort( function(a,b) { if (a.label < b.label) return -1; if (a.label > b.label) return 1; return 0; } );
+};
+
circ.util.transit_columns = function(modify,params) {
JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
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-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties 2009-09-02 13:39:27 UTC (rev 13949)
@@ -322,6 +322,9 @@
staff.circ.utils.potential_copies=Potential Copies
staff.circ.utils.queue_position=Queue Position
staff.circ.utils.total_holds=Total Number of Holds
+staff.circ.work_log_column.message=Message
+staff.circ.work_log_column.when=When
+staff.circ.work_log_checkout.message=%1$s circulated %4$s to %3$s (%2$s)
staff.circ.checkin.hold_capture=Hold Capture
staff.circ.checkin.check_in.tab=Item Check In
staff.circ.checkin.error=Check In Failed (in circ.util.checkin) (%1$s):
Modified: trunk/Open-ILS/xul/staff_client/server/patron/display.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/patron/display.js 2009-09-02 12:53:56 UTC (rev 13948)
+++ trunk/Open-ILS/xul/staff_client/server/patron/display.js 2009-09-02 13:39:27 UTC (rev 13949)
@@ -44,6 +44,7 @@
{
'set_tab' : xulG.set_tab,
'patron_id' : obj.patron.id(),
+ 'patron' : obj.patron,
'check_stop_checkouts' : function() { return obj.check_stop_checkouts(); },
'on_list_change' : function(checkout) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
More information about the open-ils-commits
mailing list