summaryrefslogtreecommitdiffstats
path: root/settings/js
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-07-04 16:13:18 +0200
committerGitHub <noreply@github.com>2016-07-04 16:13:18 +0200
commita35747b6fa8f7704bf7333f16a2b867b76acb187 (patch)
tree387158046d1bb7521964bf5f268b0fe60d3e1ecf /settings/js
parenta573b6863cbb4eb21feb7fe5a17a9b8fc60cf059 (diff)
parent819b7c45a94dd86e673a478d13ae100e9bc34ad4 (diff)
downloadnextcloud-server-a35747b6fa8f7704bf7333f16a2b867b76acb187.tar.gz
nextcloud-server-a35747b6fa8f7704bf7333f16a2b867b76acb187.zip
Merge pull request #25253 from owncloud/users-fixotherquotadropdown
Fix "Other" value handling in quota dropdown in users page
Diffstat (limited to 'settings/js')
-rw-r--r--settings/js/users/users.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index e0fccbd9539..2524a1da0bb 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -138,10 +138,13 @@ var UserList = {
.find('option').attr('selected', null)
.first().attr('selected', 'selected');
} else {
- if ($quotaSelect.find('option').filterAttr('value', user.quota).length > 0) {
- $quotaSelect.find('option').filterAttr('value', user.quota).attr('selected', 'selected');
+ var $options = $quotaSelect.find('option');
+ var $foundOption = $options.filterAttr('value', user.quota);
+ if ($foundOption.length > 0) {
+ $foundOption.attr('selected', 'selected');
} else {
- $quotaSelect.append('<option value="' + escapeHTML(user.quota) + '" selected="selected">' + escapeHTML(user.quota) + '</option>');
+ // append before "Other" entry
+ $options.last().before('<option value="' + escapeHTML(user.quota) + '" selected="selected">' + escapeHTML(user.quota) + '</option>');
}
}
@@ -576,6 +579,15 @@ var UserList = {
var $select = $(ev.target);
var uid = UserList.getUID($select);
var quota = $select.val();
+ if (quota === 'other') {
+ return;
+ }
+ if (isNaN(parseInt(quota, 10)) || parseInt(quota, 10) < 0) {
+ // the select component has added the bogus value, delete it again
+ $select.find('option[selected]').remove();
+ OC.Notification.showTemporary(t('core', 'Invalid quota value "{val}"', {val: quota}));
+ return;
+ }
UserList._updateQuota(uid, quota, function(returnedQuota){
if (quota !== returnedQuota) {
$select.find(':selected').text(returnedQuota);