Deliver centralized role management feature
[portal.git] / ecomp-portal-FE-common / client / app / views / account-onboarding / account-onboarding.controller.js
1 'use strict';
2 (function () {
3     class AccountOnboardingCtrl {
4         constructor($log, ngDialog, confirmBoxService, basicAuthAccountService, $cookies, $scope,$modal) {
5                 
6                 
7             let init = () => {
8                  $scope.accountList = [];
9                  getOnboardingAccounts();
10                  
11                  this.accoutTableHeaders = [
12                         {name: 'Account Name', value: 'applicationName', isSortable: true},
13                     {name: 'Username', value: 'username', isSortable: false}
14                  ];
15             };
16             
17             let getOnboardingAccounts = () => {
18                 basicAuthAccountService.getAccountList().then(res => {                          
19                     $scope.accountList = res;
20                 }).catch(err => {
21                     $log.error('AccountOnboardingCtrl::getOnboardingAccounts caught error', err);
22                 });
23             };
24             
25             this.openAddNewAccountModal = (selectedAccount) => {
26                 let data = null; 
27                                 if(selectedAccount){
28                                         data = { 
29                                                 account:selectedAccount,
30                                                 list: $scope.accountList
31                                         }
32                                 }else{
33                                         data = {
34                                                 list: $scope.accountList        
35                                         }
36                                 }
37                         var modalInstance = $modal.open({
38                     templateUrl: 'app/views/account-onboarding/account-add-details/account-add-details.html',
39                     controller: 'AccountAddDetailsCtrl as accountAddDetails',
40                     sizeClass: 'modal-medium', 
41                     resolve: {
42                                         items: function () {
43                                   return data;
44                                         }
45                         }
46                 })
47                 
48                 modalInstance.result.then(function (needUpdate) {
49                         if(needUpdate.value === true){
50                                 if(needUpdate.value === true){
51                                  getOnboardingAccounts();
52                        }
53                   }
54                 });
55             };
56             
57             
58             this.deleteAccount = account => { 
59                 console.log(account);
60                     confirmBoxService.deleteItem(account.applicationName).then(isConfirmed => {   
61                         if(isConfirmed){
62                                 basicAuthAccountService.deleteAccount(account.id).then(() => {
63                                 $scope.accountList.splice($scope.accountList.indexOf(account), 1);
64                         }).catch(err => {
65                             $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
66                         });
67                     }
68                 }).catch(err => {
69                     $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
70                 });
71              };
72             
73             init();
74         }
75     }
76     AccountOnboardingCtrl.$inject = ['$log', 'ngDialog', 'confirmBoxService', 'basicAuthAccountService', '$cookies', '$scope','$modal'];
77     angular.module('ecompApp').controller('AccountOnboardingCtrl', AccountOnboardingCtrl);
78 })();