dark mode supoport and new design
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 858 B |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Systems Helpdesk",
|
||||
"short_name": "Helpdesk",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#0b1220",
|
||||
"background_color": "#0b1220",
|
||||
"display": "standalone"
|
||||
}
|
||||
@@ -1935,3 +1935,254 @@ html.dark .hd-auth-surface a:hover {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ============================================================
|
||||
Site mark + coloured sidebar navigation
|
||||
============================================================ */
|
||||
|
||||
.hd-brand-mark {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
flex: 0 0 38px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
border: 1px solid #394251;
|
||||
border-radius: 11px;
|
||||
background: linear-gradient(145deg, #222934, #151a22);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255,255,255,.055),
|
||||
0 6px 14px rgba(0,0,0,.18);
|
||||
transition:
|
||||
transform .15s ease,
|
||||
border-color .15s ease,
|
||||
background-color .15s ease;
|
||||
}
|
||||
|
||||
.hd-brand-mark:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: #596579;
|
||||
background: #252d38;
|
||||
}
|
||||
|
||||
.hd-brand-icon {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
/* Individual sidebar accents. */
|
||||
.hd-nav-link {
|
||||
--hd-nav-accent: #64748b;
|
||||
--hd-nav-accent-rgb: 100, 116, 139;
|
||||
}
|
||||
|
||||
.hd-nav-link--dashboard {
|
||||
--hd-nav-accent: #3b82f6;
|
||||
--hd-nav-accent-rgb: 59, 130, 246;
|
||||
}
|
||||
|
||||
.hd-nav-link--tickets {
|
||||
--hd-nav-accent: #06b6d4;
|
||||
--hd-nav-accent-rgb: 6, 182, 212;
|
||||
}
|
||||
|
||||
.hd-nav-link--kanban {
|
||||
--hd-nav-accent: #f59e0b;
|
||||
--hd-nav-accent-rgb: 245, 158, 11;
|
||||
}
|
||||
|
||||
.hd-nav-link--settings {
|
||||
--hd-nav-accent: #8b5cf6;
|
||||
--hd-nav-accent-rgb: 139, 92, 246;
|
||||
}
|
||||
|
||||
.hd-nav-link--documents {
|
||||
--hd-nav-accent: #10b981;
|
||||
--hd-nav-accent-rgb: 16, 185, 129;
|
||||
}
|
||||
|
||||
.hd-nav-link--categories {
|
||||
--hd-nav-accent: #0ea5e9;
|
||||
--hd-nav-accent-rgb: 14, 165, 233;
|
||||
}
|
||||
|
||||
.hd-nav-link--users {
|
||||
--hd-nav-accent: #6366f1;
|
||||
--hd-nav-accent-rgb: 99, 102, 241;
|
||||
}
|
||||
|
||||
.hd-nav-link--roles {
|
||||
--hd-nav-accent: #f43f5e;
|
||||
--hd-nav-accent-rgb: 244, 63, 94;
|
||||
}
|
||||
|
||||
.hd-nav-link i {
|
||||
width: 30px !important;
|
||||
height: 30px;
|
||||
flex: 0 0 30px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid rgba(var(--hd-nav-accent-rgb), .24);
|
||||
border-radius: 8px;
|
||||
background: rgba(var(--hd-nav-accent-rgb), .10);
|
||||
color: var(--hd-nav-accent) !important;
|
||||
transition:
|
||||
background-color .15s ease,
|
||||
border-color .15s ease,
|
||||
color .15s ease,
|
||||
transform .15s ease;
|
||||
}
|
||||
|
||||
.hd-nav-link:hover {
|
||||
background:
|
||||
linear-gradient(
|
||||
90deg,
|
||||
rgba(var(--hd-nav-accent-rgb), .10),
|
||||
rgba(var(--hd-nav-accent-rgb), .035)
|
||||
) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.hd-nav-link:hover i {
|
||||
transform: translateX(1px);
|
||||
border-color: rgba(var(--hd-nav-accent-rgb), .45);
|
||||
background: rgba(var(--hd-nav-accent-rgb), .18);
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.hd-nav-link.is-active {
|
||||
background:
|
||||
linear-gradient(
|
||||
90deg,
|
||||
rgba(var(--hd-nav-accent-rgb), .20),
|
||||
rgba(var(--hd-nav-accent-rgb), .07)
|
||||
) !important;
|
||||
color: #fff !important;
|
||||
box-shadow:
|
||||
inset 3px 0 var(--hd-nav-accent),
|
||||
inset 0 1px 0 rgba(255,255,255,.025) !important;
|
||||
}
|
||||
|
||||
.hd-nav-link.is-active i {
|
||||
border-color: rgba(var(--hd-nav-accent-rgb), .58);
|
||||
background: var(--hd-nav-accent);
|
||||
color: #fff !important;
|
||||
box-shadow: 0 4px 12px rgba(var(--hd-nav-accent-rgb), .22);
|
||||
}
|
||||
|
||||
/* Light-mode counterparts. */
|
||||
html:not(.dark) .hd-brand-mark {
|
||||
border-color: #d6dde7;
|
||||
background: linear-gradient(145deg, #ffffff, #eef2f7);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255,255,255,.8),
|
||||
0 5px 12px rgba(15,23,42,.08);
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-brand-mark:hover {
|
||||
border-color: #b9c3d0;
|
||||
background: #f8fafc;
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-nav-link i {
|
||||
border-color: rgba(var(--hd-nav-accent-rgb), .22);
|
||||
background: rgba(var(--hd-nav-accent-rgb), .08);
|
||||
color: var(--hd-nav-accent) !important;
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-nav-link:hover {
|
||||
background:
|
||||
linear-gradient(
|
||||
90deg,
|
||||
rgba(var(--hd-nav-accent-rgb), .10),
|
||||
rgba(var(--hd-nav-accent-rgb), .025)
|
||||
) !important;
|
||||
color: #111827 !important;
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-nav-link:hover i {
|
||||
color: var(--hd-nav-accent) !important;
|
||||
background: rgba(var(--hd-nav-accent-rgb), .14);
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-nav-link.is-active {
|
||||
background:
|
||||
linear-gradient(
|
||||
90deg,
|
||||
rgba(var(--hd-nav-accent-rgb), .15),
|
||||
rgba(var(--hd-nav-accent-rgb), .045)
|
||||
) !important;
|
||||
color: #111827 !important;
|
||||
box-shadow: inset 3px 0 var(--hd-nav-accent) !important;
|
||||
}
|
||||
|
||||
html:not(.dark) .hd-nav-link.is-active i {
|
||||
color: #fff !important;
|
||||
background: var(--hd-nav-accent);
|
||||
}
|
||||
|
||||
/* Keep the top-left area compact on smaller screens. */
|
||||
@media (max-width: 700px) {
|
||||
.hd-brand-mark {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
flex-basis: 34px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.hd-brand-icon {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Brand favicon: force a compact header-sized mark. */
|
||||
.hd-brand-mark {
|
||||
width: 42px !important;
|
||||
height: 42px !important;
|
||||
min-width: 42px !important;
|
||||
max-width: 42px !important;
|
||||
flex: 0 0 42px !important;
|
||||
padding: 7px !important;
|
||||
overflow: hidden !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
.hd-brand-mark .hd-brand-icon,
|
||||
.hd-brand-icon {
|
||||
display: block !important;
|
||||
width: 28px !important;
|
||||
height: 28px !important;
|
||||
min-width: 0 !important;
|
||||
min-height: 0 !important;
|
||||
max-width: 28px !important;
|
||||
max-height: 28px !important;
|
||||
object-fit: contain !important;
|
||||
object-position: center !important;
|
||||
flex: none !important;
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.hd-brand-mark {
|
||||
width: 38px !important;
|
||||
height: 38px !important;
|
||||
min-width: 38px !important;
|
||||
max-width: 38px !important;
|
||||
flex: 0 0 38px !important;
|
||||
padding: 7px !important;
|
||||
}
|
||||
|
||||
.hd-brand-mark .hd-brand-icon,
|
||||
.hd-brand-icon {
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
max-width: 24px !important;
|
||||
max-height: 24px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,16 @@
|
||||
<header class="hd-topbar">
|
||||
<div class="hd-topbar-brand">
|
||||
<button class="hd-icon-button hd-mobile-menu-button" type="button" data-hd-sidebar-toggle aria-label="Toggle navigation"><i class="fa-solid fa-bars"></i></button>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-mark" aria-label="{{ config('app.name', 'Laravel') }}">
|
||||
<img
|
||||
src="{{ asset('site-icon-64.png') }}"
|
||||
alt=""
|
||||
class="hd-brand-icon"
|
||||
onerror="this.onerror=null;this.src='{{ asset('favicon.ico') }}';"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-name">{{ config('app.name', 'Laravel') }}</a>
|
||||
</div>
|
||||
<div class="hd-topbar-main">
|
||||
@@ -118,7 +128,7 @@
|
||||
<div class="hd-nav-heading">Platform</div>
|
||||
|
||||
<a
|
||||
class="hd-nav-link {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
class="hd-nav-link hd-nav-link--dashboard {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
href="{{ route('dashboard') }}"
|
||||
wire:navigate
|
||||
>
|
||||
@@ -128,20 +138,20 @@
|
||||
</div>
|
||||
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Helpdesk</div>
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</span></a>@endif
|
||||
@if(Route::has('helpdesk.kanban'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.kanban') ? 'is-active' : '' }}" href="{{ route('helpdesk.kanban') }}" wire:navigate><i class="fa-solid fa-table-columns"></i><span>Kanban</span></a>@endif
|
||||
@if(Route::has('helpdesk.settings'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.settings*') ? 'is-active' : '' }}" href="{{ route('helpdesk.settings') }}" wire:navigate><i class="fa-solid fa-gear"></i><span>Settings</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link hd-nav-link--tickets {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</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"></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"></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 {{ 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-regular fa-file-lines"></i><span>Documents</span></a>
|
||||
@if(Route::has('documentation.categories.index'))<a class="hd-nav-link {{ request()->routeIs('documentation.categories.*') ? 'is-active' : '' }}" href="{{ route('documentation.categories.index') }}" wire:navigate><i class="fa-regular fa-folder"></i><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-regular fa-file-lines"></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-regular fa-folder"></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 {{ 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"></i><span>Users</span></a>
|
||||
<a class="hd-nav-link {{ request()->routeIs('user-management.roles') ? 'is-active' : '' }}" href="{{ route('user-management.roles') }}" wire:navigate><i class="fa-solid fa-shield-halved"></i><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"></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"></i><span>Roles & Permissions</span></a>
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
@@ -23,6 +23,16 @@
|
||||
<header class="hd-topbar">
|
||||
<div class="hd-topbar-brand">
|
||||
<button class="hd-icon-button hd-mobile-menu-button" type="button" data-hd-sidebar-toggle aria-label="Toggle navigation"><i class="fa-solid fa-bars"></i></button>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-mark" aria-label="{{ config('app.name', 'Laravel') }}">
|
||||
<img
|
||||
src="{{ asset('site-icon-64.png') }}"
|
||||
alt=""
|
||||
class="hd-brand-icon"
|
||||
onerror="this.onerror=null;this.src='{{ asset('favicon.ico') }}';"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-name">{{ config('app.name', 'Laravel') }}</a>
|
||||
</div>
|
||||
<div class="hd-topbar-main">
|
||||
@@ -118,7 +128,7 @@
|
||||
<div class="hd-nav-heading">Platform</div>
|
||||
|
||||
<a
|
||||
class="hd-nav-link {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
class="hd-nav-link hd-nav-link--dashboard {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
href="{{ route('dashboard') }}"
|
||||
wire:navigate
|
||||
>
|
||||
@@ -128,20 +138,20 @@
|
||||
</div>
|
||||
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Helpdesk</div>
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</span></a>@endif
|
||||
@if(Route::has('helpdesk.kanban'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.kanban') ? 'is-active' : '' }}" href="{{ route('helpdesk.kanban') }}" wire:navigate><i class="fa-solid fa-table-columns"></i><span>Kanban</span></a>@endif
|
||||
@if(Route::has('helpdesk.settings'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.settings*') ? 'is-active' : '' }}" href="{{ route('helpdesk.settings') }}" wire:navigate><i class="fa-solid fa-gear"></i><span>Settings</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link hd-nav-link--tickets {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</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"></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"></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 {{ 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-regular fa-file-lines"></i><span>Documents</span></a>
|
||||
@if(Route::has('documentation.categories.index'))<a class="hd-nav-link {{ request()->routeIs('documentation.categories.*') ? 'is-active' : '' }}" href="{{ route('documentation.categories.index') }}" wire:navigate><i class="fa-regular fa-folder"></i><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-regular fa-file-lines"></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-regular fa-folder"></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 {{ 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"></i><span>Users</span></a>
|
||||
<a class="hd-nav-link {{ request()->routeIs('user-management.roles') ? 'is-active' : '' }}" href="{{ route('user-management.roles') }}" wire:navigate><i class="fa-solid fa-shield-halved"></i><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"></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"></i><span>Roles & Permissions</span></a>
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
@@ -23,6 +23,16 @@
|
||||
<header class="hd-topbar">
|
||||
<div class="hd-topbar-brand">
|
||||
<button class="hd-icon-button hd-mobile-menu-button" type="button" data-hd-sidebar-toggle aria-label="Toggle navigation"><i class="fa-solid fa-bars"></i></button>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-mark" aria-label="{{ config('app.name', 'Laravel') }}">
|
||||
<img
|
||||
src="{{ asset('site-icon-64.png') }}"
|
||||
alt=""
|
||||
class="hd-brand-icon"
|
||||
onerror="this.onerror=null;this.src='{{ asset('favicon.ico') }}';"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="{{ route('dashboard') }}" wire:navigate class="hd-brand-name">{{ config('app.name', 'Laravel') }}</a>
|
||||
</div>
|
||||
<div class="hd-topbar-main">
|
||||
@@ -118,7 +128,7 @@
|
||||
<div class="hd-nav-heading">Platform</div>
|
||||
|
||||
<a
|
||||
class="hd-nav-link {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
class="hd-nav-link hd-nav-link--dashboard {{ request()->routeIs('dashboard') ? 'is-active' : '' }}"
|
||||
href="{{ route('dashboard') }}"
|
||||
wire:navigate
|
||||
>
|
||||
@@ -128,20 +138,20 @@
|
||||
</div>
|
||||
|
||||
<div class="hd-nav-section"><div class="hd-nav-heading">Helpdesk</div>
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</span></a>@endif
|
||||
@if(Route::has('helpdesk.kanban'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.kanban') ? 'is-active' : '' }}" href="{{ route('helpdesk.kanban') }}" wire:navigate><i class="fa-solid fa-table-columns"></i><span>Kanban</span></a>@endif
|
||||
@if(Route::has('helpdesk.settings'))<a class="hd-nav-link {{ request()->routeIs('helpdesk.settings*') ? 'is-active' : '' }}" href="{{ route('helpdesk.settings') }}" wire:navigate><i class="fa-solid fa-gear"></i><span>Settings</span></a>@endif
|
||||
@if(Route::has('helpdesk.tickets.index'))<a class="hd-nav-link hd-nav-link--tickets {{ request()->routeIs('helpdesk.tickets.*') ? 'is-active' : '' }}" href="{{ route('helpdesk.tickets.index') }}" wire:navigate><i class="fa-solid fa-ticket"></i><span>Tickets</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"></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"></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 {{ 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-regular fa-file-lines"></i><span>Documents</span></a>
|
||||
@if(Route::has('documentation.categories.index'))<a class="hd-nav-link {{ request()->routeIs('documentation.categories.*') ? 'is-active' : '' }}" href="{{ route('documentation.categories.index') }}" wire:navigate><i class="fa-regular fa-folder"></i><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-regular fa-file-lines"></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-regular fa-folder"></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 {{ 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"></i><span>Users</span></a>
|
||||
<a class="hd-nav-link {{ request()->routeIs('user-management.roles') ? 'is-active' : '' }}" href="{{ route('user-management.roles') }}" wire:navigate><i class="fa-solid fa-shield-halved"></i><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"></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"></i><span>Roles & Permissions</span></a>
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
{{-- Systems Helpdesk site icons --}}
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('favicon-32x32.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('favicon-16x16.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="{{ asset('favicon-96x96.png') }}">
|
||||
<link rel="shortcut icon" href="{{ asset('favicon.ico') }}">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('apple-touch-icon.png') }}">
|
||||
<link rel="manifest" href="{{ asset('site.webmanifest') }}">
|
||||
<meta name="theme-color" content="#0b1220">
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>{{ filled($title ?? null) ? $title.' - '.config('app.name', 'Laravel') : config('app.name', 'Laravel') }}</title>
|
||||
<link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
@fonts
|
||||
@php
|
||||
$backendCssEntry = is_file(resource_path('themes/backend/assets/css/app.css'))
|
||||
@@ -40,4 +47,4 @@
|
||||
$viteAssets = array_values(array_unique($viteAssets));
|
||||
@endphp
|
||||
@vite($viteAssets)
|
||||
@fluxAppearance
|
||||
@fluxAppearance
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::view('/', 'welcome')->name('home');
|
||||
Route::get('/', function () {
|
||||
return auth()->check()
|
||||
? redirect()->route('dashboard')
|
||||
: redirect()->route('login');
|
||||
})->name('home');
|
||||
|
||||
Route::middleware(['auth', 'verified'])->group(function () {
|
||||
Route::view('dashboard', 'dashboard')->name('dashboard');
|
||||
|
||||