diff --git a/Build/Sources/Sass/component/_treelist.scss b/Build/Sources/Sass/component/_treelist.scss index d7b553e650a1cf390775486e07dc1349dbb6e080..de37d57159907368091a6a9f9be9b25955d6a95e 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 614a5d199228d8e238491a73b63c56f7ddffd8aa..b4be8112220ae79ff1c564b7b50a454deb7feb0a 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 46e0266202d365d314c94b0e9e21f1d4adfd6149..e51f3413d689a1c3b5d33bc9ff0d14fb76f2c282 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 f6f5e3254e8d52a71677ee3ebb047bb0d44a8526..33f818c8ce249e926a9a8d812479845aa059b4d0 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 7fb433823a855ee4534349e0c31dd8d25f7dd695..e7fca4b6223e528181951b12e11e1e8e91d0d086 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 6094d608909c3bb1bf9ebedccb45f09ad0c25f29..f4ee52e0b2e180fbd281f53f695cefd1299cd513 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 014fb77be982e2f465152cd3e3b297777e70359c..b98392bd844e5c3d63c6b8adb95a5c0731fc97ad 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>';