Mercurial > gemma
diff client/src/components/importoverview/ImportOverview.vue @ 4498:8763da6bef4a
export imports
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Mon, 30 Sep 2019 15:28:15 +0200 |
parents | b4880e7d4082 |
children | df91a747872c |
line wrap: on
line diff
--- a/client/src/components/importoverview/ImportOverview.vue Mon Sep 30 13:41:39 2019 +0200 +++ b/client/src/components/importoverview/ImportOverview.vue Mon Sep 30 15:28:15 2019 +0200 @@ -231,24 +231,64 @@ }, methods: { saveImportsView() { - let element = document.createElement("a"); - element.setAttribute("download", "log.txt"); - element.setAttribute("href", this.csvLink()); - element.click(); - }, - csvLink() { - return ( - "data:text/csv;charset=utf-8," + - encodeURIComponent( - this.imports - .map(el => { - return ` ${el.id}, ${el.kind}, ${el.enqueued}, ${el.user || - " "}, ${el.country || " "}, ${el.signer || " "}, ${el.state || - " "}, ${el.warnings || " "}`; - }) - .join("\n") - ) - ); + const content = ""; + this.$store.commit("application/popup", { + icon: "clipboard-check", + title: this.$gettext("Export logs"), + padding: false, + big: true, + content: content, + confirm: { + icon: "check", + callback: dates => { + const { from, to } = dates; + HTTP.get( + `/imports?from=${encodeURIComponent( + format(startOfDay(new Date(from)), "YYYY-MM-DDTHH:mm:ssZ") + )}&to=${encodeURIComponent( + format(endOfDay(new Date(to)), "YYYY-MM-DDTHH:mm:ssZ") + )}&query=`, + { + headers: { "X-Gemma-Auth": localStorage.getItem("token") } + } + ) + .then(response => { + const { imports } = response.data; + if (!imports) return; + const csvLink = + "data:text/csv;charset=utf-8," + + encodeURIComponent( + "id, kind, enqueued, user, country, signer, state, warnings\n" + + imports + .map(el => { + return ` ${el.id}, ${el.kind}, ${ + el.enqueued + }, ${el.user || " "}, ${el.country || + " "}, ${el.signer || " "}, ${el.state || + " "}, ${el.warnings || " "}`; + }) + .join("\n") + ); + let element = document.createElement("a"); + element.setAttribute("download", "log.txt"); + element.setAttribute("href", csvLink); + element.click(); + }) + .catch(error => { + const { status, data } = error.response; + displayError({ + title: this.$gettext("Backend Error"), + message: `${status}: ${data.message || data}` + }); + }); + } + }, + cancel: { + label: this.$gettext("Cancel"), + icon: "times" + }, + dateSelection: true + }); }, showSingleRessource(id) { id = id * 1;