|
@@ -461,6 +461,32 @@ class Column
|
|
|
return $this;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Display column using a grid row action.
|
|
|
+ *
|
|
|
+ * @param string $action
|
|
|
+ *
|
|
|
+ * @return $this
|
|
|
+ */
|
|
|
+ public function action($action)
|
|
|
+ {
|
|
|
+ if (!is_subclass_of($action, RowAction::class)) {
|
|
|
+ throw new \InvalidArgumentException("Action class [$action] must be sub-class of [Dcat\Admin\Grid\RowAction]");
|
|
|
+ }
|
|
|
+
|
|
|
+ $grid = $this->grid;
|
|
|
+
|
|
|
+ return $this->display(function ($_, $column) use ($action, $grid) {
|
|
|
+ /** @var RowAction $action */
|
|
|
+ $action = $action::make();
|
|
|
+
|
|
|
+ return $action
|
|
|
+ ->setGrid($grid)
|
|
|
+ ->setColumn($column)
|
|
|
+ ->setRow($this);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* If has display callbacks.
|
|
|
*
|