[TASK] Add missing tooltips in various modules 75/62175/4
authorOliver Bartsch <bo@cedev.de>
Fri, 1 Nov 2019 20:13:10 +0000 (21:13 +0100)
committerSusanne Moog <look@susi.dev>
Fri, 6 Dec 2019 15:45:04 +0000 (16:45 +0100)
This (re)adds various tooltips through the backend to
further increase the accessibility. Especially for buttons
that have a different meaning than normal in a particular context.

In most cases, they were simply missed but some of them referenced
to not longer existing locallang keys or to locallang keys of
another sysext which is no dependency of the one where it is referenced.

The tooltips are (re)added at following places:
- Creating new content element in ext:core new record view
- Multiple buttons in ext:core element information modal
- Multiple buttons in ext:beuser listing and compare view
- Multiple buttons in ext:form form management and form editor view
- Multiple buttons in ext:info pagetree overview
- New content element record button in ext:recordlist listing view
- View redirect button in ext:redirect listing view

Resolves: #89566
Releases: master
Change-Id: I66cd16413b0e4f188627df06f233a0bba73c3056
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62175
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Michael Telgkamp <michael.telgkamp@mindscreen.de>
Tested-by: Susanne Moog <look@susi.dev>
Reviewed-by: Michael Telgkamp <michael.telgkamp@mindscreen.de>
Reviewed-by: Susanne Moog <look@susi.dev>
15 files changed:
typo3/sysext/backend/Classes/Controller/NewRecordController.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Resources/Private/Language/locallang_layout.xlf
typo3/sysext/backend/Resources/Private/Templates/ContentElement/ElementInformation.html
typo3/sysext/beuser/Resources/Private/Language/locallang.xlf
typo3/sysext/beuser/Resources/Private/Partials/BackendUser/IndexListRow.html
typo3/sysext/beuser/Resources/Private/Templates/BackendUser/Index.html
typo3/sysext/core/Resources/Private/Language/locallang_core.xlf
typo3/sysext/form/Resources/Private/Backend/Templates/FormEditor/Index.html
typo3/sysext/form/Resources/Private/Backend/Templates/FormManager/Index.html
typo3/sysext/form/Resources/Private/Language/Database.xlf
typo3/sysext/info/Resources/Private/Language/InfoPageTsConfig.xlf
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/redirects/Resources/Private/Language/locallang_module_redirect.xlf
typo3/sysext/redirects/Resources/Private/Templates/Management/Overview.html

index 02d5a1e..98f91b2 100644 (file)
@@ -559,9 +559,10 @@ class NewRecordController
                             /** @var \TYPO3\CMS\Core\Http\NormalizedParams */
                             $normalizedParams = $request->getAttribute('normalizedParams');
                             $url = (string)$uriBuilder->buildUriFromRoute($moduleName, ['id' => $this->id, 'returnUrl' => $normalizedParams->getRequestUri()]);
+                            $title = htmlspecialchars($this->getLanguageService()->getLL('newContentElement'));
                             $rowContent .= '<li>' . $newLink . ' ' . BackendUtility::wrapInHelp($table, '') . '</li>'
                                 . '<li>'
-                                . '<a href="' . htmlspecialchars($url) . '" data-title="' . htmlspecialchars($this->getLanguageService()->getLL('newContentElement')) . '" class="t3js-toggle-new-content-element-wizard">'
+                                . '<a href="' . htmlspecialchars($url) . '" title="' . $title . '" data-title="' . $title . '" class="t3js-toggle-new-content-element-wizard">'
                                 . $newContentIcon . htmlspecialchars($lang->getLL('clickForWizard'))
                                 . '</a>'
                                 . '</li>'
index 3b0e04c..5d9dde1 100644 (file)
@@ -760,7 +760,7 @@ class PageLayoutView implements LoggerAwareInterface
                     && !$this->pages_noEditColumns
                 ) {
                     $iTitle = sprintf(
-                        $lang->getLL('editThisColumn'),
+                        $lang->sL('LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:editThisColumn'),
                         rtrim(trim($lang->sL(BackendUtility::getItemLabel('pages', $field))), ':')
                     );
                     $urlParameters = [
@@ -1781,12 +1781,12 @@ class PageLayoutView implements LoggerAwareInterface
 
                         $eI =
                             '<a href="#" onclick="' . htmlspecialchars($onClick) . '" class="btn btn-default" title="' .
-                            $this->getLanguageService()->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_webinfo.xlf:lang_renderl10n_viewPage') . '">' .
+                            htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.showPage')) . '">' .
                             $this->iconFactory->getIcon('actions-view-page', Icon::SIZE_SMALL)->render() .
                             '</a>';
                         $eI .=
                             '<a class="btn btn-default" href="' . htmlspecialchars($url) . '" title="' .
-                            htmlspecialchars($this->getLanguageService()->getLL('editThisPage')) . '">' .
+                            htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:editDefaultLanguagePage')) . '">' .
                             $this->iconFactory->getIcon('actions-page-open', Icon::SIZE_SMALL)->render() .
                             '</a>';
                     } else {
index 1f30014..cc09b40 100644 (file)
                        <trans-unit id="editPageLanguageOverlayProperties" resname="editPageLanguageOverlayProperties">
                                <source>Edit page language overlay properties</source>
                        </trans-unit>
+                       <trans-unit id="editThisColumn" resname="editThisColumn">
+                               <source>Edit the '%s' field of the listed pages</source>
+                       </trans-unit>
+                       <trans-unit id="editDefaultLanguagePage" resname="editDefaultLanguagePage">
+                               <source>Edit default language page properties</source>
+                       </trans-unit>
                        <trans-unit id="newRecordGeneral" resname="newRecordGeneral">
                                <source>Create new record</source>
                        </trans-unit>
index 275db8c..395a485 100644 (file)
@@ -24,7 +24,7 @@
         </f:if>
         <f:if condition="{url}">
             <p>
-                <a class="btn btn-default" href="{url}" target="_blank">
+                <a class="btn btn-default" href="{url}" target="_blank" title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.show')}">
                     <core:icon identifier="actions-document-view" size="small" alternativeMarkupIdentifier="inline" />
                     <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.show" />
                 </a>
@@ -41,7 +41,7 @@
             </table>
         </div>
         <f:if condition="{returnUrl}">
-            <a class="btn btn-primary" href="{returnUrl}">
+            <a class="btn btn-primary" href="{returnUrl}" title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:back')}">
                 <core:icon identifier="actions-view-go-back" size="small" />
                 <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:back" />
             </a>
                 <core:icon identifier="actions-document-view" size="small" />
             </a>
         </f:if>
-        <a class="btn btn-default btn-sm" href="{line.recordEditUrl}">
+        <a class="btn btn-default btn-sm" href="{line.recordEditUrl}" title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.edit')}">
             <core:icon identifier="actions-open" size="small" />
         </a>
     </div>
     <div class="btn-group" role="group">
-        <a class="btn btn-default btn-sm" href="{line.recordHistoryUrl}">
+        <a class="btn btn-default btn-sm" href="{line.recordHistoryUrl}" title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.history')}">
             <core:icon identifier="actions-document-history-open" size="small" />
         </a>
     </div>
index 1f90151..35eb445 100644 (file)
                        <trans-unit id="never" resname="never">
                                <source>Never</source>
                        </trans-unit>
+                       <trans-unit id="edit" resname="edit">
+                               <source>Edit</source>
+                       </trans-unit>
                        <trans-unit id="delete" resname="delete">
                                <source>Delete backend user (!)</source>
                        </trans-unit>
+                       <trans-unit id="info" resname="delete">
+                               <source>Display information</source>
+                       </trans-unit>
                        <trans-unit id="disable" resname="disable">
                                <source>Disable</source>
                        </trans-unit>
                        <trans-unit id="compare" resname="compare">
                                <source>Compare</source>
                        </trans-unit>
+                       <trans-unit id="remove" resname="remove">
+                               <source>Remove</source>
+                       </trans-unit>
                        <trans-unit id="terminateSessionSuccess" resname="terminateSessionSuccess">
                                <source>Session successfully terminated.</source>
                        </trans-unit>
                                <source>online</source>
                        </trans-unit>
                        <trans-unit id="visibility.hide" resname="visibility.hide">
-                               <source>hide</source>
+                               <source>Hide</source>
                        </trans-unit>
                        <trans-unit id="visibility.unhide" resname="visibility.unhide">
-                               <source>unhide</source>
+                               <source>Un-hide</source>
                        </trans-unit>
                </body>
        </file>
index 99c1acd..3ea508c 100644 (file)
@@ -36,7 +36,7 @@
     </td>
     <td class="col-control">
         <div class="btn-group" role="group">
-            <be:link.editRecord class="btn btn-default" table="be_users" uid="{backendUser.uid}" title="edit" >
+            <be:link.editRecord class="btn btn-default" table="be_users" uid="{backendUser.uid}" title="{f:translate(key:'edit')}">
                 <core:icon identifier="actions-open" />
             </be:link.editRecord>
             <f:if condition="{backendUser.currentlyLoggedIn} == 1">
@@ -60,7 +60,7 @@
                 </f:then>
                 <f:else>
                     <a class="btn btn-default t3js-modal-trigger" href="{be:moduleLink(route:'tce_db', query:'cmd[be_users][{backendUser.uid}][delete]=1', currentUrlParameterName:'redirect')}"
-                        title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:delete')}"
+                        title="{f:translate(key:'delete')}"
                         data-severity="warning"
                         data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')}"
                         data-content="{f:translate(key:'confirm',arguments:'{0:backendUser.userName}')}"
             </f:if>
         </div>
         <div class="btn-group" role="group">
-            <a class="btn btn-default" href="#" onclick="top.TYPO3.InfoWindow.showItem('be_users', '{backendUser.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
+            <a class="btn btn-default" href="#" title="{f:translate(key:'info')}" onclick="top.TYPO3.InfoWindow.showItem('be_users', '{backendUser.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
         </div>
         <div class="btn-group" role="group">
             <f:if condition="{compareUserUidList.{backendUser.uid}}">
                 <f:then>
-                    <f:link.action action="removeFromCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default">
+                    <f:link.action action="removeFromCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default" title="{f:translate(key: 'compare')}">
                         <core:icon identifier="actions-remove" size="small"/>
                         <f:translate key="compare" />
                     </f:link.action>
                 </f:then>
                 <f:else>
-                    <f:link.action action="addToCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default"><core:icon identifier="actions-add" size="small"/> <f:translate key="compare" /></f:link.action>
+                    <f:link.action action="addToCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default" title="{f:translate(key: 'compare')}">
+                        <core:icon identifier="actions-add" size="small"/> <f:translate key="compare" />
+                    </f:link.action>
                 </f:else>
             </f:if>
             <bu:SwitchUser backendUser="{backendUser}" />
index c902283..10df738 100644 (file)
@@ -35,7 +35,7 @@
                                 {compareUser.userName}
                             </td>
                             <td>
-                                <f:link.action action="removeFromCompareList" arguments="{uid: compareUser.uid}" class="pull-right btn btn-default">
+                                <f:link.action action="removeFromCompareList" arguments="{uid: compareUser.uid}" class="pull-right btn btn-default" title="{f:translate(key: 'remove')}">
                                     <core:icon identifier="actions-remove" />
                                 </f:link.action>
                             </td>
@@ -45,7 +45,7 @@
             </table>
         </div>
         <f:form action="compare">
-            <f:form.submit value="{f:translate(key: 'compareUserList', default: 'Compare user list')}" class="btn btn-default" />
+            <f:form.submit value="{f:translate(key: 'compareUserList', default: 'Compare user list')}" title="{f:translate(key: 'compareUserList', default: 'Compare user list')}" class="btn btn-default" />
         </f:form>
         <hr>
     </f:if>
index da55f1d..7520169 100644 (file)
@@ -1038,6 +1038,9 @@ Do you want to refresh it now?</source>
                        <trans-unit id="cm.allowedRelations" resname="cm.allowedRelations">
                                <source>Allowed relations</source>
                        </trans-unit>
+                       <trans-unit id="cm.history" resname="CM_history">
+                               <source>History/Undo</source>
+                       </trans-unit>
                        <trans-unit id="sortable.dragmove" resname="sortable.dragmove">
                                <source>Drag to move</source>
                        </trans-unit>
index e0d1f7f..b238b03 100644 (file)
         <div class="panel-heading" data-identifier="panelHeading">
             <span data-identifier="stageHeaderToolbar">
                 <div class="btn-group">
-                    <button class="btn btn-default" title="" data-identifier="buttonViewModePreview"><core:icon identifier="actions-document-view" alternativeMarkupIdentifier="inline" /></button>
-                    <button class="btn btn-default" title="" data-identifier="buttonViewModeAbstract"><core:icon identifier="actions-document-open" alternativeMarkupIdentifier="inline" /></button>
+                    <button class="btn btn-default" title="{f:translate(key: 'LLL:EXT:form/Resources/Private/Language/Database.xlf:formEditor.preview_mode_button')}" data-identifier="buttonViewModePreview"><core:icon identifier="actions-document-view" alternativeMarkupIdentifier="inline" /></button>
+                    <button class="btn btn-default" title="{f:translate(key: 'LLL:EXT:form/Resources/Private/Language/Database.xlf:formEditor.edit_mode_button')}" data-identifier="buttonViewModeAbstract"><core:icon identifier="actions-document-open" alternativeMarkupIdentifier="inline" /></button>
                 </div>
                 <div class="pull-right">
                     <span class="paginiation-label" data-identifier="paginationTitle"></span>
                     <div class="btn-group">
-                        <button class="btn btn-default" title="" data-identifier="buttonPaginationPrevious"><core:icon identifier="actions-view-paging-previous" alternativeMarkupIdentifier="inline" /></button>
-                        <button class="btn btn-default" title="" data-identifier="buttonPaginationNext"><core:icon identifier="actions-view-paging-next" alternativeMarkupIdentifier="inline" /></button>
+                        <button class="btn btn-default" title="{f:translate(key: 'LLL:EXT:form/Resources/Private/Language/Database.xlf:formEditor.previous_step_button')}" data-identifier="buttonPaginationPrevious"><core:icon identifier="actions-view-paging-previous" alternativeMarkupIdentifier="inline" /></button>
+                        <button class="btn btn-default" title="{f:translate(key: 'LLL:EXT:form/Resources/Private/Language/Database.xlf:formEditor.next_step_button')}" data-identifier="buttonPaginationNext"><core:icon identifier="actions-view-paging-next" alternativeMarkupIdentifier="inline" /></button>
                     </div>
                 </div>
             </span>
index 8543308..37b5c71 100644 (file)
@@ -22,7 +22,7 @@
                         <table id="forms" class="table table-striped table-hover">
                             <thead>
                                 <tr>
-                                    <th class="col-icon nowrap"><a class="btn btn-default" data-identifier="newForm" href="#"><core:icon identifier="actions-add" /></a></th>
+                                    <th class="col-icon nowrap"><a class="btn btn-default" data-identifier="newForm" title="{f:translate(key: 'LLL:EXT:form/Resources/Private/Language/Database.xlf:formManager.create_new_form')}" href="#"><core:icon identifier="actions-add" /></a></th>
                                     <th class="col-title col-responsive nowrap"><f:translate key="LLL:EXT:form/Resources/Private/Language/Database.xlf:formManager.form_name" /></th>
                                     <th class="col-control nowrap"></th>
                                     <th class="nowrap"><f:translate key="LLL:EXT:form/Resources/Private/Language/Database.xlf:formManager.location" /></th>
index 13a094e..828abd4 100644 (file)
             <trans-unit id="formEditor.new_page_button" resname="formEditor.new_page_button" xml:space="preserve">
                 <source>Create new step</source>
             </trans-unit>
+                       <trans-unit id="formEditor.previous_step_button" resname="formEditor.edit_mode_button" xml:space="preserve">
+                <source>Previous step</source>
+            </trans-unit>
+                       <trans-unit id="formEditor.next_step_button" resname="formEditor.edit_mode_button" xml:space="preserve">
+                <source>Next step</source>
+            </trans-unit>
+                       <trans-unit id="formEditor.preview_mode_button" resname="formEditor.preview_mode_button" xml:space="preserve">
+                <source>Preview mode</source>
+            </trans-unit>
+                       <trans-unit id="formEditor.edit_mode_button" resname="formEditor.edit_mode_button" xml:space="preserve">
+                <source>Edit mode</source>
+            </trans-unit>
             <trans-unit id="formEditor.structure" resname="formEditor.structure" xml:space="preserve">
                 <source>Structure</source>
             </trans-unit>
index edb473a..9e5bfb4 100644 (file)
@@ -33,9 +33,6 @@
                        <trans-unit id="tsconf_configFields" resname="tsconf_configFields">
                                <source>View TSconfig fields content</source>
                        </trans-unit>
-                       <trans-unit id="editThisColumn" resname="editThisColumn">
-                               <source>Edit the field '%s' for all listed pages</source>
-                       </trans-unit>
                        <trans-unit id="editTSconfig" resname="editTSconfig">
                                <source>Edit TSconfig for this page</source>
                        </trans-unit>
index 023f56f..9fbf1d2 100644 (file)
@@ -1535,8 +1535,10 @@ class DatabaseRecordList
                                         'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI'),
                                     ]
                                 );
+                                $title = htmlspecialchars($lang->getLL('new'));
                                 $icon = '<a href="' . htmlspecialchars($url) . '" '
-                                    . 'data-title="' . htmlspecialchars($lang->getLL('new')) . '"'
+                                    . 'title="' . $title . '"'
+                                    . 'data-title="' . $title . '"'
                                     . 'class="btn btn-default t3js-toggle-new-content-element-wizard">'
                                     . $spriteIcon->render()
                                     . '</a>';
index 0ae2e6c..bfe4a5d 100644 (file)
                        <trans-unit id="visit_destination" resname="visit_destination">
                                <source>Go to</source>
                        </trans-unit>
+                       <trans-unit id="view_redirect" resname="view_redirect">
+                               <source>View redirect</source>
+                       </trans-unit>
                </body>
        </file>
 </xliff>
index 0ce3d89..b868e84 100644 (file)
                                         <span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
                                     </f:then>
                                     <f:else>
-                                        <f:link.external class="btn btn-default" uri="{f:if(condition: '{redirect.source_host} == \'*\'', then: '', else: redirect.source_host)}{redirect.source_path}" target="_blank">
+                                        <f:link.external class="btn btn-default" uri="{f:if(condition: '{redirect.source_host} == \'*\'', then: '', else: redirect.source_host)}{redirect.source_path}" target="_blank" title="{f:translate(key: 'LLL:EXT:redirects/Resources/Private/Language/locallang_module_redirect.xlf:view_redirect')}">
                                             <core:icon identifier="actions-view-page" />
                                         </f:link.external>
                                     </f:else>