[open-ils-commits] r15316 - in branches/rel_1_6/Open-ILS/xul/staff_client: chrome/content/OpenILS chrome/content/util server/circ (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Jan 13 16:52:49 EST 2010


Author: phasefx
Date: 2010-01-13 16:52:43 -0500 (Wed, 13 Jan 2010)
New Revision: 15316

Modified:
   branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
   branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/print.js
   branches/rel_1_6/Open-ILS/xul/staff_client/server/circ/util.js
Log:
backport changeset 14078: changing the hardcoded hold/transit slip logic into 3 separate templates: hold_slip, transit_slip, and hold_transit_slip

Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js	2010-01-13 20:25:51 UTC (rev 15315)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js	2010-01-13 21:52:43 UTC (rev 15316)
@@ -340,6 +340,24 @@
                     'header' : 'Welcome to %LIBRARY%!<br/>\r\nYou have the following titles on hold:<hr/><ol>',
                     'line_item' : '<li>%title%\r\n',
                     'footer' : '</ol><hr />%SHORTNAME% %TODAY_TRIM%<br/>\r\nYou were helped by %STAFF_FIRSTNAME%<br/>\r\n<br/>\r\n'
+                },
+                'hold_slip' : {
+                    'type' : 'holds',
+                    'header' : 'This item needs to be routed to <b>HOLDS SHELF</b>:<br/>\r\n',
+                    'line_item' : 'Barcode: %item_barcode%<br/>\r\nTitle: %item_title%<br/>\r\n<br/>\r\n%hold_for_msg%<br/>\r\nBarcode: %PATRON_BARCODE%<br/>\r\nNotify by phone: %notify_by_phone%<br/>\r\nNotify by email: %notify_by_email%<br/>\r\n<br/>\r\nRequest date: <br/>\r\n',
+                    'footer' : 'Slip Date: %TODAY_TRIM%<br/>\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%<br/>\r\n<br/>\r\n'
+                },
+                'transit_slip' : {
+                    'type' : 'transits',
+                    'header' : 'This item needs to be routed to <b>%route_to%</b>:<br/>\r\n%route_to_org_fullname%<br/>\r\n%street1%<br/>\r\n%street2%<br/>\r\n%city_state_zip%<br/>\r\n<br/>\r\n',
+                    'line_item' : 'Barcode: %item_barcode%<br/>\r\nTitle: %item_title%<br/>\r\nAuthor: %item_author%<br>\r\n<br/>\r\n',
+                    'footer' : 'Slip Date: %TODAY_TRIM%<br/>\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%<br/>\r\n<br/>\r\n'
+                },
+                'hold_transit_slip' : {
+                    'type' : 'transits',
+                    'header' : 'This item needs to be routed to <b>%route_to%</b>:<br/>\r\n%route_to_org_fullname%<br/>\r\n%street1%<br/>\r\n%street2%<br/>\r\n%city_state_zip%<br/>\r\n<br/>\r\n',
+                    'line_item' : 'Barcode: %item_barcode%<br/>\r\nTitle: %item_title%<br/>\r\nAuthor: %item_author%<br>\r\n<br/>\r\n%hold_for_msg%<br/>\r\nBarcode: %PATRON_BARCODE%<br/>\r\nNotify by phone: %notify_by_phone%<br/>\r\nNotify by email: %notify_by_email%<br/>\r\n<br/>\r\nRequest date: <br/>\r\n',
+                    'footer' : 'Slip Date: %TODAY_TRIM%<br/>\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%<br/>\r\n<br/>\r\n'
                 }
             }; 
 

Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/print.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/print.js	2010-01-13 20:25:51 UTC (rev 15315)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/print.js	2010-01-13 21:52:43 UTC (rev 15316)
@@ -115,11 +115,11 @@
     'tree_list' : function (params) { 
         try {
             dump('print.tree_list.params.list = \n' + this.error.pretty_print(js2JSON(params.list)) + '\n');
+            dump('print.tree_list.params.data = \n' + this.error.pretty_print(js2JSON(params.data)) + '\n');
         } catch(E) {
             dump(E+'\n');
         }
         var cols = [];
-
         var s = '';
         if (params.header) s += this.template_sub( params.header, cols, params );
         if (params.list) {
@@ -140,91 +140,93 @@
     },
 
     'template_sub' : function( msg, cols, params ) {
-        if (!msg) { dump('template sub called with empty string\n'); return; }
-        JSAN.use('util.date');
-        var s = msg; var b;
+        try {
+            if (!msg) { dump('template sub called with empty string\n'); return; }
+            JSAN.use('util.date');
+            var s = msg; var b;
 
-        try{b = s; s = s.replace(/%LINE_NO%/,Number(params.row_idx)+1);}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%LINE_NO%/,Number(params.row_idx)+1);}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
 
-        try{b = s; s = s.replace(/%patron_barcode%/,params.patron_barcode);}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%patron_barcode%/,params.patron_barcode);}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
 
-        try{b = s; s = s.replace(/%LIBRARY%/,params.lib.name());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%PINES_CODE%/,params.lib.shortname());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%SHORTNAME%/,params.lib.shortname());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%STAFF_FIRSTNAME%/,params.staff.first_given_name());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%STAFF_LASTNAME%/,params.staff.family_name());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%STAFF_BARCODE%/,params.staff.barcode); }
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%STAFF_PROFILE%/,obj.data.hash.pgt[ params.staff.profile() ].name() ); }
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%PATRON_ALIAS_OR_FIRSTNAME%/,(params.patron.alias() == '' || params.patron.alias() == null) ? params.patron.first_given_name() : params.patron.alias());} 
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');} 
-        try{b = s; s = s.replace(/%PATRON_ALIAS%/,(params.patron.alias() == '' || params.patron.alias() == null) ? '' : params.patron.alias());} 
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');} 
-        try{b = s; s = s.replace(/%PATRON_FIRSTNAME%/,params.patron.first_given_name());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%PATRON_LASTNAME%/,params.patron.family_name());}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s = s.replace(/%PATRON_BARCODE%/,typeof params.patron.card() == 'object' ? params.patron.card().barcode() : util.functional.find_id_object_in_list( params.patron.cards(), params.patron.card() ).barcode() ) ;}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%LIBRARY%/,params.lib.name());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%PINES_CODE%/,params.lib.shortname());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%SHORTNAME%/,params.lib.shortname());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%STAFF_FIRSTNAME%/,params.staff.first_given_name());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%STAFF_LASTNAME%/,params.staff.family_name());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%STAFF_BARCODE%/,params.staff.barcode); }
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%STAFF_PROFILE%/,obj.data.hash.pgt[ params.staff.profile() ].name() ); }
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%PATRON_FIRSTNAME%/,params.patron.first_given_name());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%PATRON_LASTNAME%/,params.patron.family_name());}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s = s.replace(/%PATRON_BARCODE%/,typeof params.patron.card() == 'object' ? params.patron.card().barcode() : util.functional.find_id_object_in_list( params.patron.cards(), params.patron.card() ).barcode() ) ;}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
 
-        try{b = s; s=s.replace(/%TODAY%/g,(new Date()));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_m%/g,(util.date.formatted_date(new Date(),'%m')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_TRIM%/g,(util.date.formatted_date(new Date(),'')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_d%/g,(util.date.formatted_date(new Date(),'%d')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_Y%/g,(util.date.formatted_date(new Date(),'%Y')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_H%/g,(util.date.formatted_date(new Date(),'%H')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_I%/g,(util.date.formatted_date(new Date(),'%I')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_M%/g,(util.date.formatted_date(new Date(),'%M')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_D%/g,(util.date.formatted_date(new Date(),'%D')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
-        try{b = s; s=s.replace(/%TODAY_F%/g,(util.date.formatted_date(new Date(),'%F')));}
-            catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY%/g,(new Date()));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_m%/g,(util.date.formatted_date(new Date(),'%m')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_TRIM%/g,(util.date.formatted_date(new Date(),'')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_d%/g,(util.date.formatted_date(new Date(),'%d')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_Y%/g,(util.date.formatted_date(new Date(),'%Y')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_H%/g,(util.date.formatted_date(new Date(),'%H')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_I%/g,(util.date.formatted_date(new Date(),'%I')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_M%/g,(util.date.formatted_date(new Date(),'%M')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_D%/g,(util.date.formatted_date(new Date(),'%D')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
+            try{b = s; s=s.replace(/%TODAY_F%/g,(util.date.formatted_date(new Date(),'%F')));}
+                catch(E){s = b; this.error.sdump('D_WARN','string = <' + s + '> error = ' + js2JSON(E)+'\n');}
 
-        try {
-            if (typeof params.row != 'undefined') {
-                if (params.row.length >= 0) {
-                    alert('debug - please tell the developers that deprecated template code tried to execute');
-                    for (var i = 0; i < cols.length; i++) {
-                        var re = new RegExp(cols[i],"g");
-                        try{b = s; s=s.replace(re, params.row[i]);}
-                            catch(E){s = b; this.error.standard_unexpected_error_alert('string = <' + s + '> error = ' + js2JSON(E)+'\n',E);}
+            try {
+                if (typeof params.row != 'undefined') {
+                    if (params.row.length >= 0) {
+                        alert('debug - please tell the developers that deprecated template code tried to execute');
+                        for (var i = 0; i < cols.length; i++) {
+                            var re = new RegExp(cols[i],"g");
+                            try{b = s; s=s.replace(re, params.row[i]);}
+                                catch(E){s = b; this.error.standard_unexpected_error_alert('print.js, template_sub(): 1 string = <' + s + '>',E);}
+                        }
+                    } else { 
+                        /* for dump_with_keys */
+                        for (var i in params.row) {
+                            var re = new RegExp('%'+i+'%',"g");
+                            try{b = s; s=s.replace(re, params.row[i]);}
+                                catch(E){s = b; this.error.standard_unexpected_error_alert('print.js, template_sub(): 2 string = <' + s + '>',E);}
+                        }
                     }
-                } else { 
-                    /* for dump_with_keys */
-                    for (var i in params.row) {
+                }
+
+                if (typeof params.data != 'undefined') {
+                    for (var i in params.data) {
                         var re = new RegExp('%'+i+'%',"g");
-                        try{b = s; s=s.replace(re, params.row[i]);}
-                            catch(E){s = b; this.error.standard_unexpected_error_alert('string = <' + s + '> error = ' + js2JSON(E)+'\n',E);}
+                        if (typeof params.data[i] == 'string') {
+                            try{b = s; s=s.replace(re, params.data[i]);}
+                                catch(E){s = b; this.error.standard_unexpected_error_alert('print.js, template_sub(): 3 string = <' + s + '>',E);}
+                        }
                     }
                 }
-            }
+            } catch(E) { dump(E+'\n'); }
 
-            if (typeof params.data != 'undefined') {
-                for (var i in params.data) {
-                    var re = new RegExp('%'+i+'%',"g");
-                    try{b = s; s=s.replace(re, params.data[i]);}
-                        catch(E){s = b; this.error.standard_unexpected_error_alert('string = <' + s + '> error = ' + js2JSON(E)+'\n',E);}
-                }
-            }
-        } catch(E) { dump(E+'\n'); }
-
-        return s;
+            return s;
+        } catch(E) {
+            alert('Error in print.js, template_sub(): ' + E);
+        }
     },
 
 

Modified: branches/rel_1_6/Open-ILS/xul/staff_client/server/circ/util.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/server/circ/util.js	2010-01-13 20:25:51 UTC (rev 15315)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/server/circ/util.js	2010-01-13 21:52:43 UTC (rev 15316)
@@ -2022,9 +2022,47 @@
         }
 
         var msg = '';
+        var print_data = { 
+            'error' : '',
+            'error_msg' : '',
+            'cancelled' : '',
+            'route_to' : '',
+            'route_to_msg' : '',
+            'route_to_org_fullname' : '',
+            'street1' : '',
+            'street2' : '',
+            'city_state_zip' : '',
+            'city' : '',
+            'state' : '',
+            'county' : '',
+            'country' : '',
+            'post_code' : '',
+            'item_barcode' : '',
+            'item_barcode_msg' : '',
+            'item_title' : '',
+            'item_title_msg' : '',
+            'item_author' : '',
+            'item_author_msg' : '',
+            'hold_for_msg' : '',
+            'hold_for_alias' : '',
+            'hold_for_family_name' : '',
+            'hold_for_first_given_name' : '',
+            'hold_for_second_given_name' : '',
+            'user_barcode' : '',
+            'user_barcode_msg' : '',
+            'notify_by_phone' : '',
+            'notify_by_phone_msg' : '',
+            'notify_by_email' : '',
+            'notify_by_email_msg' : '',
+            'request_date' : '',
+            'request_date_msg' : '',
+            'slip_date' : '',
+            'slip_date_msg' : ''
+        };
 
         if (check.payload && check.payload.cancelled_hold_transit) {
-            msg += document.getElementById('circStrings').getString('staff.circ.utils.transit_hold_cancelled');
+            print_data.cancelled = document.getElementById('circStrings').getString('staff.circ.utils.transit_hold_cancelled');
+            msg += print_data.cancelled;
             msg += '\n\n';
         }
 
@@ -2032,8 +2070,9 @@
         if (check.ilsevent == 0 || check.ilsevent == 3 || check.ilsevent == 1202) {
             try { check.route_to = data.lookup('acpl', check.copy.location() ).name(); }
             catch(E) {
-                msg += document.getElementById('commonStrings').getString('common.error');
-                msg += '\nFIXME: ' + E + '\n';
+                print_data.error_msg = document.getElementById('commonStrings').getString('common.error');
+                print_data.error_msg += '\nFIXME: ' + E + '\n';
+                msg += print_data.error_msg;
             }
             if (check.ilsevent == 3 /* NO_CHANGE */) {
                 //msg = 'This item is already checked in.\n';
@@ -2045,16 +2084,20 @@
             }
             if (check.ilsevent == 1202 /* ITEM_NOT_CATALOGED */ && check.copy.status() != 11) {
                 var copy_status = (data.hash.ccs[ check.copy.status() ] ? data.hash.ccs[ check.copy.status() ].name() : check.copy.status().name() );
-                msg = document.getElementById('commonStrings').getString('common.error');
-                msg += '\nFIXME --';
-                msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.item_not_cataloged', [copy_status]);
-                msg + '\n';
+                var err_msg = document.getElementById('commonStrings').getString('common.error');
+                err_msg += '\nFIXME --';
+                err_msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.item_not_cataloged', [copy_status]);
+                err_msg += '\n';
+                msg += err_msg;
+                print_data.error_msg += err_msg;
             }
             switch(Number(check.copy.status())) {
                 case 0: /* AVAILABLE */
                 case 7: /* RESHELVING */
                     if (msg) {
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                        print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                        print_data.route_to = check.route_to;
+                        msg += print_data.route_to_msg;
                         msg += '\n';
                     }
                 break;
@@ -2062,55 +2105,84 @@
                     check.route_to = 'HOLDS SHELF';
                     if (check.payload.hold) {
                         if (check.payload.hold.pickup_lib() != data.list.au[0].ws_ou()) {
-                            msg += document.getElementById('commonStrings').getString('common.error');
-                            msg += '\nFIXME: ';
-                            msg += document.getElementById('circStrings').getString('staff.circ.utils.route_item_error');
+                            var err_msg = document.getElementById('commonStrings').getString('common.error');
+                            err_msg += '\nFIXME: ';
+                            err_msg += document.getElementById('circStrings').getString('staff.circ.utils.route_item_error');
+                            err_msg += '\n';
+                            msg += err_msg;
+                            print_data.error_msg += err_msg;
+                        } else {
+                            print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                            print_data.route_to = check.route_to;
+                            msg += print_data.route_to_msg;
                             msg += '\n';
-                        } else {
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
-                            msg += '.\n';
                         }
                     } else {
-                        msg += document.getElementById('commonStrings').getString('common.error');
-                        msg += '\nFIXME: ';
-                        msg += document.getElementById('circStrings').getString('staff.circ.utils.route_item_status_error');
-                        msg += '\n';
+                        var err_msg = document.getElementById('commonStrings').getString('common.error');
+                        err_msg += '\nFIXME: ';
+                        err_msg += document.getElementById('circStrings').getString('staff.circ.utils.route_item_status_error');
+                        err_msg += '\n';
+                        msg += err_msg;
+                        print_data.error_msg += err_msg;
                     }
                     JSAN.use('util.date');
                     if (check.payload.hold) {
                         JSAN.use('patron.util');
                         msg += '\n';
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [check.payload.copy.barcode()]);
+                        print_data.item_barcode_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [check.payload.copy.barcode()]);
+                        print_data.item_barcode = check.payload.copy.barcode();
+                        msg += print_data.item_barcode_msg;
                         msg += '\n';
                         var payload_title  = (check.payload.record ? check.payload.record.title() : check.payload.copy.dummy_title() );
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.title', [payload_title]);
+                        print_data.item_title_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.title', [payload_title]);
+                        print_data.item_title = payload_title;
+                        msg += print_data.item_title_msg;
                         msg += '\n';
                         var au_obj = patron.util.retrieve_fleshed_au_via_id( session, check.payload.hold.usr() );
+                        print_data.user = au_obj;
                         msg += '\n';
                         if (au_obj.alias()) {
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron_alias',  [au_obj.alias()]);
+                            print_data.hold_for_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron_alias',  [au_obj.alias()]);
+                            print_data.hold_for_alias = au_obj.alias();
+                            msg += print_data.hold_for_msg;
                         } else {
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron',  [au_obj.family_name(), au_obj.first_given_name(), au_obj.second_given_name()]);
+                            print_data.hold_for_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron',  [au_obj.family_name() ? au_obj.family_name() : '', au_obj.first_given_name() ? au_obj.first_given_name() : '', au_obj.second_given_name() ? au_obj.second_given_name() : '']);
+                            msg += print_data.hold_for_msg;
+                            print_data.hold_for_family_name = au_obj.family_name() ? au_obj.family_name() : '';
+                            print_data.hold_for_first_given_name = au_obj.first_given_name() ? au_obj.first_given_name() : '';
+                            print_data.hold_for_second_given_name = au_obj.second_given_name() ? au_obj.second_given_name() : '';
                         }
                         msg += '\n';
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [au_obj.card().barcode()]);
+                        print_data.user_barcode_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [au_obj.card().barcode()]);
+                        print_data.user_barcode = au_obj.card().barcode();
+                        msg += print_data.user_barcode_msg;
                         msg += '\n';
                         if (check.payload.hold.phone_notify()) {
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.phone_notify', [check.payload.hold.phone_notify()]);
+                            print_data.notify_by_phone_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.phone_notify', [check.payload.hold.phone_notify()]);
+                            print_data.notify_by_phone = check.payload.hold.phone_notify();
+                            msg += print_data.notify_by_phone_msg;
                             msg += '\n';
                         }
                         if (get_bool(check.payload.hold.email_notify())) {
                             var payload_email = au_obj.email() ? au_obj.email() : '';
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.email_notify', [payload_email]);
+                            print_data.notify_by_email_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.email_notify', [payload_email]);
+                            print_data.notify_by_email = payload_email;
+                            msg += print_data.notify_by_email_msg;
                             msg += '\n';
                         }
                         msg += '\n';
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.request_date', [util.date.formatted_date(check.payload.hold.request_time(),'%F')]);
+                        print_data.request_date = util.date.formatted_date(check.payload.hold.request_time(),'%F');
+                        print_data.request_date_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.request_date', [print_data.request_date]);
+                        msg += print_data.request_date_msg;
                         msg += '\n';
                     }
                     var rv = 0;
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.slip_date', [util.date.formatted_date(new Date(),'%F')]);
+                    print_data.slip_date = util.date.formatted_date(new Date(),'%F');
+                    print_data.slip_date_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.slip_date', [print_data.slip_date]);
+                    msg += print_data.slip_date_msg;
                     msg += '\n';
+                    print_data.payload = check.payload;
+
                     if (!auto_print) {
                         rv = error.yns_alert_formatted(
                             msg,
@@ -2125,8 +2197,25 @@
                     if (rv == 0) {
                         try {
                             JSAN.use('util.print'); var print = new util.print();
-                            msg = msg.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g,'<br/>');
-                            print.simple( msg , { 'no_prompt' : true, 'content_type' : 'text/html' } );
+                            var old_template = String( data.hash.aous['ui.circ.old_harcoded_slip_template'] ) == 'true';
+                            if (old_template) {
+                                msg = msg.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g,'<br/>');
+                                print.simple( msg , { 'no_prompt' : true, 'content_type' : 'text/html' } );
+                            } else {
+                                var template = 'hold_slip';
+                                var params = {
+                                    'patron' : print_data.user,
+                                    'lib' : data.hash.aou[ check.payload.hold.pickup_lib() ],
+                                    'staff' : data.list.au[0],
+                                    'header' : data.print_list_templates[ template ].header,
+                                    'line_item' : data.print_list_templates[ template ].line_item,
+                                    'footer' : data.print_list_templates[ template ].footer,
+                                    'type' : data.print_list_templates[ template ].type,
+                                    'list' : [ {} ],
+                                    'data' : print_data
+                                };
+                                print.tree_list( params );
+                            }
                         } catch(E) {
                             var err_msg = document.getElementById('commonStrings').getString('common.error');
                             err_msg += '\nFIXME: ' + E + '\n';
@@ -2144,18 +2233,24 @@
                 break;
                 case 6: /* IN TRANSIT */
                     check.route_to = 'TRANSIT SHELF??';
-                    msg += document.getElementById('commonStrings').getString('common.error');
-                    msg += "\nFIXME -- I didn't think we could get here.\n";
+                    print_data.route_to;
+                    var err_msg = document.getElementById('commonStrings').getString('common.error');
+                    err_msg += "\nFIXME -- I didn't think we could get here.\n";
+                    print_data.error_msg += err_msg;
+                    msg += err_msg;
                 break;
                 case 11: /* CATALOGING */
                     check.route_to = 'CATALOGING';
+                    print_data.route_to;
                     if (document.getElementById('do_not_alert_on_precat')) {
                         var x = document.getElementById('do_not_alert_on_precat');
                         if (! x.checked) {
-                            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                            print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                            msg += print_data.route_to_msg;
                         }
                     } else {
-                        msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                        print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                        msg += print_data.route_to_msg;
                     }
                     if (document.getElementById('no_change_label')) {
                         var m = document.getElementById('no_change_label').getAttribute('value');
@@ -2168,9 +2263,12 @@
                     msg += document.getElementById('commonStrings').getString('common.error');
                     var copy_status = data.hash.ccs[check.copy.status()] ? data.hash.ccs[check.copy.status()].name() : check.copy.status().name();
                     msg += '\n';
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.copy_status.error', [copy_status]);
+                    var error_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.copy_status.error', [copy_status]);
+                    print_data.error_msg += error_msg;
+                    msg += error_msg;
                     msg += '\n';
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                    print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.msg', [check.route_to]);
+                    msg += print_data.route_to_msg;
                 break;
             }
             if (msg) {
@@ -2187,7 +2285,11 @@
 
             var lib = data.hash.aou[ check.org ];
             check.route_to = lib.shortname();
-            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.destination', [check.route_to]);
+            print_data.route_to = check.route_to;
+            print_data.route_to_org = lib;
+            print_data.route_to_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.route_to.destination', [check.route_to]);
+            print_data.route_to_org_fullname = lib.name();
+            msg += print_data.route_to_msg;
             msg += '\n\n';
             msg += lib.name();
             msg += '\n';
@@ -2195,55 +2297,89 @@
                 if (lib.holds_address() ) {
                     var a = network.simple_request('FM_AOA_RETRIEVE',[ lib.holds_address() ]);
                     if (typeof a.ilsevent != 'undefined') throw(a);
-                    if (a.street1()) msg += a.street1() + '\n';
-                    if (a.street2()) msg += a.street2() + '\n';
-                    msg += (a.city() ? a.city() + ', ' : '') + (a.state() ? a.state() + ' ' : '') + (a.post_code() ? a.post_code() : '') + '\n';
+                    if (a.street1()) { msg += a.street1() + '\n'; print_data.street1 = a.street1(); }
+                    if (a.street2()) { msg += a.street2() + '\n'; print_data.street2 = a.street2(); }
+                    print_data.city_state_zip = (a.city() ? a.city() + ', ' : '') + (a.state() ? a.state() + ' ' : '') + (a.post_code() ? a.post_code() : '');
+                    print_data.city = a.city();
+                    print_data.state = a.state();
+                    print_data.county = a.county();
+                    print_data.country = a.country();
+                    print_data.post_code = a.post_code();
+                    msg += print_data.city_state_zip + '\n';
                 } else {
-                    msg += document.getElementById('circStrings').getString('staff.circ.utils.route_to.no_address');
+                    print_data.street1 = document.getElementById('circStrings').getString('staff.circ.utils.route_to.no_address');
+                    print_data.no_address = true;
+                    msg += print_data.street1;
                     msg += '\n';
                 }
             } catch(E) {
-                msg += document.getElementById('circStrings').getString('staff.circ.utils.route_to.no_address.error');
-                msg += '\n';
+                var err_msg = document.getElementById('circStrings').getString('staff.circ.utils.route_to.no_address.error');
+                print_data.error_msg += err_msg + '\n';
+                msg += err_msg + '\n';
                 error.standard_unexpected_error_alert(document.getElementById('circStrings').getString('staff.circ.utils.route_to.no_address.error'), E);
             }
             msg += '\n';
-            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [check.payload.copy.barcode()]);
+            print_data.item_barcode_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [check.payload.copy.barcode()]);
+            print_data.item_barcode = check.payload.copy.barcode();
+            msg += print_data.item_barcode_msg;
             msg += '\n';
             var payload_title  = (check.payload.record ? check.payload.record.title() : check.payload.copy.dummy_title() );
-            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.title', [payload_title]);
+            print_data.item_title_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.title', [payload_title]);
+            print_data.item_title = payload_title;
+            msg += print_data.item_title_msg;
             msg += '\n';
             var payload_author = (check.payload.record ? check.payload.record.author() :check.payload.copy.dummy_author());
-            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.author', [payload_author]);
+            print_data.item_author_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.author', [payload_author]);
+            print_data.item_author = payload_author;
+            msg += print_data.item_author_msg;
             msg += '\n';
             JSAN.use('util.date');
             if (check.payload.hold) {
                 JSAN.use('patron.util');
                 var au_obj = patron.util.retrieve_fleshed_au_via_id( session, check.payload.hold.usr() );
+                print_data.user = au_obj;
                 msg += '\n';
                 if (au_obj.alias()) {
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron_alias',  [au_obj.alias()]);
+                    print_data.hold_for_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron_alias',  [au_obj.alias()]);
+                    print_data.hold_for_alias = au_obj.alias();
+                    msg += print_data.hold_for_msg;
                 } else {
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron', [au_obj.family_name(), au_obj.first_given_name(), au_obj.second_given_name()]);
+                    print_data.hold_for_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron',  [au_obj.family_name() ? au_obj.family_name() : '', au_obj.first_given_name() ? au_obj.first_given_name() : '', au_obj.second_given_name() ? au_obj.second_given_name() : '']);
+                    msg += print_data.hold_for_msg;
+                    print_data.hold_for_family_name = au_obj.family_name() ? au_obj.family_name() : '';
+                    print_data.hold_for_first_given_name = au_obj.first_given_name() ? au_obj.first_given_name() : '';
+                    print_data.hold_for_second_given_name = au_obj.second_given_name() ? au_obj.second_given_name() : '';
                 }
                 msg += '\n';
-                msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [au_obj.card().barcode()]);
+                print_data.user_barcode_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.barcode', [au_obj.card().barcode()]);
+                print_data.user_barcode = au_obj.card().barcode();
+                msg += print_data.user_barcode_msg;
                 msg += '\n';
                 if (check.payload.hold.phone_notify()) {
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.phone_notify', [check.payload.hold.phone_notify()]);
+                    print_data.notify_by_phone_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.phone_notify', [check.payload.hold.phone_notify()]);
+                    print_data.notify_by_phone = check.payload.hold.phone_notify();
+                    msg += print_data.notify_by_phone_msg;
                     msg += '\n';
                 }
                 if (get_bool(check.payload.hold.email_notify())) {
                     var payload_email = au_obj.email() ? au_obj.email() : '';
-                    msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.email_notify', [payload_email]);
+                    print_data.notify_by_email_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.email_notify', [payload_email]);
+                    print_data.notify_by_email = payload_email;
+                    msg += print_data.notify_by_email_msg;
                     msg += '\n';
                 }
                 msg += '\n';
-                msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.request_date', [util.date.formatted_date(check.payload.hold.request_time(),'%F')]);
+                print_data.request_date = util.date.formatted_date(check.payload.hold.request_time(),'%F');
+                print_data.request_date_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.request_date', [print_data.request_date]);
+                msg += print_data.request_date_msg;
                 msg += '\n';
             }
             var rv = 0;
-            msg += document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.slip_date', [util.date.formatted_date(new Date(),'%F')]);
+            print_data.slip_date = util.date.formatted_date(new Date(),'%F');
+            print_data.slip_date_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.slip_date', [print_data.slip_date]);
+            msg += print_data.slip_date_msg;
+            print_data.payload = check.payload;
+
             if (!auto_print) {
                 rv = error.yns_alert_formatted(
                     msg,
@@ -2255,13 +2391,28 @@
                     '/xul/server/skin/media/images/turtle.gif'
                 );
             }
-
             if (rv == 0) {
                 try {
                     JSAN.use('util.print'); var print = new util.print();
-                    //print.simple( msg, { 'no_prompt' : true, 'content_type' : 'text/plain' } );
-                    msg = msg.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g,'<br/>');
-                    print.simple( msg , { 'no_prompt' : true, 'content_type' : 'text/html' } );
+                    var old_template = String( data.hash.aous['ui.circ.old_harcoded_slip_template'] ) == 'true';
+                    if (old_template) {
+                        msg = msg.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g,'<br/>');
+                        print.simple( msg , { 'no_prompt' : true, 'content_type' : 'text/html' } );
+                    } else {
+                        var template = check.payload.hold ? 'hold_transit_slip' : 'transit_slip';
+                        var params = {
+                            'patron' : print_data.user,
+                            'lib' : data.hash.aou[ check.payload.hold ? check.payload.hold.pickup_lib() : check.payload.transit.source() ],
+                            'staff' : data.list.au[0],
+                            'header' : data.print_list_templates[ template ].header,
+                            'line_item' : data.print_list_templates[ template ].line_item,
+                            'footer' : data.print_list_templates[ template ].footer,
+                            'type' : data.print_list_templates[ template ].type,
+                            'list' : [ {} ],
+                            'data' : print_data 
+                        };
+                        print.tree_list( params );
+                    }
                 } catch(E) {
                     var err_msg = document.getElementById('commonStrings').getString('common.error');
                     err_msg += '\nFIXME: ' + E + '\n';



More information about the open-ils-commits mailing list