diff options
Diffstat (limited to 'ecomp-portal-FE-os/client/src/views/catalog')
2 files changed, 331 insertions, 331 deletions
diff --git a/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.controller.js b/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.controller.js index 5372841e..c2eda6ed 100644 --- a/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.controller.js +++ b/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.controller.js @@ -1,218 +1,218 @@ -/*-
- * ================================================================================
- * 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.
- * ================================================================================
- */
-/**
- * Created by nnaffar on 12/20/15.
- */
-'use strict';
-(function () {
- class NewCatalogModalCtrl {
- constructor($scope, $log, usersService, catalogService, applicationsService, confirmBoxService) {
- let init = () => {
- //$log.info('NewUserModalCtrl::init');
- this.isSaving = false;
- this.adminApps =[];
- this.appRoles = [];
- $scope.userAppRoles = [];
- $scope.titleText = "Request for Access in MyLogins:";
- $scope.title ="Request is pending in MyLogins for the following Roles";
- this.isGettingAdminApps = false;
- 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.getUserAppsRoles();
- }
- }
- };
-
- this.appChanged = (index) => {
- let myApp = this.adminApps[index];
- //$log.debug('NewUserModalCtrl::appChanged: index: ', index, '; app id: ', myApp.id, 'app name: ',myApp.name);
- myApp.isChanged = true;
- this.anyChanges = true;
- }
-
- this.deleteApp = (app) => {
- let appMessage = this.selectedUser.firstName + ' ' + this.selectedUser.lastName;
- confirmBoxService.deleteItem(appMessage).then(isConfirmed => {
- if(isConfirmed){
- this.anyChanges = true;
- app.isChanged = true;
- app.isDeleted = true; // use this to hide the app in the display
- app.appRoles.forEach(function(role){
- role.isApplied = false;
- });
- }
- }).catch(err => {
- $log.error('NewUserModalCtrl::deleteApp error: ',err);
- confirmBoxService.showInformation('There was a problem deleting the the applications. ' +
- 'Please try again later. Error: ' + err.status).then(isConfirmed => {});
- });
- };
-
- this.getUserAppsRoles = () => {
-
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: about to call getAdminAppsSimpler');
- this.isGettingAdminApps = true;
- catalogService.getAppCatalog().then((apps) => {
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: beginning of then for getAdminAppsSimpler');
-
- this.isGettingAdminApps = false;
- if (!apps || !apps.length) {
- $log.error('NewUserModalCtrl::getUserApps error: no admin apps found');
- return null;
- }
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: then for getAdminAppsSimpler: step 2');
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: admin apps: ', apps);
-
- this.dialogState = 2;
- this.isLoading = true;
- this.adminApps = apps;
-
- catalogService.getuserAppRolesCatalog(this.selectedUser.headerText).then(
- function(result) {
- // $log.debug('CatalogCtrl:storeSelection result is ', result);
-
- $scope.userAppRoles = result;
- $scope.displyUserAppCatalogRoles = true;
- if(result.length === 1 && result[0].requestedRoleId === null)
- {
- $scope.title= "Removal Request is pending in MyLogins";
- }
-
- if($scope.userAppRoles.length==0)
- {
- $scope.displyUserAppCatalogRoles = false;
- }
- });
- apps.forEach(app => {
- if(app.name === this.selectedUser.headerText){
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: app: id: ', app.id, 'name: ',app.name);
- // Keep track of which app has changed, so we know which apps to update using a BE API
- app.isChanged = false;
- // Each of these specifies a state, which corresponds to a different message and style that gets displayed
- app.isLoading = true;
- app.isError = false;
- app.isDeleted = false;
- app.printNoChanges = false;
- app.isUpdating = false;
- app.isErrorUpdating = false;
- app.isDoneUpdating = false;
- app.errorMessage = "";
- usersService.getUserAppRoles(app.id, this.selectedUser.attuid).promise().then((userAppRolesResult) => {
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: got a result for app: ',app.id,': ',app.name,': ',userAppRolesResult);
- app.appRoles = userAppRolesResult;
- app.isLoading = false;
- }).catch(err => {
- $log.error(err);
- app.isError = true;
- app.isLoading = false;
- app.errorMessage = err.headers('FEErrorString');
- //$log.debug('NewUserModalCtrl::getUserAppsRoles: in new-user.controller: response header: '+err.headers('FEErrorString'));
- }).finally(()=>{
- this.numberAppsProcessed++;
- if (this.numberAppsProcessed === this.adminApps.length) {
- this.isLoading = false;
- }
- });
- }
- })
- return;
- }).catch(err => {
- $log.error(err);
- })
-
- }
-
-
- /**
- * Update the selected user apps with the new roles.
- * If no roles remain, set the user to inactive.
- */
- this.updateUserAppsRoles = () => {
- // $log.debug('NewUserModalCtrl::updateUserAppsRoles: entering updateUserAppsRoles');
- if(!this.selectedUser || !this.selectedUser.attuid || !this.adminApps){
- $log.error('NewUserModalCtrl::updateUserAppsRoles: mmissing arguments');
- return;
- }
- this.isSaving = true;
- confirmBoxService.makeUserAppRoleCatalogChanges('Are you sure you want to make these changes?')
- .then(confirmed => {
- if(confirmed === true){
- //$log.debug('NewUserModalCtrl::updateUserAppsRoles: going to update user: ' + this.selectedUser.attuid);
- this.numberAppsProcessed = 0;
- this.numberAppsSucceeded = 0;
- this.adminApps.forEach(app => {
- if (app.isChanged) {
- //$log.debug('NewUserModalCtrl::updateUserAppsRoles: app roles have changed; going to update: id: ', app.id, '; name: ', app.name);
- app.isUpdating = true;
- var UserAppRolesRequest = {
- attuid: this.selectedUser.attuid,
- appId: app.id,
- appRoles: app.appRoles,
- appName: app.name
- };
- this.isSaving = true;
- $log.debug('going to update user: ' + this.selectedUser.attuid + ' with app roles: ' + JSON.stringify(this.adminAppsRoles));
- applicationsService.saveUserAppsRoles(UserAppRolesRequest).then(res => {
- app.isUpdating = false;
- $scope.closeThisDialog(true);
- }).catch(err => {
- $log.error('NewAdminModalCtrl.updateAdminAppsRoles:: Failed - ' + err);
- }).finally(()=> {
- this.isSaving = false;
- })
- }
- });
- }else{
- this.isSaving = false;
- }
-
-
-
- });
-
- };
-
- /**
- * Navigate between dialog screens using step number: 1,2,...
- */
- this.navigateBack = () => {
- if (this.dialogState === 1) {
- //back from 1st screen?
- }
- if (this.dialogState === 3) {
- this.dialogState = 1;
- }
- };
-
- init();
-
- $scope.$on('$stateChangeStart', e => {
- //Disable navigation when modal is opened
- //**Nabil - note: this will cause the history back state to be replaced with current state
- e.preventDefault();
- });
- }
- }
- NewCatalogModalCtrl.$inject = ['$scope', '$log', 'usersService', 'catalogService', 'applicationsService', 'confirmBoxService'];
- angular.module('ecompApp').controller('NewCatalogModalCtrl', NewCatalogModalCtrl);
-})();
+/*- + * ================================================================================ + * 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. + * ================================================================================ + */ +/** + * Created by nnaffar on 12/20/15. + */ +'use strict'; +(function () { + class NewCatalogModalCtrl { + constructor($scope, $log, usersService, catalogService, applicationsService, confirmBoxService) { + let init = () => { + //$log.info('NewUserModalCtrl::init'); + this.isSaving = false; + this.adminApps =[]; + this.appRoles = []; + $scope.userAppRoles = []; + $scope.titleText = "Request for Access in MyLogins:"; + $scope.title ="Request is pending in MyLogins for the following Roles"; + this.isGettingAdminApps = false; + 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.getUserAppsRoles(); + } + } + }; + + this.appChanged = (index) => { + let myApp = this.adminApps[index]; + //$log.debug('NewUserModalCtrl::appChanged: index: ', index, '; app id: ', myApp.id, 'app name: ',myApp.name); + myApp.isChanged = true; + this.anyChanges = true; + } + + this.deleteApp = (app) => { + let appMessage = this.selectedUser.firstName + ' ' + this.selectedUser.lastName; + confirmBoxService.deleteItem(appMessage).then(isConfirmed => { + if(isConfirmed){ + this.anyChanges = true; + app.isChanged = true; + app.isDeleted = true; // use this to hide the app in the display + app.appRoles.forEach(function(role){ + role.isApplied = false; + }); + } + }).catch(err => { + $log.error('NewUserModalCtrl::deleteApp error: ',err); + confirmBoxService.showInformation('There was a problem deleting the the applications. ' + + 'Please try again later. Error: ' + err.status).then(isConfirmed => {}); + }); + }; + + this.getUserAppsRoles = () => { + + //$log.debug('NewUserModalCtrl::getUserAppsRoles: about to call getAdminAppsSimpler'); + this.isGettingAdminApps = true; + catalogService.getAppCatalog().then((apps) => { + //$log.debug('NewUserModalCtrl::getUserAppsRoles: beginning of then for getAdminAppsSimpler'); + + this.isGettingAdminApps = false; + if (!apps || !apps.length) { + $log.error('NewUserModalCtrl::getUserApps error: no admin apps found'); + return null; + } + //$log.debug('NewUserModalCtrl::getUserAppsRoles: then for getAdminAppsSimpler: step 2'); + //$log.debug('NewUserModalCtrl::getUserAppsRoles: admin apps: ', apps); + + this.dialogState = 2; + this.isLoading = true; + this.adminApps = apps; + + catalogService.getuserAppRolesCatalog(this.selectedUser.headerText).then( + function(result) { + // $log.debug('CatalogCtrl:storeSelection result is ', result); + + $scope.userAppRoles = result; + $scope.displyUserAppCatalogRoles = true; + if(result.length === 1 && result[0].requestedRoleId === null) + { + $scope.title= "Removal Request is pending in MyLogins"; + } + + if($scope.userAppRoles.length==0) + { + $scope.displyUserAppCatalogRoles = false; + } + }); + apps.forEach(app => { + if(app.name === this.selectedUser.headerText){ + //$log.debug('NewUserModalCtrl::getUserAppsRoles: app: id: ', app.id, 'name: ',app.name); + // Keep track of which app has changed, so we know which apps to update using a BE API + app.isChanged = false; + // Each of these specifies a state, which corresponds to a different message and style that gets displayed + app.isLoading = true; + app.isError = false; + app.isDeleted = false; + app.printNoChanges = false; + app.isUpdating = false; + app.isErrorUpdating = false; + app.isDoneUpdating = false; + app.errorMessage = ""; + usersService.getUserAppRoles(app.id, this.selectedUser.attuid).promise().then((userAppRolesResult) => { + //$log.debug('NewUserModalCtrl::getUserAppsRoles: got a result for app: ',app.id,': ',app.name,': ',userAppRolesResult); + app.appRoles = userAppRolesResult; + app.isLoading = false; + }).catch(err => { + $log.error(err); + app.isError = true; + app.isLoading = false; + app.errorMessage = err.headers('FEErrorString'); + //$log.debug('NewUserModalCtrl::getUserAppsRoles: in new-user.controller: response header: '+err.headers('FEErrorString')); + }).finally(()=>{ + this.numberAppsProcessed++; + if (this.numberAppsProcessed === this.adminApps.length) { + this.isLoading = false; + } + }); + } + }) + return; + }).catch(err => { + $log.error(err); + }) + + } + + + /** + * Update the selected user apps with the new roles. + * If no roles remain, set the user to inactive. + */ + this.updateUserAppsRoles = () => { + // $log.debug('NewUserModalCtrl::updateUserAppsRoles: entering updateUserAppsRoles'); + if(!this.selectedUser || !this.selectedUser.attuid || !this.adminApps){ + $log.error('NewUserModalCtrl::updateUserAppsRoles: mmissing arguments'); + return; + } + this.isSaving = true; + confirmBoxService.makeUserAppRoleCatalogChanges('Are you sure you want to make these changes?') + .then(confirmed => { + if(confirmed === true){ + //$log.debug('NewUserModalCtrl::updateUserAppsRoles: going to update user: ' + this.selectedUser.attuid); + this.numberAppsProcessed = 0; + this.numberAppsSucceeded = 0; + this.adminApps.forEach(app => { + if (app.isChanged) { + //$log.debug('NewUserModalCtrl::updateUserAppsRoles: app roles have changed; going to update: id: ', app.id, '; name: ', app.name); + app.isUpdating = true; + var UserAppRolesRequest = { + attuid: this.selectedUser.attuid, + appId: app.id, + appRoles: app.appRoles, + appName: app.name + }; + this.isSaving = true; + $log.debug('going to update user: ' + this.selectedUser.attuid + ' with app roles: ' + JSON.stringify(this.adminAppsRoles)); + applicationsService.saveUserAppsRoles(UserAppRolesRequest).then(res => { + app.isUpdating = false; + $scope.closeThisDialog(true); + }).catch(err => { + $log.error('NewAdminModalCtrl.updateAdminAppsRoles:: Failed - ' + err); + }).finally(()=> { + this.isSaving = false; + }) + } + }); + }else{ + this.isSaving = false; + } + + + + }); + + }; + + /** + * Navigate between dialog screens using step number: 1,2,... + */ + this.navigateBack = () => { + if (this.dialogState === 1) { + //back from 1st screen? + } + if (this.dialogState === 3) { + this.dialogState = 1; + } + }; + + init(); + + $scope.$on('$stateChangeStart', e => { + //Disable navigation when modal is opened + //**Nabil - note: this will cause the history back state to be replaced with current state + e.preventDefault(); + }); + } + } + NewCatalogModalCtrl.$inject = ['$scope', '$log', 'usersService', 'catalogService', 'applicationsService', 'confirmBoxService']; + angular.module('ecompApp').controller('NewCatalogModalCtrl', NewCatalogModalCtrl); +})(); diff --git a/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.modal.html b/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.modal.html index 1cf96f7f..3578cc09 100644 --- a/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.modal.html +++ b/ecomp-portal-FE-os/client/src/views/catalog/add-catalog-dialogs/new-catalog.modal.html @@ -1,113 +1,113 @@ -<!--
- ================================================================================
- 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-catalog-modal">
-
- <div class="user-catalog-roles" ng-show="userInfo.dialogState===2">
- <div >
- <div class=display-userApp-Catalog-Roles >{{titleText}}</div>
- <div class="title"
- ng-bind="userInfo.selectedUser.firstName + ' ' + userInfo.selectedUser.lastName + ' (' + userInfo.selectedUser.attuid + ')'"></div>
- </div>
- <div class="app-roles-main">
-
- <div class="app-catalog-roles-list">
- <div class="app-catalog-item" ng-repeat="app in userInfo.adminApps"
- ng-if="app.name === userInfo.selectedUser.headerText"
- id="app-name-{{app.name.split(' ').join('-')}}">
- <div class="app-catalog-item-left"
- id="div-app-name-{{app.name.split(' ').join('-')}}">{{app.name
- | elipsis: 27}}</div>
- <div class="app-catalog-item-right"
- id="div-app-name-dropdown-{{app.name.split(' ').join('-')}}"
- ng-show="!app.isError && !app.isLoading && !app.noChanges && !app.isUpdating && !app.isDoneUpdating && !app.isErrorUpdating"
- ng-if="userAppRoles.length===0">
- <multiple-select id="app-roles" unique-data="{{$index}}"
- placeholder="Select roles" ng-model="app.appRoles"
- on-change="userInfo.appChanged($index)" name-attr="roleName"
- value-attr="isApplied"></multiple-select>
- </div>
-
- <div class="app-catalog-item-right"
- id="div-app-name-dropdown-{{app.name.split(' ').join('-')}}"
- ng-show="!app.isError && !app.isLoading && !app.noChanges && !app.isUpdating && !app.isDoneUpdating && !app.isErrorUpdating"
- ng-if="userAppRoles.length!==0">
- <multiple-select2 id="app-roles" unique-data="{{$index}}"
- placeholder="Select roles" ng-model="app.appRoles"
- on-change="userInfo.appChanged($index)" name-attr="roleName"
- value-attr="isApplied"></multiple-select2>
- </div>
-
-
- <div id="app-item-no-contact" class="app-catalog-item-right-error"
- ng-show="app.isError">{{app.errorMessage | elipsis: 35}}</div>
- <div id="app-item-contacting"
- class="app-catalog-item-right-contacting" ng-show="app.isLoading">Contacting
- application...</div>
- <div id="app-item-no-changes"
- class="app-catalog-item-right-contacting" ng-show="app.noChanges">No
- changes</div>
- <div id="app-item-no-updating"
- class="app-catalog-item-right-contacting" ng-show="app.isUpdating">Updating
- application...</div>
- <div id="app-item-done-updating"
- class="app-catalog-item-right-contacting"
- ng-show="app.isDoneUpdating">Finished updating application</div>
- <div id="app-item-cannot-update"
- class="app-catalog-item-right-error" ng-show="app.isErrorUpdating">Could
- not update application...</div>
- <div id='ecomp-small-spinner' class="ecomp-small-spinner"
- ng-show="app.isLoading"></div>
- </div>
-
-
-
- <div class="usr-app-roles" ng-show=displyUserAppCatalogRoles>
- <div class="userApp-Catalog-Roles-label">{{title}}</div>
-
- <div class="display-userApp-Catalog-Roles-value"
- style="height: 150px; width: 200px; overflow-y: auto;">
- <div ng-repeat="getUserApplicationRole in userAppRoles">
-
- <div class="userAppCatalog-lbl-value">
- <span class="userAppCatalog-lbl-value-spn">
- {{getUserApplicationRole.rolename}}</span>
- </div>
-
- </div>
- </div>
-
- </div>
- </div>
-
- <div class="dialog-control">
- <span id="ecomp-save-spinner" class="ecomp-save-spinner"
- ng-show="userInfo.isSaving || userInfo.isGettingAdminApps"></span>
- <button id="new-user-next-button" class="next-button"
- ng-click="userInfo.updateUserAppsRoles()"
- ng-disabled="(!userInfo.anyChanges == true)">Submit</button>
- <div id="new-user-cancel-button" class="cancel-button"
- ng-click="closeThisDialog()">Cancel</div>
- </div>
-
- </div>
-
- </div>
-
-</div>
+<!-- + ================================================================================ + 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-catalog-modal"> + + <div class="user-catalog-roles" ng-show="userInfo.dialogState===2"> + <div > + <div class=display-userApp-Catalog-Roles >{{titleText}}</div> + <div class="title" + ng-bind="userInfo.selectedUser.firstName + ' ' + userInfo.selectedUser.lastName + ' (' + userInfo.selectedUser.attuid + ')'"></div> + </div> + <div class="app-roles-main"> + + <div class="app-catalog-roles-list"> + <div class="app-catalog-item" ng-repeat="app in userInfo.adminApps" + ng-if="app.name === userInfo.selectedUser.headerText" + id="app-name-{{app.name.split(' ').join('-')}}"> + <div class="app-catalog-item-left" + id="div-app-name-{{app.name.split(' ').join('-')}}">{{app.name + | elipsis: 27}}</div> + <div class="app-catalog-item-right" + id="div-app-name-dropdown-{{app.name.split(' ').join('-')}}" + ng-show="!app.isError && !app.isLoading && !app.noChanges && !app.isUpdating && !app.isDoneUpdating && !app.isErrorUpdating" + ng-if="userAppRoles.length===0"> + <multiple-select id="app-roles" unique-data="{{$index}}" + placeholder="Select roles" ng-model="app.appRoles" + on-change="userInfo.appChanged($index)" name-attr="roleName" + value-attr="isApplied"></multiple-select> + </div> + + <div class="app-catalog-item-right" + id="div-app-name-dropdown-{{app.name.split(' ').join('-')}}" + ng-show="!app.isError && !app.isLoading && !app.noChanges && !app.isUpdating && !app.isDoneUpdating && !app.isErrorUpdating" + ng-if="userAppRoles.length!==0"> + <multiple-select2 id="app-roles" unique-data="{{$index}}" + placeholder="Select roles" ng-model="app.appRoles" + on-change="userInfo.appChanged($index)" name-attr="roleName" + value-attr="isApplied"></multiple-select2> + </div> + + + <div id="app-item-no-contact" class="app-catalog-item-right-error" + ng-show="app.isError">{{app.errorMessage | elipsis: 35}}</div> + <div id="app-item-contacting" + class="app-catalog-item-right-contacting" ng-show="app.isLoading">Contacting + application...</div> + <div id="app-item-no-changes" + class="app-catalog-item-right-contacting" ng-show="app.noChanges">No + changes</div> + <div id="app-item-no-updating" + class="app-catalog-item-right-contacting" ng-show="app.isUpdating">Updating + application...</div> + <div id="app-item-done-updating" + class="app-catalog-item-right-contacting" + ng-show="app.isDoneUpdating">Finished updating application</div> + <div id="app-item-cannot-update" + class="app-catalog-item-right-error" ng-show="app.isErrorUpdating">Could + not update application...</div> + <div id='ecomp-small-spinner' class="ecomp-small-spinner" + ng-show="app.isLoading"></div> + </div> + + + + <div class="usr-app-roles" ng-show=displyUserAppCatalogRoles> + <div class="userApp-Catalog-Roles-label">{{title}}</div> + + <div class="display-userApp-Catalog-Roles-value" + style="height: 150px; width: 200px; overflow-y: auto;"> + <div ng-repeat="getUserApplicationRole in userAppRoles"> + + <div class="userAppCatalog-lbl-value"> + <span class="userAppCatalog-lbl-value-spn"> + {{getUserApplicationRole.rolename}}</span> + </div> + + </div> + </div> + + </div> + </div> + + <div class="dialog-control"> + <span id="ecomp-save-spinner" class="ecomp-save-spinner" + ng-show="userInfo.isSaving || userInfo.isGettingAdminApps"></span> + <button id="new-user-next-button" class="next-button" + ng-click="userInfo.updateUserAppsRoles()" + ng-disabled="(!userInfo.anyChanges == true)">Submit</button> + <div id="new-user-cancel-button" class="cancel-button" + ng-click="closeThisDialog()">Cancel</div> + </div> + + </div> + + </div> + +</div> |