diff --git a/apps/user_ldap/js/experiencedAdmin.js b/apps/user_ldap/js/experiencedAdmin.js new file mode 100644 index 0000000000..2d500f301b --- /dev/null +++ b/apps/user_ldap/js/experiencedAdmin.js @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2014, Arthur Schiwon + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + +/** + * controls behaviour depend on whether the admin is experienced in LDAP or not. + * + * @class + * @param {object} wizard the LDAP Wizard object + * @param {boolean} initialState whether the admin is experienced or not + */ +function ExperiencedAdmin(wizard, initialState) { + this.wizard = wizard; + this.isExperienced = false; +} + + +/** + * toggles whether the admin is an experienced one or not + * + * @param {boolean} whether the admin is experienced or not + */ +ExperiencedAdmin.prototype.toggle = function(isExperienced) { + this.isExperienced = isExperienced; + if(this.isExperienced) { + this.enableRawMode(); + } +}; + +/** +* answers whether the admin is an experienced one or not +* +* @return {boolean} whether the admin is experienced or not +*/ +ExperiencedAdmin.prototype.isExperienced = function() { + return this.isExperienced; +}; + +/** + * switches all LDAP filters from Assisted to Raw mode. + */ +ExperiencedAdmin.prototype.enableRawMode = function () { + containers = { + 'toggleRawUserFilter' : '#rawGroupFilterContainer', + 'toggleRawLoginFilter': '#rawLoginFilterContainer', + 'toggleRawUserFilter' : '#rawUserFilterContainer' + }; + +// containers.forEach(function(container, method) { + for(method in containers) { + if($(containers[method]).hasClass('invisible')) { + this.wizard[method](); + } + }; + + +}; diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index fd84ca1980..5982d65ad6 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -931,4 +931,10 @@ $(document).ready(function() { LdapConfiguration.refreshConfig(); } }); + + expAdminCB = $('#ldap_experienced_admin'); + LdapWizard.admin = new ExperiencedAdmin(LdapWizard, expAdminCB.is(':checked')); + expAdminCB.change(function() { + LdapWizard.admin.toggle($(this).is(':checked')); + }); }); diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index e7cdd0d926..1e588b1cd8 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -26,6 +26,7 @@ OC_Util::checkAdminUser(); OCP\Util::addScript('user_ldap', 'ldapFilter'); +OCP\Util::addScript('user_ldap', 'experiencedAdmin'); OCP\Util::addScript('user_ldap', 'settings'); OCP\Util::addScript('core', 'jquery.multiselect'); OCP\Util::addStyle('user_ldap', 'settings');