remove list trashed data in classification
This commit is contained in:
parent
8de64a00dd
commit
01a8b500a4
@ -11,9 +11,10 @@
|
||||
|
||||
class ClassificationController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
public function index(Request $request){
|
||||
return view('dashboard.classifications.index', [
|
||||
'title' => 'Klasifikasi'
|
||||
'title' => 'Klasifikasi',
|
||||
'filter' => $request->input('filter', null)
|
||||
]);
|
||||
}
|
||||
|
||||
@ -60,7 +61,7 @@ public function update(ClassificationRequest $request, $id){
|
||||
}
|
||||
|
||||
public function show($id){
|
||||
$classification = Classification::find(decrypt_id($id));
|
||||
$classification = Classification::withTrashed()->find(decrypt_id($id));
|
||||
|
||||
return view('dashboard.classifications.show', [
|
||||
'title' => 'Detail Klasifikasi',
|
||||
|
||||
@ -36,12 +36,19 @@ class DatatableController extends Controller
|
||||
public function classification(Request $request){
|
||||
if ($request->ajax()) {
|
||||
|
||||
$data = Classification::with(['subClassifications'])->get();
|
||||
if($request->input('filter') === 'deleted'){
|
||||
$data = Classification::with(['subClassifications'])->onlyTrashed()->get();
|
||||
}else{
|
||||
$data = Classification::with(['subClassifications'])->get();
|
||||
}
|
||||
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('status', function ($data) {
|
||||
if ($data->status == '0') {
|
||||
if(filled($data->deleted_at)){
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Dihapus</span>';
|
||||
}else if ($data->status == '0') {
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Nonaktif</span>';
|
||||
}else{
|
||||
return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Aktif</span>';
|
||||
@ -82,15 +89,15 @@ public function classification(Request $request){
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role([1])) {
|
||||
if (is_role([1]) && !filled($data->deleted_at)) {
|
||||
$dropdown .= '<li><a href="'.$addSubClassificationUrl.'"><em class="icon ni ni-plus"></em><span>Tambah Sub Klasifikasi</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
if (is_role([1]) && !filled($data->deleted_at)) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
if (is_role([1]) && !filled($data->deleted_at)) {
|
||||
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
}
|
||||
@ -113,7 +120,10 @@ public function classification(Request $request){
|
||||
public function subClassification(Request $request){
|
||||
if ($request->ajax()) {
|
||||
|
||||
$classificationParam = $request->input('classification', null);
|
||||
if($request->input('filter') === 'deleted'){
|
||||
$data = SubClassification::with(['classification'])->onlyTrashed()->get();
|
||||
}else{
|
||||
$classificationParam = $request->input('classification', null);
|
||||
if ($classificationParam) {
|
||||
$classification = Classification::where('id', '=', decrypt_id($classificationParam))->first();
|
||||
|
||||
@ -130,6 +140,7 @@ public function subClassification(Request $request){
|
||||
$query->withTrashed();
|
||||
}])->get();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return DataTables::of($data)
|
||||
@ -138,7 +149,9 @@ public function subClassification(Request $request){
|
||||
return $data->classification->name;
|
||||
})
|
||||
->addColumn('status', function ($data) {
|
||||
if ($data->status == '0') {
|
||||
if(filled($data->deleted_at)){
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Dihapus</span>';
|
||||
}else if ($data->status == '0') {
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Nonaktif</span>';
|
||||
}else{
|
||||
return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Aktif</span>';
|
||||
@ -167,14 +180,17 @@ public function subClassification(Request $request){
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role([1])) {
|
||||
if (is_role([1]) && !filled($data->deleted_at)) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
if (is_role([1]) && !filled($data->deleted_at)) {
|
||||
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus sub klasifikasi '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
}
|
||||
// else{
|
||||
// $dropdown .= '<li><a href="javascript:void(0);" onclick="restoreItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin mengembalikan sub klasifikasi '.$data->name.'? Item ini akan dipulihkan!\')"><em class="icon ni ni-unarchive"></em><span>Pulihkan</span></a></li>';
|
||||
// }
|
||||
|
||||
$dropdown .= '</ul>
|
||||
</div>
|
||||
|
||||
@ -17,6 +17,7 @@ public function index(Request $request){
|
||||
$viewData = [
|
||||
'title' => 'Sub Klasifikasi',
|
||||
'classification' => $request->input('classification', null),
|
||||
'filter' => $request->input('filter', null)
|
||||
];
|
||||
|
||||
return view('dashboard.sub-classifications.index', $viewData);
|
||||
@ -78,7 +79,7 @@ public function update(SubClassificationRequest $request, $id){
|
||||
}
|
||||
|
||||
public function show($id){
|
||||
$subClassification = SubClassification::with(['classification'])->find(decrypt_id($id));
|
||||
$subClassification = SubClassification::with(['classification'])->withTrashed()->find(decrypt_id($id));
|
||||
|
||||
return view('dashboard.sub-classifications.show', [
|
||||
'title' => 'Detail Sub Klasifikasi',
|
||||
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class SubClassification extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'sub_classifications';
|
||||
|
||||
protected $fillable = [
|
||||
@ -17,7 +20,7 @@ class SubClassification extends Model
|
||||
];
|
||||
|
||||
public function classification(){
|
||||
return $this->belongsTo(Classification::class, 'classification_id', 'id');
|
||||
return $this->belongsTo(Classification::class, 'classification_id', 'id')->withTrashed();
|
||||
}
|
||||
|
||||
public function issues(){
|
||||
|
||||
@ -17,18 +17,6 @@
|
||||
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="toggle-expand-content" data-content="pageMenu">
|
||||
<ul class="nk-block-tools g-3">
|
||||
{{-- <li>
|
||||
<div class="drodown">
|
||||
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt no-bdr">
|
||||
<li><a href="#"><span>Last 30 Days</span></a></li>
|
||||
<li><a href="#"><span>Last 6 Months</span></a></li>
|
||||
<li><a href="#"><span>Last 1 Years</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li> --}}
|
||||
<li class="nk-block-tools-opt"><a href="{{route('dashboard.classifications.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -46,9 +34,9 @@
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama</th>
|
||||
<th>Status</th>
|
||||
<th>Sub Klasifikasi</th>
|
||||
<th>Isu</th>
|
||||
<th>Status</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -31,18 +31,16 @@
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
@switch($classification->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Aktif</span></span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
@if (filled($classification->deleted_at))
|
||||
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
|
||||
@elseif ($classification->status == 0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span>
|
||||
@elseif ($classification->status == 1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Aktif</span></span>
|
||||
@else
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
@ -68,6 +66,12 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Dibuat Pada</span>
|
||||
<span class="profile-ud-value">{{idn_date($classification->created_at, 'l, d F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
@ -86,7 +90,9 @@
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
@if (!filled($classification->deleted_at))
|
||||
<a href="{{route('dashboard.classifications.edit', ['id' => encrypt_id($classification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
|
||||
@endif
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
|
||||
@ -17,18 +17,6 @@
|
||||
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="toggle-expand-content" data-content="pageMenu">
|
||||
<ul class="nk-block-tools g-3">
|
||||
{{-- <li>
|
||||
<div class="drodown">
|
||||
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt no-bdr">
|
||||
<li><a href="#"><span>Last 30 Days</span></a></li>
|
||||
<li><a href="#"><span>Last 6 Months</span></a></li>
|
||||
<li><a href="#"><span>Last 1 Years</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li> --}}
|
||||
<li class="nk-block-tools-opt"><a href="{{route('dashboard.sub.classifications.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -49,18 +49,22 @@
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
@switch($subClassification->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Aktif</span></span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
@if (filled($subClassification->deleted_at))
|
||||
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
|
||||
@elseif ($subClassification->status == 0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span>
|
||||
@elseif ($subClassification->status == 1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Aktif</span></span>
|
||||
@else
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Dibuat Pada</span>
|
||||
<span class="profile-ud-value">{{idn_date($subClassification->created_at, 'l, d F Y')}}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
@ -80,7 +84,9 @@
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
@if (!filled($subClassification->deleted_at))
|
||||
<a href="{{route('dashboard.sub.classifications.edit', ['id' => encrypt_id($subClassification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
|
||||
@endif
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
|
||||
@ -27,22 +27,22 @@
|
||||
$('#classificationsTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.classifications.data') }}',
|
||||
ajax: '{{ route('dashboard.classifications.data', ["filter" => $filter]) }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'status', name: 'status' },
|
||||
{ data: 'sub_classifications', name: 'sub_classifications' },
|
||||
{ data: 'issues', name: 'issues' },
|
||||
{ data: 'status', name: 'status' },
|
||||
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'created_at', name: 'created_at', visible: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
columnDefs: [
|
||||
{ targets: 0, width: 'auto' },
|
||||
{ targets: 2, width: '7%' },
|
||||
{ targets: 2, width: '10%' },
|
||||
{ targets: 3, width: '10%' },
|
||||
{ targets: 4, width: '10%' },
|
||||
{ targets: 4, width: '7%' },
|
||||
{ targets: 5, width: 'auto' },
|
||||
{
|
||||
targets: [1],
|
||||
@ -75,7 +75,7 @@
|
||||
$('#subClassificationsTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.sub.classifications.data', ["classification" => $classification]) }}',
|
||||
ajax: '{{ route('dashboard.sub.classifications.data', ["classification" => $classification, "filter" => $filter]) }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'classification', name: 'classification' },
|
||||
|
||||
@ -46,6 +46,54 @@ function deleteItem(url, message) {
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function restoreItem(url, message) {
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: message,
|
||||
icon: 'question',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Ya, pulihkan!',
|
||||
cancelButtonText: 'Batal',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: url,
|
||||
success: function(response) {
|
||||
$('#usersTable').DataTable().ajax.reload();
|
||||
Swal.fire(
|
||||
'Terhapus!',
|
||||
response.message,
|
||||
'success'
|
||||
).then(() => {
|
||||
location.reload();
|
||||
});
|
||||
},
|
||||
error: function(xhr) {
|
||||
Swal.fire(
|
||||
'Terjadi kesalahan!',
|
||||
xhr.responseText,
|
||||
'error'
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$.ajaxSetup({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user