summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-03-31 11:24:27 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2016-03-31 11:24:27 +0200
commit52f51c94dbdbd38475f72d49a978512ade07e660 (patch)
treef7b6cabc037b178a7d19229c67be77f44ecbb11b /settings
parent82da373ee7a25481451c411d35f49db58002b8a1 (diff)
parentaa2b008577fa9526bc3a041e10e36c8f1c27eb4e (diff)
downloadnextcloud-server-52f51c94dbdbd38475f72d49a978512ade07e660.tar.gz
nextcloud-server-52f51c94dbdbd38475f72d49a978512ade07e660.zip
Merge pull request #15750 from owncloud/loading-feedback-email-usermanagement
Add loading feedback for email change in user management
Diffstat (limited to 'settings')
-rw-r--r--settings/css/settings.css8
-rw-r--r--settings/js/users/users.js33
-rw-r--r--settings/templates/users/part.userlist.php2
3 files changed, 33 insertions, 10 deletions
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 2e7b6d213a5..edc4939d2d8 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -194,6 +194,14 @@ span.usersLastLoginTooltip { white-space: nowrap; }
color: #000000;
}
+#userlist .mailAddress .loading-small {
+ width: 16px;
+ height: 16px;
+ margin-left: -26px;
+ position: relative;
+ top: 3px;
+}
+
tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; }
tr:hover>td.remove>a, tr:hover>td.password>img,tr:hover>td.displayName>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; }
td.remove {
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 261d9a8eb52..9706ac9fbcd 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -728,31 +728,46 @@ $(document).ready(function () {
var mailAddress = escapeHTML(UserList.getMailAddress($td));
var $input = $('<input type="text">').val(mailAddress);
$td.children('span').replaceWith($input);
+ $td.find('img').hide();
$input
.focus()
.keypress(function (event) {
if (event.keyCode === 13) {
- $tr.data('mailAddress', $input.val());
- $input.blur();
+ // enter key
+
+ var mailAddress = $input.val();
+ $td.find('.loading-small').css('display', 'inline-block');
+ $input.css('padding-right', '26px');
+ $input.attr('disabled', 'disabled');
$.ajax({
type: 'PUT',
url: OC.generateUrl('/settings/users/{id}/mailAddress', {id: uid}),
data: {
mailAddress: $(this).val()
}
- }).fail(function (result) {
- OC.Notification.show(result.responseJSON.data.message);
- // reset the values
+ }).success(function () {
+ // set data attribute to new value
+ // will in blur() be used to show the text instead of the input field
$tr.data('mailAddress', mailAddress);
- $tr.children('.mailAddress').children('span').text(mailAddress);
+ $td.find('.loading-small').css('display', '');
+ $input.removeAttr('disabled')
+ .triggerHandler('blur'); // needed instead of $input.blur() for Firefox
+ }).fail(function (result) {
+ OC.Notification.showTemporary(result.responseJSON.data.message);
+ $td.find('.loading-small').css('display', '');
+ $input.removeAttr('disabled')
+ .css('padding-right', '6px');
});
}
})
.blur(function () {
- var mailAddress = $tr.data('mailAddress');
- var $span = $('<span>').text(mailAddress);
- $tr.data('mailAddress', mailAddress);
+ if($td.find('.loading-small').css('display') === 'inline-block') {
+ // in Chrome the blur event is fired too early by the browser - even if the request is still running
+ return;
+ }
+ var $span = $('<span>').text($tr.data('mailAddress'));
$input.replaceWith($span);
+ $td.find('img').show();
});
});
diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php
index 15b7cb4abd7..697d0f3f142 100644
--- a/settings/templates/users/part.userlist.php
+++ b/settings/templates/users/part.userlist.php
@@ -34,7 +34,7 @@
src="<?php print_unescaped(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t("set new password"))?>" title="<?php p($l->t("set new password"))?>"/>
</td>
- <td class="mailAddress"><span></span> <img class="svg action"
+ <td class="mailAddress"><span></span><div class="loading-small hidden"></div> <img class="svg action"
src="<?php p(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t('change email address'))?>" title="<?php p($l->t('change email address'))?>"/>
</td>