name = $name; $this->builder = $builder; $this->title = $this->formatLabel($title); } /** * Set parent model for relation. * * @param Fluent $model * * @return $this|Fluent */ public function model(Fluent $model = null) { if ($model === null) { return $this->model; } $this->model = $model; return $this; } /** * Render this relation panel. * * @return string */ public function render() { $view = call_user_func($this->builder, $this->model); if ($view instanceof Show) { return $this->renderTitle().$view->render(); } if (! $view instanceof Grid) { return $this->renderTitle().$view; } $view->setName($this->name) ->disableFilterButton() ->disableBatchDelete() ->disableFilter(); $filter = $view->filter() ->expand() ->withoutInputBorder() ->hiddenResetButtonText() ->expand() ->style('padding:0 0 5px;left:-5px;'); $filter = "
{$filter->render()}
"; return $this->renderTitle().$filter.$view->render(); } /** * @return string */ protected function renderTitle() { return <<
{$this->title}
EOF; } }