From 130a6d5f0386e3bb12a81cddec2dabaf465f8268 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 9 Sep 2021 22:36:00 +0000 Subject: [PATCH] Last report implemented throughout --- ayanova/devdocs/todo.txt | 3 +- ayanova/src/App.vue | 3 +- ayanova/src/components/data-table.vue | 5 +- ayanova/src/store.js | 3 +- ayanova/src/views/acc-service-bank.vue | 34 ++++-------- ayanova/src/views/acc-service-banks.vue | 26 ++------- ayanova/src/views/acc-service-rate.vue | 36 ++++--------- ayanova/src/views/acc-service-rates.vue | 26 ++------- ayanova/src/views/acc-tax-code.vue | 35 ++++-------- ayanova/src/views/acc-tax-codes.vue | 28 +++------- ayanova/src/views/acc-travel-rate.vue | 36 ++++--------- ayanova/src/views/acc-travel-rates.vue | 26 ++------- ayanova/src/views/adm-attachments.vue | 1 + ayanova/src/views/adm-translation.vue | 36 +++++-------- ayanova/src/views/adm-user.vue | 35 ++++-------- ayanova/src/views/adm-users.vue | 25 ++------- ayanova/src/views/cust-customer-note.vue | 37 ++++--------- ayanova/src/views/cust-customer-notes.vue | 26 ++------- ayanova/src/views/cust-customer.vue | 36 ++++--------- ayanova/src/views/cust-customers.vue | 26 ++------- ayanova/src/views/cust-head-office.vue | 36 ++++--------- ayanova/src/views/cust-head-offices.vue | 26 ++------- ayanova/src/views/cust-user.vue | 35 ++++-------- ayanova/src/views/cust-users.vue | 29 +++------- ayanova/src/views/customer-csr-edit.vue | 53 ++++++------------- ayanova/src/views/customer-csr.vue | 40 ++++---------- ayanova/src/views/home-memo.vue | 36 ++++--------- ayanova/src/views/home-memos.vue | 26 ++------- ayanova/src/views/home-notifications.vue | 2 +- ayanova/src/views/home-notify-direct.vue | 2 +- .../src/views/home-notify-subscription.vue | 42 ++++++--------- .../src/views/home-notify-subscriptions.vue | 2 +- ayanova/src/views/home-reminder.vue | 35 ++++-------- ayanova/src/views/home-reminders.vue | 26 ++------- ayanova/src/views/home-review.vue | 35 ++++-------- ayanova/src/views/home-reviews.vue | 26 ++------- ayanova/src/views/home-search.vue | 2 +- ayanova/src/views/home-security.vue | 2 +- ayanova/src/views/home-user-settings.vue | 3 +- ayanova/src/views/inv-part-assemblies.vue | 26 ++------- ayanova/src/views/inv-part-assembly.vue | 35 ++++-------- .../views/inv-part-inventory-transactions.vue | 28 +++------- ayanova/src/views/inv-part-inventory.vue | 32 ++--------- ayanova/src/views/inv-part-requests.vue | 32 ++--------- ayanova/src/views/inv-part-warehouse.vue | 37 ++++--------- ayanova/src/views/inv-part-warehouses.vue | 31 +++-------- ayanova/src/views/inv-part.vue | 37 ++++--------- ayanova/src/views/inv-parts.vue | 30 +++-------- ayanova/src/views/inv-purchase-order.vue | 38 ++++--------- ayanova/src/views/inv-purchase-orders.vue | 30 +++-------- ayanova/src/views/svc-contract.vue | 36 ++++--------- ayanova/src/views/svc-contracts.vue | 26 ++------- ayanova/src/views/svc-csr.vue | 42 ++++----------- ayanova/src/views/svc-csrs.vue | 32 ++--------- ayanova/src/views/svc-loaner.vue | 35 ++++-------- ayanova/src/views/svc-loaners.vue | 26 ++------- ayanova/src/views/svc-meter-reading.vue | 42 ++++----------- ayanova/src/views/svc-meter-readings.vue | 33 ++---------- ayanova/src/views/svc-pm-item-expenses.vue | 31 ++--------- ayanova/src/views/svc-pm-item-labors.vue | 31 ++--------- ayanova/src/views/svc-pm-item-loans.vue | 31 ++--------- .../views/svc-pm-item-outside-services.vue | 31 ++--------- ayanova/src/views/svc-pm-item-parts.vue | 31 ++--------- .../src/views/svc-pm-item-scheduled-users.vue | 31 ++--------- ayanova/src/views/svc-pm-item-tasks.vue | 31 ++--------- ayanova/src/views/svc-pm-item-travels.vue | 31 ++--------- ayanova/src/views/svc-pm-item-units.vue | 31 ++--------- ayanova/src/views/svc-pm-items.vue | 25 ++------- ayanova/src/views/svc-pm.vue | 35 ++++-------- ayanova/src/views/svc-pms.vue | 25 ++------- ayanova/src/views/svc-project.vue | 35 ++++-------- ayanova/src/views/svc-projects.vue | 28 +++------- ayanova/src/views/svc-quote-item-expenses.vue | 31 ++--------- ayanova/src/views/svc-quote-item-labors.vue | 31 ++--------- ayanova/src/views/svc-quote-item-loans.vue | 31 ++--------- .../views/svc-quote-item-outside-services.vue | 31 ++--------- ayanova/src/views/svc-quote-item-parts.vue | 31 ++--------- .../views/svc-quote-item-scheduled-users.vue | 31 ++--------- ayanova/src/views/svc-quote-item-tasks.vue | 31 ++--------- ayanova/src/views/svc-quote-item-travels.vue | 31 ++--------- ayanova/src/views/svc-quote-item-units.vue | 31 ++--------- ayanova/src/views/svc-quote-items.vue | 25 ++------- ayanova/src/views/svc-quote.vue | 35 ++++-------- ayanova/src/views/svc-quotes.vue | 25 ++------- ayanova/src/views/svc-task-group.vue | 35 ++++-------- ayanova/src/views/svc-unit-model.vue | 36 ++++--------- ayanova/src/views/svc-unit-models.vue | 26 ++------- ayanova/src/views/svc-unit.vue | 36 ++++--------- ayanova/src/views/svc-units.vue | 26 ++------- .../src/views/svc-workorder-item-expenses.vue | 31 ++--------- .../src/views/svc-workorder-item-labors.vue | 31 ++--------- .../src/views/svc-workorder-item-loans.vue | 1 + .../svc-workorder-item-outside-services.vue | 1 + .../svc-workorder-item-part-requests.vue | 1 + .../src/views/svc-workorder-item-parts.vue | 1 + .../svc-workorder-item-scheduled-users.vue | 1 + .../src/views/svc-workorder-item-tasks.vue | 1 + .../src/views/svc-workorder-item-travels.vue | 31 ++--------- .../src/views/svc-workorder-item-units.vue | 31 ++--------- ayanova/src/views/svc-workorder-items.vue | 25 ++------- ayanova/src/views/svc-workorder.vue | 35 +----------- ayanova/src/views/svc-workorders.vue | 32 +---------- ayanova/src/views/vendor.vue | 36 ++++--------- ayanova/src/views/vendors.vue | 26 ++------- 104 files changed, 634 insertions(+), 2169 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 31920002..1c7696a4 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -9,8 +9,6 @@ ## ROUGH SCHEDULE - GetLastReport is not implemented anywhere but is useful adn key - lastreport new icon or no icon or...?? Erase all data / generate data should maybe also erase all local cached browser data like ?reset ?? or maybe not, this is related to reports which I think don't clear in erasedatabase?? @@ -722,4 +720,5 @@ BUILD 130 CHANGES OF NOTE - About form: fixed bug that allowed customer / ho type user to view license info - Fixed picklist bug that could in rare circumstances (no tags but has variant type for specific purpose) result in error at the server due to trailing " and " clause in query - CustomerServiceRequest Customer / HeadOffice user interface: completed. Customer user can create / view their csrs, headoffice user can create / view their customer's csrs +- UI Menu all reportable pages: now have an additional menu option under Reports which is a quick access link to the most recent report used for that form on that browser diff --git a/ayanova/src/App.vue b/ayanova/src/App.vue index 0a201b03..a682f227 100644 --- a/ayanova/src/App.vue +++ b/ayanova/src/App.vue @@ -217,7 +217,8 @@ - {{ $ay.t(item.title) }} + {{ item.title }} + {{ $ay.t(item.title) }} diff --git a/ayanova/src/components/data-table.vue b/ayanova/src/components/data-table.vue index 1c86b9d5..7ffe2e96 100644 --- a/ayanova/src/components/data-table.vue +++ b/ayanova/src/components/data-table.vue @@ -1304,12 +1304,13 @@ function saveFormSettings(vm) { //preserve anything not directly related to datatable //for now it's just the last report so nothing fancy here let formSettings = window.$gz.form.getFormSettings(vm.formKey); - console.log("datatable-saveformsettings fetched is:", formSettings); + if (formSettings != null && formSettings.saved != null) { if (formSettings.saved.lastReport != null) { - newFormSettings.lastReport = formSettings.saved.lastReport; + newFormSettings.saved.lastReport = formSettings.saved.lastReport; } } + window.$gz.form.setFormSettings(vm.formKey, newFormSettings); } diff --git a/ayanova/src/store.js b/ayanova/src/store.js index 0f6064d5..3eafbddd 100644 --- a/ayanova/src/store.js +++ b/ayanova/src/store.js @@ -13,7 +13,7 @@ if (window.location.search) { var searchParams = new URLSearchParams(window.location.search); if (searchParams.has("reset")) { localStorage.removeItem("AyaNova"); - console.log("RESET LOCAL SETTINGS"); + console.log("LOCAL SETTINGS RESET"); } } @@ -185,7 +185,6 @@ export default new Vuex.Store({ state.formSettings = {}; }, setFormSettings(state, data) { - console.log("Store::setformsettings", data); state.formSettings[data.formKey] = data.formSettings; }, clearFormSettings(state, formKey) { diff --git a/ayanova/src/views/acc-service-bank.vue b/ayanova/src/views/acc-service-bank.vue index a73ae0b7..24397311 100644 --- a/ayanova/src/views/acc-service-bank.vue +++ b/ayanova/src/views/acc-service-bank.vue @@ -380,34 +380,18 @@ async function clickHandler(menuItem) { break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.ServiceBank } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.ServiceBank, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.ServiceBank } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; default: diff --git a/ayanova/src/views/acc-service-banks.vue b/ayanova/src/views/acc-service-banks.vue index bf5d00f3..b06cfdad 100644 --- a/ayanova/src/views/acc-service-banks.vue +++ b/ayanova/src/views/acc-service-banks.vue @@ -126,37 +126,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.ServiceBank } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.ServiceBank - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.ServiceBank } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -207,6 +190,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-service-rate.vue b/ayanova/src/views/acc-service-rate.vue index 6a8540e5..f130d397 100644 --- a/ayanova/src/views/acc-service-rate.vue +++ b/ayanova/src/views/acc-service-rate.vue @@ -531,35 +531,20 @@ async function clickHandler(menuItem) { case "duplicate": m.vm.duplicate(); break; - case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.ServiceRate } - }); - } else { - //general report selector chosen - let res = await m.vm.$refs.reportSelector.open({ + case "report": + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.ServiceRate, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.ServiceRate } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; default: @@ -624,6 +609,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-service-rates.vue b/ayanova/src/views/acc-service-rates.vue index 4545b7ce..74db3f09 100644 --- a/ayanova/src/views/acc-service-rates.vue +++ b/ayanova/src/views/acc-service-rates.vue @@ -73,37 +73,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.ServiceRate } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.ServiceRate - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.ServiceRate } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -152,6 +135,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-tax-code.vue b/ayanova/src/views/acc-tax-code.vue index 1320d0d6..13684ef4 100644 --- a/ayanova/src/views/acc-tax-code.vue +++ b/ayanova/src/views/acc-tax-code.vue @@ -502,34 +502,18 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.TaxCode } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.TaxCode, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.TaxCode } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; default: @@ -594,6 +578,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-tax-codes.vue b/ayanova/src/views/acc-tax-codes.vue index 6af21674..4ee20efa 100644 --- a/ayanova/src/views/acc-tax-codes.vue +++ b/ayanova/src/views/acc-tax-codes.vue @@ -71,35 +71,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.TaxCode } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( - m.vm.$refs.gzdatatable.getDataListSelection(window.$gz.type.TaxCode) + m.vm.$refs.gzdatatable.getDataListSelection( + window.$gz.type.TaxCode + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.TaxCode } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -148,6 +133,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-travel-rate.vue b/ayanova/src/views/acc-travel-rate.vue index 820e96c6..ef95a065 100644 --- a/ayanova/src/views/acc-travel-rate.vue +++ b/ayanova/src/views/acc-travel-rate.vue @@ -530,36 +530,19 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.TravelRate } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.TravelRate, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.TravelRate } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -622,6 +605,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/acc-travel-rates.vue b/ayanova/src/views/acc-travel-rates.vue index 449bab2b..c84f0571 100644 --- a/ayanova/src/views/acc-travel-rates.vue +++ b/ayanova/src/views/acc-travel-rates.vue @@ -73,37 +73,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.TravelRate } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.TravelRate - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.TravelRate } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -152,6 +135,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/adm-attachments.vue b/ayanova/src/views/adm-attachments.vue index 68b9b47b..6a91a17f 100644 --- a/ayanova/src/views/adm-attachments.vue +++ b/ayanova/src/views/adm-attachments.vue @@ -299,6 +299,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/adm-translation.vue b/ayanova/src/views/adm-translation.vue index 292a69ed..45f78a55 100644 --- a/ayanova/src/views/adm-translation.vue +++ b/ayanova/src/views/adm-translation.vue @@ -516,31 +516,20 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.Translation } - }); - } else { - //general report selector chosen - let res = await m.vm.$refs.reportSelector.open(); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.Translation } - }); + let res = await m.vm.$refs.reportSelector.open( + { + AType: window.$gz.type.Translation, + selectedRowIds: [m.vm.obj.id] + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; + default: window.$gz.eventBus.$emit( "notify-warning", @@ -607,6 +596,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/adm-user.vue b/ayanova/src/views/adm-user.vue index 85baf6b9..805cefff 100644 --- a/ayanova/src/views/adm-user.vue +++ b/ayanova/src/views/adm-user.vue @@ -961,34 +961,18 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.User } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.User, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.User } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; case "directnotify": @@ -1091,6 +1075,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/adm-users.vue b/ayanova/src/views/adm-users.vue index 4f98b81f..8a59b867 100644 --- a/ayanova/src/views/adm-users.vue +++ b/ayanova/src/views/adm-users.vue @@ -71,32 +71,16 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.User } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( - m.vm.$refs.gzdatatable.getDataListSelection(window.$gz.type.User) + m.vm.$refs.gzdatatable.getDataListSelection(window.$gz.type.User), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.User } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; case "directnotify": @@ -164,6 +148,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-customer-note.vue b/ayanova/src/views/cust-customer-note.vue index 6d4a81ab..7c987c8d 100644 --- a/ayanova/src/views/cust-customer-note.vue +++ b/ayanova/src/views/cust-customer-note.vue @@ -383,37 +383,21 @@ async function clickHandler(menuItem) { params: { recordid: 0 } }); break; - case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.CustomerNote } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.CustomerNote, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.CustomerNote } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; + default: window.$gz.eventBus.$emit( "notify-warning", @@ -474,6 +458,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-customer-notes.vue b/ayanova/src/views/cust-customer-notes.vue index 0c39427a..4007a079 100644 --- a/ayanova/src/views/cust-customer-notes.vue +++ b/ayanova/src/views/cust-customer-notes.vue @@ -99,37 +99,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.CustomerNote } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.CustomerNote - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.CustomerNote } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -179,6 +162,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-customer.vue b/ayanova/src/views/cust-customer.vue index ce1fdad5..21255a6f 100644 --- a/ayanova/src/views/cust-customer.vue +++ b/ayanova/src/views/cust-customer.vue @@ -1359,36 +1359,19 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.Customer } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.Customer, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.Customer } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; - case "geoview": window.$gz.util.viewGeoLocation({ latitude: m.vm.obj.latitude, @@ -1508,6 +1491,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-customers.vue b/ayanova/src/views/cust-customers.vue index 4e9f6e43..f7fef128 100644 --- a/ayanova/src/views/cust-customers.vue +++ b/ayanova/src/views/cust-customers.vue @@ -103,37 +103,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.Customer } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.Customer - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.Customer } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -182,6 +165,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-head-office.vue b/ayanova/src/views/cust-head-office.vue index 1c65352b..9807df8f 100644 --- a/ayanova/src/views/cust-head-office.vue +++ b/ayanova/src/views/cust-head-office.vue @@ -1245,36 +1245,19 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.HeadOffice } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.HeadOffice, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.HeadOffice } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; - case "geoview": window.$gz.util.viewGeoLocation({ latitude: m.vm.obj.latitude, @@ -1358,6 +1341,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-head-offices.vue b/ayanova/src/views/cust-head-offices.vue index 7709786f..c9adcfba 100644 --- a/ayanova/src/views/cust-head-offices.vue +++ b/ayanova/src/views/cust-head-offices.vue @@ -73,37 +73,20 @@ async function clickHandler(menuItem) { } break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.HeadOffice } - }); - } else { - //general report selector chosen - + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.HeadOffice - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.HeadOffice } - }); + generateMenu(m.vm); //refresh the menu with the new report } break; - default: window.$gz.eventBus.$emit( "notify-warning", @@ -152,6 +135,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-user.vue b/ayanova/src/views/cust-user.vue index 153ab966..5395d2b0 100644 --- a/ayanova/src/views/cust-user.vue +++ b/ayanova/src/views/cust-user.vue @@ -1004,34 +1004,18 @@ async function clickHandler(menuItem) { m.vm.duplicate(); break; case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.User } - }); - } else { - //general report selector chosen - - let res = await m.vm.$refs.reportSelector.open({ + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.User, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.User } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); + generateMenu(m.vm); break; case "directnotify": //nav to direct notify with list of users appended to route @@ -1114,6 +1098,7 @@ function generateMenu(vm) { if (lastReport != null) { menuOptions.menuItems.push({ title: lastReport.name, + notrans: true, icon: "$ayiFileAlt", key: FORM_KEY + ":report:" + lastReport.id, vm: vm diff --git a/ayanova/src/views/cust-users.vue b/ayanova/src/views/cust-users.vue index a2b04ef9..9299aec3 100644 --- a/ayanova/src/views/cust-users.vue +++ b/ayanova/src/views/cust-users.vue @@ -9,7 +9,7 @@