Mercurial > gemma
changeset 1711:aec17976528e
feat: scheduled import loaded from backend
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 08 Jan 2019 14:51:36 +0100 |
parents | 292929fa0340 |
children | 1368e2a52c29 |
files | client/src/components/importschedule/Importschedule.vue client/src/components/importschedule/Importscheduledetail.vue client/src/store/imports.js |
diffstat | 3 files changed, 35 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/importschedule/Importschedule.vue Tue Jan 08 14:20:32 2019 +0100 +++ b/client/src/components/importschedule/Importschedule.vue Tue Jan 08 14:51:36 2019 +0100 @@ -64,7 +64,7 @@ </tbody> </table> <div v-else class="mt-4 small text-center py-3"> - <translate>No schedules</translate> + <translate>No scheduled imports</translate> </div> <button @click="newImport" @@ -96,6 +96,7 @@ */ import { mapState } from "vuex"; +import { displayError } from "@/lib/errors.js"; export default { name: "importschedule", @@ -108,7 +109,19 @@ searchQuery: "" }; }, + mounted() { + this.getSchedules(); + }, methods: { + getSchedules() { + this.$store.dispatch("imports/getSchedules").catch(error => { + const { status, data } = error.response; + displayError({ + title: this.gettext("Backend Error"), + message: `${status}: ${data.message || data}` + }); + }); + }, newImport() { this.$store.commit("imports/setImportScheduleDetailVisible"); },
--- a/client/src/components/importschedule/Importscheduledetail.vue Tue Jan 08 14:20:32 2019 +0100 +++ b/client/src/components/importschedule/Importscheduledetail.vue Tue Jan 08 14:51:36 2019 +0100 @@ -299,6 +299,7 @@ </template> <script> +import { IMPORTTYPES } from "@/store/imports.js"; import { mapState } from "vuex"; import { displayInfo, displayError } from "@/lib/errors.js"; import app from "@/main.js"; @@ -448,11 +449,8 @@ data["url"] = this.url; data["insecure"] = this.insecure; } - const importTypes = { - BOTTLENECK: "bottleneck" - }; this.triggerActive = false; - const type = importTypes[this.import_]; + const type = IMPORTTYPES[this.import_]; this.$store .dispatch("imports/triggerImport", { type, data }) .then(response => {
--- a/client/src/store/imports.js Tue Jan 08 14:20:32 2019 +0100 +++ b/client/src/store/imports.js Tue Jan 08 14:51:36 2019 +0100 @@ -22,6 +22,10 @@ REJECTED: "declined" }; +const IMPORTTYPES = { + BOTTLENECK: "bottleneck" +}; + const SCHEDULES = { DAILY: "daily", MONTHLY: "monthly" @@ -82,6 +86,20 @@ } }, actions: { + getSchedules({ commit }) { + return new Promise((resolve, reject) => { + HTTP.get("/imports/config", { + headers: { "X-Gemma-Auth": localStorage.getItem("token") } + }) + .then(response => { + commit("setSchedules", response.data); + resolve(response); + }) + .catch(error => { + reject(error); + }); + }); + }, triggerImport({ commit }, { type, data }) { return new Promise((resolve, reject) => { HTTP.post("imports/" + type, data, { @@ -128,4 +146,4 @@ } }; -export { imports, STATES, SCHEDULES }; +export { imports, STATES, SCHEDULES, IMPORTTYPES };