b33dd8e55d9905d3bfb17429be4237ea7f392ddd
[portal.git] / ecomp-portal-FE-common / client / app / views / account-onboarding / account-onboarding.controller.js
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
37  */
38 'use strict';
39 (function () {
40     class AccountOnboardingCtrl {
41         constructor($log, ngDialog, confirmBoxService, basicAuthAccountService, $cookies, $scope,$modal) {
42                 
43                 
44             let init = () => {
45                  $scope.accountList = [];
46                  getOnboardingAccounts();
47                  
48                  this.accoutTableHeaders = [
49                         {name: 'Account Name', value: 'applicationName', isSortable: true},
50                     {name: 'Username', value: 'username', isSortable: false}
51                  ];
52             };
53             
54             let getOnboardingAccounts = () => {
55                 basicAuthAccountService.getAccountList().then(res => {                          
56                     $scope.accountList = res;
57                 }).catch(err => {
58                     $log.error('AccountOnboardingCtrl::getOnboardingAccounts caught error', err);
59                 });
60             };
61             
62             this.openAddNewAccountModal = (selectedAccount) => {
63                 let data = null; 
64                                 if(selectedAccount){
65                                         data = { 
66                                                 account:selectedAccount,
67                                                 list: $scope.accountList
68                                         }
69                                 }else{
70                                         data = {
71                                                 list: $scope.accountList        
72                                         }
73                                 }
74                         var modalInstance = $modal.open({
75                     templateUrl: 'app/views/account-onboarding/account-add-details/account-add-details.html',
76                     controller: 'AccountAddDetailsCtrl as accountAddDetails',
77                     sizeClass: 'modal-medium', 
78                     resolve: {
79                                         items: function () {
80                                   return data;
81                                         }
82                         }
83                 })
84                 
85                 modalInstance.result.then(function (needUpdate) {
86                                 if(needUpdate == 'confirmed'){
87                                  getOnboardingAccounts();
88                        }
89                 });
90             };
91             
92             
93             this.deleteAccount = account => { 
94                 console.log(account);
95                     confirmBoxService.deleteItem(account.applicationName).then(isConfirmed => {   
96                         if(isConfirmed){
97                                 basicAuthAccountService.deleteAccount(account.id).then(() => {
98                                 $scope.accountList.splice($scope.accountList.indexOf(account), 1);
99                         }).catch(err => {
100                             $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
101                         });
102                     }
103                 }).catch(err => {
104                     $log.error('AccountOnboardingCtrl::deleteAccount error:',err);
105                 });
106              };
107             
108             init();
109         }
110     }
111     AccountOnboardingCtrl.$inject = ['$log', 'ngDialog', 'confirmBoxService', 'basicAuthAccountService', '$cookies', '$scope','$modal'];
112     angular.module('ecompApp').controller('AccountOnboardingCtrl', AccountOnboardingCtrl);
113 })();