name = $name; $this->builder = $builder; $this->title = $this->formatLabel($title); } /** * Set parent model for relation. * * @param Fluent $model * * @return $this */ public function setModel(Fluent $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->getFilter() ->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; } }