re-add theme as ptrs broken fixed ipad theme
This commit is contained in:
@@ -1303,6 +1303,13 @@ span.flatpickr-weekday {
|
||||
.hd-shell-main { min-height:100vh; margin-left:var(--hd-sidebar-width); padding:calc(var(--hd-topbar-height) + 28px) 30px 34px; background:radial-gradient(circle at 75% 0,rgba(37,99,235,.07),transparent 35%),#0b0e13; transition:margin-left .08s linear; }
|
||||
.hd-sidebar-resizing,.hd-sidebar-resizing * { cursor:col-resize!important; user-select:none!important; }
|
||||
|
||||
|
||||
/* Consistent application icons */
|
||||
.hd-svg-icon { width:20px; height:20px; flex:0 0 20px; display:block; fill:currentColor; }
|
||||
.hd-icon-outline { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
|
||||
.hd-range-select .hd-svg-icon { width:19px; height:19px; flex-basis:19px; color:#94a3b8; }
|
||||
.hd-metric-icon .hd-svg-icon { width:25px; height:25px; flex-basis:25px; }
|
||||
|
||||
/* ===== Dashboard ========================================================= */
|
||||
.hd-dashboard { max-width:1600px; margin:0 auto; }
|
||||
.hd-dashboard-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
|
||||
|
||||
@@ -95,14 +95,14 @@
|
||||
|
||||
@if(Route::has('helpdesk.settings'))
|
||||
<a href="{{ route('helpdesk.settings') }}" wire:navigate role="menuitem">
|
||||
<svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M10.7 2h2.6l.6 2.3c.5.2 1 .5 1.5.9l2.3-.7 1.3 2.3-1.7 1.6c.1.5.2 1.1.2 1.6s-.1 1.1-.2 1.6l1.7 1.6-1.3 2.3-2.3-.7c-.5.4-1 .7-1.5.9l-.6 2.3h-2.6l-.6-2.3c-.5-.2-1-.5-1.5-.9l-2.3.7L5 13.2l1.7-1.6A6 6 0 0 1 6.5 10c0-.5.1-1.1.2-1.6L5 6.8l1.3-2.3 2.3.7c.5-.4 1-.7 1.5-.9L10.7 2zM12 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/></svg>
|
||||
<i class="fa-solid fa-gear" aria-hidden="true"></i>
|
||||
<span>Helpdesk Settings</span>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if($isAdmin)
|
||||
<a href="{{ url('/admin/users') }}" wire:navigate role="menuitem">
|
||||
<svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm6-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM2 20c0-4 3-7 7-7s7 3 7 7H2zm13.5-6.3c3.6.3 6.5 2.8 6.5 6.3h-4c0-2.4-.9-4.6-2.5-6.3z"/></svg>
|
||||
<i class="fa-solid fa-users" aria-hidden="true"></i>
|
||||
<span>User Management</span>
|
||||
</a>
|
||||
@endif
|
||||
@@ -132,27 +132,27 @@
|
||||
href="{{ route('dashboard') }}"
|
||||
wire:navigate
|
||||
>
|
||||
<svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3 2.5 11h2.2v9h5.6v-5.5h3.4V20h5.6v-9h2.2L12 3z"/></svg>
|
||||
<i class="fa-solid fa-gauge-high" aria-hidden="true"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Helpdesk</div>
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link hd-nav-link--tickets {{ request()->routeIs('helpdesk.tickets.index', 'helpdesk.tickets.create', 'helpdesk.tickets.show', 'helpdesk.tickets.edit') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 6.5h18v4a2 2 0 0 0 0 4v4H3v-4a2 2 0 0 0 0-4v-4zm7 2v8h1.5v-8H10z"/></svg><span>Tickets</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.archived'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.tickets.archived') ? 'is-active' : '' }}" style="--hd-nav-accent:#f59e0b;--hd-nav-accent-rgb:245,158,11" href="{{ route('helpdesk.tickets.archived') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 4h18v4H3V4zm1 5h16v11H4V9zm5 3v2h6v-2H9z"/></svg><span>Archive</span></a>@endif
|
||||
@if(Route::has('helpdesk.kanban'))<a class="hd-nav-link hd-nav-link--kanban {{ request()->routeIs('helpdesk.kanban') ? 'is-active' : '' }}" href="{{ route('helpdesk.kanban') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 4h18v16H3V4zm2 2v12h6V6H5zm8 0v12h6V6h-6z"/></svg><span>Kanban</span></a>@endif
|
||||
@if(Route::has('helpdesk.settings'))<a class="hd-nav-link hd-nav-link--settings {{ request()->routeIs('helpdesk.settings*') ? 'is-active' : '' }}" href="{{ route('helpdesk.settings') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M10.7 2h2.6l.6 2.3c.5.2 1 .5 1.5.9l2.3-.7 1.3 2.3-1.7 1.6c.1.5.2 1.1.2 1.6s-.1 1.1-.2 1.6l1.7 1.6-1.3 2.3-2.3-.7c-.5.4-1 .7-1.5.9l-.6 2.3h-2.6l-.6-2.3c-.5-.2-1-.5-1.5-.9l-2.3.7L5 13.2l1.7-1.6A6 6 0 0 1 6.5 10c0-.5.1-1.1.2-1.6L5 6.8l1.3-2.3 2.3.7c.5-.4 1-.7 1.5-.9L10.7 2zM12 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/></svg><span>Settings</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link hd-nav-link--tickets {{ request()->routeIs('helpdesk.tickets.index', 'helpdesk.tickets.create', 'helpdesk.tickets.show', 'helpdesk.tickets.edit') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket" aria-hidden="true"></i><span>Tickets</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.archived'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.tickets.archived') ? 'is-active' : '' }}" style="--hd-nav-accent:#f59e0b;--hd-nav-accent-rgb:245,158,11" href="{{ route('helpdesk.tickets.archived') }}" wire:navigate><i class="fa-solid fa-box-archive" aria-hidden="true"></i><span>Archive</span></a>@endif
|
||||
@if(Route::has('helpdesk.kanban'))<a class="hd-nav-link hd-nav-link--kanban {{ request()->routeIs('helpdesk.kanban') ? 'is-active' : '' }}" href="{{ route('helpdesk.kanban') }}" wire:navigate><i class="fa-solid fa-table-columns" aria-hidden="true"></i><span>Kanban</span></a>@endif
|
||||
@if(Route::has('helpdesk.settings'))<a class="hd-nav-link hd-nav-link--settings {{ request()->routeIs('helpdesk.settings*') ? 'is-active' : '' }}" href="{{ route('helpdesk.settings') }}" wire:navigate><i class="fa-solid fa-gear" aria-hidden="true"></i><span>Settings</span></a>@endif
|
||||
</div>
|
||||
@if(Route::has('documentation.index') || Route::has('documentation.documents.index'))
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Documentation</div>
|
||||
<a class="hd-nav-link hd-nav-link--documents {{ request()->routeIs('documentation.documents.*') || request()->routeIs('documentation.index') ? 'is-active' : '' }}" href="{{ Route::has('documentation.documents.index') ? route('documentation.documents.index') : route('documentation.index') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 2h8l4 4v16H6V2zm7 1.8V7h3.2L13 3.8zM9 11v1.5h6V11H9zm0 3.5V16h6v-1.5H9z"/></svg><span>Documents</span></a>
|
||||
@if(Route::has('documentation.categories.index'))<a class="hd-nav-link hd-nav-link--categories {{ request()->routeIs('documentation.categories.*') ? 'is-active' : '' }}" href="{{ route('documentation.categories.index') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M2.5 5h7l2 2h10v12h-19V5z"/></svg><span>Categories</span></a>@endif
|
||||
<a class="hd-nav-link hd-nav-link--documents {{ request()->routeIs('documentation.documents.*') || request()->routeIs('documentation.index') ? 'is-active' : '' }}" href="{{ Route::has('documentation.documents.index') ? route('documentation.documents.index') : route('documentation.index') }}" wire:navigate><i class="fa-solid fa-file-lines" aria-hidden="true"></i><span>Documents</span></a>
|
||||
@if(Route::has('documentation.categories.index'))<a class="hd-nav-link hd-nav-link--categories {{ request()->routeIs('documentation.categories.*') ? 'is-active' : '' }}" href="{{ route('documentation.categories.index') }}" wire:navigate><i class="fa-solid fa-folder" aria-hidden="true"></i><span>Categories</span></a>@endif
|
||||
</div>
|
||||
@endif
|
||||
@if($isAdmin && Route::has('user-management.index'))
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Users</div>
|
||||
<a class="hd-nav-link hd-nav-link--users {{ request()->routeIs('user-management.index') || request()->routeIs('user-management.create') || request()->routeIs('user-management.edit') ? 'is-active' : '' }}" href="{{ route('user-management.index') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm6-1a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM2 20c0-4 3-7 7-7s7 3 7 7H2zm13.5-6.3c3.6.3 6.5 2.8 6.5 6.3h-4c0-2.4-.9-4.6-2.5-6.3z"/></svg><span>Users</span></a>
|
||||
<a class="hd-nav-link hd-nav-link--roles {{ request()->routeIs('user-management.roles') ? 'is-active' : '' }}" href="{{ route('user-management.roles') }}" wire:navigate><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2 4 5v6c0 5.1 3.4 9.4 8 11 4.6-1.6 8-5.9 8-11V5l-8-3zm0 3v14.8C8.7 18.3 6 14.9 6 11V6.4L12 4.2V5z"/></svg><span>Roles & Permissions</span></a>
|
||||
<a class="hd-nav-link hd-nav-link--users {{ request()->routeIs('user-management.index') || request()->routeIs('user-management.create') || request()->routeIs('user-management.edit') ? 'is-active' : '' }}" href="{{ route('user-management.index') }}" wire:navigate><i class="fa-solid fa-users" aria-hidden="true"></i><span>Users</span></a>
|
||||
<a class="hd-nav-link hd-nav-link--roles {{ request()->routeIs('user-management.roles') ? 'is-active' : '' }}" href="{{ route('user-management.roles') }}" wire:navigate><i class="fa-solid fa-shield-halved" aria-hidden="true"></i><span>Roles & Permissions</span></a>
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
<div class="hd-dashboard space-y-5" dusk="helpdesk-dashboard-widget">
|
||||
<section class="hd-dashboard-heading">
|
||||
<div><h1>Dashboard</h1><p>Overview of your helpdesk system</p></div>
|
||||
<label class="hd-range-select"><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 3h2v2h10V3h2v2h2v16H3V5h2V3zm0 6v10h14V9H5z"/></svg><select wire:model.live="days"><option value="7">Last 7 days</option><option value="14">Last 14 days</option><option value="30">Last 30 days</option></select></label>
|
||||
<label class="hd-range-select"><svg class="hd-svg-icon hd-icon-outline" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M16 3v4M8 3v4M3 10h18"/></svg><select wire:model.live="days"><option value="7">Last 7 days</option><option value="14">Last 14 days</option><option value="30">Last 30 days</option></select></label>
|
||||
</section>
|
||||
|
||||
<div class="hd-metric-grid">
|
||||
<article class="hd-metric-card hd-metric-blue"><span class="hd-metric-icon"><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 2h6l1 2h3v18H5V4h3l1-2zm1 2-.5 1h5L14 4h-4zM8 9v2h8V9H8zm0 4v2h8v-2H8z"/></svg></span><div><small>Total Tickets</small><strong>{{ $totalCount }}</strong><em>All visible tickets</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-green"><span class="hd-metric-icon"><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.2-4-4 1.4-1.4 2.6 2.6 5-5 1.4 1.4-6.4 6.4z"/></svg></span><div><small>Resolved</small><strong>{{ $closedCount }}</strong><em>Completed workload</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-amber"><span class="hd-metric-icon"><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 5v4.6l3.2 2-1 1.7-4.2-2.6V7h2z"/></svg></span><div><small>In Progress</small><strong>{{ $inProgressCount }}</strong><em>Actively being worked</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-red"><span class="hd-metric-icon"><svg class="hd-svg-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1 5h2v7h-2V7zm0 9h2v2h-2v-2z"/></svg></span><div><small>Open</small><strong>{{ $openCount }}</strong><em>Awaiting resolution</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-blue"><span class="hd-metric-icon"><svg class="hd-svg-icon hd-icon-outline" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 5h6M9 3h6v4H9z"/><rect x="5" y="5" width="14" height="16" rx="2"/><path d="M9 11h6M9 15h6"/></svg></span><div><small>Total Tickets</small><strong>{{ $totalCount }}</strong><em>All visible tickets</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-green"><span class="hd-metric-icon"><svg class="hd-svg-icon hd-icon-outline" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="m8 12 2.6 2.6L16.5 9"/></svg></span><div><small>Resolved</small><strong>{{ $closedCount }}</strong><em>Completed workload</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-amber"><span class="hd-metric-icon"><svg class="hd-svg-icon hd-icon-outline" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3.5 2"/></svg></span><div><small>In Progress</small><strong>{{ $inProgressCount }}</strong><em>Actively being worked</em></div></article>
|
||||
<article class="hd-metric-card hd-metric-red"><span class="hd-metric-icon"><svg class="hd-svg-icon hd-icon-outline" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 7v6M12 17h.01"/></svg></span><div><small>Open</small><strong>{{ $openCount }}</strong><em>Awaiting resolution</em></div></article>
|
||||
</div>
|
||||
|
||||
<div class="hd-dashboard-grid">
|
||||
|
||||
@@ -368,3 +368,5 @@ promiseReactionJob@[native code] {"url":"https://helpdesk.vm/dashboard","user_ag
|
||||
[2026-09-15 08:25:41] local.INFO: Helpdesk module assets loaded {"url":"https://helpdesk.vm/dashboard","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36 Edg/153.0.0.0","timestamp":"2026-09-15T08:25:41.082Z"}
|
||||
[2026-09-28 08:43:13] local.INFO: Helpdesk module assets loaded {"url":"https://helpdesk.vm/dashboard","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 Edg/154.0.0.0","timestamp":"2026-09-28T08:43:13.306Z"}
|
||||
[2026-09-28 08:46:40] local.INFO: Helpdesk module assets loaded {"url":"https://helpdesk.vm/dashboard","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 Edg/154.0.0.0","timestamp":"2026-09-28T08:46:39.947Z"}
|
||||
[2026-09-28 08:48:45] local.INFO: Helpdesk module assets loaded {"url":"https://helpdesk.vm/dashboard","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 Edg/154.0.0.0","timestamp":"2026-09-28T08:48:45.326Z"}
|
||||
[2026-09-28 08:50:56] local.INFO: Helpdesk module assets loaded {"url":"https://helpdesk.vm/dashboard","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 Edg/154.0.0.0","timestamp":"2026-09-28T08:50:56.465Z"}
|
||||
|
||||
Reference in New Issue
Block a user