diff options
Diffstat (limited to 'ecomp-portal-FE/client/app/views/admins/add-admin-dialogs')
4 files changed, 0 insertions, 509 deletions
diff --git a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.js b/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.js deleted file mode 100644 index 4d77a97c..00000000 --- a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.js +++ /dev/null @@ -1,214 +0,0 @@ -/*- - * ================================================================================ - * eCOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * 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. - * ================================================================================ - */ - -'use strict'; -(function () { - class NewAdminModalCtrl { - constructor($log, adminsService, $scope, confirmBoxService, utilsService, $location) { - - let init = () => { - this.isSaving = false; - this.originalApps = []; - /* istanbul ignore if */ - if ($scope.ngDialogData && $scope.ngDialogData.selectedUser && $scope.ngDialogData.dialogState) { - this.selectedUser = $scope.ngDialogData.selectedUser; - this.dialogState = $scope.ngDialogData.dialogState; - this.isShowBack = false; - if (this.dialogState === 2) { - this.getAdminAppsRoles(); - } - } else { - this.isShowBack = true; - this.selectedUser = null; - this.dialogState = 1; - } - - $log.info('NewAdminModalCtrl::initiated'); - this.appsOrder = []; - }; - - let orderList = (apps) => { - this.appsOrder = []; - for (var i = 0; i < apps.length; i++) { - if (apps[i].isAdmin) { - this.appsOrder.push(apps[i].id); - } - } - }; - - this.orderFilter = app => { - if (!app || !app.id || !this.appsOrder.length) { - return; - } - return this.appsOrder.indexOf(app.id); - }; - - this.getAdminAppsRoles = () => { - if (!this.selectedUser || !this.selectedUser.orgUserId) { - $log.error('No user is selected / searchUsers is InProgress'); - this.dialogState = 1; - return; - } - adminsService.getAdminAppsRoles(this.selectedUser.orgUserId).then(roles => { - $log.debug('apps roles res: ', JSON.stringify(roles)); - if (!roles.appsRoles) { - return; - } - - this.adminAppsRoles = []; - for (var i = 0; i < roles.appsRoles.length; i++) { - if (!roles.appsRoles[i].restrictedApp) { - $log.debug('pushing: {id: ', roles.appsRoles[i].id, - 'name: ', roles.appsRoles[i].appName, - 'restrictedApp: ', roles.appsRoles[i].restrictedApp, - 'isAdmin: ', roles.appsRoles[i].isAdmin, '}'); - this.adminAppsRoles.push({ - id: roles.appsRoles[i].id, - appName: roles.appsRoles[i].appName, - isAdmin: roles.appsRoles[i].isAdmin, - restrictedApp: roles.appsRoles[i].restrictedApp - }); - } - } - this.dialogState = 2; - this.adminAppsRoles = this.adminAppsRoles.sort(getSortOrder("appName")); - - orderList(roles.appsRoles); - if (this.appsOrder != null) { - for (var j = 0; j < this.appsOrder.length; j++) { - this.originalApps.push(this.appsOrder[j]); - } - } - }).catch(err => { - $log.error(err); - }); - }; - - let getSortOrder = (prop) => { - return function (a, b) { - if (a[prop].toLowerCase() > b[prop].toLowerCase()) { - return 1; - } else if (a[prop].toLowerCase() < b[prop].toLowerCase()) { - return -1; - } - return 0; - } - } - - this.setSelectedUser = (user) => { - $log.debug('selected user: ', user); - this.selectedUser = user; - }; - - this.unadminApp = (app) => { - confirmBoxService.deleteItem(app.appName).then(confirmed => { - if (confirmed === true) { - app.isAdmin = false; - this.appsOrder.splice(this.appsOrder.indexOf(app.id), 1); - } - }).catch(err => { - $log(err); - }); - }; - - this.updateAdminAppsRoles = () => { - if (!this.selectedUser || !this.selectedUser.orgUserId || !this.adminAppsRoles) { - return; - } - this.isSaving = true; - $log.debug('going to update user: ' + this.selectedUser.orgUserId + ' with app roles: ' + JSON.stringify(this.adminAppsRoles)); - confirmBoxService.makeAdminChanges('Are you sure you want to make these admin changes?') - .then(confirmed => { - adminsService.updateAdminAppsRoles({ - orgUserId: this.selectedUser.orgUserId, - appsRoles: this.adminAppsRoles - }) - .then(res => { - $log.debug('Admin apps roles updated successfully!', res); - this.remindToAddUserIfNecessary(); - $scope.closeThisDialog(true); - }).catch(err => { - $log.error('NewAdminModalCtrl.updateAdminAppsRoles:: Failed - ' + err); - }).finally(()=> { - this.isSaving = false; - }) - }); - }; - - this.navigateBack = () => { - if (this.dialogState === 1) { - } - if (this.dialogState === 2) { - this.dialogState = 1; - } - }; - - init(); - - $scope.$watch('newAdmin.selectedNewApp', (newVal) => { - if (!newVal || newVal.isAdmin === undefined) { - return; - } - let app = _.find(this.adminAppsRoles, {id: newVal.id}); - if (app) { - app.isAdmin = true; - this.appsOrder.push(app.id); - } - this.selectedNewApp = null; - }); - - $scope.$on('$stateChangeStart', e => { - e.preventDefault(); - }); - - this.remindToAddUserIfNecessary = () => { - var adminAddedToNewApp = false; - if ((this.originalApps != null) && (this.originalApps.length > 0)) { - for (var i = 0; i < this.appsOrder.length; i++) { - var foundApp = false; - for (var j = 0; j < this.originalApps.length; j++) { - if (this.originalApps[j] == this.appsOrder[i]) { - foundApp = true; - } - } - if (foundApp == false) { - adminAddedToNewApp = true; - break; - } - } - } else { - adminAddedToNewApp = true; - } - - if (adminAddedToNewApp == true) { - confirmBoxService.confirm('Add this person as an application user? This allows them to access the application from OpenECOMP Portal. Press OK to go to the Add Users page.') - .then(confirmed => { - if (confirmed == true) { - $location.path('/users'); - } - }); - } - } - - } - } - NewAdminModalCtrl.$inject = ['$log', 'adminsService', '$scope', 'confirmBoxService', 'utilsService', '$location']; - angular.module('ecompApp').controller('NewAdminModalCtrl', NewAdminModalCtrl); -})(); diff --git a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.spec.js b/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.spec.js deleted file mode 100644 index c0f73078..00000000 --- a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.spec.js +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ================================================================================ - * eCOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * 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. - * ================================================================================ - */ - -'use strict'; - -describe('Controller: NewAdminCtrl ', () => { - beforeEach(module('ecompApp')); - - beforeEach(inject((_CacheFactory_)=> { - _CacheFactory_.destroyAll(); - })); - - - let newCtrl, $controller, $q, $rootScope, $log; - - beforeEach(inject((_$controller_, _$q_, _$rootScope_, _$log_)=> { - [$controller, $q, $rootScope, $log] = [_$controller_, _$q_, _$rootScope_, _$log_]; - })); - - let deferredAdminAppsRoles, deferredUpdateRolesRes; - let adminsServiceMock; - beforeEach(()=> { - [deferredAdminAppsRoles, deferredUpdateRolesRes] = [$q.defer(), $q.defer()]; - - adminsServiceMock = jasmine.createSpyObj('adminsServiceMock', ['getAdminAppsRoles', 'updateAdminAppsRoles']); - - adminsServiceMock.getAdminAppsRoles.and.returnValue(deferredAdminAppsRoles.promise); - adminsServiceMock.updateAdminAppsRoles.and.returnValue(deferredUpdateRolesRes.promise); - - newCtrl = $controller('NewAdminModalCtrl', { - $log: $log, - adminsService: adminsServiceMock, - $scope: $rootScope - }); - }); - - it('should init default values when loading the controller', ()=> { - expect(newCtrl.dialogState).toBe(1); - expect(newCtrl.selectedUser).toBe(null); - }); - - it('should populate admin apps roles and move to the next screen when adminsService.getAdminAppsRoles succeeded', ()=> { - let userApps = {appsRoles: [{id: 1, isAdmin: false}, {id: 2, isAdmin: true}]}; - deferredAdminAppsRoles.resolve(userApps); - - newCtrl.selectedUser = {orgUserId: 'orgUserId'}; - - newCtrl.getAdminAppsRoles(); - $rootScope.$apply(); - - expect(adminsServiceMock.getAdminAppsRoles).toHaveBeenCalledWith(newCtrl.selectedUser.userId); - expect(newCtrl.adminAppsRoles).toEqual(userApps.appsRoles); - expect(newCtrl.dialogState).toBe(2); - }); - - it('should log the error when adminsService.getAdminAppsRoles fails', ()=> { - spyOn($log, 'error'); - deferredAdminAppsRoles.reject('some error'); - - newCtrl.searchUsersInProgress = false; - newCtrl.selectedUser = {orgUserId: 'orgUserId'}; - - newCtrl.getAdminAppsRoles(); - $rootScope.$apply(); - - expect($log.error).toHaveBeenCalled(); - }); - it('should log the error when trying to getAdminAppsRoles without selecting user ', ()=> { - spyOn($log, 'error'); - - newCtrl.searchUsersInProgress = false; - newCtrl.selectedUser = null; - - newCtrl.getAdminAppsRoles(); - $rootScope.$apply(); - - expect($log.error).toHaveBeenCalled(); - }); - - it('should set isAdmin as true when adding app via the dropdown menu', ()=> { - newCtrl.adminAppsRoles = [{id: 1, isAdmin: false},{id: 2, isAdmin: true}]; - $rootScope.$apply('newAdmin.selectedNewApp = null'); - $rootScope.$apply('newAdmin.selectedNewApp = {id: 1, isAdmin: true}'); - - expect(newCtrl.adminAppsRoles[0].isAdmin).toBe(true); - expect(newCtrl.selectedNewApp).toBe(null); - }); - - it('should close the modal when updating apps roles succeeded', ()=> { - $rootScope.closeThisDialog = () => {}; - spyOn($rootScope,'closeThisDialog'); - - newCtrl.selectedUser = {orgUserId: 'orgUserId'}; - newCtrl.adminAppsRoles = [{id: 1}]; - - deferredUpdateRolesRes.resolve(); - newCtrl.updateAdminAppsRoles(); - $rootScope.$apply(); - - expect(adminsServiceMock.updateAdminAppsRoles).toHaveBeenCalledWith({userId: newCtrl.selectedUser.userId, appsRoles: newCtrl.adminAppsRoles}); - expect($rootScope.closeThisDialog).toHaveBeenCalled(); - }); - it('should log the error when updating apps roles fails', ()=> { - newCtrl.selectedUser = {orgUserId: 'orgUserId'}; - newCtrl.adminAppsRoles = [{id: 1}]; - - spyOn($log,'error'); - deferredUpdateRolesRes.reject(); - newCtrl.updateAdminAppsRoles(); - $rootScope.$apply(); - expect($log.error).toHaveBeenCalled(); - }); -}); diff --git a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.html b/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.html deleted file mode 100644 index 0a8fc727..00000000 --- a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.html +++ /dev/null @@ -1,66 +0,0 @@ -<!-- - ================================================================================ - eCOMP Portal - ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property - ================================================================================ - 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. - ================================================================================ - --> -<div class="new-admin-modal"> - <div class="search-users" ng-show="newAdmin.dialogState===1"> - <search-users search-title="New Admin" - selected-user="newAdmin.selectedUser"></search-users> - <div class="dialog-control"> - <div id="search-users-button-next" class="next-button" ng-click="newAdmin.selectedUser && newAdmin.getAdminAppsRoles()" - ng-class="{disabled: !newAdmin.selectedUser}">Next - </div> - <div id="search-users-button-cancel" class="cancel-button" ng-click="closeThisDialog()">Cancel</div> - </div> - </div> - <div id="div-admin-app-roles" class="admin-app-roles" ng-show="newAdmin.dialogState===2"> - <div class="title" id="title" - ng-bind="newAdmin.selectedUser.firstName + ' ' + newAdmin.selectedUser.lastName + ' (' + newAdmin.selectedUser.orgUserId + ')'"></div> - <div class="app-roles-main"> - <div id="div-app-roles-main-title" class="app-roles-main-title"> - <span class="left">Administrates:</span> - </div> - <div class="dropdown-container"> - <div class ="right_arrow_down"></div> - <div class="select-input custom-select-wrap"> - <select class="new-administrated-app" id="dropdown-select-app" - ui-select2 ng-model="newAdmin.selectedNewApp" - data-placeholder="Select application" - ng-options="app as app.appName for app in (filteredApps = (newAdmin.adminAppsRoles | filter:{isAdmin:'false'})) track by app.id " - ng-disabled="!filteredApps.length"> - <option id="option-select-app" value="" disabled style="display: none;">Select application</option> - </select> - </div> - </div> - <div class="admin-roles-list"> - <div ng-repeat="app in (newAdmin.adminAppsRoles | orderBy:newAdmin.orderFilter) track by app.id" ng-show="app.isAdmin"> - <div id="select-app-{{app.appName.split(' ').join('-')}}" class="administrated-application" ng-bind="app.appName | elipsis: 57"></div> - <i id="i-delete-application" class="ion-trash-b" ng-click="newAdmin.unadminApp(app)"></i> - </div> - </div> - <div class="dialog-control"> - <span class="ecomp-save-spinner" ng-show="newAdmin.isSaving"></span> - <div id="button-back" ng-show="newAdmin.isShowBack" class="back-button" ng-click="newAdmin.navigateBack()">Back</div> - <div id="div-updateAdminAppsRoles" class="next-button" ng-click="newAdmin.updateAdminAppsRoles()" - ng-class="{disabled: false}">Save - </div> - <div id="div-cancel-button" class="cancel-button" ng-click="closeThisDialog()">Cancel</div> - </div> - </div> - </div> -</div> diff --git a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.less b/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.less deleted file mode 100644 index b992c928..00000000 --- a/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.less +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ================================================================================ - * eCOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * 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. - * ================================================================================ - */ - .new-admin-modal { - display:block; - overflow:auto; - min-height: 450px; - - .search-users { - } - - .admin-app-roles { - .title { - .n18r; - border-bottom: @a 3px solid; - - } - - .app-roles-main { - margin-top: 16px; - .app-roles-main-title { - .n14r; - margin-bottom: 8px; - .left { - display: inline-block; - } - .right { - display: inline-block; - color: @a; - float: right; - cursor: pointer; - } - } - - .select-input{ - width: 460px; - } - - .new-administrated-app { - height: 30px; - line-height: 30px; - - border: 1px solid @p; - margin-bottom: 8px; - border-radius: 2px; - padding-left: 6px; - padding-top: 0; - .o14r; - } - - .admin-roles-list { - height: 240px; - overflow-y: auto; - } - - .administrated-application { - width: 460px; - height: 30px; - border: 1px solid @p; - margin-bottom: 8px; - border-radius: 2px; - padding: 6px; - .o14r; - display: inline-block; - - } - - .delete-application { - .ico_trash_default; - display: inline-block; - vertical-align: 4px; - cursor: pointer; - position: relative; - top: 6px; - color: transparent; - margin-left: 8px; - } - - } - - } -} - |