From 9da44d792028cd966ee68d8dea7c333e58bacb17 Mon Sep 17 00:00:00 2001 From: Oliver Bartsch <bo@cedev.de> Date: Fri, 23 Feb 2024 16:04:09 +0100 Subject: [PATCH] [BUGFIX] Always set `action` argument for action ViewHelpers A couple of places (mostly paginations) are using the action ViewHelpers without providing the `action` argument. Those links will therefore fall back to the default action, which might be wrong e.g. in the backend user group listing. To preserve the current action on paginating, the corresponding action is now always set. Resolves: #103189 Related: #101729 Releases: main, 12.4 Change-Id: I1db9a637a4b320f90aae3a93fe903c939384ea3a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83117 Tested-by: core-ci <typo3@b13.com> Tested-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Oliver Bartsch <bo@cedev.de> --- .../Classes/Controller/BackendUserController.php | 6 +++--- .../Private/Partials/BackendUser/PaginatedList.html | 2 +- .../Partials/BackendUserGroup/PaginatedList.html | 2 +- .../Private/Partials/Filemount/PaginatedList.html | 2 +- .../Resources/Private/Partials/SimplePagination.html | 12 ++++++------ .../Partials/Backend/FormManager/Pagination.html | 12 ++++++------ 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/typo3/sysext/beuser/Classes/Controller/BackendUserController.php b/typo3/sysext/beuser/Classes/Controller/BackendUserController.php index d4522d7bbf96..4e4167684954 100644 --- a/typo3/sysext/beuser/Classes/Controller/BackendUserController.php +++ b/typo3/sysext/beuser/Classes/Controller/BackendUserController.php @@ -395,15 +395,15 @@ class BackendUserController extends ActionController $backendUser->pushModuleData($this->moduleData->getModuleIdentifier(), $this->moduleData->toArray()); - $backendUsers = $this->backendUserGroupRepository->findByFilter($userGroupDto); - $paginator = new QueryResultPaginator($backendUsers, $currentPage, 50); + $backendUserGroups = $this->backendUserGroupRepository->findByFilter($userGroupDto); + $paginator = new QueryResultPaginator($backendUserGroups, $currentPage, 50); $pagination = new SimplePagination($paginator); $compareGroupUidList = array_keys((array)$this->moduleData->get('compareGroupUidList', [])); $this->moduleTemplate->assignMultiple( [ 'paginator' => $paginator, 'pagination' => $pagination, - 'totalAmountOfBackendUserGroups' => $backendUsers->count(), + 'totalAmountOfBackendUserGroups' => $backendUserGroups->count(), 'compareGroupUidList' => array_map(static function ($value) { // uid as key and force value to 1 return 1; }, array_flip($compareGroupUidList)), diff --git a/typo3/sysext/beuser/Resources/Private/Partials/BackendUser/PaginatedList.html b/typo3/sysext/beuser/Resources/Private/Partials/BackendUser/PaginatedList.html index 02a848bc2721..31d14267d431 100644 --- a/typo3/sysext/beuser/Resources/Private/Partials/BackendUser/PaginatedList.html +++ b/typo3/sysext/beuser/Resources/Private/Partials/BackendUser/PaginatedList.html @@ -153,4 +153,4 @@ </table> </div> -<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination}" /> +<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'index'}" /> diff --git a/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html b/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html index d537a6355f57..ab80d82f7036 100644 --- a/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html +++ b/typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/PaginatedList.html @@ -120,6 +120,6 @@ </table> </div> -<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination}" /> +<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'groups'}" /> </html> diff --git a/typo3/sysext/beuser/Resources/Private/Partials/Filemount/PaginatedList.html b/typo3/sysext/beuser/Resources/Private/Partials/Filemount/PaginatedList.html index 3a7d3154176c..94a2c9e55886 100644 --- a/typo3/sysext/beuser/Resources/Private/Partials/Filemount/PaginatedList.html +++ b/typo3/sysext/beuser/Resources/Private/Partials/Filemount/PaginatedList.html @@ -106,6 +106,6 @@ </table> </div> -<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination}" /> +<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'filemounts'}" /> </html> diff --git a/typo3/sysext/beuser/Resources/Private/Partials/SimplePagination.html b/typo3/sysext/beuser/Resources/Private/Partials/SimplePagination.html index 8b211e55eb87..059e616cbe71 100644 --- a/typo3/sysext/beuser/Resources/Private/Partials/SimplePagination.html +++ b/typo3/sysext/beuser/Resources/Private/Partials/SimplePagination.html @@ -10,12 +10,12 @@ <f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}"> <f:then> <li class="page-item"> - <a href="{f:uri.action(arguments:{currentPage: 1})}" title="{f:translate(key:'pagination.first')}" class="page-link"> + <a href="{f:uri.action(action:actionName, arguments:{currentPage: 1})}" title="{f:translate(key:'pagination.first')}" class="page-link"> <core:icon identifier="actions-view-paging-first" /> </a> </li> <li class="page-item"> - <a href="{f:uri.action(arguments:{currentPage: pagination.previousPageNumber})}" title="{f:translate(key:'pagination.previous')}" class="page-link"> + <a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.previousPageNumber})}" title="{f:translate(key:'pagination.previous')}" class="page-link"> <core:icon identifier="actions-view-paging-previous" /> </a> </li> @@ -44,7 +44,7 @@ <form style="display:inline;" data-global-event="submit" data-action-navigate="$form=~s/$value/" - data-navigate-value="{f:uri.action(arguments:'{currentPage: \'$[value]\'}')}" + data-navigate-value="{f:uri.action(action:actionName, arguments:'{currentPage: \'$[value]\'}')}" data-value-selector="input[name='paginator-target-page']"> <input min="{pagination.firstPageNumber}" @@ -64,12 +64,12 @@ <f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}"> <f:then> <li class="page-item"> - <a href="{f:uri.action(arguments:{currentPage: pagination.nextPageNumber})}" title="{f:translate(key:'pagination.next')}" class="page-link"> + <a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.nextPageNumber})}" title="{f:translate(key:'pagination.next')}" class="page-link"> <core:icon identifier="actions-view-paging-next" /> </a> </li> <li class="page-item"> - <a href="{f:uri.action(arguments:{currentPage: pagination.lastPageNumber})}" title="{f:translate(key:'pagination.last')}" class="page-link"> + <a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.lastPageNumber})}" title="{f:translate(key:'pagination.last')}" class="page-link"> <core:icon identifier="actions-view-paging-last" /> </a> </li> @@ -88,7 +88,7 @@ </f:else> </f:if> <li class="page-item"> - <a href="{f:uri.action(arguments:{currentPage: paginator.currentPageNumber})}" title="{f:translate(key:'pagination.refresh')}" class="page-link"> + <a href="{f:uri.action(action:actionName, arguments:{currentPage: paginator.currentPageNumber})}" title="{f:translate(key:'pagination.refresh')}" class="page-link"> <core:icon identifier="actions-refresh" /> </a> </li> diff --git a/typo3/sysext/form/Resources/Private/Partials/Backend/FormManager/Pagination.html b/typo3/sysext/form/Resources/Private/Partials/Backend/FormManager/Pagination.html index a7b3808cf7a3..989cb7d055f7 100644 --- a/typo3/sysext/form/Resources/Private/Partials/Backend/FormManager/Pagination.html +++ b/typo3/sysext/form/Resources/Private/Partials/Backend/FormManager/Pagination.html @@ -4,12 +4,12 @@ <f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}"> <f:then> <li class="page-item"> - <f:link.action arguments="{page: 1}" title="{f:translate(key:'pagination.first')}" class="page-link"> + <f:link.action action="index" arguments="{page: 1}" title="{f:translate(key:'pagination.first')}" class="page-link"> <core:icon identifier="actions-view-paging-first" /> </f:link.action> </li> <li class="page-item"> - <f:link.action arguments="{page: pagination.previousPageNumber}" title="{f:translate(key:'pagination.previous')}" class="page-link"> + <f:link.action action="index" arguments="{page: pagination.previousPageNumber}" title="{f:translate(key:'pagination.previous')}" class="page-link"> <core:icon identifier="actions-view-paging-previous" /> </f:link.action> </li> @@ -38,7 +38,7 @@ <form style="display:inline;" data-global-event="submit" data-action-navigate="$form=~s/$value/" - data-navigate-value="{f:uri.action(arguments:'{page: \'$[value]\'}')}" + data-navigate-value="{f:uri.action(action:'index', arguments:'{page: \'$[value]\'}')}" data-value-selector="input[name='paginator-target-page']"> <input min="{pagination.firstPageNumber}" @@ -56,12 +56,12 @@ <f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}"> <f:then> <li class="page-item"> - <f:link.action arguments="{page: pagination.nextPageNumber}" title="{f:translate(key:'pagination.next')}" class="page-link"> + <f:link.action action="index" arguments="{page: pagination.nextPageNumber}" title="{f:translate(key:'pagination.next')}" class="page-link"> <core:icon identifier="actions-view-paging-next" /> </f:link.action> </li> <li class="page-item"> - <f:link.action arguments="{page: pagination.lastPageNumber}" title="{f:translate(key:'pagination.last')}" class="page-link"> + <f:link.action action="index" arguments="{page: pagination.lastPageNumber}" title="{f:translate(key:'pagination.last')}" class="page-link"> <core:icon identifier="actions-view-paging-last" /> </f:link.action> </li> @@ -80,7 +80,7 @@ </f:else> </f:if> <li class="page-item"> - <f:link.action arguments="{page: paginator.currentPageNumber}" title="{f:translate(key:'pagination.refresh')}" class="page-link"> + <f:link.action action="index" arguments="{page: paginator.currentPageNumber}" title="{f:translate(key:'pagination.refresh')}" class="page-link"> <core:icon identifier="actions-refresh" /> </f:link.action> </li> -- GitLab