update
This commit is contained in:
@@ -8,6 +8,8 @@ use App\Http\Controllers\Dashboard\ArtworkController as DashboardArtworkControll
|
||||
use App\Http\Controllers\Web\ArtworkPageController;
|
||||
use App\Http\Controllers\ArtworkDownloadController;
|
||||
use App\Http\Controllers\Web\BrowseGalleryController;
|
||||
use App\Http\Controllers\Web\FeaturedArtworksController;
|
||||
use App\Http\Controllers\Web\DailyUploadsController;
|
||||
use App\Http\Controllers\Web\DiscoverController;
|
||||
use App\Http\Controllers\Web\ExploreController;
|
||||
use App\Http\Controllers\Web\BlogController;
|
||||
@@ -27,15 +29,26 @@ use App\Http\Controllers\RSS\ExploreFeedController;
|
||||
use App\Http\Controllers\RSS\TagFeedController;
|
||||
use App\Http\Controllers\RSS\CreatorFeedController;
|
||||
use App\Http\Controllers\RSS\BlogFeedController;
|
||||
use App\Http\Controllers\Web\StaffApplicationAdminController;
|
||||
use App\Http\Controllers\Studio\StudioController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\Community\LatestController;
|
||||
use App\Http\Controllers\User\MembersController;
|
||||
use App\Http\Controllers\User\TodayDownloadsController;
|
||||
use App\Http\Controllers\User\MonthlyCommentatorsController;
|
||||
use App\Models\Artwork;
|
||||
use Inertia\Inertia;
|
||||
|
||||
Route::get('/', [HomeController::class, 'index'])->name('index');
|
||||
Route::get('/home', [HomeController::class, 'index']);
|
||||
|
||||
// ── PUBLIC GALLERIES / LISTS ─────────────────────────────────────────────────
|
||||
Route::get('/featured', [FeaturedArtworksController::class, 'index'])->name('featured');
|
||||
Route::get('/uploads/latest', [LatestController::class, 'index'])->name('uploads.latest');
|
||||
Route::get('/uploads/daily', [DailyUploadsController::class, 'index'])->name('uploads.daily');
|
||||
Route::get('/members/photos', [MembersController::class, 'photos'])->name('members.photos');
|
||||
Route::get('/downloads/today', [TodayDownloadsController::class, 'index'])->name('downloads.today');
|
||||
Route::get('/comments/monthly', [MonthlyCommentatorsController::class, 'index'])->name('comments.monthly');
|
||||
|
||||
// ── DISCOVER (/discover/*) ────────────────────────────────────────────────────
|
||||
Route::prefix('discover')->name('discover.')->group(function () {
|
||||
Route::get('/', fn () => redirect('/discover/trending', 301));
|
||||
@@ -54,8 +67,8 @@ Route::prefix('discover')->name('discover.')->group(function () {
|
||||
// ── EXPLORE (/explore/*) ──────────────────────────────────────────────────────
|
||||
Route::prefix('explore')->name('explore.')->group(function () {
|
||||
Route::get('/', [ExploreController::class, 'index'])->name('index');
|
||||
Route::get('/members', fn () => redirect('/members', 301))->name('members.redirect');
|
||||
Route::get('/memebers', fn () => redirect('/members', 301))->name('memebers.redirect');
|
||||
Route::get('/members', fn () => redirect()->route('creators.top', request()->query(), 301))->name('members.redirect');
|
||||
Route::get('/memebers', fn () => redirect()->route('creators.top', request()->query(), 301))->name('memebers.redirect');
|
||||
Route::get('/{type}', [ExploreController::class, 'byType'])
|
||||
->where('type', 'artworks|wallpapers|skins|photography|other')
|
||||
->name('type');
|
||||
@@ -95,11 +108,13 @@ Route::get('/staff', [StaffController::class, 'index'])->name('st
|
||||
Route::get('/contact', [ApplicationController::class, 'show'])->name('contact.show');
|
||||
Route::post('/contact', [ApplicationController::class, 'submit'])->middleware('throttle:6,1')->name('contact.submit');
|
||||
|
||||
// ── ADMIN: Staff applications ─────────────────────────────────────────────────
|
||||
Route::middleware(['auth'])->prefix('admin')->name('admin.')->group(function () {
|
||||
Route::get('/applications', [StaffApplicationAdminController::class, 'index'])->name('applications.index');
|
||||
Route::get('/applications/{staffApplication}', [StaffApplicationAdminController::class, 'show'])->name('applications.show');
|
||||
});
|
||||
$cpPrefix = trim((string) config('cpad.webroot', config('cp.webroot', 'cp')), '/');
|
||||
|
||||
// ── LEGACY RSS (.xml feeds — old site compatibility) ──────────────────────────
|
||||
Route::get('/rss/latest-uploads.xml', [RssFeedController::class, 'latestUploads'])->name('rss.uploads');
|
||||
Route::get('/rss/latest-skins.xml', [RssFeedController::class, 'latestSkins'])->name('rss.skins');
|
||||
Route::get('/rss/latest-wallpapers.xml', [RssFeedController::class, 'latestWallpapers'])->name('rss.wallpapers');
|
||||
Route::get('/rss/latest-photos.xml', [RssFeedController::class, 'latestPhotos'])->name('rss.photos');
|
||||
|
||||
// ── RSS 2.0 feeds (/rss/*) ────────────────────────────────────────────────────
|
||||
Route::middleware('throttle:60,1')->group(function () {
|
||||
@@ -139,6 +154,9 @@ Route::prefix('creators')->name('creators.')->group(function () {
|
||||
Route::get('/rising', [DiscoverController::class, 'risingCreators'])->name('rising');
|
||||
});
|
||||
|
||||
Route::get('/leaderboard', \App\Http\Controllers\Web\LeaderboardPageController::class)
|
||||
->name('leaderboard');
|
||||
|
||||
// ── STORIES (/stories/*) ──────────────────────────────────────────────────────
|
||||
Route::prefix('stories')->name('stories.')->group(function () {
|
||||
Route::get('/', [StoryController::class, 'index'])->name('index');
|
||||
@@ -214,6 +232,10 @@ Route::prefix('news')->name('news.')->group(function () {
|
||||
Route::get('/rss/news', [NewsRssController::class, 'feed'])->name('news.rss');
|
||||
|
||||
// ── PROFILES (@username) ──────────────────────────────────────────────────────
|
||||
Route::get('/@{username}/gallery', [ProfileController::class, 'showGalleryByUsername'])
|
||||
->where('username', '[A-Za-z0-9_-]{3,20}')
|
||||
->name('profile.gallery');
|
||||
|
||||
Route::get('/@{username}', [ProfileController::class, 'showByUsername'])
|
||||
->where('username', '[A-Za-z0-9_-]{3,20}')
|
||||
->name('profile.show');
|
||||
@@ -247,7 +269,9 @@ Route::middleware(['auth', \App\Http\Middleware\NoIndexDashboard::class])->prefi
|
||||
|
||||
Route::get('/followers', [\App\Http\Controllers\Dashboard\FollowerController::class, 'index'])->name('followers');
|
||||
Route::get('/following', [\App\Http\Controllers\Dashboard\FollowingController::class, 'index'])->name('following');
|
||||
Route::get('/comments', [\App\Http\Controllers\Dashboard\CommentController::class, 'index'])->name('comments');
|
||||
Route::get('/comments', fn () => redirect()->route('dashboard.comments.received', request()->query(), 302))->name('comments');
|
||||
Route::get('/comments/received', [\App\Http\Controllers\Dashboard\CommentController::class, 'received'])->name('comments.received');
|
||||
Route::get('/notifications', [\App\Http\Controllers\Dashboard\NotificationController::class, 'index'])->name('notifications');
|
||||
Route::get('/gallery', [\App\Http\Controllers\Dashboard\DashboardGalleryController::class, 'index'])->name('gallery');
|
||||
Route::get('/awards', [\App\Http\Controllers\Dashboard\DashboardAwardsController::class, 'index'])->name('awards');
|
||||
});
|
||||
@@ -270,8 +294,8 @@ Route::middleware(['auth', 'ensure.onboarding.complete'])->prefix('studio')->nam
|
||||
// ── SETTINGS / PROFILE EDIT ───────────────────────────────────────────────────
|
||||
Route::middleware(['auth', 'normalize.username', 'ensure.onboarding.complete'])->group(function () {
|
||||
Route::get('/profile', fn () => redirect()->route('dashboard.profile', [], 301))->name('legacy.profile.redirect');
|
||||
Route::get('/settings', [ProfileController::class, 'edit'])->name('settings');
|
||||
Route::get('/profile/edit', [ProfileController::class, 'edit'])->name('profile.edit');
|
||||
Route::get('/settings', fn () => redirect()->route('dashboard.profile', [], 302))->name('settings');
|
||||
Route::get('/profile/edit', fn () => redirect()->route('dashboard.profile', [], 302))->name('profile.edit');
|
||||
Route::match(['post','put','patch'], '/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
||||
Route::match(['post', 'put'], '/profile/password', [ProfileController::class, 'password'])->name('profile.password');
|
||||
@@ -365,48 +389,6 @@ Route::get('/search', [\App\Http\Controllers\Web\SearchController::class, 'index
|
||||
Route::view('/data-deletion', 'privacy.data-deletion')->name('privacy.data_deletion');
|
||||
Route::view('/blank', 'blank')->name('blank');
|
||||
|
||||
// ── ADMIN ─────────────────────────────────────────────────────────────────────
|
||||
Route::middleware(['auth'])->prefix('admin')->name('admin.')->group(function () {
|
||||
Route::get('uploads/moderation', fn () => Inertia::render('Admin/UploadQueue'))
|
||||
->middleware('admin.moderation')
|
||||
->name('uploads.moderation');
|
||||
|
||||
Route::get('usernames/moderation', fn () => Inertia::render('Admin/UsernameQueue'))
|
||||
->middleware('admin.moderation')
|
||||
->name('usernames.moderation');
|
||||
|
||||
Route::resource('artworks', \App\Http\Controllers\Admin\ArtworkController::class)->except(['show']);
|
||||
|
||||
Route::get('reports', fn () => view('admin.reports.queue'))
|
||||
->middleware('admin.moderation')
|
||||
->name('reports.queue');
|
||||
|
||||
Route::get('reports/tags', [\App\Http\Controllers\Admin\TagInteractionReportController::class, 'index'])
|
||||
->middleware('admin.moderation')
|
||||
->name('reports.tags');
|
||||
|
||||
Route::middleware('admin.moderation')->prefix('early-growth')->name('early-growth.')->group(function () {
|
||||
Route::get('/', [\App\Http\Controllers\Admin\EarlyGrowthAdminController::class, 'index'])->name('index');
|
||||
Route::delete('/cache', [\App\Http\Controllers\Admin\EarlyGrowthAdminController::class, 'flushCache'])->name('cache.flush');
|
||||
Route::get('/status', [\App\Http\Controllers\Admin\EarlyGrowthAdminController::class, 'status'])->name('status');
|
||||
});
|
||||
|
||||
Route::middleware('admin.moderation')->prefix('stories')->name('stories.')->group(function () {
|
||||
Route::get('/review', [\App\Http\Controllers\Admin\StoryAdminController::class, 'review'])->name('review');
|
||||
Route::get('/', [\App\Http\Controllers\Admin\StoryAdminController::class, 'index'])->name('index');
|
||||
Route::get('/create', [\App\Http\Controllers\Admin\StoryAdminController::class, 'create'])->name('create');
|
||||
Route::post('/', [\App\Http\Controllers\Admin\StoryAdminController::class, 'store'])->name('store');
|
||||
Route::get('/{story}', [\App\Http\Controllers\Admin\StoryAdminController::class, 'show'])->name('show');
|
||||
Route::post('/{story}/approve', [\App\Http\Controllers\Admin\StoryAdminController::class, 'approve'])->name('approve');
|
||||
Route::post('/{story}/reject', [\App\Http\Controllers\Admin\StoryAdminController::class, 'reject'])->name('reject');
|
||||
Route::get('/{story}/edit', [\App\Http\Controllers\Admin\StoryAdminController::class, 'edit'])->name('edit');
|
||||
Route::put('/{story}', [\App\Http\Controllers\Admin\StoryAdminController::class, 'update'])->name('update');
|
||||
Route::delete('/{story}', [\App\Http\Controllers\Admin\StoryAdminController::class, 'destroy'])->name('destroy');
|
||||
Route::post('/{story}/publish', [\App\Http\Controllers\Admin\StoryAdminController::class, 'publish'])->name('publish');
|
||||
Route::get('/moderation/comments', [\App\Http\Controllers\Admin\StoryAdminController::class, 'moderateComments'])->name('comments.moderation');
|
||||
});
|
||||
});
|
||||
|
||||
// ── MESSAGES ──────────────────────────────────────────────────────────────────
|
||||
Route::middleware(['auth', 'ensure.onboarding.complete'])
|
||||
->get('/messages/attachments/{id}', [\App\Http\Controllers\Api\Messaging\AttachmentController::class, 'show'])
|
||||
@@ -419,8 +401,6 @@ Route::middleware(['auth', 'ensure.onboarding.complete'])->prefix('messages')->n
|
||||
});
|
||||
|
||||
// ── COMMUNITY ACTIVITY ────────────────────────────────────────────────────────
|
||||
Route::match(['get', 'post'], '/community/chat', [\App\Http\Controllers\Community\ChatController::class, 'index'])
|
||||
->name('community.chat');
|
||||
|
||||
Route::get('/community/activity', [\App\Http\Controllers\Web\CommunityActivityController::class, 'index'])
|
||||
->name('community.activity');
|
||||
|
||||
Reference in New Issue
Block a user