From 4c5b32ce661ecabf539554893d0eb7f5a21fb4d6 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 29 Oct 2020 21:28:13 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 5 +-- ayanova/src/api/dash-registry.js | 51 ++++++++++++++++++++++++++++ ayanova/src/views/home-dashboard.vue | 8 +++-- 3 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 ayanova/src/api/dash-registry.js diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 177b6913..0484f742 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -16,7 +16,8 @@ todo: DASHBOARD See notes there ELEMENTS dash ui items that can self update and display properly in any form factor - dash registry - collection of dash ui items, the roles they are available for, their unique ID's + central dash registry - collection of dash ui items, the roles they are available for, their unique ID's + stored at *client* statically, (server prevents out of role access to data anyway) [{id:(unique id, probably human readable 'tag-dash-format'),roles:[role array available to]}] User dash registry - user's selected dash widgets to display and the order to display them in plus any unique settings to each one Index in array is their display order @@ -26,7 +27,7 @@ todo: DASHBOARD handles removal, re-ordering events dashboard selection UI UI accessed from dashboard menu allowing user to add widgets - + todo: wireframe / mockup dashboard item objects mockup dash items with all commonality built in, better to start mocking up now than try to design perfectly in advance and then implement COMMON PROPERTIES diff --git a/ayanova/src/api/dash-registry.js b/ayanova/src/api/dash-registry.js new file mode 100644 index 00000000..c048cf5f --- /dev/null +++ b/ayanova/src/api/dash-registry.js @@ -0,0 +1,51 @@ +/** + if ( + window.$gz.role.hasRole([ + role.BizAdminFull, + role.BizAdminLimited, + role.DispatchFull, + role.DispatchLimited, + role.InventoryLimited, + role.InventoryFull, + role.AccountingFull, + role.TechLimited, + role.TechFull, + role.SalesFull, + role.SalesLimited + ]) + ) { + sub.push({ + title: "Search", + icon: "$ayiSearch", + route: "/home-search", + key: key++ + }); + } + */ +import authorizationroles from "./authorizationroles"; +let role = authorizationroles.AUTHORIZATION_ROLES; +export default { + registry: { + dashBizOnlyTest: { + roles: [role.BizAdminFull, role.BizAdminLimited], + title: "Biz only dash item" + }, + dashTechOnlyTest: { + roles: [role.TechFull, role.TechLimited], + title: "Tech only dash item" + }, + dashSalesOnlyTest: { + roles: [role.SalesFull, role.TechLSalesLimitedimited], + title: "Sales only dash item" + } + }, + availableItems() { + let ret=[]; + for (const [key, value] of Object.entries(this.registry)) { + // console.log(`key: ${key}, value: ${JSON.stringify(value)}`); + if(authorizationroles.hasRole(value.roles)){ + ret.push() + } + } + } +}; diff --git a/ayanova/src/views/home-dashboard.vue b/ayanova/src/views/home-dashboard.vue index 017f2283..b83a7e7d 100644 --- a/ayanova/src/views/home-dashboard.vue +++ b/ayanova/src/views/home-dashboard.vue @@ -10,8 +10,8 @@ xl="3" >