Browse Source

fix some navigation issues when removing tables/datasources

master
Keviin Åberg Kultalahti 6 years ago
parent
commit
a3750a2c5b
  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(
existing => existing._id !== datasource._id
)
state.selectedDatasourceId = null
if (datasource._id === state.selectedDatasourceId) {
state.selectedDatasourceId = null
}
return state
})
},
@ -233,7 +235,9 @@ export const getBackendUiStore = () => {
state.tables = state.tables.filter(
existing => existing._id !== table._id
)
state.selectedTable = {}
if (table._id === state.selectedTable._id) {
state.selectedTable = {}
}
return state
})
},

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

@ -22,9 +22,14 @@
}
async function deleteDatasource() {
const wasSelectedSource = $backendUiStore.selectedDatasourceId
await backendUiStore.actions.datasources.delete(datasource)
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()
}
</script>

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

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

Loading…
Cancel
Save