blob: 404e05545d42f4c95f7761fc1c28cd7a0f2cf067 [file] [log] [blame]
/**
* Controller for the profile settings page
*
* @module app/profile-settings/controllers/index
* @exports ProfileSettingsController
* @name ProfileSettingsController
*/
window.angular && (function(angular) {
'use strict';
angular.module('app.profileSettings')
.controller('profileSettingsController', [
'$scope', 'APIUtils', 'dataService', 'toastService',
function($scope, APIUtils, dataService, toastService) {
$scope.username;
$scope.minPasswordLength;
$scope.maxPasswordLength;
$scope.password;
$scope.passwordConfirm;
/**
* Make API call to update user password
* @param {string} password
*/
const updatePassword = function(password) {
$scope.loading = true;
APIUtils.updateUser($scope.username, null, password)
.then(
() => toastService.success(
'Password has been updated successfully.'))
.catch((error) => {
console.log(JSON.stringify(error));
toastService.error('Unable to update password.')
})
.finally(() => {
$scope.password = '';
$scope.passwordConfirm = '';
$scope.form.$setPristine();
$scope.form.$setUntouched();
$scope.loading = false;
})
};
/**
* API call to get account settings for min/max
* password length requirement
*/
const getAllUserAccountProperties = function() {
APIUtils.getAllUserAccountProperties().then((accountSettings) => {
$scope.minPasswordLength = accountSettings.MinPasswordLength;
$scope.maxPasswordLength = accountSettings.MaxPasswordLength;
})
};
/**
* Callback after form submitted
*/
$scope.onSubmit = function(form) {
if (form.$valid) {
const password = form.password.$viewValue;
updatePassword(password);
}
};
/**
* Callback after view loaded
*/
$scope.$on('$viewContentLoaded', () => {
getAllUserAccountProperties();
$scope.username = dataService.getUser();
});
}
]);
})(angular);