versione 2.0.0
This commit is contained in:
@@ -9,6 +9,7 @@ use App\Models\EmailSetting;
|
||||
use App\Models\Ruolo;
|
||||
use App\Models\SenderAccount;
|
||||
use App\Models\StorageRepository;
|
||||
use App\Models\Tag;
|
||||
use App\Models\TipologiaDocumento;
|
||||
use App\Models\TipologiaEvento;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
@@ -26,6 +27,7 @@ class ImpostazioniController extends Controller
|
||||
$tipologie = TipologiaDocumento::orderBy('ordine')->get();
|
||||
$tipologieEventi = TipologiaEvento::orderBy('ordine')->get();
|
||||
$ruoli = Ruolo::orderBy('ordine')->get();
|
||||
$tags = Tag::orderBy('order_column')->get();
|
||||
$appSettings = AppSetting::first();
|
||||
$emailSettings = EmailSetting::first() ?? new EmailSetting();
|
||||
$senderAccounts = SenderAccount::orderBy('email_address')->get();
|
||||
@@ -33,7 +35,7 @@ class ImpostazioniController extends Controller
|
||||
$googleDriveNewToken = session('google_drive_new_token');
|
||||
$calendarioConnessioni = CalendarioConnessione::orderBy('ordine')->get();
|
||||
|
||||
return view('impostazioni.index', compact('tipologie', 'tipologieEventi', 'ruoli', 'appSettings', 'emailSettings', 'senderAccounts', 'repositories', 'googleDriveNewToken', 'calendarioConnessioni'));
|
||||
return view('impostazioni.index', compact('tipologie', 'tipologieEventi', 'ruoli', 'tags', 'appSettings', 'emailSettings', 'senderAccounts', 'repositories', 'googleDriveNewToken', 'calendarioConnessioni'));
|
||||
}
|
||||
|
||||
public function saveAppSettings(Request $request)
|
||||
@@ -371,6 +373,70 @@ class ImpostazioniController extends Controller
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
public function tagStore(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
$validated = $request->validate([
|
||||
'name' => 'required|string|max:100|unique:tags,name',
|
||||
'color' => 'nullable|string|max:7',
|
||||
]);
|
||||
|
||||
$maxOrdine = Tag::max('order_column') ?? 0;
|
||||
|
||||
Tag::create([
|
||||
'name' => $validated['name'],
|
||||
'slug' => str()->slug($validated['name']),
|
||||
'color' => $validated['color'] ?? null,
|
||||
'order_column' => $maxOrdine + 1,
|
||||
]);
|
||||
|
||||
return redirect('/impostazioni#tag')->with('success', 'Tag aggiunto.');
|
||||
}
|
||||
|
||||
public function tagUpdate(Request $request, $id)
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
$tag = Tag::findOrFail($id);
|
||||
|
||||
$validated = $request->validate([
|
||||
'name' => 'required|string|max:100|unique:tags,name,' . $id,
|
||||
'color' => 'nullable|string|max:7',
|
||||
]);
|
||||
|
||||
$tag->update([
|
||||
'name' => $validated['name'],
|
||||
'slug' => str()->slug($validated['name']),
|
||||
'color' => $validated['color'] ?? null,
|
||||
]);
|
||||
|
||||
return redirect('/impostazioni#tag')->with('success', 'Tag aggiornato.');
|
||||
}
|
||||
|
||||
public function tagDestroy($id)
|
||||
{
|
||||
$this->authorizeDelete('settings');
|
||||
|
||||
$tag = Tag::findOrFail($id);
|
||||
$tag->delete();
|
||||
|
||||
return redirect('/impostazioni#tag')->with('success', 'Tag eliminato.');
|
||||
}
|
||||
|
||||
public function tagReorder(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
$order = $request->input('order', []);
|
||||
|
||||
foreach ($order as $index => $id) {
|
||||
Tag::where('id', $id)->update(['order_column' => $index]);
|
||||
}
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
public function uploadLogo(Request $request)
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
Reference in New Issue
Block a user