Allowing deletion of external tables, whether they were createrd in Budibase or not.

This commit is contained in:
mike12345567 2024-03-20 18:25:23 +00:00
parent bb5a3c80af
commit b3bc092ee0
2 changed files with 10 additions and 16 deletions

View File

@ -28,7 +28,6 @@
let deleteTableName let deleteTableName
$: externalTable = table?.sourceType === DB_TYPE_EXTERNAL $: externalTable = table?.sourceType === DB_TYPE_EXTERNAL
$: allowDeletion = !externalTable || table?.created
function showDeleteModal() { function showDeleteModal() {
templateScreens = $screenStore.screens.filter( templateScreens = $screenStore.screens.filter(
@ -56,7 +55,7 @@
$goto(`./datasource/${table.datasourceId}`) $goto(`./datasource/${table.datasourceId}`)
} }
} catch (error) { } catch (error) {
notifications.error("Error deleting table") notifications.error(`Error deleting table - ${error.message}`)
} }
} }
@ -86,17 +85,15 @@
} }
</script> </script>
{#if allowDeletion} <ActionMenu>
<ActionMenu> <div slot="control" class="icon">
<div slot="control" class="icon"> <Icon s hoverable name="MoreSmallList" />
<Icon s hoverable name="MoreSmallList" /> </div>
</div> {#if !externalTable}
{#if !externalTable} <MenuItem icon="Edit" on:click={editorModal.show}>Edit</MenuItem>
<MenuItem icon="Edit" on:click={editorModal.show}>Edit</MenuItem> {/if}
{/if} <MenuItem icon="Delete" on:click={showDeleteModal}>Delete</MenuItem>
<MenuItem icon="Delete" on:click={showDeleteModal}>Delete</MenuItem> </ActionMenu>
</ActionMenu>
{/if}
<Modal bind:this={editorModal} on:show={initForm}> <Modal bind:this={editorModal} on:show={initForm}>
<ModalContent <ModalContent

View File

@ -61,9 +61,6 @@ export async function destroy(ctx: UserCtx) {
const tableToDelete: TableRequest = await sdk.tables.getTable( const tableToDelete: TableRequest = await sdk.tables.getTable(
ctx.params.tableId ctx.params.tableId
) )
if (!tableToDelete || !tableToDelete.created) {
ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")
}
const datasourceId = getDatasourceId(tableToDelete) const datasourceId = getDatasourceId(tableToDelete)
try { try {
const { datasource, table } = await sdk.tables.external.destroy( const { datasource, table } = await sdk.tables.external.destroy(