From 984f3d4db0371fc62e34de03c7f6f65554494783 Mon Sep 17 00:00:00 2001 From: Andreas Fernandez <a.fernandez@scripting-base.de> Date: Mon, 29 Feb 2016 09:07:40 +0100 Subject: [PATCH] [BUGFIX] Do not scroll on top using actions on multipleSideBySide This patch prevents scrolling to top when using the actions buttons in multipleSideBySide elements. Change-Id: I0841b3f75afca8596725fc6c9e4621eaeeafc641 Resolves: #72973 Releases: master, 7.6 Reviewed-on: https://review.typo3.org/46955 Reviewed-by: Frank Naegler <frank.naegler@typo3.org> Tested-by: Frank Naegler <frank.naegler@typo3.org> Reviewed-by: Sebastian Fischer <typo3@evoweb.de> Tested-by: Sebastian Fischer <typo3@evoweb.de> Reviewed-by: Benni Mack <benni@typo3.org> Tested-by: Benni Mack <benni@typo3.org> --- .../Classes/Form/Element/AbstractFormElement.php | 10 +++++----- .../Resources/Public/JavaScript/FormEngine.js | 14 ++++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php b/typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php index 084abd2e9dcc..575342893484 100644 --- a/typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php +++ b/typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php @@ -591,7 +591,7 @@ abstract class AbstractFormElement extends AbstractNode if ($sSize >= 5) { $icons['L'][] = ' <a href="#" - class="btn btn-default t3-btn-moveoption-top" + class="btn btn-default t3js-btn-moveoption-top" data-fieldname="' . $fName . '" title="' . htmlspecialchars($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.move_to_top')) . '"> ' . $this->iconFactory->getIcon('actions-move-to-top', Icon::SIZE_SMALL)->render() . ' @@ -599,14 +599,14 @@ abstract class AbstractFormElement extends AbstractNode } $icons['L'][] = ' <a href="#" - class="btn btn-default t3-btn-moveoption-up" + class="btn btn-default t3js-btn-moveoption-up" data-fieldname="' . $fName . '" title="' . htmlspecialchars($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.move_up')) . '"> ' . $this->iconFactory->getIcon('actions-move-up', Icon::SIZE_SMALL)->render() . ' </a>'; $icons['L'][] = ' <a href="#" - class="btn btn-default t3-btn-moveoption-down" + class="btn btn-default t3js-btn-moveoption-down" data-fieldname="' . $fName . '" title="' . htmlspecialchars($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.move_down')) . '"> ' . $this->iconFactory->getIcon('actions-move-down', Icon::SIZE_SMALL)->render() . ' @@ -614,7 +614,7 @@ abstract class AbstractFormElement extends AbstractNode if ($sSize >= 5) { $icons['L'][] = ' <a href="#" - class="btn btn-default t3-btn-moveoption-bottom" + class="btn btn-default t3js-btn-moveoption-bottom" data-fieldname="' . $fName . '" title="' . htmlspecialchars($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.move_to_bottom')) . '"> ' . $this->iconFactory->getIcon('actions-move-to-bottom', Icon::SIZE_SMALL)->render() . ' @@ -649,7 +649,7 @@ abstract class AbstractFormElement extends AbstractNode if (!$params['readOnly'] && !$params['noDelete']) { $icons['L'][] = ' <a href="#" - class="btn btn-default t3-btn-removeoption" + class="btn btn-default t3js-btn-removeoption" onClick="' . $rOnClickInline . '" data-fieldname="' . $fName . '" title="' . htmlspecialchars($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.remove_selected')) . '"> diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js index 6f2ad5e677a0..6e9e1c5ccccf 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js @@ -569,7 +569,9 @@ define(['jquery', $(document).on('change', 'input,textarea,select', function() { // Keep track of input fields to set the dirty state FormEngine.isDirty = $(document).find('.has-change').length > 0; - }).on('click', '.t3-btn-moveoption-top, .t3-btn-moveoption-up, .t3-btn-moveoption-down, .t3-btn-moveoption-bottom, .t3-btn-removeoption', function(evt) { + }).on('click', '.t3js-btn-moveoption-top, .t3js-btn-moveoption-up, .t3js-btn-moveoption-down, .t3js-btn-moveoption-bottom, .t3js-btn-removeoption', function(evt) { + evt.preventDefault(); + // track the arrows "Up", "Down", "Clear" etc in multi-select boxes var $el = $(this) ,fieldName = $el.data('fieldname') @@ -577,15 +579,15 @@ define(['jquery', if ($listFieldEl.length > 0) { - if ($el.hasClass('t3-btn-moveoption-top')) { + if ($el.hasClass('t3js-btn-moveoption-top')) { FormEngine.moveOptionToTop($listFieldEl); - } else if ($el.hasClass('t3-btn-moveoption-up')) { + } else if ($el.hasClass('t3js-btn-moveoption-up')) { FormEngine.moveOptionUp($listFieldEl); - } else if ($el.hasClass('t3-btn-moveoption-down')) { + } else if ($el.hasClass('t3js-btn-moveoption-down')) { FormEngine.moveOptionDown($listFieldEl); - } else if ($el.hasClass('t3-btn-moveoption-bottom')) { + } else if ($el.hasClass('t3js-btn-moveoption-bottom')) { FormEngine.moveOptionToBottom($listFieldEl); - } else if ($el.hasClass('t3-btn-removeoption')) { + } else if ($el.hasClass('t3js-btn-removeoption')) { FormEngine.removeOption($listFieldEl); } -- GitLab