grid = $grid;
}
public function style(string $style)
{
$this->style = $style;
return $this;
}
public function background(string $value)
{
$this->background = $value;
return $this;
}
public function click(bool $value = true)
{
$this->rowClickable = $value;
return $this;
}
public function titleColumn(string $value)
{
$this->titleColumn = $value;
return $this;
}
public function renderHeader()
{
return <<
HTML;
}
public function renderColumn($row, $id)
{
$this->setupScript();
return <<
EOT;
}
protected function setupScript()
{
$clickable = $this->rowClickable ? 'true' : 'false';
$background = $this->background ?: Admin::color()->dark20();
Admin::script(
<<grid->getRowName()}-checkbox',
selectAllSelector: '.{$this->grid->getSelectAllName()}',
clickRow: {$clickable},
background: '{$background}',
});
Dcat.grid.addSelector(selector, '{$this->grid->getName()}');
JS
);
}
protected function getTitle($row, $id)
{
if ($key = $this->titleColumn) {
$label = Arr::get($row->toArray(), $key);
if ($label !== null && $label !== '') {
return $label;
}
return $id;
}
$label = $row->name ?: $row->title;
return $label ?: ($row->username ?: $id);
}
}