Ticketing: settings tabs are deep-linkable routes (/settings/{tab})
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jh8RnYXrC8E6z79LWs8ggd
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "dashboard/ticketing",
|
"name": "dashboard/ticketing",
|
||||||
"description": "Help desk ticketing snap-in for the Dashboard platform",
|
"description": "Help desk ticketing snap-in for the Dashboard platform",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.2",
|
"php": "^8.2",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class TicketingSettingsController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index(): Response
|
public function index(?string $tab = null): Response
|
||||||
{
|
{
|
||||||
$this->requireAgentAccess();
|
$this->requireAgentAccess();
|
||||||
|
|
||||||
@@ -101,6 +101,7 @@ class TicketingSettingsController extends Controller
|
|||||||
: EmailConnection::whereIn('group_id', $myGroupIds)->get();
|
: EmailConnection::whereIn('group_id', $myGroupIds)->get();
|
||||||
|
|
||||||
return Inertia::render('Ticketing/Settings', [
|
return Inertia::render('Ticketing/Settings', [
|
||||||
|
'activeTab' => $tab,
|
||||||
'groups' => $groups,
|
'groups' => $groups,
|
||||||
'agents' => $agents,
|
'agents' => $agents,
|
||||||
'priorities' => $priorities,
|
'priorities' => $priorities,
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ Route::middleware(['web', 'auth', 'app.access:ticketing'])
|
|||||||
// ── Settings (must be before /{ticket} wildcard) ──────────────────────
|
// ── Settings (must be before /{ticket} wildcard) ──────────────────────
|
||||||
Route::middleware('permission:ticketing.settings')->group(function () {
|
Route::middleware('permission:ticketing.settings')->group(function () {
|
||||||
Route::get('/settings', [TicketingSettingsController::class, 'index']) ->name('settings');
|
Route::get('/settings', [TicketingSettingsController::class, 'index']) ->name('settings');
|
||||||
|
Route::get('/settings/{tab}', [TicketingSettingsController::class, 'index'])
|
||||||
|
->where('tab', 'groups|agents|priorities|statuses|projects|automation')->name('settings.tab');
|
||||||
Route::post('/settings/groups', [TicketingSettingsController::class, 'storeGroup']) ->name('settings.groups.store');
|
Route::post('/settings/groups', [TicketingSettingsController::class, 'storeGroup']) ->name('settings.groups.store');
|
||||||
Route::put('/settings/groups/{group}', [TicketingSettingsController::class, 'updateGroup']) ->name('settings.groups.update');
|
Route::put('/settings/groups/{group}', [TicketingSettingsController::class, 'updateGroup']) ->name('settings.groups.update');
|
||||||
Route::post('/settings/agents', [TicketingSettingsController::class, 'storeAgent']) ->name('settings.agents.store');
|
Route::post('/settings/agents', [TicketingSettingsController::class, 'storeAgent']) ->name('settings.agents.store');
|
||||||
|
|||||||
Reference in New Issue
Block a user