Added ability to modify ensembles
This commit is contained in:
parent
a0927c12b7
commit
6909cdd229
|
|
@ -22,7 +22,7 @@ class EnsembleController extends Controller
|
||||||
if(! Auth::user()->is_admin) abort(403);
|
if(! Auth::user()->is_admin) abort(403);
|
||||||
request()->validate([
|
request()->validate([
|
||||||
'name' => 'required',
|
'name' => 'required',
|
||||||
'code' => 'required',
|
'code' => ['required','max:6'],
|
||||||
'event_id' => ['required','exists:events,id']
|
'event_id' => ['required','exists:events,id']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -42,6 +42,21 @@ class EnsembleController extends Controller
|
||||||
return redirect()->route('admin.ensembles.index')->with('success', 'Ensemble deleted successfully');
|
return redirect()->route('admin.ensembles.index')->with('success', 'Ensemble deleted successfully');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateEnsemble(Request $request, Ensemble $ensemble)
|
||||||
|
{
|
||||||
|
if(! Auth::user()->is_admin) abort(403);
|
||||||
|
request()->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'code' => 'required|max:6'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$ensemble->update([
|
||||||
|
'name' => request('name'),
|
||||||
|
'code' => request('code')
|
||||||
|
]);
|
||||||
|
return redirect()->route('admin.ensembles.index')->with('success','Ensemble updated successfully');
|
||||||
|
}
|
||||||
|
|
||||||
public function updateEnsembleRank(Request $request)
|
public function updateEnsembleRank(Request $request)
|
||||||
{
|
{
|
||||||
if(! Auth::user()->is_admin) abort(403);
|
if(! Auth::user()->is_admin) abort(403);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
<x-card.card class="mb-6 mx-auto max-w-lg">
|
<x-card.card class="mb-6 mx-auto max-w-lg">
|
||||||
<x-card.heading>Ensembles for {{ $event->name }}</x-card.heading>
|
<x-card.heading>
|
||||||
|
Ensembles for {{ $event->name }}
|
||||||
|
<x-slot:subheading>Click name to rename. Drag handle to reorder.</x-slot:subheading>
|
||||||
|
</x-card.heading>
|
||||||
<x-table.table class="ml-3 sortable-table" id="event-{{$event->id}}">
|
<x-table.table class="ml-3 sortable-table" id="event-{{$event->id}}">
|
||||||
|
|
||||||
<thead>
|
<thead>
|
||||||
|
|
@ -21,7 +24,10 @@
|
||||||
</x-table.td>
|
</x-table.td>
|
||||||
{{-- <x-table.td class="handle"><i class="fas fa-bars"></i></x-table.td>--}}
|
{{-- <x-table.td class="handle"><i class="fas fa-bars"></i></x-table.td>--}}
|
||||||
<x-table.td>{{ $ensemble->code }}</x-table.td>
|
<x-table.td>{{ $ensemble->code }}</x-table.td>
|
||||||
<x-table.td>{{ $ensemble->name }}</x-table.td>
|
{{-- <x-table.td>{{ $ensemble->name }}</x-table.td>--}}
|
||||||
|
<x-table.td>
|
||||||
|
@include('admin.ensembles.index-rename-modal')
|
||||||
|
</x-table.td>
|
||||||
<x-table.td>
|
<x-table.td>
|
||||||
<form method="POST" action="{{ route('admin.ensembles.destroy', ['ensemble' => $ensemble->id]) }}">
|
<form method="POST" action="{{ route('admin.ensembles.destroy', ['ensemble' => $ensemble->id]) }}">
|
||||||
@csrf
|
@csrf
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<x-modal>
|
||||||
|
<x-slot:button_text>{{ $ensemble->name }}</x-slot:button_text>
|
||||||
|
<x-slot:title class="font-semibold">Rename Ensemble {{ $ensemble->name }}</x-slot:title>
|
||||||
|
<x-form.form method="PATCH" action="{{ route('admin.ensembles.updateEnsemble', ['ensemble' => $ensemble->rank]) }}">
|
||||||
|
<x-form.body-grid columns="4">
|
||||||
|
<x-form.field colspan="2" label_text="New Name" value="{{ $ensemble->name }}" name="name" />
|
||||||
|
<x-form.field colspan="1" label_text="New Code" value="{{ $ensemble->code }}" name="code" />
|
||||||
|
<x-form.button class="mt-6">Modify</x-form.button>
|
||||||
|
</x-form.body-grid>
|
||||||
|
</x-form.form>
|
||||||
|
</x-modal>
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
<div
|
||||||
|
x-data="{ 'showModal': false }"
|
||||||
|
@keydown.escape="showModal = false"
|
||||||
|
>
|
||||||
|
<!-- Trigger for Modal -->
|
||||||
|
<button type="button" @click="showModal = true">
|
||||||
|
{{ $button_text }}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Modal -->
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-30 flex items-center justify-center overflow-auto bg-black bg-opacity-50"
|
||||||
|
x-show="showModal" x-cloak
|
||||||
|
>
|
||||||
|
<!-- Modal inner -->
|
||||||
|
<div
|
||||||
|
class="max-w-3xl px-6 py-4 mx-auto text-left bg-white rounded shadow-lg"
|
||||||
|
@click.away="showModal = false"
|
||||||
|
x-transition:enter="motion-safe:ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0 scale-90"
|
||||||
|
x-transition:enter-end="opacity-100 scale-100"
|
||||||
|
>
|
||||||
|
<!-- Title / Close-->
|
||||||
|
<div class="flex items-center justify-between border-b mb-2">
|
||||||
|
<h5 {{ $title->attributes->merge(['class' => 'mr-3 text-black max-w-none']) }}>{{ $title ?? '' }}</h5>
|
||||||
|
|
||||||
|
<button type="button" class="z-50 cursor-pointer" @click="showModal = false">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- content -->
|
||||||
|
<div>{{ $slot }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
@ -64,6 +64,7 @@ Route::middleware(['auth','verified',CheckIfAdmin::class])->prefix('admin/')->gr
|
||||||
Route::post('/','store')->name('admin.ensembles.store');
|
Route::post('/','store')->name('admin.ensembles.store');
|
||||||
Route::delete('/{ensemble}','destroy')->name('admin.ensembles.destroy');
|
Route::delete('/{ensemble}','destroy')->name('admin.ensembles.destroy');
|
||||||
Route::post('/updateEnsembleRank','updateEnsembleRank')->name('admin.ensembles.updateEnsembleRank');
|
Route::post('/updateEnsembleRank','updateEnsembleRank')->name('admin.ensembles.updateEnsembleRank');
|
||||||
|
Route::patch('/{ensemble}','updateEnsemble')->name('admin.ensembles.updateEnsemble');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin Event Routes
|
// Admin Event Routes
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue