diff --git a/DataTables/FileManagementDataTable.php b/DataTables/FileManagementDataTable.php new file mode 100644 index 0000000..ee39b5c --- /dev/null +++ b/DataTables/FileManagementDataTable.php @@ -0,0 +1,118 @@ +filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $query->where('kode', 'like', "%" . $search['value'] . "%"); + } + }) + ->addColumn('directorat', function ($model) { + return $model->directorat->kode.'. '.$model->directorat->name; + }) + ->addColumn('sub_directorat', function ($model) { + return $model->sub_directorat->kode.'. '.$model->sub_directorat->name; + }) + ->addColumn('job', function ($model) { + return $model->job->kode.'. '.$model->job->name; + }) + ->addColumn('sub_job', function ($model) { + return $model->sub_job->kode.'. '.$model->sub_job->name; + }) + ->addColumn('sub_sub_job', function ($model) { + return $model->sub_sub_job->kode.'. '.$model->sub_sub_job->name; + }) + ->addColumn('status', function ($model) { + if($model->status == 1){ + return 'Approved'; + }elseif($model->status == 0){ + return 'Menunggu Approval'; + } + }) + ->addIndexColumn() + ->rawColumns(['status','action']) + ->addColumn('action', 'cetaklabel::app.document._action') + ->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(Document $model) + : QueryBuilder + { + return $model->newQuery(); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('document-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(1) + ->parameters([ + 'scrollX' => true, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get the dataTable columns definition. + */ + public function getColumns() + : array + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), + Column::make('kode'), + Column::make('directorat')->title('Direktorat'), + Column::make('sub_directorat')->title('Sub Direktorat'), + Column::make('job')->title('Pekerjaan'), + Column::make('sub_job')->title('Sub Pekerjaan'), + Column::make('sub_sub_job')->title('Sub Sub Pekerjaan'), + Column::computed('status'), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->width(60) + ->addClass('text-center'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Document_' . date('YmdHis'); + } + }