From a0901c4b7f2db488cb4fb3be2dd921a0308f4659 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:36:40 +0200 Subject: Adding upstream version 1.0.2. Signed-off-by: Daniel Baumann --- library/Icingadb/Common/BaseTableRowItem.php | 102 +++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 library/Icingadb/Common/BaseTableRowItem.php (limited to 'library/Icingadb/Common/BaseTableRowItem.php') diff --git a/library/Icingadb/Common/BaseTableRowItem.php b/library/Icingadb/Common/BaseTableRowItem.php new file mode 100644 index 0000000..d3e0036 --- /dev/null +++ b/library/Icingadb/Common/BaseTableRowItem.php @@ -0,0 +1,102 @@ + 'list-item']; + + /** @var object The associated list item */ + protected $item; + + /** @var BaseItemList The list where the item is part of */ + protected $list; + + protected $tag = 'li'; + + /** + * Create a new table row item + * + * @param object $item + * @param BaseItemList $list + */ + public function __construct($item, BaseItemList $list) + { + $this->item = $item; + $this->list = $list; + + $this->addAttributes($this->baseAttributes); + + $this->init(); + } + + abstract protected function assembleColumns(HtmlDocument $columns); + + abstract protected function assembleTitle(BaseHtmlElement $title); + + protected function assembleVisual(BaseHtmlElement $visual) + { + } + + protected function createColumn($content = null): BaseHtmlElement + { + return Html::tag('div', ['class' => 'col'], $content); + } + + protected function createColumns(): HtmlDocument + { + $columns = new HtmlDocument(); + + $this->assembleColumns($columns); + + return $columns; + } + + protected function createTitle(): BaseHtmlElement + { + $title = $this->createColumn()->addAttributes(['class' => 'title']); + + $this->assembleTitle($title); + + return $title; + } + + /** + * @return ?BaseHtmlElement + */ + protected function createVisual() + { + $visual = new HtmlElement('div', Attributes::create(['class' => 'visual'])); + + $this->assembleVisual($visual); + + return $visual->isEmpty() ? null : $visual; + } + + /** + * Initialize the list item + * + * If you want to adjust the list item after construction, override this method. + */ + protected function init() + { + } + + protected function assemble() + { + $this->add([ + $this->createVisual(), + $this->createTitle(), + $this->createColumns() + ]); + } +} -- cgit v1.2.3