summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/app/views/admins/add-admin-dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/app/views/admins/add-admin-dialogs')
-rw-r--r--ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.js214
-rw-r--r--ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.controller.spec.js130
-rw-r--r--ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.html66
-rw-r--r--ecomp-portal-FE/client/app/views/admins/add-admin-dialogs/new-admin.modal.less99
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;
- }
-
- }
-
- }
-}
-