first
This commit is contained in:
215
routes/web.php
Normal file
215
routes/web.php
Normal file
@@ -0,0 +1,215 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AttendanceController as AdminAttendanceController;
|
||||
use App\Http\Controllers\Admin\Management\AdminManagementController;
|
||||
use App\Http\Controllers\Admin\Management\ManagedApplicationController;
|
||||
use App\Http\Controllers\Admin\Management\RepresentativeController;
|
||||
use App\Http\Controllers\Admin\Management\StaffAssignmentController;
|
||||
use App\Http\Controllers\Admin\Management\PennempatanController;
|
||||
use App\Http\Controllers\Admin\Management\WheelchairController;
|
||||
use App\Http\Controllers\Admin\Setup\AdminSetupController;
|
||||
use App\Http\Controllers\Admin\Setup\ElectionSettingsController;
|
||||
use App\Http\Controllers\Admin\Setup\PusatImportController;
|
||||
use App\Http\Controllers\Admin\Setup\PositionController;
|
||||
use App\Http\Controllers\Admin\Setup\PositionQuotaController;
|
||||
use App\Http\Controllers\Admin\Setup\PusatLevelQuotaController;
|
||||
use App\Http\Controllers\Admin\Setup\PusatMengundiController;
|
||||
use App\Http\Controllers\Admin\Setup\SaluranMengundiController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DocumentDownloadController;
|
||||
use App\Http\Controllers\Kewangan\BankVerificationController;
|
||||
use App\Http\Controllers\Ktm\TeamController as KtmTeamController;
|
||||
use App\Http\Controllers\Ppm\ApplicationReviewController as PpmApplicationReviewController;
|
||||
use App\Http\Controllers\Ppm\AttendanceController as PpmAttendanceController;
|
||||
use App\Http\Controllers\ProfileController;
|
||||
use App\Http\Controllers\PublicApplicationController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
})->name('home');
|
||||
|
||||
Route::get('/permohonan/{application:public_uuid}/berjaya', [PublicApplicationController::class, 'success'])
|
||||
->name('public.applications.success');
|
||||
|
||||
Route::get('/permohonan/{publicUuid}/status', [PublicApplicationController::class, 'status'])
|
||||
->name('public.applications.status');
|
||||
|
||||
Route::get('/pohon/{pusatMengundi:public_uuid}', [PublicApplicationController::class, 'create'])
|
||||
->name('public.applications.create');
|
||||
Route::post('/pohon/{pusatMengundi:public_uuid}', [PublicApplicationController::class, 'store'])
|
||||
->name('public.applications.store');
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
Route::get('/admin/dashboard', [DashboardController::class, 'admin'])
|
||||
->middleware('role:Admin')
|
||||
->name('admin.dashboard');
|
||||
|
||||
Route::get('/kewangan/dashboard', [DashboardController::class, 'kewangan'])
|
||||
->middleware('role:Admin Kewangan')
|
||||
->name('kewangan.dashboard');
|
||||
|
||||
Route::get('/ppm/dashboard', [DashboardController::class, 'ppm'])
|
||||
->middleware('role:PPM')
|
||||
->name('ppm.dashboard');
|
||||
|
||||
Route::get('/ktm/dashboard', [DashboardController::class, 'ktm'])
|
||||
->middleware('role:KTM')
|
||||
->name('ktm.dashboard');
|
||||
|
||||
Route::get('/pemohon/dashboard', [DashboardController::class, 'pemohon'])
|
||||
->middleware('role:Pemohon')
|
||||
->name('pemohon.dashboard');
|
||||
|
||||
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
||||
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:Admin'])
|
||||
->prefix('admin/setup')
|
||||
->name('admin.setup.')
|
||||
->group(function (): void {
|
||||
Route::get('/', [AdminSetupController::class, 'index'])->name('index');
|
||||
|
||||
Route::get('import', [PusatImportController::class, 'create'])->name('import.create');
|
||||
Route::post('import', [PusatImportController::class, 'store'])->name('import.store');
|
||||
|
||||
Route::resource('pusat', PusatMengundiController::class)
|
||||
->parameters(['pusat' => 'pusatMengundi']);
|
||||
|
||||
Route::post('pusat/{pusatMengundi}/generate-qr', [PusatMengundiController::class, 'generateQr'])
|
||||
->name('pusat.generate-qr');
|
||||
Route::get('pusat/{pusatMengundi}/qr.svg', [PusatMengundiController::class, 'qrSvg'])
|
||||
->name('pusat.qr-svg');
|
||||
Route::post('pusat/{pusatMengundi}/assign-ppm', [PusatMengundiController::class, 'assignPpm'])
|
||||
->name('pusat.assign-ppm');
|
||||
|
||||
Route::resource('pusat.saluran', SaluranMengundiController::class)
|
||||
->parameters(['pusat' => 'pusatMengundi', 'saluran' => 'saluranMengundi'])
|
||||
->except(['show']);
|
||||
|
||||
Route::resource('positions', PositionController::class)
|
||||
->except(['show']);
|
||||
|
||||
Route::resource('pusat.kuota', PusatLevelQuotaController::class)
|
||||
->parameters(['pusat' => 'pusatMengundi', 'kuota' => 'quota'])
|
||||
->except(['show']);
|
||||
|
||||
Route::resource('pusat.saluran.kuota', PositionQuotaController::class)
|
||||
->parameters(['pusat' => 'pusatMengundi', 'saluran' => 'saluranMengundi', 'kuota' => 'quota'])
|
||||
->except(['show']);
|
||||
|
||||
Route::get('settings/{election}', [ElectionSettingsController::class, 'edit'])
|
||||
->name('settings.edit');
|
||||
Route::post('settings/{election}', [ElectionSettingsController::class, 'store'])
|
||||
->name('settings.store');
|
||||
Route::patch('settings/{election}', [ElectionSettingsController::class, 'update'])
|
||||
->name('settings.update');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:Admin', 'admin.post_close_note'])
|
||||
->prefix('admin/management')
|
||||
->name('admin.management.')
|
||||
->group(function (): void {
|
||||
Route::get('/', [AdminManagementController::class, 'index'])->name('index');
|
||||
|
||||
Route::get('/applications', [ManagedApplicationController::class, 'index'])->name('applications.index');
|
||||
Route::get('/applications/create', [ManagedApplicationController::class, 'create'])->name('applications.create');
|
||||
Route::post('/applications', [ManagedApplicationController::class, 'store'])->name('applications.store');
|
||||
Route::get('/applications/{application:public_uuid}/edit', [ManagedApplicationController::class, 'edit'])->name('applications.edit');
|
||||
Route::patch('/applications/{application:public_uuid}', [ManagedApplicationController::class, 'update'])->name('applications.update');
|
||||
Route::post('/applications/{application:public_uuid}/assign', [ManagedApplicationController::class, 'assign'])->name('applications.assign');
|
||||
|
||||
Route::get('/assignments', [StaffAssignmentController::class, 'index'])->name('assignments.index');
|
||||
Route::get('/assignments/{assignment}/edit', [StaffAssignmentController::class, 'edit'])->name('assignments.edit');
|
||||
Route::patch('/assignments/{assignment}', [StaffAssignmentController::class, 'update'])->name('assignments.update');
|
||||
|
||||
Route::get('/representatives', [RepresentativeController::class, 'index'])->name('representatives.index');
|
||||
Route::post('/representatives', [RepresentativeController::class, 'store'])->name('representatives.store');
|
||||
Route::delete('/representatives/{type}/{id}', [RepresentativeController::class, 'destroy'])->name('representatives.destroy');
|
||||
|
||||
Route::get('/penempatan/{pusatMengundi}', [PennempatanController::class, 'show'])->name('penempatan.show');
|
||||
Route::post('/penempatan/{pusatMengundi}/lepas/{assignment}', [PennempatanController::class, 'lepas'])->name('penempatan.lepas');
|
||||
Route::get('/penempatan/{pusatMengundi}/pindah/{assignment}', [PennempatanController::class, 'pindahForm'])->name('penempatan.pindah.form');
|
||||
Route::post('/penempatan/{pusatMengundi}/pindah/{assignment}', [PennempatanController::class, 'pindah'])->name('penempatan.pindah');
|
||||
|
||||
Route::get('/wheelchairs', [WheelchairController::class, 'index'])->name('wheelchairs.index');
|
||||
Route::post('/wheelchairs', [WheelchairController::class, 'store'])->name('wheelchairs.store');
|
||||
Route::get('/wheelchairs/{allocation}', [WheelchairController::class, 'show'])->name('wheelchairs.show');
|
||||
Route::patch('/wheelchairs/{allocation}', [WheelchairController::class, 'update'])->name('wheelchairs.update');
|
||||
Route::post('/wheelchairs/{allocation}/ambil', [WheelchairController::class, 'recordTaken'])->name('wheelchairs.ambil');
|
||||
Route::post('/wheelchairs/{allocation}/pulang', [WheelchairController::class, 'recordReturn'])->name('wheelchairs.pulang');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:Admin'])
|
||||
->prefix('admin/attendance')
|
||||
->name('admin.attendance.')
|
||||
->group(function (): void {
|
||||
Route::get('/', [AdminAttendanceController::class, 'index'])->name('index');
|
||||
Route::get('/{pusatMengundi}', [AdminAttendanceController::class, 'show'])->name('show');
|
||||
Route::get('/{pusatMengundi}/export', [AdminAttendanceController::class, 'export'])->name('export');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:Admin'])
|
||||
->prefix('admin/documents')
|
||||
->name('admin.documents.')
|
||||
->group(function (): void {
|
||||
Route::get('/{document}', [DocumentDownloadController::class, 'admin'])->name('download');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:Admin Kewangan|Admin'])
|
||||
->prefix('kewangan')
|
||||
->name('kewangan.')
|
||||
->group(function (): void {
|
||||
Route::get('/bank', [BankVerificationController::class, 'index'])->name('bank.index');
|
||||
Route::get('/bank/export', [BankVerificationController::class, 'export'])->name('bank.export');
|
||||
Route::get('/bank/{bankVerification}', [BankVerificationController::class, 'show'])->name('bank.show');
|
||||
Route::patch('/bank/{bankVerification}', [BankVerificationController::class, 'update'])->name('bank.update');
|
||||
Route::get('/documents/{document}', [DocumentDownloadController::class, 'finance'])->name('documents.download');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:PPM'])
|
||||
->prefix('ppm')
|
||||
->name('ppm.')
|
||||
->group(function (): void {
|
||||
Route::get('/applications', [PpmApplicationReviewController::class, 'index'])
|
||||
->name('applications.index');
|
||||
Route::get('/applications/{application:public_uuid}', [PpmApplicationReviewController::class, 'show'])
|
||||
->name('applications.show');
|
||||
Route::post('/applications/{application:public_uuid}/approve', [PpmApplicationReviewController::class, 'approve'])
|
||||
->name('applications.approve');
|
||||
Route::post('/applications/{application:public_uuid}/reject', [PpmApplicationReviewController::class, 'reject'])
|
||||
->name('applications.reject');
|
||||
Route::get('/applications/{application:public_uuid}/documents/{document}', [PpmApplicationReviewController::class, 'downloadDocument'])
|
||||
->name('applications.documents.download');
|
||||
|
||||
Route::get('/attendance', [PpmAttendanceController::class, 'index'])
|
||||
->name('attendance.index');
|
||||
Route::get('/attendance/{pusatMengundi}', [PpmAttendanceController::class, 'show'])
|
||||
->name('attendance.show');
|
||||
Route::post('/attendance/{pusatMengundi}', [PpmAttendanceController::class, 'store'])
|
||||
->name('attendance.store');
|
||||
});
|
||||
|
||||
Route::middleware(['auth', 'role:KTM'])
|
||||
->prefix('ktm')
|
||||
->name('ktm.')
|
||||
->group(function (): void {
|
||||
Route::get('/applications', [KtmTeamController::class, 'index'])
|
||||
->name('applications.index');
|
||||
Route::get('/applications/create', [KtmTeamController::class, 'create'])
|
||||
->name('applications.create');
|
||||
Route::post('/applications', [KtmTeamController::class, 'store'])
|
||||
->name('applications.store');
|
||||
Route::get('/applications/{application:public_uuid}', [KtmTeamController::class, 'show'])
|
||||
->name('applications.show');
|
||||
Route::post('/applications/{application:public_uuid}/approve', [KtmTeamController::class, 'approve'])
|
||||
->name('applications.approve');
|
||||
Route::delete('/applications/{application:public_uuid}', [KtmTeamController::class, 'destroy'])
|
||||
->name('applications.destroy');
|
||||
});
|
||||
|
||||
require __DIR__.'/auth.php';
|
||||
Reference in New Issue
Block a user