summaryrefslogtreecommitdiffstats
path: root/portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts')
-rw-r--r--portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts124
1 files changed, 124 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts b/portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts
new file mode 100644
index 00000000..5dfe026d
--- /dev/null
+++ b/portal-FE-common/src/app/pages/portal-admins/portal-admins.component.ts
@@ -0,0 +1,124 @@
+/*-
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+import { OnInit, Component, ViewChild, NgModuleRef } from '@angular/core';
+import { MatSort, MatPaginator } from '@angular/material';
+import { MatTableDataSource } from '@angular/material';
+import { PortalAdminsService } from 'src/app/shared/services';
+import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
+import { NewPortalAdminComponent } from './new-portal-admin/new-portal-admin.component';
+import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component';
+import { PortalAdmin } from 'src/app/shared/model/PortalAdmin';
+import { HttpErrorResponse } from '@angular/common/http';
+import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
+
+@Component({
+ selector: 'app-portal-admins',
+ templateUrl: './portal-admins.component.html',
+ styleUrls: ['./portal-admins.component.scss']
+})
+export class PortalAdminsComponent implements OnInit {
+ portalAdmins: PortalAdmin[] = [];
+ showSpinner = true;
+ closeResult: string;
+ constructor(private portalAdminsService: PortalAdminsService, private ngbModal: NgbModal) { }
+ displayedColumns: string[] = ['firstName', 'lastName', 'loginId', 'delete'];
+ dataSource = new MatTableDataSource(this.portalAdmins);
+ @ViewChild(MatSort) sort: MatSort;
+ @ViewChild(MatPaginator) paginator: MatPaginator;
+ ngOnInit() {
+ this.getAllPortalAdmins();
+ }
+
+ getAllPortalAdmins() {
+ this.portalAdminsService.getPortalAdmins().subscribe((_data: PortalAdmin[]) => {
+ this.showSpinner = false;
+ // _data is the array of data that you getting from the db.
+ this.portalAdmins = _data;
+ this.dataSource = new MatTableDataSource(this.portalAdmins);
+ this.dataSource.sort = this.sort;
+ this.dataSource.paginator = this.paginator;
+ }, (_err: HttpErrorResponse) =>{
+ const modalErrorRef = this.ngbModal.open(ConfirmationModalComponent);
+ modalErrorRef.componentInstance.title = "Error";
+ if (_err.status) { //Conflict
+ modalErrorRef.componentInstance.message = 'Error Status: ' + _err.status + ' There was a unknown problem adding the portal admin.' + 'Please try again later.';
+ }
+ })
+ }
+
+ applyFilter(filterValue: string) {
+ this.dataSource.filter = filterValue.trim().toLowerCase();
+ }
+
+ addPortalAdminEntry() {
+ const modalRef = this.ngbModal.open(NewPortalAdminComponent);
+ modalRef.componentInstance.title = 'Add Portal Admin';
+ modalRef.componentInstance.id = 1;
+ modalRef.componentInstance.passBackNewPortalAdmin.subscribe((_result: any) => {
+ modalRef.close();
+ this.showSpinner = true;
+ this.getAllPortalAdmins();
+ })
+ }
+
+ removePortalAdmin(deletePortalAdmin: any) {
+ const modalRef = this.ngbModal.open(InformationModalComponent);
+ modalRef.componentInstance.title = 'Confirmation';
+ modalRef.componentInstance.message = `Are you sure you want to delete ${deletePortalAdmin.firstName} ${deletePortalAdmin.lastName} ?`;
+ modalRef.result.then((result) => {
+ if (result === 'Ok') {
+ this.portalAdminsService.removePortalAdmin(deletePortalAdmin.userId, deletePortalAdmin.loginId).subscribe(_data => {
+ this.showSpinner = true;
+ this.getAllPortalAdmins();
+ })
+ }
+ }, (reason) => {
+ this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
+ });
+ }
+
+ private getDismissReason(reason: any): string {
+ if (reason === ModalDismissReasons.ESC) {
+ return 'by pressing ESC';
+ } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {
+ return 'by clicking on a backdrop';
+ } else {
+ return `with: ${reason}`;
+ }
+ }
+} \ No newline at end of file