diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 79e6e203..8347e421 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -244,14 +244,6 @@ TODO: 1 BETA DOCS: - -- 1 todo: figure out why a wait display in clien tpage (printing for eg) causes the browser to go wild using up cpu cycles, like WTF is that about - animation, graphics, ??? - Maybe I need to forego that for something more efficient to show waiting like a non animated or simpler thing - -- 1 todo: server logs display needs a download option to just download the log file rather than copy it as a trace can be enormous and copy is pushing the limit - also it would be cool to be able to search it right on the page I guess browser search can do that... hmmm.. - - 1 todo: Unlicensed doesn't allow any troubleshooting info, make sure that the user can still get to ops when unlicensed and view server configuration or whatever is required to troubleshoot failed install - 1 bugbug?:open vendor, print report, go back it shows as savable all of a sudden despite no changes made in UI, also does not give dirty save prompt when leave it even though save icon is showing enabled bold @@ -847,7 +839,7 @@ BUILD 8.0.0-beta.0.9 CHANGES OF NOTE - Upgraded Windows Standalone version of PostgresSQL to 14.1 from 14.0 - data table now clears selected records array properly when change or remove filter and also when deselect all from the select all checkbox at top - +- added Download menu item to ops->logs so that user can download the current log file being viewed diff --git a/ayanova/src/views/ops-log.vue b/ayanova/src/views/ops-log.vue index 4e594867..fe41c1a4 100644 --- a/ayanova/src/views/ops-log.vue +++ b/ayanova/src/views/ops-log.vue @@ -80,6 +80,25 @@ export default { logSelected: function() { this.getDataFromApi(); }, + downloadLog() { + const vm = this; + if (!vm.selectedLog) { + return; + } + try { + const href = window.$gz.api.genericDownloadUrl( + "log-file/download/" + vm.selectedLog + ); + if (window.open(href, "DownloadLog") == null) { + throw new Error( + "Unable to download, your browser rejected navigating to download url." + ); + } + } catch (error) { + window.$gz.errorHandler.handleFormError(error, this); + // window.$gz.eventBus.$emit("notify-error", this.$ay.t("JobFailed")); + } + }, async getDataFromApi() { const vm = this; if (!vm.selectedLog) { @@ -138,6 +157,12 @@ function generateMenu(vm) { surface: false, key: FORM_KEY + ":copylog", vm: vm + }, + { + title: "Download", + icon: "$ayiFileDownload", + key: FORM_KEY + ":download", + vm: vm } ] }; @@ -158,6 +183,9 @@ function clickHandler(menuItem) { //put the log info on the clipboard: window.$gz.util.copyToClipboard("SERVER LOG\n" + m.vm.log); break; + case "download": + m.vm.downloadLog(); + break; default: window.$gz.eventBus.$emit( "notify-warning", @@ -180,7 +208,11 @@ async function initForm(vm) { // Ensures UI translated text is available // async function fetchTranslatedText(vm) { - await window.$gz.translation.cacheTranslations(["OpsTestJob", "Log"]); + await window.$gz.translation.cacheTranslations([ + "OpsTestJob", + "Log", + "Download" + ]); } //////////////////////