argos/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model.ts

54 lines
2.6 KiB
TypeScript

import { ProjectEditorWizardModel } from "../project-editor/project-editor-wizard-model";
import { DmpEditorWizardModel } from "../dmp-editor/dmp-editor-wizard-model";
import { DmpModel } from "../../../core/model/dmp/dmp";
import { ProjectListingModel } from "../../../core/model/project/project-listing";
import { DatasetModel } from "../../../core/model/dataset/dataset";
import { ValidationContext } from "../../../common/forms/validation/validation-context";
import { FormGroup, FormBuilder, Validators } from "@angular/forms";
import { BackendErrorValidator } from "../../../common/forms/validation/custom-validator";
import { ValidationErrorModel } from "../../../common/forms/validation/error-model/validation-error-model";
import { DatasetEditorWizardModel } from "../dataset-editor/dataset-editor-wizard-model";
import { DatasetWizardEditorModel } from "../../dataset/dataset-wizard/dataset-wizard-editor.model";
export class QuickWizardEditorWizardModel {
public project: ProjectEditorWizardModel;
public dmp: DmpEditorWizardModel;
public datasets: DatasetEditorWizardModel;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
fromModelProject(item: ProjectListingModel): QuickWizardEditorWizardModel {
this.project.fromModel(item);
return this;
}
fromModelDmp(item: DmpModel): QuickWizardEditorWizardModel {
this.dmp.fromModel(item);
return this;
}
fromModelDataset(item: DatasetWizardEditorModel[]): QuickWizardEditorWizardModel {
this.datasets.fromModel(item);
return this;
}
buildForm(context: ValidationContext = null): FormGroup {
// if (context == null) { context = this.createValidationContext(); }
const formGroup = new FormBuilder().group({
project: new ProjectEditorWizardModel().buildForm(),
dmp: new DmpEditorWizardModel().buildForm(),
datasets: new DatasetEditorWizardModel().buildForm()
});
return formGroup;
}
// createValidationContext(): ValidationContext {
// const baseContext: ValidationContext = new ValidationContext();
// baseContext.validation.push({ key: 'project', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'project')] });
// baseContext.validation.push({ key: 'dmp', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'dmp')] });
// baseContext.validation.push({ key: 'datasets', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'datasets')] });
// return baseContext;
// }
}