diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index f07e7867c..9a24cdde1 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -5,6 +5,7 @@ import { HomeGuard } from '../guards/home.guard'; import { LoginGuard } from '../guards/login.guard'; import { GroupMessagesPage } from '../pages/chat/group-messages/group-messages.page'; import { MessagesPage } from '../pages/chat/messages/messages.page'; +import { PendentesResolverService } from '../resolvers/pendentes-resolver.service'; import { ProcessesResolverService } from '../resolvers/processes-resolver.service'; import { UserDataResolver } from '../resolvers/userData.resolver'; import { DiplomasPage } from '../shared/gabinete-digital/diplomas/diplomas.page'; @@ -143,7 +144,8 @@ const routes: Routes = [ { path: 'gabinete-digital', resolve: { - diplomas: ProcessesResolverService + diplomas: ProcessesResolverService, + pendentes: PendentesResolverService, }, children: [ { diff --git a/src/app/models/event.model.ts b/src/app/models/event.model.ts index 2931cf256..3df19a86d 100644 --- a/src/app/models/event.model.ts +++ b/src/app/models/event.model.ts @@ -24,7 +24,7 @@ export class Event{ EventRecurrence?: EventRecurrence; /* public Event(){ - this.EventRecurrence.Type = '-1'; + this.EventRecurrence = new EventRecurrence(); } */ } diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index c09dca1f4..d03ca0d63 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -556,7 +556,7 @@ export class AgendaPage implements OnInit { } - else { + else if(this.loggeduser.Profile == 'PR') { this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).then( (response:any) => { diff --git a/src/app/pages/agenda/edit-event/edit-event.page.html b/src/app/pages/agenda/edit-event/edit-event.page.html index 2a0aa5920..7adc4a995 100644 --- a/src/app/pages/agenda/edit-event/edit-event.page.html +++ b/src/app/pages/agenda/edit-event/edit-event.page.html @@ -155,41 +155,41 @@
- +
- Nunca - Diário - Semanal - Mensal - Anual + {{recurring.Description}}
-
+
- +
- - Não se repete - Repete - + + +
+
diff --git a/src/app/pages/agenda/edit-event/edit-event.page.ts b/src/app/pages/agenda/edit-event/edit-event.page.ts index 352ce5437..e249eaf84 100644 --- a/src/app/pages/agenda/edit-event/edit-event.page.ts +++ b/src/app/pages/agenda/edit-event/edit-event.page.ts @@ -36,6 +36,8 @@ export class EditEventPage implements OnInit { minDate: string; initCalendarName: string; caller:string; + recurringTypes: any; + selectedRecurringType: any; loadedEventAttachments: Attachment[]; @@ -57,10 +59,9 @@ export class EditEventPage implements OnInit { ) { this.postEvent = new Event(); - console.log(this.postEvent); - this.postEvent.EventRecurrence = {Type:'-1'} this.isEventEdited = false; this.postEvent = this.navParams.get('event'); + this.postEvent.EventRecurrence = {Type:'-1'}; this.caller = this.navParams.get('caller'); this.initCalendarName = this.postEvent.CalendarName; @@ -97,8 +98,7 @@ export class EditEventPage implements OnInit { } ngOnInit() { - - console.log(this.caller); + this.selectedRecurringType = "-1"; window.onresize = (event) => { // if not mobile remove all component @@ -126,9 +126,21 @@ export class EditEventPage implements OnInit { getRecurrenceTypes() { this.eventsService.getRecurrenceTypes().subscribe(res=>{ console.log(res); + this.recurringTypes = res; }); } + onSelectedRecurringChanged(ev:any){ + console.log(ev); + if(ev.length > 1){ + console.log(ev.filter(data => data != '-1')); + this.selectedRecurringType = ev.filter(data => data != '-1'); + } + if(ev.length == 0){ + this.selectedRecurringType = "-1"; + } + } + runValidation() { this.validateFrom = true @@ -171,8 +183,9 @@ export class EditEventPage implements OnInit { this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc) try{ console.log(this.postEvent); + this.postEvent.EventRecurrence.Type = this.selectedRecurringType; - /* this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => { + this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => { if(this.initCalendarName != this.postEvent.CalendarName){ let body = { "EventId": this.postEvent.EventId, @@ -185,7 +198,7 @@ export class EditEventPage implements OnInit { }, error => { this.toastService.badRequest() - }); */ + }); this.isEventEdited = true; this.goBack(); diff --git a/src/app/pages/agenda/new-event/new-event.page.html b/src/app/pages/agenda/new-event/new-event.page.html index 30e841b56..200b162db 100644 --- a/src/app/pages/agenda/new-event/new-event.page.html +++ b/src/app/pages/agenda/new-event/new-event.page.html @@ -154,20 +154,44 @@
-
+
-
- - Não se repete - Repete +
+ + {{recurring.Description}}
+
+
+
+ +
+
+ + + +
+
+
+
diff --git a/src/app/pages/agenda/new-event/new-event.page.ts b/src/app/pages/agenda/new-event/new-event.page.ts index 62f55a11f..fdc313e1e 100644 --- a/src/app/pages/agenda/new-event/new-event.page.ts +++ b/src/app/pages/agenda/new-event/new-event.page.ts @@ -14,6 +14,7 @@ import { AttendeesPageModal } from '../../events/attendees/attendees.page'; import { SearchPage } from '../../search/search.page'; import { ThemePalette } from '@angular/material/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { EventRecurrence } from 'src/app/models/agenda/eventrecurrence.model'; @Component({ @@ -47,6 +48,8 @@ export class NewEventPage implements OnInit { eventAttendees: EventPerson[]; selectedSegment: string; selectedDate: Date; + recurringTypes: any; + selectedRecurringType: any; adding: "intervenient" | "CC"; @@ -77,6 +80,8 @@ export class NewEventPage implements OnInit { } ngOnInit() { + this.selectedRecurringType = "-1"; + this.getRecurrenceTypes(); /* console.log(this.profile); */ @@ -142,6 +147,25 @@ export class NewEventPage implements OnInit { close(){ this.modalController.dismiss(); } + + + getRecurrenceTypes() { + this.eventService.getRecurrenceTypes().subscribe(res=>{ + console.log(res); + this.recurringTypes = res; + }); + } + + onSelectedRecurringChanged(ev:any){ + console.log(ev); + if(ev.length > 1){ + console.log(ev.filter(data => data != '-1')); + this.selectedRecurringType = ev.filter(data => data != '-1'); + } + if(ev.length == 0){ + this.selectedRecurringType = "-1"; + } + } runValidation() { diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts index 5b26ddcc8..e6bc80346 100644 --- a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; -import { NavigationExtras, Router } from '@angular/router'; +import { ActivatedRoute, NavigationEnd, NavigationExtras, Router } from '@angular/router'; import { CalendarComponent } from 'ionic2-calendar'; - +import { removeDuplicate } from 'src/plugin/removeDuplicate.js' import { DailyWorkTask } from '../../../models/dailyworktask.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { formatDate } from '@angular/common'; @@ -32,22 +32,58 @@ export class PendentesPage implements OnInit { constructor( private processes:ProcessesService, - private modalController: ModalController, private alertService: AlertService, - private authService: AuthService, private router: Router, + private activatedRoute: ActivatedRoute, ) { this.profile = 'mdgpr'; + } ngOnInit() { + this.initPendentes(); //Inicializar segment this.segment = "despachos"; - this.LoadList(); + this.router.events.forEach((event) => { + if(event instanceof NavigationEnd && event.url == this.router.url) { + this.refreshing(); + } + }); + } + + initPendentes(){ + this.activatedRoute.data.subscribe(data => { + console.log(data['pendentes']); + data['pendentes'].forEach(element => { + let DocId = element.workflowInstanceDataFields.FolderID; + let ApplicationId = element.workflowInstanceDataFields.ApplicationId; + + let date = new Date(element.taskStartDate); + date.setMonth(date.getMonth() + 1); + let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); + + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + "CreateDate": taskDate, + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "DocId": element.workflowInstanceDataFields.DocIdDiferimento, + "WorkflowName": element.workflowDisplayName, + "activityInstanceName": element.activityInstanceName, + } + console.log(task); + + this.pendentesList.push.call(task); + this.pendentesList = removeDuplicate( this.pendentesList); + }); + }); } segmentChanged(ev: any) { - this.LoadList(); + this.refreshing(); } goBack() { @@ -98,6 +134,7 @@ export class PendentesPage implements OnInit { "Status": element.workflowInstanceDataFields.Status, } this.pendentesList.push(task); + this.pendentesList = removeDuplicate( this.pendentesList) }, (error)=>{ let task = { @@ -114,10 +151,17 @@ export class PendentesPage implements OnInit { "Status": element.workflowInstanceDataFields.Status, } this.pendentesList.push(task); + this.pendentesList = removeDuplicate( this.pendentesList) }); }); this.showLoader = false; } + + async refreshing() { + setTimeout(() => { + this.LoadList(); + }, 1500); + } doRefresh(event) { this.LoadList(); diff --git a/src/app/resolvers/pendentes-resolver.service.spec.ts b/src/app/resolvers/pendentes-resolver.service.spec.ts new file mode 100644 index 000000000..3a816d759 --- /dev/null +++ b/src/app/resolvers/pendentes-resolver.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PendentesResolverService } from './pendentes-resolver.service'; + +describe('PendentesResolverService', () => { + let service: PendentesResolverService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PendentesResolverService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/resolvers/pendentes-resolver.service.ts b/src/app/resolvers/pendentes-resolver.service.ts new file mode 100644 index 000000000..d7adabe52 --- /dev/null +++ b/src/app/resolvers/pendentes-resolver.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { Observable } from 'rxjs'; +import { ProcessesService } from '../services/processes.service'; + +@Injectable({ + providedIn: 'root' +}) +export class PendentesResolverService implements Resolve { + + constructor( + private processesService: ProcessesService, + ) { } + + async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): + Promise { + + let despachos = await this.processesService.GetTasksList("Despacho", false).toPromise(); + let pareceres = await this.processesService.GetTasksList("Pedido de Parecer", false).toPromise(); + let deferimentos = await this.processesService.GetTasksList("Pedido de Deferimento", false).toPromise(); + let expedientes = await this.processesService.GetTasksList("Expediente", false).toPromise(); + let expedientes_pr = await this.processesService.GetTasksList("Expediente do Presidente", false).toPromise(); + + let pendentes = despachos.concat(pareceres, deferimentos, expedientes, expedientes_pr).filter(data => data.workflowInstanceDataFields.Status == "Pending"); + + return pendentes; + } +} diff --git a/src/app/services/events.service.ts b/src/app/services/events.service.ts index 2f872319b..1ed33878c 100644 --- a/src/app/services/events.service.ts +++ b/src/app/services/events.service.ts @@ -200,6 +200,8 @@ export class EventsService { headers: this.headersSharedOficial, params: params }; + console.log(options); + return this.http.get(`${geturl}`, options); }