feat(helpdesk): add team workload dashboard with per-agent metrics
New standalone page (helpdesk/team) showing support agent workload aggregated from BC tickets. KPI bar (open, unassigned, avg age, resolved), per-agent table sorted by open tickets, period selector (30/90/180/365d). Global OData query via getTicketsForTeam() without customer filter. New permission helpdesk.team-workload.view with admin role assignment. Includes 6 PHPUnit tests for buildTeamWorkloadDashboard(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -126,6 +126,50 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Team workload dashboard */
|
||||
.helpdesk-team-period-selector {
|
||||
display: inline-flex;
|
||||
gap: calc(var(--app-spacing) * 0.25);
|
||||
margin-bottom: calc(var(--app-spacing) * 0.75);
|
||||
}
|
||||
|
||||
.helpdesk-team-period-button {
|
||||
padding: calc(var(--app-spacing) * 0.25) calc(var(--app-spacing) * 0.6);
|
||||
font-size: var(--text-sm, 0.875rem);
|
||||
border: var(--app-border-width) solid var(--app-muted-border-color);
|
||||
background: var(--app-background-color);
|
||||
color: var(--app-color);
|
||||
cursor: pointer;
|
||||
transition: background-color 0.15s ease, border-color 0.15s ease;
|
||||
}
|
||||
|
||||
.helpdesk-team-period-button.active {
|
||||
background: var(--app-primary);
|
||||
border-color: var(--app-primary);
|
||||
color: var(--app-primary-inverse);
|
||||
}
|
||||
|
||||
.helpdesk-team-table {
|
||||
width: 100%;
|
||||
margin-top: calc(var(--app-spacing) * 0.75);
|
||||
}
|
||||
|
||||
.helpdesk-team-table th,
|
||||
.helpdesk-team-table td {
|
||||
text-align: left;
|
||||
padding: calc(var(--app-spacing) * 0.35) calc(var(--app-spacing) * 0.5);
|
||||
}
|
||||
|
||||
.helpdesk-team-table th:not(:first-child),
|
||||
.helpdesk-team-table td:not(:first-child) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.helpdesk-team-row-unassigned {
|
||||
opacity: 0.7;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Clickable rows — shared between search results and ticket list */
|
||||
.app-clickable-row {
|
||||
cursor: pointer;
|
||||
|
||||
Reference in New Issue
Block a user