Add email change fields to user edit form

This commit is contained in:
Johannes Zellner
2016-01-25 14:28:47 +01:00
parent dc83ba2686
commit 55a56355d5
3 changed files with 57 additions and 0 deletions

View File

@@ -474,6 +474,19 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification',
}).error(defaultErrorHandler(callback));
};
Client.prototype.updateUser = function (user, password, callback) {
var data = {
password: password,
email: user.email,
displayName: user.displayName
};
$http.put(client.apiOrigin + '/api/v1/users/' + user.id, data).success(function(data, status) {
if (status !== 204 || typeof data !== 'object') return callback(new ClientError(status, data));
callback(null);
}).error(defaultErrorHandler(callback));
};
Client.prototype.getOAuthClients = function (callback) {
$http.get(client.apiOrigin + '/api/v1/oauth/clients').success(function(data, status) {
if (status !== 200 || typeof data !== 'object') return callback(new ClientError(status, data));

View File

@@ -107,6 +107,7 @@
<div class="modal-body">
<form name="useredit_form" class="form-user-delete" role="form" ng-submit="doUseredit()" autocomplete="off">
<fieldset>
<input type="password" style="display: none;">
<div class="form-group" ng-class="{ 'has-error': (useredit_form.displayName.$dirty && useredit_form.displayName.$invalid) || (!useredit_form.displayName.$dirty && useredit.error.displayName) }">
<label class="control-label" for="inputUsereditDisplayName">Full Name</label>
<div class="control-label" ng-show="(!useredit_form.displayName.$dirty && useredit.error.displayName) || (useredit_form.displayName.$dirty && useredit_form.displayName.$invalid)">
@@ -114,6 +115,23 @@
</div>
<input type="text" class="form-control" ng-model="useredit.displayName" id="inputUsereditDisplayName" name="displayName" placeholder="Full Name" autofocus>
</div>
<div class="form-group" ng-class="{ 'has-error': (useredit_form.email.$dirty && useredit_form.email.$invalid) || (!useredit_form.email.$dirty && useredit.error.email) }">
<label class="control-label" for="inputUserEditEmail">Email</label>
<div class="control-label" ng-show="(!useredit_form.email.$dirty && useredit.error.email) || (useredit_form.email.$dirty && useredit_form.email.$invalid) || (!useredit_form.email.$dirty && useredit.error.email)">
<small ng-show="useredit_form.email.$error.required">An email is required</small>
<small ng-show="useredit_form.email.$error.email">This is not a valid email</small>
<small ng-show="!useredit_form.email.$dirty && useredit.error.email">{{ useredit.error.email }}</small>
</div>
<input type="email" class="form-control" ng-model="useredit.email" id="inputUserEditEmail" name="email" required>
</div>
<div class="form-group" ng-class="{ 'has-error': (useredit_form.password.$dirty && useredit_form.password.$invalid) || (!useredit_form.password.$dirty && useredit.error.password)}">
<label class="control-label" for="inputusereditPassword">Give your password to verify that you are performing that action</label>
<div class="control-label" ng-show="(!useredit_form.password.$dirty && useredit.error.password) || (useredit_form.password.$dirty && useredit_form.password.$invalid)">
<small ng-show="useredit_form.password.$error.required && !useredit.error.password">A password is required</small>
<small ng-show="!useredit_form.password.$dirty && useredit.error.password">{{ useredit.error.password }}</small>
</div>
<input type="password" class="form-control" ng-model="useredit.password" id="inputUserRemovePassword" name="password" placeholder="Password" required>
</div>
<input class="hide" type="submit"/>
</fieldset>
</form>

View File

@@ -25,6 +25,15 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
sendInvite: true
};
$scope.useredit = {
busy: false,
error: {},
userInfo: {},
email: '',
displayName: '',
password: ''
};
$scope.isMe = function (user) {
return user.username === Client.getUserInfo().username;
};
@@ -106,6 +115,23 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
});
};
$scope.showUserEdit = function (userInfo) {
$scope.useredit.error.displayName = null;
$scope.useredit.error.email = null;
$scope.useredit.displayName = userInfo.displayName;
$scope.useredit.email = userInfo.email;
$scope.useredit.userInfo = userInfo;
$scope.useredit_form.$setPristine();
$scope.useredit_form.$setUntouched();
$('#userEditModal').modal('show');
};
$scope.doUserEdit = function () {
};
$scope.showUserRemove = function (userInfo) {
$scope.userremove.error.username = null;
$scope.userremove.error.password = null;