Compare commits

..

2 Commits

4 changed files with 29 additions and 11 deletions

View File

@ -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.89",
"@kingsrook/qqq-frontend-core": "1.0.90",
"@mui/icons-material": "5.4.1",
"@mui/material": "5.11.1",
"@mui/styles": "5.11.1",

View File

@ -243,10 +243,10 @@ function EntityForm(props: Props): JSX.Element
switch(action)
{
case "insert":
newChildListWidgetData[widgetName].queryOutput.records.push(new QRecord({values: values}))
newChildListWidgetData[widgetName].queryOutput.records.push({values: values})
break;
case "edit":
newChildListWidgetData[widgetName].queryOutput.records[rowIndex] = new QRecord({values: values});
newChildListWidgetData[widgetName].queryOutput.records[rowIndex] = {values: values};
break;
case "delete":
newChildListWidgetData[widgetName].queryOutput.records.splice(rowIndex, 1);
@ -747,7 +747,7 @@ function EntityForm(props: Props): JSX.Element
}
associationsToPost[manageAssociationName] = [];
haveAssociationsToPost = true;
for(let i=0; i<childListWidgetData[name].queryOutput.records.length; i++)
for(let i=0; i<childListWidgetData[name].queryOutput?.records?.length; i++)
{
associationsToPost[manageAssociationName].push(childListWidgetData[name].queryOutput.records[i].values);
}
@ -759,7 +759,9 @@ function EntityForm(props: Props): JSX.Element
if (props.id !== null && !props.isCopy)
{
// todo - audit that it's a dupe
///////////////////////
// perform an update //
///////////////////////
await qController
.update(tableName, props.id, valuesToPost)
.then((record) =>
@ -770,8 +772,14 @@ function EntityForm(props: Props): JSX.Element
}
else
{
let warningMessage = null;
if(record.warnings && record.warnings.length && record.warnings.length > 0)
{
warningMessage = record.warnings[0];
}
const path = location.pathname.replace(/\/edit$/, "");
navigate(path, {state: {updateSuccess: true}});
navigate(path, {state: {updateSuccess: true, warning: warningMessage}});
}
})
.catch((error) =>
@ -793,6 +801,10 @@ function EntityForm(props: Props): JSX.Element
}
else
{
/////////////////////////////////
// perform an insert //
// todo - audit if it's a dupe //
/////////////////////////////////
await qController
.create(tableName, valuesToPost)
.then((record) =>
@ -803,10 +815,16 @@ function EntityForm(props: Props): JSX.Element
}
else
{
let warningMessage = null;
if(record.warnings && record.warnings.length && record.warnings.length > 0)
{
warningMessage = record.warnings[0];
}
const path = props.isCopy ?
location.pathname.replace(new RegExp(`/${props.id}/copy$`), "/" + record.values.get(tableMetaData.primaryKeyField))
: location.pathname.replace(/create$/, record.values.get(tableMetaData.primaryKeyField));
navigate(path, {state: {createSuccess: true}});
navigate(path, {state: {createSuccess: true, warning: warningMessage}});
}
})
.catch((error) =>

View File

@ -40,7 +40,7 @@ import {Link, useNavigate} from "react-router-dom";
export interface ChildRecordListData extends WidgetData
{
title: string;
queryOutput: {records: QRecord[]}
queryOutput: {records: {values: any}[]}
childTableMetaData: QTableMetaData;
tablePath: string;
viewAllLink: string;

View File

@ -46,8 +46,6 @@ import Menu from "@mui/material/Menu";
import MenuItem from "@mui/material/MenuItem";
import Modal from "@mui/material/Modal";
import Tooltip from "@mui/material/Tooltip/Tooltip";
import React, {useContext, useEffect, useState} from "react";
import {useLocation, useNavigate, useParams} from "react-router-dom";
import QContext from "QContext";
import colors from "qqq/assets/theme/base/colors";
import AuditBody from "qqq/components/audits/AuditBody";
@ -65,6 +63,8 @@ import Client from "qqq/utils/qqq/Client";
import ProcessUtils from "qqq/utils/qqq/ProcessUtils";
import TableUtils from "qqq/utils/qqq/TableUtils";
import ValueUtils from "qqq/utils/qqq/ValueUtils";
import React, {useContext, useEffect, useState} from "react";
import {useLocation, useNavigate, useParams} from "react-router-dom";
const qController = Client.getInstance();
@ -864,7 +864,7 @@ function RecordView({table, launchProcess}: Props): JSX.Element
}
{
warningMessage ?
<Alert color="warning" sx={{mb: 3}} onClose={() =>
<Alert color="warning" sx={{mb: 3}} icon={<Icon>warning</Icon>} onClose={() =>
{
setWarningMessage(null);
}}>