Files
doneit-web/src/app/pages/events/edit-event/edit-event.page.ts
T

252 lines
6.1 KiB
TypeScript
Raw Normal View History

2021-04-05 15:10:28 +01:00
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { EventsService } from 'src/app/services/events.service';
import { Router } from '@angular/router';
import { Event } from '../../../models/event.model';
import { EventBody } from 'src/app/models/eventbody.model';
import { AlertController, ModalController } from '@ionic/angular';
import { EventPerson } from 'src/app/models/eventperson.model';
2021-06-15 15:28:03 +01:00
import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page';
2021-04-05 15:10:28 +01:00
import { AlertService } from 'src/app/services/alert.service';
import { Attachment } from 'src/app/models/attachment.model';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { FormGroup, FormBuilder, Validators } from "@angular/forms";
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { AttachmentsPage } from '../attachments/attachments.page';
@Component({
2021-06-03 15:03:23 +01:00
selector: 'app-edit-event',
templateUrl: './edit-event.page.html',
styleUrls: ['./edit-event.page.scss'],
2021-04-05 15:10:28 +01:00
})
2021-07-09 13:32:17 +01:00
export class EditEventPage implements OnInit {
2021-04-05 15:10:28 +01:00
loadedEvent: Event;
loadedEventAttachments: Attachment[];
pageId: string;
showLoader: boolean;
backURL: string;
ionicForm: FormGroup;
isSubmitted = false;
minDate: Date;
profile:string;
constructor(
2021-09-15 09:33:13 +01:00
public formBuilder: FormBuilder,
public alertController: AlertController,
private router: Router,
private activatedRoute: ActivatedRoute,
private eventsService: EventsService,
2021-04-05 15:10:28 +01:00
private modalCtrl: ModalController,
private alertService: AlertService,
private attachamentsService: AttachmentsService,
private route: Router,
2021-09-15 09:33:13 +01:00
private iab: InAppBrowser) {
2021-04-05 15:10:28 +01:00
this.loadedEvent = new Event();
this.loadedEvent.Body = new EventBody();
2021-09-15 09:33:13 +01:00
2021-04-05 15:10:28 +01:00
}
ngOnInit() {
this.loadEvent();
this.loadAttachments();
this.ionicForm = this.formBuilder.group({
subject: ['', [Validators.required]]
})
}
get errorControl() {
return this.ionicForm.controls;
}
loadEvent(){
let eventid: string;
this.activatedRoute.paramMap.subscribe(paramMap =>
{
if (!paramMap.has("eventId")){
return;
}
else{
this.pageId = paramMap.get('eventId');
eventid = paramMap.get('eventId');
2024-01-06 20:37:49 +01:00
2021-09-15 09:33:13 +01:00
2021-04-05 15:10:28 +01:00
}
if (paramMap.has("caller")){
this.backURL = "/home/" + paramMap.get('caller');
}
}
);
this.eventsService.getEvent(eventid).subscribe(response => {
this.loadedEvent = response;
});
}
async openAttendees(){
const modal = await this.modalCtrl.create({
2021-06-15 15:28:03 +01:00
component: AttendeesPageModal,
2021-04-05 15:10:28 +01:00
componentProps: {
2024-01-06 20:37:49 +01:00
hideExternalDomain: false,
2021-04-05 15:10:28 +01:00
eventAttendees: this.loadedEvent.Attendees
},
2021-08-25 10:40:17 +01:00
cssClass: 'attendee modal-desktop',
2021-04-05 15:10:28 +01:00
backdropDismiss: false
});
2023-07-15 11:01:09 +01:00
2021-04-05 15:10:28 +01:00
modal.onDidDismiss().then((data) => {
if (data['data'] != null)
2021-09-15 09:33:13 +01:00
{
2021-04-05 15:10:28 +01:00
let newattendees: EventPerson[] = data['data'];
this.loadedEvent.Attendees = newattendees;
}
});
2023-07-15 11:01:09 +01:00
await modal.present();
2021-04-06 11:28:46 +01:00
}
2021-04-05 15:10:28 +01:00
getEventAttendees(): EventPerson[]
{
return this.loadedEvent.Attendees;
}
setEventAttendees(newattendes: EventPerson[])
{
this.loadedEvent.Attendees = newattendes;
}
async deleteConfirm()
{
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Apagar evento!',
message: 'Deseja <strong>apagar</strong> o evento da agenda ' + this.loadedEvent.CalendarName + '?',
buttons: [
{
text: 'Não',
role: 'cancel',
cssClass: 'secondary',
handler: () => { }
}, {
text: 'Sim',
handler: () => {
this.Delete();
}
}
]
});
await alert.present();
}
Delete()
{
2021-09-15 09:33:13 +01:00
this.eventsService.deleteEvent(this.loadedEvent.EventId, 0, this.loadedEvent.CalendarName).subscribe(async () =>
2021-04-05 15:10:28 +01:00
{
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento removido',
buttons: ['OK']
});
2021-09-15 09:33:13 +01:00
2021-04-27 14:25:10 +01:00
setTimeout(()=>{
alert.dismiss();
}, 1500);
2021-04-05 15:10:28 +01:00
this.router.navigate(['/home/events']);
2021-09-15 09:33:13 +01:00
});
2021-04-05 15:10:28 +01:00
}
Save()
{
2024-05-24 11:29:53 +01:00
// if (this.ionicForm.valid){
2021-04-05 15:10:28 +01:00
2024-05-24 11:29:53 +01:00
// this.activatedRoute.paramMap.subscribe(paramMap =>{
// if (paramMap.has("profile")){
2024-01-06 20:37:49 +01:00
2021-09-15 09:33:13 +01:00
2024-05-24 11:29:53 +01:00
// }
// });
2021-04-05 15:10:28 +01:00
2024-05-24 11:29:53 +01:00
// this.eventsService.editEvent(this.loadedEvent, 2, 3).subscribe(async () =>
// {
// const alert = await this.alertController.create({
// cssClass: 'my-custom-class',
// header: 'Evento actualizado',
// buttons: ['OK']
// });
2021-09-15 09:33:13 +01:00
2024-05-24 11:29:53 +01:00
// setTimeout(()=>{
// alert.dismiss();
// }, 1500);
// });
// }
2021-04-05 15:10:28 +01:00
}
showAlert(){
this.alertService.presentAlert("Funcionalidade em desenvolvimento");
}
loadAttachments()
2021-09-15 09:33:13 +01:00
{
2021-04-05 15:10:28 +01:00
this.attachamentsService.getAttachmentsById(this.pageId).subscribe(res => {
this.loadedEventAttachments = res;
2024-01-06 20:37:49 +01:00
2021-09-15 09:33:13 +01:00
2022-12-21 16:25:09 +01:00
},((erro) => {
console.error('loadAttchament', erro)
}));
2021-04-05 15:10:28 +01:00
}
async viewDocument(documenturl:string)
{
const url: string = documenturl.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create(url,"_blank");
browser.show();
}
back()
{
//this.back();
}
doRefresh(event){
/* this.RefreshEvents(); */
2023-02-09 16:05:36 +01:00
try {
event?.target?.complete();
} catch(error) {}
2021-04-05 15:10:28 +01:00
setTimeout(() => {
2023-02-09 16:05:36 +01:00
try {
event?.target?.complete();
} catch(error) {}
2021-04-05 15:10:28 +01:00
}, 2000);
}
navigateTo(ev){
this.route.navigate(['/home/events',ev]);
}
async openAttachments(){
const modal = await this.modalCtrl.create({
component: AttachmentsPage,
componentProps: {
eventId: this.pageId,
attachments: this.loadedEventAttachments
},
cssClass: 'attachments',
backdropDismiss: false
});
2021-09-15 09:33:13 +01:00
2021-04-05 15:10:28 +01:00
await modal.present();
2021-09-15 09:33:13 +01:00
2021-04-05 15:10:28 +01:00
modal.onDidDismiss().then((data) => {
if (data['data'] != null)
2021-09-15 09:33:13 +01:00
{
2021-04-05 15:10:28 +01:00
let newattendees: EventPerson[] = data['data'];
this.loadedEvent.Attendees = newattendees;
}
});
}
}