This commit is contained in:
@@ -11,41 +11,60 @@
|
|||||||
|
|
||||||
## ROUGH SCHEDULE TO GET TO BETA
|
## ROUGH SCHEDULE TO GET TO BETA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Schedule form
|
# Schedule form
|
||||||
|
|
||||||
SVC-SCHEDULE OUTSTANDING ITEMS
|
SVC-SCHEDULE OUTSTANDING ITEMS
|
||||||
|
|
||||||
Port fetch events changes to personal schedule
|
Hover show technician??
|
||||||
|
|
||||||
Filter and sort issues:
|
if all events are timed then why am I sending timed as a field back from the server when I can just add that while building the event array at client?
|
||||||
Not in settings? Separate filter icon at top mimic data table UI?
|
|
||||||
Saved filters with order and names so users can quickly flip between groups of users?
|
Choose techs feature:
|
||||||
Consider how to add filter by tag for users to schedule so can quickly select by tag(s)
|
Not in settings, separate feature Show filter icon opens tag picker (or persistent tag picker??)
|
||||||
sort order?? Not sure how to handle this one as filter and ad-hoc sort are at odds
|
tag picker surfaced all time in large views or in settings for narrow views
|
||||||
View schedule by user so can click through user to schedule for *that* user alone, (brings up home-schedule maybe or I guess a copy would be easiest)
|
filters users by tags and shows them in alpha order by name
|
||||||
this will solve issue when people say "Why can't I view month but for one user instead?"
|
NO ability to set the order for this release but we could consider adding a field as a sorting field later
|
||||||
probably easiest from both the User edit form for admin and from the svc-schedule form (maybe a link on their names at top?? Opens same view currently selected but for that *one* user)
|
Tag selection is persistent and stored with the users temp settings so persistent by browser not saved to server
|
||||||
tech selection setting control ?
|
|
||||||
vertical in table in settings
|
|
||||||
show all techs in table with prior selections in order at the top and non selected at the end in alpha order
|
|
||||||
each row has up down control and checkbox to show so "Name|^|v|show"
|
|
||||||
|
|
||||||
During settings form, fetchEvents should be disabled until after save as changing DOW is triggering fetch which can be slow in a loaded sched
|
During settings form, fetchEvents should be disabled until after save as changing DOW is triggering fetch which can be slow in a loaded sched
|
||||||
|
|
||||||
|
See about including no tech items as sched should show them as unassigned or something it's built in for non matches but I could enable that anyway
|
||||||
|
it was in v7
|
||||||
|
maybe always far right by default, but then people may not want it to take up space
|
||||||
|
maybe included with the tag selector as a checkbox to automatically include unassigned
|
||||||
|
maybe it's a drill into unassigned on it's own?? but then can't drag to a tech as would be useful feature of this
|
||||||
|
3698 - hide unassigned tech slot (or case 3697 above would take care of that too)
|
||||||
|
|
||||||
|
Keep both Day view and Category views but make category the default drill into view when click on a date
|
||||||
|
|
||||||
|
User colors? Is this even going to be a thing or needed anymore??
|
||||||
|
in v7 it was only in calendar so if not in calendar now then no need
|
||||||
|
|
||||||
Remove day view options and replace by category view I think, but keep code and see how it goes may be switch back in again if demanded or makes sense
|
|
||||||
instead of new translation key, just use the day name but use it with the category view
|
|
||||||
|
|
||||||
need ability to drag to another tech in category view
|
need ability to drag to another tech in category view
|
||||||
|
|
||||||
3697 - arbitrarily order schedule by user instead of built in by lastname
|
Drill down to schedule by user so can click through user to schedule for *that* user alone, (brings up home-schedule maybe or I guess a copy would be easiest)
|
||||||
schedule settings keyed by form re-use
|
this will solve issue when people say "Why can't I view month but for one user instead?"
|
||||||
3698 - hide unassigned tech slot (or case 3697 above would take care of that too)
|
probably easiest from both the User edit form for admin and from the svc-schedule form (maybe a link on their names at top?? Opens same view currently selected but for that *one* user)
|
||||||
|
This is an important and must have feature for inital release
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3766 - view schedule filtered by customer so can see at a glance all past and future for a single customer (more data table filter similarity)
|
3766 - view schedule filtered by customer so can see at a glance all past and future for a single customer (more data table filter similarity)
|
||||||
"show all " but on a schedule to view that way instead of a data table
|
"show all " but on a schedule to view that way instead of a data table
|
||||||
|
also maybe supported for the customer user as well or defer that but make a case for it as a future feature
|
||||||
|
yes, do this, very important
|
||||||
|
CUST-SCHEDULE
|
||||||
|
|
||||||
|
|
||||||
Customer work order form / view / open???
|
Customer work order form / view / open???
|
||||||
Customer CSR form has a bunch of todo in the template, WTF?
|
Customer CSR form has a bunch of todo in the template, WTF?
|
||||||
Dashboard / widgets
|
Dashboard / widgets
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
@mouseup:day="endDragExtend"
|
@mouseup:day="endDragExtend"
|
||||||
@mouseup:time="endDragExtend"
|
@mouseup:time="endDragExtend"
|
||||||
@mouseleave.native="cancelDrag"
|
@mouseleave.native="cancelDrag"
|
||||||
|
event-overlap-mode="column"
|
||||||
>
|
>
|
||||||
<template v-slot:event="{ event, timed, eventSummary }">
|
<template v-slot:event="{ event, timed, eventSummary }">
|
||||||
<div class="v-event-draggable">
|
<div class="v-event-draggable">
|
||||||
|
|||||||
@@ -89,17 +89,17 @@
|
|||||||
@mouseup:time="endDragExtend"
|
@mouseup:time="endDragExtend"
|
||||||
@mouseup:time-category="endDragExtend"
|
@mouseup:time-category="endDragExtend"
|
||||||
@mouseleave.native="cancelDrag"
|
@mouseleave.native="cancelDrag"
|
||||||
|
event-overlap-mode="column"
|
||||||
category-show-all
|
category-show-all
|
||||||
:categories="categories"
|
:categories="categories"
|
||||||
category-text="name"
|
category-text="name"
|
||||||
category-for-invalid="UNKNOWN USER"
|
category-for-invalid="UNKNOWN USER"
|
||||||
>
|
>
|
||||||
<!-- @mousemove:day-category="mouseMoveMonthView" category-hide-dynamic -->
|
<template v-slot:event="{ event, eventSummary }">
|
||||||
<template v-slot:event="{ event, timed, eventSummary }">
|
|
||||||
<div class="v-event-draggable">
|
<div class="v-event-draggable">
|
||||||
<v-icon small :color="event.textColor" class="mr-1">{{
|
<!-- <v-icon small :color="event.textColor" class="mr-1">{{
|
||||||
iconForEvent(event.type)
|
iconForEvent(event.type)
|
||||||
}}</v-icon>
|
}}</v-icon> -->
|
||||||
|
|
||||||
<span
|
<span
|
||||||
:class="event.textColor + '--text'"
|
:class="event.textColor + '--text'"
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="timed && event.editable"
|
v-if="event.editable"
|
||||||
class="v-event-drag-bottom"
|
class="v-event-drag-bottom"
|
||||||
@mousedown.stop="extendBottom(event)"
|
@mousedown.stop="extendBottom(event)"
|
||||||
></div>
|
></div>
|
||||||
@@ -163,175 +163,98 @@
|
|||||||
<v-toolbar-title>{{ selectedEvent.name }}</v-toolbar-title>
|
<v-toolbar-title>{{ selectedEvent.name }}</v-toolbar-title>
|
||||||
</v-toolbar>
|
</v-toolbar>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<!--reminder -->
|
<div>
|
||||||
<template v-if="selectedEvent.type == $ay.ayt().Reminder">
|
<span class="text-h6">{{ $ay.t("WorkOrder") }}:</span>
|
||||||
<div>
|
<span class="text-body-1 ml-2"
|
||||||
<span class="text-h6">{{ $ay.t("ReminderName") }}:</span>
|
>{{ evInfo.serial }} {{ evInfo.customerViz }}</span
|
||||||
<span class="text-body-1 ml-2">{{ evInfo.name }}</span>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="text-h6"
|
<span class="text-h6">{{ $ay.t("Tags") }}:</span>
|
||||||
>{{ $ay.t("DashboardScheduled") }}:</span
|
<span class="text-body-1 ml-2">{{
|
||||||
>
|
$ay.util().formatTags(evInfo.wotags)
|
||||||
<span class="text-body-1 ml-2"
|
}}</span>
|
||||||
>{{ $ay.dt(evInfo.startDate) }} — {{
|
</div>
|
||||||
$ay.dt(evInfo.stopDate)
|
<div>
|
||||||
}}</span
|
<span class="text-h6"
|
||||||
>
|
>{{ $ay.t("WorkOrderItemScheduledUserUserID") }}:</span
|
||||||
</div>
|
>
|
||||||
<div>
|
<span class="text-body-1 ml-2">{{ evInfo.scheduser }}</span>
|
||||||
<span class="text-h6">{{ $ay.t("ReminderNotes") }}:</span>
|
</div>
|
||||||
<span class="text-body-1 ml-2">
|
<div>
|
||||||
<v-icon class="mr-3" :color="evInfo.color"
|
<span class="text-h6"
|
||||||
>$ayiSquareFull</v-icon
|
>{{ $ay.t("DashboardScheduled") }}:</span
|
||||||
>{{ evInfo.notes }}</span
|
>
|
||||||
>
|
<span class="text-body-1 ml-2"
|
||||||
</div>
|
>{{ $ay.dt(evInfo.startDate) }} — {{
|
||||||
</template>
|
$ay.dt(evInfo.stopDate)
|
||||||
<!--review -->
|
}}</span
|
||||||
<template v-if="selectedEvent.type == $ay.ayt().Review">
|
>
|
||||||
<div class="mb-1" v-if="evInfo.aType">
|
</div>
|
||||||
<v-icon
|
<div>
|
||||||
large
|
<span class="text-h6"
|
||||||
color="primary"
|
>{{
|
||||||
@click="openObject(evInfo.aType, evInfo.objectId)"
|
$ay.t("WorkOrderItemScheduledUserEstimatedQuantity")
|
||||||
>{{ $ay.util().iconForType(evInfo.aType) }}</v-icon
|
}}:</span
|
||||||
><span
|
>
|
||||||
class="text-h6"
|
<span class="text-body-1 ml-2">{{ evInfo.qty }}</span>
|
||||||
@click="openObject(evInfo.aType, evInfo.objectId)"
|
</div>
|
||||||
>
|
<div>
|
||||||
{{ evInfo.reviewObjectViz }}</span
|
<span class="text-h6"
|
||||||
>
|
>{{
|
||||||
</div>
|
$ay.t("WorkOrderItemScheduledUserServiceRateID")
|
||||||
<div>
|
}}:</span
|
||||||
<span class="text-h6">{{ $ay.t("ReviewName") }}:</span>
|
>
|
||||||
<span class="text-body-1 ml-2">{{ evInfo.name }}</span>
|
<span class="text-body-1 ml-2">{{ evInfo.rate }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<span class="text-h6">{{ $ay.t("ReviewDate") }}:</span>
|
|
||||||
<span class="text-body-1 ml-2">{{
|
|
||||||
$ay.dt(evInfo.reviewDate)
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6">{{ $ay.t("ReviewNotes") }}:</span>
|
|
||||||
<span class="text-body-1 ml-2"> {{ evInfo.notes }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<template v-if="evInfo.completedDate">
|
<div v-if="evInfo.haswostatus">
|
||||||
<div>
|
<span class="text-h6">{{ $ay.t("WorkOrderStatus") }}:</span>
|
||||||
<span class="text-h6"
|
<span class="text-body-1 ml-2">{{ evInfo.wostatus }}</span>
|
||||||
>{{ $ay.t("ReviewCompletedDate") }}:</span
|
<v-icon :color="evInfo.wostatuscolor" class="ml-4"
|
||||||
>
|
>$ayiFlag</v-icon
|
||||||
<span class="text-body-1 ml-2">{{
|
>
|
||||||
$ay.dt(evInfo.completedDate)
|
<v-icon
|
||||||
}}</span>
|
color="primary"
|
||||||
</div>
|
v-if="evInfo.wostatuslocked"
|
||||||
<div>
|
class="ml-4"
|
||||||
<span class="text-h6"
|
>$ayiLock</v-icon
|
||||||
>{{ $ay.t("ReviewCompletionNotes") }}:</span
|
>
|
||||||
>
|
<v-icon
|
||||||
<span class="text-body-1 ml-2">
|
color="primary"
|
||||||
{{ evInfo.completionNotes }}</span
|
v-if="evInfo.wostatuscompleted"
|
||||||
>
|
class="ml-4"
|
||||||
</div>
|
>$ayiCheckCircle</v-icon
|
||||||
</template>
|
>
|
||||||
</template>
|
</div>
|
||||||
<!--woitemscheduleduser -->
|
|
||||||
<template
|
|
||||||
v-if="
|
|
||||||
selectedEvent.type == $ay.ayt().WorkOrderItemScheduledUser
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6">{{ $ay.t("WorkOrder") }}:</span>
|
|
||||||
<span class="text-body-1 ml-2"
|
|
||||||
>{{ evInfo.serial }} {{ evInfo.customerViz }}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6">{{ $ay.t("Tags") }}:</span>
|
|
||||||
<span class="text-body-1 ml-2">{{
|
|
||||||
$ay.util().formatTags(evInfo.wotags)
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6"
|
|
||||||
>{{ $ay.t("DashboardScheduled") }}:</span
|
|
||||||
>
|
|
||||||
<span class="text-body-1 ml-2"
|
|
||||||
>{{ $ay.dt(evInfo.startDate) }} — {{
|
|
||||||
$ay.dt(evInfo.stopDate)
|
|
||||||
}}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6"
|
|
||||||
>{{
|
|
||||||
$ay.t("WorkOrderItemScheduledUserEstimatedQuantity")
|
|
||||||
}}:</span
|
|
||||||
>
|
|
||||||
<span class="text-body-1 ml-2">{{ evInfo.qty }}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6"
|
|
||||||
>{{
|
|
||||||
$ay.t("WorkOrderItemScheduledUserServiceRateID")
|
|
||||||
}}:</span
|
|
||||||
>
|
|
||||||
<span class="text-body-1 ml-2">{{ evInfo.rate }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="evInfo.haswostatus">
|
<div>
|
||||||
<span class="text-h6">{{ $ay.t("WorkOrderStatus") }}:</span>
|
<span class="text-h6"
|
||||||
<span class="text-body-1 ml-2">{{ evInfo.wostatus }}</span>
|
>{{ $ay.t("WorkOrderItemSummary") }}:</span
|
||||||
<v-icon :color="evInfo.wostatuscolor" class="ml-4"
|
>
|
||||||
>$ayiFlag</v-icon
|
<span class="text-body-1 ml-2">
|
||||||
>
|
<v-icon class="mr-3" :color="evInfo.woitemstatuscolor"
|
||||||
<v-icon
|
>$ayiCircle</v-icon
|
||||||
color="primary"
|
>{{ evInfo.woitemstatus }}</span
|
||||||
v-if="evInfo.wostatuslocked"
|
>
|
||||||
class="ml-4"
|
</div>
|
||||||
>$ayiLock</v-icon
|
|
||||||
>
|
|
||||||
<v-icon
|
|
||||||
color="primary"
|
|
||||||
v-if="evInfo.wostatuscompleted"
|
|
||||||
class="ml-4"
|
|
||||||
>$ayiCheckCircle</v-icon
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span class="text-h6"
|
<span class="text-h6"
|
||||||
>{{ $ay.t("WorkOrderItemSummary") }}:</span
|
>{{ $ay.t("WorkOrderItemPriorityID") }}:</span
|
||||||
>
|
>
|
||||||
<span class="text-body-1 ml-2">
|
<span class="text-body-1 ml-2">
|
||||||
<v-icon class="mr-3" :color="evInfo.woitemstatuscolor"
|
<v-icon class="mr-3" :color="evInfo.woitemprioritycolor"
|
||||||
>$ayiCircle</v-icon
|
>$ayiFireAlt</v-icon
|
||||||
>{{ evInfo.woitemstatus }}</span
|
>{{ evInfo.woitempriority }}</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
<div>
|
<span class="text-h6">{{ $ay.t("WorkOrderItemTags") }}:</span>
|
||||||
<span class="text-h6"
|
<span class="text-body-1 ml-2">{{
|
||||||
>{{ $ay.t("WorkOrderItemPriorityID") }}:</span
|
$ay.util().formatTags(evInfo.woitemtags)
|
||||||
>
|
}}</span>
|
||||||
<span class="text-body-1 ml-2">
|
</div>
|
||||||
<v-icon class="mr-3" :color="evInfo.woitemprioritycolor"
|
|
||||||
>$ayiFireAlt</v-icon
|
|
||||||
>{{ evInfo.woitempriority }}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="text-h6"
|
|
||||||
>{{ $ay.t("WorkOrderItemTags") }}:</span
|
|
||||||
>
|
|
||||||
<span class="text-body-1 ml-2">{{
|
|
||||||
$ay.util().formatTags(evInfo.woitemtags)
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-btn color="primary" text @click="openScheduledItem()">{{
|
<v-btn color="primary" text @click="openScheduledItem()">{{
|
||||||
@@ -1155,10 +1078,8 @@ async function fetchTranslatedText() {
|
|||||||
"ScheduleShowTypes",
|
"ScheduleShowTypes",
|
||||||
"NoColor",
|
"NoColor",
|
||||||
"WorkOrder",
|
"WorkOrder",
|
||||||
"Reminder",
|
|
||||||
"WorkOrderList",
|
"WorkOrderList",
|
||||||
"ReminderList",
|
"WorkOrderItemScheduledUserUserID",
|
||||||
"ReviewList",
|
|
||||||
"DashboardScheduled",
|
"DashboardScheduled",
|
||||||
"WorkOrderItemPriorityID",
|
"WorkOrderItemPriorityID",
|
||||||
"WorkOrderItemSummary",
|
"WorkOrderItemSummary",
|
||||||
@@ -1166,14 +1087,7 @@ async function fetchTranslatedText() {
|
|||||||
"WorkOrderStatus",
|
"WorkOrderStatus",
|
||||||
"WorkOrderItemScheduledUserEstimatedQuantity",
|
"WorkOrderItemScheduledUserEstimatedQuantity",
|
||||||
"WorkOrderItemScheduledUserServiceRateID",
|
"WorkOrderItemScheduledUserServiceRateID",
|
||||||
"WorkOrderItemTags",
|
"WorkOrderItemTags"
|
||||||
"ReminderName",
|
|
||||||
"ReviewDate",
|
|
||||||
"ReminderNotes",
|
|
||||||
"ReviewName",
|
|
||||||
"ReviewNotes",
|
|
||||||
"ReviewCompletedDate",
|
|
||||||
"ReviewCompletionNotes"
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user