argos/dmp-frontend/src/app/ui/quick-wizard/dataset-editor/dataset-editor-wizard.compo...

109 lines
4.2 KiB
TypeScript

import { Component, Input, OnInit } from "@angular/core";
import { FormArray, FormGroup } from "@angular/forms";
import { Observable } from "rxjs";
import { takeUntil } from "rxjs/operators";
import { BaseComponent } from "../../../core/common/base/base.component";
import { DatasetProfileModel } from "../../../core/model/dataset/dataset-profile";
import { DatasetWizardService } from "../../../core/services/dataset-wizard/dataset-wizard.service";
import { DatasetWizardEditorModel } from "../../dataset/dataset-wizard/dataset-wizard-editor.model";
import { BreadcrumbItem } from "../../misc/breadcrumb/definition/breadcrumb-item";
import { IBreadCrumbComponent } from "../../misc/breadcrumb/definition/IBreadCrumbComponent";
import { DatasetDescriptionFormEditorModel } from "../../misc/dataset-description-form/dataset-description-form.model";
import { QuickWizardDatasetDescriptionModel } from "./quick-wizard-dataset-description-model";
import { IfStmt } from "@angular/compiler";
import { TranslateService } from "@ngx-translate/core";
@Component({
selector: 'app-dataset-editor-wizard-component',
templateUrl: 'dataset-editor-wizard.component.html',
styleUrls: ['./dataset-editor-wizard.component.scss']
})
export class DatasetEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]>;
@Input() formGroup: FormGroup;
@Input() datasetProfile: FormGroup;// DatasetProfileModel;
@Input() datasetLabel: string;
editedDataset: boolean = false;
dataset: DatasetDescriptionFormEditorModel;
public datasetProfileDefinition: DatasetDescriptionFormEditorModel;
public lastIndexOfDataset = 0;
public toggleButton = 0;
public _inputValue: string;
constructor(
private datasetWizardService: DatasetWizardService,
public language: TranslateService,
) {
super();
}
ngOnInit(): void {
this.datasetWizardService.getDefinition(this.datasetProfile.value["id"])
.pipe(takeUntil(this._destroyed))
.subscribe(item => {
this.datasetProfileDefinition = new DatasetDescriptionFormEditorModel().fromModel(item);
this.onValChange("list");
const length = (this.formGroup.get('datasets').get('datasetsList') as FormArray).length;
if (length == 0) {
this.lastIndexOfDataset = length;
this.addDataset();
this.onValChange("dataset");
}
});
}
onValChange(event: any) {
if (event == "list") {
this.toggleButton = 0;
this.editedDataset = false;
this._inputValue = "list";
} else if (event == "add") {
this.addDataset();
this.toggleButton = 2;
this._inputValue = "dataset";
} else if (event == "dataset") {
this.toggleButton = 2;
this._inputValue = "dataset";
}
}
editDataset(index: number) {
this.lastIndexOfDataset = index;
this.toggleButton = 2;
this.editedDataset = true;
this._inputValue = "dataset"
}
deleteDataset(index: number) {//TODO: delete Dataset From List
this.lastIndexOfDataset = index;
this.toggleButton = 0;
this.editedDataset = false;
this._inputValue = "list";
(this.formGroup.get('datasets').get('datasetsList') as FormArray).removeAt(index);
}
addDataset() {
const formArray: FormArray = (this.formGroup.get('datasets').get('datasetsList') as FormArray);
let dataset = new QuickWizardDatasetDescriptionModel().fromModel(this.datasetProfileDefinition);
let formGroup = dataset.buildForm();
formGroup.get('datasetLabel').setValue(
this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.THIRD-STEP.DATASET-NAME') +
this.datasetProfile.value["label"] +
this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.THIRD-STEP.DATASET-NAME-FOR') +
this.datasetLabel);
formArray.push(formGroup);
this.lastIndexOfDataset = formArray.length - 1;
this.editedDataset = true;
}
}