Move Team, Security, and Webhooks under Meet Settings.
Deploy Ladill Meet / deploy (push) Successful in 50s
Deploy Ladill Meet / deploy (push) Successful in 50s
Drop them from the admin sidebar, surface Team on the settings page, remove the unused branches message, and add Settings back-links on those screens.
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
<x-app-layout title="Add member">
|
||||
<div class="mx-auto max-w-lg">
|
||||
<div class="mb-4 text-sm text-slate-500">
|
||||
<a href="{{ route('meet.members.index') }}" class="font-medium text-indigo-600 hover:text-indigo-800">← Team</a>
|
||||
</div>
|
||||
<h1 class="text-xl font-semibold text-slate-900">Invite team member</h1>
|
||||
|
||||
<form method="POST" x-data action="{{ route('meet.members.store') }}" class="mt-6 space-y-4 rounded-2xl border border-slate-200 bg-white p-6">
|
||||
@@ -36,16 +39,6 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-slate-700">Branch (optional)</label>
|
||||
<select name="branch_id" class="mt-1 w-full rounded-lg border-slate-300 text-sm">
|
||||
<option value="">All branches</option>
|
||||
@foreach ($branches as $branch)
|
||||
<option value="{{ $branch->id }}" @selected(old('branch_id') == $branch->id)>{{ $branch->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn-primary">Send invitation</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<x-app-layout title="Team members">
|
||||
<div class="mb-4 text-sm text-slate-500">
|
||||
<a href="{{ route('meet.settings') }}" class="font-medium text-indigo-600 hover:text-indigo-800">← Settings</a>
|
||||
</div>
|
||||
<div class="flex items-center justify-between">
|
||||
<h1 class="text-xl font-semibold text-slate-900">Team members</h1>
|
||||
<a href="{{ route('meet.members.create') }}" class="btn-primary">Add member</a>
|
||||
@@ -7,7 +10,7 @@
|
||||
<div class="mt-4 overflow-hidden rounded-2xl border border-slate-200 bg-white">
|
||||
<table class="min-w-full text-sm">
|
||||
<thead class="bg-slate-50 text-left text-xs uppercase text-slate-500">
|
||||
<tr><th class="px-4 py-3">Member</th><th class="px-4 py-3">Role</th><th class="px-4 py-3">Branch</th><th class="px-4 py-3"></th></tr>
|
||||
<tr><th class="px-4 py-3">Member</th><th class="px-4 py-3">Role</th><th class="px-4 py-3"></th></tr>
|
||||
</thead>
|
||||
<tbody class="divide-y divide-slate-50">
|
||||
@foreach ($members as $member)
|
||||
@@ -19,7 +22,6 @@
|
||||
<tr>
|
||||
<td class="px-4 py-3 text-sm">{{ $display }}</td>
|
||||
<td class="px-4 py-3">{{ $roles[$member->role] ?? $member->role }}</td>
|
||||
<td class="px-4 py-3">{{ $member->branch?->name ?? 'All branches' }}</td>
|
||||
<td class="px-4 py-3 text-right">
|
||||
@if ($member->user_ref !== auth()->user()->public_id)
|
||||
<x-confirm-dialog
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<x-app-layout title="Calendar">
|
||||
<x-settings.page title="Calendar integration" description="Sync scheduled meetings to your calendar.">
|
||||
<div class="mb-4 text-sm text-slate-500">
|
||||
<a href="{{ route('meet.settings') }}" class="font-medium text-indigo-600 hover:text-indigo-800">← Settings</a>
|
||||
</div>
|
||||
<x-settings.card title="Connections">
|
||||
<ul class="space-y-3 text-sm">
|
||||
<li class="flex flex-wrap items-center justify-between gap-3 rounded-xl border border-slate-100 bg-slate-50 px-4 py-3">
|
||||
|
||||
@@ -52,8 +52,15 @@
|
||||
</form>
|
||||
|
||||
@if ($isAdmin ?? false)
|
||||
<x-settings.card title="Advanced" description="Security, calendar sync, and webhook integrations.">
|
||||
<x-settings.card title="Organization admin" description="Team access, security, calendar sync, and integrations.">
|
||||
<ul class="space-y-3 text-sm">
|
||||
<li class="flex flex-wrap items-start justify-between gap-3 rounded-xl border border-slate-100 bg-slate-50 px-4 py-3">
|
||||
<div>
|
||||
<p class="font-semibold text-slate-900">Team</p>
|
||||
<p class="mt-0.5 text-slate-600">Invite members and assign roles for this Meet organization.</p>
|
||||
</div>
|
||||
<a href="{{ route('meet.members.index') }}" class="shrink-0 font-semibold text-indigo-600 hover:text-indigo-700">Manage</a>
|
||||
</li>
|
||||
<li class="flex flex-wrap items-start justify-between gap-3 rounded-xl border border-slate-100 bg-slate-50 px-4 py-3">
|
||||
<div>
|
||||
<p class="font-semibold text-slate-900">Security policy</p>
|
||||
@@ -78,7 +85,5 @@
|
||||
</ul>
|
||||
</x-settings.card>
|
||||
@endif
|
||||
|
||||
<p class="text-sm text-slate-500">{{ $branchCount }} branch(es) configured.</p>
|
||||
</x-settings.page>
|
||||
</x-app-layout>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<x-app-layout title="Security settings">
|
||||
<x-settings.page title="Meeting security" description="Organization-wide defaults for {{ $organization->name }}.">
|
||||
<div class="mb-4 text-sm text-slate-500">
|
||||
<a href="{{ route('meet.settings') }}" class="font-medium text-indigo-600 hover:text-indigo-800">← Settings</a>
|
||||
</div>
|
||||
<form method="POST" action="{{ route('meet.settings.security.update') }}">
|
||||
@csrf @method('PUT')
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<x-app-layout title="Webhooks">
|
||||
<x-settings.page title="Webhooks" description="Notify sibling Ladill apps when meetings change.">
|
||||
<div class="mb-4 text-sm text-slate-500">
|
||||
<a href="{{ route('meet.settings') }}" class="font-medium text-indigo-600 hover:text-indigo-800">← Settings</a>
|
||||
</div>
|
||||
<x-settings.card title="Add endpoint">
|
||||
<form method="POST" action="{{ route('meet.settings.webhooks.store') }}" class="space-y-4">
|
||||
@csrf
|
||||
|
||||
@@ -40,19 +40,12 @@
|
||||
if ($permissions->isAdmin($member)) {
|
||||
$adminNav[] = ['name' => 'Usage', 'route' => route('meet.admin.usage'), 'active' => request()->routeIs('meet.admin.*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />'];
|
||||
$adminNav[] = ['name' => 'Security', 'route' => route('meet.settings.security'), 'active' => request()->routeIs('meet.settings.security*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" />'];
|
||||
$adminNav[] = ['name' => 'Calendar', 'route' => route('meet.settings.calendar'), 'active' => request()->routeIs('meet.settings.calendar*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" />'];
|
||||
$adminNav[] = ['name' => 'Webhooks', 'route' => route('meet.settings.webhooks'), 'active' => request()->routeIs('meet.settings.webhooks*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />'];
|
||||
$adminNav[] = ['name' => 'Contacts', 'route' => route('meet.contacts.groups'), 'active' => request()->routeIs('meet.contacts.*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" />'];
|
||||
$adminNav[] = ['name' => 'Team', 'route' => route('meet.members.index'), 'active' => request()->routeIs('meet.members.*'),
|
||||
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z" />'];
|
||||
}
|
||||
|
||||
$settingsActive = request()->routeIs('meet.settings*');
|
||||
// Team, Security, Calendar, and Webhooks live under Settings (not as top-level admin items).
|
||||
$settingsActive = request()->routeIs('meet.settings*', 'meet.members.*');
|
||||
@endphp
|
||||
|
||||
<nav class="flex-1 space-y-0.5 overflow-y-auto px-3 py-4">
|
||||
|
||||
Reference in New Issue
Block a user