(sitka) Fix RT16494, replace Create Date with Active Date on Item Status screen
authorSteven Chan <schan@sitka.bclibraries.ca>
Wed, 23 Oct 2013 19:11:31 +0000 (12:11 -0700)
committerSteven Chan <schan@sitka.bclibraries.ca>
Wed, 23 Oct 2013 20:18:41 +0000 (13:18 -0700)
In the staff client screen Cataloging -> Display Item, modified layout as
follows.

1. List View column picker
Added Age Hold Protection
Added Date Activated
Added TCN Value

2. Alternate View
Added Age Hold Protection (to 2nd column of layout grid)

In the file server/circ/util.js, modified code as follows.

a. Removed duplicate code defining TCN column picker.

b. Removed export of unused function name, std_map_row_to_columns.

c. Defined a function age_protect_rule_name() to map integer to rule
name that is used by code implementing List View and Alternate View.

Signed-off-by: Steven Chan <schan@sitka.bclibraries.ca>
Open-ILS/web/opac/locale/en-US/lang.dtd
Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
Open-ILS/xul/staff_client/server/circ/util.js
Open-ILS/xul/staff_client/server/locale/en-US/circ.properties

index d52ae78..36b09a4 100644 (file)
 <!ENTITY staff.circ.alternate_copy_summary.Renewal_Type.label "Renewal Type">
 <!ENTITY staff.circ.alternate_copy_summary.Date_Created.label "Date Created">
 <!ENTITY staff.circ.alternate_copy_summary.Date_Active.label "Date Active">
+<!ENTITY staff.circ.alternate.copy_summary.Age_Protect.label "Age Protect">
 <!ENTITY staff.circ.alternate_copy_summary.Status_Changed_Time.label "Status Changed">
 <!ENTITY staff.circ.alternate_copy_summary.Due_Date.label "Due Date">
 <!ENTITY staff.circ.alternate_copy_summary.Edition.label "Edition">
index 29a7dd8..187f824 100644 (file)
@@ -175,7 +175,10 @@ function load_item() {
 
         if (details.copy) {
             set("stat_cat_entries", details.copy.stat_cat_entries()); 
-            set("age_protect", details.copy.age_protect()); 
+
+            JSAN.use('circ.util');
+            set("age_protect", circ.util.age_protect_rule_name( details.copy.age_protect(), data.hash ));
+
             set("alert_message", details.copy.alert_message()); 
             set("barcode", details.copy.barcode()); 
             if (typeof details.copy.call_number() == 'object') {
index 7d39fd9..aee9b43 100644 (file)
                                 <label value="&staff.circ.alternate_copy_summary.Checkin_Workstation.label;" />
                                 <textbox name="checkin_workstation" readonly="true" context="clipboard"/>
                             </row>
+                            <row>
+                                <spacer /><spacer />
+                                <label value="&staff.circ.alternate_copy_summary.Age_Protect.label;" />
+                                <textbox name="age_protect" readonly="true" context="clipboard"/>
+                                <spacer /><spacer />
+                                <spacer /><spacer />
+                            </row>
                         </rows>
                     </grid>
                     <grid id="grid2" flex="1">
index 57e8c10..3d4cb22 100644 (file)
@@ -6,11 +6,26 @@ circ.util = {};
 
 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',
+    'columns', 'hold_columns', 'checkin_via_barcode', 'age_protect_rule_name',
     'show_last_few_circs', 'abort_transits', 'transit_columns', 'work_log_columns', 'renew_via_barcode', 'backdate_post_checkin', 'batch_hold_update'
 ];
 circ.util.EXPORT_TAGS    = { ':all' : circ.util.EXPORT_OK };
 
+// Given an integer representing an age-based hold protection rule, map it to a
+// name using a given lookup table and the config.rule_age_hold_protect map.
+// If a null value is given, then map to 'Unset'.  If an object is given, then
+// presume the object has a name() method which can be called.  If a negative
+// number is given, then return it instead.
+//
+circ.util.age_protect_rule_name = function (ahp, lookup) {
+    return (
+          ahp === null ? document.getElementById('circStrings').getString('staff.circ.utils.unset')
+        : typeof ahp === 'object' ? ahp.name()
+        : Number(ahp) >= 0 ? lookup.crahp[ahp].name()
+        : ahp
+    );
+}
+
 circ.util.abort_transits = function(selection_list) {
     var obj = {};
     JSAN.use('util.error'); obj.error = new util.error();
@@ -1266,6 +1281,37 @@ circ.util.columns = function(modify,params) {
         },
         {
             'persist' : 'hidden width ordinal',
+            'fm_class' : 'acp',
+            'id' : 'acp_active_date',
+            'label' : document.getElementById('circStrings').getString('staff.circ.utils.active_date'),
+            'flex' : 1,
+            'sort_type' : 'date',
+            'primary' : false,
+            'hidden' : true,
+            'editable' : false,
+            'render' : function(my) {
+                return util.date.formatted_date( my.acp.active_date(), '%{localized}' );
+            },
+            'sort_value' : function(my) {
+                return util.date.db_date2Date( my.acp ? my.acp.active_date() : null ).getTime();
+            }
+        },
+        {
+            'id' : 'age_protect',
+            'fm_class' : 'acp',
+            'label' : document.getElementById('circStrings').getString('staff.circ.utils.age_protect'),
+            'flex' : 1,
+            'sort_type' : 'number',
+            'primary' : false,
+            'hidden' : true,
+            'editable' : false,
+            'render' : function (my) {
+                return circ.util.age_protect_rule_name( my.acp.age_protect(), data.hash );
+            },
+            'persist' : 'hidden width ordinal'
+        },
+        {
+            'persist' : 'hidden width ordinal',
             'fm_class' : 'mvr',
             'id' : 'title',
             'label' : document.getElementById('commonStrings').getString('staff.mvr_label_title'),
@@ -1594,7 +1640,7 @@ circ.util.columns = function(modify,params) {
             'persist' : 'hidden width ordinal',
             'fm_class' : 'bre',
             'id' : 'tcn_value',
-            'label' : document.getElementById('circStrings').getString('staff.circ.utils.tcn'),
+            'label' : document.getElementById('circStrings').getString('staff.circ.utils.tcn_value'),
             'flex' : 1,
             'primary' : false,
             'hidden' : true,
@@ -2427,15 +2473,6 @@ circ.util.hold_columns = function(modify,params) {
         },
         {
             'persist' : 'hidden width ordinal',
-            'id' : 'tcn',
-            'label' : document.getElementById('circStrings').getString('staff.circ.utils.tcn'),
-            'flex' : 1,
-            'primary' : false,
-            'hidden' : true,
-            'editable' : false, 'render' : function(my) { return my.mvr.tcn(); }
-        },
-        {
-            'persist' : 'hidden width ordinal',
             'id' : 'notify_time',
             'label' : document.getElementById('circStrings').getString('staff.circ.utils.notify_time'),
             'flex' : 1,
index 2f058ae..16caaa8 100644 (file)
@@ -277,8 +277,10 @@ staff.circ.utils.checkin_time=Checkin Date
 staff.circ.utils.xact_finish=Transaction Finished
 staff.circ.utils.checkin_scan_time=Checkin Scan Date
 staff.circ.utils.checkin_workstation=Checkin Workstation
+staff.circ.utils.active_date=Date Activated
 staff.circ.utils.create_date=Date Created
 staff.circ.utils.edit_date=Date Last Edited 
+staff.circ.utils.age_protect=Age Hold Protection
 staff.circ.utils.bre.create_date=Date Record Created
 staff.circ.utils.bre.edit_date=Date Record Last Edited 
 staff.circ.utils.edition=Edition
@@ -291,6 +293,7 @@ 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.tcn_value=TCN Value
 staff.circ.utils.stop_fines=Fines Stopped
 staff.circ.utils.stop_fines_time=Fines Stopped Time
 staff.circ.utils.route_to=Route To