edit log - audit dan log - system

This commit is contained in:
elimsuhendra 2024-04-04 16:14:50 +07:00
parent 69d8be9b5f
commit 00b785dbae
7 changed files with 224 additions and 17 deletions

View File

@ -58,10 +58,10 @@
$content = $model->get('context');
return view('logs::system._details', compact('content'));
})
->addColumn('action', function (Collection $model) {
return view('logs::system._action-menu', compact('model'));
});
// ->addColumn('action', function (Collection $model) {
// return view('logs::system._action-menu', compact('model'));
// });
}
/**
@ -121,11 +121,11 @@
Column::make('message'),
Column::make('level'),
Column::make('date')->width(130),
Column::computed('action')
->exportable(false)
->printable(false)
->addClass('text-center')
->responsivePriority(-1),
// Column::computed('action')
// ->exportable(false)
// ->printable(false)
// ->addClass('text-center')
// ->responsivePriority(-1),
Column::make('environment')->addClass('none'),
Column::make('file_path')->title(__('Log Path'))->addClass('none'),
Column::make('context')->addClass('none'),

View File

@ -5,9 +5,20 @@
use App\Http\Controllers\Controller;
use Modules\Logs\DataTables\AuditLogsDataTable;
use Spatie\Activitylog\Models\Activity;
use Illuminate\Support\Facades\Auth;
class AuditLogsController extends Controller
{
public $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::guard('web')->user();
return $next($request);
});
}
/**
* Display a listing of the resource.
*
@ -27,9 +38,15 @@
*/
public function destroy($id)
{
if (is_null($this->user) || !$this->user->can('logs.delete')) {
abort(403, 'Sorry !! You are Unauthorized to delete any data !');
}
$activity = Activity::find($id);
// Delete from db
$activity->delete();
echo json_encode(['status' => 'success', 'message' => 'Data deleted successfully.']);
}
}

View File

@ -1,7 +1,21 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
<!--begin::Action--->
<td class="text-end">
<button data-destroy="{{ route('logs.audit.destroy', $model->id) }}" class="btn btn-sm btn-light btn-active-light-primary">
<!-- <button data-destroy="{{ route('logs.audit.destroy', $model->id) }}" class="btn btn-sm btn-light btn-active-light-primary">
Delete
</button>
</button> -->
@can('logs.delete')
{!! Form::open(['method' => 'DELETE','route' => [$route[0].'.audit.destroy', $model->id],'class'=>'']) !!}
{{ Form::button(
getIcon("trash", "fs-1 text-danger","duotune"),
[ 'type' => 'submit',
'class' => 'delete btn btn-icon btn-bg-light btn-active-light-danger btn-sm']
)
}}
{!! Form::close() !!}
@endcan
</td>
<!--end::Action--->

View File

@ -6,3 +6,102 @@
@section('scripts')
{{ $dataTable->scripts() }}
@endsection
@push('customscript')
@php
$route = explode('.', Route::currentRouteName());
@endphp
<script>
$(document).ready(function() {
$("#searchbox").on("keyup search input paste cut", function () {
LaravelDataTables["audit-log-table"].search(this.value).draw();
});
const documentTitle = 'Log Audit Report';
$(function () {
var buttons = new $.fn.dataTable.Buttons(LaravelDataTables["audit-log-table"], {
buttons: [
// {
// extend: 'copyHtml5',
// title: documentTitle
// },
{
extend: 'excelHtml5',
title: documentTitle
},
{
extend: 'csvHtml5',
title: documentTitle
},
{
extend: 'pdfHtml5',
title: documentTitle
},
{
extend: 'print',
title: documentTitle
}
]
}).container().appendTo($('#kt_datatable_example_buttons'));
// Hook dropdown menu click event to datatable export buttons
const exportButtons = document.querySelectorAll('#kt_datatable_example_export_menu [data-kt-export]');
exportButtons.forEach(exportButton => {
exportButton.addEventListener('click', e => {
e.preventDefault();
console.log(e.target.getAttribute('data-kt-export'));
// Get clicked export value
const exportValue = e.target.getAttribute('data-kt-export');
const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
// Trigger click event on hidden datatable export buttons
target.click();
});
});
// delete
LaravelDataTables["audit-log-table"].on('click', '.delete', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (response) {
const obj = JSON.parse(response);
toastr.success(obj.message, 'Success!', {timeOut: 5000});
LaravelDataTables["audit-log-table"].ajax.reload();
}
});
}
})
});
// delete
});
});
</script>
@endpush
@section('styles')
<style>
.dataTables_filter {
display: none;
}
</style>
@endsection

View File

@ -2,6 +2,83 @@
<!--begin::Card-->
<div class="card">
<div class="card-header border-0 pt-5">
<div class="card-title align-items-start flex-column">
<div class="d-flex align-items-center position-relative my-1">
<!--begin::Svg Icon | path: icons/duotune/general/gen021.svg-->
<span class="svg-icon svg-icon-1 position-absolute ms-6">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<rect opacity="0.5" x="17.0365" y="15.1223" width="8.15546" height="2" rx="1" transform="rotate(45 17.0365 15.1223)" fill="currentColor"></rect>
<path d="M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z" fill="currentColor"></path>
</svg>
</span>
<!--end::Svg Icon-->
<input type="text" id="searchbox"
class="form-control form-control-solid border border-gray-300 w-250px ps-15"
placeholder="Search">
</div>
</div>
<!--begin::Export buttons-->
<div id="kt_datatable_example_1_export" class="d-none"></div>
<!--end::Export buttons-->
<div class="card-toolbar">
<!--begin::Export dropdown-->
<button type="button" class="btn btn-light-primary" data-kt-menu-trigger="click"
data-kt-menu-placement="bottom-end">
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"
data-kt-menu="true">
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="copy">
Copy to clipboard
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="excel">
Export as Excel
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="csv">
Export as CSV
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="pdf">
Export as PDF
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="print">
Print
</a>
</div>
<!--end::Menu item-->
</div>
<!--begin::Hide default export buttons-->
<div id="kt_datatable_example_buttons" class="d-none"></div>
<!--end::Hide default export buttons-->
</div>
</div>
<!--begin::Card body-->
<div class="card-body pt-6">
@include('logs::audit._table')

View File

@ -19,7 +19,7 @@
LaravelDataTables["system-log-table"].search(this.value).draw();
});
const documentTitle = 'System Report';
const documentTitle = 'Log System Report';
$(function () {
var buttons = new $.fn.dataTable.Buttons(LaravelDataTables["system-log-table"], {

View File

@ -78,13 +78,13 @@
<!--end::Hide default export buttons-->
</div>
<!--begin::Card body-->
<div class="card-body pt-6">
@include('logs::system._table')
</div>
<!--end::Card body-->
</div>
<!--begin::Card body-->
<div class="card-body pt-6">
@include('logs::system._table')
</div>
<!--end::Card body-->
</div>
<!--end::Card-->