mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-22 15:18:44 +00:00
Compare commits
2 Commits
snapshot-f
...
snapshot-i
Author | SHA1 | Date | |
---|---|---|---|
84e627467f | |||
6c524c4eca |
@ -6,7 +6,7 @@
|
|||||||
"@auth0/auth0-react": "1.10.2",
|
"@auth0/auth0-react": "1.10.2",
|
||||||
"@emotion/react": "11.7.1",
|
"@emotion/react": "11.7.1",
|
||||||
"@emotion/styled": "11.6.0",
|
"@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/icons-material": "5.4.1",
|
||||||
"@mui/material": "5.11.1",
|
"@mui/material": "5.11.1",
|
||||||
"@mui/styles": "5.11.1",
|
"@mui/styles": "5.11.1",
|
||||||
|
@ -243,10 +243,10 @@ function EntityForm(props: Props): JSX.Element
|
|||||||
switch(action)
|
switch(action)
|
||||||
{
|
{
|
||||||
case "insert":
|
case "insert":
|
||||||
newChildListWidgetData[widgetName].queryOutput.records.push(new QRecord({values: values}))
|
newChildListWidgetData[widgetName].queryOutput.records.push({values: values})
|
||||||
break;
|
break;
|
||||||
case "edit":
|
case "edit":
|
||||||
newChildListWidgetData[widgetName].queryOutput.records[rowIndex] = new QRecord({values: values});
|
newChildListWidgetData[widgetName].queryOutput.records[rowIndex] = {values: values};
|
||||||
break;
|
break;
|
||||||
case "delete":
|
case "delete":
|
||||||
newChildListWidgetData[widgetName].queryOutput.records.splice(rowIndex, 1);
|
newChildListWidgetData[widgetName].queryOutput.records.splice(rowIndex, 1);
|
||||||
@ -747,7 +747,7 @@ function EntityForm(props: Props): JSX.Element
|
|||||||
}
|
}
|
||||||
associationsToPost[manageAssociationName] = [];
|
associationsToPost[manageAssociationName] = [];
|
||||||
haveAssociationsToPost = true;
|
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);
|
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)
|
if (props.id !== null && !props.isCopy)
|
||||||
{
|
{
|
||||||
// todo - audit that it's a dupe
|
///////////////////////
|
||||||
|
// perform an update //
|
||||||
|
///////////////////////
|
||||||
await qController
|
await qController
|
||||||
.update(tableName, props.id, valuesToPost)
|
.update(tableName, props.id, valuesToPost)
|
||||||
.then((record) =>
|
.then((record) =>
|
||||||
@ -770,8 +772,14 @@ function EntityForm(props: Props): JSX.Element
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
let warningMessage = null;
|
||||||
|
if(record.warnings && record.warnings.length && record.warnings.length > 0)
|
||||||
|
{
|
||||||
|
warningMessage = record.warnings[0];
|
||||||
|
}
|
||||||
|
|
||||||
const path = location.pathname.replace(/\/edit$/, "");
|
const path = location.pathname.replace(/\/edit$/, "");
|
||||||
navigate(path, {state: {updateSuccess: true}});
|
navigate(path, {state: {updateSuccess: true, warning: warningMessage}});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) =>
|
.catch((error) =>
|
||||||
@ -793,6 +801,10 @@ function EntityForm(props: Props): JSX.Element
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/////////////////////////////////
|
||||||
|
// perform an insert //
|
||||||
|
// todo - audit if it's a dupe //
|
||||||
|
/////////////////////////////////
|
||||||
await qController
|
await qController
|
||||||
.create(tableName, valuesToPost)
|
.create(tableName, valuesToPost)
|
||||||
.then((record) =>
|
.then((record) =>
|
||||||
@ -803,10 +815,16 @@ function EntityForm(props: Props): JSX.Element
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
let warningMessage = null;
|
||||||
|
if(record.warnings && record.warnings.length && record.warnings.length > 0)
|
||||||
|
{
|
||||||
|
warningMessage = record.warnings[0];
|
||||||
|
}
|
||||||
|
|
||||||
const path = props.isCopy ?
|
const path = props.isCopy ?
|
||||||
location.pathname.replace(new RegExp(`/${props.id}/copy$`), "/" + record.values.get(tableMetaData.primaryKeyField))
|
location.pathname.replace(new RegExp(`/${props.id}/copy$`), "/" + record.values.get(tableMetaData.primaryKeyField))
|
||||||
: location.pathname.replace(/create$/, 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) =>
|
.catch((error) =>
|
||||||
|
@ -40,7 +40,7 @@ import {Link, useNavigate} from "react-router-dom";
|
|||||||
export interface ChildRecordListData extends WidgetData
|
export interface ChildRecordListData extends WidgetData
|
||||||
{
|
{
|
||||||
title: string;
|
title: string;
|
||||||
queryOutput: {records: QRecord[]}
|
queryOutput: {records: {values: any}[]}
|
||||||
childTableMetaData: QTableMetaData;
|
childTableMetaData: QTableMetaData;
|
||||||
tablePath: string;
|
tablePath: string;
|
||||||
viewAllLink: string;
|
viewAllLink: string;
|
||||||
|
@ -46,8 +46,6 @@ import Menu from "@mui/material/Menu";
|
|||||||
import MenuItem from "@mui/material/MenuItem";
|
import MenuItem from "@mui/material/MenuItem";
|
||||||
import Modal from "@mui/material/Modal";
|
import Modal from "@mui/material/Modal";
|
||||||
import Tooltip from "@mui/material/Tooltip/Tooltip";
|
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 QContext from "QContext";
|
||||||
import colors from "qqq/assets/theme/base/colors";
|
import colors from "qqq/assets/theme/base/colors";
|
||||||
import AuditBody from "qqq/components/audits/AuditBody";
|
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 ProcessUtils from "qqq/utils/qqq/ProcessUtils";
|
||||||
import TableUtils from "qqq/utils/qqq/TableUtils";
|
import TableUtils from "qqq/utils/qqq/TableUtils";
|
||||||
import ValueUtils from "qqq/utils/qqq/ValueUtils";
|
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();
|
const qController = Client.getInstance();
|
||||||
|
|
||||||
@ -864,7 +864,7 @@ function RecordView({table, launchProcess}: Props): JSX.Element
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
warningMessage ?
|
warningMessage ?
|
||||||
<Alert color="warning" sx={{mb: 3}} onClose={() =>
|
<Alert color="warning" sx={{mb: 3}} icon={<Icon>warning</Icon>} onClose={() =>
|
||||||
{
|
{
|
||||||
setWarningMessage(null);
|
setWarningMessage(null);
|
||||||
}}>
|
}}>
|
||||||
|
Reference in New Issue
Block a user