diff options
author | Fawn <fangrui_tong@brown.edu> | 2019-04-22 00:05:35 -0400 |
---|---|---|
committer | Fawn <fangrui_tong@brown.edu> | 2019-04-22 00:05:35 -0400 |
commit | e794b4b38e8ab2f4e7a79f223f9488cc845c724f (patch) | |
tree | 1d336bd0784463ac13f6505a884d6cbea09c41be /src/fields/TemplateField.ts | |
parent | 7ceac5f7f4cc8172bde90c2d495da3779901ef84 (diff) |
mutiple templates can be used
Diffstat (limited to 'src/fields/TemplateField.ts')
-rw-r--r-- | src/fields/TemplateField.ts | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/fields/TemplateField.ts b/src/fields/TemplateField.ts index bc1e67d7b..72ae13c2e 100644 --- a/src/fields/TemplateField.ts +++ b/src/fields/TemplateField.ts @@ -1,11 +1,11 @@ import { BasicField } from "./BasicField"; import { Types } from "../server/Message"; import { FieldId } from "./Field"; -import { Template, Templates } from "../client/views/Templates"; +import { Template, TemplatePosition } from "../client/views/Templates"; -export class TemplateField extends BasicField<Template> { - constructor(data: Template = Templates.BasicLayout, id?: FieldId, save: boolean = true) { +export class TemplateField extends BasicField<Array<Template>> { + constructor(data: Array<Template> = [], id?: FieldId, save: boolean = true) { super(data, save, id); } @@ -18,18 +18,26 @@ export class TemplateField extends BasicField<Template> { } 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.Template, - data: this.Data, + type: Types.Templates, + data: templates, id: this.Id, }; } UpdateFromServer(data: any) { - this.data = new Template(data.Name, data.layout); + this.data = new Array(data); } static FromJson(id: string, data: any): TemplateField { - return new TemplateField(new Template(data._name, data._layout), id, false); + 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 |