import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ModalController, NavParams } from '@ionic/angular';
import { ExpedientTaskModalPageNavParamsTask } from 'src/app/models/ExpedientTaskModalPage';
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
import { ProcessesService } from 'src/app/services/processes.service';
import { EventDetailsDocumentsOptionsPage } from 'src/app/shared/popover/event-details-documents-options/event-details-documents-options.page';
import { DocumentSetUpMeetingPage } from '../document-set-up-meeting/document-set-up-meeting.page';
import { RouteService } from 'src/app/services/route.service';


@Component({
  selector: 'app-view-document',
  templateUrl: './view-document.page.html',
  styleUrls: ['./view-document.page.scss'],
})
export class ViewDocumentPage implements OnInit {

  trustedUrl: any;
  file: any;
  applicationId: any;
  docId: any
  task: ExpedientTaskModalPageNavParamsTask;
  Document: any

  constructor(
    private modalController: ModalController,
    private navParams: NavParams,
    private sanitazer: DomSanitizer,
    private processes: ProcessesService,
  ) {
    this.file = this.navParams.get('file');
    this.applicationId = this.navParams.get('applicationId');
    this.docId = this.navParams.get('docId');
    this.Document = this.navParams.get('Document')
    this.task = this.navParams.get('task')


    if(!this.file.title) {
      this.file.title = 'Sem Título'
    }

    console.log(this.task)

  }

  ngOnInit() {

    this.processes.GetViewer(this.docId, this.applicationId).subscribe(res=> {
      const link: string = res;
      this.trustedUrl = this.sanitazer.bypassSecurityTrustResourceUrl(link);
    }, ()=>{
      this.close();
    });

  }


  close() {
    this.modalController.dismiss();
  }

  async openOptions() {
    const modal = await this.modalController.create({
      component: EventDetailsDocumentsOptionsPage,
      cssClass: 'model aside-modal search-submodal',
      componentProps: {
        fulltask: this.task,
        task: this.task
      }
    });
    await modal.present();

    modal.onDidDismiss().then((res)=>{

      if(res.data) {
        if(res.data.component == 'openBookMeetingModal') {
          this.openBookMeetingModal()
        } else if(res.data.component == 'openExpedientActionsModal') {
          this.openExpedientActionsModal(res.data.taskAction)
        } else {
          console.log('component not found')
        }
      }

    })
  }

  async openBookMeetingModal() {

    let classs;
    if( window.innerWidth < 701) {
      classs = 'book-meeting-modal modal modal-desktop'
    } else  {
      classs = 'modal modal-desktop showAsideOptions'
    }
    const modal = await this.modalController.create({
      component: DocumentSetUpMeetingPage,
      componentProps: {
        subject: this.task.workflowInstanceDataFields.Subject,
        document: this.Document,
      },
      cssClass: classs,
      backdropDismiss: false
    });
    await modal.present();
    modal.onDidDismiss().then(res=>{
      //this.RouteService.goBack();
    });
  }

  // efetuar despacho

  async openExpedientActionsModal( taskAction: any) {

    let classs;
    if( window.innerWidth < 701) {
      classs = 'modal modal-desktop'
    } else  {
      classs = 'modal modal-desktop showAsideOptions'
    }
    const modal = await this.modalController.create({
      component: ExpedientTaskModalPage,
      componentProps: {
        taskAction: taskAction,
        task: this.task,
        seachDocuments: this.Document,
        aplicationId: this.Document.ApplicationId || this.Document.ApplicationID
      },
      cssClass: classs,
    });
    await modal.present();
    modal.onDidDismiss().then( async(res)=>{});

  }

}
