/** * @param EntityDatatable $datatable * @param $query * @return \Illuminate\Http\JsonResponse * @throws \Exception */ public function createDatatable(EntityDatatable $datatable, $query) { $table = Datatable::query($query); if ($datatable->isBulkEdit) { $table->addColumn('checkbox', function ($model) { $can_edit = Auth::user()->hasPermission('edit_all') || isset($model->user_id) && Auth::user()->id == $model->user_id; return !$can_edit ? '' : '<input type="checkbox" name="ids[]" value="' . $model->public_id . '" ' . Utils::getEntityRowClass($model) . '>'; }); } foreach ($datatable->columns() as $column) { // set visible to true by default if (count($column) == 2) { $column[] = true; } list($field, $value, $visible) = $column; if ($visible) { $table->addColumn($field, $value); $orderColumns[] = $field; } } if (count($datatable->actions())) { $this->createDropdown($datatable, $table); } return $table->orderColumns($orderColumns)->make(); }