diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-04-28 10:46:23 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-04-28 10:46:23 +0200 |
commit | 5fa5f46a88371322fa37e1e34ebc73ccea6c42b1 (patch) | |
tree | ed9c08ab706dbfafff3d13c155f27d852762c1f1 /apps | |
parent | b55297a059a7ba13517f58d22611f2a3448da2e1 (diff) | |
parent | 52025e98399e290931b14796c3f4746901ecde91 (diff) | |
download | nextcloud-server-5fa5f46a88371322fa37e1e34ebc73ccea6c42b1.tar.gz nextcloud-server-5fa5f46a88371322fa37e1e34ebc73ccea6c42b1.zip |
Merge pull request #15773 from owncloud/fix-15766
LDAP Wizard: increasing server numbers and avoid configID collisions, fixes #15766
Diffstat (limited to 'apps')
-rw-r--r-- | apps/user_ldap/ajax/getNewServerConfigPrefix.php | 4 | ||||
-rw-r--r-- | apps/user_ldap/js/wizard/wizardTabElementary.js | 34 |
2 files changed, 25 insertions, 13 deletions
diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index d0135917886..aa97b181846 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -35,14 +35,14 @@ $nk = 's'.str_pad($ln+1, 2, '0', STR_PAD_LEFT); $resultData = array('configPrefix' => $nk); +$newConfig = new \OCA\user_ldap\lib\Configuration($nk, false); if(isset($_POST['copyConfig'])) { $originalConfig = new \OCA\user_ldap\lib\Configuration($_POST['copyConfig']); - $newConfig = new \OCA\user_ldap\lib\Configuration($nk, false); $newConfig->setConfiguration($originalConfig->getConfiguration()); - $newConfig->saveConfiguration(); } else { $configuration = new \OCA\user_ldap\lib\Configuration($nk, false); $resultData['defaults'] = $configuration->getDefaults(); } +$newConfig->saveConfiguration(); OCP\JSON::success($resultData); diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js index c7767b9cf66..9619f9f4c84 100644 --- a/apps/user_ldap/js/wizard/wizardTabElementary.js +++ b/apps/user_ldap/js/wizard/wizardTabElementary.js @@ -14,6 +14,9 @@ OCA = OCA || {}; * in the LDAP wizard. */ var WizardTabElementary = OCA.LDAP.Wizard.WizardTabGeneric.subClass({ + /** @property {number} */ + _configChooserNextServerNumber: 1, + /** * initializes the instance. Always call it after initialization. * @@ -24,7 +27,7 @@ OCA = OCA || {}; tabIndex = 0; this._super(tabIndex, tabID); this.isActive = true; - this.configChooserID = '#ldap_serverconfig_chooser'; + this.$configChooser = $('#ldap_serverconfig_chooser'); var items = { ldap_host: { @@ -88,7 +91,7 @@ OCA = OCA || {}; * @returns {string} */ getConfigID: function() { - return $(this.configChooserID).val(); + return this.$configChooser.val(); }, /** @@ -204,9 +207,17 @@ OCA = OCA || {}; */ onNewConfiguration: function(view, result) { if(result.isSuccess === true) { - $(view.configChooserID + ' option:selected').removeAttr('selected'); - var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: $(view.configChooserID + ' option').length + 1})+'</option>'; - $(view.configChooserID + ' option:last').after(html); + console.log('new config'); + var nthServer = view._configChooserNextServerNumber; + view.$configChooser.find('option:selected').removeAttr('selected'); + var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: nthServer})+'</option>'; + if(view.$configChooser.find('option:last').length > 0) { + view.$configChooser.find('option:last').after(html); + } else { + view.$configChooser.html(html); + } + + view._configChooserNextServerNumber++; } }, @@ -222,16 +233,16 @@ OCA = OCA || {}; if(view.getConfigID() === result.configPrefix) { // if the deleted value is still the selected one (99% of // the cases), remove it from the list and load the topmost - $(view.configChooserID + ' option:selected').remove(); - $(view.configChooserID + ' option:first').select(); - if($(view.configChooserID + ' option').length < 2) { + view.$configChooser.find('option:selected').remove(); + view.$configChooser.find('option:first').select(); + if(view.$configChooser.find(' option').length < 1) { view.configModel.newConfig(false); } else { view.configModel.load(view.getConfigID()); } } else { // otherwise just remove the entry - $(view.configChooserID + ' option[value=' + result.configPrefix + ']').remove(); + view.$configChooser.find('option[value=' + result.configPrefix + ']').remove(); } } else { OC.Notification.showTemporary(result.errorMessage); @@ -303,9 +314,10 @@ OCA = OCA || {}; * @private */ _enableConfigChooser: function() { + this._configChooserNextServerNumber = this.$configChooser.find(' option').length + 1; var view = this; - $(this.configChooserID).change(function(){ - var value = $(view.configChooserID + ' option:selected:first').attr('value'); + this.$configChooser.change(function(){ + var value = view.$configChooser.find(' option:selected:first').attr('value'); view.configModel.load(value); }); }, |