diff --git a/ayanova/src/App.vue b/ayanova/src/App.vue index c2cc7874..bde87465 100644 --- a/ayanova/src/App.vue +++ b/ayanova/src/App.vue @@ -185,6 +185,8 @@ v-else :key="item.key" :disabled="item.disabled" + :href="item.href" + :target="item.target" @click="clickMenuItem(item)" v-bind:class="{ 'hidden-sm-and-up': item.surface }" :data-cy="!!$ay.dev ? item.key : false" diff --git a/ayanova/src/api/gzapi.js b/ayanova/src/api/gzapi.js index a0b544c4..6e6b5afb 100644 --- a/ayanova/src/api/gzapi.js +++ b/ayanova/src/api/gzapi.js @@ -329,6 +329,16 @@ export default { return window.$gz.store.state.helpUrl.replace("/docs/", "/"); }, ///////////////////////////// + // generic routed download URL + // + genericDownloadUrl(route) { + //http://localhost:7575/api/v8/backup/download/100?t=sssss + + let url = route + "?t=" + window.$gz.store.state.downloadToken; + + return this.APIUrl(url); + }, + ///////////////////////////// // backup file download URL // backupDownloadUrl(fileName) { diff --git a/ayanova/src/views/adm-translation.vue b/ayanova/src/views/adm-translation.vue index 4ab7bda5..cf50dd52 100644 --- a/ayanova/src/views/adm-translation.vue +++ b/ayanova/src/views/adm-translation.vue @@ -508,7 +508,7 @@ async function clickHandler(menuItem) { m.vm.replaceDialog = true; break; case "export": - alert("download stub"); + //ignore download link let it go break; case "delete": m.vm.remove(); @@ -636,12 +636,21 @@ function generateMenu(vm) { }); } - menuOptions.menuItems.push({ - title: "Export", - icon: "fa-file-download", - key: FORM_KEY + ":export", - vm: vm - }); + //EXPORT + if (vm.$route.params.recordid != 0) { + let href = window.$gz.api.genericDownloadUrl( + "translation/download/" + vm.$route.params.recordid + ); + + menuOptions.menuItems.push({ + title: "Export", + icon: "fa-file-download", + href: href, + target: "blank", + key: FORM_KEY + ":export", + vm: vm + }); + } window.$gz.eventBus.$emit("menu-change", menuOptions); }