From a120c6b0fd0b94774a4720ecc3365d0da9c443dd 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 fbca54e762..3d6f019ffe 100644 --- a/Open-ILS/web/js/ui/default/vandelay/vandelay.js +++ b/Open-ILS/web/js/ui/default/vandelay/vandelay.js @@ -1690,23 +1690,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