addIndexColumn() ->addColumn('action', function (Onboarding $model) { $html = ''; $html .= ' '; $html .= ''; $html .= '
'; return $html; }) ->editColumn('status', function (Onboarding $model) { $statusClasses = [ 'pending' => 'badge bg-warning text-dark', 'in_progress' => 'badge bg-info text-dark', 'documents_submitted' => 'badge bg-primary', 'approved' => 'badge bg-success', 'rejected' => 'badge bg-danger', 'hold' => 'badge bg-secondary', ]; $statusText = ucfirst(str_replace('_', ' ', $model->status)); $class = $statusClasses[$model->status] ?? 'badge bg-dark'; return ''.$statusText.''; }) ->rawColumns(['action', 'status']); } public function query(Onboarding $model): QueryBuilder { return $this->service->get(['is_query' => true]); } public function html(): HtmlBuilder { return $this->builder() ->setTableId('Onboarding-table') ->columns($this->getColumns()) ->minifiedAjax() ->orderBy(1) ->selectStyleSingle() ->buttons([ // Button::make('add'), // Button::make('excel'), // Button::make('csv'), // Button::make('pdf'), // Button::make('print'), // Button::make('reset'), // Button::make('reload'), ]); } public function getColumns(): array { return [ Column::make('DT_RowIndex')->title('Sl no')->searchable(false)->orderable(false), Column::make('name')->title('Owner Name'), Column::make('restaurant_name')->title('Restaurant Name'), Column::make('phone')->title('Phone'), Column::make('restaurant_domain')->title('Domain'), Column::make('restaurant_address')->title('Address'), Column::make('restaurant_type')->title('Business Type'), Column::make('status')->title('Status'), Column::make('action') ->title('Action') ->searchable(false) ->orderable(false) ->printable(false), ]; } protected function filename(): string { return 'Onboarding-'.date('YmdHis'); } }