diff --git a/packages/backend-core/src/docIds/params.ts b/packages/backend-core/src/docIds/params.ts index 016604b69b..5f1c053bde 100644 --- a/packages/backend-core/src/docIds/params.ts +++ b/packages/backend-core/src/docIds/params.ts @@ -83,11 +83,15 @@ export function isViewId(id: string): boolean { /** * Check if a given ID is that of a datasource or datasource plus. */ -export const isDatasourceId = (id: string): boolean => { +export function isDatasourceId(id: string): boolean { // this covers both datasources and datasource plus return !!id && id.startsWith(`${DocumentType.DATASOURCE}${SEPARATOR}`) } +export function isQueryId(id: string): boolean { + return !!id && id.startsWith(`${DocumentType.QUERY}${SEPARATOR}`) +} + /** * Gets parameters for retrieving workspaces. */ diff --git a/packages/bbui/src/Form/Core/TextField.svelte b/packages/bbui/src/Form/Core/TextField.svelte index db96a17811..0d5f9b9ef1 100644 --- a/packages/bbui/src/Form/Core/TextField.svelte +++ b/packages/bbui/src/Form/Core/TextField.svelte @@ -1,8 +1,9 @@ - - - Are you sure you wish to delete the datasource - {datasource.name}? This action cannot be undone. - diff --git a/packages/builder/src/components/backend/DatasourceNavigator/QueryNavItem.svelte b/packages/builder/src/components/backend/DatasourceNavigator/QueryNavItem.svelte index 5b611cc4df..227963f602 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/QueryNavItem.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/QueryNavItem.svelte @@ -6,19 +6,18 @@ } from "@/helpers/data/utils" import { goto as gotoStore, isActive } from "@roxi/routify" import { - datasources, queries, userSelectedResourceMap, contextMenuStore, } from "@/stores/builder" import NavItem from "@/components/common/NavItem.svelte" - import ConfirmDialog from "@/components/common/ConfirmDialog.svelte" + import DeleteDataConfirmModal from "@/components/backend/modals/DeleteDataConfirmationModal.svelte" import { notifications, Icon } from "@budibase/bbui" export let datasource export let query - let confirmDeleteDialog + let confirmDeleteModal // goto won't work in the context menu callback if the store is called directly $: goto = $gotoStore @@ -31,7 +30,7 @@ keyBind: null, visible: true, disabled: false, - callback: confirmDeleteDialog.show, + callback: confirmDeleteModal.show, }, { icon: "Duplicate", @@ -51,20 +50,6 @@ ] } - async function deleteQuery() { - try { - // Go back to the datasource if we are deleting the active query - if ($queries.selectedQueryId === query._id) { - goto(`./datasource/${query.datasourceId}`) - } - await queries.delete(query) - await datasources.fetch() - notifications.success("Query deleted") - } catch (error) { - notifications.error("Error deleting query") - } - } - const openContextMenu = e => { e.preventDefault() e.stopPropagation() @@ -90,14 +75,7 @@ - - Are you sure you wish to delete this query? This action cannot be undone. - + diff --git a/packages/builder/src/components/backend/TableNavigator/TableNavItem/DeleteConfirmationModal.svelte b/packages/builder/src/components/backend/TableNavigator/TableNavItem/DeleteConfirmationModal.svelte deleted file mode 100644 index 183a803902..0000000000 --- a/packages/builder/src/components/backend/TableNavigator/TableNavItem/DeleteConfirmationModal.svelte +++ /dev/null @@ -1,175 +0,0 @@ - - - -
-

- Are you sure you wish to delete the table - - - - {table.name} - ? - -

- -

All table data will be deleted{viewsMessage}.

-

This action cannot be undone.

- - {#if screensPossiblyAffected.length > 0} -
- -
    - {#each screensPossiblyAffected as item} -
  • - {item.text} -
  • - {/each} -
-
-
- {/if} -

Please enter the table name below to confirm.

- -
-
- - diff --git a/packages/builder/src/components/backend/TableNavigator/TableNavItem/TableNavItem.svelte b/packages/builder/src/components/backend/TableNavigator/TableNavItem/TableNavItem.svelte index f3deccb3c9..fe9d02af40 100644 --- a/packages/builder/src/components/backend/TableNavigator/TableNavItem/TableNavItem.svelte +++ b/packages/builder/src/components/backend/TableNavigator/TableNavItem/TableNavItem.svelte @@ -8,7 +8,7 @@ import NavItem from "@/components/common/NavItem.svelte" import { isActive } from "@roxi/routify" import EditModal from "./EditModal.svelte" - import DeleteConfirmationModal from "./DeleteConfirmationModal.svelte" + import DeleteConfirmationModal from "../../modals/DeleteDataConfirmationModal.svelte" import { Icon } from "@budibase/bbui" import { DB_TYPE_EXTERNAL } from "@/constants/backend" @@ -65,4 +65,4 @@ {/if} - + diff --git a/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte b/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte new file mode 100644 index 0000000000..82271bd066 --- /dev/null +++ b/packages/builder/src/components/backend/modals/DeleteDataConfirmationModal.svelte @@ -0,0 +1,226 @@ + + + +
+ {#if sourceType} +

+ {buildMessage(sourceType)} + {#if affectedScreens.length > 0} + + {#each affectedScreens as item, idx} + {item.text}{idx !== affectedScreens.length - 1 + ? "," + : ""} + {/each} + + {/if} +

+ {/if} +

+ This action cannot be undone. +

+
+
+ + diff --git a/packages/builder/src/components/common/ConfirmDialog.svelte b/packages/builder/src/components/common/ConfirmDialog.svelte index ece20fe102..f864b60fc6 100644 --- a/packages/builder/src/components/common/ConfirmDialog.svelte +++ b/packages/builder/src/components/common/ConfirmDialog.svelte @@ -8,7 +8,7 @@ export let onOk = undefined export let onCancel = undefined export let warning = true - export let disabled + export let disabled = false let modal diff --git a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/DeleteViewModal.svelte b/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/DeleteViewModal.svelte deleted file mode 100644 index 5a23c976f8..0000000000 --- a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/DeleteViewModal.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/ViewNavBar.svelte b/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/ViewNavBar.svelte index e9c5745cc6..f32767451a 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/ViewNavBar.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/ViewNavBar.svelte @@ -10,9 +10,8 @@ import { Icon, ActionButton, ActionMenu, MenuItem } from "@budibase/bbui" import { params, url } from "@roxi/routify" import EditViewModal from "./EditViewModal.svelte" - import DeleteViewModal from "./DeleteViewModal.svelte" import EditTableModal from "@/components/backend/TableNavigator/TableNavItem/EditModal.svelte" - import DeleteTableModal from "@/components/backend/TableNavigator/TableNavItem/DeleteConfirmationModal.svelte" + import DeleteConfirmationModal from "@/components/backend/modals/DeleteDataConfirmationModal.svelte" import { UserAvatars } from "@budibase/frontend-core" import { DB_TYPE_EXTERNAL } from "@/constants/backend" import { TableNames } from "@/constants" @@ -314,12 +313,12 @@ {#if table && tableEditable} - + {/if} {#if editableView} - + {/if}