diff --git a/app/Http/Controllers/FinishUjianController.php b/app/Http/Controllers/FinishUjianController.php index ce0e397..858f64d 100644 --- a/app/Http/Controllers/FinishUjianController.php +++ b/app/Http/Controllers/FinishUjianController.php @@ -13,12 +13,12 @@ class FinishUjianController extends Controller public function getAllAnswer(Request $request) { $data_session = TestSessionsModel::where('id_test_sessions', $request->id_test_sessions)->first(); if($data_session != null) { - if($data_session->status_session != '1') { + if($data_session->status_session == '0') { return response()->json([ 'status' => false, - 'message' => 'Data sesi tes belum dimulai atau telah usai. Silahkan cek status dengan kode untuk informasi lebih lanjut.' + 'message' => 'Data sesi tes dinonaktifkan. Silahkan cek status dengan kode untuk informasi lebih lanjut.' ]); - } else if($data_session->status_session == '1') { + } else if($data_session->status_session == '2') { $detail_test = DetailTestModel::where('id_test_sessions', $request->id_test_sessions)->get(); $data_ujian = []; foreach($detail_test as $detail) { @@ -73,13 +73,15 @@ public function index(Request $request) $data_session = TestSessionsModel::where('id_test_sessions', $id_session)->first(); if($data_session != null) { - if($data_session->status_session != '1') { - return redirect()->route('cek-status.index')->with('error', 'Data sesi tes belum dimulai atau telah usai. Silahkan cek status dengan kode untuk informasi lebih lanjut.'); + if($data_session->status_session == '0') { + return redirect()->route('cek-status.index')->with('error', 'Data sesi tes dinonaktifkan. Silahkan cek status dengan kode untuk informasi lebih lanjut.'); } else if($data_session->status_session == '1') { - // $data_session->update([ - // 'status_session' => '2', - // 'is_active' => '0' - // ]); + $data_session->update([ + 'status_session' => '2', + 'is_active' => '0' + ]); + return view('user.pages.finish_ujian.index', compact('id_session')); + } else if($data_session->status_session == '2') { return view('user.pages.finish_ujian.index', compact('id_session')); } } else { diff --git a/app/Http/Controllers/HalamanUjianController.php b/app/Http/Controllers/HalamanUjianController.php index 5ca7fd8..131f4d0 100644 --- a/app/Http/Controllers/HalamanUjianController.php +++ b/app/Http/Controllers/HalamanUjianController.php @@ -14,7 +14,7 @@ class HalamanUjianController extends Controller function fetchQuestion(Request $request) { $data_question = DataSoalModel::all(); if($data_question != null) { - $number_question = $request->question_number; + $number_question = $request->question_index; if($number_question <= 0 || $number_question > count($data_question)) { $number_question = 1; } @@ -66,6 +66,12 @@ public function getCurrentAnswer(Request $request) { ]; } } + } else { + return response()->json([ + 'status' => false, + 'jawaban' => null, + 'choices' => null + ]); } $data_answer = DetailTestModel::where('id_soal', $request->id_question) ->where('id_test_sessions', $request->session_id) @@ -86,6 +92,45 @@ public function getCurrentAnswer(Request $request) { } } + public function getNavigationField(Request $request) { + $id_session = null; + if(session('session_id') != null) { + $id_session = session('session_id'); + } else if($request->session_id != null) { + $id_session = $request->session_id; + } else { + return response()->json([ + 'status' => false, + 'msg' => 'Test session id tidak ditemukan' + ]); + } + + $data_soal = DataSoalModel::all(); + $result = []; + $index = 1; + foreach($data_soal as $soal) { + $data_jawaban = DetailTestModel::where(['id_soal' => $soal->id_soal, 'id_test_sessions' => $id_session])->first(); + if($data_jawaban != null) { + $result[] = [ + 'index' => $index, + 'answered' => true, + 'data' => $data_jawaban + ]; + } else { + $result[] = [ + 'index' => $index, + 'answered' => false + ]; + } + $index += 1; + } + + return response()->json([ + 'status' => true, + 'data' => $result + ]); + } + public function getTimeLeft(Request $request) { $data_session = TestSessionsModel::where('id_test_sessions', $request->session_id)->first(); if($data_session != null) { diff --git a/resources/views/user/pages/cek_status/index.blade.php b/resources/views/user/pages/cek_status/index.blade.php index 43c4e35..1d12f24 100644 --- a/resources/views/user/pages/cek_status/index.blade.php +++ b/resources/views/user/pages/cek_status/index.blade.php @@ -180,6 +180,10 @@ function searchUserStatus() { $('#result_test_status').html('Selesai'); $('#result_test_status').removeClass(); $('#result_test_status').addClass('fw-bold text-white bg-success p-2 rounded-pill'); + let test_url = '{{ route('hasil-tes.index', ['id_test_sessions' => '__ID_TEST_SESSIONS__']) }}'; + $('#result_test_link').show(); + $('#result_test_link').html('Tes Sudah Selesai, Klik untuk melihat hasil'); + $('#result_test_link').attr('href', test_url.replace('__ID_TEST_SESSIONS__', test_session.id_test_sessions)); } } else if(!test_session.status) { $('#id_booking_input').val(response.id_booking); diff --git a/resources/views/user/pages/ujian/temp_index.blade.php b/resources/views/user/pages/ujian/temp_index.blade.php index a6b3bd0..76112ff 100644 --- a/resources/views/user/pages/ujian/temp_index.blade.php +++ b/resources/views/user/pages/ujian/temp_index.blade.php @@ -29,34 +29,16 @@