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

72 lines
3.2 KiB
TypeScript

import { GrantEditorWizardModel } from "../grant-editor/grant-editor-wizard-model";
import { DmpEditorWizardModel } from "../dmp-editor/dmp-editor-wizard-model";
import { DmpModel } from "../../../core/model/dmp/dmp";
import { GrantListingModel } from "../../../core/model/grant/grant-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";
import { FunderModel } from "../../../core/model/funder/funder";
import { FunderFormModel } from "../../dmp/editor/grant-tab/funder-form-model";
import { ProjectFormModel } from "../../dmp/editor/grant-tab/project-form-model";
import { ProjectModel } from "../../../core/model/project/project";
export class QuickWizardEditorWizardModel {
public grant: GrantEditorWizardModel;
public funder: FunderFormModel;
public project: ProjectFormModel;
public dmp: DmpEditorWizardModel;
public datasets: DatasetEditorWizardModel;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
fromModelGrant(item: GrantListingModel): QuickWizardEditorWizardModel {
this.grant.fromModel(item);
return this;
}
fromModelFunder(item: FunderModel): QuickWizardEditorWizardModel {
this.funder.fromModel(item);
return this;
}
fromModelProject(item: ProjectModel): 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({
grant: new GrantEditorWizardModel().buildForm(),
funder: new FunderFormModel().buildForm(),
project: new ProjectFormModel().buildForm(),
dmp: new DmpEditorWizardModel().buildForm(),
datasets: new DatasetEditorWizardModel().buildForm()
});
return formGroup;
}
// createValidationContext(): ValidationContext {
// const baseContext: ValidationContext = new ValidationContext();
// baseContext.validation.push({ key: 'grant', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'grant')] });
// 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;
// }
}