first commit
This commit is contained in:
8
routes/console.php
Normal file
8
routes/console.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
123
routes/web.php
Normal file
123
routes/web.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AuditLogController;
|
||||
use App\Http\Controllers\Auth\LoginController;
|
||||
use App\Http\Controllers\ChecklistBuilderController;
|
||||
use App\Http\Controllers\ChecklistTemplateController;
|
||||
use App\Http\Controllers\CommentController;
|
||||
use App\Http\Controllers\ConsultantController;
|
||||
use App\Http\Controllers\CorrectionRequestController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DataCentreController;
|
||||
use App\Http\Controllers\DocumentController;
|
||||
use App\Http\Controllers\ReminderController;
|
||||
use App\Http\Controllers\ReportController;
|
||||
use App\Http\Controllers\ReportingCycleController;
|
||||
use App\Http\Controllers\SettingController;
|
||||
use App\Http\Controllers\SubmissionController;
|
||||
use App\Http\Controllers\SubmissionReviewController;
|
||||
use App\Http\Controllers\UserController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/', fn () => redirect()->route('dashboard'));
|
||||
|
||||
// ---------------- Autentikasi ----------------
|
||||
Route::middleware('guest')->group(function () {
|
||||
Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
|
||||
Route::post('login', [LoginController::class, 'login']);
|
||||
});
|
||||
Route::post('logout', [LoginController::class, 'logout'])->middleware('auth')->name('logout');
|
||||
|
||||
// ---------------- Laluan yang memerlukan log masuk ----------------
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
// Perunding
|
||||
Route::resource('consultants', ConsultantController::class);
|
||||
|
||||
// Pusat data + penugasan perunding
|
||||
Route::resource('data-centres', DataCentreController::class);
|
||||
Route::post('data-centres/{dataCentre}/assign', [DataCentreController::class, 'assign'])
|
||||
->name('data-centres.assign');
|
||||
Route::post('data-centres/{dataCentre}/end-assignment', [DataCentreController::class, 'endAssignment'])
|
||||
->name('data-centres.end-assignment');
|
||||
|
||||
// Kitaran pelaporan / pembaharuan lesen
|
||||
Route::resource('reporting-cycles', ReportingCycleController::class)->except(['show']);
|
||||
|
||||
// ----- Pembina templat senarai semak (kebenaran templat.urus) -----
|
||||
Route::middleware('permission:templat.urus')->group(function () {
|
||||
Route::get('checklist-templates', [ChecklistTemplateController::class, 'index'])->name('checklist-templates.index');
|
||||
Route::get('checklist-templates/create', [ChecklistTemplateController::class, 'create'])->name('checklist-templates.create');
|
||||
Route::post('checklist-templates', [ChecklistTemplateController::class, 'store'])->name('checklist-templates.store');
|
||||
Route::get('checklist-templates/{checklistTemplate}/builder', [ChecklistTemplateController::class, 'builder'])->name('checklist-templates.builder');
|
||||
Route::put('checklist-templates/{checklistTemplate}', [ChecklistTemplateController::class, 'update'])->name('checklist-templates.update');
|
||||
Route::post('checklist-templates/{checklistTemplate}/activate', [ChecklistTemplateController::class, 'activate'])->name('checklist-templates.activate');
|
||||
Route::delete('checklist-templates/{checklistTemplate}', [ChecklistTemplateController::class, 'destroy'])->name('checklist-templates.destroy');
|
||||
|
||||
// Seksyen
|
||||
Route::post('checklist-templates/{template}/sections', [ChecklistBuilderController::class, 'storeSection'])->name('checklist.sections.store');
|
||||
Route::put('checklist-sections/{section}', [ChecklistBuilderController::class, 'updateSection'])->name('checklist.sections.update');
|
||||
Route::delete('checklist-sections/{section}', [ChecklistBuilderController::class, 'destroySection'])->name('checklist.sections.destroy');
|
||||
// Skop
|
||||
Route::post('checklist-sections/{section}/scopes', [ChecklistBuilderController::class, 'storeScope'])->name('checklist.scopes.store');
|
||||
Route::put('checklist-scopes/{scope}', [ChecklistBuilderController::class, 'updateScope'])->name('checklist.scopes.update');
|
||||
Route::delete('checklist-scopes/{scope}', [ChecklistBuilderController::class, 'destroyScope'])->name('checklist.scopes.destroy');
|
||||
// Item
|
||||
Route::post('checklist-sections/{section}/items', [ChecklistBuilderController::class, 'storeItem'])->name('checklist.items.store');
|
||||
Route::put('checklist-items/{item}', [ChecklistBuilderController::class, 'updateItem'])->name('checklist.items.update');
|
||||
Route::delete('checklist-items/{item}', [ChecklistBuilderController::class, 'destroyItem'])->name('checklist.items.destroy');
|
||||
// Formula
|
||||
Route::post('checklist-templates/{template}/formulas', [ChecklistBuilderController::class, 'storeFormula'])->name('checklist.formulas.store');
|
||||
Route::put('checklist-formulas/{formula}', [ChecklistBuilderController::class, 'updateFormula'])->name('checklist.formulas.update');
|
||||
Route::delete('checklist-formulas/{formula}', [ChecklistBuilderController::class, 'destroyFormula'])->name('checklist.formulas.destroy');
|
||||
});
|
||||
|
||||
// ----- Serahan (perunding & semakan JPP) -----
|
||||
Route::get('submissions', [SubmissionController::class, 'index'])->name('submissions.index');
|
||||
Route::get('submissions/create', [SubmissionController::class, 'create'])->name('submissions.create');
|
||||
Route::post('submissions', [SubmissionController::class, 'store'])->name('submissions.store');
|
||||
Route::get('submissions/{submission}', [SubmissionController::class, 'show'])->name('submissions.show');
|
||||
Route::get('submissions/{submission}/edit', [SubmissionController::class, 'edit'])->name('submissions.edit');
|
||||
Route::put('submissions/{submission}', [SubmissionController::class, 'update'])->name('submissions.update');
|
||||
Route::post('submissions/{submission}/submit', [SubmissionController::class, 'submit'])->name('submissions.submit');
|
||||
|
||||
// Dokumen laporan PDF
|
||||
Route::post('submissions/{submission}/documents', [DocumentController::class, 'store'])->name('documents.store');
|
||||
Route::get('documents/{document}/download', [DocumentController::class, 'download'])->name('documents.download');
|
||||
Route::post('documents/{document}/active', [DocumentController::class, 'setActive'])->name('documents.active');
|
||||
|
||||
// Tindakan semakan JPP
|
||||
Route::post('submissions/{submission}/status', [SubmissionReviewController::class, 'updateStatus'])->name('submissions.status');
|
||||
Route::post('submissions/{submission}/assign-officer', [SubmissionReviewController::class, 'assignOfficer'])->name('submissions.assign-officer');
|
||||
Route::post('submissions/{submission}/lock', [SubmissionReviewController::class, 'lock'])->name('submissions.lock');
|
||||
Route::post('submissions/{submission}/unlock', [SubmissionReviewController::class, 'unlock'])->name('submissions.unlock');
|
||||
Route::post('submissions/{submission}/hardcopy', [SubmissionReviewController::class, 'markHardcopy'])->name('submissions.hardcopy');
|
||||
Route::post('submissions/{submission}/review-note', [SubmissionReviewController::class, 'reviewNote'])->name('submissions.review-note');
|
||||
Route::post('answers/{answer}/review', [SubmissionReviewController::class, 'reviewAnswer'])->name('answers.review');
|
||||
|
||||
// Permohonan pembetulan
|
||||
Route::post('submissions/{submission}/corrections', [CorrectionRequestController::class, 'store'])->name('corrections.store');
|
||||
Route::post('corrections/{correction}/respond', [CorrectionRequestController::class, 'respond'])->name('corrections.respond');
|
||||
Route::post('corrections/{correction}/resolve', [CorrectionRequestController::class, 'resolve'])->name('corrections.resolve');
|
||||
|
||||
// Komen / perbualan
|
||||
Route::post('submissions/{submission}/comments', [CommentController::class, 'store'])->name('comments.store');
|
||||
Route::delete('comments/{comment}', [CommentController::class, 'destroy'])->name('comments.destroy');
|
||||
|
||||
// Senarai peringatan / belum serah
|
||||
Route::get('reminders', [ReminderController::class, 'index'])->name('reminders.index');
|
||||
|
||||
// Laporan & statistik
|
||||
Route::get('reports', [ReportController::class, 'index'])->name('reports.index');
|
||||
|
||||
// Pengurusan pengguna
|
||||
Route::resource('users', UserController::class)->except(['show']);
|
||||
|
||||
// Tetapan aplikasi
|
||||
Route::get('settings', [SettingController::class, 'edit'])->name('settings.edit');
|
||||
Route::put('settings', [SettingController::class, 'update'])->name('settings.update');
|
||||
|
||||
// Log audit
|
||||
Route::get('audit-log', [AuditLogController::class, 'index'])->name('audit.index');
|
||||
});
|
||||
Reference in New Issue
Block a user