From df03ed5ed33701aa3c893e602cc1d963d2e0cc84 Mon Sep 17 00:00:00 2001 From: Kirill Stytsenko <kirill@styts.com> Date: Wed, 2 Mar 2022 16:04:37 +0100 Subject: [PATCH] Improve "back" functionality #92 Former-commit-id: 862f677cda2305c1b8f82380e4260186d2f530cc --- fda-ui/components/TableList.vue | 13 ++++++++----- .../database/_database_id/table/_table_id/index.vue | 3 +++ .../database/_database_id/table/import.vue | 3 ++- fda-ui/store/index.js | 13 +++++++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/fda-ui/components/TableList.vue b/fda-ui/components/TableList.vue index d5b93adc53..67972b85ae 100644 --- a/fda-ui/components/TableList.vue +++ b/fda-ui/components/TableList.vue @@ -85,8 +85,9 @@ </v-row> <v-row dense> <v-col> - <v-btn color="blue-grey" class="white--text" :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table/${item.id}`"> - More + <v-btn outlined :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table/${item.id}`"> + <v-icon>mdi-table</v-icon> + View </v-btn> </v-col> <v-col class="align-right"> @@ -176,7 +177,8 @@ export default { }, mounted () { this.$root.$on('table-create', this.refresh) - this.refresh() + const table = this.$store.state.table + this.refresh(table ? table.id : null) }, methods: { async details (tableId, clicked = false) { @@ -186,8 +188,8 @@ export default { } try { const res = await this.$axios.get(`/api/container/${this.$route.params.container_id}/database/${this.$route.params.database_id}/table/${tableId}`) - console.debug('table', res.data) this.tableDetails = res.data + this.$store.commit('SET_TABLE', this.tableDetails) } catch (err) { this.tableDetails = undefined this.$toast.error('Could not get table details.') @@ -205,8 +207,9 @@ export default { this.loading = false if (tableId) { this.openPanelByTableId(tableId) } } catch (err) { - this.$toast.error('Could not list table.') + this.$toast.error('Could not load tables.') } + this.$store.commit('SET_TABLE', null) }, async deleteTable () { try { diff --git a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue index 8bb1fa0d4d..589edcff41 100644 --- a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue +++ b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/index.vue @@ -7,6 +7,9 @@ </v-toolbar-title> <v-spacer /> <v-toolbar-title> + <v-btn class="mr-2" :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table`"> + <v-icon left>mdi-arrow-left</v-icon> Back + </v-btn> <v-btn class="mr-2" :disabled="!token" :to="`/container/${$route.params.container_id}/database/${$route.params.database_id}/table/${$route.params.table_id}/import`"> <v-icon left>mdi-cloud-upload</v-icon> Import csv </v-btn> diff --git a/fda-ui/pages/container/_container_id/database/_database_id/table/import.vue b/fda-ui/pages/container/_container_id/database/_database_id/table/import.vue index 881a42b638..4abb79ed1a 100644 --- a/fda-ui/pages/container/_container_id/database/_database_id/table/import.vue +++ b/fda-ui/pages/container/_container_id/database/_database_id/table/import.vue @@ -246,7 +246,8 @@ export default { text: `${this.$route.params.database_id}`, to: `/container/${this.$route.params.container_id}/database/${this.$route.params.database_id}/info`, activeClass: '' - } + }, + { text: 'Tables', to: `/container/${this.$route.params.container_id}/database/${this.$route.params.database_id}/table`, activeClass: '' } ], rules: { required: value => !!value || 'Required' diff --git a/fda-ui/store/index.js b/fda-ui/store/index.js index b5fd011b17..f823bb0e85 100644 --- a/fda-ui/store/index.js +++ b/fda-ui/store/index.js @@ -1,7 +1,8 @@ export const state = () => ({ - db: null, token: null, - user: null + user: null, + db: null, + table: null }) export const mutations = { @@ -13,5 +14,13 @@ export const mutations = { }, SET_USER (state, user) { state.user = user + }, + + /** + Workaround. Helps to go 'back' from table data view and + have the accordion open on the same table + */ + SET_TABLE (state, table) { + state.table = table } } -- GitLab