mirror of
https://github.com/Icinga/icingadb-web.git
synced 2026-05-28 04:36:06 -04:00
Since PHP 8.4 implicitly nullable parameter types are deprecated. Normalize scoped PHPDoc for nullable-parameter updates: use `?Type` instead of `Type|null` and remove column alignment. Co-authored-by: "Eric Lippmann <eric.lippmann@icinga.com>"
65 lines
1.3 KiB
PHP
65 lines
1.3 KiB
PHP
<?php
|
|
|
|
// SPDX-FileCopyrightText: 2019 Icinga GmbH <https://icinga.com>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
namespace Icinga\Module\Icingadb\Widget;
|
|
|
|
use ipl\Html\BaseHtmlElement;
|
|
use ipl\Orm\ResultSet;
|
|
use ipl\Web\Common\BaseTarget;
|
|
use ipl\Web\Url;
|
|
use ipl\Web\Widget\ActionLink;
|
|
|
|
class ShowMore extends BaseHtmlElement
|
|
{
|
|
use BaseTarget;
|
|
|
|
protected $defaultAttributes = ['class' => 'show-more'];
|
|
|
|
protected $tag = 'div';
|
|
|
|
/** @var ResultSet */
|
|
protected $resultSet;
|
|
|
|
/** @var Url */
|
|
protected $url;
|
|
|
|
/** @var ?string */
|
|
protected $label;
|
|
|
|
public function __construct(ResultSet $resultSet, Url $url, ?string $label = null)
|
|
{
|
|
$this->label = $label;
|
|
$this->resultSet = $resultSet;
|
|
$this->url = $url;
|
|
}
|
|
|
|
public function setLabel(string $label): self
|
|
{
|
|
$this->label = $label;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getLabel(): string
|
|
{
|
|
return $this->label ?: t('Show More');
|
|
}
|
|
|
|
public function renderUnwrapped(): string
|
|
{
|
|
if ($this->resultSet->hasMore()) {
|
|
return parent::renderUnwrapped();
|
|
}
|
|
|
|
return '';
|
|
}
|
|
|
|
protected function assemble(): void
|
|
{
|
|
if ($this->resultSet->hasMore()) {
|
|
$this->addHtml(new ActionLink($this->getLabel(), $this->url));
|
|
}
|
|
}
|
|
}
|