WIP: Halaman data hasil kecemasan
This commit is contained in:
parent
cc783674b6
commit
e2954898e9
|
|
@ -38,7 +38,7 @@ public function getchData() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = BookingModel::get();
|
$data = BookingModel::orderBy('updated_at', 'desc')->get();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class DataSoalController extends Controller
|
||||||
public function getData() {
|
public function getData() {
|
||||||
$data = DataSoalModel::get();
|
$data = DataSoalModel::get();
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
'data' => $data->toArray()
|
'data' => $data->toArray()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,11 @@ public function index(Request $request)
|
||||||
$difference = gmdate("i:s", $end - $start);
|
$difference = gmdate("i:s", $end - $start);
|
||||||
|
|
||||||
$data_booking = BookingModel::where('id_booking', $data_session->id_booking)->first();
|
$data_booking = BookingModel::where('id_booking', $data_session->id_booking)->first();
|
||||||
|
if($data_booking != null) {
|
||||||
|
if($data_booking->status_tes == '0') {
|
||||||
|
return redirect()->route('cek-status.index')->with('error', 'Data sesi tes tidak ditemukan atau telah dinonaktifkan.');
|
||||||
|
}
|
||||||
|
}
|
||||||
$data_information = [
|
$data_information = [
|
||||||
'kode' => $data_booking->kode_unik,
|
'kode' => $data_booking->kode_unik,
|
||||||
'nama' => $data_booking->nama_lengkap,
|
'nama' => $data_booking->nama_lengkap,
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,34 @@
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\BookingModel;
|
||||||
|
use App\Models\TestSessionsModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class HasilTesController extends Controller
|
class HasilTesController extends Controller
|
||||||
{
|
{
|
||||||
|
public function fetchData() {
|
||||||
|
$data_booking = BookingModel::orderBy('updated_at', 'desc')->get();
|
||||||
|
$result = [];
|
||||||
|
foreach($data_booking as $booking) {
|
||||||
|
$data_test = TestSessionsModel::where('id_booking', $booking->id_booking)->first();
|
||||||
|
if($data_test != null) {
|
||||||
|
$result[] = [
|
||||||
|
'id_test_session' => $data_test->id_test_sessions,
|
||||||
|
'nama_lengkap' => $booking->nama_lengkap,
|
||||||
|
'tgl_tes' => $data_test->created_at->format('d-m-Y'),
|
||||||
|
'jam_tes' => $data_test->created_at->format('H:i'),
|
||||||
|
'kode_booking' => $booking->kode_unik,
|
||||||
|
'status_tes' => $booking->status_tes
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'data' => $result
|
||||||
|
]);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
|
|
@ -35,7 +59,20 @@ public function store(Request $request)
|
||||||
*/
|
*/
|
||||||
public function show(string $id)
|
public function show(string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = TestSessionsModel::where('id_test_sessions', $id)->first();
|
||||||
|
|
||||||
|
if($data != null) {
|
||||||
|
$data_booking = BookingModel::where('id_booking', $data->id_booking)->first();
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'nama' => $data_booking->nama_lengkap
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'msg' => 'Data tidak ditemukan!'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -59,6 +96,21 @@ public function update(Request $request, string $id)
|
||||||
*/
|
*/
|
||||||
public function destroy(string $id)
|
public function destroy(string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = TestSessionsModel::where('id_test_sessions', $id)->first();
|
||||||
|
if($data != null) {
|
||||||
|
$data_booking = BookingModel::where('id_booking', $data->id_booking)->first();
|
||||||
|
$data_booking->update([
|
||||||
|
'status_tes' => '0'
|
||||||
|
]);
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'msg' => 'Data berhasil dinonaktifkan'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'msg' => 'Data tidak ditemukan!'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,30 +41,13 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>No</th>
|
<th>No</th>
|
||||||
<th>Dummy</th>
|
<th>Nama</th>
|
||||||
<th>Dummy</th>
|
<th>Kode Unik</th>
|
||||||
<th>Dummy</th>
|
<th>Tgl dan Jam Ujian</th>
|
||||||
|
<th>Status Data</th>
|
||||||
<th>Aksi</th>
|
<th>Aksi</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>1</td>
|
|
||||||
<td>lorem</td>
|
|
||||||
<td>lorem</td>
|
|
||||||
<td>lorem</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group">
|
|
||||||
<button type="button" class="btn btn-info btn-sm rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#editModal" onclick="getDataEdit(this)" data-id="${data.id}">
|
|
||||||
<i class="ti ti-edit"></i>
|
|
||||||
</button>
|
|
||||||
<button class="btn btn-sm btn-danger delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#deleteModal" onclick="getDataHapus(this)" data-id="${data.id}">
|
|
||||||
<i class="ti ti-trash"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -72,10 +55,168 @@
|
||||||
<!-- [ sample-page ] end -->
|
<!-- [ sample-page ] end -->
|
||||||
</div>
|
</div>
|
||||||
<!-- [ Main Content ] end -->
|
<!-- [ Main Content ] end -->
|
||||||
|
|
||||||
|
<!-- Modal Delete -->
|
||||||
|
<div class="modal fade" id="deleteModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title fs-5" id="exampleModalLabel">Hapus Data</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Apakah anda akan menghapus data dengan nama "<span id="delete_test" class="fw-bold"></span>" ini? (data hanya akan dinonaktikan)
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||||
|
<button type="button" class="btn btn-danger" onclick="hapusData()">Hapus</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- <!-- Modal Restore -->
|
||||||
|
<div class="modal fade" id="restoreModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title fs-5" id="exampleModalLabel">Restore Data</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Apakah anda akan memulihkan data dengan nama "<span id="restore_test" class="fw-bold"></span>" ini? (data akan diperiksa dengan status terakhirnya)
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||||
|
<button type="button" class="btn btn-danger" onclick="restoreData()">Hapus</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> --}}
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('script')
|
@section('script')
|
||||||
<script>
|
<script>
|
||||||
new DataTable("#table-data", {});
|
let idHapus = null;
|
||||||
|
let tableData = null;
|
||||||
|
|
||||||
|
function fetchRowData() {
|
||||||
|
if(tableData != null) {
|
||||||
|
tableData.ajax.reload(null, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDataInfo(btn) {
|
||||||
|
let idShow = btn.getAttribute('data-id');
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Alert',
|
||||||
|
icon: 'question',
|
||||||
|
text: 'Apakah Anda ingin melihat hasil dari data ini?',
|
||||||
|
confirmButtonText: 'Ya',
|
||||||
|
cancelButtonText: 'Tidak',
|
||||||
|
showCancelButton: true,
|
||||||
|
showCloseButton: true,
|
||||||
|
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
window.open("{{ route('hasil-tes.index') }}?id_test_sessions=" + idShow, "_blank");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDataHapus(btn) {
|
||||||
|
idHapus = btn.getAttribute('data-id');
|
||||||
|
let urlShow = '{{ route('hasil_tes.show', ['__ID__']) }}';
|
||||||
|
|
||||||
|
$.get(urlShow.replace('__ID__', idHapus), function(data, status) {
|
||||||
|
if(data.status) {
|
||||||
|
$('#delete_test').html(data.nama);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function hapusData() {
|
||||||
|
if(idHapus != null) {
|
||||||
|
let urlDestroy = '{{ route('hasil_tes.destroy', ['__ID__']) }}';
|
||||||
|
|
||||||
|
$.post(urlDestroy.replace('__ID__', idHapus), {
|
||||||
|
'_token': document.getElementById('_token').getAttribute('value'),
|
||||||
|
'_method': 'DELETE'
|
||||||
|
}, function(data, status) {
|
||||||
|
if(data.status) {
|
||||||
|
$('#deleteModal').modal('hide');
|
||||||
|
Swal.fire({
|
||||||
|
title: "Info",
|
||||||
|
text: "Data berhasil dinonakstifkan!",
|
||||||
|
icon: "success"
|
||||||
|
});
|
||||||
|
fetchRowData();
|
||||||
|
idHapus = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
tableData = new DataTable("#table-data", {
|
||||||
|
'ajax': {
|
||||||
|
'url': '{{ route('hasil-tes.fetchData') }}'
|
||||||
|
},
|
||||||
|
'columns': [
|
||||||
|
{
|
||||||
|
data: null,
|
||||||
|
render: function(data, type, row, meta) {
|
||||||
|
return meta.row + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'nama_lengkap'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'kode_booking'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: null,
|
||||||
|
render: function(data, type, row, meta) {
|
||||||
|
return `${data.tgl_tes} ${data.jam_tes}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: null,
|
||||||
|
render: function(data, type, row, meta) {
|
||||||
|
let bgClass = ['secondary', 'warning', 'success'];
|
||||||
|
let text = ['Nonaktif', 'Dalam Ujian', 'Selesai'];
|
||||||
|
return `
|
||||||
|
<span class="badge rounded-pill text-bg-${bgClass[data.status_tes]}">${text[data.status_tes]}</span>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: null,
|
||||||
|
render: function(data, type, row, meta) {
|
||||||
|
if(data.status_tes == 0) {
|
||||||
|
return `
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-info btn-sm rounded-circle mx-1 text-light" onclick="getDataInfo(this)" data-id="${data.id_test_session}">
|
||||||
|
<i class="ti ti-file-info"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
return `
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-info btn-sm rounded-circle mx-1 text-light" onclick="getDataInfo(this)" data-id="${data.id_test_session}">
|
||||||
|
<i class="ti ti-file-info"></i>
|
||||||
|
</a>
|
||||||
|
<button class="btn btn-sm btn-danger delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#deleteModal" onclick="getDataHapus(this)" data-id="${data.id_test_session}">
|
||||||
|
<i class="ti ti-trash"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
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('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::get('test-sessions/get/screen', [TestSessionsController::class, 'getScreen'])->name('test-sessions.getScreen');;
|
Route::get('test-sessions/get/screen', [TestSessionsController::class, 'getScreen'])->name('test-sessions.getScreen');
|
||||||
Route::resource('tobii-receiver', TobiiReceiverController::class)->only(['store', 'show']);
|
Route::resource('tobii-receiver', TobiiReceiverController::class)->only(['store', 'show']);
|
||||||
Route::get('tobii-receiver/fetch/data/{id_test_sessions}', [TobiiReceiverController::class, 'fetchDataTobii'])->name('tobii-receiver.fetchData');
|
Route::get('tobii-receiver/fetch/data/{id_test_sessions}', [TobiiReceiverController::class, 'fetchDataTobii'])->name('tobii-receiver.fetchData');
|
||||||
Route::resource('ujian', HalamanUjianController::class);
|
Route::resource('ujian', HalamanUjianController::class);
|
||||||
|
|
@ -56,6 +56,7 @@
|
||||||
Route::resource('soal', DataSoalController::class);
|
Route::resource('soal', DataSoalController::class);
|
||||||
Route::get('soal/fetch/data', [DataSoalController::class, 'getData'])->name('soal.fetchData');
|
Route::get('soal/fetch/data', [DataSoalController::class, 'getData'])->name('soal.fetchData');
|
||||||
Route::resource('hasil_tes', HasilTesController::class);
|
Route::resource('hasil_tes', HasilTesController::class);
|
||||||
|
Route::get('hasil_tes/fetch/data', [HasilTesController::class, 'fetchData'])->name('hasil-tes.fetchData');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('email/test', function(Request $req) {
|
Route::get('email/test', function(Request $req) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue