diff --git a/sources/Application/UI/Base/Component/Button/ButtonUIBlockFactory.php b/sources/Application/UI/Base/Component/Button/ButtonUIBlockFactory.php index a844f45135..60c207c604 100644 --- a/sources/Application/UI/Base/Component/Button/ButtonUIBlockFactory.php +++ b/sources/Application/UI/Base/Component/Button/ButtonUIBlockFactory.php @@ -429,7 +429,7 @@ class ButtonUIBlockFactory extends AbstractUIBlockFactory return $oButton; } elseif ($oPopupItem instanceof SeparatorPopupMenuItem) { - $oSeparator = new ButtonSeparator($oPopupItem->GetUID()); + $oSeparator = new ButtonSeparator(utils::GetSafeId($oPopupItem->GetUID())); $oSeparator->SetCSSClasses($oPopupItem->GetCssClasses()); return $oSeparator; } @@ -491,7 +491,7 @@ class ButtonUIBlockFactory extends AbstractUIBlockFactory return $oButton; } elseif ($oPopupItem instanceof SeparatorPopupMenuItem) { - $oSeparator = new ButtonSeparator($oPopupItem->GetUID()); + $oSeparator = new ButtonSeparator(utils::GetSafeId($oPopupItem->GetUID())); $oSeparator->SetCSSClasses($oPopupItem->GetCssClasses()); return $oSeparator; } diff --git a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelAction.php b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelAction.php index c11952e10b..aa32028d2c 100644 --- a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelAction.php +++ b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelAction.php @@ -48,10 +48,10 @@ abstract class ActivityPanelAction extends UIBlock protected array $aPopupItems = []; protected ?PopoverMenu $oPopoverMenu = null; - public function __construct(string $sLabel, string $sIconClass, ?string $sTooltip = null, ?string $sId = null) + public function __construct(string $sLabel, string $sIconClass, ?string $sTooltip, string $sUid) { - parent::__construct($sId); - $this->sUid = $sId ?? $this->GetId(); + parent::__construct(utils::GetSafeId($sUid)); + $this->sUid = $sUid; $this->sLabel = $sLabel; $this->sIconClass = $sIconClass; $this->sTooltip = $sTooltip; diff --git a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionFactory.php b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionFactory.php index 9af7b8b02b..f07f957d9d 100644 --- a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionFactory.php +++ b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionFactory.php @@ -110,11 +110,12 @@ class ActivityPanelActionFactory public static function MakeFromApplicationPopupItem($oPopupItem): ?ActivityPanelAction { if ($oPopupItem instanceof JSPopupMenuItem) { + $sUid = $oPopupItem->GetUID(); $oAction = new ActivityPanelActionJS( $oPopupItem->GetLabel(), $oPopupItem->GetIconClass(), $oPopupItem->GetTooltip(), - $oPopupItem->GetUID() + $sUid ); $oAction->SetJsCode($oPopupItem->GetJsCode()); $oAction->SetUrl($oPopupItem->GetUrl()); @@ -124,11 +125,12 @@ class ActivityPanelActionFactory return $oAction; } elseif ($oPopupItem instanceof URLPopupMenuItem) { + $sUid = $oPopupItem->GetUID(); $oAction = new ActivityPanelActionURL( $oPopupItem->GetLabel(), $oPopupItem->GetIconClass(), $oPopupItem->GetTooltip(), - $oPopupItem->GetUID() + $sUid ); $oAction->SetUrl($oPopupItem->GetUrl()); $oAction->SetTarget($oPopupItem->GetTarget()); diff --git a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionSeparator.php b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionSeparator.php index 76117e8d38..0bac4fd17a 100644 --- a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionSeparator.php +++ b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanelAction/ActivityPanelActionSeparator.php @@ -33,11 +33,10 @@ class ActivityPanelActionSeparator extends ActivityPanelAction public const DEFAULT_JS_TEMPLATE_REL_PATH = null; /** - * @param string|null $sId + * @param string $sUid */ - public function __construct(?string $sId = null) + public function __construct(string $sUid) { - parent::__construct('', '', null, $sId); + parent::__construct('', '', null, $sUid); } } - diff --git a/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickAction.php b/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickAction.php index b16c8101ee..819d79cc51 100644 --- a/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickAction.php +++ b/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickAction.php @@ -20,6 +20,7 @@ namespace Combodo\iTop\Application\UI\Base\Layout\TopBar\TopBarAction; +use Combodo\iTop\Application\UI\Base\Common\Action\tActionCommon; use Combodo\iTop\Application\UI\Base\UIBlock; use utils; @@ -32,6 +33,8 @@ use utils; */ abstract class TopBarQuickAction extends UIBlock { + use tActionCommon; + // Overloaded constants public const BLOCK_CODE = 'ibo-top-bar-quick-action'; public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/layouts/top-bar/top-bar-quick-action/layout'; @@ -41,62 +44,26 @@ abstract class TopBarQuickAction extends UIBlock public const DEFAULT_CSS_FILES_REL_PATH = [ ]; - protected string $sLabel; - protected string $sIconClass; - protected ?string $sTooltip = null; - /** * TopBarAction constructor. * * @param string $sLabel * @param string $sIconClass * @param string|null $sTooltip - * @param string|null $sId + * @param string $sUid * * @throws \CoreException * @throws \DictExceptionMissingString */ - public function __construct(string $sLabel, string $sIconClass, ?string $sTooltip = null, ?string $sId = null) + public function __construct(string $sLabel, string $sIconClass, ?string $sTooltip, string $sUid) { - parent::__construct($sId); + parent::__construct(utils::GetSafeId($sUid)); + $this->sUid = $sUid; $this->sLabel = $sLabel; $this->sIconClass = $sIconClass; $this->sTooltip = $sTooltip; } - public function GetLabel(): string - { - return $this->sLabel; - } - - public function SetLabel(string $sLabel): static - { - $this->sLabel = $sLabel; - return $this; - } - - public function GetIconClass(): string - { - return $this->sIconClass; - } - - public function SetIconClass(string $sIconClass): TopBarQuickAction - { - $this->sIconClass = $sIconClass; - return $this; - } - - public function GetTooltip(): ?string - { - return $this->sTooltip; - } - - public function SetTooltip(?string $sTooltip): TopBarQuickAction - { - $this->sTooltip = $sTooltip; - return $this; - } - public function GetAriaAttributes(): array { $aDefaultValues = []; diff --git a/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickActionSeparator.php b/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickActionSeparator.php index f2ff8876f8..c900a41a90 100644 --- a/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickActionSeparator.php +++ b/sources/Application/UI/Base/Layout/TopBar/TopBarQuickAction/TopBarQuickActionSeparator.php @@ -38,8 +38,8 @@ class TopBarQuickActionSeparator extends TopBarQuickAction * @throws \CoreException * @throws \DictExceptionMissingString */ - public function __construct(?string $sId = null) + public function __construct(string $sUid) { - parent::__construct('', '', null, $sId); + parent::__construct('', '', null, $sUid); } }