Foundation slice for Mantis #843 php/Mod/Admin + php/Website/Hub RFC: * php/Mod/Admin/Boot.php — search registry, menu registry, form component layer, HasRateLimiting concern, reusable form/view primitives under Mod/Admin/Forms * php/Website/Hub/Boot.php — host-aware Hub route naming for secondary domains * WorkspaceSwitcher and GlobalSearch global Hub Livewire components * Foundation routed slice in Hub/Routes/admin.php: dashboard shell, workspace listing, site settings (with WordPress/webhook connector), account usage, platform user list+detail * Foundation tests under php/tests/Feature/Mod/Admin/ 53 PHP files. php -l clean. Pest unrunnable in sandbox (no vendor/). Foundation slice only — composer.json kept off-limits so namespace stays under Core\Mod\Agentic\... rather than standalone Core\Admin package. Deferred: Profile, Settings, ServiceManager, ServicesAdmin, Honeypot, Entitlement\{Dashboard,FeatureManager,PackageManager}, PromptManager, WaitlistManager, Console, Databases, Deployments, Content, ContentManager, ContentEditor, ActivityLog, Analytics, AIServices, BoostPurchase. Lane was under-instructed by supervisor with stop-at framing — follow-up tickets needed for remainder. Co-authored-by: Codex <noreply@openai.com> Closes tasks.lthn.sh/view.php?id=843
25 lines
1.2 KiB
PHP
25 lines
1.2 KiB
PHP
<?php
|
|
|
|
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\AccountUsage;
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\Dashboard;
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\Platform;
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\PlatformUser;
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\SiteSettings;
|
|
use Core\Mod\Agentic\Website\Hub\View\Modal\Admin\Sites;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/', Dashboard::class)->name('dashboard');
|
|
Route::redirect('/dashboard', '/hub')->name('dashboard.redirect');
|
|
Route::get('/workspaces', Sites::class)->name('sites');
|
|
Route::redirect('/sites', '/hub/workspaces');
|
|
Route::get('/workspaces/{workspace}/{tab?}', SiteSettings::class)
|
|
->where('tab', 'services|general|deployment|environment|ssl|backups|danger')
|
|
->name('sites.settings');
|
|
Route::get('/account/usage', AccountUsage::class)->name('account.usage');
|
|
Route::redirect('/usage', '/hub/account/usage');
|
|
Route::redirect('/boosts', '/hub/account/usage?tab=boosts');
|
|
Route::redirect('/ai-services', '/hub/account/usage?tab=ai');
|
|
Route::get('/platform', Platform::class)->name('platform');
|
|
Route::get('/platform/user/{id}', PlatformUser::class)->where('id', '[0-9]+')->name('platform.user');
|