'dashboard-list-control']; public function __construct(Pane $pane) { $this->pane = $pane; $this->getAttributes() ->registerAttributeCallback('data-icinga-pane', function () { return $this->pane->getName(); }); } protected function getHtmlId(): string { return bin2hex($this->pane->getUuid()); } protected function getCollapsibleControlClass(): string { return 'dashlets-list-info'; } protected function createItemList(): BaseHtmlElement { $pane = $this->pane; $this->getAttributes()->set('data-toggle-element', '.dashlets-list-info'); $url = Url::fromPath(Dashboard::BASE_ROUTE . '/edit-pane') ->setParams(['home' => $pane->getHome()->getName(), 'pane' => $pane->getName()]); $this->assembleHeader($url, $pane->getTitle()); $list = HtmlElement::create('ul', ['class' => 'dashlet-item-list']); $url = Url::fromPath(Dashboard::BASE_ROUTE . '/new-dashlet'); $url->setParams([ 'home' => $pane->getHome()->getName(), 'pane' => $pane->getName() ]); foreach ($pane->getEntries() as $dashlet) { $list->addHtml(new DashletListItem($dashlet, true)); } return $list; } protected function createActionLink(): BaseHtmlElement { $url = Url::fromPath(Dashboard::BASE_ROUTE . '/new-dashlet'); $url->setParams([ 'home' => $this->pane->getHome()->getName(), 'pane' => $this->pane->getName() ]); return new ActionLink(t('Add Dashlet'), $url, 'plus', ['class' => 'add-dashlet']); } }