From 6d4b8f44e7614a37b109570dc7f34017cead3f6e Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Fri, 19 Aug 2011 15:50:22 -0400 Subject: [PATCH] Vandelay: repair item attr context org selector 1. Prevents resetting the context selector to the workstation org unit each time it's changed. 2. Prevent the unintentional pileup of dojo.connect() events, which can lead to exponential growth in the number of server calls to fetch import-item-attribute-definitions with each change of the context org selector. Signed-off-by: Bill Erickson --- Open-ILS/web/js/ui/default/vandelay/vandelay.js | 33 +++++++++++++++---------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/Open-ILS/web/js/ui/default/vandelay/vandelay.js b/Open-ILS/web/js/ui/default/vandelay/vandelay.js index 4ca6f8ef32..fbefe0f379 100644 --- a/Open-ILS/web/js/ui/default/vandelay/vandelay.js +++ b/Open-ILS/web/js/ui/default/vandelay/vandelay.js @@ -1344,23 +1344,30 @@ function buildProfileGrid() { /* --- Import Item Attr Grid --------------- */ var itemAttrContextOrg; +var itemAttrGridFirstTime = true; function vlShowImportItemAttrEditor() { displayGlobalDiv('vl-item-attr-editor-div'); - buildImportItemAttrGrid(); - var connect = function() { - dojo.connect(itemAttrContextOrgSelector, 'onChange', - function() { - itemAttrContextOrg = this.attr('value'); - itemAttrGrid.resetStore(); - vlShowImportItemAttrEditor(); - } - ); - }; + if (itemAttrGridFirstTime) { - new openils.User().buildPermOrgSelector( - 'ADMIN_IMPORT_ITEM_ATTR_DEF', - itemAttrContextOrgSelector, null, connect); + buildImportItemAttrGrid(); + + var connect = function() { + dojo.connect(itemAttrContextOrgSelector, 'onChange', + function() { + itemAttrContextOrg = this.attr('value'); + itemAttrGrid.resetStore(); + buildImportItemAttrGrid(); + } + ); + }; + + new openils.User().buildPermOrgSelector( + 'ADMIN_IMPORT_ITEM_ATTR_DEF', + itemAttrContextOrgSelector, null, connect); + + itemAttrGridFirstTime = false; + } } function buildImportItemAttrGrid() { -- 2.11.0