diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2019-04-28 22:26:03 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2019-04-28 22:26:03 -0400 |
commit | bf4a6e0962264e6ce934dcc727cccef6437f7713 (patch) | |
tree | 9586f47ef674407e1dea311f9b1e22013b995ede /src/fields/TemplateField.ts | |
parent | a5ab5caa244da261814bc10f0ae88b302da93951 (diff) | |
parent | 227e8443a9fc9ca0c3f2e02e85dbd80b26a8b7b2 (diff) |
Merge remote-tracking branch 'origin/templating'
Diffstat (limited to 'src/fields/TemplateField.ts')
-rw-r--r-- | src/fields/TemplateField.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/fields/TemplateField.ts b/src/fields/TemplateField.ts new file mode 100644 index 000000000..72ae13c2e --- /dev/null +++ b/src/fields/TemplateField.ts @@ -0,0 +1,43 @@ +import { BasicField } from "./BasicField"; +import { Types } from "../server/Message"; +import { FieldId } from "./Field"; +import { Template, TemplatePosition } from "../client/views/Templates"; + + +export class TemplateField extends BasicField<Array<Template>> { + constructor(data: Array<Template> = [], id?: FieldId, save: boolean = true) { + super(data, save, id); + } + + ToScriptString(): string { + return `new TemplateField("${this.Data}")`; + } + + Copy() { + return new TemplateField(this.Data); + } + + ToJson() { + let templates: Array<{ name: string, position: TemplatePosition, layout: string }> = []; + this.Data.forEach(template => { + templates.push({ name: template.Name, layout: template.Layout, position: template.Position }); + }); + return { + type: Types.Templates, + data: templates, + id: this.Id, + }; + } + + UpdateFromServer(data: any) { + this.data = new Array(data); + } + + static FromJson(id: string, data: any): TemplateField { + let templates: Array<Template> = []; + data.forEach((template: { name: string, position: number, layout: string }) => { + templates.push(new Template(template.name, template.position, template.layout)); + }); + return new TemplateField(templates, id, false); + } +}
\ No newline at end of file |