240 lines
9.3 KiB
PHP
240 lines
9.3 KiB
PHP
<?php
|
|
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Auth\LoginController;
|
|
use App\Http\Controllers\User\UserDashboardController;
|
|
use App\Http\Controllers\Admin\AdminDashboardController;
|
|
use App\Http\Controllers\Admin\DataJurusanController;
|
|
use App\Http\Controllers\Admin\DataKriteriaController;
|
|
use App\Http\Controllers\Admin\ManajemenUserController;
|
|
use App\Http\Controllers\Admin\HasilDiagnosisController;
|
|
use App\Http\Controllers\Admin\BasisPengetahuanController;
|
|
|
|
use App\Http\Controllers\User\DashboardController;
|
|
use App\Http\Controllers\User\InfoJurusanController;
|
|
use App\Http\Controllers\User\PerhitunganAPHController;
|
|
use App\Http\Controllers\User\ProfileAPHController;
|
|
use App\Http\Controllers\User\DiagnosisHasilController;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\User\AHPController;
|
|
use App\Http\Controllers\User\NewAhpController;
|
|
use App\Http\Controllers\Admin\MapelController;
|
|
use App\Http\Controllers\Auth\RegisterController;
|
|
|
|
|
|
use App\Http\Controllers\Admin\KecerdasanController;
|
|
|
|
|
|
use App\Http\Controllers\KriteriaController;
|
|
|
|
|
|
|
|
|
|
// Cek auth untuk masuk ke base url, jika belum login maka pergi ke landing page
|
|
Route::get('/', function () {
|
|
if (Auth::check()) {
|
|
if (Auth::user()->role === 'admin') { // jika login sebagai admin, akan direct ke dashboard admin
|
|
return redirect('/admin/dashboard');
|
|
} elseif (Auth::user()->role === 'user') { // jika login sebagai user, akan direct ke dashboard user
|
|
return redirect('/user/dashboard');
|
|
}
|
|
}
|
|
return view('home');
|
|
});
|
|
Route::get('/home', function () {
|
|
if (Auth::check()) {
|
|
if (Auth::user()->role === 'admin') {
|
|
return redirect('/admin/dashboard');
|
|
} elseif (Auth::user()->role === 'user') {
|
|
return redirect('/user/dashboard');
|
|
}
|
|
}
|
|
return view('home');
|
|
});
|
|
|
|
// Authentication Routes
|
|
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
|
|
Route::post('/login', [LoginController::class, 'login']);
|
|
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
|
|
|
|
|
|
// Admin Routes
|
|
|
|
Route::middleware(['auth', 'role:admin'])->group(function () {
|
|
Route::get('/admin/dashboard', [AdminDashboardController::class, 'index'])->name('admin.dashboard');
|
|
});
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('/data-jurusan', [DataJurusanController::class, 'index'])->name('admin.datajurusan.index');
|
|
});
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('/data-kriteria', [DataKriteriaController::class, 'index'])->name('admin.data-kriteria.index');
|
|
Route::get('/data-kriteria/{id}', [DataKriteriaController::class, 'show'])->name('admin.data-kriteria.show');
|
|
});
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('/manajemen-user', [ManajemenUserController::class, 'index'])->name('admin.manajemenuser');
|
|
});
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('/hasil-diagnosis', [HasilDiagnosisController::class, 'index'])->name('admin.hasildiagnosis');
|
|
});
|
|
|
|
Route::prefix('admin')->group(function () {
|
|
Route::get('/basis-pengetahuan', [BasisPengetahuanController::class, 'index'])->name('admin.basispengetahuan');
|
|
});
|
|
|
|
// User Routes
|
|
Route::middleware(['auth', 'role:user'])->group(function () {
|
|
Route::get('/user/dashboard', [UserDashboardController::class, 'index'])->name('user.dashboard');
|
|
|
|
|
|
});
|
|
|
|
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
|
|
|
Route::get('/user/info-jurusan', [InfoJurusanController::class, 'index'])->name('user.infojurusan');
|
|
|
|
// Route::get('/user/perhitungan-aph', [PerhitunganAPHController::class, 'index'])->name('user.perhitunganaph');
|
|
Route::prefix('user')->group(function () {
|
|
// Tampil form AHP
|
|
Route::get('/perhitungan-aph', [PerhitunganAPHController::class, 'index'])
|
|
->name('user.perhitunganaph.index');
|
|
|
|
// Proses submit AHP
|
|
Route::post('/perhitungan-aph', [PerhitunganAPHController::class, 'analisa'])
|
|
->name('user.perhitunganaph.analisa');
|
|
|
|
// (Opsional) Reset data AHP
|
|
Route::delete('/perhitungan-aph', [PerhitunganAPHController::class, 'reset'])
|
|
->name('user.perhitunganaph.reset');
|
|
});
|
|
|
|
Route::prefix('profile')->name('user.profile.')->middleware('auth')->group(function(){
|
|
Route::get('/', [ProfileAPHController::class, 'show'])->name('show');
|
|
Route::get('/edit', [ProfileAPHController::class, 'edit'])->name('edit');
|
|
Route::put('/', [ProfileAPHController::class, 'update'])->name('update');
|
|
});
|
|
|
|
Route::get('/user/diagnosis-hasil', [DiagnosisHasilController::class, 'index'])->name('user.diagnosis-hasil');
|
|
Route::post('/logout', function (Request $request) {
|
|
Auth::logout();
|
|
|
|
$request->session()->invalidate();
|
|
$request->session()->regenerateToken();
|
|
|
|
return redirect('/login');
|
|
})->name('logout');
|
|
|
|
|
|
|
|
Route::get('admin/data-kriteria', [KriteriaController::class, 'index'])
|
|
->name('kriteria.index');
|
|
|
|
Route::post('admin/data-kriteria', [KriteriaController::class, 'store'])
|
|
->name('kriteria.store');
|
|
Route::get('admin/data-kriteria/{id}', [KriteriaController::class, 'show'])
|
|
->name('kriteria.show');
|
|
Route::get('admin/data-kriteria/{id}/edit', [KriteriaController::class, 'edit'])
|
|
->name('kriteria.edit');
|
|
|
|
// Proses update
|
|
Route::put('admin/data-kriteria/{id}', [KriteriaController::class, 'update'])
|
|
->name('kriteria.update');
|
|
|
|
// Proses delete
|
|
Route::delete('admin/data-kriteria/{id}', [KriteriaController::class, 'destroy'])
|
|
->name('kriteria.destroy');
|
|
Route::get('admin/datajurusan', [DataJurusanController::class, 'index'])
|
|
->name('admin.datajurusan.index');
|
|
|
|
|
|
// Note: jika Anda tidak punya method create() di controller,
|
|
// bisa handle via modal di index, atau tambahkan stub create().
|
|
|
|
|
|
Route::prefix('admin')->name('admin.')->group(function () {
|
|
Route::resource('datajurusan', DataJurusanController::class);
|
|
});
|
|
|
|
|
|
Route::get('admin/basispengetahuan', [BasisPengetahuanController::class,'index'])
|
|
->name('admin.basispengetahuan.index');
|
|
Route::post('admin/basispengetahuan', [BasisPengetahuanController::class,'store'])
|
|
->name('admin.basispengetahuan.store');
|
|
Route::put('admin/basispengetahuan/{basisPengetahuan}', [BasisPengetahuanController::class,'update'])
|
|
->name('admin.basispengetahuan.update');
|
|
Route::delete('admin/basispengetahuan/{basisPengetahuan}', [BasisPengetahuanController::class,'destroy'])
|
|
->name('admin.basispengetahuan.destroy');
|
|
Route::prefix('admin')
|
|
->name('admin.')
|
|
->group(function () {
|
|
Route::resource('manajemen-user', ManajemenUserController::class);
|
|
Route::get('manajemen-user/{id}/get', [ManajemenUserController::class, 'getUser'])
|
|
->name('manajemen-user.get');
|
|
});
|
|
Route::prefix('admin')->name('admin.')->group(function(){
|
|
// ...
|
|
Route::get('hasil-diagnosis', [HasilDiagnosisController::class, 'index'])
|
|
->name('hasil-diagnosis.index');
|
|
});
|
|
|
|
Route::get('ahp/new', [NewAhpController::class, 'create'])->name('user.ahp.new');
|
|
Route::post('ahp', [NewAhpController::class, 'store'])->name('user.ahp.store');
|
|
|
|
|
|
Route::prefix('admin')
|
|
->name('admin.')
|
|
->middleware(['auth','role:admin'])
|
|
->group(function(){
|
|
// resource datajurusan, kecuali show
|
|
Route::resource('datajurusan', DataJurusanController::class)
|
|
->except(['show']);
|
|
});
|
|
|
|
Route::get('/ahp', [NewAhpController::class, 'index'])
|
|
->name('user.ahp.index');
|
|
|
|
// Terima POST input nilai dan proses AHP+CF
|
|
Route::post('/ahp', [NewAhpController::class, 'process'])
|
|
->name('user.ahp.process');
|
|
|
|
|
|
Route::prefix('admin')->name('admin.')->middleware(['auth'])->group(function() {
|
|
Route::resource('mapels', MapelController::class);
|
|
});
|
|
|
|
use App\Http\Controllers\Admin\BasisAhpController;
|
|
|
|
Route::prefix('admin')
|
|
->name('admin.')
|
|
->middleware('auth')
|
|
->group(function() {
|
|
Route::resource('basis-ahp', BasisAhpController::class)
|
|
->except(['create','edit']);
|
|
Route::get('basis-ahp/delete/{mapel_id}/{jurusan_id}', [BasisAhpController::class, 'destroyViaUrl'])
|
|
->name('basis-ahp.destroy-via-url');
|
|
});
|
|
Route::prefix('user')->middleware('auth')->group(function() {
|
|
Route::get('diagnosahasil', [DiagnosisHasilController::class, 'index'])->name('user.diagnosahasil');
|
|
Route::get('diagnosahasil/pdf', [DiagnosisHasilController::class, 'exportPdf'])->name('user.diagnosahasil.pdf');
|
|
});
|
|
Route::middleware('guest')->group(function () {
|
|
Route::get('/register', [RegisterController::class, 'showRegistrationForm'])
|
|
->name('register'); // nama route: register
|
|
|
|
Route::post('/register', [RegisterController::class, 'register'])
|
|
->name('register.submit'); // nama route: register.submit
|
|
});
|
|
|
|
|
|
|
|
Route::prefix('admin')->middleware('auth')->group(function() {
|
|
Route::resource('kecerdasan', KecerdasanController::class)->names([
|
|
'index' => 'admin.kecerdasan.index',
|
|
'store' => 'admin.kecerdasan.store',
|
|
'update' => 'admin.kecerdasan.update',
|
|
'destroy' => 'admin.kecerdasan.destroy',
|
|
])->parameters(['kecerdasan' => 'kecerdasan']);
|
|
});
|
|
|