diff options
| author | Fawn <fangrui_tong@brown.edu> | 2019-04-19 18:31:38 -0400 |
|---|---|---|
| committer | Fawn <fangrui_tong@brown.edu> | 2019-04-19 18:31:38 -0400 |
| commit | 7ceac5f7f4cc8172bde90c2d495da3779901ef84 (patch) | |
| tree | e9a054f67724f9d0c8afb3066a7d710e251368aa /src/fields | |
| parent | fbf1662304e0b3f744827710d728602af4493f25 (diff) | |
templating saves
Diffstat (limited to 'src/fields')
| -rw-r--r-- | src/fields/KeyStore.ts | 4 | ||||
| -rw-r--r-- | src/fields/TemplateField.ts | 35 |
2 files changed, 38 insertions, 1 deletions
diff --git a/src/fields/KeyStore.ts b/src/fields/KeyStore.ts index 16a909eb8..1602c3776 100644 --- a/src/fields/KeyStore.ts +++ b/src/fields/KeyStore.ts @@ -19,7 +19,9 @@ export namespace KeyStore { export const Data = new Key("Data"); export const Annotations = new Key("Annotations"); export const ViewType = new Key("ViewType"); + export const BaseLayout = new Key("BaseLayout"); export const Layout = new Key("Layout"); + export const Template = new Key("Template"); export const BackgroundColor = new Key("BackgroundColor"); export const BackgroundLayout = new Key("BackgroundLayout"); export const OverlayLayout = new Key("OverlayLayout"); @@ -49,7 +51,7 @@ export namespace KeyStore { export const CopyDraggedItems = new Key("CopyDraggedItems"); export const KeyList: Key[] = [Prototype, X, Y, Page, Title, Author, PanX, PanY, Scale, NativeWidth, NativeHeight, - Width, Height, ZIndex, Zoom, Data, Annotations, ViewType, Layout, BackgroundColor, BackgroundLayout, OverlayLayout, LayoutKeys, + Width, Height, ZIndex, Zoom, Data, Annotations, ViewType, BaseLayout, Layout, BackgroundColor, BackgroundLayout, OverlayLayout, LayoutKeys, LayoutFields, ColumnsKey, SchemaSplitPercentage, Caption, ActiveWorkspace, DocumentText, BrushingDocs, LinkedToDocs, LinkedFromDocs, LinkDescription, LinkTags, Thumbnail, ThumbnailPage, CurPage, AnnotationOn, NumPages, Ink, Cursors, OptionalRightCollection, Archives, Workspaces, Minimized, CopyDraggedItems 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 |
