mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°4378 Restore keyboard shortcuts behavior for object details
This commit is contained in:
@@ -2331,7 +2331,7 @@ class MenuBlock extends DisplayBlock
|
||||
}
|
||||
|
||||
$sTarget = isset($aAction['target']) ? $aAction['target'] : '';
|
||||
$oActionButton = ButtonUIBlockFactory::MakeLinkNeutral($sUrl, $sLabel, $sIconClass, $sTarget, $sActionId);
|
||||
$oActionButton = ButtonUIBlockFactory::MakeLinkNeutral($sUrl, $sLabel, $sIconClass, $sTarget, utils::Sanitize($sActionId, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER));
|
||||
$oActionButton->AddCSSClasses(['ibo-action-button', 'ibo-regular-action-button']);
|
||||
if (empty($sLabel)) {
|
||||
if (empty($aAction['tooltip'])) {
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuItem
|
||||
|
||||
use ApplicationPopupMenuItem;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
use utils;
|
||||
|
||||
/**
|
||||
* Class PopoverMenuItem
|
||||
@@ -56,7 +57,7 @@ class PopoverMenuItem extends UIBlock
|
||||
*/
|
||||
protected function GenerateId()
|
||||
{
|
||||
return static::BLOCK_CODE.'-'.$this->oPopupMenuItem->GetUID();
|
||||
return parent::GenerateId().'--'.utils::GetSafeId($this->oPopupMenuItem->GetUID());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,4 +149,16 @@ class PopoverMenuItem extends UIBlock
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @uses oPopupMenuItem
|
||||
* @uses \ApplicationPopupMenuItem::GetUID()
|
||||
*/
|
||||
public function GetUID()
|
||||
{
|
||||
return $this->oPopupMenuItem->GetUID();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -347,7 +347,7 @@ abstract class UIBlock implements iUIBlock
|
||||
protected function GenerateId()
|
||||
{
|
||||
$sUniqId = uniqid(static::BLOCK_CODE.'-', true);
|
||||
$sUniqId = str_replace('.', '-', $sUniqId);
|
||||
$sUniqId = utils::Sanitize($sUniqId, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER);
|
||||
|
||||
return $sUniqId;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends 'base/components/popover-menu/item/layout.html.twig' %}
|
||||
|
||||
{% block iboPopoverMenuItem %}
|
||||
<a class="ibo-popover-menu--item" data-role="ibo-popover-menu--item" href="{{ oUIBlock.GetUrl() }}" onclick="{{ oUIBlock.GetJsCode()|escape }}"
|
||||
<a id="{{ oUIBlock.GetID() }}" class="ibo-popover-menu--item" data-role="ibo-popover-menu--item" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" onclick="{{ oUIBlock.GetJsCode()|escape }}"
|
||||
{% if oUIBlock.GetDataAttributes() %}
|
||||
{% for sName, sValue in oUIBlock.GetDataAttributes() %}
|
||||
data-{{ sName }}="{{ sValue }}"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends 'base/components/popover-menu/item/layout.html.twig' %}
|
||||
|
||||
{% block iboPopoverMenuItem %}
|
||||
<a class="ibo-popover-menu--item" data-role="ibo-popover-menu--item" href="{{ oUIBlock.GetUrl() }}" target="{{ oUIBlock.GetTarget() }}"
|
||||
<a id="{{ oUIBlock.GetID() }}" class="ibo-popover-menu--item" data-role="ibo-popover-menu--item" data-uid="{{ oUIBlock.GetUID() }}" href="{{ oUIBlock.GetUrl() }}" target="{{ oUIBlock.GetTarget() }}"
|
||||
{% if oUIBlock.HasDataAttributes() %}
|
||||
{% for sName, sValue in oUIBlock.GetDataAttributes() %}
|
||||
data-{{ sName }}="{{ sValue }}"
|
||||
|
||||
@@ -13,15 +13,42 @@
|
||||
|
||||
{% block iboKeyboardShortcutsHandlers %}
|
||||
$('#{{ oUIBlock.GetId() }}').on('edit_object', function(){
|
||||
$(this).find('button[name="UI:Menu:Modify"]').click();
|
||||
let oFavoriteButton = $(this).find('#UIMenuModify');
|
||||
if(oFavoriteButton[0]){
|
||||
oFavoriteButton[0].click();
|
||||
}
|
||||
else{
|
||||
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:Modify"]');
|
||||
if(oPopupItemButton[0]){
|
||||
oPopupItemButton[0].click();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ oUIBlock.GetId() }}').on('delete_object', function(){
|
||||
$(this).find('button[name="UI:Menu:Delete"]').click();
|
||||
let oFavoriteButton = $(this).find('#UIMenuDelete');
|
||||
if(oFavoriteButton[0]){
|
||||
oFavoriteButton[0].click();
|
||||
}
|
||||
else{
|
||||
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:Delete"]');
|
||||
if(oPopupItemButton[0]){
|
||||
oPopupItemButton[0].click();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ oUIBlock.GetId() }}').on('new_object', function(){
|
||||
$(this).find('button[name="UI:Menu:New"]').click();
|
||||
let oFavoriteButton = $(this).find('#UIMenuNew');
|
||||
if(oFavoriteButton[0]){
|
||||
oFavoriteButton[0].click();
|
||||
}
|
||||
else{
|
||||
let oPopupItemButton = $('[data-role="ibo-popover-menu"]').find('[data-uid="UI:Menu:New"]');
|
||||
if(oPopupItemButton[0]){
|
||||
oPopupItemButton[0].click();
|
||||
}
|
||||
}
|
||||
});
|
||||
{% if oUIBlock.GetObjectMode() == constant('cmdbAbstractObject::ENUM_OBJECT_MODE_EDIT') or oUIBlock.GetObjectMode() == constant('cmdbAbstractObject::ENUM_OBJECT_MODE_CREATE') %}
|
||||
$('#{{ oUIBlock.GetId() }}').on('save_object', function(){
|
||||
|
||||
Reference in New Issue
Block a user