diff --git a/templates/base/components/panel/layout.ready.js.twig b/templates/base/components/panel/layout.js.twig similarity index 73% rename from templates/base/components/panel/layout.ready.js.twig rename to templates/base/components/panel/layout.js.twig index 0e17d58ce..aca5525ac 100644 --- a/templates/base/components/panel/layout.ready.js.twig +++ b/templates/base/components/panel/layout.js.twig @@ -1,14 +1,15 @@ -{# Collapsible handler #} -{% block iboCollapsibleHandlers %} +{# @copyright Copyright (C) 2010-2021 Combodo SARL #} +{# @license http://opensource.org/licenses/AGPL-3.0 #} +{% block iboWidgetInstantiation %} + $('#{{ oUIBlock.GetId() }}').panel({ + is_header_visible_on_scroll: {{ oUIBlock.IsHeaderVisibleOnScroll|var_export }} + }); +{% endblock %} + +{% block iboMiscHandlers %} {% if oUIBlock.isCollapsible() %} $('#{{ oUIBlock.GetId() }}').find('[data-role="ibo-panel--collapsible-toggler"]').on('click', function(){ $('#{{ oUIBlock.GetId() }}').toggleClass('ibo-is-opened'); }); {% endif %} {% endblock %} - -{% block iboWidgetInstantiation %} - $('#{{ oUIBlock.GetId() }}').panel({ - is_header_visible_on_scroll: {{ oUIBlock.IsHeaderVisibleOnScroll|var_export }} - }); -{% endblock %} \ No newline at end of file diff --git a/templates/base/layouts/object/object-details/layout.js.twig b/templates/base/layouts/object/object-details/layout.js.twig index 77e47d719..ba16a60aa 100644 --- a/templates/base/layouts/object/object-details/layout.js.twig +++ b/templates/base/layouts/object/object-details/layout.js.twig @@ -1,32 +1,49 @@ -{# @copyright Copyright (C) 2010-2020 Combodo SARL #} +{# @copyright Copyright (C) 2010-2021 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} {% extends 'base/components/panel/layout.js.twig' %} -{% block iboKeyboardShortcutsHandlers %} - $('#{{ oUIBlock.GetId() }}').on('edit_object', function(){ - $(this).find('button[name="UI:Menu:Modify"]').click(); +{% block iboWidgetInstantiation %} + $('#{{ oUIBlock.GetId() }}').object_details({ + is_header_visible_on_scroll: {{ oUIBlock.IsHeaderVisibleOnScroll|var_export }} }); - - $('#{{ oUIBlock.GetId() }}').on('delete_object', function(){ - $(this).find('button[name="UI:Menu:Delete"]').click(); - }); - - $('#{{ oUIBlock.GetId() }}').on('new_object', function(){ - $(this).find('button[name="UI:Menu:New"]').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(){ - $(this).find('button[type="submit"][name=""][value=""]').click(); - }); - {% elseif oUIBlock.GetObjectMode() == constant('cmdbAbstractObject::ENUM_OBJECT_MODE_STIMULUS') %} - $('#{{ oUIBlock.GetId() }}').on('save_object', function(){ - $(this).find('button[type="submit"][name="submit"][value="submit"]').click(); - }); - {% endif %} {% endblock %} -{% block iboWidgetInstantiation %} -$('#{{ oUIBlock.GetId() }}').object_details({ - is_header_visible_on_scroll: {{ oUIBlock.IsHeaderVisibleOnScroll|var_export }} -}); -{% endblock %} \ No newline at end of file +{% block iboMiscHandlers %} + {{ parent() }} + + {% block iboKeyboardShortcutsHandlers %} + $('#{{ oUIBlock.GetId() }}').on('edit_object', function(){ + $(this).find('button[name="UI:Menu:Modify"]').click(); + }); + + $('#{{ oUIBlock.GetId() }}').on('delete_object', function(){ + $(this).find('button[name="UI:Menu:Delete"]').click(); + }); + + $('#{{ oUIBlock.GetId() }}').on('new_object', function(){ + $(this).find('button[name="UI:Menu:New"]').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(){ + $(this).find('button[type="submit"][name=""][value=""]').click(); + }); + {% elseif oUIBlock.GetObjectMode() == constant('cmdbAbstractObject::ENUM_OBJECT_MODE_STIMULUS') %} + $('#{{ oUIBlock.GetId() }}').on('save_object', function(){ + $(this).find('button[type="submit"][name="submit"][value="submit"]').click(); + }); + {% endif %} + {% endblock %} + + {% block iboPanelHeaderRightActionsHandlers %} + // Keep URL's hash parameters when clicking on a link of the header + $('#{{ oUIBlock.GetId() }}').on('click', '[data-role="ibo-panel--header-right"] a', function() { + const aMatches = /#(.*)$/.exec(window.location.href); + if (aMatches != null) { + currentHash = aMatches[1]; + if (/#(.*)$/.test(this.href)) { + this.href = this.href.replace(/#(.*)$/, '#'+currentHash); + } + } + }); + {% endblock %} +{% endblock %}