import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; import { EventBody } from 'src/app/models/eventbody.model'; import { EventPerson } from 'src/app/models/eventperson.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { NavigationEnd, Router } from '@angular/router'; import { LoginUserRespose } from 'src/app/models/user.model'; import { SortService } from 'src/app/services/functions/sort.service'; import { SessionStore } from 'src/app/store/session.service'; import { EventsService } from 'src/app/services/events.service'; import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service'; @Component({ selector: 'app-event-list', templateUrl: './event-list.page.html', styleUrls: ['./event-list.page.scss'], }) export class EventListPage implements OnInit { // [desktop] event list to approve showLoader: boolean; eventsPRList: any = [] eventsMDGPRList: any = [] eventsGenericList: any = [] eventsList: any = [] eventPerson: EventPerson; eventBody: EventBody; categories: string[]; serialnumber:string; loggeduser: LoginUserRespose; segment:string; eventoaprovacaostore = EventoAprovacaoStore; color: 'pr' | 'mdgpr' @Input() profile:string; @Input() showComponent:string; @Output() cloneAllmobileComponent = new EventEmitter(); @Output() approveEventDismiss = new EventEmitter(); constructor( private processes:ProcessesService, private router: Router, private sortService: SortService, public eventService: EventsService, ) { this.loggeduser = SessionStore.user; alert(this.segment) } ngOnInit() { this.segment = this.loggeduser.Profile; if(this.segment != "PR" && this.segment != "MDGPR") { this.segment = "Unknown"; } const pathname = window.location.pathname this.router.events.forEach((event) => { if(event instanceof NavigationEnd && event.url == pathname) { this.LoadToApproveEvents(); } }); } ngOnChanges() { this.LoadToApproveEvents(); setTimeout(() => { this.LoadToApproveEventsNoLoader(); }, 3000) } segmentChanged(ev: any) { this.LoadToApproveEvents(); } toDateString(e) { return new Date(e).toDateString() } async LoadToApproveEvents() { this.showLoader = true; const segment = this.segment if(this.segment == 'MDGPR') { // color if(SessionStore.user.Profile == 'PR') { this.color = 'pr' } else { this.color = 'mdgpr' } let genericEvents = await this.processes.GetTasksList('Agendar Evento', false).toPromise(); try { this.eventsList = this.sortService.sortArrayByDate(genericEvents).reverse(); } catch (error) { this.eventsList = []; } this.eventoaprovacaostore.save(segment, this.eventsList) } else { this.color = 'pr' let allEvents = await this.processes.eventsToApprove(segment).toPromise() try { this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse(); } catch(error) { this.eventsList = [] } this.eventsList = this.eventsList this.eventsList = this.eventsList this.eventoaprovacaostore.save(segment, this.eventsList) } this.showLoader = false; } async LoadToApproveEventsNoLoader() { this.LoadToApproveEvents() } async openApproveModal(eventSerialNumber, data) { let a = this.eventsMDGPRList.filter((elem) => { // return eventSerialNumber == elem.serialNumber }); this.approveEventDismiss.emit({ "serialNumber": eventSerialNumber, "action": "Aprovar", "saveData": data }); } refreshing() { this.LoadToApproveEvents(); } doRefresh(event) { this.LoadToApproveEvents(); setTimeout(() => { try { event?.target?.complete(); } catch(error) {} }, 2000); } close() { this.cloneAllmobileComponent.emit(); } }