From d42da74592f30ce82b9939078c93abd9bb600a03 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 7 Dec 2020 20:15:29 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 13 ++++--- ayanova/src/api/biz-role-rights.js | 34 ++++++++----------- ayanova/src/api/gzmenu.js | 2 +- ayanova/src/views/adm-global-logo.vue | 1 + .../src/views/adm-global-select-templates.vue | 1 + ayanova/src/views/adm-translation.vue | 1 + ayanova/src/views/adm-user.vue | 1 + ayanova/src/views/ay-customize.vue | 1 + ayanova/src/views/ay-data-list-view.vue | 1 + ayanova/src/views/ay-report-edit.vue | 1 + ayanova/src/views/cust-customer-note.vue | 1 + ayanova/src/views/cust-customer-notes.vue | 1 + ayanova/src/views/cust-user.vue | 1 + .../src/views/home-notify-subscription.vue | 1 + ayanova/src/views/ops-backup.vue | 5 +-- ayanova/src/views/ops-jobs.vue | 1 + .../src/views/ops-notification-settings.vue | 7 ++-- ayanova/src/views/ops-notify-queue.vue | 1 + ayanova/src/views/ops-server-state.vue | 1 + ayanova/src/views/widget.vue | 1 + 20 files changed, 48 insertions(+), 28 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 98818349..94476422 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -5,10 +5,13 @@ MISC ITEMS THAT CAME UP + + todo: TWEAK Init menu code - tweaked but not quite right, need to go through as each user role and make sure it's correct - right now sales can see admin translations because everyone has read access to translations for themselves I think - but it should be canChange for that particular one and possibly others + SubContractorFull && SubContractorLimited has no rights to anything outside their own ?! + + +todo: sample headoffice user can't login todo: No roles defined Users can login Customer user with no roles can login and gets a CSR list screen @@ -36,7 +39,6 @@ todo: customer users and regular users really need to reconsider not using a sta Also roles could then show on the customer-user grid which would be handy for some AT LEAST put a wait spinner on that page -todo: server unreachable error box on login form, show as a warning, not an error, it's not necessarily an unusual condition todo: deleting customer must attempt to delete the following as they are entered "in" form and not selected externally so they are part of Customer and should delete with it: @@ -65,6 +67,9 @@ todo: Case 3595 Mass delete extension Do this early as it will be copied over and over again +todo: BizRoles.cs at server: + Change so that workorder structure just copies from top workorder item and similar for others + Ideally we want a central spot for all workorder roles and then just tweak as necessary below it ............................................................ diff --git a/ayanova/src/api/biz-role-rights.js b/ayanova/src/api/biz-role-rights.js index e9988ffe..e00c8eff 100644 --- a/ayanova/src/api/biz-role-rights.js +++ b/ayanova/src/api/biz-role-rights.js @@ -10,13 +10,13 @@ export default { Contract: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, HeadOffice: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, LoanUnit: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - Part: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, + Part: { Change: 98, ReadFullRecord: 98717, Select: 131071 }, + PurchaseOrder: { Change: 98, ReadFullRecord: 98717, Select: 131071 }, PM: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMTemplateItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, Project: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - PurchaseOrder: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, Quote: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, QuoteItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, QuoteTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, @@ -24,29 +24,25 @@ export default { Unit: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, UnitModel: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, Vendor: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrder: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItemExpense: { - Change: 33098, - ReadFullRecord: 65669, - Select: 131071 - }, - WorkOrderItemLabor: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItemLoan: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItemPart: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, + WorkOrder: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItem: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemExpense: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemLabor: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemLoan: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemPart: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, WorkOrderItemPartRequest: { - Change: 33098, - ReadFullRecord: 65669, + Change: 330, + ReadFullRecord: 98437, Select: 131071 }, WorkOrderItemScheduledUser: { - Change: 33098, - ReadFullRecord: 65669, + Change: 330, + ReadFullRecord: 98437, Select: 131071 }, - WorkOrderItemTask: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItemTravel: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, - WorkOrderItemUnit: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, + WorkOrderItemTask: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemTravel: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, + WorkOrderItemUnit: { Change: 330, ReadFullRecord: 98437, Select: 131071 }, WorkOrderTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderTemplateItem: { Change: 33098, diff --git a/ayanova/src/api/gzmenu.js b/ayanova/src/api/gzmenu.js index c3aef865..0013078d 100644 --- a/ayanova/src/api/gzmenu.js +++ b/ayanova/src/api/gzmenu.js @@ -47,7 +47,7 @@ export default { vm.appBar.title = ctx.title; vm.appBar.readOnly = ctx.readOnly; - //:color="appBar.isMain ? 'primary' : 'secondary'" + if (ctx.readOnly === true) { vm.appBar.color = "readonlybanner"; } else { diff --git a/ayanova/src/views/adm-global-logo.vue b/ayanova/src/views/adm-global-logo.vue index a4f495b6..339e3ac2 100644 --- a/ayanova/src/views/adm-global-logo.vue +++ b/ayanova/src/views/adm-global-logo.vue @@ -254,6 +254,7 @@ function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: null, title: "GlobalLogo", helpUrl: "form-adm-global-logo", diff --git a/ayanova/src/views/adm-global-select-templates.vue b/ayanova/src/views/adm-global-select-templates.vue index 4838c717..308d3fe3 100644 --- a/ayanova/src/views/adm-global-select-templates.vue +++ b/ayanova/src/views/adm-global-select-templates.vue @@ -399,6 +399,7 @@ function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: null, title: "PickListTemplates", helpUrl: "form-adm-global-select-templates", diff --git a/ayanova/src/views/adm-translation.vue b/ayanova/src/views/adm-translation.vue index e47a0262..bbfe32ef 100644 --- a/ayanova/src/views/adm-translation.vue +++ b/ayanova/src/views/adm-translation.vue @@ -569,6 +569,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiLanguage", title: "Translation", helpUrl: "form-adm-translation", diff --git a/ayanova/src/views/adm-user.vue b/ayanova/src/views/adm-user.vue index 58105077..6a5f8f90 100644 --- a/ayanova/src/views/adm-user.vue +++ b/ayanova/src/views/adm-user.vue @@ -952,6 +952,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiUser", title: "User", helpUrl: "form-adm-user", diff --git a/ayanova/src/views/ay-customize.vue b/ayanova/src/views/ay-customize.vue index 0f92e662..9369353a 100644 --- a/ayanova/src/views/ay-customize.vue +++ b/ayanova/src/views/ay-customize.vue @@ -275,6 +275,7 @@ function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiCustomize", title: "Customize", helpUrl: "form-ay-customize", diff --git a/ayanova/src/views/ay-data-list-view.vue b/ayanova/src/views/ay-data-list-view.vue index 200e1daf..27901eac 100644 --- a/ayanova/src/views/ay-data-list-view.vue +++ b/ayanova/src/views/ay-data-list-view.vue @@ -903,6 +903,7 @@ function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiFilter", title: "DataListView", helpUrl: "form-ay-data-list-view", diff --git a/ayanova/src/views/ay-report-edit.vue b/ayanova/src/views/ay-report-edit.vue index 0693aa4f..f628c4de 100644 --- a/ayanova/src/views/ay-report-edit.vue +++ b/ayanova/src/views/ay-report-edit.vue @@ -1010,6 +1010,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiDraftingCompass", title: "ReportDesignReport", helpUrl: "form-ay-report-edit", diff --git a/ayanova/src/views/cust-customer-note.vue b/ayanova/src/views/cust-customer-note.vue index 42328699..73a29e32 100644 --- a/ayanova/src/views/cust-customer-note.vue +++ b/ayanova/src/views/cust-customer-note.vue @@ -436,6 +436,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiClipboard", title: "CustomerNoteNotes", helpUrl: "form-customer-note", diff --git a/ayanova/src/views/cust-customer-notes.vue b/ayanova/src/views/cust-customer-notes.vue index e34f10d6..40f11618 100644 --- a/ayanova/src/views/cust-customer-notes.vue +++ b/ayanova/src/views/cust-customer-notes.vue @@ -144,6 +144,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiClipboard", title: "CustomerNoteList", helpUrl: "form-customer-notes", diff --git a/ayanova/src/views/cust-user.vue b/ayanova/src/views/cust-user.vue index ea24b734..bc75c32d 100644 --- a/ayanova/src/views/cust-user.vue +++ b/ayanova/src/views/cust-user.vue @@ -962,6 +962,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiUser", title: "Contact", helpUrl: "form-cust-contact", diff --git a/ayanova/src/views/home-notify-subscription.vue b/ayanova/src/views/home-notify-subscription.vue index cfdfab5c..81f9c80d 100644 --- a/ayanova/src/views/home-notify-subscription.vue +++ b/ayanova/src/views/home-notify-subscription.vue @@ -628,6 +628,7 @@ async function clickHandler(menuItem) { function generateMenu(vm) { let menuOptions = { isMain: false, + readOnly: vm.formState.readOnly, icon: "$ayiBullhorn", title: "NotifySubscription", helpUrl: "form-home-notify-subscriptions", diff --git a/ayanova/src/views/ops-backup.vue b/ayanova/src/views/ops-backup.vue index fe77f430..c7243d71 100644 --- a/ayanova/src/views/ops-backup.vue +++ b/ayanova/src/views/ops-backup.vue @@ -74,7 +74,7 @@ data-cy="backupTable" >