Files
doneit-web/src/app/shared/agenda/event-list/event-list.page.ts
T

176 lines
4.4 KiB
TypeScript
Raw Normal View History

2021-02-24 11:10:51 +01:00
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';
2021-08-27 15:21:15 +01:00
import { LoginUserRespose } from 'src/app/models/user.model';
2021-10-18 15:19:01 +01:00
import { SortService } from 'src/app/services/functions/sort.service';
2022-10-12 17:01:09 +01:00
import { SessionStore } from 'src/app/store/session.service';
2023-02-09 17:03:26 +01:00
import { EventsService } from 'src/app/services/events.service';
2023-02-22 10:08:50 +01:00
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
2023-03-22 15:31:01 +01:00
import { environment } from 'src/environments/environment';
2021-02-24 11:10:51 +01:00
@Component({
selector: 'app-event-list',
2021-06-03 14:10:16 +01:00
templateUrl: './event-list.page.html',
styleUrls: ['./event-list.page.scss'],
2021-02-24 11:10:51 +01:00
})
2021-06-03 14:10:16 +01:00
export class EventListPage implements OnInit {
2021-06-30 11:59:57 +01:00
// [desktop] event list to approve
2021-02-24 11:10:51 +01:00
showLoader: boolean;
2023-02-22 13:06:31 +01:00
eventsList: any = []
2023-02-23 11:10:33 +01:00
2021-02-24 11:10:51 +01:00
eventPerson: EventPerson;
eventBody: EventBody;
categories: string[];
serialnumber:string;
2021-08-27 15:21:15 +01:00
loggeduser: LoginUserRespose;
2021-07-15 16:38:09 +01:00
segment:string;
2023-02-22 10:08:50 +01:00
eventoaprovacaostore = EventoAprovacaoStore;
2023-03-22 15:31:01 +01:00
environment = environment
2023-02-22 13:06:31 +01:00
color: 'pr' | 'mdgpr'
2023-07-26 13:06:42 +01:00
SessionStore = SessionStore;
2021-02-24 11:10:51 +01:00
2021-03-29 17:01:11 +01:00
@Input() profile:string;
2021-07-26 15:19:03 +01:00
@Input() showComponent:string;
2021-02-24 11:10:51 +01:00
@Output() cloneAllmobileComponent = new EventEmitter<any>();
2021-02-26 15:29:05 +01:00
@Output() approveEventDismiss = new EventEmitter<any>();
2021-02-24 11:10:51 +01:00
constructor(
private processes:ProcessesService,
private router: Router,
2021-10-18 15:19:01 +01:00
private sortService: SortService,
2023-02-09 17:03:26 +01:00
public eventService: EventsService,
2021-07-15 16:38:09 +01:00
) {
2022-10-12 17:01:09 +01:00
this.loggeduser = SessionStore.user;
2023-06-13 20:37:23 +01:00
}
ngAfterViewInit(): void {
2023-06-19 12:15:39 +01:00
this.eventService.onCalendarFinishLoad.subscribe(() => {
if(!this.segment) {
if(this.eventService.calendarNamesAry.includes('Meu calendario')) {
this.segment = 'Meu calendario';
} else {
this.segment = this.eventService.calendarNamesAry[0].OwnerUserId
}
// select pr by default
const pr = this.eventService.calendarNamesAry.find( e => e.Role == 'Presidente da República')
if(pr) {
this.segment = pr.OwnerUserId
}
2023-02-23 18:05:15 +01:00
}
2023-06-19 12:15:39 +01:00
})
2021-07-17 22:17:50 +01:00
}
2021-07-17 22:17:50 +01:00
ngOnInit() {
2021-07-15 16:38:09 +01:00
2021-07-17 22:17:50 +01:00
const pathname = window.location.pathname
2021-07-15 16:38:09 +01:00
2021-07-17 22:17:50 +01:00
this.router.events.forEach((event) => {
if(event instanceof NavigationEnd && event.url == pathname) {
this.LoadToApproveEvents();
2021-07-15 16:38:09 +01:00
}
2021-07-17 22:17:50 +01:00
});
}
2021-07-26 15:19:03 +01:00
ngOnChanges() {
2021-11-03 16:11:57 +01:00
this.LoadToApproveEvents();
2023-01-30 16:27:33 +01:00
setTimeout(() => {
2023-02-01 09:08:46 +01:00
this.LoadToApproveEventsNoLoader();
2023-01-30 16:27:33 +01:00
}, 3000)
2021-10-18 15:19:01 +01:00
}
2021-07-26 15:19:03 +01:00
2021-07-17 22:17:50 +01:00
segmentChanged(ev: any) {
this.LoadToApproveEvents();
}
toDateString(e) {
return new Date(e).toDateString()
}
async LoadToApproveEvents() {
2023-05-23 11:56:12 +01:00
if(SessionStore.user.Profile == 'PR') {
return false
}
2021-07-17 22:17:50 +01:00
this.showLoader = true;
2023-02-22 13:06:31 +01:00
2023-03-16 10:45:05 +01:00
const segment: any = this.segment
2023-02-22 13:06:31 +01:00
2023-02-22 16:53:28 +01:00
if(this.segment == 'Meu calendario') {
2023-02-22 13:06:31 +01:00
// color
2023-05-23 11:56:12 +01:00
this.color = 'mdgpr'
2023-02-22 13:06:31 +01:00
2023-02-27 19:52:30 +01:00
let genericEvents = await this.processes.eventsToApprove(SessionStore.user.UserId,'mobile agenda').toPromise()
2023-02-22 13:06:31 +01:00
try {
this.eventsList = this.sortService.sortArrayByDate(genericEvents).reverse();
} catch (error) {
this.eventsList = [];
2023-06-08 15:56:43 +01:00
this.showLoader = false;
2023-02-22 13:06:31 +01:00
}
this.eventoaprovacaostore.save(segment, this.eventsList)
2023-06-08 15:56:43 +01:00
} else if(segment) {
2023-06-11 23:00:12 +01:00
// console.log('segment', segment)
2023-02-22 13:06:31 +01:00
this.color = 'pr'
2023-02-23 18:05:15 +01:00
let allEvents = await this.processes.eventsToApprove(segment,'agenda desktop').toPromise()
2023-02-22 13:06:31 +01:00
try {
this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
} catch(error) {
this.eventsList = []
2023-06-08 15:56:43 +01:00
this.showLoader = false;
2023-02-01 09:08:46 +01:00
}
2023-02-22 13:06:31 +01:00
this.eventsList = this.eventsList
this.eventsList = this.eventsList
this.eventoaprovacaostore.save(segment, this.eventsList)
2023-02-01 09:08:46 +01:00
}
2023-02-22 13:06:31 +01:00
this.showLoader = false;
2023-02-01 09:08:46 +01:00
}
async LoadToApproveEventsNoLoader() {
2023-02-22 13:06:31 +01:00
this.LoadToApproveEvents()
2021-07-17 22:17:50 +01:00
}
async openApproveModal(eventSerialNumber, data) {
this.approveEventDismiss.emit({
"serialNumber": eventSerialNumber,
"action": "Aprovar",
"saveData": data
});
}
2021-10-18 15:19:01 +01:00
refreshing() {
this.LoadToApproveEvents();
}
2021-07-17 22:17:50 +01:00
doRefresh(event) {
this.LoadToApproveEvents();
2022-04-28 09:32:27 +01:00
2021-07-17 22:17:50 +01:00
setTimeout(() => {
2023-02-09 16:05:36 +01:00
try {
event?.target?.complete();
} catch(error) {}
2021-07-26 22:46:33 +01:00
}, 2000);
2021-07-17 22:17:50 +01:00
}
2021-07-26 22:46:33 +01:00
close() {
2022-04-28 09:32:27 +01:00
2021-07-17 22:17:50 +01:00
this.cloneAllmobileComponent.emit();
}
2021-02-24 11:10:51 +01:00
2021-06-03 14:10:16 +01:00
}