Merge branch 'main' into production

This commit is contained in:
Muhammad Thoriq 2025-12-09 08:03:56 +07:00
commit 39864df296
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);
$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);

View File

@ -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');
}
}

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) {
//
$middleware->alias([
'ceklogin' => \App\Http\Middleware\CekLogin::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
//

View File

@ -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();

View File

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

View File

@ -213,7 +213,7 @@
}).then(function(result) {
if (result.value) {
$.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 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']);
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']);
});