From 5ff5e4111df02a238e68f4c1fdb13055e6aad234 Mon Sep 17 00:00:00 2001
From: phasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Sun, 12 Sep 2010 18:43:38 +0000
Subject: [PATCH] staff.circ_modifier.display localization for rendering circ
 modifiers

git-svn-id: svn://svn.open-ils.org/ILS/trunk@17614 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js       |  6 ++++--
 Open-ILS/xul/staff_client/server/cat/copy_editor.js            |  4 ++--
 .../xul/staff_client/server/circ/alternate_copy_summary.js     |  3 ++-
 Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul       | 10 +++++++++-
 Open-ILS/xul/staff_client/server/circ/util.js                  |  2 +-
 .../xul/staff_client/server/locale/en-US/common.properties     |  1 +
 Open-ILS/xul/staff_client/server/serial/batch_receive.js       |  3 +--
 7 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
index 7ec636d26d..803e1077fe 100644
--- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
+++ b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
@@ -519,9 +519,11 @@ OpenILS.data.prototype = {
         this.chain.push(
             function() {
                 try {
-                    var robj = obj.network.simple_request('CIRC_MODIFIER_LIST',[]);
+                    var robj = obj.network.simple_request('CIRC_MODIFIER_LIST',[{'full':true}]);
                     if (typeof robj.ilsevent != 'undefined') throw(robj);
-                    obj.list.circ_modifier = robj;
+                    obj.list.ccm = robj == null ? [] : robj;
+                    obj.hash.ccm = util.functional.convert_object_list_to_hash( obj.list.ccm );
+                    obj.list.circ_modifier = util.functional.map_list( obj.list.ccm, function(o) { return o.code(); } );
                     obj.data_progress('Retrieved circ modifier list. ');
                 } catch(E) {
                     var error = 'Error: ' + js2JSON(E);
diff --git a/Open-ILS/xul/staff_client/server/cat/copy_editor.js b/Open-ILS/xul/staff_client/server/cat/copy_editor.js
index 646789d975..5fd09ae717 100644
--- a/Open-ILS/xul/staff_client/server/cat/copy_editor.js
+++ b/Open-ILS/xul/staff_client/server/cat/copy_editor.js
@@ -888,8 +888,8 @@ g.panes_and_field_names = {
     [
         $('catStrings').getString('staff.cat.copy_editor.field.circulation_modifier.label'),
         {    
-            render: 'fm.circ_modifier() == null ? $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null") : fm.circ_modifier()',
-            input: 'c = function(v){ g.apply("circ_modifier",v); if (typeof post_c == "function") post_c(v); }; x = util.widgets.make_menulist( [ [ $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"), "<HACK:KLUDGE:NULL>" ] ].concat( util.functional.map_list( g.data.list.circ_modifier, function(obj) { return [ obj, obj ]; } ).sort() ) ); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
+            render: 'fm.circ_modifier() == null ? $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null") : $("commonStrings").getFormattedString("staff.circ_modifier.display",[fm.circ_modifier(),g.data.hash.ccm[fm.circ_modifier()].name(),g.data.hash.ccm[fm.circ_modifier()].description()])',
+            input: 'c = function(v){ g.apply("circ_modifier",v); if (typeof post_c == "function") post_c(v); }; x = util.widgets.make_menulist( [ [ $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"), "<HACK:KLUDGE:NULL>" ] ].concat( util.functional.map_list( g.data.list.ccm, function(obj) { return [ $("commonStrings").getFormattedString("staff.circ_modifier.display",[obj.code(),obj.name(),obj.description()]), obj.code() ]; } ).sort() ) ); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
         }
     ],
 ],
diff --git a/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js b/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
index 0deea00730..8128241227 100644
--- a/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
+++ b/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
@@ -168,7 +168,8 @@ function load_item() {
             set("circ_as_type", details.copy.circ_as_type()); 
             set("copy_circ_lib" , typeof details.copy.circ_lib() == 'object' ? details.copy.circ_lib().shortname() : data.hash.aou[ details.copy.circ_lib() ].shortname()); 
             set_tooltip("copy_circ_lib" , typeof details.copy.circ_lib() == 'object' ? details.copy.circ_lib().name() : data.hash.aou[ details.copy.circ_lib() ].name()); 
-            set("circ_modifier", details.copy.circ_modifier()); 
+            var cm = details.copy.circ_modifier();
+            set("circ_modifier", document.getElementById('commonStrings').getFormattedString('staff.circ_modifier.display',[cm,data.hash.ccm[cm].name(),data.hash.ccm[cm].description()])); 
             set("circulate", get_localized_bool( details.copy.circulate() )); 
             set("copy_number", details.copy.copy_number()); 
             set("copy_create_date", util.date.formatted_date( details.copy.create_date(), '%{localized}' )); 
diff --git a/Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul b/Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul
index 2668ad39e1..e8b20d6338 100644
--- a/Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul
+++ b/Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul
@@ -56,7 +56,15 @@
             JSAN.use('util.widgets'); JSAN.use('util.functional');
             var x = util.widgets.make_menulist( 
                 [ [ $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"), "<HACK:KLUDGE:NULL>" ] ].concat( 
-                    util.functional.map_list( g.data.list.circ_modifier, function(obj) { return [ obj, obj ]; } ).sort() 
+                    util.functional.map_list(
+                        g.data.list.ccm,
+                        function(obj) {
+                            return [
+                                document.getElementById('commonStrings').getFormattedString('staff.circ_modifier.display',[obj.code(),obj.name(),obj.description()]),
+                                obj.code()
+                            ];
+                        }
+                    ).sort() 
                 ) 
             );
             x.setAttribute('id','dummy_circ_modifier');
diff --git a/Open-ILS/xul/staff_client/server/circ/util.js b/Open-ILS/xul/staff_client/server/circ/util.js
index 1f378599f9..3697f5a99d 100644
--- a/Open-ILS/xul/staff_client/server/circ/util.js
+++ b/Open-ILS/xul/staff_client/server/circ/util.js
@@ -875,7 +875,7 @@ circ.util.columns = function(modify,params) {
             'flex' : 1,
             'primary' : false,
             'hidden' : true,
-            'editable' : false, 'render' : function(my) { return my.acp.circ_modifier(); }
+            'editable' : false, 'render' : function(my) { var cm = my.acp.circ_modifier(); return document.getElementById('commonStrings').getFormattedString('staff.circ_modifier.display',[cm,data.hash.ccm[cm].name(),data.hash.ccm[cm].description()]); }
         },
         {
             'id' : 'status_changed_time',
diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/common.properties b/Open-ILS/xul/staff_client/server/locale/en-US/common.properties
index 968d52c4a9..029ed4163b 100644
--- a/Open-ILS/xul/staff_client/server/locale/en-US/common.properties
+++ b/Open-ILS/xul/staff_client/server/locale/en-US/common.properties
@@ -34,6 +34,7 @@ staff.acp_label_call_number=Call Number
 staff.acp_label_circ_as_type=Circulate As Type
 staff.acp_label_circ_lib=Circulation Library
 staff.acp_label_circ_modifier=Circulation Modifier
+staff.circ_modifier.display=%1$s : %2$s : %3$s
 staff.acp_label_copy_number=Copy Number
 staff.acp_label_deposit_amount=Deposit Amount
 staff.acp_label_fine_level=Fine Level
diff --git a/Open-ILS/xul/staff_client/server/serial/batch_receive.js b/Open-ILS/xul/staff_client/server/serial/batch_receive.js
index f43995ddef..b549683f6f 100644
--- a/Open-ILS/xul/staff_client/server/serial/batch_receive.js
+++ b/Open-ILS/xul/staff_client/server/serial/batch_receive.js
@@ -182,8 +182,7 @@ function BatchReceiver() {
                                     dojo.create(
                                         "menuitem", {
                                             "value": mod.code(),
-                                            /* XXX use format string */
-                                            "label": mod.code()+" "+mod.name()
+                                            "label": document.getElementById('commonStrings').getFormattedString('staff.circ_modifier.display',[mod.code(),mod.name(),mod.description()]) 
                                         }, menupopup, "last"
                                     );
                                 }
-- 
2.11.0