import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import * as moment from 'moment'; import { PublicationFolder } from 'src/app/models/publicationfolder'; import { PublicationsService } from 'src/app/services/publications.service'; import { ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-edit-action', templateUrl: './edit-action.page.html', styleUrls: ['./edit-action.page.scss'], }) export class EditActionPage implements OnInit { Form: FormGroup; validateFrom = false public date: any; public disabled = false; public showSpinners = true; public showSeconds = false; public touchUi = false; public enableMeridian = false; public minDate: any; public maxDate: any; public stepHour = 1; public stepMinute = 5; public stepSecond = 5; public dateControlStart = new FormControl(moment("DD MM YYYY hh")); public dateControlEnd = new FormControl(moment("DD MM YYYY hh")); folder: PublicationFolder; @Input() folderId: string; @Output() closeDesktopComponent= new EventEmitter(); @Output() updateDesktopComponent= new EventEmitter(); constructor( private publicationsService: PublicationsService, private toastService: ToastService, ) { this.folder = new PublicationFolder(); } ngOnInit() { this.getPublicationDetail(); } close() { this.closeDesktopComponent.emit(); } getPublicationDetail() { this.publicationsService.GetPresidentialAction(this.folderId).subscribe( res => { this.folder = res; this.dateControlStart = new FormControl(moment(new Date(this.folder.DateBegin))); this.dateControlEnd = new FormControl(moment(new Date(this.folder.DateEnd))); }); } get dateValid() { if (window.innerWidth <= 800) { return this.folder.DateBegin < this.folder.DateEnd? ['ok']: [] } else { return ['ok'] } } runValidation() { this.validateFrom = true } injectValidation() { this.Form = new FormGroup({ Subject: new FormControl(this.folder.Description, [ Validators.required, // Validators.minLength(4) ]), Date: new FormControl(this.dateValid, [ Validators.required ]), }) } async save() { let body = { ProcessId: this.folderId, Description: this.folder.Description, Detail: this.folder.Detail, DateBegin: this.folder.DateBegin, DateEnd: this.folder.DateEnd, ActionType: this.folder.ActionType, } console.log(body); try { await this.publicationsService.UpdatePresidentialAction(body).toPromise() this.close(); this.updateDesktopComponent.emit(); this.toastService.successMessage('Acção presidencial atualizada') } catch (error) { this.toastService.badRequest('Não foi possivel atualizar a acção presidencial') } } }