From c3ecd80410f6d8f6d6971ab92357416412e94e7d Mon Sep 17 00:00:00 2001 From: Benjamin Kott <benjamin.kott@outlook.com> Date: Fri, 6 Sep 2024 15:18:17 +0200 Subject: [PATCH] [TASK] Make treelist context aware The new panel treelist styling is context aware and adapts to light and dark color schemes. This patch also restores the visibility of treelines in Pagetree overview and Localization overview. Resolves: #104845 Releases: main Change-Id: I82785daec2de46e259eca757206e502798922069 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85914 Reviewed-by: Oliver Bartsch <bo@cedev.de> Tested-by: core-ci <typo3@b13.com> Reviewed-by: Benjamin Franzke <ben@bnf.dev> Tested-by: Andreas Kienast <a.fernandez@scripting-base.de> Tested-by: Benjamin Franzke <ben@bnf.dev> Reviewed-by: Andreas Kienast <a.fernandez@scripting-base.de> Tested-by: Oliver Bartsch <bo@cedev.de> --- Build/Sources/Sass/component/_treelist.scss | 35 ++++++++++++++----- Build/Sources/Sass/typo3/_element_tree.scss | 17 +++------ .../Resources/Public/Css/adminpanel.css | 5 ++- .../backend/Resources/Public/Css/backend.css | 9 ++--- .../Templates/Administration/Statistic.html | 4 +-- .../Controller/PageInformationController.php | 14 +++++--- .../TranslationStatusController.php | 32 ++++++++--------- 7 files changed, 64 insertions(+), 52 deletions(-) diff --git a/Build/Sources/Sass/component/_treelist.scss b/Build/Sources/Sass/component/_treelist.scss index d7b553e650a1..de37d5715990 100644 --- a/Build/Sources/Sass/component/_treelist.scss +++ b/Build/Sources/Sass/component/_treelist.scss @@ -30,14 +30,15 @@ // // -// Variables +// Component // -:root { - --treelist-color: #333; - --treelist-comment-color: #666; - --treelist-bg: #fff; +.treelist, +.treeline-container { + --treelist-color: var(--typo3-text-color-base); + --treelist-comment-color: var(--typo3-text-color-variant); + --treelist-bg: var(--typo3-surface-base); --treelist-border-width: 1px; - --treelist-border-color: #ddd; + --treelist-border-color: color-mix(in srgb, var(--treelist-bg), var(--treelist-color) 10%); --treelist-indentation: 1rem; --treelist-indentation-spacer: .5rem; --treelist-item-spacer: 2px; @@ -45,9 +46,6 @@ --treelist-control-size: 16px; } -// -// Component -// .treelist, .treelist ul { color: var(--treelist-color); @@ -238,3 +236,22 @@ padding-inline-start: 0; } } + +// +// Adaptions +// +.panel { + .treelist, + .treeline-container { + --treelist-color: var(--typo3-panel-color); + --treelist-bg: var(--typo3-panel-bg); + } +} + +.form-section { + .treelist, + .treeline-container { + --treelist-color: var(--typo3-form-section-color); + --treelist-bg: var(--typo3-form-section-bg); + } +} diff --git a/Build/Sources/Sass/typo3/_element_tree.scss b/Build/Sources/Sass/typo3/_element_tree.scss index 614a5d199228..b4be8112220a 100644 --- a/Build/Sources/Sass/typo3/_element_tree.scss +++ b/Build/Sources/Sass/typo3/_element_tree.scss @@ -1,20 +1,16 @@ -// -// Variables -// -$navigation-bg: $gray-100; - // // Treeline Icons // .treeline-icon { position: relative; display: inline-block; - margin-top: -.5rem; - margin-bottom: -.5rem; + margin-top: -.75rem; + margin-bottom: -.75rem; margin-inline-end: 2px; padding: 0; - height: 41px; + height: 54px; width: 16px; + flex-shrink: 0; white-space: nowrap; overflow: hidden; vertical-align: middle; @@ -71,6 +67,7 @@ $navigation-bg: $gray-100; */ .treeline-container { display: flex; + align-items: center; gap: calc(var(--typo3-spacing) * .25); } @@ -115,8 +112,4 @@ span.dragIcon { .tree-wrapper { flex: 1 0 0; } - - .navigation-tree-container { - background-color: $navigation-bg; - } } diff --git a/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css b/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css index 46e0266202d3..e51f3413d689 100644 --- a/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css +++ b/typo3/sysext/adminpanel/Resources/Public/Css/adminpanel.css @@ -48,7 +48,7 @@ body.typo3-adminPanel-noscroll{overflow:hidden} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--typo3-state-default-color);--icon-emphasized-bg:var(--typo3-state-default-bg);color:var(--icon-emphasized-color);background-color:var(--icon-emphasized-bg);display:flex;justify-content:center;align-items:center;width:2rem;height:2rem;border-radius:100%} .alert #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--typo3-alert-icon-color);--icon-emphasized-bg:var(--typo3-alert-icon-bg)} .callout #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .icon-emphasized{--icon-emphasized-color:var(--typo3-callout-icon-color);--icon-emphasized-bg:var(--typo3-callout-icon-bg)} -#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{position:relative;display:inline-block;margin-top:-.5rem;margin-bottom:-.5rem;margin-inline-end:2px;padding:0;height:41px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:middle} +#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{position:relative;display:inline-block;margin-top:-.75rem;margin-bottom:-.75rem;margin-inline-end:2px;padding:0;height:54px;width:16px;flex-shrink:0;white-space:nowrap;overflow:hidden;vertical-align:middle} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{position:absolute;content:"";inset-inline-start:50%} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:before{top:0;height:100%;width:2px;margin-inline-start:-1px;border-inline-start:1px solid var(--treelist-border-color)} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon:after{border-top:1px solid var(--treelist-border-color);height:2px;width:100%;top:50%;margin-top:-1px} @@ -57,14 +57,13 @@ body.typo3-adminPanel-noscroll{overflow:hidden} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-line:after{display:none} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-blank{display:none} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:after,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon-clear:before{display:none} -#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-container{display:flex;gap:calc(var(--typo3-spacing) * .25)} +#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-container{display:flex;align-items:center;gap:calc(var(--typo3-spacing) * .25)} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel body#typo3-pagetree{margin:0;padding:0} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #typo3-pagetree #typo3-inner-docbody{padding:10px 0} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel span.dragIcon{display:inline-block;height:16px} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel #dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .tree,#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .tree>div{flex:1 0 0;display:flex;flex-direction:column} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .tree-wrapper{flex:1 0 0} -#TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .treeline-icon{margin-top:-8px;margin-bottom:-8px} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-backdrop{z-index:99991;content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5)} #TSFE_ADMIN_PANEL_FORM.typo3-kidjls9dksoje.typo3-adminPanel .typo3-adminPanel-message{padding:20px;background-color:#fff;border-left:3px solid #cacaca;margin-bottom:1em;box-shadow:0 0 1px rgba(0,0,0,.15)} diff --git a/typo3/sysext/backend/Resources/Public/Css/backend.css b/typo3/sysext/backend/Resources/Public/Css/backend.css index f6f5e3254e8d..33f818c8ce24 100644 --- a/typo3/sysext/backend/Resources/Public/Css/backend.css +++ b/typo3/sysext/backend/Resources/Public/Css/backend.css @@ -3607,7 +3607,7 @@ typo3-backend-live-search-result-item-action>* .livesearch-result-item-title .sm .resource-tile-checkbox{display:none;position:absolute;font-size:var(--resource-tile-checkbox-size);inset-inline-end:calc(var(--resource-tile-spacing)/ 2);top:calc(var(--resource-tile-spacing)/ 2)} .recordsearchbox-container{margin-bottom:var(--typo3-spacing)} .recordsearchbox-container [data-recordsearchbox-levels]{max-width:140px} -:root{--treelist-color:#333;--treelist-comment-color:#666;--treelist-bg:#fff;--treelist-border-width:1px;--treelist-border-color:#ddd;--treelist-indentation:1rem;--treelist-indentation-spacer:.5rem;--treelist-item-spacer:2px;--treelist-item-line-height:24px;--treelist-control-size:16px} +.treeline-container,.treelist{--treelist-color:var(--typo3-text-color-base);--treelist-comment-color:var(--typo3-text-color-variant);--treelist-bg:var(--typo3-surface-base);--treelist-border-width:1px;--treelist-border-color:color-mix(in srgb, var(--treelist-bg), var(--treelist-color) 10%);--treelist-indentation:1rem;--treelist-indentation-spacer:.5rem;--treelist-item-spacer:2px;--treelist-item-line-height:24px;--treelist-control-size:16px} .treelist,.treelist ul{color:var(--treelist-color);background:var(--treelist-bg);padding:0;padding-inline-start:calc(var(--treelist-indentation)/ 2);list-style:none;position:relative} .treelist ul:before,.treelist:before{content:"";display:block;width:0;position:absolute;top:0;bottom:calc(var(--treelist-item-line-height)/ 2);inset-inline-start:calc(var(--treelist-indentation)/ 2 - var(--treelist-border-width)/ 2);margin-bottom:-2px;border-inline-start:1px solid var(--treelist-border-color)} .treelist ul:after,.treelist:after{content:"";display:table} @@ -3636,6 +3636,8 @@ typo3-backend-live-search-result-item-action>* .livesearch-result-item-title .sm .treelist-root>li>.treelist-group>.treelist-control{margin-inline-start:calc(var(--treelist-control-size) * -1)} .treelist-root>li>.treelist-group>.treelist-control:before{background-color:transparent} .treelist-root-clean>li{padding-inline-start:0} +.panel .treeline-container,.panel .treelist{--treelist-color:var(--typo3-panel-color);--treelist-bg:var(--typo3-panel-bg)} +.form-section .treeline-container,.form-section .treelist{--treelist-color:var(--typo3-form-section-color);--treelist-bg:var(--typo3-form-section-bg)} .indent{--indent-base:16px;--indent-level:0;margin-inline-start:calc(var(--indent-base) * var(--indent-level))} .indent-inline-block{display:inline-block} .pagination{flex-wrap:wrap;row-gap:4px} @@ -3867,7 +3869,7 @@ div.t3-form-field-container:first-child .t3-form-field-label-flex{border-top:0} .formengine-field-item.disabled{position:relative} .formengine-field-item.disabled .t3-form-field-disable{z-index:100;background:#fafafa;display:block;position:absolute;width:100%;height:100%;opacity:.5} .t3-form-field-eval-null-checkbox{z-index:150;position:relative} -.treeline-icon{position:relative;display:inline-block;margin-top:-.5rem;margin-bottom:-.5rem;margin-inline-end:2px;padding:0;height:41px;width:16px;white-space:nowrap;overflow:hidden;vertical-align:middle} +.treeline-icon{position:relative;display:inline-block;margin-top:-.75rem;margin-bottom:-.75rem;margin-inline-end:2px;padding:0;height:54px;width:16px;flex-shrink:0;white-space:nowrap;overflow:hidden;vertical-align:middle} .treeline-icon:after,.treeline-icon:before{position:absolute;content:"";inset-inline-start:50%} .treeline-icon:before{top:0;height:100%;width:2px;margin-inline-start:-1px;border-inline-start:1px solid var(--treelist-border-color)} .treeline-icon:after{border-top:1px solid var(--treelist-border-color);height:2px;width:100%;top:50%;margin-top:-1px} @@ -3876,14 +3878,13 @@ div.t3-form-field-container:first-child .t3-form-field-label-flex{border-top:0} .treeline-icon-line:after{display:none} .treeline-icon-blank{display:none} .treeline-icon-clear:after,.treeline-icon-clear:before{display:none} -.treeline-container{display:flex;gap:calc(var(--typo3-spacing) * .25)} +.treeline-container{display:flex;align-items:center;gap:calc(var(--typo3-spacing) * .25)} body#typo3-pagetree{margin:0;padding:0} #typo3-pagetree #typo3-inner-docbody{padding:10px 0} span.dragIcon{display:inline-block;height:16px} #dragIcon{position:absolute;visibility:hidden;z-index:20;opacity:.5;white-space:nowrap} .scaffold-content-navigation-component,.scaffold-content-navigation-component .navigation-tree-container,.scaffold-content-navigation-component .tree,.scaffold-content-navigation-component .tree>div{flex:1 0 0;display:flex;flex-direction:column} .scaffold-content-navigation-component .tree-wrapper{flex:1 0 0} -.scaffold-content-navigation-component .navigation-tree-container{background-color:#f5f5f5} .ui-block{text-align:center;padding-top:200px;position:absolute;z-index:3000;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.3)} .pagination{margin:0} .pagination .paginator-input{display:inline-block;width:auto;margin:-7px 0} diff --git a/typo3/sysext/indexed_search/Resources/Private/Templates/Administration/Statistic.html b/typo3/sysext/indexed_search/Resources/Private/Templates/Administration/Statistic.html index 7fb433823a85..e7fca4b6223e 100644 --- a/typo3/sysext/indexed_search/Resources/Private/Templates/Administration/Statistic.html +++ b/typo3/sysext/indexed_search/Resources/Private/Templates/Administration/Statistic.html @@ -31,7 +31,7 @@ </div> </f:form> <div class="table-fit" tabindex="0"> - <table class="table table-striped table-hover table-vertical-top"> + <table class="table table-striped table-hover"> <thead> <tr> <th class="col-title-flexible"> @@ -128,7 +128,7 @@ </f:defaultCase> </f:switch> <td class="col-control"> - <div class="btn-group"> + <div class="btn-group btn-group-sm"> <f:link.action action="statisticDetails" arguments="{pageHash:l.phash}" diff --git a/typo3/sysext/info/Classes/Controller/PageInformationController.php b/typo3/sysext/info/Classes/Controller/PageInformationController.php index 6094d608909c..f4ee52e0b2e1 100644 --- a/typo3/sysext/info/Classes/Controller/PageInformationController.php +++ b/typo3/sysext/info/Classes/Controller/PageInformationController.php @@ -340,7 +340,12 @@ class PageInformationController extends InfoModuleController case 'title': $showPageId = !empty($userTsConfig['options.']['pageTree.']['showPageIdWithTitle']); $pTitle = htmlspecialchars((string)BackendUtility::getProcessedValue('pages', $field, $row[$field], 20)); - $theData[$field] = ($row['treeIcons'] ?? '') . $theIcon . ($showPageId ? '[' . $row['uid'] . '] ' : '') . $pTitle; + $theData[$field] = '<div class="treeline-container">' + . ($row['treeIcons'] ?? '') + . $theIcon + . ($showPageId ? '[' . $row['uid'] . '] ' : '') + . $pTitle + . '</div>'; break; case 'php_tree_stop': // Intended fall through @@ -396,7 +401,7 @@ class PageInformationController extends InfoModuleController // the actual uid to be able to add it as data attribute to the table data cell. // This also makes distinction between record rows and the header line simpler. $theData['_UID_'] = $uid; - $theData[$field] = '<div class="btn-group" role="group">' . $editButton . '</div>'; + $theData[$field] = '<div class="btn-group btn-group-sm" role="group">' . $editButton . '</div>'; break; case 'shortcut': case 'shortcut_mode': @@ -416,7 +421,7 @@ class PageInformationController extends InfoModuleController } } } - $this->addElement_tdCssClass['title'] = $row['_CSSCLASS'] ?? ''; + $this->addElement_tdCssClass['title'] = 'col-title-flexible'; return $this->addElement($theData); } @@ -503,8 +508,7 @@ class PageInformationController extends InfoModuleController if (isset($data[$vKey])) { if ($lastKey) { $cssClass = $this->addElement_tdCssClass[$lastKey] ?? ''; - $out .= ' - <' . $rowTag . ' class="' . $cssClass . ' nowrap"' . $colsp . '>' . $data[$lastKey] . '</' . $rowTag . '>'; + $out .= '<' . $rowTag . ' class="' . $cssClass . ' nowrap"' . $colsp . '>' . $data[$lastKey] . '</' . $rowTag . '>'; } $lastKey = $vKey; $c = 1; diff --git a/typo3/sysext/info/Classes/Controller/TranslationStatusController.php b/typo3/sysext/info/Classes/Controller/TranslationStatusController.php index 014fb77be982..b98392bd844e 100644 --- a/typo3/sysext/info/Classes/Controller/TranslationStatusController.php +++ b/typo3/sysext/info/Classes/Controller/TranslationStatusController.php @@ -161,13 +161,15 @@ class TranslationStatusController extends InfoModuleController $icon = BackendUtility::wrapClickMenuOnIcon($icon, 'pages', $data['row']['uid']); } - $tCells[] = '<td' . (!empty($data['row']['_CSSCLASS']) ? ' class="' . $data['row']['_CSSCLASS'] . '"' : '') . '>' . - (!empty($data['depthData']) ? $data['depthData'] : '') . - ($data['HTML'] ?? '') . - $icon . - $pageModuleLink . - ((string)$data['row']['nav_title'] !== '' ? ' [Nav: <em>' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($data['row']['nav_title'], $titleLen)) . '</em>]' : '') . - '</td>'; + $tCells[] = '<td class="col-nowrap' . (!empty($data['row']['_CSSCLASS']) ? ' ' . $data['row']['_CSSCLASS'] : '') . '">' + . '<div class="treeline-container">' + . (!empty($data['depthData']) ? $data['depthData'] : '') + . ($data['HTML'] ?? '') + . $icon + . $pageModuleLink + . ((string)$data['row']['nav_title'] !== '' ? ' <span>[Nav: <em>' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($data['row']['nav_title'], $titleLen)) . '</em>]</span>' : '') + . '</div>' + . '</td>'; $previewUriBuilder = PreviewUriBuilder::create((int)$data['row']['uid']); // DEFAULT language: $pageTranslationVisibility = new PageTranslationVisibility((int)($data['row']['l18n_cfg'] ?? 0)); @@ -194,7 +196,7 @@ class TranslationStatusController extends InfoModuleController $info .= $pageTranslationVisibility->shouldBeHiddenInDefaultLanguage() ? '<span title="' . htmlspecialchars($lang->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.l18n_cfg.I.1')) . '">D</span>' : ' '; $info .= $pageTranslationVisibility->shouldHideTranslationIfNoTranslatedRecordExists() ? '<span title="' . htmlspecialchars($lang->sL('LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.l18n_cfg.I.2')) . '">N</span>' : ' '; // Put into cell: - $tCells[] = '<td class="' . $status . ' col-border-left"><div class="btn-group">' . $info . '</div></td>'; + $tCells[] = '<td class="' . $status . ' col-border-left col-nowrap"><div class="btn-group btn-group-sm">' . $info . '</div></td>'; $tCells[] = '<td class="' . $status . '" title="' . $lang->sL( 'LLL:EXT:info/Resources/Private/Language/locallang_webinfo.xlf:lang_renderl10n_CEcount' ) . '" align="center">' . ($this->getContentElementCount((int)$data['row']['uid'], 0) ?: '-') . '</td>'; @@ -232,7 +234,7 @@ class TranslationStatusController extends InfoModuleController } $icon = $this->iconFactory->getIconForRecord('pages', $row, IconSize::SMALL); $iconMarkup = '<span title="' . BackendUtility::getRecordIconAltText($row, 'pages') . '">' . $icon->render() . '</span>'; - $tCells[] = '<td class="' . $status . ' col-border-left">' . + $tCells[] = '<td class="' . $status . ' col-border-left col-nowrap">' . BackendUtility::wrapClickMenuOnIcon($iconMarkup, 'pages', (int)$row['uid']) . $pageModuleLink . '</td>'; @@ -256,7 +258,7 @@ class TranslationStatusController extends InfoModuleController . '" class="btn btn-default" title="' . $lang->sL( 'LLL:EXT:info/Resources/Private/Language/locallang_webinfo.xlf:lang_renderl10n_editLanguageOverlayRecord' ) . '">' . $this->iconFactory->getIcon('actions-open', IconSize::SMALL)->render() . '</a>'; - $tCells[] = '<td class="' . $status . '"><div class="btn-group">' . $info . '</div></td>'; + $tCells[] = '<td class="' . $status . '"><div class="btn-group btn-group-sm">' . $info . '</div></td>'; $tCells[] = '<td class="' . $status . '" title="' . $lang->sL( 'LLL:EXT:info/Resources/Private/Language/locallang_webinfo.xlf:lang_renderl10n_CEcount' ) . '" align="center">' . ($this->getContentElementCount((int)$data['row']['uid'], $languageId) ?: '-') . '</td>'; @@ -277,11 +279,7 @@ class TranslationStatusController extends InfoModuleController } } } - $output .= ' - <tr> - ' . implode(' - ', $tCells) . ' - </tr>'; + $output .= '<tr>' . implode('', $tCells) . '</tr>'; } // Put together HEADER: $headerCells = []; @@ -299,7 +297,7 @@ class TranslationStatusController extends InfoModuleController 'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(), ]); $editIco = '<a href="' . htmlspecialchars($editUrl) - . '" class="btn btn-default" title="' . $lang->sL( + . '" class="btn btn-default btn-sm" title="' . $lang->sL( 'LLL:EXT:info/Resources/Private/Language/locallang_webinfo.xlf:lang_renderl10n_editPageProperties' ) . '">' . $this->iconFactory->getIcon('actions-document-open', IconSize::SMALL)->render() . '</a>'; } else { @@ -343,7 +341,7 @@ class TranslationStatusController extends InfoModuleController $createLink = (string)$this->uriBuilder->buildUriFromRoute('tce_db', [ 'redirect' => $request->getAttribute('normalizedParams')->getRequestUri(), ]); - $newButton = '<a href="' . htmlspecialchars($createLink) . '" data-edit-url="' . htmlspecialchars($createLink) . '" class="btn btn-default disabled t3js-language-new" data-lang="' . $languageId . '" title="' . $lang->sL( + $newButton = '<a href="' . htmlspecialchars($createLink) . '" data-edit-url="' . htmlspecialchars($createLink) . '" class="btn btn-default btn-sm disabled t3js-language-new" data-lang="' . $languageId . '" title="' . $lang->sL( 'LLL:EXT:info/Resources/Private/Language/locallang_webinfo.xlf:lang_getlangsta_createNewTranslationHeaders' ) . '">' . $this->iconFactory->getIcon('actions-document-new', IconSize::SMALL)->render() . '</a>'; -- GitLab