diff --git a/app/Http/Controllers/FinishUjianController.php b/app/Http/Controllers/FinishUjianController.php new file mode 100644 index 0000000..df0a64d --- /dev/null +++ b/app/Http/Controllers/FinishUjianController.php @@ -0,0 +1,99 @@ +id_test_sessions != null) { + $id_session = $request->id_test_sessions; + } else { + return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan. Silakan mulai tes terlebih dahulu.'); + } + + $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.'); + } else if($data_session->status_session == '1') { + // $data_session->update([ + // 'status_session' => '2', + // 'is_active' => '0' + // ]); + $detail_test = DetailTestModel::where('id_test_sessions', $id_session)->get(); + $data_ujian = []; + foreach($detail_test as $detail) { + $data_soal = DataSoalModel::where('id_soal', $detail->id_soal)->first(); + $data_ujian[] = [ + 'id_soal' => $detail->id_soal, + 'jawaban' => $detail->jawaban, + 'soal' => $data_soal ? $data_soal->soal : null + ]; + } + return view('user.pages.finish_ujian.index', compact('data_ujian', 'id_session')); + } + } else { + return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan.'); + } + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + // + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/resources/views/user/pages/finish_ujian/index.blade.php b/resources/views/user/pages/finish_ujian/index.blade.php new file mode 100644 index 0000000..dae4831 --- /dev/null +++ b/resources/views/user/pages/finish_ujian/index.blade.php @@ -0,0 +1,63 @@ +@section('title', 'Hasil Tes') +@extends('user.layouts.index') +@section('content') + +
+
+
+
+
+

Hasil Tes Anda

+

+ Cek hasil tes kamu dari sini ya, jika kamu sudah mendapatkan kode dari email setelah melakukan booking, kamu bisa melihat hasil tes disini dengan kode tadi. +

+
+
+
+
+ +
+ + +
+ +
+ +
+
+ +
+ +
+ +@endsection + +@section('script') + + + @if (session('error')) + + @endif +@endsection \ No newline at end of file diff --git a/resources/views/user/pages/ujian/index.blade.php b/resources/views/user/pages/ujian/index.blade.php index ad2ae85..9359aba 100644 --- a/resources/views/user/pages/ujian/index.blade.php +++ b/resources/views/user/pages/ujian/index.blade.php @@ -101,6 +101,10 @@ function changeQuestion(num) { let token = document.getElementById('_token').getAttribute('value'); let formData = new FormData(); + if(!current_num) { + current_num = '{{ $question_number }}'; + } + if(current_num == num) { console.log('same question'); return; @@ -135,6 +139,10 @@ function getCurrentAnswer() { let xhttp = new XMLHttpRequest(); let current_num = new URLSearchParams(window.location.search).get('question'); + if(!current_num) { + current_num = '{{ $question_number }}'; + } + xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { let response = JSON.parse(this.responseText); @@ -233,6 +241,8 @@ function finishExam() { status_sessions: false, session_id: SESSION_ID })); + + window.location.href = "{{ route('hasil-tes.index') }}?id_test_sessions=" + SESSION_ID; } }); } diff --git a/routes/web.php b/routes/web.php index d935e0a..826f8db 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,6 +4,7 @@ use App\Http\Controllers\CekStatusController; use App\Http\Controllers\DashboardController; use App\Http\Controllers\DataSoalController; +use App\Http\Controllers\FinishUjianController; use App\Http\Controllers\HalamanUjianController; use App\Http\Controllers\HasilTesController; use App\Http\Controllers\LandingController; @@ -40,6 +41,7 @@ Route::resource('ujian', HalamanUjianController::class); Route::get('ujian/get/current-answer', [HalamanUjianController::class, 'getCurrentAnswer'])->name('ujian.getCurrentAnswer'); Route::get('ujian/get/time-left', [HalamanUjianController::class, 'getTimeLeft'])->name('ujian.getTimeLeft'); +Route::resource('hasil-tes', FinishUjianController::class)->only(['index', 'show']); Route::middleware(['auth', 'role.auth'])->group(function() { Route::resource('dashboard', DashboardController::class); Route::resource('users', UsersController::class);