From a266908b55937250711b457208ea0249970e57a8 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 31 Mar 2021 14:42:00 +0100 Subject: [PATCH] Improve agenda add-event-component by saving data on leave --- src/app/pages/agenda/agenda.page.html | 4 +- src/app/pages/agenda/agenda.page.ts | 54 ++++-- .../agenda/new-event/new-event.page.html | 6 +- .../agenda/new-event/new-event.component.html | 8 +- .../agenda/new-event/new-event.component.scss | 1 - .../agenda/new-event/new-event.component.ts | 157 ++++++++++++------ 6 files changed, 156 insertions(+), 74 deletions(-) diff --git a/src/app/pages/agenda/agenda.page.html b/src/app/pages/agenda/agenda.page.html index a1a44e701..2245faddd 100644 --- a/src/app/pages/agenda/agenda.page.html +++ b/src/app/pages/agenda/agenda.page.html @@ -15,7 +15,7 @@
-
+
@@ -386,10 +386,8 @@ (AproveEventEditEvent)="AproveEventEditEvent($event)" [eventAttendees]="contacts" > - - { if(event instanceof NavigationEnd && event.url == "/home/agenda") { - if (this.segment == null) - { - this.segment = "Combinada"; + if (this.segment == null){ + this.segment = "Combinado"; } - else - { + else{ this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); } } @@ -506,7 +505,7 @@ export class AgendaPage implements OnInit { this.showTimeline = false; switch (this.segment) { - case "Combinada": + case "Combinado": //Inicializa o array eventSource this.eventSource=[]; @@ -531,8 +530,11 @@ export class AgendaPage implements OnInit { profile: 'md' }); }); - - this.events = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + this.events = list; + this.TimelineMD = list; this.myCal.update(); this.myCal.loadEvents(); @@ -569,8 +571,13 @@ export class AgendaPage implements OnInit { }); - this.events = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); - + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); + + this.events = list; + + this.TimelinePR = list; + this.myCal.update(); this.myCal.loadEvents(); this.showLoader = false; @@ -602,9 +609,20 @@ export class AgendaPage implements OnInit { profile: 'md' }); }); + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + this.events = list; + this.TimelineMD = list; + this.myCal.update(); this.myCal.loadEvents(); + this.showLoader = false; + this.showTimeline = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); }); } @@ -644,12 +662,23 @@ export class AgendaPage implements OnInit { endTime: new Date(element.EndDate), allDay: false, event: element, - profile: 'md' + profile: 'pr' }); }); + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); + + this.events = list; + this.TimelinePR = list; + this.myCal.update(); this.myCal.loadEvents(); + this.showLoader = false; + this.showTimeline = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); }); }else{ this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(res => { @@ -770,6 +799,7 @@ export class AgendaPage implements OnInit { showAlert(){ this.alertController.presentAlert("Funcionalidade em desenvolvimento."); } + changeProfile(){ if(this.profile == "mdgpr"){ 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 a293c6218..85fdc97a4 100644 --- a/src/app/pages/agenda/new-event/new-event.page.html +++ b/src/app/pages/agenda/new-event/new-event.page.html @@ -171,8 +171,10 @@
-
- +
+ + +
diff --git a/src/app/shared/agenda/new-event/new-event.component.html b/src/app/shared/agenda/new-event/new-event.component.html index b6242aa70..746bb0415 100644 --- a/src/app/shared/agenda/new-event/new-event.component.html +++ b/src/app/shared/agenda/new-event/new-event.component.html @@ -30,7 +30,7 @@ -->
- +
@@ -171,8 +171,10 @@
-
- +
+ + +
diff --git a/src/app/shared/agenda/new-event/new-event.component.scss b/src/app/shared/agenda/new-event/new-event.component.scss index 2e7e2085b..be8370be6 100644 --- a/src/app/shared/agenda/new-event/new-event.component.scss +++ b/src/app/shared/agenda/new-event/new-event.component.scss @@ -58,7 +58,6 @@ ion-content{ } .container-div{ margin-bottom: 15px; - overflow: auto; } .ion-item-class-2{ margin: 0px auto; diff --git a/src/app/shared/agenda/new-event/new-event.component.ts b/src/app/shared/agenda/new-event/new-event.component.ts index e3fab7ba0..499a2ce7e 100644 --- a/src/app/shared/agenda/new-event/new-event.component.ts +++ b/src/app/shared/agenda/new-event/new-event.component.ts @@ -11,7 +11,9 @@ import { ModalController } from '@ionic/angular'; templateUrl: './new-event.component.html', styleUrls: ['./new-event.component.scss'], }) + export class NewEventPage implements OnInit { + postEvent: Event; eventBody: EventBody; segment:string = "true"; @@ -32,69 +34,85 @@ export class NewEventPage implements OnInit { constructor( private modalController: ModalController, private eventService: EventsService, - ) { - this.postEvent = new Event(); - this.eventBody = { BodyType : "1", Text : ""}; - this.postEvent.Body = this.eventBody; + ) { + + + + } ngOnInit() { - console.log(this.profile); + if(!this.restoreTemporaryData()){ + + this.postEvent = new Event(); + this.eventBody = { BodyType : "1", Text : ""}; + this.postEvent.Body = this.eventBody; + + console.log(this.profile); - let selectedStartdDate = this.selectedDate; - let selectedEndDate = new Date(this.selectedDate); - /* Set + 30minutes to seleted datetime */ - selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) ; - this.minDate = this.selectedDate.toString(); - - if(this.selectedSegment != "Combinada"){ - this.postEvent ={ - EventId: '', - Subject: '', - Body: this.eventBody, - Location: '', - CalendarId: '', - CalendarName: this.selectedSegment, - StartDate: selectedStartdDate, - EndDate: new Date(selectedEndDate), - EventType: 'Reunião', - Attendees: null, - IsMeeting: false, - IsRecurring: false, - AppointmentState: 0, - TimeZone: '', - Organizer: '', - Categories: ['Reunião'], - HasAttachments: false, - }; - } - else{ - this.postEvent ={ - EventId: '', - Subject: '', - Body: this.eventBody, - Location: '', - CalendarId: '', - CalendarName: 'Oficial', - StartDate: selectedStartdDate, - EndDate: new Date(selectedEndDate), - EventType: 'Reunião', - Attendees: null, - IsMeeting: false, - IsRecurring: false, - AppointmentState: 0, - TimeZone: '', - Organizer: '', - Categories: ['Reunião'], - HasAttachments: false, - }; + let selectedStartdDate = this.selectedDate; + let selectedEndDate = new Date(this.selectedDate); + /* Set + 30minutes to seleted datetime */ + selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) ; + this.minDate = this.selectedDate.toString(); + + if(this.selectedSegment != "Combinada"){ + this.postEvent ={ + EventId: '', + Subject: '', + Body: this.eventBody, + Location: '', + CalendarId: '', + CalendarName: this.selectedSegment, + StartDate: selectedStartdDate, + EndDate: new Date(selectedEndDate), + EventType: 'Reunião', + Attendees: null, + IsMeeting: false, + IsRecurring: false, + AppointmentState: 0, + TimeZone: '', + Organizer: '', + Categories: ['Reunião'], + HasAttachments: false, + }; + } + else{ + this.postEvent ={ + EventId: '', + Subject: '', + Body: this.eventBody, + Location: '', + CalendarId: '', + CalendarName: 'Oficial', + StartDate: selectedStartdDate, + EndDate: new Date(selectedEndDate), + EventType: 'Reunião', + Attendees: null, + IsMeeting: false, + IsRecurring: false, + AppointmentState: 0, + TimeZone: '', + Organizer: '', + Categories: ['Reunião'], + HasAttachments: false, + }; + } + + } + } + close(){ + + this.deleteTemporaryData(); + this.cloneAllmobileComponent.emit(); this.clearContact.emit(); } + save(){ if(this.profile=='mdgpr'){ @@ -104,15 +122,48 @@ export class NewEventPage implements OnInit { this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe(); } - this.onAddEvent.emit(this.postEvent); + this.deleteTemporaryData(); + this.onAddEvent.emit(this.postEvent); this.GoBackEditOrAdd.emit(); } async openAttendees(data: any) { + this.saveTemporaryData(); this.openAttendeesComponent.emit(); } + saveTemporaryData(){ + + window['temp.path:/home/agenda/new-event.component.ts'] = { + postEvent: this.postEvent, + eventBody: this.eventBody, + segment: this.segment + } + } + + + restoreTemporaryData(): boolean{ + + const restoredData = window['temp.path:/home/agenda/new-event.component.ts'] + + if(JSON.stringify(restoredData) != "{}" && undefined != restoredData){ + console.log('restore1111', restoredData) + this.postEvent = restoredData.postEvent + this.eventBody = restoredData.eventBody + this.segment = restoredData.segment + + return true; + } else { + return false; + } + + } + + deleteTemporaryData(){ + window['temp.path:/home/agenda/new-event.component.ts'] = {} + } + }