change components in edit-event

This commit is contained in:
tiago.kayaya
2022-01-21 15:54:53 +01:00
parent ce54219ce2
commit 9c97bfb01d
5 changed files with 199 additions and 86 deletions
+1
View File
@@ -285,6 +285,7 @@ export class AgendaPage implements OnInit {
/* console.log('Event clicked', event); */ /* console.log('Event clicked', event); */
//clear //clear
this.setIntervenient([]); this.setIntervenient([]);
this.setIntervenientCC([]); this.setIntervenientCC([]);
this.clearPostEvent(); this.clearPostEvent();
@@ -8,6 +8,21 @@ import { EditEventPageRoutingModule } from './edit-event-routing.module';
import { EditEventPage } from './edit-event.page'; import { EditEventPage } from './edit-event.page';
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module'; import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatInputModule } from '@angular/material/input';
import { MatNativeDateModule } from '@angular/material/core';
import {
NgxMatDatetimePickerModule,
NgxMatNativeDateModule,
NgxMatTimepickerModule
} from '@angular-material-components/datetime-picker';
import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatSelectModule } from '@angular/material/select';
import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -15,7 +30,16 @@ import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/att
FormsModule, FormsModule,
IonicModule, IonicModule,
EditEventPageRoutingModule, EditEventPageRoutingModule,
MatDatepickerModule,
MatInputModule,
MatNativeDateModule,
NgxMatDatetimePickerModule,
NgxMatTimepickerModule,
NgxMatNativeDateModule,
NgxMatMomentModule,
MatSelectModule,
MatButtonModule,
ReactiveFormsModule,
// //
AttendeeModalPageModule AttendeeModalPageModule
], ],
@@ -55,19 +55,23 @@
</div> </div>
<div class="container-div width-100"> <div class="container-div width-100">
<div class="ion-item-class-2"> <div class="ion-item-class-2 width-100 d-flex">
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class"> <div class="ion-input-class flex-grow-1">
<ion-select placeholder="Selecione agenda*"
selectedText="{{postEvent.CalendarName}}" <mat-form-field appearance="none" floatLabel="never" class="width-100 " >
[(ngModel)]="postEvent.CalendarName" <mat-select placeholder="Selecione agenda*" [(ngModel)]="postEvent.CalendarName" >
interface="action-sheet" Cancel-text="Cancelar" <mat-option value="Oficial">
required> Oficial
<ion-select-option value="Oficial">Oficial</ion-select-option> </mat-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option> <mat-option value="Pessoal">
</ion-select> Pessoal
</mat-option>
</mat-select>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
@@ -82,21 +86,30 @@
</div> </div>
<div class="container-div width-100"> <div class="container-div width-100">
<div class="ion-item-class-2"> <div class="ion-item-class-2 width-100 d-flex">
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom "> <div class="ion-input-class flex-grow-1" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom ">
<ion-select placeholder="Selecione tipo de evento*"
[(ngModel)]="postEvent.Category" <mat-form-field appearance="none" floatLabel="never" class="width-100" required>
selectedText="{{postEvent.Category}}" <!-- <input matInput type="text" > -->
interface="action-sheet" <mat-select placeholder="Selecione o tipo de evento*" matInput [(ngModel)]="postEvent.Category" >
Cancel-text="Cancelar" required> <mat-option value="Reunião">
<ion-select-option value="Reunião">Reunião</ion-select-option> Reunião
<ion-select-option value="Viagem">Viagem</ion-select-option> </mat-option>
<ion-select-option value="Conferência">Conferência</ion-select-option> <mat-option value="Viagem">
<ion-select-option value="Encontro">Encontro</ion-select-option> Viagem
</ion-select> </mat-option>
<mat-option value="Conferência">
Conferência
</mat-option>
<mat-option value="Encontro">
Encontro
</mat-option>
</mat-select>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
@@ -115,77 +128,103 @@
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class width-100" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
placeholder="Início" <mat-form-field appearance="none" floatLabel="never" class="date-hour-picker">
[(ngModel)]="postEvent.StartDate" <input matInput [ngxMatDatetimePicker]="picker1"
displayFormat="D MMM YYYY H:mm" placeholder="Choose a date"
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55" [(ngModel)]="postEvent.StartDate"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez" [max]="maxDate"
min="{{minDate}}" [disabled]="disabled"
max="2025" >
> <mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
</ion-datetime> <ngx-mat-datetime-picker #picker1
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> --> [showSpinners]="showSpinners"
[showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
[stepSecond]="stepSecond"
[touchUi]="touchUi">
</ngx-mat-datetime-picker>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
<div class="container-div width-100"> <div class="container-div width-100">
<div class="ion-item-class-2"> <div class="ion-item-class-2 width-100 d-flex">
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom "> <div class="ion-input-class flex-grow-1" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
placeholder="Fim" <mat-form-field appearance="none" floatLabel="never" floatLabel="never" class="date-hour-picker">
[(ngModel)]="postEvent.EndDate" <input matInput [ngxMatDatetimePicker]="fim"
displayFormat="D MMM YYYY H:mm" placeholder="Choose a date"
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55" [(ngModel)]="postEvent.EndDate"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez" [max]="maxDate"
min="{{minDate}}" [disabled]="disabled"
max="2025" >
> <mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle>
</ion-datetime> <ngx-mat-datetime-picker #fim
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> --> [showSpinners]="showSpinners"
[showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
[stepSecond]="stepSecond">
</ngx-mat-datetime-picker>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
<div class="container-div width-100"> <div class="container-div d-flex width-100">
<div class="ion-item-class-2"> <div class="ion-item-class-2 width-100 d-flex">
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div> </div>
<div class="ion-input-class"> <div class="ion-input-class flex-grow-1">
<ion-select placeholder="Selecione a repetição*" <mat-form-field appearance="none" floatLabel="never" class="width-100" value="false" interface="action-sheet" required>
[(ngModel)]="selectedRecurringType" <mat-select
(ngModelChange)="onSelectedRecurringChanged($event)" placeholder="Selecione repetição*"
interface="action-sheet" [(ngModel)]="selectedRecurringType"
Cancel-text="Cancelar" required> (ngModelChange)="onSelectedRecurringChanged($event)">
<ion-select-option *ngFor="let recurring of recurringTypes" value="{{recurring.Code}}">{{recurring.Description}}</ion-select-option> <mat-option
</ion-select> *ngFor="let recurring of recurringTypes"
value="{{recurring.Code}}">
{{recurring.Description}}
</mat-option>
</mat-select>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
<div *ngIf="selectedRecurringType != '-1'" class="container-div width-100"> <div *ngIf="selectedRecurringType != '-1'" class="container-div width-100">
<div class="ion-item-class-2"> <div class="ion-item-class-2 d-flex">
<div class="ion-icon-class"> <div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon> <ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div> </div>
<div class="ion-input-class"> <div (click)="openLastOccurrence()" class="ion-input-class flex-grow-1">
<ion-datetime
placeholder="Última ocorrência" <mat-form-field class="date-hour-picker">
[(ngModel)]="postEvent.EventRecurrence.LastOccurrence" <input matInput [ngxMatDatetimePicker]="occurrrence"
displayFormat="D MMM YYYY H:mm" placeholder="Choose a date"
minuteValues="0,5,10,15,20,25,30,35,40,45,50,55" [(ngModel)]="postEvent.EventRecurrence.LastOccurrence"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez" [disabled]="disabled"
min="2021" >
max="2025" <mat-datepicker-toggle id="last-occurrence" matSuffix [for]="occurrrence"></mat-datepicker-toggle>
> <ngx-mat-datetime-picker #occurrrence
</ion-datetime> [showSpinners]="showSpinners"
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> --> [showSeconds]="showSeconds"
[stepHour]="stepHour" [stepMinute]="stepMinute"
[stepSecond]="stepSecond"
[touchUi]="touchUi"
>
</ngx-mat-datetime-picker>
</mat-form-field>
</div> </div>
</div> </div>
</div> </div>
@@ -11,20 +11,33 @@ import { ToastService } from 'src/app/services/toast.service';
import { Event } from '../../../models/event.model'; import { Event } from '../../../models/event.model';
import { AttendeesPageModal } from '../../events/attendees/attendees.page'; import { AttendeesPageModal } from '../../events/attendees/attendees.page';
import { SearchPage } from '../../search/search.page'; import { SearchPage } from '../../search/search.page';
import { ThemeService } from 'src/app/services/theme.service' import { ThemeService } from 'src/app/services/theme.service';
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
parse: {
dateInput: "YYYY-MMMM-DD HH:mm"
},
display: {
dateInput: "DD MMM YYYY H:mm",
monthYearLabel: "MMM YYYY",
dateA11yLabel: "LL",
monthYearA11yLabel: "MMMM YYYY"
}
}
@Component({ @Component({
selector: 'app-edit-event', selector: 'app-edit-event',
templateUrl: './edit-event.page.html', templateUrl: './edit-event.page.html',
styleUrls: ['./edit-event.page.scss'], styleUrls: ['./edit-event.page.scss'],
providers: [
{ provide: NGX_MAT_DATE_FORMATS, useValue: CUSTOM_DATE_FORMATS },
]
}) })
export class EditEventPage implements OnInit { export class EditEventPage implements OnInit {
Form: FormGroup; Form: FormGroup;
validateFrom = false validateFrom = false
public endMinDate = new Date(new Date().getTime() + 15 * 60000);
public minDate = new Date().toISOString().slice(0,10)
postEvent: Event; postEvent: Event;
isRecurring:string; isRecurring:string;
@@ -41,6 +54,19 @@ export class EditEventPage implements OnInit {
recurringTypes: any; recurringTypes: any;
selectedRecurringType: any; selectedRecurringType: any;
public date: any;
public disabled = false;
public showSpinners = true;
public showSeconds = false;
public touchUi = false;
public enableMeridian = false;
public minDate = new Date().toISOString().slice(0,10)
public endMinDate = new Date(new Date().getTime() + 15 * 60000).toISOString().slice(0,10)
public maxDate: any;
public stepHour = 1;
public stepMinute = 5;
public stepSecond = 5;
loadedEventAttachments: Attachment[] = []; loadedEventAttachments: Attachment[] = [];
taskParticipants: any = []; taskParticipants: any = [];
taskParticipantsCc: any = []; taskParticipantsCc: any = [];
@@ -48,6 +74,11 @@ export class EditEventPage implements OnInit {
showAttendees = false; showAttendees = false;
public listColors = ['primary', 'accent', 'warn'];
public stepHours = [1, 2, 3, 4, 5];
public stepMinutes = [1, 5, 10, 15, 20, 25];
public stepSeconds = [1, 5, 10, 15, 20, 25];
constructor( constructor(
private modalController: ModalController, private modalController: ModalController,
private navParams: NavParams, private navParams: NavParams,
@@ -59,10 +90,12 @@ export class EditEventPage implements OnInit {
public ThemeService: ThemeService public ThemeService: ThemeService
) { ) {
this.postEvent = new Event(); /* this.postEvent = new Event(); */
this.isEventEdited = false; this.isEventEdited = false;
this.postEvent.EventRecurrence = { Type:'-1', LastOccurrence:''}; /* this.postEvent.EventRecurrence = { Type:'-1', LastOccurrence:''}; */
this.postEvent = this.navParams.get('event'); this.postEvent = this.navParams.get('event');
console.log(this.postEvent);
this.caller = this.navParams.get('caller'); this.caller = this.navParams.get('caller');
this.initCalendarName = this.postEvent.CalendarName; this.initCalendarName = this.postEvent.CalendarName;
@@ -99,6 +132,7 @@ export class EditEventPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
window.onresize = (event) => { window.onresize = (event) => {
// if not mobile remove all component // if not mobile remove all component
if( window.innerWidth >= 1024) { if( window.innerWidth >= 1024) {
@@ -178,6 +212,28 @@ export class EditEventPage implements OnInit {
}) })
} }
openInicio() {
let input: any = document.querySelector('#new-inicio')
if(input) {
console.log(input)
input.click()
}
}
openFim() {
let input: any = document.querySelector('#new-fim')
if(input) {
input.click()
}
}
openLastOccurrence() {
let input: any = document.querySelector('#last-occurrence')
if(input) {
input.click()
}
}
save() { save() {
@@ -33,18 +33,11 @@ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter'
MatDatepickerModule, MatDatepickerModule,
MatInputModule, MatInputModule,
MatNativeDateModule, MatNativeDateModule,
//
NgxMatDatetimePickerModule, NgxMatDatetimePickerModule,
NgxMatTimepickerModule, NgxMatTimepickerModule,
NgxMatNativeDateModule, NgxMatNativeDateModule,
//
NgxMatMomentModule, NgxMatMomentModule,
// BrowserAnimationsModule,
// MatRadioModule,
MatSelectModule, MatSelectModule,
//MatRadioModule,
//MatCheckboxModule,
MatButtonModule, MatButtonModule,
ReactiveFormsModule ReactiveFormsModule
], ],