[PORTAL-7] Rebase
[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) {
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                 ngDialog.open({
38                     templateUrl: 'app/views/account-onboarding/account-add-details/account-add-details.html',
39                     controller: 'AccountAddDetailsCtrl',
40                     controllerAs: 'accountAddDetails',
41                     data: data
42                 }).closePromise.then(needUpdate => {
43                         if(needUpdate.value === true){
44                                 if(needUpdate.value === true){
45                                          getOnboardingAccounts();
46                         }
47                     }
48                 });
49             };
50             
51             
52             this.deleteAccount = account => { 
53                 console.log(account);
54                     confirmBoxService.deleteItem(account.applicationName).then(isConfirmed => {   
55                         if(isConfirmed){
56                                 basicAuthAccountService.deleteAccount(account.id).then(() => {
57                                 $scope.accountList.splice($scope.accountList.indexOf(account), 1);
58                         }).catch(err => {
59                             $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
60                         });
61                     }
62                 }).catch(err => {
63                     $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
64                 });
65              };
66             
67             init();
68         }
69     }
70     AccountOnboardingCtrl.$inject = ['$log', 'ngDialog', 'confirmBoxService', 'basicAuthAccountService', '$cookies', '$scope'];
71     angular.module('ecompApp').controller('AccountOnboardingCtrl', AccountOnboardingCtrl);
72 })();