diff options
Diffstat (limited to 'src/fields/TemplateField.ts')
-rw-r--r-- | src/fields/TemplateField.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/fields/TemplateField.ts b/src/fields/TemplateField.ts new file mode 100644 index 000000000..bc1e67d7b --- /dev/null +++ b/src/fields/TemplateField.ts @@ -0,0 +1,35 @@ +import { BasicField } from "./BasicField"; +import { Types } from "../server/Message"; +import { FieldId } from "./Field"; +import { Template, Templates } from "../client/views/Templates"; + + +export class TemplateField extends BasicField<Template> { + constructor(data: Template = Templates.BasicLayout, id?: FieldId, save: boolean = true) { + super(data, save, id); + } + + ToScriptString(): string { + return `new TemplateField("${this.Data}")`; + } + + Copy() { + return new TemplateField(this.Data); + } + + ToJson() { + return { + type: Types.Template, + data: this.Data, + id: this.Id, + }; + } + + UpdateFromServer(data: any) { + this.data = new Template(data.Name, data.layout); + } + + static FromJson(id: string, data: any): TemplateField { + return new TemplateField(new Template(data._name, data._layout), id, false); + } +}
\ No newline at end of file |