aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts')
-rw-r--r--src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
index 7ff521f18..fae0d06e4 100644
--- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
+++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
@@ -10,8 +10,6 @@ import { Doc } from '../../../../../fields/Doc';
export class Template {
_mainField: DynamicField;
- private conditionalLogic: Record<string, Conditional[]> = {};
-
/**
* A Template can be created from a description of its fields (FieldSettings) or from a DynamicField
* @param definition definition of template as settings or DynamicField
@@ -84,11 +82,11 @@ export class Template {
return maxMatches === this.contentFields.length && this.title !== 'template_framework';
};
- applyConditionalLogicToField = (field: TemplateField) => {
+ applyConditionalLogicToField = (field: TemplateField, logic: Record<string, Conditional[]>) => {
if (field instanceof DynamicField) return;
- const logic: Conditional[] = this.conditionalLogic[field.getTitle()];
+ const fieldStatements: Conditional[] = logic[field.getTitle()];
const content = field.getContent()
- logic && logic.forEach(statement => {
+ fieldStatements && fieldStatements.forEach(statement => {
if (content === statement.condition) {
if (statement.target === 'template') {
this._mainField.renderedDoc![statement.attribute] = statement.value;
@@ -99,17 +97,10 @@ export class Template {
})
}
- applyConditionalLogic = () => {
- const fields: TemplateField[] = [this._mainField, ...this.allFields];
- fields.forEach(this.applyConditionalLogicToField);
- }
-
- addConditionalStatement = (field: string, statement: Conditional) => {
- !this.conditionalLogic[field] ? this.conditionalLogic[field] = [statement] : this.conditionalLogic[field].push(statement);
- }
-
- removeConditionalStatement = (field: string, statement: Conditional) => {
- this.conditionalLogic[field] = this.conditionalLogic[field]?.filter(cond => cond !== statement);
+ applyConditionalLogic = (logic: Record<string, Conditional[]>) => {
+ console.log('applying logic: ', logic)
+ const fields: TemplateField[] = [...this.allFields];
+ fields.forEach(field => this.applyConditionalLogicToField(field, logic));
}
setImageAsBackground(url: string, makeTransparent: boolean = false) {