summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-04-28 10:46:23 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2015-04-28 10:46:23 +0200
commit5fa5f46a88371322fa37e1e34ebc73ccea6c42b1 (patch)
treeed9c08ab706dbfafff3d13c155f27d852762c1f1 /apps
parentb55297a059a7ba13517f58d22611f2a3448da2e1 (diff)
parent52025e98399e290931b14796c3f4746901ecde91 (diff)
downloadnextcloud-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.php4
-rw-r--r--apps/user_ldap/js/wizard/wizardTabElementary.js34
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);
});
},