[PORTAL-7] Rebase
[portal.git] / ecomp-portal-FE-common / client / app / views / portal-admin / portal-admin-controller.js
1 /*-\r
2  * ================================================================================\r
3  * ECOMP Portal\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ================================================================================\r
19  */\r
20 'use strict';\r
21 (function () {\r
22     class PortalAdminsCtrl {\r
23         constructor($log, portalAdminsService, ngDialog, confirmBoxService) {\r
24 \r
25             let updateTableData = () => {\r
26                 this.isLoadingTable = true;\r
27                 portalAdminsService.getPortalAdmins().then(result=> {\r
28                     $log.debug('PortalAdminsCtrl::updateTableData: result: ' + JSON.stringify(result));\r
29                     if (!result || !result.length) {\r
30                         $log.info('PortalAdminsCtrl::updateTableData: no Portal Admins err handling');\r
31                         this.portalAdminsTableData = [];\r
32                         return;\r
33                     }\r
34                     this.portalAdminsTableData = result;\r
35                 }).catch(err=> {\r
36                     $log.error('PortalAdminsCtrl::updateTableData error :',err);\r
37                     confirmBoxService.showInformation('There was a problem retrieving the portal admins. ' +\r
38                         'Please try again later. Error: ' + err.status).then(isConfirmed => {});\r
39 \r
40                 }).finally(() => {\r
41                     this.isLoadingTable = false;\r
42                 });\r
43             };\r
44 \r
45             let init = () => {\r
46                 $log.info('portalAdminsService.getPortalAdmins::initializing...');\r
47                 this.isLoadingTable = false;\r
48 \r
49                 /*Table general configuration params*/\r
50                 this.searchString= '';\r
51                 /*Table data*/\r
52                 this.portalAdminsTableHeaders = ['First Name', 'Last Name', 'User ID', 'Delete'];\r
53                 this.portalAdminsTableData = [];\r
54                 updateTableData();\r
55             };\r
56 \r
57             init();\r
58 \r
59             this.removePortalAdmin = pAdmin => {\r
60                 $log.debug('PortalAdminsCtrl::removePortalAdmin: pAdmin = ' + JSON.stringify(pAdmin));\r
61                 confirmBoxService.deleteItem(pAdmin.firstName + ' ' + pAdmin.lastName )\r
62                     .then(isConfirmed => {\r
63                     if(isConfirmed){\r
64                         if(!pAdmin || !pAdmin.userId){\r
65                             $log.error('PortalAdminsCtrl::removePortalAdmin No portal admin or ID... cannot delete');\r
66                             return;\r
67                         }\r
68                         portalAdminsService.removePortalAdmin(pAdmin.userId,pAdmin.loginId).then(() => {\r
69                             $log.info("PortalAdminsCtrl::removePortalAdmin removed admin");\r
70                             init();\r
71                         }).catch(err => {\r
72                             $log.error('PortalAdminsCtrl::removePortalAdmin.deleteItem error: '+ err);\r
73                             confirmBoxService.showInformation('There was a problem deleting this portal admins. ' +\r
74                                 'Please try again later. Error: ' + err.status).then(isConfirmed => {});\r
75                         });\r
76                     }\r
77                 }).catch(err => {\r
78                     $log.error('PortalAdminsCtrl::removePortalAdmin.deleteItem error: '+ err);\r
79                 });\r
80             };\r
81             \r
82             this.openAddNewPortalAdminModal = (user) => {\r
83                 let data = null;\r
84                 if(user){\r
85                     data = {\r
86                         dialogState: 2,\r
87                         selectedUser:{\r
88                             orgUserId: user.orgUserId,\r
89                             firstName: user.firstName,\r
90                             lastName: user.lastName\r
91                         }\r
92                     }\r
93                 }\r
94                 ngDialog.open({\r
95                     templateUrl: 'app/views/portal-admin/new-portal-admin/new-portal-admin.modal.html',\r
96                     controller: 'NewPortalAdminModalCtrl',\r
97                     controllerAs: 'newPortalAdmin',\r
98                     data: data\r
99                 }).closePromise.then(needUpdate => {\r
100                     if(needUpdate.value === true){\r
101                         $log.debug('PortalAdminsCtrl::openAddNewPortalAdminModal: updating Portal Admin table data...');\r
102                         updateTableData();\r
103                     }\r
104                 });\r
105             };\r
106         }\r
107     }\r
108     PortalAdminsCtrl.$inject = ['$log', 'portalAdminsService', 'ngDialog', 'confirmBoxService'];\r
109     angular.module('ecompApp').controller('PortalAdminsCtrl', PortalAdminsCtrl);\r
110 })();\r