From 3d94aa8953a0d79da2c934b59edd60254e24f5ea Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 14 Jan 2015 17:31:20 +0100 Subject: [PATCH] update user or group count only, when the multiselect is closed --- apps/user_ldap/js/settings.js | 38 +++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 2a8fedf5dde..b1abb0994ba 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -819,15 +819,33 @@ var LdapWizard = { LdapWizard._save(inputObj, val); }, + /** + * updates user or group count on multiSelect close. Resets the event + * function subsequently. + * + * @param {LdapFilter} filter + * @param {Object} $multiSelectObj + */ + onMultiSelectClose: function(filter, $multiSelectObj) { + filter.updateCount(); + $multiSelectObj.multiselect({close: function(){}}); + }, + saveMultiSelect: function(originalObj, resultObj) { - values = ''; - for(i = 0; i < resultObj.length; i++) { + var values = ''; + for(var i = 0; i < resultObj.length; i++) { values = values + "\n" + resultObj[i].value; } LdapWizard._save($('#'+originalObj)[0], $.trim(values)); + var $multiSelectObj = $('#'+originalObj); + var updateCount = !$multiSelectObj.multiselect("isOpen"); + var applyUpdateOnCloseToFilter; if(originalObj === 'ldap_userfilter_objectclass' || originalObj === 'ldap_userfilter_groups') { - LdapWizard.userFilter.compose(true); + LdapWizard.userFilter.compose(updateCount); + if(!updateCount) { + applyUpdateOnCloseToFilter = LdapWizard.userFilter; + } //when user filter is changed afterwards, login filter needs to //be adjusted, too if(!LdapWizard.loginFilter) { @@ -838,7 +856,19 @@ var LdapWizard = { LdapWizard.loginFilter.compose(); } else if(originalObj === 'ldap_groupfilter_objectclass' || originalObj === 'ldap_groupfilter_groups') { - LdapWizard.groupFilter.compose(true); + LdapWizard.groupFilter.compose(updateCount); + if(!updateCount) { + applyUpdateOnCloseToFilter = LdapWizard.groupFilter; + } + } + + if(applyUpdateOnCloseToFilter instanceof LdapFilter) { + $multiSelectObj.multiselect({ + close: function () { + LdapWizard.onMultiSelectClose( + applyUpdateOnCloseToFilter, $multiSelectObj); + } + }); } }, -- 2.39.5