@php
/**
* Keep the settings view safe during rolling module upgrades or Livewire navigate
* hydration where the compiled Blade view may be newer than the loaded component.
*/
$companies = collect($companies ?? []);
$statuses = collect($statuses ?? []);
$priorities = collect($priorities ?? []);
$categories = collect($categories ?? []);
$teams = collect($teams ?? []);
$projects = collect($projects ?? []);
$boards = collect($boards ?? []);
$repositories = collect($repositories ?? []);
$workflowTemplates = collect($workflowTemplates ?? []);
$cannedResponses = collect($cannedResponses ?? []);
$slaPolicies = collect($slaPolicies ?? []);
$automationRules = collect($automationRules ?? []);
$checklistTemplates = collect($checklistTemplates ?? []);
$tags = collect($tags ?? []);
$products = collect($products ?? []);
@endphp
Helpdesk administration
Support configuration
Manage lookup data, workflow messages, canned responses, SLA policies, automation rules, checklists, tags and product/service linkage.
@foreach ([
'statuses' => ['label' => 'Statuses', 'count' => $statuses->count()],
'priorities' => ['label' => 'Priorities', 'count' => $priorities->count()],
'categories' => ['label' => 'Categories', 'count' => $categories->count()],
'teams' => ['label' => 'Teams', 'count' => $teams->count()],
'projects' => ['label' => 'Projects', 'count' => $projects->count()],
'boards' => ['label' => 'Boards', 'count' => $boards->count()],
'git' => ['label' => 'Git', 'count' => $repositories->count()],
'workflow' => ['label' => 'Workflow', 'count' => $workflowTemplates->count()],
'canned' => ['label' => 'Canned', 'count' => $cannedResponses->count()],
'sla' => ['label' => 'SLA', 'count' => $slaPolicies->count()],
'automation' => ['label' => 'Rules', 'count' => $automationRules->count()],
'checklists' => ['label' => 'Checks', 'count' => $checklistTemplates->count()],
'tags' => ['label' => 'Tags', 'count' => $tags->count()],
'products' => ['label' => 'Products', 'count' => $products->count()],
'defaults' => ['label' => 'Defaults', 'count' => 1],
] as $key => $item)
@php
$sectionTone = match ($key) {
'statuses' => 'border-sky-400/70 bg-sky-600/15 text-sky-900 hover:bg-sky-600/25 dark:border-sky-500/50 dark:bg-sky-950/50 dark:text-sky-100 dark:hover:bg-sky-900/70',
'priorities' => 'border-red-400/70 bg-red-600/15 text-red-900 hover:bg-red-600/25 dark:border-red-500/50 dark:bg-red-950/50 dark:text-red-100 dark:hover:bg-red-900/70',
'categories' => 'border-indigo-400/70 bg-indigo-600/15 text-indigo-900 hover:bg-indigo-600/25 dark:border-indigo-500/50 dark:bg-indigo-950/50 dark:text-indigo-100 dark:hover:bg-indigo-900/70',
'teams' => 'border-blue-400/70 bg-blue-600/15 text-blue-900 hover:bg-blue-600/25 dark:border-blue-500/50 dark:bg-blue-950/50 dark:text-blue-100 dark:hover:bg-blue-900/70',
'projects' => 'border-cyan-400/70 bg-cyan-600/15 text-cyan-900 hover:bg-cyan-600/25 dark:border-cyan-500/50 dark:bg-cyan-950/50 dark:text-cyan-100 dark:hover:bg-cyan-900/70',
'boards' => 'border-amber-400/70 bg-amber-600/15 text-amber-900 hover:bg-amber-600/25 dark:border-amber-500/50 dark:bg-amber-950/50 dark:text-amber-100 dark:hover:bg-amber-900/70',
'git' => 'border-slate-400/70 bg-slate-600/15 text-slate-900 hover:bg-slate-600/25 dark:border-slate-500/50 dark:bg-slate-950/50 dark:text-slate-100 dark:hover:bg-slate-900/70',
'workflow' => 'border-emerald-400/70 bg-emerald-600/15 text-emerald-900 hover:bg-emerald-600/25 dark:border-emerald-500/50 dark:bg-emerald-950/50 dark:text-emerald-100 dark:hover:bg-emerald-900/70',
'canned' => 'border-teal-400/70 bg-teal-600/15 text-teal-900 hover:bg-teal-600/25 dark:border-teal-500/50 dark:bg-teal-950/50 dark:text-teal-100 dark:hover:bg-teal-900/70',
'sla' => 'border-orange-400/70 bg-orange-600/15 text-orange-900 hover:bg-orange-600/25 dark:border-orange-500/50 dark:bg-orange-950/50 dark:text-orange-100 dark:hover:bg-orange-900/70',
'automation' => 'border-purple-400/70 bg-purple-600/15 text-purple-900 hover:bg-purple-600/25 dark:border-purple-500/50 dark:bg-purple-950/50 dark:text-purple-100 dark:hover:bg-purple-900/70',
'checklists' => 'border-lime-400/70 bg-lime-600/15 text-lime-900 hover:bg-lime-600/25 dark:border-lime-500/50 dark:bg-lime-950/50 dark:text-lime-100 dark:hover:bg-lime-900/70',
'tags' => 'border-pink-400/70 bg-pink-600/15 text-pink-900 hover:bg-pink-600/25 dark:border-pink-500/50 dark:bg-pink-950/50 dark:text-pink-100 dark:hover:bg-pink-900/70',
'products' => 'border-violet-400/70 bg-violet-600/15 text-violet-900 hover:bg-violet-600/25 dark:border-violet-500/50 dark:bg-violet-950/50 dark:text-violet-100 dark:hover:bg-violet-900/70',
'defaults' => 'border-green-400/70 bg-green-600/15 text-green-900 hover:bg-green-600/25 dark:border-green-500/50 dark:bg-green-950/50 dark:text-green-100 dark:hover:bg-green-900/70',
default => 'border-zinc-400/70 bg-zinc-600/15 text-zinc-900 hover:bg-zinc-600/25 dark:border-zinc-500/50 dark:bg-zinc-950/50 dark:text-zinc-100 dark:hover:bg-zinc-900/70',
};
$sectionActiveTone = match ($key) {
'statuses' => 'border-sky-300 bg-sky-600 text-white shadow-sky-950/20',
'priorities' => 'border-red-300 bg-red-600 text-white shadow-red-950/20',
'categories' => 'border-indigo-300 bg-indigo-600 text-white shadow-indigo-950/20',
'teams' => 'border-blue-300 bg-blue-600 text-white shadow-blue-950/20',
'projects' => 'border-cyan-300 bg-cyan-600 text-white shadow-cyan-950/20',
'boards' => 'border-amber-300 bg-amber-500 text-white shadow-amber-950/20',
'git' => 'border-slate-300 bg-slate-700 text-white shadow-slate-950/20',
'workflow' => 'border-emerald-300 bg-emerald-600 text-white shadow-emerald-950/20',
'canned' => 'border-teal-300 bg-teal-600 text-white shadow-teal-950/20',
'sla' => 'border-orange-300 bg-orange-600 text-white shadow-orange-950/20',
'automation' => 'border-purple-300 bg-purple-600 text-white shadow-purple-950/20',
'checklists' => 'border-lime-300 bg-lime-600 text-white shadow-lime-950/20',
'tags' => 'border-pink-300 bg-pink-600 text-white shadow-pink-950/20',
'products' => 'border-violet-300 bg-violet-600 text-white shadow-violet-950/20',
'defaults' => 'border-green-300 bg-green-600 text-white shadow-green-950/20',
default => 'border-blue-300 bg-blue-600 text-white shadow-blue-950/20',
};
@endphp
{{ $item['label'] }}
{{ $item['count'] }}
@endforeach
@if ($section === 'defaults')
Lookup defaults
Set the default Status, Priority, Category, Team and Project from their own settings sections. Only one default per company/global scope is kept for each lookup type.
@endif
@if ($section === 'statuses')
@endif
@if ($section === 'priorities')
@endif
@if ($section === 'categories')
@endif
@if ($section === 'teams')
@endif
@if ($section === 'projects')
@endif
@if ($section === 'boards')
Board
Columns
Default
Actions
@forelse ($boards as $boardItem)
{{ $boardItem->name }}
{{ $boardItem->slug }}
@foreach ($boardItem->statuses as $status)
{{ $status->name }}
@endforeach
{{ $boardItem->is_default ? 'Default' : 'No' }}
Edit
Delete
@empty
No Kanban boards yet.
@endforelse
@endif
@if ($section === 'git')
@endif
@if ($section === 'workflow')
Name
Event
Recipient
Active
Actions
@forelse ($workflowTemplates as $template)
{{ $template->name }}
{{ $template->event }}
{{ $template->to_role }}
{{ $template->is_active ? 'Active' : 'Inactive' }}
Edit
Delete
@empty
No workflow messages yet.
@endforelse
@endif
@if ($section === 'canned')
@forelse ($cannedResponses as $response)
{{ $response->name }} {{ $response->category?->name ?? 'Any category' }} · {{ $response->team?->name ?? 'Any team' }}
{{ $response->is_active ? 'Active' : 'Inactive' }}
{{ strip_tags($response->body) }}
Edit Delete
@empty
No canned responses yet.
@endforelse
@endif
@if ($section === 'sla')
Policy Targets Applies to Actions @forelse ($slaPolicies as $policy){{ $policy->name }} @if($policy->is_default)Default @endif {{ $policy->first_response_minutes }}m response · {{ $policy->resolution_minutes }}m close {{ $policy->priority?->name ?? 'Any priority' }} · {{ $policy->category?->name ?? 'Any category' }} Edit Delete @emptyNo SLA policies yet. @endforelse
@endif
@if ($section === 'automation')
@forelse ($automationRules as $rule)
{{ $rule->name }} Sender: {{ $rule->match_sender ?: 'Any' }} · Subject: {{ $rule->match_subject ?: 'Any' }}
Edit Delete
@empty
No automation rules yet.
@endforelse
@endif
@if ($section === 'checklists')
@forelse ($checklistTemplates as $template)
{{ $template->name }} {{ count($template->items ?? []) }} items
Edit Delete
@empty
No checklist templates yet.
@endforelse
@endif
@if ($section === 'tags')
@forelse ($tags as $tag)
{{ $tag->name }} Edit Delete
@empty
No tags yet.
@endforelse
@endif
@if ($section === 'products')
@forelse ($products as $product)
{{ $product->name }} {{ ucfirst($product->type) }} · {{ $product->version ?: 'No version' }} · {{ $product->tickets_count }} tickets
Edit Delete
@empty
No products or services yet.
@endforelse
@endif