|
|
|
@ -21,8 +21,10 @@ |
|
|
|
let originalName = table.name |
|
|
|
let templateScreens |
|
|
|
let willBeDeleted |
|
|
|
let deleteTableName |
|
|
|
|
|
|
|
$: external = table?.type === "external" |
|
|
|
$: allowDeletion = !external || table?.created |
|
|
|
|
|
|
|
function showDeleteModal() { |
|
|
|
templateScreens = $allScreens.filter( |
|
|
|
@ -36,18 +38,26 @@ |
|
|
|
|
|
|
|
async function deleteTable() { |
|
|
|
const wasSelectedTable = $tables.selected |
|
|
|
await tables.delete(table) |
|
|
|
store.actions.screens.delete(templateScreens) |
|
|
|
await tables.fetch() |
|
|
|
notifications.success("Table deleted") |
|
|
|
if (table.type === "external") { |
|
|
|
await datasources.fetch() |
|
|
|
} |
|
|
|
if (wasSelectedTable && wasSelectedTable._id === table._id) { |
|
|
|
$goto("./table") |
|
|
|
try { |
|
|
|
await tables.delete(table) |
|
|
|
await store.actions.screens.delete(templateScreens) |
|
|
|
await tables.fetch() |
|
|
|
if (table.type === "external") { |
|
|
|
await datasources.fetch() |
|
|
|
} |
|
|
|
notifications.success("Table deleted") |
|
|
|
if (wasSelectedTable && wasSelectedTable._id === table._id) { |
|
|
|
$goto("./table") |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
notifications.error(err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function hideDeleteDialog() { |
|
|
|
deleteTableName = "" |
|
|
|
} |
|
|
|
|
|
|
|
async function save() { |
|
|
|
await tables.save(table) |
|
|
|
notifications.success("Table renamed successfully") |
|
|
|
@ -67,7 +77,9 @@ |
|
|
|
<Icon s hoverable name="MoreSmallList" /> |
|
|
|
</div> |
|
|
|
<MenuItem icon="Edit" on:click={editorModal.show}>Edit</MenuItem> |
|
|
|
<MenuItem icon="Delete" on:click={showDeleteModal}>Delete</MenuItem> |
|
|
|
{#if allowDeletion} |
|
|
|
<MenuItem icon="Delete" on:click={showDeleteModal}>Delete</MenuItem> |
|
|
|
{/if} |
|
|
|
</ActionMenu> |
|
|
|
|
|
|
|
<Modal bind:this={editorModal}> |
|
|
|
@ -90,11 +102,15 @@ |
|
|
|
bind:this={confirmDeleteDialog} |
|
|
|
okText="Delete Table" |
|
|
|
onOk={deleteTable} |
|
|
|
onCancel={hideDeleteDialog} |
|
|
|
title="Confirm Deletion" |
|
|
|
disabled={deleteTableName !== table.name} |
|
|
|
> |
|
|
|
Are you sure you wish to delete the table |
|
|
|
<i>{table.name}?</i> |
|
|
|
The following will also be deleted: |
|
|
|
<p> |
|
|
|
Are you sure you wish to delete the table |
|
|
|
<b>{table.name}?</b> |
|
|
|
The following will also be deleted: |
|
|
|
</p> |
|
|
|
<b> |
|
|
|
<div class="delete-items"> |
|
|
|
{#each willBeDeleted as item} |
|
|
|
@ -102,7 +118,15 @@ |
|
|
|
{/each} |
|
|
|
</div> |
|
|
|
</b> |
|
|
|
This action cannot be undone. |
|
|
|
<p> |
|
|
|
This action cannot be undone - to continue please enter the table name below |
|
|
|
to confirm. |
|
|
|
</p> |
|
|
|
<Input |
|
|
|
bind:value={deleteTableName} |
|
|
|
placeholder={table.name} |
|
|
|
dataCy="delete-table-confirm" |
|
|
|
/> |
|
|
|
</ConfirmDialog> |
|
|
|
|
|
|
|
<style> |
|
|
|
|