edit log - audit dan log - system
This commit is contained in:
parent
69d8be9b5f
commit
00b785dbae
@ -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'),
|
||||
|
@ -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.']);
|
||||
}
|
||||
}
|
||||
|
@ -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--->
|
||||
|
@ -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
|
@ -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')
|
||||
|
@ -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"], {
|
||||
|
@ -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-->
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user