diff --git a/fda-ui/components/TableList.vue b/fda-ui/components/TableList.vue index d5b93adc538564065356c9e98cc8fe96e27f06d0..67972b85ae886948ab629ad0e7addf67f097b1f1 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 8bb1fa0d4de4bb27d61e0959b6746cdbe48a3553..589edcff41f6480e2a6d5121fa85737890d844db 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 881a42b638be134e757301570b0836bc30a3baa0..4abb79ed1ade2a66eca7cd91f4c96767aeb11307 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 b5fd011b1721d292a52751655953995d0aa03604..f823bb0e8566a14e4f9781503f0aecf33f558710 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 } }