From 2128d3d773b05eda61db0b4554c86bc4bb2d87a9 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 21 Feb 2022 23:47:36 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 29 +++++++++++++++++++++++----- ayanova/src/api/dash-registry.js | 24 ++++++++++++++++++++--- ayanova/src/views/home-dashboard.vue | 4 +++- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 383fbd94..43879f12 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -22,15 +22,34 @@ FIRST CLIENT SOURCE CODE COMMIT JAN 3rd 2019 # OUTSTANDING MAJOR AREAS TO BETA +widgets. + +They should be small and highly focused on a particular issue so that the user just picks the one they want and that's it, no config as it's built for a specific config already. +So a hypothetical workorder count per time period widget would have a this month, last month, ytd, last year to date etc or however. Main idea being they are not needed to config, just pick the one you want -do a linux server install fresh again here locally to confirm each step is still legit -spin up another server on d.o. and do a clean install as non root user right through to dns and everything, maybe keep that spare server as one can send link to people -who were interested in trying it out +v7 dashboard help doc: -Seeder should not generate too many closed work orders close to current date and time, it fucks up testing for people. -Only older ones should be closed, newer ones should all be open and only a small portion of them should be closed. +What shows within the Dashboard depends on whether the account you are logged in as is a schedulable resource or not (set in your User entry screen), +and what your security group rights are to Service Workorders, Schedule Markers, Memos, and Customer Service Requests. + +If logged in as a user that is a schedulable resource, the Dashboard is where you can quickly see at a glance, as well as access: +•Overdue provides links to service workorders that were scheduled prior to today's present time and date as a reminder so that you do not forget to enter your +labor, parts, etc as well as checkmark Service Completed. +•Scheduled provides links to service workorders that are scheduled after today's date and time +•Service Rate Quantity shows at a glance totals for today, yesterday, current week, current month and current year of your Labor hours +(or whatever the unit charge is that you use). The label text Service Rate Quantity is taken from your Labor subsection of your service workorder entry screen. +•Reminders provide links to the next three future dated Schedule Markers or Follow Ups assigned to you as a schedulable resource. + +Otherwise quick access for company information (name displayed is from your registered license) or Region specific name is displayed if the user logged in is assigned to a specific Region: +•Not assigned provides links to service workorders that have not yet been assigned to any schedulable resources. +•Overdue provides links to service workorders that were scheduled to schedulable resources of this company/specific region prior to today's present time and date. +Very useful as a reminder for both the dispatch manager and schedulable resources +•Next provides links to service workorders that are scheduled after today's date and time for schedulable resources of this company/specific region +•Service Rate Quantity shows at a glance totals for today, yesterday, current week, current month and current year of schedulable resources of this company/specific region +Labor hours (or whatever the unit charge is that you use). The label text Service Rate Quantity is taken from the Labor subsection of your service workorder entry screen. +•Customer Service Requests provides links to the next three not yet accepted customer service requests. diff --git a/ayanova/src/api/dash-registry.js b/ayanova/src/api/dash-registry.js index c19ad577..815f12d9 100644 --- a/ayanova/src/api/dash-registry.js +++ b/ayanova/src/api/dash-registry.js @@ -13,6 +13,13 @@ export default { // title: "Priciest widgets (all time) ", // type: "GzDashTestListWidgetsPriciest" // }, + { + id: "TestScheduleableOnly", + roles: [role.Tech, role.TechRestricted], + title: "TEST sched user widget", + type: "NextSchedItem", + scheduleableUserOnly: true + }, { id: "TestBarWidgetCountByUserType", roles: [ @@ -22,7 +29,8 @@ export default { role.SalesRestricted ], title: "TEST Bar chart widget", - type: "GzDashTestBarWidgetCountByUserType" + type: "GzDashTestBarWidgetCountByUserType", + scheduleableUserOnly: false }, { id: "TestLineWidgetMonthlyTotalPrice", @@ -33,7 +41,8 @@ export default { role.SalesRestricted ], title: "TEST Line chart widget", - type: "GzDashTestLineWidgetMonthlyTotalPrice" + type: "GzDashTestLineWidgetMonthlyTotalPrice", + scheduleableUserOnly: false }, { id: "TestDayCalendarWidget", @@ -44,14 +53,23 @@ export default { role.SalesRestricted ], title: "TEST calendar widget", - type: "GzDashTestDayCalendarWidget" + type: "GzDashTestDayCalendarWidget", + scheduleableUserOnly: false } ], availableItems() { const ret = []; for (let i = 0; i < this.registry.length; i++) { const item = this.registry[i]; + if (authorizationroles.hasRole(item.roles)) { + //if it's only for sched users and not then skip + if ( + item.scheduleableUserOnly && + !window.$gz.store.getters.isScheduleableUser + ) { + continue; + } ret.push({ id: item.id, title: item.title, type: item.type }); } } diff --git a/ayanova/src/views/home-dashboard.vue b/ayanova/src/views/home-dashboard.vue index 8716e827..a4ae942c 100644 --- a/ayanova/src/views/home-dashboard.vue +++ b/ayanova/src/views/home-dashboard.vue @@ -79,12 +79,14 @@ import DashRegistry from "../api/dash-registry"; import GzDashTestBarWidgetCountByUserType from "../components/dash-test-bar-widget-count-by-usertype.vue"; import GzDashTestLineWidgetMonthlyTotalPrice from "../components/dash-test-line-widget-monthly-total-price.vue"; import GzDashTestDayCalendarWidget from "../components/dash-test-day-calendar-widget.vue"; +import NextSchedItem from "../components/dash-test-day-calendar-widget.vue"; export default { components: { //GzDashTestListWidgetsPriciest, GzDashTestBarWidgetCountByUserType, GzDashTestLineWidgetMonthlyTotalPrice, - GzDashTestDayCalendarWidget + GzDashTestDayCalendarWidget, + NextSchedItem }, data() { return {