WIP: halaman finish ujian
This commit is contained in:
parent
b1f5b14287
commit
1821b6f59e
|
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\DataSoalModel;
|
||||||
|
use App\Models\DetailTestModel;
|
||||||
|
use App\Models\TestSessionsModel;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class FinishUjianController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$id_session = null;
|
||||||
|
if(session('id_test_sessions') != null) {
|
||||||
|
$id_session = session('id_test_sessions');
|
||||||
|
} else if($request->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)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
@section('title', 'Hasil Tes')
|
||||||
|
@extends('user.layouts.index')
|
||||||
|
@section('content')
|
||||||
|
<!-- Page Title -->
|
||||||
|
<div class="page-title">
|
||||||
|
<div class="heading">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row d-flex justify-content-center text-center">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<h1 class="heading-title">Hasil Tes Anda</h1>
|
||||||
|
<p class="mb-0">
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<nav class="breadcrumbs">
|
||||||
|
<div class="container">
|
||||||
|
<ol>
|
||||||
|
<li><a href="index.html">Home</a></li>
|
||||||
|
<li class="current">Hasil Tes</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div><!-- End Page Title -->
|
||||||
|
|
||||||
|
<!-- About Section -->
|
||||||
|
<section id="about" class="about section">
|
||||||
|
|
||||||
|
<div class="container" data-aos="fade-up" data-aos-delay="100">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section><!-- /About Section -->
|
||||||
|
|
||||||
|
<div class="toast-container position-fixed bottom-0 end-0 p-3">
|
||||||
|
<div id="liveToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="toast-header">
|
||||||
|
<strong class="me-auto"><i class="bi bi-exclamation-triangle"></i> Kesalahan</strong>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body">
|
||||||
|
{{ session('error') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('script')
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
@if (session('error'))
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
var toast = new bootstrap.Toast(document.getElementById('liveToast'));
|
||||||
|
toast.show();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endif
|
||||||
|
@endsection
|
||||||
|
|
@ -101,6 +101,10 @@ function changeQuestion(num) {
|
||||||
let token = document.getElementById('_token').getAttribute('value');
|
let token = document.getElementById('_token').getAttribute('value');
|
||||||
let formData = new FormData();
|
let formData = new FormData();
|
||||||
|
|
||||||
|
if(!current_num) {
|
||||||
|
current_num = '{{ $question_number }}';
|
||||||
|
}
|
||||||
|
|
||||||
if(current_num == num) {
|
if(current_num == num) {
|
||||||
console.log('same question');
|
console.log('same question');
|
||||||
return;
|
return;
|
||||||
|
|
@ -135,6 +139,10 @@ function getCurrentAnswer() {
|
||||||
let xhttp = new XMLHttpRequest();
|
let xhttp = new XMLHttpRequest();
|
||||||
let current_num = new URLSearchParams(window.location.search).get('question');
|
let current_num = new URLSearchParams(window.location.search).get('question');
|
||||||
|
|
||||||
|
if(!current_num) {
|
||||||
|
current_num = '{{ $question_number }}';
|
||||||
|
}
|
||||||
|
|
||||||
xhttp.onreadystatechange = function() {
|
xhttp.onreadystatechange = function() {
|
||||||
if (this.readyState == 4 && this.status == 200) {
|
if (this.readyState == 4 && this.status == 200) {
|
||||||
let response = JSON.parse(this.responseText);
|
let response = JSON.parse(this.responseText);
|
||||||
|
|
@ -233,6 +241,8 @@ function finishExam() {
|
||||||
status_sessions: false,
|
status_sessions: false,
|
||||||
session_id: SESSION_ID
|
session_id: SESSION_ID
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
window.location.href = "{{ route('hasil-tes.index') }}?id_test_sessions=" + SESSION_ID;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
use App\Http\Controllers\CekStatusController;
|
use App\Http\Controllers\CekStatusController;
|
||||||
use App\Http\Controllers\DashboardController;
|
use App\Http\Controllers\DashboardController;
|
||||||
use App\Http\Controllers\DataSoalController;
|
use App\Http\Controllers\DataSoalController;
|
||||||
|
use App\Http\Controllers\FinishUjianController;
|
||||||
use App\Http\Controllers\HalamanUjianController;
|
use App\Http\Controllers\HalamanUjianController;
|
||||||
use App\Http\Controllers\HasilTesController;
|
use App\Http\Controllers\HasilTesController;
|
||||||
use App\Http\Controllers\LandingController;
|
use App\Http\Controllers\LandingController;
|
||||||
|
|
@ -40,6 +41,7 @@
|
||||||
Route::resource('ujian', HalamanUjianController::class);
|
Route::resource('ujian', HalamanUjianController::class);
|
||||||
Route::get('ujian/get/current-answer', [HalamanUjianController::class, 'getCurrentAnswer'])->name('ujian.getCurrentAnswer');
|
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::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::middleware(['auth', 'role.auth'])->group(function() {
|
||||||
Route::resource('dashboard', DashboardController::class);
|
Route::resource('dashboard', DashboardController::class);
|
||||||
Route::resource('users', UsersController::class);
|
Route::resource('users', UsersController::class);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue