From 47f98302d319b681cac3eba3133ed1f638d65aad Mon Sep 17 00:00:00 2001 From: jhaller <jan.haller@math.uzh.ch> Date: Fri, 12 Jan 2024 10:15:52 +0100 Subject: [PATCH] Refs #17498 - New default tooltips (No previous/next record available.). If r='last/first record' or r=0, nextBtn/previousBtn are rendered without text and default tooltip. Also, if r=0 no currentBtn is rendered. --- extension/Classes/Core/BuildFormBootstrap.php | 12 ++++++++---- extension/Classes/Core/Constants.php | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/extension/Classes/Core/BuildFormBootstrap.php b/extension/Classes/Core/BuildFormBootstrap.php index da29ad8b0..9c46556f9 100644 --- a/extension/Classes/Core/BuildFormBootstrap.php +++ b/extension/Classes/Core/BuildFormBootstrap.php @@ -1002,8 +1002,6 @@ class BuildFormBootstrap extends AbstractBuildForm { $firstRecordFlag = ($currentRecordIndex === array_key_first($recordIdArr)); $lastRecordFlag = ($currentRecordIndex === array_key_last($recordIdArr)); - $btnCurrent = $btnPreviousNextSqlArr[$currentRecordIndex][F_BTN_PREVIOUS_NEXT_SQL_BTN_CURRENT] ?? ''; - // r=0 disables both buttons if (!$currentRecordId) { $firstRecordFlag = true; @@ -1011,6 +1009,8 @@ class BuildFormBootstrap extends AbstractBuildForm { $btnPreviousNextLoopFlag = false; } + $btnCurrent = (!$currentRecordId) ? null : $btnPreviousNextSqlArr[$currentRecordIndex][F_BTN_PREVIOUS_NEXT_SQL_BTN_CURRENT] ?? ''; + // Keyword btnPrevious is used if ($btnPreviousGiven) { $btnPrevious = $btnPreviousNextSqlArr[$currentRecordIndex - 1][F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS] ?? null; @@ -1019,8 +1019,10 @@ class BuildFormBootstrap extends AbstractBuildForm { // btnPreviousNextLoop is not enabled and first record is currently selected // Button should be disabled if (!$btnPreviousNextLoopFlag && $firstRecordFlag) { - $btnPreviousArr = Token::explodeTokenString($btnPreviousNextSqlArr[$currentRecordIndex][F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS]); + $btnPreviousArr = Token::explodeTokenString($btnPreviousNextSqlArr[array_key_last($btnPreviousNextSqlArr)][F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS]); $btnPreviousArr['r'] = '3'; + $btnPreviousArr['t'] = ''; + $btnPreviousArr['o'] = F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS_TOOLTIP; $btnPrevious = KeyValueStringParser::unparse($btnPreviousArr, PARAM_KEY_VALUE_DELIMITER, PARAM_DELIMITER); } @@ -1046,8 +1048,10 @@ class BuildFormBootstrap extends AbstractBuildForm { // btnPreviousNextLoop is not enabled and last record is currently selected // Button should be disabled if (!$btnPreviousNextLoopFlag && $lastRecordFlag) { - $btnPreviousArr = Token::explodeTokenString($btnPreviousNextSqlArr[$currentRecordIndex][F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT]); + $btnPreviousArr = Token::explodeTokenString($btnPreviousNextSqlArr[array_key_first($recordIdArr)][F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT]); $btnPreviousArr['r'] = '3'; + $btnPreviousArr['t'] = ''; + $btnPreviousArr['o'] = F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT_TOOLTIP; $btnNext = KeyValueStringParser::unparse($btnPreviousArr, PARAM_KEY_VALUE_DELIMITER, PARAM_DELIMITER); } diff --git a/extension/Classes/Core/Constants.php b/extension/Classes/Core/Constants.php index cfa11c60d..084df1f0a 100644 --- a/extension/Classes/Core/Constants.php +++ b/extension/Classes/Core/Constants.php @@ -1242,8 +1242,8 @@ const F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT = 'btnNext'; const F_BTN_PREVIOUS_NEXT_SQL_BTN_CURRENT = 'btnCurrent'; const F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS_GLYPHICON = 'glyphicon glyphicon-arrow-left'; const F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT_GLYPHICON = 'glyphicon glyphicon-arrow-right'; -const F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS_TOOLTIP = 'The previous record can not be selected.'; -const F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT_TOOLTIP = 'The next record can not be selected.'; +const F_BTN_PREVIOUS_NEXT_SQL_BTN_PREVIOUS_TOOLTIP = 'No previous record available.'; +const F_BTN_PREVIOUS_NEXT_SQL_BTN_NEXT_TOOLTIP = 'No next record available.'; // Form Columns: Only in form file const F_FILE_FORM_ELEMENT = 'FormElement_ff'; // Key for FormElements array saved in Form File -- GitLab