Browse Source

fix some navigation issues when removing tables/datasources

gh-pages
Keviin Åberg Kultalahti 6 years ago
parent
commit
eb27c9d9dc
  1. 8
      packages/builder/src/builderStore/store/backend.js
  2. 7
      packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte
  3. 5
      packages/builder/src/components/backend/TableNavigator/popovers/EditTablePopover.svelte

8
packages/builder/src/builderStore/store/backend.js

@ -105,7 +105,9 @@ export const getBackendUiStore = () => {
state.datasources = state.datasources.filter( state.datasources = state.datasources.filter(
existing => existing._id !== datasource._id existing => existing._id !== datasource._id
) )
state.selectedDatasourceId = null if (datasource._id === state.selectedDatasourceId) {
state.selectedDatasourceId = null
}
return state return state
}) })
}, },
@ -233,7 +235,9 @@ export const getBackendUiStore = () => {
state.tables = state.tables.filter( state.tables = state.tables.filter(
existing => existing._id !== table._id existing => existing._id !== table._id
) )
state.selectedTable = {} if (table._id === state.selectedTable._id) {
state.selectedTable = {}
}
return state return state
}) })
}, },

7
packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte

@ -22,9 +22,14 @@
} }
async function deleteDatasource() { async function deleteDatasource() {
const wasSelectedSource = $backendUiStore.selectedDatasourceId
await backendUiStore.actions.datasources.delete(datasource) await backendUiStore.actions.datasources.delete(datasource)
notifier.success("Datasource deleted") notifier.success("Datasource deleted")
$goto('./datasource') // navigate to first index page if the source you are deleting is selected
console.log('Is the same? ', wasSelectedSource === datasource._id)
if (wasSelectedSource === datasource._id) {
$goto('./datasource')
}
hideEditor() hideEditor()
} }
</script> </script>

5
packages/builder/src/components/backend/TableNavigator/popovers/EditTablePopover.svelte

@ -1,4 +1,5 @@
<script> <script>
import { goto } from "@sveltech/routify"
import { backendUiStore, store, allScreens } from "builderStore" import { backendUiStore, store, allScreens } from "builderStore"
import { notifier } from "builderStore/store/notifications" import { notifier } from "builderStore/store/notifications"
import { DropdownMenu, Button, Input } from "@budibase/bbui" import { DropdownMenu, Button, Input } from "@budibase/bbui"
@ -36,10 +37,14 @@
} }
async function deleteTable() { async function deleteTable() {
const wasSelectedTable = $backendUiStore.selectedTable
await backendUiStore.actions.tables.delete(table) await backendUiStore.actions.tables.delete(table)
store.actions.screens.delete(templateScreens) store.actions.screens.delete(templateScreens)
await backendUiStore.actions.tables.fetch() await backendUiStore.actions.tables.fetch()
notifier.success("Table deleted") notifier.success("Table deleted")
if (wasSelectedTable._id === table._id) {
$goto('./table')
}
hideEditor() hideEditor()
} }

Loading…
Cancel
Save