diff --git a/ayanova/src/components/wiki-control.vue b/ayanova/src/components/wiki-control.vue index 5ef5700b..9d6a7f3f 100644 --- a/ayanova/src/components/wiki-control.vue +++ b/ayanova/src/components/wiki-control.vue @@ -820,42 +820,42 @@ export default { this.imageMenu = true; }); }, - getAttachments() { + async getAttachments() { let vm = this; - vm.attachments = []; - window.$gz.api - .get("attachment/list?ayatype=" + vm.ayaType + "&ayaid=" + vm.ayaId) - .then(res => { - if (res.error) { - window.$gz.errorHandler.handleFormError(res.error); - } else { - let ret = []; - for (let i = 0; i < res.data.length; i++) { - let o = res.data[i]; + try { + vm.attachments = []; + let res = await window.$gz.api.get( + "attachment/list?ayatype=" + vm.ayaType + "&ayaid=" + vm.ayaId + ); + if (res.error) { + window.$gz.errorHandler.handleFormError(res.error); + } else { + let ret = []; + for (let i = 0; i < res.data.length; i++) { + let o = res.data[i]; - if ( - window.$gz.util.isImageAttachment( - o.displayFileName, - o.contentType - ) - ) { - //attach url - //![]([ATTACH:4]) - ret.push({ - id: o.id, - url: "[ATTACH:" + o.id + "]", - name: o.displayFileName - }); - } + if ( + window.$gz.util.isImageAttachment( + o.displayFileName, + o.contentType + ) + ) { + //attach url + //![]([ATTACH:4]) + ret.push({ + id: o.id, + url: "[ATTACH:" + o.id + "]", + name: o.displayFileName + }); } - vm.attachments = ret; } - }) - .catch(function handleGetListError(error) { - window.$gz.errorHandler.handleFormError(error); - }); + vm.attachments = ret; + } + } catch (error) { + window.$gz.errorHandler.handleFormError(error); + } }, - upload() { + async upload() { //similar code in attachment-control upload let vm = this; let at = { @@ -864,53 +864,45 @@ export default { files: vm.uploadFiles, notes: "" }; + try { + let res = await window.$gz.api.uploadAttachment(at); - window.$gz.api - .uploadAttachment(at) - .then(res => { - if (res.error) { - window.$gz.errorHandler.handleFormError(res.error); - } else { - let ret = []; - for (let i = 0; i < res.data.length; i++) { - let o = res.data[i]; + if (res.error) { + window.$gz.errorHandler.handleFormError(res.error); + } else { + let ret = []; + for (let i = 0; i < res.data.length; i++) { + let o = res.data[i]; - // if ( - // window.$gz.util.isImageAttachment( - // o.displayFileName, - // o.contentType - // ) - // ) { - //let them attach any file type to the wiki since it supports it anyway - ret.push({ - id: o.id, - url: window.$gz.api.attachmentDownloadUrl(o.id, o.contentType), - name: o.displayFileName - }); - //} - } - //put into attachments list - vm.attachments = ret; - //NOW iterate upload files list and insert into wiki based on attachments - //insert into wiki - for (let i = 0; i < vm.uploadFiles.length; i++) { - let upFile = vm.uploadFiles[i]; - for (let j = 0; j < vm.attachments.length; j++) { - let atFile = vm.attachments[j]; - if (upFile.name == atFile.name) { - //found it - this.insertUrl(atFile.url, atFile.name); - break; - } + //let them attach any file type to the wiki since it supports it anyway + ret.push({ + id: o.id, + url: window.$gz.api.attachmentDownloadUrl(o.id, o.contentType), + name: o.displayFileName + }); + //} + } + //put into attachments list + vm.attachments = ret; + //NOW iterate upload files list and insert into wiki based on attachments + //insert into wiki + for (let i = 0; i < vm.uploadFiles.length; i++) { + let upFile = vm.uploadFiles[i]; + for (let j = 0; j < vm.attachments.length; j++) { + let atFile = vm.attachments[j]; + if (upFile.name == atFile.name) { + //found it + this.insertUrl(atFile.url, atFile.name); + break; } } - //finally, clear the upload files - vm.uploadFiles = []; } - }) - .catch(function handleUploadError(error) { - window.$gz.errorHandler.handleFormError(error); - }); + //finally, clear the upload files + vm.uploadFiles = []; + } + } catch (error) { + window.$gz.errorHandler.handleFormError(error); + } }, onDrop(ev) { //Drop image file diff --git a/ayanova/src/views/adm-global-select-templates.vue b/ayanova/src/views/adm-global-select-templates.vue index 201c269b..db8140fa 100644 --- a/ayanova/src/views/adm-global-select-templates.vue +++ b/ayanova/src/views/adm-global-select-templates.vue @@ -88,43 +88,38 @@ const FORM_KEY = "adm-global-select-templates"; const API_BASE_URL = "pick-list/template/"; export default { - beforeRouteLeave(to, from, next) { - //let vm = this; - if (this.formState.dirty) { - window.$gz.dialog.confirmLeaveUnsaved().then(dialogResult => { - if (dialogResult == true) { - next(); - } else { - next(false); - } - }); - } else { + async beforeRouteLeave(to, from, next) { + if (!this.formState.dirty) { next(); + return; + } + if ((await window.$gz.dialog.confirmLeaveUnsaved()) === true) { + next(); + } else { + next(false); } }, beforeDestroy() { window.$gz.eventBus.$off("menu-click", clickHandler); }, - created() { + async created() { let vm = this; - - initForm(vm) - .then(() => { - vm.formState.ready = true; - vm.readOnly = !vm.rights.change; - window.$gz.eventBus.$on("menu-click", clickHandler); - //NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here - //modify the menu as necessary - generateMenu(vm, false); //default is never read only and passing in this vm - //init disable save button so it can be enabled only on edit to show dirty form - window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); - window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":delete"); - vm.formState.loading = false; - }) - .catch(err => { - vm.formState.ready = true; - window.$gz.errorHandler.handleFormError(err, vm); - }); + try { + await initForm(vm); + vm.formState.ready = true; + vm.readOnly = !vm.rights.change; + window.$gz.eventBus.$on("menu-click", clickHandler); + //NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here + //modify the menu as necessary + generateMenu(vm, false); //default is never read only and passing in this vm + //init disable save button so it can be enabled only on edit to show dirty form + window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); + window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":delete"); + vm.formState.loading = false; + } catch (err) { + vm.formState.ready = true; + window.$gz.errorHandler.handleFormError(err, vm); + } }, data() { return { @@ -236,7 +231,7 @@ export default { vm.getDataFromApi(); } }, - getDataFromApi() { + async getDataFromApi() { let vm = this; vm.formState.loading = true; if (!vm.templateId || vm.templateId == 0) { @@ -244,51 +239,50 @@ export default { } vm.lastFetchedTemplateId = vm.templateId; window.$gz.form.deleteAllErrorBoxErrors(vm); + try { + //get available fields + let res = await window.$gz.api.get( + API_BASE_URL + "listfields/" + vm.templateId + ); - //get available fields - window.$gz.api - .get(API_BASE_URL + "listfields/" + vm.templateId) - .then(res => { - if (res.error) { - vm.formState.serverError = res.error; - window.$gz.form.setErrorBoxErrors(vm); - } else { - vm.availableFields = res.data; - vm.fieldKeys = []; - for (let i = 0; i < res.data.length; i++) { - vm.fieldKeys.push(res.data[i].tKey); - } - return window.$gz.translation.cacheTranslations(vm.fieldKeys); + if (res.error) { + vm.formState.serverError = res.error; + window.$gz.form.setErrorBoxErrors(vm); + } else { + vm.availableFields = res.data; + vm.fieldKeys = []; + for (let i = 0; i < res.data.length; i++) { + vm.fieldKeys.push(res.data[i].tKey); } - }) - .then(function() { - //weirdly, this wasn't working properly until I put it in a function, it was just executing immediately before translations were resolved from fetch above - //get current edited template - window.$gz.api.get(API_BASE_URL + vm.templateId).then(res => { - if (res.error) { - vm.formState.serverError = res.error; - window.$gz.form.setErrorBoxErrors(vm); - } else { - vm.obj = res.data; - synthesizeWorkingArray(vm); - //Update the form status - window.$gz.form.setFormState({ - vm: vm, - dirty: false, - valid: true, - loading: false - }); - } - }); - }) - .catch(function handleGetDataFromAPIError(error) { + await window.$gz.translation.cacheTranslations(vm.fieldKeys); + } + + //weirdly, this wasn't working properly until I put it in a function, it was just executing immediately before translations were resolved from fetch above + //get current edited template + res = await window.$gz.api.get(API_BASE_URL + vm.templateId); + + if (res.error) { + vm.formState.serverError = res.error; + window.$gz.form.setErrorBoxErrors(vm); + } else { + vm.obj = res.data; + synthesizeWorkingArray(vm); //Update the form status window.$gz.form.setFormState({ vm: vm, + dirty: false, + valid: true, loading: false }); - window.$gz.errorHandler.handleFormError(error, vm); + } + } catch (error) { + //Update the form status + window.$gz.form.setFormState({ + vm: vm, + loading: false }); + window.$gz.errorHandler.handleFormError(error, vm); + } }, submit() { let vm = this; diff --git a/ayanova/src/views/widget.vue b/ayanova/src/views/widget.vue index 1c90c7f2..eccdd6cd 100644 --- a/ayanova/src/views/widget.vue +++ b/ayanova/src/views/widget.vue @@ -312,7 +312,7 @@ export default { next(); return; } - if ((await window.$gz.dialog.confirmLeaveUnsaved()) == true) { + if ((await window.$gz.dialog.confirmLeaveUnsaved()) === true) { next(); } else { next(false);