249 lines
10 KiB
PHP
249 lines
10 KiB
PHP
<style>
|
|
.hd-helpdesk-surface .hd-btn,
|
|
.hd-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: .5rem;
|
|
border-radius: .85rem;
|
|
padding: .62rem 1.05rem;
|
|
font-size: .875rem;
|
|
line-height: 1.25rem;
|
|
font-weight: 800;
|
|
color: #ffffff !important;
|
|
text-decoration: none !important;
|
|
border: 1px solid rgba(255, 255, 255, .14);
|
|
box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
|
|
transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn:hover,
|
|
.hd-btn:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 16px 34px rgba(0, 0, 0, .30);
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-sm,
|
|
.hd-btn-sm {
|
|
border-radius: .65rem;
|
|
padding: .42rem .78rem;
|
|
font-size: .8125rem;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-blue,
|
|
.hd-btn-blue {
|
|
background: #2563eb !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-blue:hover,
|
|
.hd-btn-blue:hover {
|
|
background: #1d4ed8 !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-green,
|
|
.hd-btn-green {
|
|
background: #16a34a !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-green:hover,
|
|
.hd-btn-green:hover {
|
|
background: #15803d !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-amber,
|
|
.hd-btn-amber {
|
|
background: #f59e0b !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-amber:hover,
|
|
.hd-btn-amber:hover {
|
|
background: #d97706 !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-red,
|
|
.hd-btn-red {
|
|
background: #dc2626 !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-red:hover,
|
|
.hd-btn-red:hover {
|
|
background: #b91c1c !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-violet,
|
|
.hd-btn-violet {
|
|
background: #7c3aed !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface .hd-btn-violet:hover,
|
|
.hd-btn-violet:hover {
|
|
background: #6d28d9 !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface button[type="submit"],
|
|
.hd-helpdesk-surface button[data-flux-button][type="submit"] {
|
|
background: #16a34a !important;
|
|
color: #ffffff !important;
|
|
border-color: rgba(255, 255, 255, .14) !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface button[wire\:click^="reset"],
|
|
.hd-helpdesk-surface button[wire\:target^="reset"] {
|
|
background: #f59e0b !important;
|
|
color: #ffffff !important;
|
|
border-color: rgba(255, 255, 255, .14) !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface button[wire\:click^="edit"],
|
|
.hd-helpdesk-surface button[wire\:target^="edit"] {
|
|
background: #2563eb !important;
|
|
color: #ffffff !important;
|
|
border-color: rgba(255, 255, 255, .14) !important;
|
|
}
|
|
|
|
.hd-helpdesk-surface button[wire\:click^="delete"],
|
|
.hd-helpdesk-surface button[wire\:target^="delete"] {
|
|
background: #dc2626 !important;
|
|
color: #ffffff !important;
|
|
border-color: rgba(255, 255, 255, .14) !important;
|
|
}
|
|
|
|
.hd-select {
|
|
width: 100%;
|
|
min-height: 3.35rem;
|
|
border-radius: 1rem;
|
|
border: 1px solid #3f3f46 !important;
|
|
background: #09090b !important;
|
|
color: #f4f4f5 !important;
|
|
padding: .78rem 3rem .78rem 1rem;
|
|
font-weight: 800;
|
|
outline: none;
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 12px 26px rgba(0, 0, 0, .24);
|
|
}
|
|
|
|
.hd-select:focus {
|
|
border-color: #60a5fa !important;
|
|
box-shadow: 0 0 0 3px rgba(96, 165, 250, .38), inset 0 1px 0 rgba(255, 255, 255, .05);
|
|
}
|
|
|
|
.helpdesk-ticket-form,
|
|
.helpdesk-ticket-form * {
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
|
|
.helpdesk-ticket-form input,
|
|
.helpdesk-ticket-form textarea,
|
|
.helpdesk-ticket-form select,
|
|
.helpdesk-ticket-form .select2-container--default .select2-selection--single,
|
|
.helpdesk-ticket-form .select2-container--default .select2-selection--multiple,
|
|
.helpdesk-ticket-form .select2-container--default .select2-selection__rendered,
|
|
.helpdesk-ticket-form .select2-container--default .select2-selection__choice {
|
|
background: #09090b !important;
|
|
background-color: #09090b !important;
|
|
color: #f4f4f5 !important;
|
|
border-color: #3f3f46 !important;
|
|
caret-color: #f4f4f5 !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.helpdesk-ticket-form input:disabled,
|
|
.helpdesk-ticket-form textarea:disabled,
|
|
.helpdesk-ticket-form select:disabled,
|
|
.helpdesk-ticket-form .select2-container--disabled .select2-selection--single,
|
|
.helpdesk-ticket-form .select2-container--disabled .select2-selection--multiple,
|
|
.helpdesk-ticket-form [disabled],
|
|
.helpdesk-ticket-form [aria-disabled="true"] {
|
|
background: #09090b !important;
|
|
background-color: #09090b !important;
|
|
color: #a1a1aa !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.helpdesk-ticket-form input:-webkit-autofill,
|
|
.helpdesk-ticket-form input:-webkit-autofill:hover,
|
|
.helpdesk-ticket-form input:-webkit-autofill:focus,
|
|
.helpdesk-ticket-form textarea:-webkit-autofill,
|
|
.helpdesk-ticket-form textarea:-webkit-autofill:hover,
|
|
.helpdesk-ticket-form textarea:-webkit-autofill:focus,
|
|
.helpdesk-ticket-form select:-webkit-autofill,
|
|
.helpdesk-ticket-form select:-webkit-autofill:hover,
|
|
.helpdesk-ticket-form select:-webkit-autofill:focus {
|
|
-webkit-text-fill-color: #f4f4f5 !important;
|
|
box-shadow: 0 0 0 1000px #09090b inset !important;
|
|
transition: background-color 9999s ease-in-out 0s;
|
|
}
|
|
</style>
|
|
|
|
<div class="hd-helpdesk-surface space-y-5">
|
|
<div class="overflow-hidden rounded-2xl border border-blue-400/20 bg-slate-950 shadow-sm ring-1 ring-white/5">
|
|
<div class="relative min-h-[9.5rem] bg-[radial-gradient(circle_at_78%_18%,rgba(37,99,235,0.28),transparent_34%),linear-gradient(135deg,#020617_0%,#07112d_48%,#111827_100%)] px-5 py-5 text-white sm:px-6">
|
|
<div class="absolute inset-y-0 right-0 hidden w-[42%] overflow-hidden lg:block" aria-hidden="true">
|
|
<div class="absolute right-6 top-5 h-28 w-64 rotate-[-8deg] rounded-2xl border border-blue-300/25 bg-blue-950/35 shadow-2xl shadow-blue-950/50">
|
|
<div class="absolute inset-3 rounded-xl border border-white/10 bg-slate-950/70 p-3">
|
|
<div class="flex items-center justify-between">
|
|
<div class="h-2 w-24 rounded-full bg-blue-200/80"></div>
|
|
<div class="flex gap-1.5">
|
|
<span class="h-2.5 w-2.5 rounded-full bg-emerald-300"></span>
|
|
<span class="h-2.5 w-2.5 rounded-full bg-amber-300"></span>
|
|
<span class="h-2.5 w-2.5 rounded-full bg-rose-300"></span>
|
|
</div>
|
|
</div>
|
|
<div class="mt-4 grid grid-cols-3 gap-2">
|
|
<div class="h-10 rounded-lg bg-blue-400/20 ring-1 ring-blue-300/20"></div>
|
|
<div class="h-10 rounded-lg bg-emerald-400/15 ring-1 ring-emerald-300/20"></div>
|
|
<div class="h-10 rounded-lg bg-violet-400/15 ring-1 ring-violet-300/20"></div>
|
|
</div>
|
|
<div class="mt-3 space-y-1.5">
|
|
<div class="h-1.5 w-11/12 rounded-full bg-blue-300/70"></div>
|
|
<div class="h-1.5 w-8/12 rounded-full bg-emerald-300/70"></div>
|
|
<div class="h-1.5 w-6/12 rounded-full bg-amber-300/70"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="absolute bottom-4 right-12 grid grid-cols-3 gap-2">
|
|
<div class="rounded-xl border border-blue-300/25 bg-blue-500/15 px-3 py-2 shadow-lg shadow-blue-950/30">
|
|
<div class="text-[0.6rem] font-black uppercase tracking-widest text-blue-100">Tickets</div>
|
|
<div class="mt-1 text-lg font-black">{{ number_format($totalTickets ?? 0) }}</div>
|
|
</div>
|
|
<div class="rounded-xl border border-emerald-300/25 bg-emerald-500/15 px-3 py-2 shadow-lg shadow-emerald-950/20">
|
|
<div class="text-[0.6rem] font-black uppercase tracking-widest text-emerald-100">SLA</div>
|
|
<div class="mt-1 text-lg font-black">96%</div>
|
|
</div>
|
|
<div class="rounded-xl border border-violet-300/25 bg-violet-500/15 px-3 py-2 shadow-lg shadow-violet-950/20">
|
|
<div class="text-[0.6rem] font-black uppercase tracking-widest text-violet-100">Git</div>
|
|
<div class="mt-1 text-lg font-black">{{ number_format($gitCommits ?? 0) }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="relative max-w-4xl">
|
|
<p class="text-[0.67rem] font-black uppercase tracking-[0.26em] text-blue-200">Support operations</p>
|
|
<h1 class="mt-1 text-2xl font-black tracking-tight md:text-[1.7rem]">Helpdesk dashboard</h1>
|
|
<p class="mt-2 max-w-3xl text-sm leading-5 text-blue-100/85">
|
|
Track workload, SLA health, project activity, Git commits and support communication from one professional workspace.
|
|
</p>
|
|
<div class="mt-4 flex flex-wrap gap-2">
|
|
<a href="{{ route('helpdesk.tickets.create') }}" wire:navigate class="hd-btn hd-btn-sm hd-btn-green">
|
|
<i class="fa-solid fa-plus" aria-hidden="true"></i>
|
|
<span>New Ticket</span>
|
|
</a>
|
|
<a href="{{ route('helpdesk.tickets.index') }}" wire:navigate class="hd-btn hd-btn-sm hd-btn-blue">
|
|
<i class="fa-solid fa-ticket" aria-hidden="true"></i>
|
|
<span>Active tickets</span>
|
|
</a>
|
|
<a href="{{ route('helpdesk.kanban') }}" wire:navigate class="hd-btn hd-btn-sm hd-btn-amber">
|
|
<i class="fa-solid fa-table-columns" aria-hidden="true"></i>
|
|
<span>Kanban</span>
|
|
</a>
|
|
<a href="{{ route('helpdesk.settings') }}" wire:navigate class="hd-btn hd-btn-sm hd-btn-violet">
|
|
<i class="fa-solid fa-gear" aria-hidden="true"></i>
|
|
<span>Settings</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<livewire:helpdesk.dashboard-widget />
|
|
</div>
|