mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
242 lines
4.6 KiB
PHP
242 lines
4.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
|
* @license http://opensource.org/licenses/AGPL-3.0
|
|
*/
|
|
|
|
namespace Combodo\iTop\Application\UI\Base\Component\Dashlet;
|
|
|
|
use Combodo\iTop\Application\UI\Base\tJSRefreshCallback;
|
|
use utils;
|
|
|
|
class DashletBadge extends DashletContainer
|
|
{
|
|
use tJSRefreshCallback;
|
|
|
|
public const BLOCK_CODE = 'ibo-dashlet-badge';
|
|
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/dashlet/dashlet-badge';
|
|
public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'base/components/dashlet/dashlet-badge';
|
|
public const DEFAULT_JS_FILES_REL_PATH = [
|
|
'js/components/dashlet/dashlet-badge.js',
|
|
];
|
|
|
|
/** @var string */
|
|
protected $sClassIconUrl;
|
|
/** @var string */
|
|
protected $sHyperlink;
|
|
/** @var string */
|
|
protected $iCount;
|
|
/** @var string */
|
|
protected $sClassLabel;
|
|
/**
|
|
* @var string
|
|
* @since 3.1.1 3.2.0
|
|
*/
|
|
protected $sClassDescription;
|
|
|
|
/** @var string */
|
|
protected $sCreateActionUrl;
|
|
/** @var string */
|
|
protected $sCreateActionLabel;
|
|
/** @var array */
|
|
protected $aRefreshParams;
|
|
|
|
/**
|
|
* DashletBadge constructor.
|
|
*
|
|
* @param string $sClassIconUrl
|
|
* @param string $sHyperlink
|
|
* @param string $iCount
|
|
* @param string $sClassLabel
|
|
* @param string|null $sCreateActionUrl
|
|
* @param string|null $sCreateActionLabel
|
|
* @param array $aRefreshParams
|
|
*/
|
|
public function __construct(
|
|
string $sClassIconUrl,
|
|
string $sHyperlink,
|
|
string $iCount,
|
|
string $sClassLabel,
|
|
?string $sCreateActionUrl = '',
|
|
?string $sCreateActionLabel = '',
|
|
array $aRefreshParams = []
|
|
) {
|
|
parent::__construct();
|
|
|
|
$this->sClassIconUrl = $sClassIconUrl;
|
|
$this->sHyperlink = $sHyperlink;
|
|
$this->iCount = $iCount;
|
|
$this->sClassLabel = $sClassLabel;
|
|
$this->sCreateActionUrl = $sCreateActionUrl;
|
|
$this->sCreateActionLabel = $sCreateActionLabel;
|
|
$this->aRefreshParams = $aRefreshParams;
|
|
$this->sClassDescription = '';
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetCreateActionUrl(): ?string
|
|
{
|
|
return $this->sCreateActionUrl;
|
|
}
|
|
|
|
/**
|
|
* @param string|null $sCreateActionUrl
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetCreateActionUrl(?string $sCreateActionUrl)
|
|
{
|
|
$this->sCreateActionUrl = $sCreateActionUrl;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetCreateActionLabel(): ?string
|
|
{
|
|
return $this->sCreateActionLabel;
|
|
}
|
|
|
|
/**
|
|
* @param string|null $sCreateActionLabel
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetCreateActionLabel(?string $sCreateActionLabel)
|
|
{
|
|
$this->sCreateActionLabel = $sCreateActionLabel;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetClassIconUrl(): string
|
|
{
|
|
return $this->sClassIconUrl;
|
|
}
|
|
|
|
/**
|
|
* @param string $sClassIconUrl
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetClassIconUrl(string $sClassIconUrl)
|
|
{
|
|
$this->sClassIconUrl = $sClassIconUrl;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetHyperlink(): string
|
|
{
|
|
return $this->sHyperlink;
|
|
}
|
|
|
|
/**
|
|
* @param string $sHyperlink
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetHyperlink(string $sHyperlink)
|
|
{
|
|
$this->sHyperlink = $sHyperlink;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetCount(): string
|
|
{
|
|
return $this->iCount;
|
|
}
|
|
|
|
/**
|
|
* @param string $iCount
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetCount(string $iCount)
|
|
{
|
|
$this->iCount = $iCount;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function GetClassLabel(): string
|
|
{
|
|
return $this->sClassLabel;
|
|
}
|
|
|
|
/**
|
|
* @param string $sClassLabel
|
|
*
|
|
* @return DashletBadge
|
|
*/
|
|
public function SetClassLabel(string $sClassLabel)
|
|
{
|
|
$this->sClassLabel = $sClassLabel;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
* @since 3.1.1 3.2.0
|
|
*/
|
|
public function GetClassDescription(): string
|
|
{
|
|
return $this->sClassDescription;
|
|
}
|
|
|
|
/**
|
|
* @param string $sClassDescription
|
|
*
|
|
* @return DashletBadge
|
|
* @since 3.1.1 3.2.0
|
|
*/
|
|
public function SetClassDescription(string $sClassDescription)
|
|
{
|
|
$this->sClassDescription = $sClassDescription;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return bool
|
|
* @since 3.1.1
|
|
*/
|
|
public function HasClassDescription(): bool
|
|
{
|
|
return utils::IsNotNullOrEmptyString($this->sClassDescription);
|
|
}
|
|
|
|
public function GetJSRefresh(): string
|
|
{
|
|
return "$('#".$this->sId."').block();
|
|
$.post('ajax.render.php?operation=refreshDashletCount&style=count',
|
|
".json_encode($this->aRefreshParams).",
|
|
function(data){
|
|
$('#".$this->sId."').find('.ibo-dashlet-badge--action-list-count').html(data.count);
|
|
$('#".$this->sId."').unblock();
|
|
});
|
|
|
|
$('#".$this->sId."').unblock();";
|
|
}
|
|
|
|
}
|