diff options
Diffstat (limited to 'apps/user_ldap/js/settings.js')
-rw-r--r-- | apps/user_ldap/js/settings.js | 72 |
1 files changed, 66 insertions, 6 deletions
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 5b5f2030635..acf88ef58a4 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -407,6 +407,7 @@ var LdapWizard = { if($('#rawLoginFilterContainer').hasClass('invisible')) { $('#ldap_loginfilter_attributes').multiselect('enable'); } + LdapWizard.postInitLoginFilter(); }, function (result) { //deactivate if no attributes found @@ -443,10 +444,24 @@ var LdapWizard = { //enable only when raw filter editing is not turned on $('#'+multisel).multiselect('enable'); } + if(type === 'Users') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } }, function (result) { LdapWizard.hideSpinner('#'+multisel); $('#'+multisel).multiselect('disable'); + if(type == 'Users') { + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } } ); }, @@ -471,9 +486,23 @@ var LdapWizard = { LdapWizard.hideSpinner('#'+multisel); LdapWizard.applyChanges(result); $('#'+multisel).multiselect('refresh'); + if(type === 'User') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } }, function (result) { LdapWizard.hideSpinner('#'+multisel); + if(type == 'User') { + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } //TODO: error handling } ); @@ -489,13 +518,17 @@ var LdapWizard = { loginfilter = $('#ldap_login_filter').val(); //FIXME: activates a manually deactivated configuration. - if(host && port && base && userfilter && loginfilter) { + if(host && port && base && userfilter && loginfilter) { LdapWizard.updateStatusIndicator(true); if($('#ldap_configuration_active').is(':checked')) { return; } - $('#ldap_configuration_active').prop('checked', true); - LdapWizard.save($('#ldap_configuration_active')[0]); + if(!LdapWizard.isConfigurationActiveControlLocked) { + //avoids a manually deactivated connection will be activated + //upon opening the admin page + $('#ldap_configuration_active').prop('checked', true); + LdapWizard.save($('#ldap_configuration_active')[0]); + } } else { if($('#ldap_configuration_active').is(':checked')) { $('#ldap_configuration_active').prop('checked', false); @@ -517,9 +550,12 @@ var LdapWizard = { $(id + " + button").css('display', 'inline'); }, + isConfigurationActiveControlLocked: true, + init: function() { LdapWizard.basicStatusCheck(); LdapWizard.functionalityCheck(); + LdapWizard.isConfigurationActiveControlLocked = false; }, initGroupFilter: function() { @@ -529,11 +565,21 @@ var LdapWizard = { LdapWizard.countGroups(); }, + /** init login filter tab section **/ + initLoginFilter: function() { LdapWizard.regardFilterMode('Login'); LdapWizard.findAttributes(); }, + postInitLoginFilter: function() { + if($('#rawLoginFilterContainer').hasClass('invisible')) { + LdapWizard.composeFilter('login'); + } + }, + + /** end of init user filter tab section **/ + initMultiSelect: function(object, id, caption) { object.multiselect({ header: false, @@ -546,13 +592,29 @@ var LdapWizard = { }); }, + /** init user filter tab section **/ + + userFilterObjectClassesHasRun: false, + userFilterAvailableGroupsHasRun: false, + initUserFilter: function() { + LdapWizard.userFilterObjectClassesHasRun = false; + LdapWizard.userFilterAvailableGroupsHasRun = false; LdapWizard.regardFilterMode('User'); LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User'); LdapWizard.findAvailableGroups('ldap_userfilter_groups', 'Users'); - LdapWizard.countUsers(); }, + postInitUserFilter: function() { + if(LdapWizard.userFilterObjectClassesHasRun + && LdapWizard.userFilterAvailableGroupsHasRun) { + LdapWizard.composeFilter('user'); + LdapWizard.countUsers(); + } + }, + + /** end of init user filter tab section **/ + onTabChange: function(event, ui) { newTabIndex = 0; if(ui.newTab[0].id === '#ldapWizard2') { @@ -619,8 +681,6 @@ var LdapWizard = { } else if(mode == LdapWizard.filterModeAssisted && !$('#raw'+subject+'FilterContainer').hasClass('invisible')) { LdapWizard['toggleRaw'+subject+'Filter'](); - } else { - c = $('#raw'+subject+'FilterContainer').hasClass('invisible'); } }, function (result) { |