Merge branch 'dev' of https://git.putrakuningan.com/putrakuningan/Logs into elim
This commit is contained in:
commit
e42885311e
@ -2,7 +2,10 @@
|
||||
|
||||
namespace Modules\Logs\DataTables;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
||||
use Spatie\Activitylog\Models\Activity;
|
||||
use Yajra\DataTables\EloquentDataTable;
|
||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
||||
use Yajra\DataTables\Html\Column;
|
||||
use Yajra\DataTables\Services\DataTable;
|
||||
|
||||
@ -11,43 +14,41 @@
|
||||
/**
|
||||
* Build DataTable class.
|
||||
*
|
||||
* @param mixed $query Results from query() method.
|
||||
* @param QueryBuilder $query Results from query() method.
|
||||
*
|
||||
* @return \Yajra\DataTables\DataTableAbstract
|
||||
*
|
||||
*/
|
||||
public function dataTable($query)
|
||||
public function dataTable(QueryBuilder $query)
|
||||
: EloquentDataTable
|
||||
{
|
||||
return datatables()
|
||||
->eloquent($query)
|
||||
->rawColumns(['description', 'properties', 'action'])
|
||||
->editColumn('id', function (Activity $model) {
|
||||
return $model->id;
|
||||
})
|
||||
->editColumn('subject_id', function (Activity $model) {
|
||||
if (!isset($model->subject)) {
|
||||
return '';
|
||||
}
|
||||
return (new EloquentDataTable($query))->rawColumns([
|
||||
'description',
|
||||
'properties',
|
||||
'action'
|
||||
])->editColumn('id', function (Activity $model) {
|
||||
return $model->id;
|
||||
})->editColumn('subject_id', function (Activity $model) {
|
||||
if (!isset($model->subject)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (isset($model->subject->name)) {
|
||||
return $model->subject->name ?? $model->subject->user()->first()->name;
|
||||
}
|
||||
if (isset($model->subject->name)) {
|
||||
return $model->subject->name ?? $model->subject->user()->first()->name;
|
||||
}
|
||||
|
||||
return "-";//$model->subject->user()->first()->name;
|
||||
})
|
||||
->editColumn('causer_id', function (Activity $model) {
|
||||
return $model->causer ? $model->causer->name : __('System');
|
||||
})
|
||||
->editColumn('properties', function (Activity $model) {
|
||||
$content = $model->properties;
|
||||
return "-";//$model->subject->user()->first()->name;
|
||||
})->editColumn('causer_id', function (Activity $model) {
|
||||
return $model->causer ? $model->causer->name : __('System');
|
||||
})->editColumn('properties', function (Activity $model) {
|
||||
$content = $model->properties;
|
||||
|
||||
return view('logs::audit._details', compact('content'));
|
||||
})
|
||||
->editColumn('created_at', function (Activity $model) {
|
||||
return $model->created_at->format('d M, Y H:i:s');
|
||||
})
|
||||
->addColumn('action', function (Activity $model) {
|
||||
return view('logs::audit._action-menu', compact('model'));
|
||||
});
|
||||
return view('logs::audit._details', compact('content'));
|
||||
})->editColumn('created_at', function (Activity $model) {
|
||||
return $model->created_at->format('d M, Y H:i:s');
|
||||
})->addColumn('action', function (Activity $model) {
|
||||
return view('logs::audit._action-menu', compact('model'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,6 +59,7 @@
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function query(Activity $model)
|
||||
: QueryBuilder
|
||||
{
|
||||
return $model->newQuery();
|
||||
}
|
||||
@ -68,20 +70,21 @@
|
||||
* @return \Yajra\DataTables\Html\Builder
|
||||
*/
|
||||
public function html()
|
||||
: HtmlBuilder
|
||||
{
|
||||
return $this->builder()
|
||||
->setTableId('audit-log-table')
|
||||
->columns($this->getColumns())
|
||||
->minifiedAjax()
|
||||
->stateSave(true)
|
||||
->orderBy(6)
|
||||
->responsive()
|
||||
->autoWidth(false)
|
||||
->parameters([
|
||||
'scrollX' => false,
|
||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
||||
])
|
||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
||||
->setTableId('audit-log-table')
|
||||
->columns($this->getColumns())
|
||||
->minifiedAjax()
|
||||
->stateSave(true)
|
||||
->orderBy(6)
|
||||
->responsive()
|
||||
->autoWidth(false)
|
||||
->parameters([
|
||||
'scrollX' => false,
|
||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
||||
])
|
||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -90,6 +93,7 @@
|
||||
* @return array
|
||||
*/
|
||||
protected function getColumns()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
Column::make('id')->title('Log ID'),
|
||||
@ -100,10 +104,10 @@
|
||||
Column::make('causer_id')->title(__('Causer')),
|
||||
Column::make('created_at'),
|
||||
Column::computed('action')
|
||||
->exportable(false)
|
||||
->printable(false)
|
||||
->addClass('text-center')
|
||||
->responsivePriority(-1),
|
||||
->exportable(false)
|
||||
->printable(false)
|
||||
->addClass('text-center')
|
||||
->responsivePriority(-1),
|
||||
Column::make('properties')->addClass('none'),
|
||||
];
|
||||
}
|
||||
|
@ -2,10 +2,15 @@
|
||||
|
||||
namespace Modules\Logs\DataTables;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Str;
|
||||
use Jackiedo\LogReader\Exceptions\UnableToRetrieveLogFilesException;
|
||||
use Jackiedo\LogReader\LogReader;
|
||||
use Spatie\Activitylog\Models\Activity;
|
||||
use Yajra\DataTables\CollectionDataTable;
|
||||
use Yajra\DataTables\EloquentDataTable;
|
||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
||||
use Yajra\DataTables\Html\Column;
|
||||
use Yajra\DataTables\Services\DataTable;
|
||||
|
||||
@ -14,54 +19,49 @@
|
||||
/**
|
||||
* Build DataTable class.
|
||||
*
|
||||
* @param mixed $query Results from query() method.
|
||||
* @param QueryBuilder $query Results from query() method.
|
||||
*
|
||||
* @return \Yajra\DataTables\DataTableAbstract
|
||||
*/
|
||||
public function dataTable($query)
|
||||
public function dataTable(Collection $query)
|
||||
: CollectionDataTable
|
||||
{
|
||||
return datatables()
|
||||
->collection($query)
|
||||
->rawColumns(['action', 'level'])
|
||||
->editColumn('id', function (Collection $model) {
|
||||
return Str::limit($model->get('id'), 5, '');
|
||||
})
|
||||
->editColumn('file_path', function (Collection $model) {
|
||||
return Str::limit($model->get('file_path'));
|
||||
})
|
||||
->editColumn('message', function (Collection $model) {
|
||||
return Str::limit($model->get('context')->message, 95);
|
||||
})
|
||||
->editColumn('date', function (Collection $model) {
|
||||
return $model->get('date')->format('d M, Y H:i:s');
|
||||
})
|
||||
->editColumn('level', function (Collection $model) {
|
||||
$styles = [
|
||||
'emergency' => 'danger',
|
||||
'alert' => 'warning',
|
||||
'critical' => 'danger',
|
||||
'error' => 'danger',
|
||||
'warning' => 'warning',
|
||||
'notice' => 'success',
|
||||
'info' => 'info',
|
||||
'debug' => 'primary',
|
||||
];
|
||||
$style = 'info';
|
||||
if (isset($styles[$model->get('level')])) {
|
||||
$style = $styles[$model->get('level')];
|
||||
}
|
||||
$value = $model->get('level');
|
||||
return (new CollectionDataTable($query))->rawColumns([
|
||||
'action',
|
||||
'level'
|
||||
])->editColumn('id', function (Collection $model) {
|
||||
return Str::limit($model->get('id'), 5, '');
|
||||
})->editColumn('file_path', function (Collection $model) {
|
||||
return Str::limit($model->get('file_path'));
|
||||
})->editColumn('message', function (Collection $model) {
|
||||
return Str::limit($model->get('context')->message, 95);
|
||||
})->editColumn('date', function (Collection $model) {
|
||||
return $model->get('date')->format('d M, Y H:i:s');
|
||||
})->editColumn('level', function (Collection $model) {
|
||||
$styles = [
|
||||
'emergency' => 'danger',
|
||||
'alert' => 'warning',
|
||||
'critical' => 'danger',
|
||||
'error' => 'danger',
|
||||
'warning' => 'warning',
|
||||
'notice' => 'success',
|
||||
'info' => 'info',
|
||||
'debug' => 'primary',
|
||||
];
|
||||
$style = 'info';
|
||||
if (isset($styles[$model->get('level')])) {
|
||||
$style = $styles[$model->get('level')];
|
||||
}
|
||||
$value = $model->get('level');
|
||||
|
||||
return '<div class="badge badge-light-' . $style . ' fw-bolder">' . $value . '</div>';
|
||||
})
|
||||
->editColumn('context', function (Collection $model) {
|
||||
$content = $model->get('context');
|
||||
return '<div class="badge badge-light-' . $style . ' fw-bolder">' . $value . '</div>';
|
||||
})->editColumn('context', function (Collection $model) {
|
||||
$content = $model->get('context');
|
||||
|
||||
return view('logs::system._details', compact('content'));
|
||||
})
|
||||
->addColumn('action', function (Collection $model) {
|
||||
return view('logs::system._action-menu', compact('model'));
|
||||
});
|
||||
return view('logs::system._details', compact('content'));
|
||||
})->addColumn('action', function (Collection $model) {
|
||||
return view('logs::system._action-menu', compact('model'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,12 +72,13 @@
|
||||
* @return Collection
|
||||
*/
|
||||
public function query(LogReader $model)
|
||||
: Collection
|
||||
{
|
||||
$data = collect();
|
||||
|
||||
$model->setLogPath(storage_path('logs'));
|
||||
|
||||
try {
|
||||
$data = $model->get()->merge($data);
|
||||
$data = $model->get();
|
||||
} catch (UnableToRetrieveLogFilesException $exception) {
|
||||
echo $exception->getMessage();
|
||||
exit;
|
||||
@ -87,6 +88,7 @@
|
||||
return (collect($a))->only(['id', 'date', 'environment', 'level', 'file_path', 'context']);
|
||||
});
|
||||
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
@ -96,17 +98,18 @@
|
||||
* @return \Yajra\DataTables\Html\Builder
|
||||
*/
|
||||
public function html()
|
||||
: HtmlBuilder
|
||||
{
|
||||
return $this->builder()
|
||||
->setTableId('system-log-table')
|
||||
->columns($this->getColumns())
|
||||
->minifiedAjax()
|
||||
->stateSave(true)
|
||||
->orderBy(3)
|
||||
->responsive()
|
||||
->autoWidth(false)
|
||||
->parameters(['scrollX' => false])
|
||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
||||
->setTableId('system-log-table')
|
||||
->columns($this->getColumns())
|
||||
->minifiedAjax()
|
||||
->stateSave(true)
|
||||
->orderBy(3)
|
||||
->responsive()
|
||||
->autoWidth(false)
|
||||
->parameters(['scrollX' => false])
|
||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,6 +118,7 @@
|
||||
* @return array
|
||||
*/
|
||||
protected function getColumns()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
Column::make('id')->title('Log ID')->width(50),
|
||||
@ -122,10 +126,10 @@
|
||||
Column::make('level'),
|
||||
Column::make('date')->width(130),
|
||||
Column::computed('action')
|
||||
->exportable(false)
|
||||
->printable(false)
|
||||
->addClass('text-center')
|
||||
->responsivePriority(-1),
|
||||
->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'),
|
||||
|
@ -3,6 +3,11 @@
|
||||
<!--end::Table-->
|
||||
|
||||
{{-- Inject Scripts --}}
|
||||
@section('scripts')
|
||||
@push('scripts')
|
||||
{{ $dataTable->scripts() }}
|
||||
@endsection
|
||||
<script>
|
||||
document.getElementById('search').addEventListener('keyup', function () {
|
||||
window.LaravelDataTables['audit-log-table'].search(this.value).draw();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
@ -1,7 +1,29 @@
|
||||
<x-default-layout>
|
||||
@section('title')
|
||||
Audit Logs
|
||||
@endsection
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{Breadcrumbs::render('logs.audit') }}
|
||||
@endsection
|
||||
|
||||
<!--begin::Card-->
|
||||
<div class="card">
|
||||
<!--begin::Card header-->
|
||||
<div class="card-header border-0 pt-6">
|
||||
<!--begin::Card title-->
|
||||
<div class="card-title">
|
||||
<!--begin::Search-->
|
||||
<div class="d-flex align-items-center position-relative my-1">
|
||||
{!! getIcon('magnifier','fs-3 position-absolute ms-5') !!}
|
||||
<input type="text" data-kt-user-table-filter="search" class="form-control form-control-solid w-250px ps-13" placeholder="Search Audit Logs" id="search"/>
|
||||
</div>
|
||||
<!--end::Search-->
|
||||
</div>
|
||||
<!--begin::Card title-->
|
||||
</div>
|
||||
<!--end::Card header-->
|
||||
|
||||
<!--begin::Card body-->
|
||||
<div class="card-body pt-6">
|
||||
@include('logs::audit._table')
|
||||
|
@ -3,6 +3,11 @@
|
||||
<!--end::Table-->
|
||||
|
||||
{{-- Inject Scripts --}}
|
||||
@section('scripts')
|
||||
@push('scripts')
|
||||
{{ $dataTable->scripts() }}
|
||||
@endsection
|
||||
<script>
|
||||
document.getElementById('search').addEventListener('keyup', function () {
|
||||
window.LaravelDataTables['system-log-table'].search(this.value).draw();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
@ -1,7 +1,29 @@
|
||||
<x-default-layout>
|
||||
@section('title')
|
||||
System Logs
|
||||
@endsection
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render('logs.system') }}
|
||||
@endsection
|
||||
|
||||
<!--begin::Card-->
|
||||
<div class="card">
|
||||
<!--begin::Card header-->
|
||||
<div class="card-header border-0 pt-6">
|
||||
<!--begin::Card title-->
|
||||
<div class="card-title">
|
||||
<!--begin::Search-->
|
||||
<div class="d-flex align-items-center position-relative my-1">
|
||||
{!! getIcon('magnifier','fs-3 position-absolute ms-5') !!}
|
||||
<input type="text" data-kt-user-table-filter="search" class="form-control form-control-solid w-250px ps-13" placeholder="Search System Logs" id="search"/>
|
||||
</div>
|
||||
<!--end::Search-->
|
||||
</div>
|
||||
<!--begin::Card title-->
|
||||
</div>
|
||||
<!--end::Card header-->
|
||||
|
||||
<!--begin::Card body-->
|
||||
<div class="card-body pt-6">
|
||||
@include('logs::system._table')
|
||||
|
19
Routes/breadcrumbs.php
Normal file
19
Routes/breadcrumbs.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
use Diglactic\Breadcrumbs\Breadcrumbs;
|
||||
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;
|
||||
|
||||
Breadcrumbs::for('logs', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('home');
|
||||
$trail->push('Logs', '#');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('logs.audit', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('logs');
|
||||
$trail->push('Audit Logs', route('logs.audit.index'));
|
||||
});
|
||||
|
||||
Breadcrumbs::for('logs.system', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('logs');
|
||||
$trail->push('System Logs', route('logs.system.index'));
|
||||
});
|
Loading…
Reference in New Issue
Block a user