From 91169cf6a71a322415ba2ee1caffa398eb7831b8 Mon Sep 17 00:00:00 2001 From: blank0537 <111295371+blank0537@users.noreply.github.com> Date: Tue, 11 Jun 2024 20:58:43 +0530 Subject: [PATCH 1/4] Fix create app failure issue because TJDB is disabled (#9082) Co-authored-by: Akshay --- .../TooljetDatabase/ToolJetDbOperations.jsx | 13 ++++++++++++- .../src/services/import_export_resources.service.ts | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx index 65b223839f..df6d4d96c3 100644 --- a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx +++ b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx @@ -337,9 +337,20 @@ const ToolJetDbOperations = ({ optionchanged, options, darkMode, isHorizontalLay ] ); + const triggerTooljetDBStatus = (key) => { + if (window.public_config?.ENABLE_TOOLJET_DB == 'false') { + toast('Tooljet database is not connected.', { + icon: '⚠️', + }); + } else if (key === 'addTJDBTable') { + navigate(getPrivateRoute('database')); + } + }; + const fetchTables = async () => { const { error, data } = await tooljetDatabaseService.findAll(organizationId); + triggerTooljetDBStatus(); if (error) { toast.error(error?.message ?? 'Failed to fetch tables'); return; @@ -495,7 +506,7 @@ const ToolJetDbOperations = ({ optionchanged, options, darkMode, isHorizontalLay onChange={(value) => { value?.value && handleTableNameSelect(value?.value); }} - onAdd={() => navigate(getPrivateRoute('database'))} + onAdd={() => triggerTooljetDBStatus('addTJDBTable')} addBtnLabel={'Add new table'} value={generateListForDropdown(tables).find((val) => val?.value === selectedTableId)} /> diff --git a/server/src/services/import_export_resources.service.ts b/server/src/services/import_export_resources.service.ts index 6c70c2e382..af643fe9db 100644 --- a/server/src/services/import_export_resources.service.ts +++ b/server/src/services/import_export_resources.service.ts @@ -53,8 +53,9 @@ export class ImportExportResourcesService { let tableNameMapping = {}; const imports = { app: [], tooljet_database: [] }; const importingVersion = importResourcesDto.tooljet_version; + const isTJDBEnabled = process.env.ENABLE_TOOLJET_DB === 'true'; - if (importResourcesDto.tooljet_database) { + if (isTJDBEnabled && importResourcesDto.tooljet_database) { const res = await this.tooljetDbImportExportService.bulkImport(importResourcesDto, importingVersion, cloning); tableNameMapping = res.tableNameMapping; imports.tooljet_database = res.tooljet_database; From c65c053d037087d428692956b8d3179132b8df0c Mon Sep 17 00:00:00 2001 From: Akshay Sasidharan Date: Tue, 11 Jun 2024 22:49:44 +0530 Subject: [PATCH 2/4] update TJDB status check condition --- .../QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx index df6d4d96c3..b8e6f583cb 100644 --- a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx +++ b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx @@ -338,7 +338,7 @@ const ToolJetDbOperations = ({ optionchanged, options, darkMode, isHorizontalLay ); const triggerTooljetDBStatus = (key) => { - if (window.public_config?.ENABLE_TOOLJET_DB == 'false') { + if (window.public_config?.ENABLE_TOOLJET_DB !== 'true') { toast('Tooljet database is not connected.', { icon: '⚠️', }); From 2238b01cf79f9efcd09674c0570e3fb418ec1142 Mon Sep 17 00:00:00 2001 From: Akshay Sasidharan Date: Mon, 24 Jun 2024 15:20:15 +0530 Subject: [PATCH 3/4] reword toast message when TJDB is not enabled --- .../QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx index b8e6f583cb..cbba479749 100644 --- a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx +++ b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/ToolJetDbOperations.jsx @@ -339,7 +339,7 @@ const ToolJetDbOperations = ({ optionchanged, options, darkMode, isHorizontalLay const triggerTooljetDBStatus = (key) => { if (window.public_config?.ENABLE_TOOLJET_DB !== 'true') { - toast('Tooljet database is not connected.', { + toast('Tooljet database is not enabled.', { icon: '⚠️', }); } else if (key === 'addTJDBTable') { From faeb8f108c5df7b2f4ddbbf2e7c8f50f0ca409bc Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 24 Jun 2024 20:10:49 +0530 Subject: [PATCH 4/4] TJDB row edit drawer fix after click on expand (#10161) Co-authored-by: blank0537 --- .../Drawers/EditRowDrawer/index.jsx | 67 ++++++++++--------- frontend/src/TooljetDatabase/Table/Header.jsx | 6 +- frontend/src/TooljetDatabase/Table/index.jsx | 27 ++++++-- 3 files changed, 61 insertions(+), 39 deletions(-) diff --git a/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx b/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx index 6ada6b0930..13b59555e3 100644 --- a/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx +++ b/frontend/src/TooljetDatabase/Drawers/EditRowDrawer/index.jsx @@ -13,6 +13,7 @@ const EditRowDrawer = ({ setIsEditRowDrawerOpen, selectedRowIds, rows, + isDirectRowExpand, referencedColumnDetails, setReferencedColumnDetails, }) => { @@ -37,38 +38,40 @@ const EditRowDrawer = ({ return ( <> - { - setIsEditRowDrawerOpen(!isEditRowDrawerOpen); - }} - className="gap-0" - data-cy="edit-row-button-" - style={{ - padding: '4px 8px 4px 8px', - }} - > - {/* */} - - - - - -    - - Edit row - - + {!isDirectRowExpand && ( + { + setIsEditRowDrawerOpen(!isEditRowDrawerOpen); + }} + className="gap-0" + data-cy="edit-row-button-" + style={{ + padding: '4px 8px 4px 8px', + }} + > + {/* */} + + + + + +    + + Edit row + + + )} setIsEditRowDrawerOpen(false)} diff --git a/frontend/src/TooljetDatabase/Table/Header.jsx b/frontend/src/TooljetDatabase/Table/Header.jsx index cdc0101c69..92a0f41852 100644 --- a/frontend/src/TooljetDatabase/Table/Header.jsx +++ b/frontend/src/TooljetDatabase/Table/Header.jsx @@ -29,6 +29,7 @@ const Header = ({ setIsEditRowDrawerOpen, setFilterEnable, filterEnable, + isDirectRowExpand, referencedColumnDetails, setReferencedColumnDetails, }) => { @@ -149,7 +150,7 @@ const Header = ({
<> - {Object.keys(selectedRowIds).length === 0 && ( + {(isDirectRowExpand || Object.keys(selectedRowIds).length === 0) && ( <> ) : null} - {Object.keys(selectedRowIds).length > 0 && ( + {!isDirectRowExpand && Object.keys(selectedRowIds).length > 0 && (
{ const [nullValue, setNullValue] = useState(false); const [progress, setProgress] = useState(0); const [isCellUpdateInProgress, setIsCellUpdateInProgress] = useState(false); + const [isDirectRowExpand, setIsDirectRowExpand] = useState(false); const [referencedColumnDetails, setReferencedColumnDetails] = useState([]); const [cachedOptions, setCahedOptions] = useState({}); @@ -225,6 +226,7 @@ const Table = ({ collapseSidebar }) => { const newSelectedIdRef = {}; if (rowIdSelected) newSelectedIdRef[`${rowIdSelected}`] = true; setSelectedRowIds(newSelectedIdRef); + setIsDirectRowExpand(true); return; }; @@ -401,6 +403,14 @@ const Table = ({ collapseSidebar }) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [selectedTable]); + useEffect(() => { + if (!isEditRowDrawerOpen && isDirectRowExpand) { + setSelectedRowIds({}); + setIsDirectRowExpand(false); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isEditRowDrawerOpen]); + const tableData = React.useMemo( () => (loading ? Array(10).fill({}) : selectedTableData), [loading, selectedTableData] @@ -1083,6 +1093,8 @@ const Table = ({ collapseSidebar }) => { setIsEditRowDrawerOpen={setIsEditRowDrawerOpen} setFilterEnable={setFilterEnable} filterEnable={filterEnable} + isDirectRowExpand={isDirectRowExpand} + setIsDirectRowExpand={setIsDirectRowExpand} referencedColumnDetails={referencedColumnDetails} setReferencedColumnDetails={setReferencedColumnDetails} // getForeignKeyDetails={getForeignKeyDetails} @@ -1156,15 +1168,20 @@ const Table = ({ collapseSidebar }) => {
0 && Object.keys(selectedRowIds).length < rows.length + isDirectRowExpand + ? false + : Object.keys(selectedRowIds).length > 0 && Object.keys(selectedRowIds).length < rows.length + } + checked={ + isDirectRowExpand ? false : Object.keys(selectedRowIds).length === rows.length && rows.length } - checked={Object.keys(selectedRowIds).length === rows.length && rows.length} onChange={() => toggleSelectOrDeSelectAllRows(rows.length)} style={{ backgroundColor: `${ - (Object.keys(selectedRowIds).length > 0 && + (!isDirectRowExpand && + Object.keys(selectedRowIds).length > 0 && Object.keys(selectedRowIds).length < rows.length) || - (Object.keys(selectedRowIds).length === rows.length && rows.length) + (!isDirectRowExpand && Object.keys(selectedRowIds).length === rows.length && rows.length) ? '#3E63DD' : 'var(--base)' }`, @@ -1263,7 +1280,7 @@ const Table = ({ collapseSidebar }) => { }} > toggleRowSelection(row.id)} />