LP1053526 - Don't inadvertently modify the in-memory org tree when printing
authorJason Etheridge <jason@esilibrary.com>
Thu, 20 Sep 2012 17:10:15 +0000 (13:10 -0400)
committerBen Shum <bshum@biblio.org>
Mon, 4 Feb 2013 15:17:20 +0000 (10:17 -0500)
To see an example of this causing a problem, load Holdings Maintenance for
an arbitrary bib record with items. Make sure the Hide Empty Libs checkbox
is checked. Hit the Print button at the bottom of the UI (it's okay to then
Cancel the print). Then hit Refresh. It should result in an org.children()
is null error.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/xul/staff_client/chrome/content/util/list.js

index 9b37385..e9bf29a 100644 (file)
@@ -1574,8 +1574,8 @@ util.list.prototype = {
                 params.staff = data.list.au[0];
             }
             if (!params.lib && data.list.au && data.list.au[0] && data.list.au[0].ws_ou() && data.hash.aou && data.hash.aou[ data.list.au[0].ws_ou() ]) {
-                params.lib = data.hash.aou[ data.list.au[0].ws_ou() ];
-                params.lib.children(null);
+                params.lib = JSON2js( js2JSON( data.hash.aou[ data.list.au[0].ws_ou() ] ) ); // clone this sucker
+                params.lib.children(null); // since we're modifying it
             }
             if (params.template && data.print_list_templates[ params.template ]) {
                 var template = data.print_list_templates[ params.template ];