argos/dmp-frontend/src/app/dmps/wizard/listing/dataset-wizard-listing.comp...

81 lines
3.3 KiB
TypeScript
Raw Normal View History

2018-02-07 10:56:30 +01:00
import { DataTableData } from '../../../models/data-table/DataTableData';
import { JsonSerializer } from '../../../utilities/JsonSerializer';
import { DataTableRequest } from '../../../models/data-table/DataTableRequest';
import { DatasetListingModel } from '../../../models/datasets/DatasetListingModel';
import { DatasetCriteria } from '../../../models/criteria/dataset/DatasetCriteria';
import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel';
import { DatasetCriteriaComponent } from '../../../shared/components/criteria/datasets/datasets-criteria.component';
import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service';
import { DatasetService } from '../../../services/dataset/dataset.service';
import { Component, ViewChild, OnInit, AfterViewInit, Input } from "@angular/core";
import { MatPaginator, MatSort, MatSnackBar } from "@angular/material";
import { Router, Params, ActivatedRoute } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { DataSource } from "@angular/cdk/table";
import { FormGroup, FormBuilder, FormControl, FormArray } from "@angular/forms"
import { Observable } from "rxjs/Observable";
import { PageEvent } from '@angular/material';
import { SelectionModel } from '@angular/cdk/collections';
@Component({
2018-05-28 11:50:42 +02:00
selector: 'app-dataset-wizard-listing-component',
templateUrl: 'dataset-wizard-listing.component.html',
styleUrls: ['./dataset-wizard-listing.component.scss'],
2018-02-07 10:56:30 +01:00
})
export class DatasetWizardListingComponent implements OnInit {
2018-05-28 11:50:42 +02:00
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent;
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
titlePrefix: String;
datasets: DatasetListingModel[] = []
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
@Input() dmpId: String;
@Input() formGroup: FormGroup
selection = new SelectionModel<Element>(true, []);
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
statuses = [
{ value: '0', viewValue: 'Active' },
{ value: '1', viewValue: 'Inactive' }
];
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
constructor(
private datasetService: DatasetService,
private router: Router,
private languageService: TranslateService,
public snackBar: MatSnackBar,
public route: ActivatedRoute,
public dataManagementPlanService: DataManagementPlanService
) {
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
}
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
ngOnInit() {
this.route.params.subscribe((params: Params) => {
if (this.dmpId != null)
if (params['dmpLabel'] != undefined)
this.titlePrefix = "for " + params['dmpLabel'];
});
let request: DataTableRequest<DatasetCriteria> = new DataTableRequest<DatasetCriteria>(null, null, null);
request.criteria = new DatasetCriteria();
request.criteria.dmpIds = [this.dmpId];
this.datasetService.getPaged(request).subscribe(items => {
this.datasets = JsonSerializer.fromJSONArray(items.data, DatasetListingModel)
})
this.formGroup.addControl("datasets", new FormBuilder().array(new Array<FormControl>()))
}
2018-02-07 10:56:30 +01:00
2018-05-28 11:50:42 +02:00
selectionChanged(event, selectedItems) {
this.formGroup.removeControl("datasets");
this.formGroup.addControl("datasets", new FormBuilder().array(new Array<FormControl>()))
selectedItems.selectedOptions.selected.forEach(element => {
(<FormArray>this.formGroup.get("datasets")).push(new FormBuilder().group({ id: element.value }))
});
}
2018-02-07 10:56:30 +01:00
}