/*- * ============LICENSE_START========================================== * ONAP Portal SDK * =================================================================== * 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 { Component, OnInit, Directive, Input, Output, EventEmitter, ViewChildren, QueryList, PipeTransform, ViewChild } from '@angular/core'; import { AdminService } from '../admin.service'; import {UserService} from '../../shared/services/user/user.service'; import { User } from 'src/app/shared/services/user/user'; import { of, Observable } from 'rxjs'; import { RoleFunction } from './role-function'; import { MatTableDataSource } from '@angular/material/table'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component'; import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap'; import { NewRoleFunctionComponent } from './new-role-function/new-role-function.component'; import { Column, DataTableSettings, ColumnTypes } from 'portalsdk-tag-lib'; import { RoleFunctionsService } from './role-functions.service'; @Component({ selector: 'app-role-functions', templateUrl: './role-functions.component.html', styleUrls: ['./role-functions.component.scss'] }) export class RoleFunctionsComponent implements OnInit { tableData: Array = []; response: any; result: any; function: RoleFunction; isEditMode: boolean = false; availableRoleFunctions: any; showSpinner: boolean; isAppCentralized: any; user: User; closeResult: string; roleFunctionHeaders = ["name", "code", "type", "action", "edit", "delete"]; dataSource: MatTableDataSource; constructor(public adminService: AdminService, public userService: UserService, private ngModal: NgbModal, private roleFunctionService: RoleFunctionsService) { } @ViewChild(MatPaginator, {}) paginator: MatPaginator; @ViewChild(MatSort, {}) sort: MatSort; public settings; public columns: any = []; typeOptions: string[] = ['menu', 'url', 'other']; ngOnInit() { this.showSpinner = false; this.availableRoleFunctions = []; this.getRoleFunctions(); let result = this.userService.getFunctionalMenuStaticDetailSession(); result.subscribe(user => { this.user = user; this.isAppCentralized = this.user.isAppCentralized; }); } getRoleFunctions() { this.showSpinner = true; let response; this.response = this.adminService.getRoleFunctionList(); this.response.subscribe(data => { response = data; this.result = JSON.parse(response.data); this.availableRoleFunctions = this.result.availableRoleFunctions; this.tableData = JSON.parse(this.result.availableRoleFunctions); this.columns.push(new Column("name", "Name", ColumnTypes.TEXT, true, null)); this.columns.push(new Column("code", "Code", ColumnTypes.TEXT, true, null)); this.columns.push(new Column("type", "Type", ColumnTypes.RADIO, true, this.typeOptions)); this.columns.push(new Column("action", "Action", ColumnTypes.TEXT, true, null)); this.settings = new DataTableSettings() this.settings.columns = this.columns; this.settings.isPaginationEnabled = true; this.settings.paginationsSize = "5"; this.settings.isReadOnly = false; this.settings.isTableSearchEnabled = true; this.settings.applicationService = this.roleFunctionService; this.showSpinner = false; }); } }