From de48dce53cb73ffafc4e970d3d5df9a07bae4872 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 15 Dec 2020 17:59:51 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 1 - ayanova/src/views/home-memo.vue | 96 ++++++++++++++++++++++++++------- 2 files changed, 78 insertions(+), 19 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index a159348a..56f4878a 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -31,7 +31,6 @@ todo: biz rule like validatecansave and validatecandelete but validatecanFetch f currently doing: MEMO - - Read needs to set viewed flag on GET READ menu items Reply, Forward compose - must filter OUT outside users, currently they show, new picklist I guess with extra criteria? diff --git a/ayanova/src/views/home-memo.vue b/ayanova/src/views/home-memo.vue index 0d70bba8..fe62e765 100644 --- a/ayanova/src/views/home-memo.vue +++ b/ayanova/src/views/home-memo.vue @@ -8,10 +8,10 @@ - + - + +

+ {{ $ay.t("MemoToID") }}
{{ obj.fromName }} +

+
0; + console.log("UpdateSaveCalled: ", { + formstate: this.formState, + hasSelection: hasSelection + }); //enable / disable save button if ( this.formState.dirty && @@ -512,6 +522,33 @@ export default { }); window.$gz.errorHandler.handleFormError(error, vm); } + }, + replyForward(forward) { + let vm = this; + if (!forward) { + //REPLY MODE + vm.obj.toId = vm.obj.fromId; + vm.replyMode = true; + vm.toUsers.push({ id: vm.obj.fromId }); + } + let header = `${vm.$ay.t("MemoSent")} ${vm.$ay.dt( + vm.obj.sent + )}\n${vm.$ay.t("MemoFromID")} ${vm.obj.fromName}\n${vm.$ay.t( + "MemoSubject" + )} ${vm.obj.name}\n`; + + vm.obj.name = `${vm.$ay.t("MemoRe")} ${vm.obj.name}`; + vm.obj.notes = `\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n${header}\n\n${vm.obj.notes}`; + vm.obj.id = 0; + vm.composing = true; + generateMenu(vm); + window.$gz.form.setFormState({ + vm: vm, + dirty: true, + valid: true, + loading: false + }); + vm.updateSave(); } //end methods @@ -570,6 +607,12 @@ async function clickHandler(menuItem) { }); } break; + case "reply": + m.vm.replyForward(false); + break; + case "forward": + m.vm.replyForward(true); + break; default: window.$gz.eventBus.$emit( @@ -647,16 +690,7 @@ function generateMenu(vm) { }); } - if (vm.rights.change) { - menuOptions.menuItems.push({ - title: "MemoForward", - icon: "$ayiShare", - key: FORM_KEY + ":forward", - vm: vm - }); - } - - if (vm.rights.change) { + if (vm.rights.change && !vm.composing) { menuOptions.menuItems.push({ title: "MemoReply", icon: "$ayiReply", @@ -664,7 +698,14 @@ function generateMenu(vm) { vm: vm }); } - + if (vm.rights.change && !vm.composing) { + menuOptions.menuItems.push({ + title: "MemoForward", + icon: "$ayiShare", + key: FORM_KEY + ":forward", + vm: vm + }); + } menuOptions.menuItems.push({ divider: true, inset: false }); window.$gz.eventBus.$emit("menu-change", menuOptions); @@ -695,6 +736,7 @@ async function fetchTranslatedText(vm) { "MemoSent", "MemoForward", "MemoReply", + "MemoRe", "MemoCustom1", "MemoCustom2", "MemoCustom3", @@ -712,5 +754,23 @@ async function fetchTranslatedText(vm) { "MemoCustom15", "MemoCustom16" ]); -} +} /* + + /// + /// Generate a new memo as a Reply or Forward based on this fetched read only memo + /// + /// If true, this is a forward reply to don't set the toID just yet + /// A memo object with fields filled in ready for typing reply/forward text + public Memo ReplyForward(bool bForward) + { + Memo m=Memo.NewItem(); + if(!bForward) + m.ToID=this.FromID; + + m.Subject=LocalizedTextTable.GetLocalizedTextDirect("Memo.Label.Re")+ " " + this.Subject; + m.Message="\r\n\r\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n" + this.Header + "\r\n\r\n" + this.Message; + + return m; + } + */