Selesai bagian data soal
This commit is contained in:
parent
d229bb8bd3
commit
b7990bca24
|
|
@ -39,7 +39,20 @@ public function create()
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
//
|
DataSoalModel::create([
|
||||||
|
'pertanyaan' => $request->pertanyaan,
|
||||||
|
'jawaban_a' => $request->jawaban_a,
|
||||||
|
'jawaban_b' => $request->jawaban_b,
|
||||||
|
'jawaban_c' => $request->jawaban_c,
|
||||||
|
'jawaban_d' => $request->jawaban_d,
|
||||||
|
'jawaban_e' => $request->jawaban_e,
|
||||||
|
'jawaban_benar' => $request->jawaban_benar,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'msg' => 'Data berhasil ditambahkan'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -47,7 +60,11 @@ public function store(Request $request)
|
||||||
*/
|
*/
|
||||||
public function show(string $id)
|
public function show(string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = DataSoalModel::where('id_soal', $id)->get();
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'data' => $data[0]
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -55,7 +72,11 @@ public function show(string $id)
|
||||||
*/
|
*/
|
||||||
public function edit(string $id)
|
public function edit(string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = DataSoalModel::where('id_soal', $id)->get();
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'data' => $data[0]
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -63,7 +84,20 @@ public function edit(string $id)
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, string $id)
|
public function update(Request $request, string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = DataSoalModel::where('id_soal', $id)->update([
|
||||||
|
'pertanyaan' => $request->pertanyaan,
|
||||||
|
'jawaban_a' => $request->jawaban_a,
|
||||||
|
'jawaban_b' => $request->jawaban_b,
|
||||||
|
'jawaban_c' => $request->jawaban_c,
|
||||||
|
'jawaban_d' => $request->jawaban_d,
|
||||||
|
'jawaban_e' => $request->jawaban_e,
|
||||||
|
'jawaban_benar' => $request->jawaban_benar,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'msg' => 'Data berhasil di edit'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -71,6 +105,11 @@ public function update(Request $request, string $id)
|
||||||
*/
|
*/
|
||||||
public function destroy(string $id)
|
public function destroy(string $id)
|
||||||
{
|
{
|
||||||
//
|
$data = DataSoalModel::where('id_soal', $id)->delete();
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'msg' => 'Data berhasil di hapus'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@ protected static function boot()
|
||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot();
|
||||||
static::creating(function ($model) {
|
static::creating(function ($model) {
|
||||||
if (empty($model->id_lowongan_pekerjaan)) {
|
if (empty($model->id_soal)) {
|
||||||
$model->id_lowongan_pekerjaan = Str::uuid();
|
$model->id_soal = Str::uuid();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,59 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- [ Main Content ] end -->
|
<!-- [ Main Content ] end -->
|
||||||
|
|
||||||
|
<!-- Info Modal -->
|
||||||
|
<div class="modal fade" id="infoModal" 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">Info Data</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_pertanyaan" class="form-label">Pertanyaan</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_pertanyaan" name="info_pertanyaan">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_jawaban_a" class="form-label">Jawaban A</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_jawaban_a" name="info_jawaban_a">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_jawaban_b" class="form-label">Jawaban B</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_jawaban_b" name="info_jawaban_b">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_jawaban_c" class="form-label">Jawaban C</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_jawaban_c" name="info_jawaban_c">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_jawaban_d" class="form-label">Jawaban D</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_jawaban_d" name="info_jawaban_d">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="info_jawaban_e" class="form-label">Jawaban E</label>
|
||||||
|
<input disabled type="text" class="form-control" id="info_jawaban_e" name="info_jawaban_e">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 my-1">
|
||||||
|
<label for="info_jawaban_benar" class="form-label">Jawaban Benar</label>
|
||||||
|
<select disabled class="form-select" name="info_jawaban_benar" id="info_jawaban_benar">
|
||||||
|
<option value="a">A</option>
|
||||||
|
<option value="b">B</option>
|
||||||
|
<option value="c">C</option>
|
||||||
|
<option value="d">D</option>
|
||||||
|
<option value="e">E</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Modal Add -->
|
<!-- Modal Add -->
|
||||||
<div class="modal fade" id="addModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
<div class="modal fade" id="addModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
|
|
@ -106,16 +159,91 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||||
|
<button type="button" class="btn btn-primary" onclick="simpanAddData()">Simpan</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Edit Modal -->
|
||||||
|
<div class="modal fade" id="editModal" 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">Edit Data</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_pertanyaan" class="form-label">Pertanyaan</label>
|
||||||
|
<input type="text" class="form-control" id="edit_pertanyaan" name="edit_pertanyaan">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_jawaban_a" class="form-label">Jawaban A</label>
|
||||||
|
<input type="text" class="form-control" id="edit_jawaban_a" name="edit_jawaban_a">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_jawaban_b" class="form-label">Jawaban B</label>
|
||||||
|
<input type="text" class="form-control" id="edit_jawaban_b" name="edit_jawaban_b">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_jawaban_c" class="form-label">Jawaban C</label>
|
||||||
|
<input type="text" class="form-control" id="edit_jawaban_c" name="edit_jawaban_c">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_jawaban_d" class="form-label">Jawaban D</label>
|
||||||
|
<input type="text" class="form-control" id="edit_jawaban_d" name="edit_jawaban_d">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 my-1">
|
||||||
|
<label for="edit_jawaban_e" class="form-label">Jawaban E</label>
|
||||||
|
<input type="text" class="form-control" id="edit_jawaban_e" name="edit_jawaban_e">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 my-1">
|
||||||
|
<label for="edit_jawaban_benar" class="form-label">Jawaban Benar</label>
|
||||||
|
<select class="form-select" name="edit_jawaban_benar" id="edit_jawaban_benar">
|
||||||
|
<option value="a">A</option>
|
||||||
|
<option value="b">B</option>
|
||||||
|
<option value="c">C</option>
|
||||||
|
<option value="d">D</option>
|
||||||
|
<option value="e">E</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
|
||||||
<button type="button" class="btn btn-primary" onclick="simpanEditData()">Simpan</button>
|
<button type="button" class="btn btn-primary" onclick="simpanEditData()">Simpan</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 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 soal "<span id="delete_soal" class="fw-bold"></span>" ini?
|
||||||
|
</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>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('script')
|
@section('script')
|
||||||
<script>
|
<script>
|
||||||
let table = null;
|
let table = null;
|
||||||
|
let idEdit = null;
|
||||||
|
let idHapus = null;
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
table = new DataTable("#table-data", {
|
table = new DataTable("#table-data", {
|
||||||
ajax: {
|
ajax: {
|
||||||
|
|
@ -136,10 +264,13 @@
|
||||||
render: function(data, type, row, meta) {
|
render: function(data, type, row, meta) {
|
||||||
return `
|
return `
|
||||||
<div class="btn-group">
|
<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}">
|
<button type="button" class="btn btn-primary btn-sm rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#infoModal" onclick="getDataInfo(this)" data-id="${data.id_soal}">
|
||||||
|
<i class="ti ti-file-info"></i>
|
||||||
|
</button>
|
||||||
|
<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_soal}">
|
||||||
<i class="ti ti-edit"></i>
|
<i class="ti ti-edit"></i>
|
||||||
</button>
|
</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}">
|
<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_soal}">
|
||||||
<i class="ti ti-trash"></i>
|
<i class="ti ti-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -154,17 +285,138 @@ function fetchRowData() {
|
||||||
table.ajax.reload(null, false);
|
table.ajax.reload(null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDataEdit(btn) {
|
function simpanAddData() {
|
||||||
idEdit = btn.getAttribute('data-id');
|
let urlStore = '{{ route('soal.store') }}';
|
||||||
let urlEdit = '{{ route('users.edit', ['__ID__']) }}';
|
|
||||||
|
|
||||||
$.get(urlEdit.replace('__ID__', idEdit), function(data, status) {
|
$.post(urlStore, {
|
||||||
|
'_token': document.getElementById('_token').getAttribute('value'),
|
||||||
|
'pertanyaan': $('#pertanyaan').val(),
|
||||||
|
'jawaban_a': $('#jawaban_a').val(),
|
||||||
|
'jawaban_b': $('#jawaban_b').val(),
|
||||||
|
'jawaban_c': $('#jawaban_c').val(),
|
||||||
|
'jawaban_d': $('#jawaban_d').val(),
|
||||||
|
'jawaban_e': $('#jawaban_e').val(),
|
||||||
|
'jawaban_benar': $('#jawaban_benar').val(),
|
||||||
|
}, function(data, status) {
|
||||||
|
$('#addModal').modal('hide');
|
||||||
|
Swal.fire({
|
||||||
|
title: "Info",
|
||||||
|
text: "Data berhasil ditambahkan!",
|
||||||
|
icon: "success"
|
||||||
|
});
|
||||||
|
fetchRowData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDataInfo(btn) {
|
||||||
|
let idShow = btn.getAttribute('data-id');
|
||||||
|
let urlShow = '{{ route('soal.show', ['__ID__']) }}';
|
||||||
|
$.get(urlShow.replace('__ID__', idShow), function(data, status) {
|
||||||
if(data.status) {
|
if(data.status) {
|
||||||
$('#edit_nama_user').val(data.data.name);
|
$('#info_pertanyaan').attr('disabled', '');
|
||||||
$('#edit_email').val(data.data.email);
|
$('#info_jawaban_a').attr('disabled', '');
|
||||||
$('#edit_role').val(data.data.role);
|
$('#info_jawaban_b').attr('disabled', '');
|
||||||
|
$('#info_jawaban_c').attr('disabled', '');
|
||||||
|
$('#info_jawaban_d').attr('disabled', '');
|
||||||
|
$('#info_jawaban_e').attr('disabled', '');
|
||||||
|
$('#info_jawaban_benar').attr('disabled', '');
|
||||||
|
|
||||||
|
$('#info_pertanyaan').val(data.data.pertanyaan);
|
||||||
|
$('#info_jawaban_a').val(data.data.jawaban_a);
|
||||||
|
$('#info_jawaban_b').val(data.data.jawaban_b);
|
||||||
|
$('#info_jawaban_c').val(data.data.jawaban_c);
|
||||||
|
$('#info_jawaban_d').val(data.data.jawaban_d);
|
||||||
|
$('#info_jawaban_e').val(data.data.jawaban_e);
|
||||||
|
$('#info_jawaban_benar').val(data.data.jawaban_benar);
|
||||||
|
|
||||||
|
$('#info_pertanyaan').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_a').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_b').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_c').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_d').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_e').attr('disabled', 'disabled');
|
||||||
|
$('#info_jawaban_benar').attr('disabled', 'disabled');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDataEdit(btn) {
|
||||||
|
idEdit = btn.getAttribute('data-id');
|
||||||
|
let urlEdit = '{{ route('soal.edit', ['__ID__']) }}';
|
||||||
|
|
||||||
|
$.get(urlEdit.replace('__ID__', idEdit), function(data, status) {
|
||||||
|
if(data.status) {
|
||||||
|
$('#edit_pertanyaan').val(data.data.pertanyaan);
|
||||||
|
$('#edit_jawaban_a').val(data.data.jawaban_a);
|
||||||
|
$('#edit_jawaban_b').val(data.data.jawaban_b);
|
||||||
|
$('#edit_jawaban_c').val(data.data.jawaban_c);
|
||||||
|
$('#edit_jawaban_d').val(data.data.jawaban_d);
|
||||||
|
$('#edit_jawaban_e').val(data.data.jawaban_e);
|
||||||
|
$('#edit_jawaban_benar').val(data.data.jawaban_benar);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function simpanEditData() {
|
||||||
|
if(idEdit != null) {
|
||||||
|
let urlUpdate = '{{ route('soal.update', ['__ID__']) }}';
|
||||||
|
|
||||||
|
$.post(urlUpdate.replace('__ID__', idEdit), {
|
||||||
|
'_token': document.getElementById('_token').getAttribute('value'),
|
||||||
|
'_method': 'PUT',
|
||||||
|
'pertanyaan': $('#edit_pertanyaan').val(),
|
||||||
|
'jawaban_a': $('#edit_jawaban_a').val(),
|
||||||
|
'jawaban_b': $('#edit_jawaban_b').val(),
|
||||||
|
'jawaban_c': $('#edit_jawaban_c').val(),
|
||||||
|
'jawaban_d': $('#edit_jawaban_d').val(),
|
||||||
|
'jawaban_e': $('#edit_jawaban_e').val(),
|
||||||
|
'jawaban_benar': $('#edit_jawaban_benar').val(),
|
||||||
|
}, function(data, status) {
|
||||||
|
if(data.status) {
|
||||||
|
$('#editModal').modal('hide');
|
||||||
|
Swal.fire({
|
||||||
|
title: "Info",
|
||||||
|
text: "Data berhasil di edit!",
|
||||||
|
icon: "success"
|
||||||
|
});
|
||||||
|
fetchRowData();
|
||||||
|
idEdit = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDataHapus(btn) {
|
||||||
|
idHapus = btn.getAttribute('data-id');
|
||||||
|
let urlShow = '{{ route('soal.show', ['__ID__']) }}';
|
||||||
|
|
||||||
|
$.get(urlShow.replace('__ID__', idHapus), function(data, status) {
|
||||||
|
if(data.status) {
|
||||||
|
$('#delete_soal').html(data.data.pertanyaan);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function hapusData() {
|
||||||
|
if(idHapus != null) {
|
||||||
|
let urlDestroy = '{{ route('soal.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 dihapus!",
|
||||||
|
icon: "success"
|
||||||
|
});
|
||||||
|
fetchRowData();
|
||||||
|
idHapus = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
Loading…
Reference in New Issue