Avoid mixed-content form submissions behind Coolify by rendering internal links and form actions as relative paths.
120 lines
11 KiB
PHP
120 lines
11 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Auth\LegacyAuthController;
|
|
use App\Http\Controllers\AdminLegacyController;
|
|
use App\Http\Controllers\AdminPageController;
|
|
use App\Http\Controllers\Dashboard\AdminDashboardController;
|
|
use App\Http\Controllers\Dashboard\DosenDashboardController;
|
|
use App\Http\Controllers\Dashboard\MahasiswaDashboardController;
|
|
use App\Http\Controllers\DosenPageController;
|
|
use App\Http\Controllers\MahasiswaPageController;
|
|
use Illuminate\Support\Facades\File;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/', function () {
|
|
return view('home', [
|
|
'title' => 'SPOTA | Sistem Pendukung Outline Tugas Akhir',
|
|
'systemStatus' => [
|
|
['label' => 'Mahasiswa', 'value' => 'Dashboard, praoutline, pengumuman'],
|
|
['label' => 'Dosen', 'value' => 'Review, bimbingan, penawaran judul'],
|
|
['label' => 'Admin', 'value' => 'Data master dan pengaturan prodi'],
|
|
],
|
|
'highlights' => [
|
|
['number' => '01', 'label' => 'Mahasiswa', 'href' => route('legacy.login', 'mahasiswa', false), 'description' => 'Pantau status usulan, baca pengumuman, upload praoutline, dan booking penawaran judul.'],
|
|
['number' => '02', 'label' => 'Dosen', 'href' => route('legacy.login', 'dosen', false), 'description' => 'Kelola penawaran judul, review praoutline, lihat bimbingan, dan monitoring mahasiswa.'],
|
|
['number' => '03', 'label' => 'Admin', 'href' => route('legacy.login', 'admin', false), 'description' => 'Kelola data mahasiswa, dosen, kelompok keahlian, pengumuman, jadwal, dan pengaturan prodi.'],
|
|
],
|
|
]);
|
|
})->name('home');
|
|
|
|
Route::get('/assets/spota-logo', function () {
|
|
$logoPath = base_path('../link6.jpg');
|
|
|
|
abort_unless(File::exists($logoPath), 404);
|
|
|
|
return response()->file($logoPath);
|
|
})->name('assets.spota-logo');
|
|
|
|
Route::get('/masuk', [LegacyAuthController::class, 'showRoleLogin'])->name('role-login');
|
|
Route::get('/login/{role}', [LegacyAuthController::class, 'showLegacyLogin'])->name('legacy.login');
|
|
Route::post('/login/{role}', [LegacyAuthController::class, 'authenticate'])->name('legacy.authenticate');
|
|
Route::post('/logout', [LegacyAuthController::class, 'logout'])->name('legacy.logout');
|
|
|
|
Route::middleware('legacy.role:mahasiswa')->group(function () {
|
|
Route::get('/dashboard/mahasiswa', MahasiswaDashboardController::class)->name('dashboard.mahasiswa');
|
|
Route::get('/mahasiswa/status-usulan', [MahasiswaPageController::class, 'statusUsulan'])->name('mahasiswa.status-usulan');
|
|
Route::get('/mahasiswa/praoutline/upload', [MahasiswaPageController::class, 'uploadPraoutline'])->name('mahasiswa.praoutline.upload');
|
|
Route::post('/mahasiswa/praoutline/upload', [MahasiswaPageController::class, 'storePraoutline'])->name('mahasiswa.praoutline.store');
|
|
Route::get('/mahasiswa/penawaran', [MahasiswaPageController::class, 'penawaran'])->name('mahasiswa.penawaran.index');
|
|
Route::get('/mahasiswa/penawaran/{id}', [MahasiswaPageController::class, 'showPenawaran'])->whereNumber('id')->name('mahasiswa.penawaran.show');
|
|
Route::post('/mahasiswa/penawaran/{id}/booking', [MahasiswaPageController::class, 'bookPenawaran'])->whereNumber('id')->name('mahasiswa.penawaran.book');
|
|
Route::get('/mahasiswa/pengumuman', [MahasiswaPageController::class, 'pengumuman'])->name('mahasiswa.pengumuman.index');
|
|
Route::get('/mahasiswa/pengumuman/{id}', [MahasiswaPageController::class, 'showPengumuman'])->whereNumber('id')->name('mahasiswa.pengumuman.show');
|
|
});
|
|
|
|
Route::middleware('legacy.role:admin')->group(function () {
|
|
Route::get('/dashboard/admin', AdminDashboardController::class)->name('dashboard.admin');
|
|
Route::get('/admin/legacy', AdminLegacyController::class)->name('admin.legacy');
|
|
Route::get('/admin/data/mahasiswa', [AdminPageController::class, 'mahasiswa'])->name('admin.data.mahasiswa');
|
|
Route::get('/admin/data/mahasiswa/create', [AdminPageController::class, 'createMahasiswa'])->name('admin.data.mahasiswa.create');
|
|
Route::post('/admin/data/mahasiswa', [AdminPageController::class, 'storeMahasiswa'])->name('admin.data.mahasiswa.store');
|
|
Route::get('/admin/data/mahasiswa/import', [AdminPageController::class, 'importMahasiswa'])->name('admin.data.mahasiswa.import');
|
|
Route::post('/admin/data/mahasiswa/import', [AdminPageController::class, 'storeImportMahasiswa'])->name('admin.data.mahasiswa.import.store');
|
|
Route::get('/admin/data/mahasiswa/{id}/edit', [AdminPageController::class, 'editMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.edit');
|
|
Route::put('/admin/data/mahasiswa/{id}', [AdminPageController::class, 'updateMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.update');
|
|
Route::delete('/admin/data/mahasiswa/{id}', [AdminPageController::class, 'destroyMahasiswa'])->whereNumber('id')->name('admin.data.mahasiswa.destroy');
|
|
Route::get('/admin/data/dosen', [AdminPageController::class, 'dosen'])->name('admin.data.dosen');
|
|
Route::get('/admin/data/dosen/create', [AdminPageController::class, 'createDosen'])->name('admin.data.dosen.create');
|
|
Route::post('/admin/data/dosen', [AdminPageController::class, 'storeDosen'])->name('admin.data.dosen.store');
|
|
Route::get('/admin/data/dosen/{id}/edit', [AdminPageController::class, 'editDosen'])->whereNumber('id')->name('admin.data.dosen.edit');
|
|
Route::put('/admin/data/dosen/{id}', [AdminPageController::class, 'updateDosen'])->whereNumber('id')->name('admin.data.dosen.update');
|
|
Route::delete('/admin/data/dosen/{id}', [AdminPageController::class, 'destroyDosen'])->whereNumber('id')->name('admin.data.dosen.destroy');
|
|
Route::get('/admin/data/kelompok-keahlian', [AdminPageController::class, 'kk'])->name('admin.data.kk');
|
|
Route::get('/admin/data/kelompok-keahlian/create', [AdminPageController::class, 'createKk'])->name('admin.data.kk.create');
|
|
Route::post('/admin/data/kelompok-keahlian', [AdminPageController::class, 'storeKk'])->name('admin.data.kk.store');
|
|
Route::get('/admin/data/kelompok-keahlian/{id}/edit', [AdminPageController::class, 'editKk'])->whereNumber('id')->name('admin.data.kk.edit');
|
|
Route::put('/admin/data/kelompok-keahlian/{id}', [AdminPageController::class, 'updateKk'])->whereNumber('id')->name('admin.data.kk.update');
|
|
Route::delete('/admin/data/kelompok-keahlian/{id}', [AdminPageController::class, 'destroyKk'])->whereNumber('id')->name('admin.data.kk.destroy');
|
|
Route::get('/admin/data/fakultas', [AdminPageController::class, 'fakultas'])->name('admin.data.fakultas');
|
|
Route::get('/admin/data/jurusan', [AdminPageController::class, 'jurusan'])->name('admin.data.jurusan');
|
|
Route::get('/admin/data/prodi', [AdminPageController::class, 'prodi'])->name('admin.data.prodi');
|
|
Route::get('/admin/praoutline', [AdminPageController::class, 'praoutline'])->name('admin.praoutline.index');
|
|
Route::get('/admin/praoutline/cari', [AdminPageController::class, 'praoutlineSearch'])->name('admin.praoutline.search');
|
|
Route::get('/admin/praoutline/keputusan', [AdminPageController::class, 'keputusan'])->name('admin.praoutline.keputusan');
|
|
Route::get('/admin/praoutline/kep-draft', [AdminPageController::class, 'kepDraft'])->name('admin.praoutline.kep-draft');
|
|
Route::get('/admin/praoutline/pemberitahuan', [AdminPageController::class, 'pemberitahuan'])->name('admin.praoutline.pemberitahuan');
|
|
Route::get('/admin/pengumuman', [AdminPageController::class, 'pengumuman'])->name('admin.pengumuman.index');
|
|
Route::get('/admin/pengumuman/create', [AdminPageController::class, 'createPengumuman'])->name('admin.pengumuman.create');
|
|
Route::post('/admin/pengumuman', [AdminPageController::class, 'storePengumuman'])->name('admin.pengumuman.store');
|
|
Route::get('/admin/jadwal', [AdminPageController::class, 'jadwal'])->name('admin.jadwal.index');
|
|
Route::get('/admin/jadwal/kalender', [AdminPageController::class, 'kalender'])->name('admin.jadwal.kalender');
|
|
Route::get('/admin/profile', [AdminPageController::class, 'profile'])->name('admin.profile');
|
|
Route::get('/admin/users', [AdminPageController::class, 'users'])->name('admin.users');
|
|
Route::get('/admin/pengaturan', [AdminPageController::class, 'pengaturan'])->name('admin.pengaturan');
|
|
});
|
|
|
|
Route::middleware('legacy.role:dosen')->group(function () {
|
|
Route::get('/dashboard/dosen', DosenDashboardController::class)->name('dashboard.dosen');
|
|
Route::get('/dosen/penawaran', [DosenPageController::class, 'penawaran'])->name('dosen.penawaran.index');
|
|
Route::get('/dosen/penawaran/create', [DosenPageController::class, 'createPenawaran'])->name('dosen.penawaran.create');
|
|
Route::post('/dosen/penawaran', [DosenPageController::class, 'storePenawaran'])->name('dosen.penawaran.store');
|
|
Route::get('/dosen/penawaran/{id}/edit', [DosenPageController::class, 'editPenawaran'])->whereNumber('id')->name('dosen.penawaran.edit');
|
|
Route::put('/dosen/penawaran/{id}', [DosenPageController::class, 'updatePenawaran'])->whereNumber('id')->name('dosen.penawaran.update');
|
|
Route::delete('/dosen/penawaran/{id}', [DosenPageController::class, 'destroyPenawaran'])->whereNumber('id')->name('dosen.penawaran.destroy');
|
|
Route::post('/dosen/penawaran/{id}/setuju', [DosenPageController::class, 'approvePenawaran'])->whereNumber('id')->name('dosen.penawaran.approve');
|
|
Route::post('/dosen/penawaran/{id}/tolak', [DosenPageController::class, 'rejectPenawaran'])->whereNumber('id')->name('dosen.penawaran.reject');
|
|
Route::get('/dosen/praoutline', [DosenPageController::class, 'daftarUsulan'])->name('dosen.praoutline.index');
|
|
Route::get('/dosen/praoutline/review/{id}', [DosenPageController::class, 'reviewDetail'])->whereNumber('id')->name('dosen.praoutline.review');
|
|
Route::get('/dosen/praoutline/review-saya', [DosenPageController::class, 'reviewSaya'])->name('dosen.praoutline.review-saya');
|
|
Route::get('/dosen/praoutline/cari', [DosenPageController::class, 'cari'])->name('dosen.praoutline.cari');
|
|
Route::get('/dosen/praoutline/bimbingan', [DosenPageController::class, 'bimbingan'])->name('dosen.praoutline.bimbingan');
|
|
Route::get('/dosen/praoutline/statistik', [DosenPageController::class, 'statistik'])->name('dosen.praoutline.statistik');
|
|
Route::get('/dosen/praoutline/pemberitahuan', [DosenPageController::class, 'pemberitahuan'])->name('dosen.praoutline.pemberitahuan');
|
|
Route::get('/dosen/pengumuman', [DosenPageController::class, 'pengumuman'])->name('dosen.pengumuman.index');
|
|
Route::get('/dosen/pengumuman/{id}', [DosenPageController::class, 'showPengumuman'])->whereNumber('id')->name('dosen.pengumuman.show');
|
|
Route::get('/dosen/profile', [DosenPageController::class, 'profile'])->name('dosen.profile');
|
|
Route::put('/dosen/profile', [DosenPageController::class, 'updateProfile'])->name('dosen.profile.update');
|
|
Route::get('/dosen/early-warning', [DosenPageController::class, 'earlyWarning'])->name('dosen.early-warning');
|
|
Route::get('/dosen/pra-lirs', [DosenPageController::class, 'praLirs'])->name('dosen.pra-lirs');
|
|
});
|