N°4468 - Add data-resource-id meta-data on all buttons

This commit is contained in:
Molkobain
2021-11-22 15:44:27 +01:00
parent f57785e422
commit bd52f4fefb
6 changed files with 13 additions and 6 deletions

View File

@@ -2332,6 +2332,8 @@ class MenuBlock extends DisplayBlock
$sTarget = isset($aAction['target']) ? $aAction['target'] : '';
$oActionButton = ButtonUIBlockFactory::MakeLinkNeutral($sUrl, $sLabel, $sIconClass, $sTarget, utils::Sanitize($sActionId, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER));
// ResourceId should not be sanitized
$oActionButton->AddDataAttribute('resource-id', $sActionId);
$oActionButton->AddCSSClasses(['ibo-action-button', 'ibo-regular-action-button']);
if (empty($sLabel)) {
if (empty($aAction['tooltip'])) {

View File

@@ -94,6 +94,11 @@ class Button extends UIBlock
*/
public function __construct(string $sLabel, string $sId = null, string $sTooltip = '', string $sIconClass = '', string $sActionType = self::DEFAULT_ACTION_TYPE, string $sColorScheme = self::DEFAULT_COLOR_SCHEME, string $sJsCode = '', string $sOnClickJsCode = '')
{
// We only use resource ID (not sanitized) on button for now, but this might be reworked back into \UIBlock if needed
if (!is_null($sId)) {
$this->AddDataAttribute('resource-id', $sId);
}
parent::__construct($sId);
$this->sLabel = $sLabel;

View File

@@ -107,7 +107,7 @@ abstract class UIBlock implements iUIBlock
/** @var array Cache for the CSS classes of a block inheritance. Key is the block class, value is an array of CSS classes */
private static $aBlocksInheritanceCSSClassesCache = [];
/** @var string $sId */
/** @var string ID of the block */
protected $sId;
/**

View File

@@ -1,7 +1,7 @@
{% extends 'base/components/popover-menu/item/layout.html.twig' %}
{% block iboPopoverMenuItem %}
<a id="{{ oUIBlock.GetID() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}" data-role="ibo-popover-menu--item" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" onclick="{{ oUIBlock.GetJsCode()|escape }}"
<a id="{{ oUIBlock.GetID() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}" data-role="ibo-popover-menu--item" data-resource-id="{{ oUIBlock.GetUID() }}" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" onclick="{{ oUIBlock.GetJsCode()|escape }}"
{% if oUIBlock.GetDataAttributes() %}
{% for sName, sValue in oUIBlock.GetDataAttributes() %}
data-{{ sName }}="{{ sValue }}"

View File

@@ -1,7 +1,7 @@
{% extends 'base/components/popover-menu/item/layout.html.twig' %}
{% block iboPopoverMenuItem %}
<a id="{{ oUIBlock.GetID() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}" data-role="ibo-popover-menu--item" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" target="{{ oUIBlock.GetTarget() }}"
<a id="{{ oUIBlock.GetID() }}" class="{{ oUIBlock.GetBlocksInheritanceCSSClassesAsString() }} {{ oUIBlock.GetAdditionalCSSClassesAsString() }}" data-role="ibo-popover-menu--item" data-resource-id="{{ oUIBlock.GetUID() }}" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" target="{{ oUIBlock.GetTarget() }}"
{% if oUIBlock.HasDataAttributes() %}
{% for sName, sValue in oUIBlock.GetDataAttributes() %}
data-{{ sName }}="{{ sValue }}"

View File

@@ -18,7 +18,7 @@
oFavoriteButton[0].click();
}
else{
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:Modify"]');
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-resource-id="UI:Menu:Modify"]');
if(oPopupItemButton[0]){
oPopupItemButton[0].click();
}
@@ -31,7 +31,7 @@
oFavoriteButton[0].click();
}
else{
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:Delete"]');
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-resource-id="UI:Menu:Delete"]');
if(oPopupItemButton[0]){
oPopupItemButton[0].click();
}
@@ -44,7 +44,7 @@
oFavoriteButton[0].click();
}
else{
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:New"]');
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-resource-id="UI:Menu:New"]');
if(oPopupItemButton[0]){
oPopupItemButton[0].click();
}