ADding goto record button/dialog

This commit is contained in:
2023-07-03 11:14:28 -05:00
parent 317d687b22
commit 36ea9c26db
3 changed files with 302 additions and 1 deletions

View File

@ -57,6 +57,7 @@ import {useLocation, useNavigate, useSearchParams} from "react-router-dom";
import QContext from "QContext";
import {QActionsMenuButton, QCancelButton, QCreateNewButton, QSaveButton} from "qqq/components/buttons/DefaultButtons";
import MenuButton from "qqq/components/buttons/MenuButton";
import {GotoRecordButton} from "qqq/components/misc/GotoRecordDialog";
import SavedFilters from "qqq/components/misc/SavedFilters";
import {CustomColumnsPanel} from "qqq/components/query/CustomColumnsPanel";
import {CustomFilterPanel} from "qqq/components/query/CustomFilterPanel";
@ -644,6 +645,12 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
});
}
if(!tableMetaData.capabilities.has(Capability.TABLE_QUERY))
{
console.log("Cannot update table - it does not have QUERY capability.");
return;
}
setLastFetchedQFilterJSON(JSON.stringify(qFilter));
qController.query(tableName, qFilter, queryJoins).then((results) =>
{
@ -1803,6 +1810,19 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
);
}
/////////////////////////////////////////////////////////////////////////////////////////////
// if the table doesn't allow QUERY, but does allow GET, don't render a data grid - //
// instead, try to just render a Goto Record button, in auto-open, and may-not-close modes //
/////////////////////////////////////////////////////////////////////////////////////////////
if (tableMetaData && !tableMetaData.capabilities.has(Capability.TABLE_QUERY) && tableMetaData.capabilities.has(Capability.TABLE_GET))
{
return (
<BaseLayout>
<GotoRecordButton metaData={metaData} tableMetaData={tableMetaData} autoOpen={true} buttonVisible={false} mayClose={false} />
</BaseLayout>
);
}
return (
<BaseLayout>
<div className="recordQuery">
@ -1857,6 +1877,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
}
</Box>
<GotoRecordButton metaData={metaData} tableMetaData={tableMetaData} />
<Box display="flex" width="150px">
<QActionsMenuButton isOpen={actionsMenu} onClickHandler={openActionsMenu} />
{renderActionsMenu}

View File

@ -48,6 +48,7 @@ import QContext from "QContext";
import AuditBody from "qqq/components/audits/AuditBody";
import {QActionsMenuButton, QCancelButton, QDeleteButton, QEditButton} from "qqq/components/buttons/DefaultButtons";
import EntityForm from "qqq/components/forms/EntityForm";
import {GotoRecordButton} from "qqq/components/misc/GotoRecordDialog";
import QRecordSidebar from "qqq/components/misc/RecordSidebar";
import DashboardWidgets from "qqq/components/widgets/DashboardWidgets";
import BaseLayout from "qqq/layouts/BaseLayout";
@ -739,7 +740,10 @@ function RecordView({table, launchProcess}: Props): JSX.Element
<Typography variant="h5">
{tableMetaData && record ? `Viewing ${tableMetaData?.label}: ${record?.recordLabel || ""}` : ""}
</Typography>
<QActionsMenuButton isOpen={actionsMenu} onClickHandler={openActionsMenu} />
<Box display="flex">
<GotoRecordButton metaData={metaData} tableMetaData={tableMetaData} />
<QActionsMenuButton isOpen={actionsMenu} onClickHandler={openActionsMenu} />
</Box>
{renderActionsMenu}
</Box>
</Box>