From 88101730f1b0fbffb9b5934cf66fb79ab6adcade Mon Sep 17 00:00:00 2001 From: Kirill Stytsenko <kirill@styts.com> Date: Mon, 7 Mar 2022 15:06:08 +0100 Subject: [PATCH] Display QueryResults on query details page Former-commit-id: d6ffc27432bb80fbfab1a5413e270b8da37d10fe --- fda-ui/components/dialogs/PersistQuery.vue | 2 ++ fda-ui/components/query/Results.vue | 14 ++++++++++---- .../_database_id/query/_query_id/index.vue | 8 ++++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/fda-ui/components/dialogs/PersistQuery.vue b/fda-ui/components/dialogs/PersistQuery.vue index 6900447065..fbab09a285 100644 --- a/fda-ui/components/dialogs/PersistQuery.vue +++ b/fda-ui/components/dialogs/PersistQuery.vue @@ -130,6 +130,7 @@ export default { } this.$toast.success('Query persisted.') this.$emit('close') + this.loading = false }, async loadUser () { this.loading = true @@ -143,6 +144,7 @@ export default { this.$toast.error('Failed load user data') console.error('load user data failed', err) } + this.loading = false } } } diff --git a/fda-ui/components/query/Results.vue b/fda-ui/components/query/Results.vue index fabd2ceb4d..89e399d6f2 100644 --- a/fda-ui/components/query/Results.vue +++ b/fda-ui/components/query/Results.vue @@ -98,6 +98,13 @@ ${this.parent.queryId ? `/${this.parent.queryId}` : ''} this.loading = false } }, + buildHeaders (firstLine) { + return Object.keys(firstLine).map(k => ({ + text: k, + value: k, + sortable: false + })) + }, async execute () { this.loading = true try { @@ -110,10 +117,9 @@ ${this.$route.params.container_id}/database/${this.$route.params.database_id}/qu headers: this.headers }) this.loading = false - // Can't display headers yet - // this.result.headers = this.parent.select.map((s) => { - // return { text: s.name, value: s.name, sortable: false } - // }) + if (res.data.result.length) { + this.result.headers = this.buildHeaders(res.data.result[0]) + } this.result.rows = res.data.result this.total = res.data.resultNumber } catch (err) { diff --git a/fda-ui/pages/container/_container_id/database/_database_id/query/_query_id/index.vue b/fda-ui/pages/container/_container_id/database/_database_id/query/_query_id/index.vue index 7afc1b480a..e7d9f85123 100644 --- a/fda-ui/pages/container/_container_id/database/_database_id/query/_query_id/index.vue +++ b/fda-ui/pages/container/_container_id/database/_database_id/query/_query_id/index.vue @@ -7,12 +7,12 @@ <v-btn color="blue-grey white--text" class="mr-2" :disabled="!query.execution || identifier.id || !token" @click.stop="persistQueryDialog = true"> <v-icon left>mdi-fingerprint</v-icon> Persist </v-btn> - <v-btn color="primary" :disabled="!token" @click.stop="reExecute"> + <v-btn v-if="false" color="primary" :disabled="!token" @click.stop="reExecute"> <v-icon left>mdi-run</v-icon> Re-Execute </v-btn> </v-toolbar-title> </v-toolbar> - <v-card v-if="!loading" flat> + <v-card v-if="!loading" class="pb-2" flat> <v-card-title> Query Information </v-card-title> @@ -70,7 +70,7 @@ Username: <code v-if="query.username">{{ query.username }}</code><span v-if="!query.username">(empty)</span> </p> </v-card-text> - <QueryResults v-if="false" ref="queryResults" v-model="query.id" /> + <QueryResults ref="queryResults" v-model="query.id" class="ml-2 mr-2 mt-0" /> </v-card> <v-breadcrumbs :items="items" class="pa-0 mt-2" /> <v-dialog @@ -168,7 +168,7 @@ export default { // refresh QueryResults table setTimeout(() => { - // this.$refs.queryResults.execute() + this.$refs.queryResults.execute() }, 200) }, async reExecute () { -- GitLab