import { Component, OnInit,ViewChild } from "@angular/core"; import { Location } from "@angular/common"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { MenuResponse } from "src/app/hmg-common/services/menu/models/menu-response"; import { MyTeamService } from "../service/my-team.service"; import { MenuService } from "src/app/hmg-common/services/menu/menuservice.service"; import { ModalController } from "@ionic/angular"; import { IonInfiniteScroll } from '@ionic/angular'; @Component({ selector: "app-details", templateUrl: "./details.component.html", styleUrls: ["./details.component.scss"] }) export class DetailsComponent implements OnInit { public static opendEmployeesARR='opend_employees_arr'; @ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll; pageNum: number = 1; pageLimit: number = 50; modalFlag: any = false; empSubordinate: any; employee: any; IsReachEnd: boolean = false; searchKey: any; public searchKeySelect: any; infiniteRequest: any; isSpecialist: boolean = false; selMenu: MenuResponse = new MenuResponse(); public opendEmployees :any=[]; public headerTitle: string = ""; public userImage: any = '../assets/imgs/profile.png'; constructor( public menuService: MenuService, public common: CommonService, public myTeamService: MyTeamService, public ts: TranslatorService, public modalController: ModalController, private location: Location, public authService: AuthenticationService, ) { console.log("Constuctor called"); } ngOnInit() { // this.intializeMemberDetail(); } intializeMemberDetail(userID?){ this.pageLimit = 50; this.pageNum = 1; this.employee = this.common.sharedService.getSharedData( MyTeamService.EMPLOYEE_SHARED_DATA, false ); let employees = this.common.sharedService.getSharedData( DetailsComponent.opendEmployeesARR, false); if( employees ){ this.opendEmployees.push(this.employee); this.common.sharedService.setSharedData(this.opendEmployees, DetailsComponent.opendEmployeesARR); } //this.opendEmployees = employees; console.log(this.employee); this.selMenu = this.common.sharedService.getSharedData( MenuResponse.SHARED_DATA, false ); this.headerTitle = this.selMenu.List_Menu.MENU_NAME; this.isSpecialist = this.common.sharedService.getSharedData( 'isSpecialist', false ) ? true :false; // this.isSpecialist = this.navParams.get("isSpecialist") // ? this.navParams.get("isSpecialist") // : false; if (this.employee) this.getEmpSubordinate(userID); } goback() { //this.location.back(); const user = this.authService.getAuthenticatedUser(); if(this.employee.SUPERVISOR_NUMBER==user.EMPLOYEE_NUMBER || this.opendEmployees.length == 1){ this.opendEmployees=[]; this.common.openMyTeamPage(); }else{ for(let i=0;i { this.handleEmpResult(result); }); } handleEmpResult(result) { //let employeeSubordinate=resFlag.GetEmployeeSubordinatesList; //this.nav.push("MyTeamPage",{empSubordinate:employeeSubordinate}); if (this.common.validResponse(result)) { if (this.common.hasData(result.GetEmployeeSubordinatesList)) { this.empSubordinate = result.GetEmployeeSubordinatesList; // this.pageNum++; this.infiniteRequest.P_PAGE_NUM= this.pageNum++; let lastItemIndex = this.empSubordinate.length - 1; if (result.GetEmployeeSubordinatesList[lastItemIndex]) { let lastitem = result.GetEmployeeSubordinatesList[lastItemIndex]; if (lastitem.NO_OF_ROWS == lastitem.ROW_NUM) { this.IsReachEnd = true; } else { this.IsReachEnd = false; } } } else { this.empSubordinate = []; } } } doInfinite(infiniteScroll) { if (!this.IsReachEnd && this.infiniteRequest) { // this.infiniteRequest.P_PAGE_NUM = this.pageNum; this.myTeamService .getEmployeeSubordinates(this.infiniteRequest) .subscribe( (result: any) => { if (this.common.validResponse(result)) { this.infiniteRequest.P_PAGE_NUM= this.pageNum++; if (this.common.hasData(result.GetEmployeeSubordinatesList)) { result.GetEmployeeSubordinatesList.forEach(vr => { if (vr.ROW_NUM == vr.NO_OF_ROWS) { this.IsReachEnd = true; } else { this.IsReachEnd = false; } this.empSubordinate.push(vr); // this.pro.GetVacationRulesList.push(vr); }); } else { this.IsReachEnd = true; } } //this.P_PAGE_NUM++; if (infiniteScroll) this.infiniteScroll.complete(); // console.log(resFlag); }, Error => console.log(Error), () => this.infiniteScroll.complete() ); } else { if (infiniteScroll) this.infiniteScroll.complete(); } } getDetails(index) { //this.empSubordinate[index].isModal = true; this.common.sharedService.setSharedData( this.empSubordinate[index], MyTeamService.EMPLOYEE_SHARED_DATA ); this.intializeMemberDetail(); // this.presentModal(); } async presentModal() { //this.modalFlag = true; const modal = await this.modalController.create({ component: DetailsComponent, keyboardClose: true, animated: false }); let dismissed = modal.onDidDismiss(); dismissed.then(() => { this.modalFlag = false; }); return await modal.present(); } getMenuEntries(item) { let selEmpNo: String = null; let respID: any = -999; let menuType: string = "M"; let nationality: string; if (this.isSpecialist == true) { // respID = this.sharedData.getSharedData( // MenuResponse.SHARED_SEL_RESP_ID, // true // ); menuType = "S"; } selEmpNo = item.EMPLOYEE_NUMBER; nationality = item.NATIONALITY_CODE; const body = { P_MENU_TYPE: menuType, //to check P_SELECTED_EMPLOYEE_NUMBER: selEmpNo, P_SELECTED_RESP_ID: respID, NationalityCode: nationality }; //set emp and resp id this.common.sharedService.setSharedData(selEmpNo, MenuResponse.SHARED_SEL_EMP); this.common.sharedService.setSharedData( body.P_SELECTED_RESP_ID, MenuResponse.SHARED_SEL_RESP_ID ); this.menuService.getMenuEntires(body).subscribe((result: MenuResponse) => { this.handleMenuEntiresResult(result); }); } private handleMenuEntiresResult(result) { if (this.common.validResponse(result)) { if (this.common.hasData(result.GetMenuEntriesList)) { this.sortMenuEntires(result.GetMenuEntriesList); } } } sortMenuEntires(list) { this.close().then(() => { }); let tree = this.common.list_to_tree(list); this.common.sharedService.setSharedData(tree, "menuEntries"); // this.common.navigateForward("/eit/homepage"); this.common.openEITPage(); // let tree = this.common.list_to_tree(list); // this.navCtrl.push("MenuEntriesPage", { menuEntries: tree }); } public async close() { const modal = await this.modalController.getTop(); if (modal) { modal.dismiss(); } } goToSubordinate() { this.selMenu.search=true; this.common.sharedService.setSharedData( this.selMenu, MenuResponse.SHARED_DATA ); this.common.openMyTeamPage(); //this.navCtrl.push("MySubordinatePage", { isSearch: true }); } dismiss() { this.modalController.dismiss({ dismissed: true }); } }