From 48ebcb63c09e1b586d2e32704474a62d1aa3b47a Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 30 May 2023 10:20:01 -0500 Subject: [PATCH] Updates for supporting blobs --- package.json | 2 +- src/qqq/components/audits/AuditBody.tsx | 4 ++ src/qqq/components/forms/DynamicForm.tsx | 29 +++++++++++++- src/qqq/components/forms/EntityForm.tsx | 35 ++++++++++++----- .../records/query/GridFilterOperators.tsx | 14 +++++++ src/qqq/styles/qqq-override-styles.css | 9 ++++- src/qqq/utils/DataGridUtils.tsx | 10 ++--- src/qqq/utils/qqq/ValueUtils.tsx | 39 +++++++++++-------- 8 files changed, 108 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index a3935cc..df1703b 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "@auth0/auth0-react": "1.10.2", "@emotion/react": "11.7.1", "@emotion/styled": "11.6.0", - "@kingsrook/qqq-frontend-core": "1.0.67", + "@kingsrook/qqq-frontend-core": "1.0.68", "@mui/icons-material": "5.4.1", "@mui/material": "5.11.1", "@mui/styles": "5.11.1", diff --git a/src/qqq/components/audits/AuditBody.tsx b/src/qqq/components/audits/AuditBody.tsx index 072f277..f98d540 100644 --- a/src/qqq/components/audits/AuditBody.tsx +++ b/src/qqq/components/audits/AuditBody.tsx @@ -108,6 +108,10 @@ function AuditBody({tableMetaData, recordId, record}: Props): JSX.Element { return (<>{fieldLabel}: Removed value {(oldValue)}); } + else if(message) + { + return (<>{message}); + } /* const fieldLabel = {tableMetaData?.fields?.get(fieldName)?.label ?? fieldName}; diff --git a/src/qqq/components/forms/DynamicForm.tsx b/src/qqq/components/forms/DynamicForm.tsx index 13eafb3..d98ecd2 100644 --- a/src/qqq/components/forms/DynamicForm.tsx +++ b/src/qqq/components/forms/DynamicForm.tsx @@ -19,15 +19,20 @@ * along with this program. If not, see . */ -import {colors} from "@mui/material"; +import {QFieldMetaData} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QFieldMetaData"; +import {QFieldType} from "@kingsrook/qqq-frontend-core/lib/model/metaData/QFieldType"; +import {QRecord} from "@kingsrook/qqq-frontend-core/lib/model/QRecord"; +import {colors, Icon, InputLabel} from "@mui/material"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Grid from "@mui/material/Grid"; +import Tooltip from "@mui/material/Tooltip"; import {useFormikContext} from "formik"; import React, {useState} from "react"; import QDynamicFormField from "qqq/components/forms/DynamicFormField"; import DynamicSelect from "qqq/components/forms/DynamicSelect"; import MDTypography from "qqq/components/legacy/MDTypography"; +import ValueUtils from "qqq/utils/qqq/ValueUtils"; interface Props { @@ -35,6 +40,7 @@ interface Props formData: any; bulkEditMode?: boolean; bulkEditSwitchChangeHandler?: any; + record?: QRecord; } function QDynamicForm(props: Props): JSX.Element @@ -60,6 +66,14 @@ function QDynamicForm(props: Props): JSX.Element formikProps.setFieldValue(field.name, event.currentTarget.files[0]); }; + const removeFile = (fieldName: string) => + { + setFileName(null); + formikProps.setFieldValue(fieldName, null); + props.record?.values.delete(fieldName) + props.record?.displayValues.delete(fieldName) + }; + const bulkEditSwitchChanged = (name: string, value: boolean) => { bulkEditSwitchChangeHandler(name, value); @@ -94,10 +108,23 @@ function QDynamicForm(props: Props): JSX.Element if (field.type === "file") { + const pseudoField = new QFieldMetaData({name: fieldName, type: QFieldType.BLOB}); return ( + {field.label} + { + props.record && props.record.values.get(fieldName) && + Current File: + + {ValueUtils.getDisplayValue(pseudoField, props.record, "view")} + + removeFile(fieldName)}>delete + + + + }