aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/documents/Documents.ts2
-rw-r--r--src/client/views/DocumentDecorations.scss31
-rw-r--r--src/client/views/DocumentDecorations.tsx2
-rw-r--r--src/client/views/TemplateMenu.tsx15
-rw-r--r--src/client/views/Templates.tsx2
-rw-r--r--src/client/views/nodes/DocumentView.tsx24
6 files changed, 24 insertions, 52 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 6ca2567dc..0333f4673 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -48,7 +48,7 @@ export interface DocumentOptions {
scale?: number;
baseLayout?: string;
layout?: string;
- //templates?: Array<Template>;
+ templates?: List<string>;
viewType?: number;
backgroundColor?: string;
copyDraggedItems?: boolean;
diff --git a/src/client/views/DocumentDecorations.scss b/src/client/views/DocumentDecorations.scss
index ecddb8b06..158b02b5a 100644
--- a/src/client/views/DocumentDecorations.scss
+++ b/src/client/views/DocumentDecorations.scss
@@ -105,37 +105,6 @@ $linkGap : 3px;
opacity: 0.1;
}
-// position: absolute;
-// display: grid;
-// z-index: 1000;
-// grid-template-rows: 20px 1fr 20px 0px;
-// grid-template-columns: 20px 1fr 20px;
-// pointer-events: none;
-// #documentDecorations-centerCont {
-// background: none;
-// }
-// .documentDecorations-resizer {
-// pointer-events: auto;
-// background: lightblue;
-// opacity: 0.4;
-// }
-// #documentDecorations-topLeftResizer,
-// #documentDecorations-bottomRightResizer {
-// cursor: nwse-resize;
-// }
-// #documentDecorations-topRightResizer,
-// #documentDecorations-bottomLeftResizer {
-// cursor: nesw-resize;
-// }
-// #documentDecorations-topResizer,
-// #documentDecorations-bottomResizer {
-// cursor: ns-resize;
-// }
-// #documentDecorations-leftResizer,
-// #documentDecorations-rightResizer {
-// cursor: ew-resize;
-// }
-// }
.linkFlyout {
grid-column: 2/4;
margin-top: $linkGap;
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index a6c7f9718..7dcd71495 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -518,7 +518,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
let docTemps = doc.templates;
let checked = false;
docTemps.forEach(temp => {
- if (template.Name === temp.Name) {
+ if (template.Layout === temp) {
checked = true;
}
});
diff --git a/src/client/views/TemplateMenu.tsx b/src/client/views/TemplateMenu.tsx
index 8eb2fc6c6..7be846e05 100644
--- a/src/client/views/TemplateMenu.tsx
+++ b/src/client/views/TemplateMenu.tsx
@@ -1,4 +1,4 @@
-import { observable, computed, action } from "mobx";
+import { observable, computed, action, trace } from "mobx";
import React = require("react");
import { observer } from "mobx-react";
import './DocumentDecorations.scss';
@@ -33,23 +33,24 @@ export interface TemplateMenuProps {
export class TemplateMenu extends React.Component<TemplateMenuProps> {
@observable private _hidden: boolean = true;
- @observable private _templates: Map<Template, boolean> = this.props.templates;
@action
toggleTemplate = (event: React.ChangeEvent<HTMLInputElement>, template: Template): void => {
if (event.target.checked) {
this.props.doc.addTemplate(template);
- this._templates.set(template, true);
+ this.props.templates.set(template, true);
+ this.props.templates.forEach((checked, template) => console.log("Set Checked + " + checked + " " + this.props.templates.get(template)));
} else {
this.props.doc.removeTemplate(template);
- this._templates.set(template, false);
+ this.props.templates.set(template, false);
+ this.props.templates.forEach((checked, template) => console.log("Unset Checked + " + checked + " " + this.props.templates.get(template)));
}
}
@action
componentWillReceiveProps(nextProps: TemplateMenuProps) {
- this._templates = nextProps.templates;
+ // this._templates = nextProps.templates;
}
@action
@@ -58,8 +59,10 @@ export class TemplateMenu extends React.Component<TemplateMenuProps> {
}
render() {
+ trace();
let templateMenu: Array<JSX.Element> = [];
- this._templates.forEach((checked, template) => {
+ this.props.templates.forEach((checked, template) => {
+ console.log("checked + " + checked + " " + this.props.templates.get(template));
templateMenu.push(<TemplateToggle key={template.Name} template={template} checked={checked} toggle={this.toggleTemplate} />);
});
diff --git a/src/client/views/Templates.tsx b/src/client/views/Templates.tsx
index 5b7e8da63..25d89772e 100644
--- a/src/client/views/Templates.tsx
+++ b/src/client/views/Templates.tsx
@@ -51,7 +51,7 @@ export namespace Templates {
);
export const Title = new Template("Title", TemplatePosition.InnerTop,
- `<div><div style="height:100%; width:100%;position:absolute;">{layout}</div><div style="height:25px; width:100%; position:absolute; top: 0; background-color: rgba(0, 0, 0, .4); color: white; padding:2px 10px">{Document.title}</div></div>`
+ `<div><div style="height:100%; width:100%;position:absolute;">{layout}</div><div style="height:25px; width:100%; position:absolute; top: 0; background-color: rgba(0, 0, 0, .4); color: white; padding:2px 10px">{props.Document.title}</div></div>`
);
export const TemplateList: Template[] = [Title, OuterCaption, InnerCaption, SideCaption];
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index b35d68c4b..ae2d3af13 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -87,12 +87,14 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
public get ContentDiv() { return this._mainCont.current; }
@computed get active(): boolean { return SelectionManager.IsSelected(this) || this.props.parentActive(); }
@computed get topMost(): boolean { return this.props.isTopMost; }
- @computed get templates(): Array<Template> {
- return new Array<Template>();
- // let field = this.props.Document[KeyStore.Templates];
- // return !field || field === FieldWaiting ? [] : field.Data;
+ @computed get templates(): List<string> {
+ let field = this.props.Document.templates;
+ if (field && field instanceof List) {
+ return field;
+ }
+ return new List<string>();
}
- set templates(templates: Array<Template>) { /* this.props.Document.templates = templates;*/ }
+ set templates(templates: List<string>) { this.props.Document.templates = templates; }
screenRect = (): ClientRect | DOMRect => this._mainCont.current ? this._mainCont.current.getBoundingClientRect() : new DOMRect();
@action
@@ -248,8 +250,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
let layout = baseLayout;
this.templates.forEach(template => {
- let temp = template.Layout;
- layout = temp.replace("{layout}", base);
+ layout = template.replace("{layout}", base);
base = layout;
});
@@ -260,9 +261,8 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
@action
addTemplate = (template: Template) => {
let templates = this.templates;
- templates.push(template);
- templates = templates.splice(0, templates.length).sort(Templates.sortTemplates);
- this.templates = templates;
+ templates.push(template.Layout);
+ this.templates = new List<string>(templates.map(t => t));
this.updateLayout();
}
@@ -271,12 +271,12 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
let templates = this.templates;
for (let i = 0; i < templates.length; i++) {
let temp = templates[i];
- if (temp.Name === template.Name) {
+ if (temp === template.Layout) {
templates.splice(i, 1);
break;
}
}
- templates = templates.splice(0, templates.length).sort(Templates.sortTemplates);
+ templates = new List<string>(templates.splice(0, templates.length));
this.templates = templates;
this.updateLayout();
}