diff --git a/package-lock.json b/package-lock.json index 47cdcaf0b..7e5f76dab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -592,9 +592,9 @@ } }, "@angular/language-service": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.2.tgz", - "integrity": "sha512-H09s5pivJq8lip206NrNJ0cXLge9CfthtT3tY+OGXn5Xiyvjxs+dOkVytoGauHE3mdge/Wn/rxoGmm/oYKejNQ==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.6.tgz", + "integrity": "sha512-jzIutEzUbfBZxLWftpi5oXusL3rwbe2P/6HnNd8NUeBos9+G859R7hCsstAQ61XPn41a2/Fbl+YOwYhdjoBQrw==", "dev": true }, "@angular/platform-browser": { diff --git a/package.json b/package.json index 3420375d5..e96404a36 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@angular/cli": "11.2.1", "@angular/compiler": "~11.2.2", "@angular/compiler-cli": "^11.2.2", - "@angular/language-service": "~11.2.2", + "@angular/language-service": "^11.2.6", "@ionic/angular-toolkit": "^3.0.0", "@ionic/lab": "3.1.7", "@types/jasmine": "~3.6.0", diff --git a/src/app/pages/agenda/agenda.module.ts b/src/app/pages/agenda/agenda.module.ts index b6b6ba256..d35cb5a23 100644 --- a/src/app/pages/agenda/agenda.module.ts +++ b/src/app/pages/agenda/agenda.module.ts @@ -18,6 +18,8 @@ import { EditEventComponent } from 'src/app/shared/agenda/edit-event/edit-event. import { ViewEventPage } from 'src/app/shared/agenda/view-event/view-event.page'; import { EventListComponent } from "src/app/shared/agenda/event-list/event-list.component"; import { ApproveEventComponent } from "src/app/shared/agenda/approve-event/approve-event.component"; +import { AttendeesPage } from 'src/app/shared/event/attendees/attendees.page'; +import { AttendeeModalPage } from 'src/app/shared/event/attendee-modal/attendee-modal.page'; registerLocaleData(localeDe); @@ -45,7 +47,9 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; EditEventComponent, ViewEventPage, EventListComponent, - ApproveEventComponent + ApproveEventComponent, + AttendeesPage, + AttendeeModalPage ], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [ diff --git a/src/app/pages/agenda/agenda.page.html b/src/app/pages/agenda/agenda.page.html index 5567fe84d..4bfc913b7 100644 --- a/src/app/pages/agenda/agenda.page.html +++ b/src/app/pages/agenda/agenda.page.html @@ -288,8 +288,7 @@ -
+
-
+
@@ -336,6 +335,7 @@ [selectedSegment]=segment [selectedDate]="eventSelectedDate" (onAddEvent)="openAddEventDismiss($event)" + (openAttendeesComponent)="openAttendeesComponent($event)" > @@ -344,11 +344,10 @@ [selectedSegment]="segment" [postEvent]="postEvent" (cloneAllmobileComponent)="cloneAllmobileComponent($event)" - > - + + + - + +
diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index 684046dbc..b3db977cb 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -110,11 +110,13 @@ export class AgendaPage implements OnInit { mobileComponent: any = { showAddNewEvent: false, showEditEvent: false, - showEventDitails: false, + showEventDetails: false, showEventList: false, transparentEventList: false, transparentEventToApprove: false, - showEventToApprove: false + showEventToApprove: false, + showAttendees: false, + showAttendeeModal: false } eventToaprove: any = { @@ -129,7 +131,7 @@ export class AgendaPage implements OnInit { private modalCtrl: ModalController, private eventService: EventsService, private router: Router, - private alertCrontroller: AlertService, + private alertController: AlertService, private sanitizer: DomSanitizer ) { @@ -204,7 +206,7 @@ export class AgendaPage implements OnInit { this.router.navigate(["/home/agenda", event.id, 'agenda']); } else { this.cloneAllmobileComponent(); - this.mobileComponent.showEventDitails = true; + this.mobileComponent.showEventDetails = true; } } @@ -369,7 +371,7 @@ export class AgendaPage implements OnInit { timelineBoxCorrectHeight(timeout){ setTimeout(()=>{ - this.eventSource.forEach((el, eventIndex)=>{ + this.eventSource.forEach((el:any, eventIndex)=>{ const startEvent = new Date(el.startTime); const endEvent = new Date(el.endTime); @@ -382,16 +384,17 @@ export class AgendaPage implements OnInit { if(ele.className.indexOf(`timeline-box-event-${eventIndex}`)>=0){ ele.setAttribute('style',`height:${minutes}px`); } - if(`timeline-box-event-${eventIndex}` == `timeline-box-event-3`){ + // this event has an contraction time + // if(`timeline-box-event-${eventIndex}` == `timeline-box-event-3`){ // alert(startEvent.toString()+' '+ endEvent.toString()); - } + // } }); }); },timeout) setTimeout(()=>{ - this.TimelinePR.forEach((el, eventIndex)=>{ + this.eventSource.forEach((el, eventIndex)=>{ const startEvent = new Date(el['startTime']); const endEvent = new Date(el['endTime']); @@ -632,11 +635,14 @@ export class AgendaPage implements OnInit { this.eventService.getAllMdEvents( momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59') ).subscribe( response => { + this.TimelineMD = []; + this.eventsList = response; // loop this.eventsList.forEach((element, eventIndex) => { this.eventSource.push({ + index: eventIndex, title: element.Subject, startTime: new Date(element.StartDate), endTime: new Date(element.EndDate), @@ -646,13 +652,12 @@ export class AgendaPage implements OnInit { profile: 'md' }); }); - - - this.TimelineMD = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); - // this.eventSource = this.TimelineMD; this.events = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + this.TimelineMD = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + this.myCal.update(); this.myCal.loadEvents(); @@ -665,10 +670,14 @@ export class AgendaPage implements OnInit { this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe( response => { - + + this.TimelinePR = []; + this.eventsList = response; this.eventsList.forEach((element, eventIndex) => { + this.eventSource.push({ + index: eventIndex, title: element.Subject, startTime: new Date(element.StartDate), endTime: new Date(element.EndDate), @@ -710,7 +719,7 @@ export class AgendaPage implements OnInit { }, 250) } showAlert(){ - this.alertCrontroller.presentAlert("Funcionalidade em desenvolvimento."); + this.alertController.presentAlert("Funcionalidade em desenvolvimento."); } changeProfile(){ @@ -777,6 +786,7 @@ export class AgendaPage implements OnInit { this.cloneAllmobileComponent(); } + // open component async viewEventDetail(eventId:any) { console.log(this.profile); @@ -796,6 +806,7 @@ export class AgendaPage implements OnInit { }); } + // open component async viewEventDetailDismiss(data){ await this.cloneAllmobileComponent() @@ -835,7 +846,7 @@ export class AgendaPage implements OnInit { this.mobileComponent.showEventList = true; } - } + } approveEventDismiss({saveData, serialNumber, action}){ @@ -871,7 +882,7 @@ export class AgendaPage implements OnInit { this.mobileComponent= { showAddNewEvent: false, showEditEvent: false, - showEventDitails: false, + showEventDetails: false, showEventList: false, showEventToApprove: false } @@ -887,4 +898,18 @@ export class AgendaPage implements OnInit { this.mobileComponent.showAddNewEvent = true; } + // open component + async openAttendeesComponent(data){ + console.log('open attendees component'); + + this.cloneAllmobileComponent(); + this.mobileComponent.showAttendees = true; + + } + + async openAttendeeModal(){ + this.cloneAllmobileComponent(); + this.mobileComponent.showAttendeeModal = true; + } + } \ No newline at end of file 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 27c4dc584..c54128976 100644 --- a/src/app/shared/agenda/new-event/new-event.component.ts +++ b/src/app/shared/agenda/new-event/new-event.component.ts @@ -23,12 +23,12 @@ export class NewEventPage implements OnInit { @Input() selectedDate: Date; @Output() onAddEvent = new EventEmitter(); + @Output() openAttendeesComponent = new EventEmitter(); minDate: string; constructor( private modalController: ModalController, - //private navParams: NavParams, private eventService: EventsService, ) { this.postEvent = new Event(); @@ -104,26 +104,10 @@ export class NewEventPage implements OnInit { this.onAddEvent.emit(this.postEvent); } - async openAttendees() + async openAttendees(data: any) { - const modal = await this.modalController.create({ - component: AttendeesPage, - componentProps: { - eventAttendees: this.postEvent.Attendees - }, - cssClass: 'attendee', - backdropDismiss: false - }); - await modal.present(); - - modal.onDidDismiss().then((data) => { - if (data['data'] != null) - { - let newattendees: EventPerson[] = data['data']; - this.postEvent.Attendees = newattendees; - } - }); -} + this.openAttendeesComponent.emit(); + } } diff --git a/src/app/shared/agenda/view-event/view-event.page.ts b/src/app/shared/agenda/view-event/view-event.page.ts index 29e1e7e2f..c742ad4c1 100644 --- a/src/app/shared/agenda/view-event/view-event.page.ts +++ b/src/app/shared/agenda/view-event/view-event.page.ts @@ -36,6 +36,7 @@ export class ViewEventPage implements OnInit { @Output() viewEventDetailDismiss = new EventEmitter(); + constructor( private eventsService: EventsService, private attachmentsService: AttachmentsService, diff --git a/src/app/shared/event/attendee-modal/attendee-modal-routing.module.ts b/src/app/shared/event/attendee-modal/attendee-modal-routing.module.ts new file mode 100644 index 000000000..384a9efd2 --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AttendeeModalPage } from './attendee-modal.page'; + +const routes: Routes = [ + { + path: '', + component: AttendeeModalPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AttendeeModalPageRoutingModule {} diff --git a/src/app/shared/event/attendee-modal/attendee-modal.module.ts b/src/app/shared/event/attendee-modal/attendee-modal.module.ts new file mode 100644 index 000000000..e97fd7610 --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { AttendeeModalPageRoutingModule } from './attendee-modal-routing.module'; + +import { AttendeeModalPage } from './attendee-modal.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + AttendeeModalPageRoutingModule + ], + declarations: [AttendeeModalPage] +}) +export class AttendeeModalPageModule {} diff --git a/src/app/shared/event/attendee-modal/attendee-modal.page.html b/src/app/shared/event/attendee-modal/attendee-modal.page.html new file mode 100644 index 000000000..d8fe8f3c3 --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal.page.html @@ -0,0 +1,39 @@ + + + Adicionar intervenientes + + + + + + + + + + + + +

{{ attendee.Name }}

+

{{ attendee.EmailAddress }}

+
+
+
+
+
+
+ + + + + Cancelar + + + + + + Adicionar + + + + + \ No newline at end of file diff --git a/src/app/shared/event/attendee-modal/attendee-modal.page.scss b/src/app/shared/event/attendee-modal/attendee-modal.page.scss new file mode 100644 index 000000000..9cee55e1d --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal.page.scss @@ -0,0 +1,6 @@ +ion-item-group{ + margin: 15px; + } +ion-searchbar{ + --border-radius: 20px; +} \ No newline at end of file diff --git a/src/app/shared/event/attendee-modal/attendee-modal.page.spec.ts b/src/app/shared/event/attendee-modal/attendee-modal.page.spec.ts new file mode 100644 index 000000000..f247abe63 --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { AttendeeModalPage } from './attendee-modal.page'; + +describe('AttendeeModalPage', () => { + let component: AttendeeModalPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AttendeeModalPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(AttendeeModalPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/event/attendee-modal/attendee-modal.page.ts b/src/app/shared/event/attendee-modal/attendee-modal.page.ts new file mode 100644 index 000000000..fd15c7fe2 --- /dev/null +++ b/src/app/shared/event/attendee-modal/attendee-modal.page.ts @@ -0,0 +1,70 @@ +import { Component, EventEmitter, OnInit, Output } from '@angular/core'; +import { ModalController } from '@ionic/angular'; +import { ContactsService } from 'src/app/services/contacts.service'; +import { EventPerson } from 'src/app/models/eventperson.model'; +import { ThrowStmt, removeSummaryDuplicates } from '@angular/compiler'; + +@Component({ + selector: 'app-attendee-modal', + templateUrl: './attendee-modal.page.html', + styleUrls: ['./attendee-modal.page.scss'], +}) +export class AttendeeModalPage implements OnInit { + + contacts: EventPerson[]; + showLoader: boolean = false; + eventPersons: EventPerson[]; + + constructor(private modalCtrl: ModalController, private contactsService: ContactsService) { } + + @Output() openAttendeesComponent = new EventEmitter(); + + + ngOnInit() { + this.fetchContacts(""); + } + + save(){ + this.modalCtrl.dismiss( + this.contacts.filter(function(contact) { + return contact.IsRequired == true; + }) + ); + } + + close(){ + // this.modalCtrl.dismiss(null); + this.openAttendeesComponent.emit(); + } + + onChange(evt: any) { + this.fetchContacts(evt.detail.value); + } + + selectContact(itm: EventPerson){ + itm.IsRequired = !itm.IsRequired; + } + + async fetchContacts(filter: string) { + this.showLoader = true; + + this.contactsService.getContacts(filter).subscribe(result => + { + if (this.eventPersons != null) + { + this.eventPersons.forEach(attendee => { + const index: number = result.findIndex((cont) => { + return cont.EmailAddress == attendee.EmailAddress + }); + + result.splice(index, 1); + }); + } + + this.contacts = result; + this.showLoader = false; + } + ); + } + +} diff --git a/src/app/shared/event/attendees/attendees.page.html b/src/app/shared/event/attendees/attendees.page.html index 380e808b5..4a71dcbc8 100644 --- a/src/app/shared/event/attendees/attendees.page.html +++ b/src/app/shared/event/attendees/attendees.page.html @@ -39,7 +39,7 @@ - + Cancelar diff --git a/src/app/shared/event/attendees/attendees.page.ts b/src/app/shared/event/attendees/attendees.page.ts index 381044836..a0d432afc 100644 --- a/src/app/shared/event/attendees/attendees.page.ts +++ b/src/app/shared/event/attendees/attendees.page.ts @@ -1,8 +1,8 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, EventEmitter, OnInit, Output } from '@angular/core'; import { EventPerson } from 'src/app/models/eventperson.model'; import { EventsService } from 'src/app/services/events.service'; import { ModalController, NavController } from '@ionic/angular'; -import { AttendeeModalPage } from '../attendee-modal/attendee-modal.page'; +// import { AttendeeModalPage } from '../attendee-modal/attendee-modal.page'; @Component({ selector: 'app-attendees', @@ -17,6 +17,9 @@ export class AttendeesPage implements OnInit { searchCountryString = ''; // initialize your searchCountryString string empty + @Output() openAttendeeModal = new EventEmitter(); + + constructor(private eventService: EventsService, private modalCtrl: ModalController, private navCtrl: NavController) { } @@ -26,11 +29,11 @@ export class AttendeesPage implements OnInit { } save(){ - this.modalCtrl.dismiss(this.eventAttendees); + // this.modalCtrl.dismiss(this.eventAttendees); } close(){ - this.modalCtrl.dismiss(null); + // this.modalCtrl.dismiss(null); } removeAttendee(attendee: EventPerson) @@ -42,9 +45,12 @@ export class AttendeesPage implements OnInit { this.eventAttendees.splice(index, 1); } - async addAttendees() - { - const modal = await this.modalCtrl.create({ + async addAttendees() { + + console.log('Event Intervenient'); + this.openAttendeeModal.emit(); + + /* const modal = await this.modalCtrl.create({ component: AttendeeModalPage, componentProps: { eventPersons: this.eventAttendees @@ -73,7 +79,8 @@ export class AttendeesPage implements OnInit { this.eventAttendees.push(att); }); } - }); + }); */ + } } \ No newline at end of file