mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
fix
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
<!-- <ion-segment-button value="MDGPR">
|
||||
Minha agenda
|
||||
</ion-segment-button> -->
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : 'PR'">
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : i.OwnerUserId">
|
||||
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Presidente da República'"> Agenda do PR </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
|
||||
@@ -40,14 +40,14 @@
|
||||
<div class="main-content d-flex height-100" >
|
||||
|
||||
<div class="content height-100 d-flex flex-column">
|
||||
<div [ngSwitch]="segment">
|
||||
<ion-list class="width-100 height-100" *ngSwitchCase="'MDGPR'">
|
||||
<div *ngIf="eventoaprovacaostore.listmd" class="overflow-y-auto height-100">
|
||||
<div >
|
||||
<ion-list class="width-100 height-100" >
|
||||
<div class="overflow-y-auto height-100">
|
||||
<ion-item-sliding>
|
||||
<ion-item class="Rectangle cursor-pointer" lines="none"
|
||||
*ngFor="let event of eventoaprovacaostore.listmd" (click)="goToEventToApproveDetail(event.serialNumber)">
|
||||
*ngFor="let event of eventoaprovacaostore.get(segment)" (click)="goToEventToApproveDetail(event.serialNumber)">
|
||||
|
||||
<div class="content-mdgpr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="content-{{color}}-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
@@ -65,51 +65,19 @@
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
<ion-label></ion-label>
|
||||
|
||||
<ion-list *ngSwitchCase="'PR'">
|
||||
<div *ngIf="eventoaprovacaostore.listpr" class="overflow-y-auto height-100">
|
||||
<ion-item-sliding>
|
||||
<ion-item class="Rectangle cursor-pointer" lines="none"
|
||||
*ngFor="let event of eventoaprovacaostore.listpr" (click)="goToEventToApproveDetail(event.serialNumber)">
|
||||
<div class="content-pr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="event.workflowInstanceDataFields.StartDate != event.workflowInstanceDataFields.EndDate">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<p *ngIf="event.workflowInstanceDataFields.StartDate == event.workflowInstanceDataFields.EndDate">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<h3>{{event.workflowInstanceDataFields.Subject}}</h3>
|
||||
<div *ngIf="event.activityInstanceName">
|
||||
<div class="label-event-type"> {{ event.activityInstanceName }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
<div class="height-100" [ngSwitch]="segment">
|
||||
<div *ngSwitchCase="'MDGPR'" class="d-flex height-100 align-center justify-content-center" >
|
||||
<div class="height-100" >
|
||||
<div class="d-flex height-100 align-center justify-content-center" >
|
||||
<div
|
||||
*ngIf="!skeletonLoader && (!eventoaprovacaostore.listmd || eventoaprovacaostore.listmd.length == 0)"
|
||||
*ngIf="!skeletonLoader && (eventoaprovacaostore.get(segment).length == 0)"
|
||||
class="empty-list d-flex height-100 align-center justify-content-center"
|
||||
>
|
||||
<span>Lista vazia</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngSwitchCase="'PR'" class="d-flex height-100 align-center justify-content-center">
|
||||
<div
|
||||
*ngIf="!skeletonLoader && (!eventoaprovacaostore.listmd || eventoaprovacaostore.listmd.length == 0)"
|
||||
class="empty-list d-flex height-100 align-center justify-content-center"
|
||||
>
|
||||
<span>Lista vazia</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -16,6 +16,7 @@ import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { RouteService } from 'src/app/services/route.service';
|
||||
import { Storage } from '@ionic/storage';
|
||||
import { EventsService } from 'src/app/services/events.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-event-list',
|
||||
@@ -37,6 +38,8 @@ export class EventListPage implements OnInit {
|
||||
|
||||
skeletonLoader = true
|
||||
eventoaprovacaostore = EventoAprovacaoStore;
|
||||
eventsList: any = []
|
||||
color: 'pr' | 'mdgpr'
|
||||
|
||||
constructor(
|
||||
private processes: ProcessesService,
|
||||
@@ -149,52 +152,53 @@ export class EventListPage implements OnInit {
|
||||
}
|
||||
|
||||
async LoadToApproveEvents() {
|
||||
// this.processes.GetTasksList('Agenda Oficial MDGPR', false).subscribe(async res => {
|
||||
this.showLoader = true;
|
||||
this.skeletonLoader = true
|
||||
this.showLoader = true;
|
||||
this.skeletonLoader = true
|
||||
|
||||
const segment = this.segment
|
||||
|
||||
if (this.segment != 'PR') {
|
||||
const segment = this.segment
|
||||
let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR,Agenda Pessoal MDGPR', false).toPromise();
|
||||
this.eventsMDGPRList = mdEventsOficial
|
||||
|
||||
this.eventsMDGPRList = this.sortService.sortDate(this.eventsMDGPRList, 'taskStartDate')
|
||||
this.eventsMDGPRList = this.sortService.sortArrayByDate(this.eventsMDGPRList)
|
||||
this.eventoaprovacaostore.resetmd(this.eventsMDGPRList);
|
||||
|
||||
this.eventoaprovacaostore.save('MDGPR', this.eventsMDGPRList)
|
||||
|
||||
this.storage.set('event-to-aproveMD',this.eventsMDGPRList).then(() => {
|
||||
|
||||
})
|
||||
|
||||
if(this.segment == 'MDGPR') {
|
||||
// color
|
||||
if(SessionStore.user.Profile == 'PR') {
|
||||
this.color = 'pr'
|
||||
} else {
|
||||
this.color = 'mdgpr'
|
||||
}
|
||||
else if (this.segment == 'PR') {
|
||||
const segment = this.segment
|
||||
let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
|
||||
this.eventsPRList = prEventsOficial
|
||||
|
||||
this.eventsPRList = this.sortService.sortDate(this.eventsPRList, 'taskStartDate')
|
||||
this.eventsPRList = this.sortService.sortArrayByDate(this.eventsPRList)
|
||||
this.eventoaprovacaostore.resetpr(this.eventsPRList);
|
||||
this.eventoaprovacaostore.save('PR', this.eventsPRList)
|
||||
|
||||
this.storage.set('event-to-aprovePR',this.eventsPRList).then(() => {
|
||||
|
||||
})
|
||||
|
||||
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.showLoader = false;
|
||||
this.skeletonLoader = false
|
||||
this.eventoaprovacaostore.save(segment, this.eventsList)
|
||||
}
|
||||
|
||||
this.showLoader = false;
|
||||
this.skeletonLoader = false
|
||||
|
||||
// }, (error) => {
|
||||
// this.getEventToAproveFromDB();
|
||||
// })
|
||||
}
|
||||
|
||||
|
||||
toDateString(e) {
|
||||
return new Date(e).toDateString()
|
||||
}
|
||||
|
||||
async openApproveModal(eventSerialNumber, event) {
|
||||
const modal = await this.modalController.create({
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
|
||||
</div>
|
||||
<p class="text-center exp-card-title ">Eventos para Aprovação</p>
|
||||
<p class="text-center exp-card-content"> {{eventoaprovacaostore.countMd + eventoaprovacaostore.countPr}} <span class="title1">Documentos</span></p>
|
||||
<p class="text-center exp-card-content"> {{eventoaprovacaostore.countAll}} <span class="title1">Documentos</span></p>
|
||||
</div>
|
||||
|
||||
<!-- List -->
|
||||
|
||||
@@ -598,7 +598,7 @@ export class GabineteDigitalPage implements OnInit {
|
||||
|
||||
updateAllProcess = () => {
|
||||
this.AllProcess = this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento)
|
||||
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr).concat(this.despachoStore.list)
|
||||
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.contactList).concat(this.despachoStore.list)
|
||||
.concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.deplomasStore.DiplomaGerarList).concat(this.pendentesstore.list)
|
||||
|
||||
// try{
|
||||
@@ -732,21 +732,21 @@ export class GabineteDigitalPage implements OnInit {
|
||||
this.updateAllProcess()
|
||||
}
|
||||
|
||||
let mdEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial MDGPR,Agenda Pessoal MDGPR', false).toPromise();
|
||||
let eventsMDGPRList = mdEventsOficial
|
||||
// let mdEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial MDGPR,Agenda Pessoal MDGPR', false).toPromise();
|
||||
// let eventsMDGPRList = mdEventsOficial
|
||||
|
||||
eventsMDGPRList = eventsMDGPRList.filter((item) => item.activityInstanceName != 'Editar Evento')
|
||||
// eventsMDGPRList = eventsMDGPRList.filter((item) => item.activityInstanceName != 'Editar Evento')
|
||||
|
||||
this.eventoaprovacaostore.countMd = eventsMDGPRList.length
|
||||
this.eventoaprovacaostore.resetmd(eventsMDGPRList);
|
||||
// this.eventoaprovacaostore.countMd = eventsMDGPRList.length
|
||||
// this.eventoaprovacaostore.resetmd(eventsMDGPRList);
|
||||
this.updateAllProcess()
|
||||
|
||||
let prEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
let eventsPRList = prEventsOficial
|
||||
eventsPRList = eventsPRList.filter((item) => item.activityInstanceName != 'Editar Evento')
|
||||
// let prEventsOficial = await this.processesbackend.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
// let eventsPRList = prEventsOficial
|
||||
// eventsPRList = eventsPRList.filter((item) => item.activityInstanceName != 'Editar Evento')
|
||||
|
||||
this.eventoaprovacaostore.countPr = eventsPRList.length
|
||||
this.eventoaprovacaostore.resetpr(eventsPRList);
|
||||
// this.eventoaprovacaostore.countPr = eventsPRList.length
|
||||
// this.eventoaprovacaostore.resetpr(eventsPRList);
|
||||
this.updateAllProcess()
|
||||
|
||||
let diplomasValidar = depachoAPI.filter(data => data.activityInstanceName == "Revisar Diploma");
|
||||
|
||||
@@ -20,9 +20,8 @@ export class ClearStoreService {
|
||||
|
||||
clear() {
|
||||
|
||||
EventoAprovacaoStore.clear();
|
||||
DespachoStore.reset([])
|
||||
EventoAprovacaoStore.resetmd([])
|
||||
EventoAprovacaoStore.resetpr([])
|
||||
ExpedienteGdStore.reset([])
|
||||
PendentesStore.reset([])
|
||||
PedidosStore.resetdeferimento([])
|
||||
|
||||
@@ -259,12 +259,16 @@ export class EventsService {
|
||||
|
||||
if(!this.calendarNamesAry.find(x => x.Role == e.Role)) {
|
||||
|
||||
|
||||
let objectShared = {
|
||||
"Fullname": e.FullName,
|
||||
"Role": e.Role,
|
||||
"OwnerUserId": sharedCalendar.OwnerUserId,
|
||||
"RoleId": sharedCalendar.CalendarRoleId
|
||||
}
|
||||
|
||||
console.log('objectShared', objectShared)
|
||||
|
||||
this.calendarNamesAry.push(objectShared)
|
||||
|
||||
this.calendarNamesType[e.FullName] = {}
|
||||
|
||||
@@ -9,6 +9,10 @@ export class SortService {
|
||||
constructor(private ObjectService: ObjectService) { }
|
||||
|
||||
sortArrayISODate(myArray: any) {
|
||||
|
||||
if(!Array.isArray(myArray)) {
|
||||
myArray = []
|
||||
}
|
||||
if(myArray.length > 0){
|
||||
return myArray.sort(function (a, b) {
|
||||
return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0);
|
||||
@@ -17,7 +21,9 @@ export class SortService {
|
||||
}
|
||||
|
||||
sortArrayByDate(myArray: any) {
|
||||
|
||||
if(!Array.isArray(myArray)) {
|
||||
myArray = []
|
||||
}
|
||||
if(myArray.length > 0){
|
||||
return myArray.sort(function (a, b) {
|
||||
return (new Date(a.workflowInstanceDataFields.StartDate) < new Date(b.workflowInstanceDataFields.StartDate)) ? -1 : ((new Date(a.workflowInstanceDataFields.StartDate) > new Date(b.workflowInstanceDataFields.StartDate)) ? 1 : 0);
|
||||
@@ -26,6 +32,9 @@ export class SortService {
|
||||
}
|
||||
|
||||
sortDate(array = [], path: string) {
|
||||
if(!Array.isArray(array)) {
|
||||
array = []
|
||||
}
|
||||
|
||||
return array.sort( (a,b)=> {
|
||||
|
||||
|
||||
@@ -69,6 +69,22 @@ export class ProcessesService {
|
||||
return this.http.get<fullTaskList[]>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
eventsToApprove(userid) {
|
||||
const geturl = environment.apiURL + 'tasks/events-to-approve';
|
||||
let params = new HttpParams();
|
||||
|
||||
params = params.set("pageNum", 1);
|
||||
params = params.set("pageSize", 500);
|
||||
params = params.set("userid", userid);
|
||||
|
||||
let options = {
|
||||
headers: this.headers,
|
||||
params: params
|
||||
};
|
||||
|
||||
return this.http.get<fullTaskList[]>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
GetTaskListExpediente(onlycount1): Observable<ExpedienteFullTask[]> {
|
||||
const processname = "Expediente"
|
||||
const onlycount = false
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
</div>
|
||||
<ion-toolbar>
|
||||
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
|
||||
<!-- <ion-segment-button value="MDGPR">
|
||||
Minha agenda
|
||||
</ion-segment-button> -->
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : 'PR'">
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : i.OwnerUserId ">
|
||||
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Presidente da República'"> Agenda do PR </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
|
||||
@@ -30,39 +27,17 @@
|
||||
<ion-refresher-content>
|
||||
</ion-refresher-content>
|
||||
</ion-refresher>
|
||||
<div class="main-content overflow-y-auto height-100" [ngSwitch]="segment" *ngIf="eventsMDGPRList">
|
||||
<div class="main-content overflow-y-auto height-100" >
|
||||
<!-- <div class="header-content width-100"> -->
|
||||
<!-- </div> -->
|
||||
<ion-list class="width-100" *ngSwitchCase="'MDGPR'" >
|
||||
<div
|
||||
class="item item-hover ion-no-padding width-100 cursor-pointer"
|
||||
*ngFor="let event of eventsMDGPRList"
|
||||
(click)="openApproveModal(event.serialNumber, event)"
|
||||
>
|
||||
<div class="event-mdgpr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) != toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) == toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<h3>{{event.workflowInstanceDataFields.Subject}}</h3>
|
||||
<div *ngIf="event.activityInstanceName">
|
||||
<div class="label-event-type"> {{ event.activityInstanceName }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-list>
|
||||
<ion-list class="width-100" *ngSwitchCase="'PR'">
|
||||
<div class="width-100" *ngIf="eventsPRList">
|
||||
<ion-list class="width-100">
|
||||
<div class="width-100" *ngIf="eventsList ">
|
||||
<div
|
||||
class="item ion-no-padding width-100 cursor-pointer"
|
||||
*ngFor="let event of eventsPRList"
|
||||
*ngFor="let event of eventoaprovacaostore.get(segment)"
|
||||
(click)="openApproveModal(event.serialNumber, event)"
|
||||
>
|
||||
<div class="event-pr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="event-{{color}}-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
@@ -78,30 +53,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ion-list>
|
||||
<ion-list class="width-100" *ngSwitchCase="'Unknown'">
|
||||
<div class="width-100" *ngIf="eventsGenericList">
|
||||
<div
|
||||
class="item ion-no-padding width-100 cursor-pointer"
|
||||
*ngFor="let event of eventsGenericList"
|
||||
(click)="openApproveModal(event.serialNumber, event)"
|
||||
>
|
||||
<div class="event-pr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) != toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) == toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<h3>{{event.workflowInstanceDataFields.Subject}}</h3>
|
||||
<div *ngIf="event.activityInstanceName">
|
||||
<div class="label-event-type"> {{ event.activityInstanceName }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
|
||||
</ion-content>
|
||||
|
||||
@@ -21,6 +21,8 @@ export class EventListPage implements OnInit {
|
||||
eventsPRList: any = []
|
||||
eventsMDGPRList: any = []
|
||||
eventsGenericList: any = []
|
||||
|
||||
eventsList: any = []
|
||||
eventPerson: EventPerson;
|
||||
eventBody: EventBody;
|
||||
categories: string[];
|
||||
@@ -28,6 +30,7 @@ export class EventListPage implements OnInit {
|
||||
loggeduser: LoginUserRespose;
|
||||
segment:string;
|
||||
eventoaprovacaostore = EventoAprovacaoStore;
|
||||
color: 'pr' | 'mdgpr'
|
||||
|
||||
@Input() profile:string;
|
||||
@Input() showComponent:string;
|
||||
@@ -79,78 +82,48 @@ export class EventListPage implements OnInit {
|
||||
async LoadToApproveEvents() {
|
||||
this.showLoader = true;
|
||||
|
||||
try {
|
||||
if(this.segment == 'MDGPR') {
|
||||
const segment = this.segment
|
||||
let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR', false).toPromise();
|
||||
let mdEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal MDGPR', false).toPromise();
|
||||
const segment = this.segment
|
||||
|
||||
let allEvents = mdEventsOficial.concat(mdEventsPessoal);
|
||||
if(allEvents.length > 0) {
|
||||
this.eventsMDGPRList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
|
||||
this.eventoaprovacaostore.save(segment, this.eventsMDGPRList)
|
||||
}
|
||||
else if(this.segment == 'PR') {
|
||||
const segment = this.segment
|
||||
let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
let allEvents = prEventsOficial
|
||||
|
||||
if(allEvents.length > 0) {
|
||||
this.eventsPRList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
|
||||
this.eventoaprovacaostore.save(segment, this.eventsMDGPRList)
|
||||
if(this.segment == 'MDGPR') {
|
||||
// color
|
||||
if(SessionStore.user.Profile == 'PR') {
|
||||
this.color = 'pr'
|
||||
} else {
|
||||
let genericEvents = await this.processes.GetTasksList('Agendar Evento', false).toPromise();
|
||||
if(genericEvents.length > 0) {
|
||||
this.eventsGenericList = this.sortService.sortArrayByDate(genericEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
this.color = 'mdgpr'
|
||||
}
|
||||
|
||||
} catch(erro) {
|
||||
this.showLoader = false;
|
||||
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() {
|
||||
|
||||
try {
|
||||
if(this.segment == 'MDGPR') {
|
||||
let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR,Agenda Pessoal MDGPR', false).toPromise();
|
||||
|
||||
let allEvents = mdEventsOficial
|
||||
if(allEvents.length > 0) {
|
||||
this.eventsMDGPRList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
}
|
||||
else if(this.segment == 'PR') {
|
||||
let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
let allEvents = prEventsOficial
|
||||
|
||||
if(allEvents.length > 0) {
|
||||
this.eventsPRList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
} else {
|
||||
let genericEvents = await this.processes.GetTasksList('Agendar Evento', false).toPromise();
|
||||
if(genericEvents.length > 0) {
|
||||
this.eventsGenericList = this.sortService.sortArrayByDate(genericEvents).reverse();
|
||||
}
|
||||
this.showLoader = false;
|
||||
}
|
||||
|
||||
} catch(erro) {
|
||||
this.showLoader = false;
|
||||
}
|
||||
|
||||
this.LoadToApproveEvents()
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ export class AllProcessesPage implements OnInit {
|
||||
|
||||
updateAllProcess = () => {
|
||||
this.AllProcess = this.expedientegbstore.list.concat(this.pedidosstore.listparecer).concat(this.pedidosstore.listdeferimento)
|
||||
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr).concat(this.despachoStore.list)
|
||||
.concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.contactList).concat(this.despachoStore.list)
|
||||
.concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.deplomasStore.DiplomaGerarList).concat(this.pendentesstore.list)
|
||||
}
|
||||
|
||||
|
||||
@@ -12,11 +12,12 @@
|
||||
<!-- <ion-segment-button value="MDGPR">
|
||||
Minha agenda
|
||||
</ion-segment-button> -->
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : 'PR'">
|
||||
|
||||
<ion-segment-button *ngFor="let calendars of eventService.calendarNamesAry; let i index" [value]="i === 'Meu calendario' ? 'MDGPR' : i.OwnerUserId">
|
||||
<div *ngIf="calendars == 'Meu calendario'"> Minha agenda </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Presidente da República'"> Agenda do PR </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Presidente da República'"> Agenda do PR {{ i.OwnerUserIds }}</div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role == 'Ministro e Director do Gabinete do PR'"> Agenda do MD </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role != 'Ministro e Director do Gabinete do PR' && calendars.Role != 'Presidente da República'"> Agenda do {{calendars.Fullname}} </div>
|
||||
<div *ngIf="calendars != 'Meu calendario' && calendars.Role != 'Ministro e Director do Gabinete do PR' && calendars.Role != 'Presidente da República'"> Agenda do {{calendars.Fullname }} </div>
|
||||
</ion-segment-button>
|
||||
</ion-segment>
|
||||
</ion-toolbar>
|
||||
@@ -27,20 +28,20 @@
|
||||
<ion-refresher-content>
|
||||
</ion-refresher-content>
|
||||
</ion-refresher>
|
||||
<div class="main-content overflow-y-auto height-100" [ngSwitch]="segment" *ngIf="eventaprovacaostore.listpr">
|
||||
<div class="main-content overflow-y-auto height-100" >
|
||||
|
||||
<div *ngSwitchCase="'MDGPR'" class="height-100">
|
||||
<div class="height-100">
|
||||
|
||||
<div *ngIf="eventaprovacaostore.listmd">
|
||||
<div >
|
||||
|
||||
<ion-list class="width-100" *ngIf="eventaprovacaostore.listmd.length != 0" >
|
||||
<ion-list class="width-100" >
|
||||
<div
|
||||
class="expediente item-hover ion-no-padding ion-no-margin cursor-pointer"
|
||||
*ngFor="let event of eventaprovacaostore.listmd"
|
||||
*ngFor="let event of eventoaprovacaostore.get(segment)"
|
||||
(click)="goToEventDetail(event)"
|
||||
>
|
||||
<!-- (click)="openApproveModal(event)" -->
|
||||
<div class="event-mdgpr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="event-{{color}}-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
@@ -55,10 +56,10 @@
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
<div *ngIf="eventaprovacaostore.listmd" class="centered-div">
|
||||
<div *ngIf="eventoaprovacaostore.get(segment)" class="centered-div">
|
||||
|
||||
<div *ngIf="eventaprovacaostore.listmd.length == 0">
|
||||
<div *ngSwitchCase="'MDGPR'">
|
||||
<div *ngIf="eventoaprovacaostore.get(segment).length == 0">
|
||||
<div >
|
||||
<div class="d-flex height-90 align-center justify-content-center"
|
||||
>
|
||||
Lista vazia
|
||||
@@ -67,41 +68,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngSwitchCase="'PR'">
|
||||
<div *ngIf="eventaprovacaostore.listpr.length != 0">
|
||||
<ion-list class="width-100" *ngSwitchCase="'PR'">
|
||||
<div class="width-100" *ngIf="eventaprovacaostore.listpr">
|
||||
<div
|
||||
class="expediente item-hover ion-no-padding ion-no-margin cursor-pointer"
|
||||
*ngFor="let event of eventaprovacaostore.listpr"
|
||||
(click)="goToEventDetail(event)"
|
||||
>
|
||||
<div class="item event-pr-{{event.workflowInstanceDataFields.Agenda}} width-100">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}</p>
|
||||
<p>{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) != toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<p *ngIf="toDateString(event.workflowInstanceDataFields.StartDate) == toDateString(event.workflowInstanceDataFields.EndDate)">{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}</p>
|
||||
<h3>{{event.workflowInstanceDataFields.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-list>
|
||||
|
||||
</div>
|
||||
|
||||
<div *ngIf="eventaprovacaostore.listpr.length == 0" class="centered-div d-flex height-90 align-center justify-content-center">
|
||||
<div *ngSwitchCase="'PR'" >
|
||||
<div class="d-flex align-center justify-content-center"
|
||||
*ngIf="eventaprovacaostore.listpr.length < 1">
|
||||
Lista vazia
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
|
||||
@@ -31,6 +31,10 @@ export class EventsToApprovePage implements OnInit {
|
||||
segment:string;
|
||||
eventaprovacaostore = EventoAprovacaoStore;
|
||||
|
||||
eventsList: any = []
|
||||
color: 'pr' | 'mdgpr'
|
||||
eventoaprovacaostore = EventoAprovacaoStore;
|
||||
|
||||
constructor(
|
||||
private processes:ProcessesService,
|
||||
private modalController: ModalController,
|
||||
@@ -68,37 +72,54 @@ export class EventsToApprovePage implements OnInit {
|
||||
|
||||
async LoadToApproveEvents() {
|
||||
this.showLoader = true;
|
||||
const segment = this.segment
|
||||
console.log(this.eventService.calendarNamesAry)
|
||||
|
||||
this.getFromDB();
|
||||
if(this.segment != 'PR') {
|
||||
let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR,Agenda Pessoal MDGPR', false).toPromise();
|
||||
this.eventsMDGPRList = mdEventsOficial
|
||||
this.eventsMDGPRList = this.sortService.sortArrayByDate(this.eventsMDGPRList)
|
||||
this.eventsMDGPRList = ( this.eventsMDGPRList || []).filter(function(item) {
|
||||
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.eventsList = this.eventsList.filter(function(item) {
|
||||
return item.activityInstanceName != 'Editar Evento'
|
||||
}) || []
|
||||
|
||||
this.storage.set('event-to-aproveMD',this.eventsMDGPRList).then(() => {
|
||||
this.eventoaprovacaostore.save(segment, this.eventsList)
|
||||
} else {
|
||||
|
||||
})
|
||||
|
||||
this.eventaprovacaostore.resetmd(this.sortService.sortDate(this.eventsMDGPRList, 'CreateDate'));
|
||||
}
|
||||
else if(this.segment == 'PR') {
|
||||
let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR,Agenda Pessoal PR', false).toPromise();
|
||||
// console.log(prEventsOficial)
|
||||
// console.log(prEventsPessoal)
|
||||
this.eventsPRList = prEventsOficial
|
||||
this.eventsPRList = this.sortService.sortArrayByDate(this.eventsPRList)
|
||||
this.eventsPRList = (this.eventsPRList || []).filter(function(item) {
|
||||
|
||||
this.color = 'pr'
|
||||
|
||||
let allEvents = await this.processes.eventsToApprove(segment).toPromise()
|
||||
|
||||
console.log('allEvents', allEvents)
|
||||
try {
|
||||
this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||
} catch(error) {
|
||||
this.eventsList = []
|
||||
}
|
||||
|
||||
this.eventsList = this.eventsList.filter(function(item) {
|
||||
return item.activityInstanceName != 'Editar Evento'
|
||||
})
|
||||
}) || []
|
||||
|
||||
this.storage.set('event-to-aprovePR',this.eventsPRList).then(() => {
|
||||
|
||||
})
|
||||
this.eventaprovacaostore.resetpr(this.sortService.sortDate(this.eventsPRList, 'CreateDate'));
|
||||
this.eventsList = this.eventsList
|
||||
this.eventsList = this.eventsList
|
||||
this.showLoader = false;
|
||||
this.eventoaprovacaostore.save(segment, this.eventsList)
|
||||
}
|
||||
|
||||
this.showLoader = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,114 +9,36 @@ import { isArray } from 'ionic-angular/umd/util/util';
|
||||
export class EventoaprovacaoStoreService {
|
||||
|
||||
// main data
|
||||
private _listPr: any[] = []
|
||||
private _listMd: any[] = []
|
||||
private _list: {[key: string]: any[]} = {}
|
||||
private _concatList = []
|
||||
|
||||
// local storage keyName
|
||||
private keyNamemd: string;
|
||||
private keyNamepr: string;
|
||||
private keyNameAll: string;
|
||||
|
||||
private _counts : {[key: string]: number} = {}
|
||||
private _countsAll = 0
|
||||
private _count = 0
|
||||
private _countPr = 0
|
||||
private _countMd = 0
|
||||
|
||||
constructor() {
|
||||
|
||||
this.keyNamemd = (SHA1("EventoaprovacaoStoreService"+"md")).toString()
|
||||
this.keyNamepr = (SHA1("EventoaprovacaoStoreService"+"pr")).toString()
|
||||
this.keyNameAll = (SHA1("EventoaprovacaoStoreService"+"all")).toString()
|
||||
|
||||
|
||||
setTimeout(()=>{
|
||||
let restoreMd = localstoreService.get(this.keyNamemd, [])
|
||||
let restorePr = localstoreService.get(this.keyNamepr, [])
|
||||
let {list , counts} = localstoreService.get(this.keyNameAll, {})
|
||||
|
||||
this._listPr = restorePr.listPr || []
|
||||
this._listMd = restoreMd.lisMd || []
|
||||
this._countMd = parseInt(restoreMd.countListMd) || 0
|
||||
this._countPr = parseInt(restorePr.countListPr) || 0
|
||||
this._count = (this._countMd + this._countPr) || 0
|
||||
this._list = list || {}
|
||||
|
||||
this.updateCount();
|
||||
}, 10)
|
||||
|
||||
}
|
||||
|
||||
get listpr() { return this._listPr || [] }
|
||||
get listmd() { return this._listMd || [] }
|
||||
|
||||
get count() { return this._count || 0 }
|
||||
set count(value: number) {
|
||||
this._count = value
|
||||
get countAll() {
|
||||
return this._countsAll
|
||||
}
|
||||
|
||||
get countPr() { return this._countPr || 0 }
|
||||
set countPr (value: number) {
|
||||
this._countPr = value
|
||||
}
|
||||
|
||||
get countMd() { return this._countMd || 0 }
|
||||
set countMd (value) {
|
||||
this._countMd = value
|
||||
}
|
||||
|
||||
resetpr(eventsList: any) {
|
||||
if(Array.isArray(eventsList)) {
|
||||
this._listPr = eventsList
|
||||
|
||||
this.countPr = this._listPr.length
|
||||
this.count = this.countPr + this.countMd
|
||||
|
||||
this.savePr()
|
||||
|
||||
if(window['all-process']) {
|
||||
window['all-process']()
|
||||
}
|
||||
if(window['all-process-gabinete']) {
|
||||
window['all-process-gabinete']()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resetmd(eventsList: any) {
|
||||
if(Array.isArray(eventsList)) {
|
||||
this._listMd = eventsList
|
||||
|
||||
this.countMd = this._listMd.length
|
||||
this.count = this.countPr + this.countMd
|
||||
this.saveMd()
|
||||
|
||||
|
||||
if(window['all-process']) {
|
||||
window['all-process']()
|
||||
}
|
||||
if(window['all-process-gabinete']) {
|
||||
window['all-process-gabinete']()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private saveMd() {
|
||||
setTimeout(()=>{
|
||||
localstoreService.set(this.keyNamemd,{
|
||||
lisMd: this._listMd,
|
||||
countListMd: this._countMd
|
||||
})
|
||||
}, 10)
|
||||
|
||||
}
|
||||
|
||||
private savePr() {
|
||||
setTimeout(()=>{
|
||||
localstoreService.set(this.keyNamepr,{
|
||||
listPr: this._listPr,
|
||||
countListPr: this._countPr
|
||||
})
|
||||
}, 10)
|
||||
|
||||
get contactList() {
|
||||
return this._concatList
|
||||
}
|
||||
|
||||
|
||||
@@ -134,8 +56,28 @@ export class EventoaprovacaoStoreService {
|
||||
|
||||
setTimeout(() => {
|
||||
localstoreService.set(this.keyNameAll,{
|
||||
_list: this._list,
|
||||
_counts: this._counts
|
||||
list: this._list,
|
||||
counts: this._counts
|
||||
})
|
||||
}, 10)
|
||||
|
||||
|
||||
if(window['all-process']) {
|
||||
window['all-process']()
|
||||
}
|
||||
if(window['all-process-gabinete']) {
|
||||
window['all-process-gabinete']()
|
||||
}
|
||||
}
|
||||
|
||||
clear() {
|
||||
this._list = {}
|
||||
this._counts = {}
|
||||
|
||||
setTimeout(() => {
|
||||
localstoreService.set(this.keyNameAll,{
|
||||
list: this._list,
|
||||
counts: this._counts
|
||||
})
|
||||
}, 10)
|
||||
}
|
||||
@@ -145,13 +87,18 @@ export class EventoaprovacaoStoreService {
|
||||
}
|
||||
|
||||
updateCount() {
|
||||
let count = 0
|
||||
|
||||
let allList = []
|
||||
|
||||
for(let [name, value] of Object.entries(this._list)) {
|
||||
count = count + value.length
|
||||
allList = allList.concat(value)
|
||||
}
|
||||
this._countsAll = count
|
||||
|
||||
this._countsAll = allList.length
|
||||
this._concatList = allList
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export const EventoAprovacaoStore = new EventoaprovacaoStoreService()
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
export let versionData = {
|
||||
"shortSHA": "f9bc1ae15",
|
||||
"SHA": "f9bc1ae153f98c00bdc1b7f0eb1078f5574ed9f5",
|
||||
"shortSHA": "9c540d38b",
|
||||
"SHA": "9c540d38b0e4146fa71545686a971d10951020bf",
|
||||
"branch": "no_bug_movemente",
|
||||
"lastCommitAuthor": "'Peter Maquiran'",
|
||||
"lastCommitTime": "'Wed Feb 22 09:35:20 2023 +0100'",
|
||||
"lastCommitMessage": "remove alert",
|
||||
"lastCommitNumber": "4815",
|
||||
"lastCommitTime": "'Wed Feb 22 10:08:50 2023 +0100'",
|
||||
"lastCommitMessage": "fix eventos",
|
||||
"lastCommitNumber": "4816",
|
||||
"change": "",
|
||||
"changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.ts\n\tmodified: src/app/shared/agenda/event-list/event-list.page.ts\n\tmodified: src/app/store/eventoaprovacao-store.service.ts",
|
||||
"changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.html\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.ts\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.html\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.ts\n\tmodified: src/app/services/clear-store.service.ts\n\tmodified: src/app/services/events.service.ts\n\tmodified: src/app/services/functions/sort.service.ts\n\tmodified: src/app/services/processes.service.ts\n\tmodified: src/app/shared/agenda/event-list/event-list.page.html\n\tmodified: src/app/shared/agenda/event-list/event-list.page.ts\n\tmodified: src/app/shared/gabinete-digital/all-processes/all-processes.page.ts\n\tmodified: src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html\n\tmodified: src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts\n\tmodified: src/app/store/eventoaprovacao-store.service.ts",
|
||||
"changeAuthor": "peter.maquiran"
|
||||
}
|
||||
Reference in New Issue
Block a user