feat: add Settings controllers for Location, ProjectSetting, UrgencyLevel
This commit is contained in:
parent
70db1184c8
commit
75e4890a08
39
app/Http/Controllers/Settings/LocationController.php
Normal file
39
app/Http/Controllers/Settings/LocationController.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Settings\Location;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LocationController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$locations = Location::orderBy('name')->get();
|
||||
return view('settings.locations.index', compact('locations'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate(['name' => 'required|string|max:255|unique:settings_locations,name']);
|
||||
Location::create(['name' => $request->name, 'is_active' => true]);
|
||||
return redirect()->route('settings.locations.index')->with('success', 'Location added.');
|
||||
}
|
||||
|
||||
public function update(Request $request, Location $location)
|
||||
{
|
||||
$request->validate(['name' => 'required|string|max:255|unique:settings_locations,name,' . $location->id]);
|
||||
$location->update([
|
||||
'name' => $request->name,
|
||||
'is_active' => $request->boolean('is_active', true),
|
||||
]);
|
||||
return redirect()->route('settings.locations.index')->with('success', 'Location updated.');
|
||||
}
|
||||
|
||||
public function destroy(Location $location)
|
||||
{
|
||||
$location->delete();
|
||||
return redirect()->route('settings.locations.index')->with('success', 'Location deleted.');
|
||||
}
|
||||
}
|
||||
39
app/Http/Controllers/Settings/ProjectSettingController.php
Normal file
39
app/Http/Controllers/Settings/ProjectSettingController.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Settings\ProjectSetting;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ProjectSettingController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$projects = ProjectSetting::orderBy('name')->get();
|
||||
return view('settings.projects.index', compact('projects'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate(['name' => 'required|string|max:255|unique:settings_projects,name']);
|
||||
ProjectSetting::create(['name' => $request->name, 'is_active' => true]);
|
||||
return redirect()->route('settings.projects.index')->with('success', 'Project added.');
|
||||
}
|
||||
|
||||
public function update(Request $request, ProjectSetting $project)
|
||||
{
|
||||
$request->validate(['name' => 'required|string|max:255|unique:settings_projects,name,' . $project->id]);
|
||||
$project->update([
|
||||
'name' => $request->name,
|
||||
'is_active' => $request->boolean('is_active', true),
|
||||
]);
|
||||
return redirect()->route('settings.projects.index')->with('success', 'Project updated.');
|
||||
}
|
||||
|
||||
public function destroy(ProjectSetting $project)
|
||||
{
|
||||
$project->delete();
|
||||
return redirect()->route('settings.projects.index')->with('success', 'Project deleted.');
|
||||
}
|
||||
}
|
||||
72
app/Http/Controllers/Settings/UrgencyLevelController.php
Normal file
72
app/Http/Controllers/Settings/UrgencyLevelController.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Settings\UrgencyLevel;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UrgencyLevelController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$urgencyLevels = UrgencyLevel::orderBy('sort_order')->get();
|
||||
return view('settings.urgency-levels.index', compact('urgencyLevels'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'label' => 'required|string|max:100|unique:settings_urgency_levels,label',
|
||||
'emoji' => 'required|string|max:10',
|
||||
'color_bg' => 'required|string|max:20',
|
||||
'color_text' => 'required|string|max:20',
|
||||
'subtitle' => 'nullable|string|max:100',
|
||||
'sort_order' => 'required|integer|min:0',
|
||||
]);
|
||||
|
||||
UrgencyLevel::create([
|
||||
'label' => $request->label,
|
||||
'emoji' => $request->emoji,
|
||||
'color_bg' => $request->color_bg,
|
||||
'color_text' => $request->color_text,
|
||||
'subtitle' => $request->subtitle,
|
||||
'sort_order' => $request->sort_order,
|
||||
'show_date_picker' => $request->boolean('show_date_picker'),
|
||||
'is_active' => true,
|
||||
]);
|
||||
|
||||
return redirect()->route('settings.urgency-levels.index')->with('success', 'Urgency level added.');
|
||||
}
|
||||
|
||||
public function update(Request $request, UrgencyLevel $urgencyLevel)
|
||||
{
|
||||
$request->validate([
|
||||
'label' => 'required|string|max:100|unique:settings_urgency_levels,label,' . $urgencyLevel->id,
|
||||
'emoji' => 'required|string|max:10',
|
||||
'color_bg' => 'required|string|max:20',
|
||||
'color_text' => 'required|string|max:20',
|
||||
'subtitle' => 'nullable|string|max:100',
|
||||
'sort_order' => 'required|integer|min:0',
|
||||
]);
|
||||
|
||||
$urgencyLevel->update([
|
||||
'label' => $request->label,
|
||||
'emoji' => $request->emoji,
|
||||
'color_bg' => $request->color_bg,
|
||||
'color_text' => $request->color_text,
|
||||
'subtitle' => $request->subtitle,
|
||||
'sort_order' => $request->sort_order,
|
||||
'show_date_picker' => $request->boolean('show_date_picker'),
|
||||
'is_active' => $request->boolean('is_active', true),
|
||||
]);
|
||||
|
||||
return redirect()->route('settings.urgency-levels.index')->with('success', 'Urgency level updated.');
|
||||
}
|
||||
|
||||
public function destroy(UrgencyLevel $urgencyLevel)
|
||||
{
|
||||
$urgencyLevel->delete();
|
||||
return redirect()->route('settings.urgency-levels.index')->with('success', 'Urgency level deleted.');
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user