[open-ils-commits] r17509 - trunk/Open-ILS/xul/staff_client/server/circ (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Sep 8 02:50:07 EDT 2010


Author: phasefx
Date: 2010-09-08 02:50:02 -0400 (Wed, 08 Sep 2010)
New Revision: 17509

Modified:
   trunk/Open-ILS/xul/staff_client/server/circ/util.js
Log:
We were shoving a fieldmapper actor.usr object into hold slip templates as params.data.user, but that environment doesn't have fieldmapper, dojo, etc.  To sidestep some difficulties adding such libraries, this takes user stat cat entries and shoves them in as normal Javascript objects (params.data.user_stat_cat_entries)

So you can add something like this to the hold slip template:

<script>
    var x = params.data.user_stat_cat_entries;
    for (var i = 0; i < x.length; i++) {
        document.write(x[i].stat_cat.name + ' : ' + x[i].stat_cat_entry + '<br/>');
    }
</script>

However, such pig-trickery with inline Javascript only works with the Mozilla Print strategy (where we render HTML and execute Javascript).


Modified: trunk/Open-ILS/xul/staff_client/server/circ/util.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/util.js	2010-09-08 06:49:34 UTC (rev 17508)
+++ trunk/Open-ILS/xul/staff_client/server/circ/util.js	2010-09-08 06:50:02 UTC (rev 17509)
@@ -2428,7 +2428,9 @@
             'request_date' : '',
             'request_date_msg' : '',
             'slip_date' : '',
-            'slip_date_msg' : ''
+            'slip_date_msg' : '',
+            'user' : '',
+            'user_stat_cat_entries' : ''
         };
 
         if (check.payload && check.payload.cancelled_hold_transit) {
@@ -2531,6 +2533,26 @@
                         msg += '\n';
                         var au_obj = patron.util.retrieve_fleshed_au_via_id( session, check.payload.hold.usr() );
                         print_data.user = au_obj;
+                        print_data.user_stat_cat_entries = [];
+                        var entries = au_obj.stat_cat_entries();
+                        for (var i = 0; i < entries.length; i++) {
+                            var stat_cat = data.hash.my_actsc[ entries[i].stat_cat() ];
+                            if (!stat_cat) {
+                                stat_cat = data.lookup('actsc', entries[i].stat_cat());
+                            }
+                            print_data.user_stat_cat_entries.push( { 
+                                'id' : entries[i].id(),
+                                'stat_cat' : {
+                                    'id' : stat_cat.id(),
+                                    'name' : stat_cat.name(),
+                                    'opac_visible' : stat_cat.opac_visible(),
+                                    'owner' : stat_cat.owner(),
+                                    'usr_summary' : stat_cat.usr_summary()
+                                },
+                                'stat_cat_entry' : entries[i].stat_cat_entry(),
+                                'target_usr' : entries[i].target_usr() 
+                            } );
+                        }
                         msg += '\n';
                         if (au_obj.alias()) {
                             print_data.hold_for_msg = document.getElementById('circStrings').getFormattedString('staff.circ.utils.payload.hold.patron_alias',  [au_obj.alias()]);



More information about the open-ils-commits mailing list