diff --git a/DataTables/AuditLogsDataTable.php b/DataTables/AuditLogsDataTable.php index ed0e1d8..8a740a4 100644 --- a/DataTables/AuditLogsDataTable.php +++ b/DataTables/AuditLogsDataTable.php @@ -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'), ]; } diff --git a/DataTables/SystemLogsDataTable.php b/DataTables/SystemLogsDataTable.php index 1fe2860..a3e9271 100644 --- a/DataTables/SystemLogsDataTable.php +++ b/DataTables/SystemLogsDataTable.php @@ -2,10 +2,14 @@ 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\EloquentDataTable; + use Yajra\DataTables\Html\Builder as HtmlBuilder; use Yajra\DataTables\Html\Column; use Yajra\DataTables\Services\DataTable; @@ -14,54 +18,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(QueryBuilder $query) + : EloquentDataTable { - 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 EloquentDataTable($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 '
' . $value . '
'; - }) - ->editColumn('context', function (Collection $model) { - $content = $model->get('context'); + return '
' . $value . '
'; + })->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,6 +71,7 @@ * @return Collection */ public function query(LogReader $model) + : QueryBuilder { $data = collect(); $model->setLogPath(storage_path('logs')); @@ -96,17 +96,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 +116,7 @@ * @return array */ protected function getColumns() + : array { return [ Column::make('id')->title('Log ID')->width(50), @@ -122,10 +124,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'),