summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE-common/client/app/views/portal-admin/portal-admin-controller.js
blob: 0051e708c7e8cd8b0f96528e1b25b577a711e1bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*-
 * ================================================================================
 * 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.
 * ================================================================================
 */
'use strict';
(function () {
    class PortalAdminsCtrl {
        constructor($log, portalAdminsService, ngDialog, confirmBoxService) {

            let updateTableData = () => {
                this.isLoadingTable = true;
                portalAdminsService.getPortalAdmins().then(result=> {
                    $log.debug('PortalAdminsCtrl::updateTableData: result: ' + JSON.stringify(result));
                    if (!result || !result.length) {
                        $log.info('PortalAdminsCtrl::updateTableData: no Portal Admins err handling');
                        this.portalAdminsTableData = [];
                        return;
                    }
                    this.portalAdminsTableData = result;
                }).catch(err=> {
                    $log.error('PortalAdminsCtrl::updateTableData error :',err);
                    confirmBoxService.showInformation('There was a problem retrieving the portal admins. ' +
                        'Please try again later. Error: ' + err.status).then(isConfirmed => {});

                }).finally(() => {
                    this.isLoadingTable = false;
                });
            };

            let init = () => {
                $log.info('portalAdminsService.getPortalAdmins::initializing...');
                this.isLoadingTable = false;

                /*Table general configuration params*/
                this.searchString= '';
                /*Table data*/
                this.portalAdminsTableHeaders = ['First Name', 'Last Name', 'User ID', 'Delete'];
                this.portalAdminsTableData = [];
                updateTableData();
            };

            init();

            this.removePortalAdmin = pAdmin => {
                $log.debug('PortalAdminsCtrl::removePortalAdmin: pAdmin = ' + JSON.stringify(pAdmin));
                confirmBoxService.deleteItem(pAdmin.firstName + ' ' + pAdmin.lastName )
                    .then(isConfirmed => {
                    if(isConfirmed){
                        if(!pAdmin || !pAdmin.userId){
                            $log.error('PortalAdminsCtrl::removePortalAdmin No portal admin or ID... cannot delete');
                            return;
                        }
                        portalAdminsService.removePortalAdmin(pAdmin.userId,pAdmin.loginId).then(() => {
                            $log.info("PortalAdminsCtrl::removePortalAdmin removed admin");
                            init();
                        }).catch(err => {
                            $log.error('PortalAdminsCtrl::removePortalAdmin.deleteItem error: '+ err);
                            confirmBoxService.showInformation('There was a problem deleting this portal admins. ' +
                                'Please try again later. Error: ' + err.status).then(isConfirmed => {});
                        });
                    }
                }).catch(err => {
                    $log.error('PortalAdminsCtrl::removePortalAdmin.deleteItem error: '+ err);
                });
            };
            
            this.openAddNewPortalAdminModal = (user) => {
                let data = null;
                if(user){
                    data = {
                        dialogState: 2,
                        selectedUser:{
                            orgUserId: user.orgUserId,
                            firstName: user.firstName,
                            lastName: user.lastName
                        }
                    }
                }
                ngDialog.open({
                    templateUrl: 'app/views/portal-admin/new-portal-admin/new-portal-admin.modal.html',
                    controller: 'NewPortalAdminModalCtrl',
                    controllerAs: 'newPortalAdmin',
                    data: data
                }).closePromise.then(needUpdate => {
                    if(needUpdate.value === true){
                        $log.debug('PortalAdminsCtrl::openAddNewPortalAdminModal: updating Portal Admin table data...');
                        updateTableData();
                    }
                });
            };
        }
    }
    PortalAdminsCtrl.$inject = ['$log', 'portalAdminsService', 'ngDialog', 'confirmBoxService'];
    angular.module('ecompApp').controller('PortalAdminsCtrl', PortalAdminsCtrl);
})();