aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan-SR <144961007+Nathan-SR@users.noreply.github.com>2024-07-08 14:07:26 -0400
committerNathan-SR <144961007+Nathan-SR@users.noreply.github.com>2024-07-08 14:07:26 -0400
commit77d76c1a7e88b3ad4b72c4cd6aa4d4772042b65d (patch)
treeca7cc6df9b684540145e1c7b07df0673a259f1bb /src
parentbb890c23b367374d9da7eb10d879ebbf48dc4e77 (diff)
method in dataviz for identifying valid templates (WIP); option added to contextmenu to create docs from dataViz
Diffstat (limited to 'src')
-rw-r--r--src/client/views/nodes/DataVizBox/DataVizBox.tsx23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/client/views/nodes/DataVizBox/DataVizBox.tsx b/src/client/views/nodes/DataVizBox/DataVizBox.tsx
index 4d5f15a3e..1cb1ad6af 100644
--- a/src/client/views/nodes/DataVizBox/DataVizBox.tsx
+++ b/src/client/views/nodes/DataVizBox/DataVizBox.tsx
@@ -32,6 +32,8 @@ import { Histogram } from './components/Histogram';
import { LineChart } from './components/LineChart';
import { PieChart } from './components/PieChart';
import { TableBox } from './components/TableBox';
+import { LinkManager } from '../../../util/LinkManager';
+import { Collection } from 'mongoose';
export enum DataVizView {
TABLE = 'table',
@@ -431,6 +433,7 @@ export class DataVizBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
const options = cm.findByDescription('Options...');
const optionItems = options && 'subitems' in options ? options.subitems : [];
optionItems.push({ description: `Analyze with AI`, event: () => this.askGPT(), icon: 'lightbulb' });
+ optionItems.push({ description: `Create documents`, event: () => this.askGPT(), icon: 'table-cells' });
!options && cm.addItem({ description: 'Options...', subitems: optionItems, icon: 'eye' });
};
@@ -445,6 +448,26 @@ export class DataVizBox extends ViewBoxAnnotatableComponent<FieldViewProps>() {
GPTPopup.Instance.generateDataAnalysis();
});
+ getPossibleTemplates = (): Doc[] => {
+ const linkedDocs: Doc[] = LinkManager.Instance.getAllRelatedLinks(this.Document).map(d => DocCast(LinkManager.getOppositeAnchor(d, this.Document)));
+ const linkedCollections: Doc[] = linkedDocs.filter(doc => doc.type === 'collection');
+ const isColumnTitle = (title: string): boolean => {
+ const colTitles: string[] = Object.keys(this.records[0]);
+ for (let i = 0; i < colTitles.length; ++i){
+ if (colTitles[i] === title) return true;
+ }
+ return false;
+ }
+ const isValidTemplate = (collection: Doc) => {
+ const childDocs = DocListCast(collection[Doc.LayoutFieldKey(collection)]);
+ for (let i = 0; i < childDocs.length; ++i){
+ if (isColumnTitle(String(childDocs[i].title))) return true;
+ }
+ return false;
+ }
+ return linkedCollections.filter(col => isValidTemplate(col));
+ }
+
/**
* creates a new dataviz document filter from this one
* it appears to the right of this document, with the