From 5d565b556707484df31ff8abce8df2a364f9678a Mon Sep 17 00:00:00 2001 From: Paulo Pinto Date: Wed, 2 Sep 2020 12:45:11 +0100 Subject: [PATCH] New Event Fields Control --- src/app/pages/cal-modal/cal-modal.module.ts | 3 +- src/app/pages/cal-modal/cal-modal.page.html | 113 +++++++++++------- src/app/pages/cal-modal/cal-modal.page.scss | 7 +- src/app/pages/cal-modal/cal-modal.page.ts | 31 ++++- .../event-detail/event-detail.page.html | 4 +- 5 files changed, 108 insertions(+), 50 deletions(-) diff --git a/src/app/pages/cal-modal/cal-modal.module.ts b/src/app/pages/cal-modal/cal-modal.module.ts index c20137f89..fb8f9ea1e 100644 --- a/src/app/pages/cal-modal/cal-modal.module.ts +++ b/src/app/pages/cal-modal/cal-modal.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { IonicModule } from '@ionic/angular'; @@ -15,6 +15,7 @@ import { NgCalendarModule } from 'ionic2-calendar'; FormsModule, IonicModule, CalModalPageRoutingModule, + ReactiveFormsModule, NgCalendarModule ], declarations: [CalModalPage] diff --git a/src/app/pages/cal-modal/cal-modal.page.html b/src/app/pages/cal-modal/cal-modal.page.html index ae29f4ead..1d82ebc80 100644 --- a/src/app/pages/cal-modal/cal-modal.page.html +++ b/src/app/pages/cal-modal/cal-modal.page.html @@ -11,46 +11,79 @@
- - Assunto - - - - Descrição - - - - Localização - - - - Selecione a Agenda - - Pessoal - Oficial - - - - Tipo de evento - - Reunião - Viagem - Conferência - Encontro - - - - Data Início - - - - Data Fim - - +
+ + Assunto + + + + + Campo obrigatório + + + Descrição + + + + + Campo obrigatório + + + Localização + + + + + Campo obrigatório + + + Selecione a Agenda + + Pessoal + Oficial + + + + + Campo obrigatório + + + Tipo de evento + + Reunião + Viagem + Conferência + Encontro + + + + + Campo obrigatório + + + Data Início + + + + + + Campo obrigatório + + + Data Fim + + + + + Campo obrigatório + +
diff --git a/src/app/pages/cal-modal/cal-modal.page.scss b/src/app/pages/cal-modal/cal-modal.page.scss index 2e6a2e951..204177c02 100644 --- a/src/app/pages/cal-modal/cal-modal.page.scss +++ b/src/app/pages/cal-modal/cal-modal.page.scss @@ -14,7 +14,12 @@ margin: 15px 0 0 0; padding: 15px; } - +.error{ + color:red; + font-size: 12px; + font-weight: bold; + padding-bottom: 20px; + } /* ion-item{ display: block; border: 1px solid red; diff --git a/src/app/pages/cal-modal/cal-modal.page.ts b/src/app/pages/cal-modal/cal-modal.page.ts index 71568bf16..a7a9e512c 100644 --- a/src/app/pages/cal-modal/cal-modal.page.ts +++ b/src/app/pages/cal-modal/cal-modal.page.ts @@ -9,6 +9,7 @@ import { AttendeesPage } from 'src/app/pages/events/attendees/attendees.page'; import { AttendeeModalPage } from '../events/attendee-modal/attendee-modal.page'; import { EventPerson } from 'src/app/models/eventperson.model'; import { AlertService } from 'src/app/services/alert.service'; +import { FormGroup, FormBuilder, Validators } from "@angular/forms"; @Component({ selector: 'app-cal-modal', @@ -29,13 +30,28 @@ export class CalModalPage implements OnInit { eventAttendees: EventPerson[]; segment:string = "true"; - constructor(private modalCtrl: ModalController, private eventService: EventsService, private alertController:AlertService) { - this.postEvent = new Event(); - this.postEvent.Body = { BodyType : "1", Text : ""}; - + ionicForm: FormGroup; + isSubmitted = false; + + constructor(public formBuilder: FormBuilder, private modalCtrl: ModalController, private eventService: EventsService, private alertController:AlertService) { + this.postEvent = new Event(); + this.postEvent.Body = { BodyType : "1", Text : ""}; } ngOnInit() { + this.ionicForm = this.formBuilder.group({ + subject: ['', [Validators.required]], + agenda: ['', [Validators.required]], + startdate: ['', [Validators.required]], + enddate: ['', [Validators.required]], + description: ['', [Validators.required]], + location: ['', [Validators.required]], + eventtype: ['', [Validators.required]] + }) + } + + get errorControl() { + return this.ionicForm.controls; } ngAfterViewInit(): void { @@ -45,8 +61,11 @@ export class CalModalPage implements OnInit { } save(){ - this.eventService.postEvent(this.postEvent, this.postEvent.CalendarName).subscribe(); - this.modalCtrl.dismiss(this.postEvent); + if (this.ionicForm.valid) + { + this.eventService.postEvent(this.postEvent, this.postEvent.CalendarName).subscribe(); + this.modalCtrl.dismiss(this.postEvent); + } } onViewTitleChanged(title){ diff --git a/src/app/pages/events/event-detail/event-detail.page.html b/src/app/pages/events/event-detail/event-detail.page.html index 58a28cbfb..6b9c3e9c4 100644 --- a/src/app/pages/events/event-detail/event-detail.page.html +++ b/src/app/pages/events/event-detail/event-detail.page.html @@ -53,13 +53,13 @@ Data Início Data Fim