aboutsummaryrefslogtreecommitdiff
path: root/src/fields/TemplateField.ts
diff options
context:
space:
mode:
authorFawn <fangrui_tong@brown.edu>2019-04-22 00:05:35 -0400
committerFawn <fangrui_tong@brown.edu>2019-04-22 00:05:35 -0400
commite794b4b38e8ab2f4e7a79f223f9488cc845c724f (patch)
tree1d336bd0784463ac13f6505a884d6cbea09c41be /src/fields/TemplateField.ts
parent7ceac5f7f4cc8172bde90c2d495da3779901ef84 (diff)
mutiple templates can be used
Diffstat (limited to 'src/fields/TemplateField.ts')
-rw-r--r--src/fields/TemplateField.ts22
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