This commit is contained in:
2020-12-07 20:15:29 +00:00
parent 20652f9aaa
commit d42da74592
20 changed files with 48 additions and 28 deletions

View File

@@ -5,10 +5,13 @@
MISC ITEMS THAT CAME UP MISC ITEMS THAT CAME UP
todo: TWEAK Init menu code todo: TWEAK Init menu code
tweaked but not quite right, need to go through as each user role and make sure it's correct SubContractorFull && SubContractorLimited has no rights to anything outside their own ?!
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
todo: sample headoffice user can't login
todo: No roles defined Users can login todo: No roles defined Users can login
Customer user with no roles can login and gets a CSR list screen 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 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 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: 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 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
............................................................ ............................................................

View File

@@ -10,13 +10,13 @@ export default {
Contract: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, Contract: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
HeadOffice: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, HeadOffice: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
LoanUnit: { 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 }, PM: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
PMItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
PMTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
PMTemplateItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, PMTemplateItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
Project: { 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 }, Quote: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
QuoteItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, QuoteItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
QuoteTemplate: { 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 }, Unit: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
UnitModel: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, UnitModel: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
Vendor: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, Vendor: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
WorkOrder: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrder: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
WorkOrderItem: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderItem: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
WorkOrderItemExpense: { WorkOrderItemExpense: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
Change: 33098, WorkOrderItemLabor: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
ReadFullRecord: 65669, WorkOrderItemLoan: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
Select: 131071 WorkOrderItemPart: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
},
WorkOrderItemLabor: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
WorkOrderItemLoan: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
WorkOrderItemPart: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
WorkOrderItemPartRequest: { WorkOrderItemPartRequest: {
Change: 33098, Change: 330,
ReadFullRecord: 65669, ReadFullRecord: 98437,
Select: 131071 Select: 131071
}, },
WorkOrderItemScheduledUser: { WorkOrderItemScheduledUser: {
Change: 33098, Change: 330,
ReadFullRecord: 65669, ReadFullRecord: 98437,
Select: 131071 Select: 131071
}, },
WorkOrderItemTask: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderItemTask: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
WorkOrderItemTravel: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderItemTravel: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
WorkOrderItemUnit: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderItemUnit: { Change: 330, ReadFullRecord: 98437, Select: 131071 },
WorkOrderTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 }, WorkOrderTemplate: { Change: 33098, ReadFullRecord: 65669, Select: 131071 },
WorkOrderTemplateItem: { WorkOrderTemplateItem: {
Change: 33098, Change: 33098,

View File

@@ -47,7 +47,7 @@ export default {
vm.appBar.title = ctx.title; vm.appBar.title = ctx.title;
vm.appBar.readOnly = ctx.readOnly; vm.appBar.readOnly = ctx.readOnly;
//:color="appBar.isMain ? 'primary' : 'secondary'"
if (ctx.readOnly === true) { if (ctx.readOnly === true) {
vm.appBar.color = "readonlybanner"; vm.appBar.color = "readonlybanner";
} else { } else {

View File

@@ -254,6 +254,7 @@ function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: null, icon: null,
title: "GlobalLogo", title: "GlobalLogo",
helpUrl: "form-adm-global-logo", helpUrl: "form-adm-global-logo",

View File

@@ -399,6 +399,7 @@ function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: null, icon: null,
title: "PickListTemplates", title: "PickListTemplates",
helpUrl: "form-adm-global-select-templates", helpUrl: "form-adm-global-select-templates",

View File

@@ -569,6 +569,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiLanguage", icon: "$ayiLanguage",
title: "Translation", title: "Translation",
helpUrl: "form-adm-translation", helpUrl: "form-adm-translation",

View File

@@ -952,6 +952,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiUser", icon: "$ayiUser",
title: "User", title: "User",
helpUrl: "form-adm-user", helpUrl: "form-adm-user",

View File

@@ -275,6 +275,7 @@ function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiCustomize", icon: "$ayiCustomize",
title: "Customize", title: "Customize",
helpUrl: "form-ay-customize", helpUrl: "form-ay-customize",

View File

@@ -903,6 +903,7 @@ function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiFilter", icon: "$ayiFilter",
title: "DataListView", title: "DataListView",
helpUrl: "form-ay-data-list-view", helpUrl: "form-ay-data-list-view",

View File

@@ -1010,6 +1010,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiDraftingCompass", icon: "$ayiDraftingCompass",
title: "ReportDesignReport", title: "ReportDesignReport",
helpUrl: "form-ay-report-edit", helpUrl: "form-ay-report-edit",

View File

@@ -436,6 +436,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiClipboard", icon: "$ayiClipboard",
title: "CustomerNoteNotes", title: "CustomerNoteNotes",
helpUrl: "form-customer-note", helpUrl: "form-customer-note",

View File

@@ -144,6 +144,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiClipboard", icon: "$ayiClipboard",
title: "CustomerNoteList", title: "CustomerNoteList",
helpUrl: "form-customer-notes", helpUrl: "form-customer-notes",

View File

@@ -962,6 +962,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiUser", icon: "$ayiUser",
title: "Contact", title: "Contact",
helpUrl: "form-cust-contact", helpUrl: "form-cust-contact",

View File

@@ -628,6 +628,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiBullhorn", icon: "$ayiBullhorn",
title: "NotifySubscription", title: "NotifySubscription",
helpUrl: "form-home-notify-subscriptions", helpUrl: "form-home-notify-subscriptions",

View File

@@ -74,7 +74,7 @@
data-cy="backupTable" data-cy="backupTable"
> >
<template v-slot:[`item.actions`]="{ item }"> <template v-slot:[`item.actions`]="{ item }">
<v-btn icon :href="item.url"> <v-btn icon :href="item.url" v-if="item.url">
<v-icon small class="mr-2"> <v-icon small class="mr-2">
$ayiFileDownload $ayiFileDownload
</v-icon> </v-icon>
@@ -105,7 +105,7 @@ export default {
try { try {
await initForm(vm); await initForm(vm);
vm.rights = window.$gz.role.getRights(window.$gz.type.GlobalOps); vm.rights = window.$gz.role.getRights(window.$gz.type.Backup);
vm.formState.readOnly = !vm.rights.change; vm.formState.readOnly = !vm.rights.change;
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
@@ -362,6 +362,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: true, isMain: true,
readOnly: vm.formState.readOnly,
icon: "$ayiFileArchive", icon: "$ayiFileArchive",
title: "Backup", title: "Backup",
helpUrl: "form-ops-backup", helpUrl: "form-ops-backup",

View File

@@ -172,6 +172,7 @@ export default {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: true, isMain: true,
readOnly: vm.formState.readOnly,
icon: "$ayiRobot", icon: "$ayiRobot",
title: "ServerJobs", title: "ServerJobs",
helpUrl: "form-ops-jobs", helpUrl: "form-ops-jobs",

View File

@@ -167,7 +167,7 @@
/* Xeslint-disable */ /* Xeslint-disable */
//////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
const FORM_KEY = "ops-backup"; const FORM_KEY = "ops-notification-settings";
export default { export default {
async created() { async created() {
@@ -175,7 +175,9 @@ export default {
try { try {
await initForm(vm); await initForm(vm);
vm.rights = window.$gz.role.getRights(window.$gz.type.GlobalOps); vm.rights = window.$gz.role.getRights(
window.$gz.type.OpsNotificationSettings
);
vm.formState.readOnly = !vm.rights.change; vm.formState.readOnly = !vm.rights.change;
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
@@ -380,6 +382,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: true, isMain: true,
readOnly: vm.formState.readOnly,
icon: "$ayiBullhorn", icon: "$ayiBullhorn",
title: "NotificationSettings", title: "NotificationSettings",
helpUrl: "form-ops-notification-settings", helpUrl: "form-ops-notification-settings",

View File

@@ -183,6 +183,7 @@ export default {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: true, isMain: true,
readOnly: vm.formState.readOnly,
icon: "$ayiBullhorn", icon: "$ayiBullhorn",
title: "NotifyQueue", title: "NotifyQueue",
helpUrl: "form-ops-notify-queue", helpUrl: "form-ops-notify-queue",

View File

@@ -248,6 +248,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: true, isMain: true,
readOnly: vm.formState.readOnly,
icon: "$ayiDoorOpen", icon: "$ayiDoorOpen",
title: "ServerState", title: "ServerState",
helpUrl: "form-ops-server-state", helpUrl: "form-ops-server-state",

View File

@@ -650,6 +650,7 @@ async function clickHandler(menuItem) {
function generateMenu(vm) { function generateMenu(vm) {
let menuOptions = { let menuOptions = {
isMain: false, isMain: false,
readOnly: vm.formState.readOnly,
icon: "$ayiSplotch", icon: "$ayiSplotch",
title: "Widget", title: "Widget",
helpUrl: "form-widget", helpUrl: "form-widget",