diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts')
-rw-r--r-- | ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts new file mode 100644 index 00000000..5c271b66 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts @@ -0,0 +1,116 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { AdminService } from '../admin.service'; +import { MatTableDataSource } from '@angular/material/table'; +import { MatSort } from '@angular/material/sort'; +import { MatPaginator } from '@angular/material/paginator'; +import { User } from 'src/app/shared/services/user/user'; +import { UserService } from 'src/app/shared/services/user/user.service'; +import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap'; +import { modelGroupProvider } from '@angular/forms/src/directives/ng_model_group'; +import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component'; + + +@Component({ + selector: 'app-roles', + templateUrl: './roles.component.html', + styleUrls: ['./roles.component.scss'] +}) +export class RolesComponent implements OnInit { + tableData: Array<object> = []; + roleHeaders: Array<string> = []; + constructor(public adminService:AdminService,public userService: UserService,private ngModal: NgbModal) { } +roleId; +response:any; +result:any; +roleInfo:any; +roleData:any; +ociavailableRoleFunctions; +availableRoleFunctions; +availableRoles; +dataSource: MatTableDataSource<[]>; +user:User; +isAppCentralized; +closeResult: string; +showSpinner = true; + + @ViewChild(MatPaginator, {}) paginator: MatPaginator; + @ViewChild(MatSort, {}) sort: MatSort; + + + ngOnInit() { + this.roleHeaders = ["name","priority","Edit","Active?","Delete?"]; + this.showSpinner = false; + this.roleId=undefined; + this.getRole(this.roleId); + let result = this.userService.getFunctionalMenuStaticDetailSession(); + let user; + result.subscribe(user => { + this.user = user; + this.isAppCentralized = this.user.isAppCentralized; + }); + + + } + + getRole(roleId:any) + { + this.response = this.adminService.getRole(this.roleId); + this.response.subscribe(data => { + + this.result = data; + this.roleInfo = JSON.parse(this.result.data); + this.roleData =JSON.parse(this.roleInfo.role); + + this.ociavailableRoleFunctions =JSON.parse(this.roleInfo.availableRoleFunctions); + this.availableRoleFunctions=[]; + + for( let availableFun of this.ociavailableRoleFunctions){ + let availableRoleFunction = availableFun; + availableRoleFunction.selected = false; + for( let availableFunc of this.roleData.roleFunctions){ + if(availableFun.code === availableFunc.code){ + availableRoleFunction.selected = true; + } + } + this.availableRoleFunctions.push(availableRoleFunction); + } + this.availableRoles=JSON.parse(this.roleInfo.availableRoles); + + this.dataSource = new MatTableDataSource(this.availableRoles); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + }); + } + + delRoleConfirmPopUp(item: any) { + const modalRef = this.ngModal.open(InformationModalComponent); + modalRef.componentInstance.title = 'Confirmation'; + let response; + modalRef.componentInstance.message = `Are you sure you want to delete ${item.name} ?`; + modalRef.result.then((result) => { + if (result === 'Ok') { + this.adminService.deleteRole(item).subscribe(data => { + this.showSpinner = true; + response = data; + this.availableRoles = response.availableRoles; + this.dataSource = new MatTableDataSource(this.availableRoles); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + }) + } + }, (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 |