import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { ModalController, NavParams } from '@ionic/angular'; 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'; import { HttpErrorHandle} from 'src/app/services/http-error-handle.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 = new Date().toISOString() public maxDate: any; public stepHour = 1; public stepMinute = 15; public stepSecond = 5; public dateControlStart = new FormControl(moment("DD MM YYYY hh")); public dateControlEnd = new FormControl(moment("DD MM YYYY hh")); currentDate = new Date(); folder: PublicationFolder; folderId: string; @Output() closeDesktopComponent= new EventEmitter(); @Output() updateDesktopComponent= new EventEmitter(); constructor( private publicationsService: PublicationsService, private toastService: ToastService, private navParams: NavParams, private modalController: ModalController, private httpErrorHandle: HttpErrorHandle ) { this.folder = new PublicationFolder(); this.folderId = this.navParams.get('folderId'); } ngOnInit() { this.getPublicationDetail(); } close() { this.modalController.dismiss(); } 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() { var validado: boolean; if (window.innerWidth <= 800) { if ((this.folder.DateBegin < this.folder.DateEnd) && (new Date(this.folder.DateBegin).getTime() > this.currentDate.getTime())) { validado = true; }else{ validado = false; } return validado == true ? ['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() { this.injectValidation() this.runValidation() if(this.Form.invalid) return false 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, } const loader = this.toastService.loading() try { await this.publicationsService.UpdatePresidentialAction(body).toPromise() this.close(); this.updateDesktopComponent.emit(); this.httpErrorHandle.httpsSucessMessagge('Editar publicação'); } catch (error) { this.httpErrorHandle.httpStatusHandle(error) } finally { loader.remove() } } }