Nest Branches and Team under Settings as Pro features.
Deploy Ladill Queue / deploy (push) Successful in 50s

Match Frontdesk: settings cards and nested routes, Pro-gated access,
and legacy /admin redirects to /settings/branches and /settings/team.
This commit is contained in:
isaacclad
2026-07-16 09:48:32 +00:00
parent 8be3eaeb4b
commit 26c9edc131
17 changed files with 629 additions and 165 deletions
+59 -3
View File
@@ -1,5 +1,63 @@
<x-app-layout title="Settings">
<x-settings.page title="Organization settings">
<x-settings.page title="Organization settings" description="Configure branding, queue preferences, and access for {{ $organization->name }}.">
@if ($canManage)
<x-settings.card title="Plan & usage" description="Subscription limits for {{ $organization->name }}.">
<div class="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
<p class="text-sm leading-6 text-slate-600">
@if ($isEnterprise)
<span class="font-medium text-indigo-700">Enterprise</span> unlimited branches, full API, advanced analytics, billed per branch.
@elseif ($hasPaidPlan)
<span class="font-medium text-indigo-700">Pro</span> multi-branch, team roles, advanced routing, and Ladill-provided kiosk hardware, billed per branch.
@else
<span class="font-medium text-slate-900">Free</span> one branch, five queues, owner-only access. Multi-branch and team require Pro.
@endif
</p>
@if (! $hasPaidPlan)
<a href="{{ route('qms.pro.index') }}" class="btn-primary shrink-0 text-sm">Upgrade to Pro (GHS {{ number_format($proPriceMinor / 100, 0) }}/branch/mo)</a>
@else
<a href="{{ route('qms.pro.index') }}" class="btn-secondary shrink-0 text-sm">Manage plan</a>
@endif
</div>
</x-settings.card>
@endif
@if ($canViewBranches || $canViewTeam)
<x-settings.card title="Branches & team" description="Locations and staff access for this organization. Multi-branch and team require Queue Pro.">
<ul class="space-y-3">
@if ($canViewBranches)
<li>
<a href="{{ route('qms.branches.index') }}"
class="flex items-center justify-between rounded-xl border border-slate-100 bg-slate-50 px-4 py-3 text-sm text-slate-700 hover:text-indigo-700">
<span>
Branches
@if (! $hasBranchesFeature)
<span class="ml-2 rounded-full bg-amber-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-amber-700">Pro</span>
@endif
<span class="mt-0.5 block text-xs text-slate-500">Locations and sites for queues and counters</span>
</span>
<span class="text-slate-400">&rarr;</span>
</a>
</li>
@endif
@if ($canViewTeam)
<li>
<a href="{{ route('qms.members.index') }}"
class="flex items-center justify-between rounded-xl border border-slate-100 bg-slate-50 px-4 py-3 text-sm text-slate-700 hover:text-indigo-700">
<span>
Team
@if (! $hasTeamFeature)
<span class="ml-2 rounded-full bg-amber-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-amber-700">Pro</span>
@endif
<span class="mt-0.5 block text-xs text-slate-500">Invite colleagues and assign Queue roles</span>
</span>
<span class="text-slate-400">&rarr;</span>
</a>
</li>
@endif
</ul>
</x-settings.card>
@endif
<form method="POST" action="{{ route('qms.settings.update') }}" enctype="multipart/form-data" class="space-y-6">
@csrf @method('PUT')
@@ -72,7 +130,5 @@
</div>
@endif
</form>
<p class="text-sm text-slate-600">{{ $branchCount }} branch{{ $branchCount === 1 ? '' : 'es' }} configured.</p>
</x-settings.page>
</x-app-layout>