diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index d27cc40..c10f820 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -145,15 +145,17 @@ class AdminController extends Controller $query->whereIn('unit', (array) $request->unit_kerja); $masterUnits = array_intersect($masterUnits, $request->unit_kerja); } - $query->groupBy('unit'); + $query->groupBy('unit') + ->havingRaw('COUNT(*) > 0'); $rekap = $query->get()->pluck('total_unit', 'unit'); - $data = collect($masterUnits)->map(function ($unit) use ($rekap) { - return [ - 'unit' => $unit, - 'total_unit' => $rekap[$unit] ?? 0, - ]; - }); + $data = collect($masterUnits) + ->filter(fn($unit) => ($rekap[$unit] ?? 0) > 0) + ->map(fn($unit) => [ + 'unit' => $unit, + 'total_unit' => $rekap[$unit], + ]) + ->values(); return DataTables::of($data)->make(true); diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index c595d12..f0664a7 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -10,4 +10,18 @@ class AuthController extends Controller public function login() { return view('auth.login'); } + + public function do_login(Request $request) { + if($request->user_name == 'admin' && $request->password == 'admin') { + session(['is_login' => true]); + return redirect('/admin'); + } else { + return redirect('/login'); + } + } + + public function logout() { + session()->flush(); + return redirect('/login'); + } } diff --git a/app/Http/Middleware/CekLogin.php b/app/Http/Middleware/CekLogin.php new file mode 100644 index 0000000..10d5ac7 --- /dev/null +++ b/app/Http/Middleware/CekLogin.php @@ -0,0 +1,24 @@ +has('is_login')) { + return redirect('/login'); + } + + return $next($request); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index 7b162da..4e18962 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -12,6 +12,9 @@ return Application::configure(basePath: dirname(__DIR__)) ) ->withMiddleware(function (Middleware $middleware) { // + $middleware->alias([ + 'ceklogin' => \App\Http\Middleware\CekLogin::class, + ]); }) ->withExceptions(function (Exceptions $exceptions) { // diff --git a/resources/views/admin/dashboard_jawaban.blade.php b/resources/views/admin/dashboard_jawaban.blade.php index 0722a41..d322b9c 100644 --- a/resources/views/admin/dashboard_jawaban.blade.php +++ b/resources/views/admin/dashboard_jawaban.blade.php @@ -106,7 +106,7 @@ processing: true, serverSide: true, ajax: { - url: `admin/get_data_pegawai_jawaban`, + url: `/admin/get_data_pegawai_jawaban`, type: 'POST', data: function (d) { d.nama_pegawai = $('#nama_pegawai').val(); diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 7285b74..f5f01c1 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -19,9 +19,10 @@ ... -
-
Login Survey Mutu
-
+ + @csrf +
+
Login Survey Mutu
@@ -36,11 +37,11 @@
-
-
-
- -
+ +
+ +
+ @endsection diff --git a/resources/views/layouts/template_admin.blade.php b/resources/views/layouts/template_admin.blade.php index d589bbe..2f55d63 100644 --- a/resources/views/layouts/template_admin.blade.php +++ b/resources/views/layouts/template_admin.blade.php @@ -213,7 +213,7 @@ }).then(function(result) { if (result.value) { $.removeCookie('token'); - window.location.href = "/login"; + window.location.href = "/logout"; } }); }) diff --git a/routes/web.php b/routes/web.php index 7589968..81647f6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,24 +5,29 @@ use App\Http\Controllers\AuthController; use App\Http\Controllers\SoalController; use Illuminate\Support\Facades\Route; +Route::get('/logout', [AuthController::class, 'logout']); Route::get('/login', [AuthController::class, 'login']); +Route::post('/do_login', [AuthController::class, 'do_login']); Route::get('/', [SoalController::class, 'index'])->name('soal.index'); Route::post('/jawaban', [SoalController::class, 'store'])->name('soal.store'); Route::get('/jawaban/terima-kasih', [SoalController::class, 'thankYou'])->name('soal.thankyou'); -Route::get('/admin', [AdminController::class, 'index']); -Route::post('/admin/get_data_pegawai_sudah_survey', [AdminController::class, 'get_data_pegawai_sudah_survey']); -Route::post('/admin/get_data_pegawai_tidak_mau_survey', [AdminController::class, 'data_tidak_mau_survey']); -Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_analisis']); -Route::post('/admin/get_data_dashboard_jawaban', [AdminController::class, 'get_data_dashboard_analisis']); Route::get('/redirect-smart', [SoalController::class, 'redirectSmart']); -Route::post('/admin/report', [AdminController::class, 'download_report_data_pegawai_sudah_survey']); -Route::get('/admin/dashboard_analisis', [AdminController::class, 'dashboard_analisis']); -Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_jawaban']); -Route::post('/admin/get_data_pegawai_jawaban', [AdminController::class, 'get_data_pegawai_jawaban']); -Route::get('/admin/detail_jawaban/{jawaban_id}', [AdminController::class, 'get_jawaban']); -Route::post('/admin/get_data_dashboard_analisis', [AdminController::class, 'get_data_dashboard_analisis']); -Route::post('/admin/report_data_analisis', [AdminController::class, 'report_data_dashboard_analisis']); -Route::post('/admin/report_jawaban', [AdminController::class, 'download_report_data_jawaban_pegawai']); -Route::get('/admin/dashboard_demografi', [AdminController::class, 'dashboard_demografi']); -Route::post('/admin/get_data_dashboard_demografi', [AdminController::class, 'get_data_dashboard_demografi']); -Route::post('/admin/report_data_demografi', [AdminController::class, 'download_report_dashboard_demografi']); \ No newline at end of file + +Route::middleware('ceklogin')->group(function () { + Route::get('/admin', [AdminController::class, 'index']); + Route::post('/admin/get_data_pegawai_sudah_survey', [AdminController::class, 'get_data_pegawai_sudah_survey']); + Route::post('/admin/get_data_pegawai_tidak_mau_survey', [AdminController::class, 'data_tidak_mau_survey']); + Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_analisis']); + Route::post('/admin/get_data_dashboard_jawaban', [AdminController::class, 'get_data_dashboard_analisis']); + Route::post('/admin/report', [AdminController::class, 'download_report_data_pegawai_sudah_survey']); + Route::get('/admin/dashboard_analisis', [AdminController::class, 'dashboard_analisis']); + Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_jawaban']); + Route::post('/admin/get_data_pegawai_jawaban', [AdminController::class, 'get_data_pegawai_jawaban']); + Route::get('/admin/detail_jawaban/{jawaban_id}', [AdminController::class, 'get_jawaban']); + Route::post('/admin/get_data_dashboard_analisis', [AdminController::class, 'get_data_dashboard_analisis']); + Route::post('/admin/report_data_analisis', [AdminController::class, 'report_data_dashboard_analisis']); + Route::post('/admin/report_jawaban', [AdminController::class, 'download_report_data_jawaban_pegawai']); + Route::get('/admin/dashboard_demografi', [AdminController::class, 'dashboard_demografi']); + Route::post('/admin/get_data_dashboard_demografi', [AdminController::class, 'get_data_dashboard_demografi']); + Route::post('/admin/report_data_demografi', [AdminController::class, 'download_report_dashboard_demografi']); +}); \ No newline at end of file