diff options
Diffstat (limited to 'src')
5 files changed, 41 insertions, 30 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx index 099d082d3..6d0155b45 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx @@ -7,7 +7,7 @@ import * as React from 'react'; import ReactLoading from 'react-loading'; import { ClientUtils, returnEmptyFilter, returnFalse, returnTrue, setupMoveUpEvents } from '../../../../../ClientUtils'; import { emptyFunction } from '../../../../../Utils'; -import { Doc, FieldType, NumListCast, StrListCast, returnEmptyDoclist } from '../../../../../fields/Doc'; +import { Doc, DocListCast, FieldType, NumListCast, StrListCast, returnEmptyDoclist } from '../../../../../fields/Doc'; import { Id } from '../../../../../fields/FieldSymbols'; import { Cast, DocCast, ImageCast, StrCast } from '../../../../../fields/Types'; import { ImageField } from '../../../../../fields/URLField'; @@ -34,6 +34,7 @@ import { TemplateManager } from './TemplateManager'; import { Template } from './Template'; import { Field, ViewType } from './FieldTypes/Field'; import { TabDocView } from '../../../collections/TabDocView'; +import { DocData } from '../../../../../fields/DocSymbols'; export enum LayoutType { FREEFORM = 'Freeform', @@ -74,6 +75,7 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { @observable _GPTOpt: boolean = false; @observable _callCount: number = 0; @observable _GPTLoading: boolean = false; + @observable _DOCCC: Doc | undefined; @observable _pageX: number = 0; @observable _pageY: number = 0; @@ -623,8 +625,6 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { const cols = this.fieldsInfos; templates.push(...this.templateManager.getValidTemplates(cols)); - console.log(templates) - const assignments: [Template, { [field: number]: Col }][] = await this.assignColsToFields(templates, cols); const renderedTemplatePromises: Promise<Template | undefined>[] = assignments.map(([template, assignments]) => this.applyGPTContentToTemplate(template, assignments)); @@ -735,12 +735,11 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { const processContent = async (content: {[title: string]: string}) => { - const templateCopy = template.cloneBase(); + const templateCopy = await template.cloneBase(); fields.filter(title => title).forEach(title => { const field = templateCopy.getFieldByTitle(title); if (field === undefined) return; - console.log('setting content to: ', content[title]); field.setContent(content[title], field.viewType); }); @@ -765,23 +764,20 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { await Promise.all(gptPromises); await Promise.all(imagePromises); - - return templateCopy.getRenderedDoc(); - }; - const rows = [1, 2, 3, 4]; + this._DOCCC = templateCopy.mainField.renderedDoc; + return templateCopy.mainField.renderedDoc; + }; let docs: Promise<Doc>[]; if (this.DEBUG_MODE) { - docs = rows.map(() => processContent({})); + docs = [1, 2, 3, 4].map(() => processContent({})); } else { docs = rowContents.map(content => processContent(content)); } const renderedDocs = await Promise.all(docs); - //renderedDocs.forEach(doc => {console.log(doc._height, doc._width); doc._height = 400; doc._width = 400}); - this._docsRendering = false; // removes loading indicator return renderedDocs; @@ -1035,7 +1031,6 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { applyLayout = (collection: Doc, docs: Doc[]) => { const { horizontalSpan, verticalSpan } = this.previewInfo; - console.log(this.previewInfo) collection._height = verticalSpan; collection._width = horizontalSpan; @@ -1088,11 +1083,8 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { @type the type of collection the docs should render to (ie. freeform, carousel, card) */ updateRenderedDocCollection = () => { - console.log('called'); if (!this._fullyRenderedDocs) return; - //const largerSpan: number = horizontalSpan > verticalSpan ? horizontalSpan : verticalSpan; - const collectionFactory = (): (docs: Doc[], options: DocumentOptions) => Doc => { switch (this._layout.type) { case LayoutType.CAROUSEL3D: @@ -1110,7 +1102,7 @@ export class DocCreatorMenu extends ObservableReactComponent<FieldViewProps> { } } - const collection = collectionFactory()(this._fullyRenderedDocs, { + const collection = collectionFactory()([this._fullyRenderedDocs[6], this._fullyRenderedDocs[9]], { isDefaultTemplateDoc: true, title: 'title', backgroundColor: 'gray', diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/DynamicField.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/DynamicField.tsx index c9e76dcbd..bf4f1b0a4 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/DynamicField.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/DynamicField.tsx @@ -34,9 +34,19 @@ export class DynamicField extends Field { return []; } + makeClone = async (subfields: boolean = false): Promise<Field> => { + const newSettings: FieldSettings = this.settings; + if (!subfields) newSettings.subfields = []; + const field: DynamicField = this.initField(newSettings, this.id, this.parent, true) as DynamicField; + //field.Document = (await Doc.MakeClone(this.Document)).clone; + return field + } + initializeDocument = (oldOpts?: DocumentOptions): Doc => { let doc: Doc; + //this.settings.opts.data = undefined; const renderedSubfields: Doc[] = this.subfields.map(field => field.renderedDoc); + console.log('fields: ', renderedSubfields) this.settings.opts.title = this.title; switch (this.settings.viewType) { case ViewType.CAROUSEL3D: @@ -51,7 +61,6 @@ export class DynamicField extends Field { } this.Document = doc; - console.log('width: ', doc._width, ' height: ', doc._height, ' id: ', this.idd) return doc; } diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/Field.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/Field.tsx index afdbeeadd..06b364254 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/Field.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/Field.tsx @@ -12,6 +12,7 @@ import { DocData } from "../../../../../../fields/DocSymbols"; import { ObjectField } from "../../../../../../fields/ObjectField"; import { ComputedField } from "../../../../../../fields/ScriptField"; import { Copy } from "../../../../../../fields/FieldSymbols"; +import { OmitKeys } from "../../../../../../ClientUtils"; export abstract class Field { @@ -77,11 +78,15 @@ export abstract class Field { abstract setContent(content: string, type: ViewType): void; abstract getContent(): string; - makeClone = (subfields: boolean = false): Field => { + makeClone = async (subfields: boolean = false): Promise<Field> => { const newSettings: FieldSettings = this.settings; if (!subfields) newSettings.subfields = []; newSettings.opts = this.documentOptions; - return this.initField(newSettings, this.id, this.parent, true); + newSettings.title = this.title; + console.log('settings: ', newSettings.opts) + const field: Field = this.initField(newSettings, this.id, this.parent, true); + //field.Document = (await Doc.MakeClone(this.Document)).clone; + return field } @computed get documentOptions(): DocumentOptions { @@ -123,6 +128,7 @@ export abstract class Field { addField = (field: Field) => { if (!this.subfields.includes(field)){ this.subfields.push(field); + console.log('field added') // Doc.SetContainer(field.Document, this.Document); } } diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/StaticContentField.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/StaticContentField.tsx index 8b28d82e1..18b72e4ea 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/StaticContentField.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/FieldTypes/StaticContentField.tsx @@ -7,6 +7,7 @@ import { ImageField } from "../../../../../../fields/URLField"; import { ViewComponentType } from "@fullcalendar/core"; import { DynamicField } from "./DynamicField"; import { FieldUtils } from "./FieldUtils"; +import { random } from "lodash"; export abstract class StaticContentField extends Field { @@ -15,10 +16,13 @@ export abstract class StaticContentField extends Field { protected Document: Doc; + protected idd: number; + constructor(settings: FieldSettings, id: number, parent: Field) { super(settings, id, FieldUtils.initField, parent); this.subfields = this.setupSubfields(this); this.Document = this.initializeDocument(); + this.idd = random(0, 1000); }; abstract setContent(content: string, type?: ViewType): void; diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx index 43f622512..0f911421a 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx @@ -32,22 +32,22 @@ export class Template { //dispose each subfields disposers, etc. } - cloneBase = (): Template => { - const makeCloneFieldTree = (field: Field): Field => { - const root: Field = field.makeClone(); - field.getSubfields.forEach(field => { - const clone: Field = makeCloneFieldTree(field); + cloneBase = async (): Promise<Template> => { + const makeCloneFieldTree = async (field: Field): Promise<Field> => { + const root: Field = await field.makeClone(); + field.getSubfields.forEach(async field => { + const clone: Field = await makeCloneFieldTree(field); root.addField(clone); }); return root; } const clone: Template = new Template(TemplateLayouts.BasicSettings); - console.log('made clone') - clone.mainField = makeCloneFieldTree(this.mainField) as DynamicField; - console.log('reinit') - clone.mainField.initializeDocument(clone.mainField.documentOptions); - console.log('cloned, fieldinfo: ', this.mainField, ' width: ', this.mainField.renderedDoc._width, ' options width: ', clone.mainField.documentOptions._width); + clone.mainField = await makeCloneFieldTree(this.mainField) as DynamicField; + console.log('last init') + clone.mainField.initializeDocument(); + clone.mainField.renderedDoc._width = this.mainField.renderedDoc._width; + clone.mainField.renderedDoc._height = this.mainField.renderedDoc._height; return clone; } |