Files
doneit-web/src/app/shared/agenda/event-list/event-list.page.ts
T
Peter Maquiran 623df60aeb fix
2023-02-22 13:06:31 +01:00

165 lines
3.9 KiB
TypeScript

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<any>();
@Output() approveEventDismiss = new EventEmitter<any>();
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();
}
}