import { Component, OnInit } 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 { ModalController } from "@ionic/angular"; @Component({ selector: "app-home", templateUrl: "./home.component.html", styleUrls: ["./home.component.scss"] }) export class HomeComponent implements OnInit { pageNum: number = 1; pageLimit: number = 50; empSubordinate: any; employee: any; public headerTitle: string = ""; IsReachEnd: boolean = false; searchKey: any; public isSearch: boolean = false; public searchKeySelect: any; infiniteRequest: any; selMenu: any; selEmpNo: any; constructor( public ts: TranslatorService, public authService: AuthenticationService, public common: CommonService, public myTeamService: MyTeamService, public modalController: ModalController, private location: Location ) {} ngOnInit() { this.setIntitial(); } goback() { this.location.back(); } getData() {} setIntitial() { this.selMenu = this.common.sharedService.getSharedData( MenuResponse.SHARED_DATA, false ); this.headerTitle = this.selMenu.List_Menu.MENU_NAME; this.selEmpNo = this.selMenu.userid; this.isSearch = this.selMenu.search ? this.selMenu.search : this.isSearch; // this.isSearch=this.navParams.get("isSearch")?this.navParams.get("isSearch") : false; if (!this.isSearch) this.getEmpSubordinate(); } getEmpSubordinate() { this.pageNum = 1; this.IsReachEnd = false; let searchEmpNum = ""; let searchEmpName = ""; let searchEmpEmail = ""; if (this.searchKey) { switch (this.searchKeySelect) { case "1": { searchEmpName = this.searchKey; searchEmpNum = ""; searchEmpEmail = ""; break; } case "2": { searchEmpNum = this.searchKey; searchEmpName = ""; searchEmpEmail = ""; break; } case "3": { searchEmpEmail = this.searchKey; searchEmpNum = ""; searchEmpName = ""; break; } default: { searchEmpNum = ""; searchEmpName = ""; searchEmpEmail = ""; break; } } } else { searchEmpNum = ""; searchEmpName = ""; searchEmpEmail = ""; } if (this.isSearch) { this.selEmpNo = null; } const body = { P_SELECTED_EMPLOYEE_NUMBER: this.selEmpNo, P_SEARCH_EMPLOYEE_NUMBER: searchEmpNum, P_SEARCH_EMPLOYEE_DISPLAY_NAME: searchEmpName, P_SEARCH_EMAIL_ADDRESS: searchEmpEmail, P_PAGE_NUM: this.pageNum, P_PAGE_LIMIT: this.pageLimit }; this.infiniteRequest = body; this.myTeamService .getEmployeeSubordinates(body) .subscribe((result: any) => { this.handleEmpResult(result); }); } handleEmpResult(result) { if (this.common.validResponse(result)) { if (this.common.hasData(result.GetEmployeeSubordinatesList)) { this.empSubordinate = result.GetEmployeeSubordinatesList; this.pageNum++; const lastItemIndex = this.empSubordinate.length - 1; if (result.GetEmployeeSubordinatesList[lastItemIndex]) { const 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.pageNum++; if (this.common.hasData(result.GetWorkList)) { 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) { infiniteScroll.complete(); } // console.log(resFlag); }, Error => console.log(Error), () => infiniteScroll.complete() ); } else { if (infiniteScroll) { infiniteScroll.complete(); } } } getDetails(index) { this.common.sharedService.setSharedData( this.empSubordinate[index], MyTeamService.EMPLOYEE_SHARED_DATA ); this.common.sharedService.setSharedData( this.selMenu, MenuResponse.SHARED_DATA ); this.close().then(() => { this.common.openMyTeamDetails(); }); //this.modalController.dismiss(); //this.navCtrl.push("MyTeamPage",{employee:this.empSubordinate[index]}); } public async close() { const modal = await this.modalController.getTop(); if (modal) { modal.dismiss(); } } toggleSearch() { this.isSearch = !this.isSearch; } goToSubordinate() { //this.navCtrl.push("MySubordinatePage",{isSearch:true}); //this.getEmpSubordinate(); this.presentModal(); } async presentModal() { const modal = await this.modalController.create({ component: HomeComponent, keyboardClose: true, animated: false, componentProps: { isSearch: true } }); let dismissed = modal.onDidDismiss(); dismissed.then(() => { this.isSearch = false; }); return await modal.present(); } dismiss() { this.modalController.dismiss({ dismissed: true }); } }