@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 @endforeach
@if ($section === 'defaults')
@foreach ($companies as $company) @endforeach

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')
@foreach ($companies as $company)@endforeach
@endif @if ($section === 'teams')
@foreach ($companies as $company)@endforeach
@endif @if ($section === 'projects')
@foreach ($companies as $company)@endforeach @foreach ($teams as $team)@endforeach
@endif @if ($section === 'boards')
@foreach ($statuses as $status) @endforeach
@forelse ($boards as $boardItem) @empty @endforelse
Board Columns Default Actions
{{ $boardItem->name }}
{{ $boardItem->slug }}
@foreach ($boardItem->statuses as $status) {{ $status->name }} @endforeach
{{ $boardItem->is_default ? 'Default' : 'No' }}
No Kanban boards yet.
@endif @if ($section === 'git')
@foreach ($companies as $company) @endforeach @foreach ($projects as $project) @endforeach
@endif @if ($section === 'workflow')
@forelse ($workflowTemplates as $template) @empty @endforelse
Name Event Recipient Active Actions
{{ $template->name }} {{ $template->event }} {{ $template->to_role }} {{ $template->is_active ? 'Active' : 'Inactive' }}
No workflow messages yet.
@endif @if ($section === 'canned')
@foreach ($categories as $category)@endforeach @foreach ($teams as $team)@endforeach
@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) }}

@empty
No canned responses yet.
@endforelse
@endif @if ($section === 'sla')
@foreach ($priorities as $priority)@endforeach @foreach ($categories as $category)@endforeach
@forelse ($slaPolicies as $policy)@empty@endforelse
PolicyTargetsApplies toActions
{{ $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' }}
No SLA policies yet.
@endif @if ($section === 'automation')
@foreach ($priorities as $priority)@endforeach @foreach ($categories as $category)@endforeach @foreach ($teams as $team)@endforeach @foreach ($projects as $project)@endforeach @foreach ($statuses as $status)@endforeach
@forelse ($automationRules as $rule)

{{ $rule->name }}

Sender: {{ $rule->match_sender ?: 'Any' }} · Subject: {{ $rule->match_subject ?: 'Any' }}

@empty
No automation rules yet.
@endforelse
@endif @if ($section === 'checklists')
@foreach ($categories as $category)@endforeach@foreach ($projects as $project)@endforeach
@forelse ($checklistTemplates as $template)

{{ $template->name }}

{{ count($template->items ?? []) }} items

@empty
No checklist templates yet.
@endforelse
@endif @if ($section === 'tags')
@forelse ($tags as $tag)
{{ $tag->name }}
@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

@empty
No products or services yet.
@endforelse
@endif