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; } 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')); }); } /** * Get query source of dataTable. * * @param Activity $model * * @return \Illuminate\Database\Eloquent\Builder */ public function query(Activity $model) : QueryBuilder { return $model->newQuery(); } /** * Optional method if you want to use html builder. * * @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'); } /** * Get columns. * * @return array */ protected function getColumns() : array { return [ Column::make('id')->title('Log ID'), Column::make('log_name')->title(__('Location')), Column::make('description'), Column::make('subject_type'), Column::make('subject_id')->title(__('Subject')), Column::make('causer_id')->title(__('Causer')), Column::make('created_at'), Column::computed('action') ->exportable(false) ->printable(false) ->addClass('text-center') ->responsivePriority(-1), Column::make('properties')->addClass('none'), ]; } /** * Get filename for export. * * @return string */ protected function filename() : string { return 'DataLogs_' . date('YmdHis'); } }