diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php index 46782a0cac..e9ffc36904 100644 --- a/settings/controller/userscontroller.php +++ b/settings/controller/userscontroller.php @@ -504,7 +504,12 @@ class UsersController extends Controller { ); } - $this->config->setUserValue($id, 'settings', 'email', $mailAddress); + // delete user value if email address is empty + if($mailAddress === '') { + $this->config->deleteUserValue($id, 'settings', 'email'); + } else { + $this->config->setUserValue($id, 'settings', 'email', $mailAddress); + } return new DataResponse( array( diff --git a/settings/js/personal.js b/settings/js/personal.js index c9ecfdb486..3745b1372e 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -12,8 +12,9 @@ * user or 1 second after the last data entry * * @param callback + * @param allowEmptyValue if this is set to true the callback is also called when the value is empty */ -jQuery.fn.keyUpDelayedOrEnter = function (callback) { +jQuery.fn.keyUpDelayedOrEnter = function (callback, allowEmptyValue) { var cb = callback; var that = this; this.keyup(_.debounce(function (event) { @@ -21,13 +22,13 @@ jQuery.fn.keyUpDelayedOrEnter = function (callback) { if (event.keyCode === 13) { return; } - if (that.val() !== '') { + if (allowEmptyValue || that.val() !== '') { cb(); } }, 1000)); this.keypress(function (event) { - if (event.keyCode === 13 && that.val() !== '') { + if (event.keyCode === 13 && (allowEmptyValue || that.val() !== '')) { event.preventDefault(); cb(); } @@ -213,7 +214,7 @@ $(document).ready(function () { }); $('#displayName').keyUpDelayedOrEnter(changeDisplayName); - $('#email').keyUpDelayedOrEnter(changeEmailAddress); + $('#email').keyUpDelayedOrEnter(changeEmailAddress, true); $("#languageinput").change(function () { // Serialize the data