Adding new components with portal-FE-common
[portal.git] / portal-FE-common / src / app / pages / portal-admins / new-portal-admin / new-portal-admin.component.ts
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 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  * 
37  */
38 import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
39 import { NgbActiveModal, NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
40 import { PortalAdmin } from 'src/app/shared/model/PortalAdmin';
41 import { PortalAdminsService } from 'src/app/shared/services';
42 import { HttpErrorResponse } from '@angular/common/http';
43 import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
44 import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component';
45
46 @Component({
47   selector: 'app-new-portal-admin',
48   templateUrl: './new-portal-admin.component.html',
49   styleUrls: ['./new-portal-admin.component.scss']
50 })
51 export class NewPortalAdminComponent implements OnInit {
52
53   constructor(public activeModal: NgbActiveModal, private portalAdminsService: PortalAdminsService,
54     public ngbModal: NgbModal) { }
55   @Input() title: string;
56   @Input() id: number;
57   changedSelectedUser: PortalAdmin;
58   closeResult: string;
59   searchTitleText = 'Enter First Name, Last Name or Org User Id';
60   placeholderText = 'Search';
61   @Output() passBackNewPortalAdmin: EventEmitter<any> = new EventEmitter();
62
63   ngOnInit() {
64   }
65
66   changeSelectedUser(user: PortalAdmin) {
67     this.changedSelectedUser = user;
68   }
69
70   addNewPortalAdmin(changedSelectedUser: PortalAdmin) {
71     const modalRef = this.ngbModal.open(InformationModalComponent);
72     modalRef.componentInstance.title = "Admin Update";
73     modalRef.componentInstance.message = `Are you sure you want to add ${changedSelectedUser.firstName} ${changedSelectedUser.lastName} as a Portal Admin?`;
74     modalRef.result.then((result) => {
75       if (result === 'Ok') {
76         this.portalAdminsService.addPortalAdmin(this.changedSelectedUser.orgUserId).subscribe(_data => {
77           this.passBackNewPortalAdmin.emit(_data);
78         }, (_err: HttpErrorResponse) => {
79           this.passBackNewPortalAdmin.emit(_err);
80           const modalErrorRef = this.ngbModal.open(ConfirmationModalComponent);
81           modalErrorRef.componentInstance.title = "Error";
82           if (_err.status === 409) {    //Conflict
83             modalErrorRef.componentInstance.message = "This user already exists as a portal admin!";
84           } else {
85             modalErrorRef.componentInstance.message = "There was a unknown problem adding the portal admin." + "Please try again later. Error Status: " + _err.status;
86           }
87         });
88       }
89     }, (reason) => {
90        return;
91     });
92
93   }
94 }