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

33 lines
1.2 KiB
TypeScript

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';
export class PageEditorModel extends BaseFormModel {
public title: string;
public id: string;
public ordinal: number;
constructor(ordinal?: number) {
super();
if (isNaN(ordinal)) { this.ordinal = 0; } else { this.ordinal = ordinal; }
this.id = Guid.create().toString();
}
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 {
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;
}
}