[open-ils-commits] [GIT] Evergreen ILS branch master updated. ff083d56923e2314143a257a6554bf8f773cffcf

Evergreen Git git at git.evergreen-ils.org
Thu Jun 30 12:59:27 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  ff083d56923e2314143a257a6554bf8f773cffcf (commit)
       via  8eb53de49b7872f057cecb4ea607a1fc6e0947f3 (commit)
      from  467d9e051446578df75f4301d248f7a25ae066ef (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ff083d56923e2314143a257a6554bf8f773cffcf
Author: Jason Etheridge <jason at esilibrary.com>
Date:   Tue Jun 14 14:50:33 2011 -0400

    when using params.data keys as print macros, render bare numbers correctly, and treat nulls as empty strings
    
    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
    Signed-off-by: Bill Erickson <berick at esilibrary.com>

diff --git a/Open-ILS/xul/staff_client/chrome/content/util/print.js b/Open-ILS/xul/staff_client/chrome/content/util/print.js
index 28d78f9..34a7157 100644
--- a/Open-ILS/xul/staff_client/chrome/content/util/print.js
+++ b/Open-ILS/xul/staff_client/chrome/content/util/print.js
@@ -294,9 +294,13 @@ util.print.prototype = {
                 if (typeof params.data != 'undefined') {
                     for (var i in params.data) {
                         var re = new RegExp('%'+i+'%',"g");
-                        if (typeof params.data[i] == 'string') {
+                        if (typeof params.data[i] == 'string' || typeof params.data[i] == 'number') {
                             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);}
+                        } else {
+                            /* likely a null, print as an empty string */
+                            try{b = s; s=s.replace(re, '');}
+                                catch(E){s = b; this.error.standard_unexpected_error_alert('print.js, template_sub(): 3 string = <' + s + '>',E);}
                         }
                     }
                 }

commit 8eb53de49b7872f057cecb4ea607a1fc6e0947f3
Author: Jason Etheridge <jason at esilibrary.com>
Date:   Mon Jun 13 15:51:18 2011 -0400

    add Print button and associated template for Holdings Maintenance
    wire up List Actions for Holdings Maintenance
      * give List Actions support for nested rows in trees
      * give util.list.print support for nested rows in trees
      * we can leverage bib_brief_overlay to populate params.data for printing instead of fleshing out DOM
    
    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
    Signed-off-by: Bill Erickson <berick at esilibrary.com>

diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd
index 6b90ecd..4043024 100644
--- a/Open-ILS/web/opac/locale/en-US/lang.dtd
+++ b/Open-ILS/web/opac/locale/en-US/lang.dtd
@@ -2618,6 +2618,8 @@
 <!ENTITY staff.cat.copy_browser.holdings_maintenance.save_columns.label "Save Columns">
 <!ENTITY staff.cat.copy_browser.holdings_maintenance.cmd_refresh_list.label "Refresh Listing">
 <!ENTITY staff.cat.copy_browser.holdings_maintenance.cmd_refresh_list.accesskey "R">
+<!ENTITY staff.cat.copy_browser.holdings_maintenance.print.label "Print">
+<!ENTITY staff.cat.copy_browser.holdings_maintenance.print.accesskey "P">
 <!ENTITY staff.cat.copy_buckets.window_title "Copy Buckets">
 <!ENTITY staff.cat.copy_buckets_overlay.pending_copies "Pending Copies">
 <!ENTITY staff.cat.copy_buckets_overlay.bucket_view "Bucket View">
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 6b4894d..0d59bbc 100644
--- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
+++ b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
@@ -438,6 +438,12 @@ OpenILS.data.prototype = {
                     '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\nBarcode: %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',
                     'line_item' : '%formatted_note%<br/>\r\n',
                     'footer' : '<br/>\r\nRequest date: %request_date%<br/>\r\nSlip Date: %TODAY_TRIM%<br/>\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%<br/>\r\n<br/>\r\n'
+                },
+                'holdings_maintenance' : {
+                    'type' : 'items',
+                    'header' : 'Title: %title%<br/>\r\nAuthor: %author%<br/>\r\nISBN: %isbn% Edition: %edition% PubDate: %pubdate%<br/>\r\nTCN: %tcn_value% Record ID: %mvr_doc_id%<br/>\r\nCreator: %creator% Create Date: %create_date%<br/>\r\nEditor: %editor% Edit Date: %edit_date%<hr/>\r\n',
+                    'line_item' : '%prefix% %tree_location% %suffix% %parts% %acp_status%<br/>\r\n',
+                    'footer' : '<hr />%SHORTNAME% %TODAY_TRIM%<br/>\r\n<br/>\r\n'
                 }
             }; 
 
diff --git a/Open-ILS/xul/staff_client/chrome/content/util/list.js b/Open-ILS/xul/staff_client/chrome/content/util/list.js
index a125c4d..d0b0f26 100644
--- a/Open-ILS/xul/staff_client/chrome/content/util/list.js
+++ b/Open-ILS/xul/staff_client/chrome/content/util/list.js
@@ -1165,22 +1165,31 @@ util.list.prototype = {
     '_dump_tree_with_keys' : function(params) {
         var obj = this;
         var dump = [];
-        for (var i = 0; i < this.treechildren.childNodes.length; i++) {
-            var row = {};
-            var treeitem = this.treechildren.childNodes[i];
-            var treerow = treeitem.firstChild;
-            for (var j = 0; j < treerow.childNodes.length; j++) {
-                if (typeof obj.columns[j] == 'undefined') {
-                    dump('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n');
-                    dump('_dump_tree_with_keys @ ' + location.href + '\n');
-                    dump('\ttreerow.childNodes.length='+treerow.childNodes.length+' j='+j+' obj.columns.length='+obj.columns.length+'\n');
-                    debugger;
-                } else {
-                    row[ obj.columns[j].id ] = treerow.childNodes[j].getAttribute('label');
+
+        function process_tree(treechildren) {
+            for (var i = 0; i < treechildren.childNodes.length; i++) {
+                var row = {};
+                var treeitem = treechildren.childNodes[i];
+                var treerow = treeitem.firstChild;
+                for (var j = 0; j < treerow.childNodes.length; j++) {
+                    if (typeof obj.columns[j] == 'undefined') {
+                        dump('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n');
+                        dump('_dump_tree_with_keys @ ' + location.href + '\n');
+                        dump('\ttreerow.childNodes.length='+treerow.childNodes.length+' j='+j+' obj.columns.length='+obj.columns.length+'\n');
+                        debugger;
+                    } else {
+                        row[ obj.columns[j].id ] = treerow.childNodes[j].getAttribute('label');
+                    }
+                }
+                dump.push( row );
+                if (treeitem.childNodes.length > 1) {
+                    process_tree(treeitem.lastChild);
                 }
             }
-            dump.push( row );
         }
+
+        process_tree(this.treechildren);
+
         return dump;
     },
 
@@ -1214,16 +1223,25 @@ util.list.prototype = {
             _dump += '"' + obj.columns[ ord_cols[j][1] ].label.replace(/"/g, '""') + '"';
         }
         _dump += '\r\n';
-        for (var i = 0; i < this.treechildren.childNodes.length; i++) {
-            var row = '';
-            var treeitem = this.treechildren.childNodes[i];
-            var treerow = treeitem.firstChild;
-            for (var j = 0; j < ord_cols.length; j++) {
-                if (row) row += ',';
-                row += '"' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label').replace(/"/g, '""') + '"';
+
+        function process_tree(treechildren) {
+            for (var i = 0; i < treechildren.childNodes.length; i++) {
+                var row = '';
+                var treeitem = treechildren.childNodes[i];
+                var treerow = treeitem.firstChild;
+                for (var j = 0; j < ord_cols.length; j++) {
+                    if (row) row += ',';
+                    row += '"' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label').replace(/"/g, '""') + '"';
+                }
+                _dump +=  row + '\r\n';
+                if (treeitem.childNodes.length > 1) {
+                    process_tree(treeitem.lastChild);
+                }
             }
-            _dump +=  row + '\r\n';
         }
+
+        process_tree(this.treechildren);
+
         return _dump;
     },
 
@@ -1252,15 +1270,24 @@ util.list.prototype = {
             if ( Number( a[0] ) > Number( b[0] ) ) return 1; 
             return 0;
         } );
-        for (var i = 0; i < this.treechildren.childNodes.length; i++) {
-            var row = document.getElementById('offlineStrings').getString('list.dump_extended_format.record_separator') + '\r\n';
-            var treeitem = this.treechildren.childNodes[i];
-            var treerow = treeitem.firstChild;
-            for (var j = 0; j < ord_cols.length; j++) {
-                row += obj.columns[ ord_cols[j][1] ].label + ': ' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label') + '\r\n';
+
+        function process_tree(treechildren) {
+            for (var i = 0; i < treechildren.childNodes.length; i++) {
+                var row = document.getElementById('offlineStrings').getString('list.dump_extended_format.record_separator') + '\r\n';
+                var treeitem = treechildren.childNodes[i];
+                var treerow = treeitem.firstChild;
+                for (var j = 0; j < ord_cols.length; j++) {
+                    row += obj.columns[ ord_cols[j][1] ].label + ': ' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label') + '\r\n';
+                }
+                _dump +=  row + '\r\n';
+                if (treeitem.childNodes.length > 1) {
+                    process_tree(treeitem.lastChild);
+                }
             }
-            _dump +=  row + '\r\n';
         }
+
+        process_tree(this.treechildren);
+
         return _dump;
     },
 
diff --git a/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js b/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
index d55ea1e..b7dc24a 100644
--- a/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
+++ b/Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
@@ -35,7 +35,11 @@ function bib_brief_overlay(params) {
         }
 
         JSAN.use('util.widgets');
-        function set(name,value) { 
+        function set(name,value) {
+            if (params.print_data) {
+                params.print_data[name] = value;
+                return 1;
+            }
             var nodes = document.getElementsByAttribute('name',name); 
             for (var i = 0; i < nodes.length; i++) {
                 util.widgets.set_text( nodes[i], value ); 
@@ -43,6 +47,10 @@ function bib_brief_overlay(params) {
             return nodes.length;
         }
         function set_tooltip(name,value) { 
+            if (params.print_data) {
+                params.print_data[name] = value;
+                return 1;
+            }
             var nodes = document.getElementsByAttribute('name',name); 
             for (var i = 0; i < nodes.length; i++) {
                 nodes[i].setAttribute('tooltiptext',value);
diff --git a/Open-ILS/xul/staff_client/server/cat/copy_browser.js b/Open-ILS/xul/staff_client/server/cat/copy_browser.js
index 2269e30..8d29b70 100644
--- a/Open-ILS/xul/staff_client/server/cat/copy_browser.js
+++ b/Open-ILS/xul/staff_client/server/cat/copy_browser.js
@@ -998,6 +998,24 @@ cat.copy_browser.prototype = {
                                 }
                                 obj.refresh_list();
                             }
+                        ],
+
+                        'cmd_print_tree' : [
+                            ['command'],
+                            function() {
+                                try {
+                                    var p = {
+                                        'template' : 'holdings_maintenance',
+                                        'mvr_id' : obj.docid,
+                                        'print_data' : {}
+                                    };
+                                    bib_brief_overlay(p);
+                                    p.data = p.print_data;
+                                    obj.list.print(p);
+                                } catch(E) {
+                                    alert('Error in copy_browser.js, cmd_print_tree: ' + E);
+                                }
+                            }
                         ]
                     }
                 }
@@ -1770,6 +1788,9 @@ cat.copy_browser.prototype = {
                 }
             );
 
+            $('list_actions').appendChild( obj.list.render_list_actions() );
+            obj.list.set_list_actions();
+
         } catch(E) {
             this.error.sdump('D_ERROR','cat.copy_browser.list_init: ' + E + '\n');
             alert(E);
diff --git a/Open-ILS/xul/staff_client/server/cat/copy_browser.xul b/Open-ILS/xul/staff_client/server/cat/copy_browser.xul
index 79028aa..359dd12 100644
--- a/Open-ILS/xul/staff_client/server/cat/copy_browser.xul
+++ b/Open-ILS/xul/staff_client/server/cat/copy_browser.xul
@@ -34,6 +34,7 @@ vim:noet:sw=4:ts=4:
 
     <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
     <script type="text/javascript" src="/xul/server/cat/copy_browser.js"/>
+    <script type="text/javascript" src="/xul/server/cat/bib_brief_overlay.js"/>
     <script>
     <![CDATA[
         function my_init() {
@@ -99,6 +100,7 @@ vim:noet:sw=4:ts=4:
         <command id="cmd_mark_library"/>
         <command id="cmd_transfer_volume"/>
         <command id="cmd_refresh_list"/>
+        <command id="cmd_print_tree"/>
     </commandset>
 
     <popupset>
@@ -196,6 +198,14 @@ vim:noet:sw=4:ts=4:
             </menubar>
         </hbox>
         <tree id="copy_tree" flex="1" enableColumnDrag="true" context="copy_browser_actions"/>
+        <hbox>
+            <hbox id="list_actions" />
+            <button
+                label="&staff.cat.copy_browser.holdings_maintenance.print.label;"
+                accesskey="&staff.cat.copy_browser.holdings_maintenance.print.accesskey;"
+                command="cmd_print_tree"
+            />
+        </hbox>
     </groupbox>
 
 </window>

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/web/opac/locale/en-US/lang.dtd            |    2 +
 .../staff_client/chrome/content/OpenILS/data.js    |    6 ++
 .../xul/staff_client/chrome/content/util/list.js   |   83 +++++++++++++-------
 .../xul/staff_client/chrome/content/util/print.js  |    6 +-
 .../staff_client/server/cat/bib_brief_overlay.js   |   10 ++-
 .../xul/staff_client/server/cat/copy_browser.js    |   21 +++++
 .../xul/staff_client/server/cat/copy_browser.xul   |   10 +++
 7 files changed, 108 insertions(+), 30 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list