MIF_E31210141/Modules/Konselor/Resources/views/ticket/index.blade.php

309 lines
15 KiB
PHP

@push('css')
<link href="{{ frontend('plugins/custom/datatables/datatables.bundle.css') }}" rel="stylesheet" type="text/css" />
@endpush
@include('components.theme.pages.header')
<section>
<div class="row">
<div class="col">
<div class="px-5 py-3 border rounded mb-4">
<form method="POST" action="{{ site_url('konselor', 'ticket/cetak') }}">
@csrf
<h2>Filter</h2>
<div class="row">
<div class="col">
<div class="row">
<div class="col d-flex">
<input type="date" id="start_date" name="start_date" class="form-control form-control-solid w-200px ps-15"/>
<input type="date" id="end_date" name="end_date" class="form-control form-control-solid w-200px ps-15 ms-2"/>
</div>
</div>
<div class="row mt-2">
<div class="col d-flex">
<select id="subjek" name="type" class="form-select form-select-solid w-200px ps-15">
<option value="">Pilih Subjek</option>
<option value="Non Akademis">Non Akademis</option>
<option value="Akademis">Akademis</option>
<option value="Masuk Universitas">Masuk Universitas</option>
<option value="Masalah Keluarga">Masalah Keluarga</option>
<option value="Yang Lain">Yang Lain</option>
</select>
<select id="jenis" name="jenis" class="form-select form-select-solid w-200px ps-15 ms-2">
<option value="">Pilih Jenis</option>
<option value="2">Face to Face</option>
<option value="1">Aplikasi</option>
</select>
<select id="status" name="status" class="form-select form-select-solid w-200px ps-15 ms-2">
<option value="">Pilih Status</option>
<option value="1">Menunggu Respon</option>
<option value="2">User Telah Membalas</option>
<option value="3">Admin/Wali telah membalas</option>
<option value="4">Kasus ditutup</option>
</select>
<select id="kasus" name="kasus" class="form-select form-select-solid w-200px ps-15 ms-2">
<option value="">Pilih Kasus</option>
<option value="1">Normal</option>
<option value="2">Sedang</option>
<option value="3">Parah</option>
</select>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col d-flex justify-content-end">
<a id="btnTerapkan" class="btn btn-light btn-active-light-primary me-2">Terapkan</a>
<button type="submit" class="btn btn-primary">Cetak</button/>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- basic table -->
<div class="row">
<div class="col-12">
<div class="card card-flush">
<div class="card-header flex-nowrap pt-5">
<div>
<div class="d-flex align-items-center position-relative my-1">
<i class="ki-outline ki-magnifier fs-1 position-absolute ms-6"><span class="path1"></span><span class="path2"></span></i>
<input type="text" id="search" class="form-control form-control-solid w-250px ps-15" placeholder="Cari Bimbingan & Konseling"/>
</div>
</div>
<div class="card-toolbar">
<!--begin::Menu-->
{{-- <button class="btn btn-light-primary btn-active-light-primary justify-content-end"
data-kt-menu-trigger="click" data-kt-menu-placement="bottom-end"
data-kt-menu-overflow="true">
<i class="ki-outline ki-filter fs-1 me-n1"></i>
<span class="mb-0">Filter</span>
</button> --}}
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary fw-semibold w-300px"
data-kt-menu="true">
<div class="menu-item px-3">
<div class="menu-content fs-6 text-dark fw-bold px-3 py-4">Filter By</div>
</div>
<div class="separator mb-3 opacity-75"></div>
<div class="menu-item px-3" data-kt-docs-table-filter="status_type">
<div class="form-check mb-4">
<input class="form-check-input" name="status" type="radio" value="" id="flexCheckDefault" />
<label class="form-check-label" for="flexCheckDefault">
All
</label>
</div>
<div class="form-check mb-4">
<input class="form-check-input" name="status" type="radio" value="1" id="flexCheckDefault" />
<label class="form-check-label" for="flexCheckDefault">
Menunggu Respon
</label>
</div>
<div class="form-check mb-4">
<input class="form-check-input" name="status" type="radio" value="2" id="flexCheckDefault" />
<label class="form-check-label" for="flexCheckDefault">
User telah membalas
</label>
</div>
<div class="form-check mb-4">
<input class="form-check-input" name="status" type="radio" value="3" id="flexCheckDefault" />
<label class="form-check-label" for="flexCheckDefault">
Admin/Wali telah membalas
</label>
</div>
<div class="form-check mb-4">
<input class="form-check-input" name="status" type="radio" value="4" id="flexCheckDefault" />
<label class="form-check-label" for="flexCheckDefault">
Kasus ditutup
</label>
</div>
<div class="d-flex justify-content-end py-3">
<button type="reset" class="btn btn-light btn-active-light-primary me-2" data-kt-menu-dismiss="true" data-kt-docs-table-filter="reset">Atur Ulang</button>
<button type="submit" class="btn btn-primary" data-kt-menu-dismiss="true" data-kt-docs-table-filter="filter">Terapkan</button>
</div>
</div>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="data-table" class="table align-middle table-row-dashed fs-6 gy-5">
<thead>
<tr class="text-start text-gray-400 fw-bold fs-7 text-uppercase gs-0">
<th>ID</th>
<th>Subjek</th>
<th>Siswa</th>
<th>Jenis B.K</th>
<th>Status</th>
<th>Status Approval</th>
<th>Kasus</th>
<th>Created</th>
<th>Chat</th>
</tr>
</thead>
<tbody class="text-gray-600 fw-semibold"></tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</section>
@push('scripts')
<script src="{{ frontend('plugins/custom/datatables/datatables.bundle.js') }}"></script>
<script type="text/javascript">
$(function () {
var table = $('#data-table').DataTable({
processing: true,
serverSide: true,
ajax: "{{ site_url('konselor', 'ticket') }}",
order: [[5, 'desc']],
stateSave: true,
columns: [
{data: null, name: 'id'},
{data: 'title-post', name: 'title-post'},
{data: 'siswa', name: 'siswa'},
{data: 'jenis', name: 'jenis'},
{data: 'status', name: 'status'},
{data: 'approval', name: 'approval', orderable: false, searchable: false},
{data: 'priority', name: 'priority'},
{data: 'created_at', name: 'created_at'},
{data: null, name: null, orderable: false, searchable: false},
],
columnDefs: [
{
targets: -1,
data: null,
orderable: false,
render: function (data, type, row) {
let text = ``;
if(row.is_approval_konselor == 3) {
text += `
<div class="menu-item px-3">
<a href="{{ site_url('konselor', 'ticket/accept') }}/${row.id}" class="menu-link px-3" data-kt-docs-table-filter="delete_row">
Terima Permintaan
</a>
</div>
<div class="menu-item px-3">
<a href="{{ site_url('konselor', 'ticket/declined') }}/${row.id}" class="menu-link px-3" data-kt-docs-table-filter="delete_row">
Tolak Permintaan
</a>
</div>
`;
}
return `
<a href="#" class="btn btn-light btn-active-light-primary btn-sm" data-kt-menu-trigger="click" data-kt-menu-placement="bottom-end" data-kt-menu-flip="top-end">
Aksi
</a>
<!--begin::Menu-->
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-bold fs-7 w-125px py-4" data-kt-menu="true">
<div class="menu-item px-3">
<a href="{{ site_url('konselor', 'ticket/view') }}/${row.id}" class="menu-link px-3" data-kt-docs-table-filter="delete_row">
Lihat Pesan
</a>
</div>
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" data-url="{{ site_url('konselor', 'ticket/delete') }}/${row.id}" class="menu-link px-3 deleteContent">
Hapus Aduan
</a>
</div>
<!--end::Menu item-->
${text}
</div>
<!--end::Menu-->
`;
},
}
],
createdRow: function (row, data, dataIndex) {
// Set the sequential number starting from 1
$('td', row).eq(0).html(dataIndex + 1);
}
});
// Filter Datatable
var handleFilterDatatable = () => {
// Select filter options
filterStatus = document.querySelectorAll('[data-kt-docs-table-filter="status_type"] [name="status"]');
const filterButton = document.querySelector('[data-kt-docs-table-filter="filter"]');
$('#btnTerapkan').on('click', function(e) {
var startDate = $('#start_date').val();
var endDate = $('#end_date').val();
var subjek = $('#subjek').val();
var jenis = $('#jenis').val();
var status = $('#status').val();
var kasus = $('#kasus').val();
var filterParams = {
startDate: startDate,
endDate: endDate,
subjek: subjek,
jenis: jenis,
status: status,
kasus: kasus
};
table.search(JSON.stringify(filterParams)).draw();
});
// Filter datatable on submit
filterButton.addEventListener('click', function () {
let statusValue = 'status|';
filterStatus.forEach(r => {
if (r.checked) {
statusValue = 'status|' + r.value;
}
if (statusValue === 'status|') {
statusValue = 'status|';
}
});
table.search(statusValue).draw();
});
}
// Reset Filter
var handleResetForm = () => {
const resetButton = document.querySelector('[data-kt-docs-table-filter="reset"]');
resetButton.addEventListener('click', function () {
filterStatus[0].checked = true;
table.search('').draw();
});
}
table.on('draw', function () {
handleFilterDatatable();
handleResetForm();
KTMenu.createInstances();
});
table.search('').draw();
// #myInput is a <input type="text"> element
$('#search').on('keyup change', function () {
table.search('user|' + this.value).draw();
});
$('#data-table').on('click', '.deleteContent', function() {
var url = $(this).data('url');
$('#exampleModal').modal('show', {
backdrop: 'static'
});
$('.link').attr('href', url)
})
});
</script>
@endpush
@include('components.theme.pages.footer')