From 7a93d097b8a6017869ebf84744808e76cee0ab05 Mon Sep 17 00:00:00 2001 From: Andreas Fernandez <andreas.fernandez@aspedia.de> Date: Fri, 21 Nov 2014 11:27:57 +0100 Subject: [PATCH] [BUGFIX] EXT:lang: Hide useless UI if no language is selected In EXT:lang, the update button is displayed if no language is selected. Clicking on that button will display several FlashMessages and PHP throws an exception due to missing arguments. This patch takes care of it and simply hides the button if no language is selected. Furthermore it hides the righthand side of the table too. Resolves: #63124 Releases: master Change-Id: Ica69a257ff5f36eda789051b194ef33c47e699fc Reviewed-on: http://review.typo3.org/34436 Reviewed-by: Markus Klein <klein.t3@reelworx.at> Tested-by: Markus Klein <klein.t3@reelworx.at> Tested-by: Felix Kopp <felix-source@phorax.com> Reviewed-by: Tymoteusz Motylewski <t.motylewski@gmail.com> Tested-by: Tymoteusz Motylewski <t.motylewski@gmail.com> --- .../Classes/Controller/LanguageController.php | 4 +++- .../Domain/Model/LanguageSelectionForm.php | 2 +- .../Private/Templates/Language/Index.html | 15 +++++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/typo3/sysext/lang/Classes/Controller/LanguageController.php b/typo3/sysext/lang/Classes/Controller/LanguageController.php index b0a12dd29c46..172cc77bec57 100644 --- a/typo3/sysext/lang/Classes/Controller/LanguageController.php +++ b/typo3/sysext/lang/Classes/Controller/LanguageController.php @@ -78,10 +78,12 @@ class LanguageController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl $languageSelectionForm->setSelectedLanguages($this->languageRepository->findSelected()); } - if (empty($extensions)) { + $hasSelectedLanguages = !empty($languageSelectionForm->getSelectedLanguages()); + if ($hasSelectedLanguages && empty($extensions)) { $extensions = $this->extensionRepository->findAll(); } + $this->view->assign('hasSelectedLanguages', $hasSelectedLanguages); $this->view->assign('languageSelectionForm', $languageSelectionForm); $this->view->assign('extensions', $extensions); } diff --git a/typo3/sysext/lang/Classes/Domain/Model/LanguageSelectionForm.php b/typo3/sysext/lang/Classes/Domain/Model/LanguageSelectionForm.php index ccea98d73d2b..a7f752c187ec 100644 --- a/typo3/sysext/lang/Classes/Domain/Model/LanguageSelectionForm.php +++ b/typo3/sysext/lang/Classes/Domain/Model/LanguageSelectionForm.php @@ -52,7 +52,7 @@ class LanguageSelectionForm extends \TYPO3\CMS\Extbase\DomainObject\AbstractEnti /** * Setter for the selected languages * - * @param array $locale Selected languages + * @param array $selectedLanguages Selected languages * @return void */ public function setSelectedLanguages(array $selectedLanguages) { diff --git a/typo3/sysext/lang/Resources/Private/Templates/Language/Index.html b/typo3/sysext/lang/Resources/Private/Templates/Language/Index.html index 4bcd4191839b..f332826e57d2 100644 --- a/typo3/sysext/lang/Resources/Private/Templates/Language/Index.html +++ b/typo3/sysext/lang/Resources/Private/Templates/Language/Index.html @@ -3,9 +3,11 @@ <f:layout name="Default"/> <f:section name="iconButtons"> - <span class="menuItem updateItem"><lang:be.spriteIcon icon="actions-system-extension-download" title="{f:translate(key:'button.update')}" /><f:translate key="button.update"/></span> - - <span class="menuItem cancelItem"><lang:be.spriteIcon icon="status-status-permission-denied" title="{f:translate(key:'button.cancel')}" /><f:translate key="button.cancel"/></span> + <f:if condition="{hasSelectedLanguages}"> + <span class="menuItem updateItem"><lang:be.spriteIcon icon="actions-system-extension-download" title="{f:translate(key:'button.update')}" /><f:translate key="button.update"/></span> + + <span class="menuItem cancelItem"><lang:be.spriteIcon icon="status-status-permission-denied" title="{f:translate(key:'button.cancel')}" /><f:translate key="button.cancel"/></span> + </f:if> </f:section> @@ -13,7 +15,6 @@ <h1><f:translate key="header.module" /></h1> <f:flashMessages renderMode="div" /> - <table border="0" cellpadding="0" cellspacing="0"> <tr> <td class="languageSelectionListContainer"> @@ -21,8 +22,10 @@ <f:render partial="LanguageSelectionList" arguments="{_all}" /> </td> <td class="translationUpdateListContainer"> - <h3><f:translate key="header.translationUpdateList" /></h3> - <f:render partial="TranslationUpdateList" arguments="{_all}" /> + <f:if condition="{hasSelectedLanguages}"> + <h3><f:translate key="header.translationUpdateList" /></h3> + <f:render partial="TranslationUpdateList" arguments="{_all}" /> + </f:if> </td> </tr> </table> -- GitLab