middleware, fix url jawaban

This commit is contained in:
Muhammad Thoriq 2025-12-09 08:03:46 +07:00
parent 15b38b9bb2
commit 7a9c08c0cc
8 changed files with 82 additions and 33 deletions

View File

@ -145,15 +145,17 @@ class AdminController extends Controller
$query->whereIn('unit', (array) $request->unit_kerja); $query->whereIn('unit', (array) $request->unit_kerja);
$masterUnits = array_intersect($masterUnits, $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'); $rekap = $query->get()->pluck('total_unit', 'unit');
$data = collect($masterUnits)->map(function ($unit) use ($rekap) { $data = collect($masterUnits)
return [ ->filter(fn($unit) => ($rekap[$unit] ?? 0) > 0)
'unit' => $unit, ->map(fn($unit) => [
'total_unit' => $rekap[$unit] ?? 0, 'unit' => $unit,
]; 'total_unit' => $rekap[$unit],
}); ])
->values();
return DataTables::of($data)->make(true); return DataTables::of($data)->make(true);

View File

@ -10,4 +10,18 @@ class AuthController extends Controller
public function login() { public function login() {
return view('auth.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');
}
} }

View File

@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CekLogin
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
if (!session()->has('is_login')) {
return redirect('/login');
}
return $next($request);
}
}

View File

@ -12,6 +12,9 @@ return Application::configure(basePath: dirname(__DIR__))
) )
->withMiddleware(function (Middleware $middleware) { ->withMiddleware(function (Middleware $middleware) {
// //
$middleware->alias([
'ceklogin' => \App\Http\Middleware\CekLogin::class,
]);
}) })
->withExceptions(function (Exceptions $exceptions) { ->withExceptions(function (Exceptions $exceptions) {
// //

View File

@ -106,7 +106,7 @@
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
url: `admin/get_data_pegawai_jawaban`, url: `/admin/get_data_pegawai_jawaban`,
type: 'POST', type: 'POST',
data: function (d) { data: function (d) {
d.nama_pegawai = $('#nama_pegawai').val(); d.nama_pegawai = $('#nama_pegawai').val();

View File

@ -19,9 +19,10 @@
<img src="{{ asset('assets/img/logo-fullname.png') }}" class="card-img-top w-100 w-md-40" alt="..."> <img src="{{ asset('assets/img/logo-fullname.png') }}" class="card-img-top w-100 w-md-40" alt="...">
</div> </div>
</div> </div>
<div class="card-body"> <form id="form" action="/do_login" method="POST">
<h5 class="card-title text-center fw-bold">Login Survey Mutu</h5> @csrf
<form id="form"> <div class="card-body">
<h5 class="card-title text-center fw-bold">Login Survey Mutu</h5>
<div class="mb-3"> <div class="mb-3">
<label for="username">Username</label> <label for="username">Username</label>
<input type="text" class="form-control" id="user_name" name="user_name" aria-describedby="user_name" /> <input type="text" class="form-control" id="user_name" name="user_name" aria-describedby="user_name" />
@ -36,11 +37,11 @@
</div> </div>
<span id="password_error" class="form-label text-danger"></span> <span id="password_error" class="form-label text-danger"></span>
</div> </div>
</form> </div>
</div> <div class="card-body">
<div class="card-body"> <button class="btn btn-primary" type="submit">Login</button>
<button class="btn btn-primary" id="button_login">Login</button> </div>
</div> </form>
</div> </div>
@endsection @endsection

View File

@ -213,7 +213,7 @@
}).then(function(result) { }).then(function(result) {
if (result.value) { if (result.value) {
$.removeCookie('token'); $.removeCookie('token');
window.location.href = "/login"; window.location.href = "/logout";
} }
}); });
}) })

View File

@ -5,24 +5,29 @@ use App\Http\Controllers\AuthController;
use App\Http\Controllers\SoalController; use App\Http\Controllers\SoalController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/logout', [AuthController::class, 'logout']);
Route::get('/login', [AuthController::class, 'login']); Route::get('/login', [AuthController::class, 'login']);
Route::post('/do_login', [AuthController::class, 'do_login']);
Route::get('/', [SoalController::class, 'index'])->name('soal.index'); Route::get('/', [SoalController::class, 'index'])->name('soal.index');
Route::post('/jawaban', [SoalController::class, 'store'])->name('soal.store'); Route::post('/jawaban', [SoalController::class, 'store'])->name('soal.store');
Route::get('/jawaban/terima-kasih', [SoalController::class, 'thankYou'])->name('soal.thankyou'); 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::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::middleware('ceklogin')->group(function () {
Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_jawaban']); Route::get('/admin', [AdminController::class, 'index']);
Route::post('/admin/get_data_pegawai_jawaban', [AdminController::class, 'get_data_pegawai_jawaban']); Route::post('/admin/get_data_pegawai_sudah_survey', [AdminController::class, 'get_data_pegawai_sudah_survey']);
Route::get('/admin/detail_jawaban/{jawaban_id}', [AdminController::class, 'get_jawaban']); Route::post('/admin/get_data_pegawai_tidak_mau_survey', [AdminController::class, 'data_tidak_mau_survey']);
Route::post('/admin/get_data_dashboard_analisis', [AdminController::class, 'get_data_dashboard_analisis']); Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_analisis']);
Route::post('/admin/report_data_analisis', [AdminController::class, 'report_data_dashboard_analisis']); Route::post('/admin/get_data_dashboard_jawaban', [AdminController::class, 'get_data_dashboard_analisis']);
Route::post('/admin/report_jawaban', [AdminController::class, 'download_report_data_jawaban_pegawai']); Route::post('/admin/report', [AdminController::class, 'download_report_data_pegawai_sudah_survey']);
Route::get('/admin/dashboard_demografi', [AdminController::class, 'dashboard_demografi']); Route::get('/admin/dashboard_analisis', [AdminController::class, 'dashboard_analisis']);
Route::post('/admin/get_data_dashboard_demografi', [AdminController::class, 'get_data_dashboard_demografi']); Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_jawaban']);
Route::post('/admin/report_data_demografi', [AdminController::class, 'download_report_dashboard_demografi']); 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']);
});