# HG changeset patch # User Thomas Junk # Date 1544458230 -3600 # Node ID b03db5726ca5387c6067bc8f5451e3523974776b # Parent ccf4fc8a64027d450d82b4e5b43f8ab24bbf37b0 importqueue detail view diff -r ccf4fc8a6402 -r b03db5726ca5 client/package.json --- a/client/package.json Mon Dec 10 16:49:34 2018 +0100 +++ b/client/package.json Mon Dec 10 17:10:30 2018 +0100 @@ -41,6 +41,7 @@ "vue-clipboard2": "^0.2.1", "vue-color": "^2.6.0", "vue-highlightjs": "^1.3.3", + "vue-js-modal": "^1.3.27", "vue-js-toggle-button": "^1.3.0", "vue-router": "^3.0.2", "vue-snotify": "^3.2.1", diff -r ccf4fc8a6402 -r b03db5726ca5 client/src/components/admin/Importqueue.vue --- a/client/src/components/admin/Importqueue.vue Mon Dec 10 16:49:34 2018 +0100 +++ b/client/src/components/admin/Importqueue.vue Mon Dec 10 17:10:30 2018 +0100 @@ -59,8 +59,12 @@ - - {{ job.enqueued }} + + {{ formatSurveyDate(job.enqueued) }} {{ job.kind }} {{ job.user }} {{ job.signer }} @@ -77,6 +81,37 @@ + +
+ +
+
+ + + + + + + + + + + + + + + +
Kind + Date + + Message
{{ entry.kind }}{{ formatSurveyDate(entry.time) }}{{ entry.message }}
+
+
@@ -96,6 +131,8 @@ */ import { displayError } from "../../lib/errors.js"; import { mapState } from "vuex"; +import { HTTP } from "../../lib/http.js"; +import { formatSurveyDate } from "../../lib/date.js"; export default { name: "importqueue", @@ -106,13 +143,21 @@ failed: false, pending: false, rejected: false, - accepted: false + accepted: false, + entries: [], + sortAsc: true }; }, mounted() { this.loadQueue(); }, methods: { + formatSurveyDate(date) { + return formatSurveyDate(date); + }, + clearEntries() { + this.entries = []; + }, setFilter(name) { this[name] = !this[name]; const allSet = @@ -140,11 +185,49 @@ }, refresh() { this.loadQueue(); + }, + showDetails(id) { + HTTP.get("/imports/" + id, { + headers: { "X-Gemma-Auth": localStorage.getItem("token") } + }) + .then(response => { + const { entries } = response.data; + this.entries = entries; + this.$modal.show("details"); + }) + .catch(error => { + const { status, data } = error.response; + displayError({ + title: this.$gettext("Backend Error"), + message: `${status}: ${data.message || data}` + }); + }); + }, + close() { + this.$modal.hide("details"); } }, computed: { ...mapState("imports", ["imports"]), ...mapState("application", ["showSidebar"]), + sortedEntries() { + let sorted = this.entries.slice(); + sorted.sort((r1, r2) => { + let d1 = new Date(r1.time); + let d2 = new Date(r2.time); + if (d2 < d1) { + return !this.sortAsc ? -1 : 1; + } + if (d2 > d1) { + return !this.sortAsc ? 1 : -1; + } + return 0; + }); + return sorted; + }, + sortIcon() { + return this.sortAsc ? "sort-amount-down" : "sort-amount-up"; + }, filteredImports() { const filtered = this.imports .filter(element => { @@ -224,6 +307,38 @@