109 lines
4.2 KiB
TypeScript
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;
|
|
}
|
|
|
|
|
|
} |