From f693e8b1f638fc6742c03b765fb6702d60e4c054 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 adadacf2d3..3859c56b19 100644 --- a/Open-ILS/web/js/ui/default/vandelay/vandelay.js +++ b/Open-ILS/web/js/ui/default/vandelay/vandelay.js @@ -1346,23 +1346,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