modifiche siderbar e correzioni
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use App\Models\AppSetting;
|
||||
use App\Models\Ruolo;
|
||||
use App\Models\TipologiaDocumento;
|
||||
use App\Models\TipologiaEvento;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
@@ -15,10 +16,11 @@ class ImpostazioniController extends Controller
|
||||
$this->authorizeWrite('viste');
|
||||
|
||||
$tipologie = TipologiaDocumento::orderBy('ordine')->get();
|
||||
$tipologieEventi = TipologiaEvento::orderBy('ordine')->get();
|
||||
$ruoli = Ruolo::orderBy('ordine')->get();
|
||||
$appSettings = AppSetting::first();
|
||||
|
||||
return view('impostazioni.index', compact('tipologie', 'ruoli', 'appSettings'));
|
||||
return view('impostazioni.index', compact('tipologie', 'tipologieEventi', 'ruoli', 'appSettings'));
|
||||
}
|
||||
|
||||
public function saveAppSettings(Request $request)
|
||||
@@ -185,6 +187,72 @@ class ImpostazioniController extends Controller
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
public function tipologieEventiStore(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('viste');
|
||||
|
||||
$validated = $request->validate([
|
||||
'nome' => 'required|string|max:50|unique:tipologie_eventi,nome',
|
||||
'descrizione' => 'nullable|string|max:255',
|
||||
]);
|
||||
|
||||
$maxOrdine = TipologiaEvento::max('ordine') ?? 0;
|
||||
|
||||
TipologiaEvento::create([
|
||||
'nome' => $validated['nome'],
|
||||
'descrizione' => $validated['descrizione'] ?? null,
|
||||
'ordine' => $maxOrdine + 1,
|
||||
'attiva' => true,
|
||||
]);
|
||||
|
||||
return redirect('/impostazioni#tipologie-eventi')->with('success', 'Tipologia evento aggiunta.');
|
||||
}
|
||||
|
||||
public function tipologieEventiUpdate(Request $request, $id)
|
||||
{
|
||||
$this->authorizeWrite('viste');
|
||||
|
||||
$tipologia = TipologiaEvento::findOrFail($id);
|
||||
|
||||
$validated = $request->validate([
|
||||
'nome' => 'required|string|max:50|unique:tipologie_eventi,nome,' . $id,
|
||||
'descrizione' => 'nullable|string|max:255',
|
||||
'attiva' => 'boolean',
|
||||
]);
|
||||
|
||||
$tipologia->update($validated);
|
||||
|
||||
return redirect('/impostazioni#tipologie-eventi')->with('success', 'Tipologia evento aggiornata.');
|
||||
}
|
||||
|
||||
public function tipologieEventiDestroy($id)
|
||||
{
|
||||
$this->authorizeDelete('viste');
|
||||
$tipologia = TipologiaEvento::findOrFail($id);
|
||||
|
||||
$count = $tipologia->eventi()->count();
|
||||
if ($count > 0) {
|
||||
return redirect('/impostazioni#tipologie-eventi')->with('error', 'Impossibile eliminare: ' . $count . ' eventi associati.');
|
||||
}
|
||||
|
||||
$tipologia->delete();
|
||||
|
||||
return redirect('/impostazioni#tipologie-eventi')->with('success', 'Tipologia evento eliminata.');
|
||||
}
|
||||
|
||||
public function tipologieEventiReorder(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('viste');
|
||||
|
||||
$order = $request->input('order', []);
|
||||
|
||||
foreach ($order as $index => $id) {
|
||||
TipologiaEvento::where('id', $id)->update(['ordine' => $index]);
|
||||
}
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
public function uploadLogo(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('viste');
|
||||
|
||||
Reference in New Issue
Block a user