criar evento com recorrencia

This commit is contained in:
tiago.kayaya
2021-07-12 14:32:43 +01:00
parent d68a89e7c9
commit aa3a2e0420
4 changed files with 185 additions and 131 deletions
@@ -13,7 +13,7 @@
<ion-content>
<div class="main-content">
<!-- <input type="text" ngbDatepicker #d="ngbDatepicker"/> -->
<div class="ion-item-container" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input placeholder="Assunto*" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
@@ -43,7 +43,7 @@
<!-- <span class="error ion-padding" >
Campo obrigatório
</span> -->
</div>
<!-- <div *ngIf="Form && validateFrom" >
@@ -56,7 +56,7 @@
</div>
</div>
</div> -->
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
@@ -64,9 +64,9 @@
</div>
<div class="ion-input-class" [class.input-error]="Form?.get('CalendarName')?.invalid && validateFrom ">
<ion-select placeholder="Selecione agenda*"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
required>
<ion-select-option value="Oficial">Oficial</ion-select-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
@@ -89,9 +89,9 @@
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom ">
<ion-select placeholder="Selecione tipo de evento*"
[(ngModel)]="postEvent.Categories[0]"
interface="action-sheet"
<ion-select placeholder="Selecione tipo de evento*"
[(ngModel)]="postEvent.Categories[0]"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option value="Reunião">Reunião</ion-select-option>
<ion-select-option value="Viagem">Viagem</ion-select-option>
@@ -110,20 +110,20 @@
</div>
</div>
</div> -->
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
<ion-datetime
placeholder="Início*"
[(ngModel)]="postEvent.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="{{minDate}}"
min="{{minDate}}"
max="2025"
>
</ion-datetime>
@@ -131,14 +131,14 @@
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
<ion-datetime
<ion-datetime
placeholder="Fim*"
[(ngModel)]="postEvent.EndDate"
displayFormat="D MMM YYYY H:mm"
@@ -146,51 +146,51 @@
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="{{minDate}}"
max="2025"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom ">
<ion-select placeholder="Selecione a repetição*"
<ion-select placeholder="Selecione a repetição*"
[(ngModel)]="selectedRecurringType"
(ngModelChange)="onSelectedRecurringChanged($event)"
interface="action-sheet"
interface="action-sheet"
Cancel-text="Cancelar" required>
<ion-select-option *ngFor="let recurring of recurringTypes" value="{{recurring.Code}}">{{recurring.Description}}</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div *ngIf="selectedRecurringType != '-1'" class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
<ion-datetime
placeholder="Última ocorrência"
[(ngModel)]="postEvent.EventRecurrence.LastOccurrence"
displayFormat="DD MMM YYYY"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2021"
max="2045"
max="2045"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
@@ -217,7 +217,7 @@
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
@@ -245,20 +245,20 @@
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height flex-grow-1">
<ion-textarea [(ngModel)]="postEvent.Body.Text" placeholder="Detalhes" ></ion-textarea>
</div>
</div>
</div>
<div class="ion-item-container-no-border cursor-pointer" (click)="getDoc()">
<ion-label>
<div class="attach-icon">
@@ -266,27 +266,27 @@
</div>
<div class="attach-document">
<ion-label>Adicionar documentos</ion-label>
</div>
</div>
</ion-label>
</div>
<div *ngFor="let document of documents; let i = index" >
<div *ngFor="let document of documents; let i = index" >
<ion-list class="list">
<ion-item>
<ion-label>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<span class="close-button text-black cursor-pointer" (click)="removeAttachment(i)" >
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
</span>
</p>
</p>
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</div>
</ion-content>
<ion-footer class="ion-no-border d-flex justify-center px-20">
<ion-toolbar class=" ">
@@ -302,4 +302,4 @@
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
</ion-footer>
@@ -63,12 +63,12 @@ export class NewEventPage implements OnInit {
constructor(
private modalController: ModalController,
private navParams: NavParams,
private eventService: EventsService,
private eventService: EventsService,
private attachmentsService: AttachmentsService,
private animationController: AnimationController,
private toastService: ToastService,
userService: AuthService,
) {
) {
this.loggeduser = userService.ValidatedUser;
this.postEvent = new Event();
this.postEvent.EventRecurrence = {Type:'-1'};
@@ -87,16 +87,16 @@ export class NewEventPage implements OnInit {
ngOnInit() {
this.selectedRecurringType = "-1";
console.log(this.postEvent);
this.getRecurrenceTypes();
/* 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) ;
selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) ;
if(this.selectedSegment != "Combinada"){
this.postEvent ={
EventId: '',
@@ -148,9 +148,12 @@ export class NewEventPage implements OnInit {
this.modalController.dismiss();
}
};
console.log(this.postEvent);
}
close(){
this.modalController.dismiss();
}
@@ -173,7 +176,7 @@ export class NewEventPage implements OnInit {
this.selectedRecurringType = "-1";
}
}
runValidation() {
this.validateFrom = true
@@ -216,22 +219,22 @@ export class NewEventPage implements OnInit {
})
}
async save() {
this.injectValidation()
this.runValidation()
if(this.Form.invalid) return false
if(this.documents.length >= 0) {
this.postEvent.HasAttachments = true;
}
if(this.selectedRecurringType != '-1'){
this.postEvent.EventRecurrence.Type = this.selectedRecurringType;
}
let eventId: any;
try {
const loader = this.toastService.loading()
@@ -240,15 +243,15 @@ export class NewEventPage implements OnInit {
console.log(this.loggeduser.Profile);
console.log(this.postEvent);
eventId = await this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).toPromise();
console.log(eventId);
loader.remove()
}
else if(this.loggeduser.Profile == 'PR'){
console.log(this.loggeduser.Profile);
eventId = await this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).toPromise();
loader.remove()
}
@@ -272,14 +275,14 @@ export class NewEventPage implements OnInit {
} catch(error) {
console.log('document not save')
}
});
this.toastService.successMessage()
this.modalController.dismiss(this.postEvent);
} catch (error) {
this.toastService.badRequest()
}
@@ -287,7 +290,7 @@ export class NewEventPage implements OnInit {
}
async openAttendees() {
const modal = await this.modalController.create({
component: AttendeesPageModal,
componentProps: {
@@ -302,7 +305,7 @@ export class NewEventPage implements OnInit {
await modal.present();
modal.onDidDismiss().then((data) => {
if(data){
data = data['data'];
@@ -319,7 +322,7 @@ export class NewEventPage implements OnInit {
this.taskParticipants = data;
this.postEvent.Attendees = data;
}
setIntervenientCC(data){
this.taskParticipantsCc = data;
}
@@ -359,4 +362,4 @@ export class NewEventPage implements OnInit {
this.documents = this.documents.filter( (e, i) => index != i);
}
}
}