diff --git a/src/qqq/components/widgets/DashboardWidgets.tsx b/src/qqq/components/widgets/DashboardWidgets.tsx index 6c5ab04..0b51736 100644 --- a/src/qqq/components/widgets/DashboardWidgets.tsx +++ b/src/qqq/components/widgets/DashboardWidgets.tsx @@ -19,13 +19,13 @@ */ import {QWidgetMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QWidgetMetaData"; +import {QRecord} from "@kingsrook/qqq-frontend-core/lib/model/QRecord"; import {Skeleton} from "@mui/material"; import Box from "@mui/material/Box"; import Grid from "@mui/material/Grid"; import Tab from "@mui/material/Tab"; import Tabs from "@mui/material/Tabs"; import parse from "html-react-parser"; -import React, {useContext, useEffect, useReducer, useState} from "react"; import QContext from "QContext"; import MDTypography from "qqq/components/legacy/MDTypography"; import TabPanel from "qqq/components/misc/TabPanel"; @@ -39,18 +39,21 @@ import CompositeWidget from "qqq/components/widgets/CompositeWidget"; import DataBagViewer from "qqq/components/widgets/misc/DataBagViewer"; import DividerWidget from "qqq/components/widgets/misc/Divider"; import FieldValueListWidget from "qqq/components/widgets/misc/FieldValueListWidget"; +import PivotTableSetupWidget from "qqq/components/widgets/misc/PivotTableSetupWidget"; import QuickSightChart from "qqq/components/widgets/misc/QuickSightChart"; import RecordGridWidget from "qqq/components/widgets/misc/RecordGridWidget"; +import ReportSetupWidget from "qqq/components/widgets/misc/ReportSetupWidget"; import ScriptViewer from "qqq/components/widgets/misc/ScriptViewer"; import StepperCard from "qqq/components/widgets/misc/StepperCard"; import USMapWidget from "qqq/components/widgets/misc/USMapWidget"; import ParentWidget from "qqq/components/widgets/ParentWidget"; import MultiStatisticsCard from "qqq/components/widgets/statistics/MultiStatisticsCard"; import StatisticsCard from "qqq/components/widgets/statistics/StatisticsCard"; -import Widget, {HeaderIcon, WIDGET_DROPDOWN_SELECTION_LOCAL_STORAGE_KEY_ROOT, LabelComponent} from "qqq/components/widgets/Widget"; +import Widget, {HeaderIcon, LabelComponent, WIDGET_DROPDOWN_SELECTION_LOCAL_STORAGE_KEY_ROOT} from "qqq/components/widgets/Widget"; import WidgetBlock from "qqq/components/widgets/WidgetBlock"; import ProcessRun from "qqq/pages/processes/ProcessRun"; import Client from "qqq/utils/qqq/Client"; +import React, {useContext, useEffect, useReducer, useState} from "react"; import TableWidget from "./tables/TableWidget"; @@ -61,6 +64,7 @@ interface Props widgetMetaDataList: QWidgetMetaData[]; tableName?: string; entityPrimaryKey?: string; + record?: QRecord; omitWrappingGridContainer: boolean; areChildren?: boolean; childUrlParams?: string; @@ -79,7 +83,7 @@ DashboardWidgets.defaultProps = { wrapWidgetsInTabPanels: false, }; -function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omitWrappingGridContainer, areChildren, childUrlParams, parentWidgetMetaData, wrapWidgetsInTabPanels}: Props): JSX.Element +function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, record, omitWrappingGridContainer, areChildren, childUrlParams, parentWidgetMetaData, wrapWidgetsInTabPanels}: Props): JSX.Element { const [widgetData, setWidgetData] = useState([] as any[]); const [widgetCounter, setWidgetCounter] = useState(0); @@ -248,6 +252,23 @@ function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omit const widgetCount = widgetMetaDataList ? widgetMetaDataList.length : 0; + + /******************************************************************************* + ** helper function, to convert values from a QRecord values map to a regular old + ** js object + *******************************************************************************/ + function convertQRecordValuesFromMapToObject(record: QRecord): {[name: string]: any} + { + const rs: {[name: string]: any} = {}; + + if(record.values) + { + record.values.forEach((value, key) => rs[key] = value); + } + + return (rs); + } + const renderWidget = (widgetMetaData: QWidgetMetaData, i: number): JSX.Element => { const labelAdditionalComponentsRight: LabelComponent[] = []; @@ -546,6 +567,20 @@ function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omit ) } + { + widgetMetaData.type === "reportSetup" && ( + widgetData && widgetData[i] && widgetData[i].queryParams && + + {}} /> + ) + } + { + widgetMetaData.type === "pivotTableSetup" && ( + widgetData && widgetData[i] && widgetData[i].queryParams && + + {}} /> + ) + } ); };