halaman-psikolog #1

Merged
Mahayoga merged 52 commits from halaman-psikolog into master 2026-07-06 12:37:30 +07:00
5 changed files with 145 additions and 5 deletions
Showing only changes of commit 28502db7e5 - Show all commits

View File

@ -34,10 +34,14 @@ public function store(Request $request)
$testSession = TestSessionsModel::create([ $testSession = TestSessionsModel::create([
'id_booking' => $request->id_booking, 'id_booking' => $request->id_booking,
'status_session' => 0, // Set status awal sebagai "Belum Dimulai" 'status_session' => '0',
]); ]);
return redirect()->route('cek-status.show', $request->id_booking)->with('success', 'Sesi tes berhasil dibuat. Token: ' . $testSession->token_session); return redirect()->route('tutorial-tes.index')->with([
'id_booking' => $testSession->id_booking,
'id_test_sessions' => $testSession->id_test_sessions,
'token_session' => $testSession->token_session,
]);
} }
/** /**

View File

@ -0,0 +1,82 @@
<?php
namespace App\Http\Controllers;
use App\Models\TestSessionsModel;
use Illuminate\Http\Request;
class TutorialTesController 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_session != null) {
$id_session = $request->id_session;
} 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 == '0') {
$data_session->update(['status_session' => '1']);
}
} else {
return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan. Silakan mulai tes terlebih dahulu.');
}
return view('user.pages.tutorial_tes.index', compact('data_session'));
}
/**
* 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)
{
//
}
}

View File

@ -100,6 +100,27 @@
</div> </div>
</section><!-- /About Section --> </section><!-- /About Section -->
@if (session('error'))
<script>
$(document).ready(function() {
var toast = new bootstrap.Toast(document.getElementById('liveToast'));
toast.show();
});
</script>
@endif
<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">Pemberitahuan</strong>
<small>baru saja</small>
<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 @endsection
@section('script') @section('script')
@ -149,6 +170,7 @@ function searchUserStatus() {
$('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); $('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!');
if(test_session.status) { if(test_session.status) {
if(test_session.status_session == 0) { if(test_session.status_session == 0) {
$('#id_booking_input').val(response.id_booking);
$('#result_test_status').html('Belum Dimulai'); $('#result_test_status').html('Belum Dimulai');
$('#result_test_status').removeClass(); $('#result_test_status').removeClass();
$('#result_test_status').addClass('fw-bold text-white bg-secondary p-2 rounded-pill'); $('#result_test_status').addClass('fw-bold text-white bg-secondary p-2 rounded-pill');
@ -163,7 +185,7 @@ function searchUserStatus() {
$('#result_test_status').addClass('fw-bold text-white bg-success p-2 rounded-pill'); $('#result_test_status').addClass('fw-bold text-white bg-success p-2 rounded-pill');
} }
} else if(!test_session.status) { } else if(!test_session.status) {
console.log(test_session.msg); $('#id_booking_input').val(response.id_booking);
$('#result_test').show(); $('#result_test').show();
$('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!'); $('#result_test_title').html('Kamu sudah dikonfirmasi oleh psikolog! Kalau kamu sudah siap menjalankan tes, klik tombol di bawah untuk mulai tes kecemasan dari sistem kami!');

View File

@ -0,0 +1,30 @@
@section('title', 'Tutorial Test Kecemasan')
@extends('user.layouts.index')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card shadow-sm border-0">
<div class="card-body">
<h3 class="card-title fw-bold mb-4">Tutorial Tes Kecemasan</h3>
<p class="card-text mb-3">Berikut adalah tutorial untuk menjalankan tes kecemasan dari sistem kami. Pastikan kamu sudah membaca dan memahami setiap langkah yang ada di bawah ini sebelum memulai tes.</p>
<ol>
<li><strong>Persiapan:</strong> Pastikan kamu berada di tempat yang tenang dan nyaman, serta memiliki koneksi internet yang stabil. Siapkan juga alat tulis untuk mencatat jika diperlukan.</li>
<li><strong>Durasi Tes:</strong> Tes ini akan memakan waktu sekitar 15-30 menit, tergantung pada kecepatanmu dalam menjawab pertanyaan. Pastikan kamu memiliki waktu luang yang cukup untuk menyelesaikan tes tanpa gangguan.</li>
<li><strong>Jenis Pertanyaan:</strong> Tes ini terdiri dari beberapa pertanyaan yang dirancang untuk mengukur tingkat kecemasanmu. Jawablah setiap pertanyaan dengan jujur dan sesuai dengan perasaanmu saat ini.</li>
<li><strong>Hasil Tes:</strong> Setelah menyelesaikan tes, hasilnya akan dianalisis oleh sistem kami dan akan diberikan kepada psikolog yang menangani kasusmu. Psikolog akan memberikan feedback dan rekomendasi berdasarkan hasil tes tersebut.</li>
<li><strong>Konsultasi Lanjutan:</strong> Jika hasil tes menunjukkan bahwa kamu mengalami tingkat kecemasan yang tinggi, psikolog mungkin akan menyarankan sesi konsultasi lanjutan untuk membahas hasil tes dan langkah selanjutnya yang bisa diambil.</li>
</ol>
<p class="card-text mt-3">Jika kamu sudah siap untuk memulai tes, silakan klik tombol "Mulai Tes" di bawah ini. Semoga tes ini dapat membantu kamu dalam memahami kondisi kecemasanmu dan mendapatkan bantuan yang tepat!</p>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
</script>
@endsection

View File

@ -8,6 +8,7 @@
use App\Http\Controllers\LandingController; use App\Http\Controllers\LandingController;
use App\Http\Controllers\ProfileController; use App\Http\Controllers\ProfileController;
use App\Http\Controllers\TestSessionsController; use App\Http\Controllers\TestSessionsController;
use App\Http\Controllers\TutorialTesController;
use App\Http\Controllers\UsersController; use App\Http\Controllers\UsersController;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@ -30,6 +31,7 @@
Route::get('/about', [LandingController::class, 'about'])->name('beranda.about'); Route::get('/about', [LandingController::class, 'about'])->name('beranda.about');
Route::resource('booking', BookingController::class)->only(['store']); Route::resource('booking', BookingController::class)->only(['store']);
Route::resource('cek-status', CekStatusController::class)->only(['index', 'show']); Route::resource('cek-status', CekStatusController::class)->only(['index', 'show']);
Route::resource('tutorial-tes', TutorialTesController::class)->only(['index']);
Route::resource('test-sessions', TestSessionsController::class)->only(['store', 'show']); Route::resource('test-sessions', TestSessionsController::class)->only(['store', '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);
@ -42,8 +44,8 @@
Route::resource('hasil_tes', HasilTesController::class); Route::resource('hasil_tes', HasilTesController::class);
}); });
Route::post('api/eye/test', function(Request $req) { Route::get('api/eye/test', function(Request $req) {
return $req->all(); return $req->token;
}); });
require __DIR__.'/auth.php'; require __DIR__.'/auth.php';