argos/dmp-frontend/src/app/ui/admin/dataset-profile/admin/page-editor-model.ts

33 lines
1.2 KiB
TypeScript
Raw Normal View History

import { FormGroup, Validators } from '@angular/forms';
import { Page } from '@app/core/model/admin/dataset-profile/dataset-profile';
import { BaseFormModel } from '@app/core/model/base-form-model';
import { Guid } from '@common/types/guid';
2019-01-18 18:03:45 +01:00
export class PageEditorModel extends BaseFormModel {
public title: string;
public id: string;
public ordinal: number;
constructor(ordinal?: number) {
super();
2018-10-05 17:00:54 +02:00
if (isNaN(ordinal)) { this.ordinal = 0; } else { this.ordinal = ordinal; }
this.id = Guid.create().toString();
}
2019-01-18 18:03:45 +01:00
fromModel(item: Page): PageEditorModel {
this.title = item.title;
this.id = item.id;
this.ordinal = item.ordinal;
return this;
}
buildForm(disabled: boolean = false, skipDisable: Array<String> = []): FormGroup {
2018-10-05 17:00:54 +02:00
const formGroup = this.formBuilder.group({
title: [{ value: this.title, disabled: (disabled && !skipDisable.includes('PageEditorModel.title')) }, [Validators.required]],
id: [{ value: this.id, disabled: (disabled && !skipDisable.includes('PageEditorModel.id')) }, [Validators.required]],
ordinal: [{ value: this.ordinal, disabled: (disabled && !skipDisable.includes('PageEditorModel.ordinal')) }]
});
return formGroup;
}
2018-10-05 17:00:54 +02:00
}