You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
7.1 KiB
195 lines
7.1 KiB
/* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
/**
|
|
* Controller for profile mgmt
|
|
*/
|
|
flowableApp.controller('IdmProfileMgmtController', ['$rootScope', '$scope', '$modal', 'IdmService', '$translate',
|
|
function ($rootScope, $scope, $modal, IdmService, $translate) {
|
|
|
|
$rootScope.setMainPageById('profile');
|
|
|
|
$scope.model = {
|
|
loading: true
|
|
};
|
|
|
|
$scope.showUploadPictureModal = function() {
|
|
_internalCreateModal({
|
|
scope: $scope,
|
|
template: 'views/popup/idm-profile-picture-upload.html',
|
|
show: true
|
|
}, $modal, $scope);
|
|
};
|
|
|
|
$scope.emailChanged = function() {
|
|
$scope.model.profile.emailErrorMessage = undefined;
|
|
if ($scope.model.profile.email !== null
|
|
&& $scope.model.profile.email !== undefined
|
|
&& $scope.model.profile.email !== '') {
|
|
$scope.model.loading = true;
|
|
|
|
IdmService.updateProfileDetails($scope.model.profile, function (response) {
|
|
$scope.model.editingEmail = false;
|
|
$scope.loadProfile(); // reload values from server
|
|
}, function (data, status) {
|
|
$scope.model.loading = false;
|
|
if (status === 409) {
|
|
$scope.model.profile.emailErrorMessage = $translate.instant(data.message);
|
|
}
|
|
});
|
|
} else {
|
|
// Reset if invalid value
|
|
$scope.model.profile.email = $scope.model.originalEmail;
|
|
}
|
|
};
|
|
|
|
$scope.firstNameChanged = function() {
|
|
$scope.model.loading = true;
|
|
IdmService.updateProfileDetails($scope.model.profile, function (response) {
|
|
$scope.model.editingFirstName = false;
|
|
$scope.model.loading = false;
|
|
});
|
|
};
|
|
|
|
$scope.lastNameChanged = function() {
|
|
$scope.model.loading = true;
|
|
IdmService.updateProfileDetails($scope.model.profile, function () {
|
|
$scope.model.editingLastName = false;
|
|
$scope.model.loading = false;
|
|
});
|
|
};
|
|
|
|
$scope.companyChanged = function() {
|
|
$scope.model.loading = true;
|
|
IdmService.updateProfileDetails($scope.model.profile, function () {
|
|
$scope.model.editingCompany = false;
|
|
$scope.model.loading = false;
|
|
});
|
|
};
|
|
|
|
$scope.showChangePasswordModal = function() {
|
|
$scope.model.changePassword = {};
|
|
_internalCreateModal({
|
|
scope: $scope,
|
|
template: 'views/popup/idm-change-password.html',
|
|
show: true
|
|
}, $modal, $scope);
|
|
};
|
|
|
|
// To fix cache
|
|
$scope.cacheBuster = function(force) {
|
|
if (!$scope.model.cacheBuster || force) {
|
|
$scope.model.cacheBuster = new Date().getTime();
|
|
} else {
|
|
return $scope.model.cacheBuster;
|
|
}
|
|
};
|
|
|
|
// Fetch profile when page is shown
|
|
$scope.loadProfile = function() {
|
|
IdmService.getProfile().then(function (profileData) {
|
|
$scope.model.originalEmail = profileData.email; // Storing it extra, so we're able to reset
|
|
$scope.model.profile = profileData;
|
|
$scope.model.loading = false;
|
|
});
|
|
};
|
|
$scope.loadProfile();
|
|
|
|
}]);
|
|
|
|
flowableApp.
|
|
controller('UploadUserPictureController', ['$rootScope', '$scope', 'Upload', function ($rootScope, $scope, Upload) {
|
|
|
|
$scope.popup = {
|
|
loading: false
|
|
};
|
|
|
|
$scope.onFileSelect = function($files) {
|
|
|
|
$scope.popup.loading = true;
|
|
|
|
for (var i = 0; i < $files.length; i++) {
|
|
var file = $files[i];
|
|
Upload.upload({
|
|
url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/profile-picture',
|
|
method: 'POST',
|
|
file: file
|
|
}).progress(function(evt) {
|
|
$scope.popup.uploadProgress = parseInt(100.0 * evt.loaded / evt.total);
|
|
|
|
}).success(function(data, status, headers, config) {
|
|
$scope.popup.loading = false;
|
|
$scope.$hide();
|
|
$scope.cacheBuster(true);
|
|
$scope.loadProfile();
|
|
}).error(function(data, status, headers, config) {
|
|
|
|
if (data && data.message) {
|
|
$scope.popup.errorMessage = data.message;
|
|
}
|
|
|
|
$scope.popup.error = true;
|
|
$scope.popup.loading = false;
|
|
});
|
|
}
|
|
};
|
|
|
|
$scope.cancel = function () {
|
|
if(!$scope.popup.loading) {
|
|
$scope.$hide();
|
|
}
|
|
};
|
|
|
|
}]);
|
|
|
|
flowableApp.
|
|
controller('IdmChangePasswordController', ['$rootScope', '$scope', 'IdmService', function ($rootScope, $scope, IdmService) {
|
|
|
|
$scope.isConfirmButtonDisabled = function() {
|
|
return !$scope.model.changePassword.originalPassword
|
|
|| $scope.model.changePassword.originalPassword.length == 0
|
|
|| !$scope.model.changePassword.newPassword
|
|
|| $scope.model.changePassword.newPassword.length === 0
|
|
|| !$scope.model.changePassword.newPassword2
|
|
|| $scope.model.changePassword.newPassword2.length === 0
|
|
|| $scope.model.changePassword.newPassword !== $scope.model.changePassword.newPassword2;
|
|
};
|
|
|
|
$scope.showPasswordsDontMatch = function() {
|
|
return $scope.model.changePassword.originalPassword
|
|
&& $scope.model.changePassword.originalPassword.length > 0
|
|
&& $scope.model.changePassword.newPassword
|
|
&& $scope.model.changePassword.newPassword.length > 0
|
|
&& $scope.model.changePassword.newPassword2
|
|
&& $scope.model.changePassword.newPassword2.length > 0
|
|
&& $scope.model.changePassword.newPassword !== $scope.model.changePassword.newPassword2;
|
|
|
|
};
|
|
|
|
$scope.changePassword = function() {
|
|
$scope.model.changePassword.error = false;
|
|
IdmService.changePassword($scope.model.changePassword.originalPassword, $scope.model.changePassword.newPassword)
|
|
.then(function() {
|
|
$scope.$hide();
|
|
}, function() {
|
|
$scope.model.changePassword.error = true
|
|
});
|
|
};
|
|
|
|
}]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|