This commit is contained in:
2020-10-29 21:28:13 +00:00
parent b0926a34c2
commit 4c5b32ce66
3 changed files with 59 additions and 5 deletions

View File

@@ -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

View File

@@ -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()
}
}
}
};

View File

@@ -10,8 +10,8 @@
xl="3"
>
<gz-dash
:title="'Dash-' + i"
:id="'dash-item-' + i"
:title="'Dash-' + item.id"
:id="'dash-item-' + item.id"
v-on:dash-remove="dashRemove"
v-on:dash-move-start="dashMoveStart"
v-on:dash-move-back="dashMoveBack"
@@ -24,6 +24,7 @@
</template>
<script>
import DashRegistry from "../api/dash-registry";
import GzDash from "../components/dash-base.vue";
/**
*
@@ -47,12 +48,13 @@ export default {
title: "Dashboard",
helpUrl: "form-home-dashboard"
});
DashRegistry.availableItems();
},
methods: {
dashItems: function() {
let ret = [];
for (var i = 0; i < 12; i++) {
ret.push({ index: i, title: `Dash ${i}` });
ret.push({ id: i.toString(), title: `Dash ${i}` });
}
return ret;
},