import { Component, OnInit, Inject, ViewChild } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { AuthService } from '../../../services/auth/auth.service'; import { MatDialogRef, MAT_DIALOG_DATA, MatSelectionList } from '@angular/material'; import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel'; import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service'; import { DatasetListingModel } from '../../../models/datasets/DatasetListingModel'; import { DatasetService } from '../../../services/dataset/dataset.service'; import { DataTableRequest } from '../../../models/data-table/DataTableRequest'; import { DatasetCriteria } from '../../../models/criteria/dataset/DatasetCriteria'; import { DatasetStatus } from '../../../models/datasets/DatasetWizardModel'; import { Observable } from 'rxjs/Observable'; @Component({ selector: 'app-dmp-finalise-dialog-component', templateUrl: 'dmp-finalise-dialog.component.html', }) export class DMPFinaliseDialogComponent implements OnInit { @ViewChild('datasetsDraftSelectionList') selectionList: MatSelectionList; public formGroup: FormGroup; public submitFunction: (items: DatasetListingModel[]) => any; public dmp: DataManagementPlanModel; public datasetsFinalised: Observable; public datasetsDraft: Observable; constructor( public router: Router, public dialogRef: MatDialogRef, public dmpService: DatasetService, @Inject(MAT_DIALOG_DATA) public data: any ) { this.submitFunction = data['submitFunction']; this.dmp = data['dmp']; this.initialiseDatasetFinalisedRequest(); this.initialiseDMPFinalisedRequest(); } ngOnInit(): void { } initialiseDatasetFinalisedRequest() { const request = new DataTableRequest(null, null, null); request.criteria = new DatasetCriteria(); request.criteria.dmpIds = [this.dmp.id]; request.criteria.status = DatasetStatus.Finalised; this.datasetsFinalised = this.dmpService.getPaged(request).map(x => x.data); } initialiseDMPFinalisedRequest() { const request = new DataTableRequest(null, null, null); request.criteria = new DatasetCriteria(); request.criteria.dmpIds = [this.dmp.id]; request.criteria.status = DatasetStatus.Draft; this.datasetsDraft = this.dmpService.getPaged(request).map(x => x.data); } submit() { this.submitFunction(this.selectionList.selectedOptions.selected.map(x => x.value)); } }