80 lines
1.9 KiB
JavaScript
80 lines
1.9 KiB
JavaScript
|
(function() {
|
||
|
/**
|
||
|
* Update user page.
|
||
|
*/
|
||
|
angular.module('quayPages').config(['pages', function(pages) {
|
||
|
pages.create('update-user', 'update-user.html', UpdateUserCtrl, {
|
||
|
'title': 'Confirm Username'
|
||
|
});
|
||
|
}]);
|
||
|
|
||
|
function UpdateUserCtrl($scope, UserService, $location, ApiService) {
|
||
|
$scope.state = 'loading';
|
||
|
|
||
|
UserService.updateUserIn($scope, function(user) {
|
||
|
if (!user.prompts || !user.prompts.length) {
|
||
|
$location.path('/');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$scope.state = 'editing';
|
||
|
$scope.username = user.username;
|
||
|
});
|
||
|
|
||
|
var confirmUsername = function(username) {
|
||
|
if (username == $scope.user.username) {
|
||
|
$scope.state = 'confirmed';
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$scope.state = 'confirming';
|
||
|
var params = {
|
||
|
'username': username
|
||
|
};
|
||
|
|
||
|
ApiService.getUserInformation(null, params).then(function() {
|
||
|
$scope.state = 'existing';
|
||
|
}, function(resp) {
|
||
|
if (resp.status == 404) {
|
||
|
$scope.state = 'confirmed';
|
||
|
} else {
|
||
|
$scope.state = 'error';
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
$scope.updateUsername = function(username) {
|
||
|
$scope.state = 'updating';
|
||
|
var data = {
|
||
|
'username': username
|
||
|
};
|
||
|
|
||
|
ApiService.changeUserDetails(data).then(function() {
|
||
|
window.location = '/';
|
||
|
}, ApiService.errorDisplay('Could not update username'));
|
||
|
};
|
||
|
|
||
|
$scope.hasPrompt = function(user, prompt_name) {
|
||
|
if (!user.prompts) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
for (var i = 0; i < user.prompts.length; ++i) {
|
||
|
if (user.prompts[i] == prompt_name) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
};
|
||
|
|
||
|
$scope.$watch('username', function(username) {
|
||
|
if (!username) {
|
||
|
$scope.state = 'editing';
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
confirmUsername(username);
|
||
|
});
|
||
|
}
|
||
|
})();
|