TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,577 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:layout name="Module" />
|
||||
|
||||
<f:section name="Before">
|
||||
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/tree/tree-node-toggle.js"/>
|
||||
<f:variable name="args" value="{0: 'site', 1: page.uid}" />
|
||||
<typo3-immediate-action
|
||||
action="TYPO3.Backend.Storage.ModuleStateStorage.update"
|
||||
args="{args -> f:format.json() -> f:format.htmlspecialchars()}"
|
||||
></typo3-immediate-action>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
|
||||
<f:if condition="{site.identifier}">
|
||||
<h1>
|
||||
<f:if condition="{page}">
|
||||
<f:then>
|
||||
<f:translate
|
||||
key="detail.headline_with_page_title"
|
||||
domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{page.title}'
|
||||
}"
|
||||
/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate
|
||||
key="detail.headline_with_site_identifier"
|
||||
domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{site.identifier}'
|
||||
}"
|
||||
/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</h1>
|
||||
|
||||
<f:if condition="{site.sets -> f:count()} && {site.invalidSets}">
|
||||
<f:render partial="SiteManagement/InvalidSets" arguments="{site: site, renderMode: 'infobox'}" />
|
||||
</f:if>
|
||||
|
||||
<h2>
|
||||
<f:translate key="detail.site_configuration.headline" domain="backend.siteconfiguration" />
|
||||
</h2>
|
||||
|
||||
<f:comment><!-- Languages --></f:comment>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#languages-collapse"
|
||||
aria-controls="languages-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="detail.site_configuration.languages" domain="backend.siteconfiguration"/>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="languages-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="table-fit">
|
||||
<table class="table table-hover table-vertical-top">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-50" colspan="2">
|
||||
<f:translate key="detail.site_configuration.languages.language" domain="backend.siteconfiguration" />
|
||||
</th>
|
||||
<th class="col-50 col-word-break">
|
||||
<f:translate key="detail.site_configuration.languages.language_url" domain="backend.siteconfiguration" />
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{site.languages}" as="language">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<f:if condition="{language.enabled}">
|
||||
<f:then>
|
||||
<core:icon identifier="{language.flagIdentifier}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<core:icon identifier="{language.flagIdentifier}" overlay="overlay-hidden" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{language.enabled}">
|
||||
<f:then>
|
||||
{language.title} <code>[{language.languageId}]</code>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<span class="text-body-secondary">
|
||||
{language.title} (<f:translate key="disabled" domain="core.common">disabled</f:translate>)
|
||||
<code>[{language.languageId}]</code>
|
||||
</span>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{language.base}" target="_blank">{language.base}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<f:comment><!-- Error handling --></f:comment>
|
||||
<f:if condition="{site.configuration.errorHandling -> f:count()} > 0">
|
||||
<f:then>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#error-handling-collapse"
|
||||
aria-controls="error-handling-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="detail.site_configuration.error_handling" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="error-handling-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<ul class="treelist">
|
||||
<f:for each="{site.configuration.errorHandling}" as="errorHandling">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration_tca.xlf:site_errorhandling.errorCode.{errorHandling.errorCode}" />
|
||||
</span>
|
||||
</span>
|
||||
<ul class="treelist">
|
||||
<f:switch expression="{errorHandling.errorHandler}">
|
||||
<f:case value="Fluid">
|
||||
<f:variable name="label" value="{f:translate(key:'site_errorhandling.errorFluidTemplate', domain:'backend.siteconfiguration_tca')}"/>
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{errorHandling.errorFluidTemplate}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="Page">
|
||||
<f:variable name="label" value="{f:translate(key:'site_errorhandling.errorContentSource', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{errorHandling.errorContentSource}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="PHP">
|
||||
<f:variable name="label" value="{f:translate(key:'site_errorhandling.errorPhpClassFQCN', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{errorHandling.errorPhpClassFQCN}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="LoginRedirect">
|
||||
<f:variable name="label" value="{f:translate(key:'site_errorhandling.loginRedirectTarget', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{errorHandling.loginRedirectTarget}'
|
||||
}"
|
||||
/>
|
||||
<f:variable name="label" value="{f:translate(key:'site_errorhandling.loginRedirectParameter', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:variable name="value" value="{f:translate(key:'site_errorhandling.loginRedirectParameter.{errorHandling.loginRedirectParameter}', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: value
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
</f:switch>
|
||||
</ul>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="detail.site_configuration.error_handling" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<f:translate key="detail.not_configured" domain="backend.siteconfiguration"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:comment><!-- Static routes --></f:comment>
|
||||
<f:if condition="{site.configuration.routes -> f:count()} > 0">
|
||||
<f:then>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#routes-handling-collapse"
|
||||
aria-controls="routes-handling-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="detail.site_configuration.static_routes" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="routes-handling-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<ul class="treelist">
|
||||
<f:for each="{site.configuration.routes}" as="route">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
{route.route}
|
||||
</span>
|
||||
</span>
|
||||
<ul class="treelist">
|
||||
<f:variable name="typeLabel" value="{f:translate(key:'site_route.type', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:if condition="{route.type} == 'uri'">
|
||||
<f:then>
|
||||
<f:variable name="typeValue" value="{f:translate(key:'site_route.source', domain:'backend.siteconfiguration_tca')}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:variable name="typeValue" value="{f:translate(key:'site_route.{route.type}', domain:'backend.siteconfiguration_tca')}" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: typeLabel,
|
||||
value: typeValue
|
||||
}"
|
||||
/>
|
||||
|
||||
<f:switch expression="{route.type}">
|
||||
<f:case value="staticText">
|
||||
<f:variable name="label" value="{f:translate(key:'site_route.staticText', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{route.content}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="uri">
|
||||
<f:variable name="label" value="{f:translate(key:'site_route.source', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{route.source}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="asset">
|
||||
<f:variable name="label" value="{f:translate(key:'site_route.asset', domain:'backend.siteconfiguration_tca')}" />
|
||||
<f:render
|
||||
section="TreeItem"
|
||||
arguments="{
|
||||
label: label,
|
||||
value: '{route.asset}'
|
||||
}"
|
||||
/>
|
||||
</f:case>
|
||||
</f:switch>
|
||||
</ul>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="detail.site_configuration.static_routes" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<f:translate key="detail.not_configured" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:comment><!-- Route enhancers --></f:comment>
|
||||
<f:if condition="{site.configuration.routeEnhancers -> f:count()} > 0">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#route-enhancers-collapse"
|
||||
aria-controls="route-enhancers-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="detail.site_configuration.route_enhancers" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="route-enhancers-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<ul class="treelist">
|
||||
<f:for each="{site.configuration.routeEnhancers}" as="enhancer" key="enhancerName" iteration="enhancerIterator">
|
||||
<li>
|
||||
<typo3-backend-tree-node-toggle
|
||||
class="treelist-control treelist-control-collapsed"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse-enhancer-{enhancerIterator.index}"
|
||||
aria-expanded="false"
|
||||
></typo3-backend-tree-node-toggle>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
{enhancerName}
|
||||
</span>
|
||||
</span>
|
||||
<div class="treelist-collapse collapse" id="collapse-enhancer-{enhancerIterator.index}" data-persist-collapse-state="true" data-persist-collapse-state-suffix="site-route-enhancers" data-persist-collapse-state-if-state="shown">
|
||||
<f:render section="RouteEnhancerConfig" arguments="{config: enhancer, enhancerIndex: enhancerIterator.index}" />
|
||||
</div>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<h2>
|
||||
<f:translate key="detail.site_settings.headline" domain="backend.siteconfiguration" />
|
||||
</h2>
|
||||
|
||||
<f:if condition="({site.sets -> f:count()} > 0) || ({localSettings.map -> f:count()} > 0) || ({categories -> f:count()} > 0)">
|
||||
<f:then>
|
||||
<f:comment><!-- Show dependencies --></f:comment>
|
||||
<f:if condition="{site.sets -> f:count()} > 0">
|
||||
<h3>
|
||||
<f:translate key="detail.site_settings.dependencies.headline" domain="backend.siteconfiguration" />
|
||||
</h3>
|
||||
<p>
|
||||
<f:sanitize.html><f:translate key="detail.site_settings.dependencies.text" domain="backend.siteconfiguration" /></f:sanitize.html>
|
||||
</p>
|
||||
<ul>
|
||||
<f:for each="{site.sets}" as="set" iteration="setIterator">
|
||||
<li><code>{set}</code></li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:if>
|
||||
|
||||
<h3>
|
||||
<f:translate key="detail.site_settings.active_settings.headline" domain="backend.siteconfiguration" />
|
||||
</h3>
|
||||
|
||||
<f:comment><!-- Settings from site configuration --></f:comment>
|
||||
<f:if condition="{localSettings.map -> f:count()} > 0">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#custom-settings-collapse"
|
||||
aria-controls="custom-settings-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="detail.site_settings.active_settings.custom_site_settings" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="custom-settings-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<ul class="treelist">
|
||||
<f:for each="{localSettings.map}" as="setting" key="key">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
{key}
|
||||
</span>
|
||||
<span class="treelist-operator">=</span>
|
||||
<span class="treelist-value">
|
||||
{setting -> f:format.json()}
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:comment><!-- Settings from site sets --></f:comment>
|
||||
<f:if condition="{categories -> f:count()} > 0">
|
||||
<f:for each="{categories}" as="category">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#siteset-{category.key}-collapse"
|
||||
aria-controls="siteset-{category.key}-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
{category.label}
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="siteset-{category.key}-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<f:if condition="{category.categories -> f:count()} > 0">
|
||||
<f:then>
|
||||
<f:comment><!-- Grouped settings --></f:comment>
|
||||
<ul class="treelist">
|
||||
<f:for each="{category.categories}" as="section">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">{section.label}</span>
|
||||
</span>
|
||||
<f:render section="Tree" arguments="{settings: '{section.settings}'}" />
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment><!-- Default --></f:comment>
|
||||
<f:render section="Tree" arguments="{settings: '{category.settings}'}" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:if>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:be.infobox
|
||||
title="{f:translate(key:'detail.site_settings.no_settings_found.title', domain:'backend.siteconfiguration')}"
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
>
|
||||
<f:sanitize.html><f:translate key="detail.site_settings.no_settings_found.message" domain="backend.siteconfiguration" /></f:sanitize.html>
|
||||
</f:be.infobox>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Tree">
|
||||
<ul class="treelist">
|
||||
<f:for each="{settings}" as="setting">
|
||||
<f:if condition="{setting.definition.label}">
|
||||
<li class="loose">
|
||||
<div class="treelist-comment">
|
||||
<div>
|
||||
# {setting.definition.label}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</f:if>
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
{setting.definition.key}
|
||||
</span>
|
||||
<span class="treelist-operator">=</span>
|
||||
<span class="treelist-value">
|
||||
{setting.renderedValue}
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:section>
|
||||
|
||||
<f:section name="TreeItem">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">
|
||||
{label}
|
||||
</span>
|
||||
<span class="treelist-operator">=</span>
|
||||
<span class="treelist-value">
|
||||
{value}
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
</f:section>
|
||||
|
||||
<f:section name="RouteEnhancerConfig">
|
||||
<ul class="treelist">
|
||||
<f:for each="{config}" as="propertyValue" key="propertyKey" iteration="propertyIterator">
|
||||
<f:render section="RouteEnhancerProperty" arguments="{label: propertyKey, value: propertyValue, idPrefix: 'enhancer-{enhancerIndex}-{propertyIterator.index}'}" />
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:section>
|
||||
|
||||
<f:section name="RouteEnhancerProperty">
|
||||
<f:if condition="{be:type.isArray(value: value)}">
|
||||
<f:then>
|
||||
<li>
|
||||
<typo3-backend-tree-node-toggle
|
||||
class="treelist-control treelist-control-collapsed"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse-{idPrefix}"
|
||||
aria-expanded="false"
|
||||
></typo3-backend-tree-node-toggle>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">{label}</span>
|
||||
</span>
|
||||
<div class="treelist-collapse collapse" id="collapse-{idPrefix}" data-persist-collapse-state="true" data-persist-collapse-state-suffix="site-route-enhancers" data-persist-collapse-state-if-state="shown">
|
||||
<ul class="treelist">
|
||||
<f:for each="{value}" as="subValue" key="subKey" iteration="subIterator">
|
||||
<f:render section="RouteEnhancerProperty" arguments="{label: subKey, value: subValue, idPrefix: '{idPrefix}-{subIterator.index}'}" />
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:render section="TreeItem" arguments="{label: label, value: value}" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:section>
|
||||
@@ -0,0 +1,32 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:layout name="Module" />
|
||||
|
||||
<f:section name="Content">
|
||||
|
||||
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/modal.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/site-inline-actions.js"/>
|
||||
|
||||
<f:render partial="SiteManagement/InvalidSets" arguments="{site: site}"/>
|
||||
|
||||
<form
|
||||
action="{f:be.uri(route:'site_configuration.save')}"
|
||||
method="post"
|
||||
enctype="multipart/form-data"
|
||||
name="editform"
|
||||
id="siteConfigurationController"
|
||||
>
|
||||
{formEngineHtml -> f:format.raw()}
|
||||
|
||||
<input type="hidden" name="returnUrl" value="{returnUrl}" />
|
||||
<input type="hidden" name="closeDoc" value="0" />
|
||||
<input type="hidden" name="rootPageId" value="{rootPageId}" />
|
||||
</form>
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,633 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:layout name="Module" />
|
||||
|
||||
<f:section name="Before">
|
||||
<f:asset.module identifier="@typo3/backend/modal.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
<h1><f:translate key="overview.title" domain="backend.siteconfiguration" /></h1>
|
||||
|
||||
<f:if condition="{rootPagesWithSiteConfiguration -> f:count()} || {rootPagesWithoutSiteConfiguration -> f:count()} || {unassignedSites -> f:count()}">
|
||||
<f:be.infobox
|
||||
title="{f:translate(key:'overview.status.title', domain:'backend.siteconfiguration')}"
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::NOTICE')}"
|
||||
>
|
||||
<ul>
|
||||
<f:if condition="{rootPagesWithSiteConfiguration -> f:count()}">
|
||||
<li>
|
||||
<f:sanitize.html>
|
||||
<f:translate
|
||||
key="overview.info.all_sites.{f:if(condition: '{rootPagesWithSiteConfiguration -> f:count()} === 1', then: 'single', else: 'multiple')}"
|
||||
domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{rootPagesWithSiteConfiguration -> f:count()}'
|
||||
}"
|
||||
/>
|
||||
</f:sanitize.html>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{rootPagesWithoutSiteConfiguration -> f:count()}">
|
||||
<li>
|
||||
<f:sanitize.html>
|
||||
<f:translate
|
||||
key="overview.info.root_pages_without_site_sonfiguration.{f:if(condition: '{rootPagesWithoutSiteConfiguration -> f:count()} === 1', then: 'single', else: 'multiple')}"
|
||||
domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{rootPagesWithoutSiteConfiguration -> f:count()}'
|
||||
}"
|
||||
/>
|
||||
</f:sanitize.html>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{unassignedSites -> f:count()}">
|
||||
<li>
|
||||
<f:sanitize.html>
|
||||
<f:translate
|
||||
key="overview.info.unassigned_sites.{f:if(condition: '{unassignedSites -> f:count()} === 1', then: 'single', else: 'multiple')}"
|
||||
domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{unassignedSites -> f:count()}'
|
||||
}"
|
||||
/>
|
||||
</f:sanitize.html>
|
||||
</li>
|
||||
</f:if>
|
||||
</ul>
|
||||
</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="overview.root_pages_without_site_configuration.title" domain="backend.siteconfiguration" /></h2>
|
||||
<f:if condition="!{rootPagesWithSiteConfiguration} && !{rootPagesWithoutSiteConfiguration}">
|
||||
<f:be.infobox
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.noPages.title')}"
|
||||
>
|
||||
<p>
|
||||
<f:translate key="overview.noPages.message" domain="backend.siteconfiguration" />
|
||||
</p>
|
||||
<p>
|
||||
<be:link.documentation identifier="t3start:create-root-page" class="btn btn-default">
|
||||
<f:translate key="overview.noPages.link.label" domain="backend.siteconfiguration" />
|
||||
</be:link.documentation>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{rootPagesWithSiteConfiguration}">
|
||||
<f:then>
|
||||
<f:if condition="{duplicatedRootPages}">
|
||||
<f:be.infobox title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.duplicatedRootPage')}" state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}">
|
||||
<ul>
|
||||
<f:for each="{duplicatedRootPages}" key="rootPage" as="duplicateSites">
|
||||
<li>
|
||||
<strong>
|
||||
<f:translate key="overview.duplicatedRootPage.message" domain="backend.siteconfiguration" arguments="{0: rootPage}" />
|
||||
</strong>
|
||||
<f:if condition="{duplicateSites}">
|
||||
<ul>
|
||||
<f:for each="{duplicateSites}" as="duplicateSite">
|
||||
<li>{duplicateSite}</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:if>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{duplicatedEntryPoints}">
|
||||
<f:be.infobox title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.duplicatedEntryPoints')}" state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}">
|
||||
<f:translate key="overview.duplicatedEntryPoints.listing" domain="backend.siteconfiguration" />
|
||||
<ul>
|
||||
<f:for each="{duplicatedEntryPoints}" key="item" as="schemes">
|
||||
<li>
|
||||
<strong>{item}</strong>
|
||||
<f:if condition="{schemes}">
|
||||
<ul>
|
||||
<f:for each="{schemes}" key="schema" as="count">
|
||||
<li>{schema} ({count})</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:if>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<f:render section="{viewMode.value}" arguments="{_all}" />
|
||||
</f:then>
|
||||
<f:else if="{rootPagesWithoutSiteConfiguration}">
|
||||
<f:be.infobox
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.no_sites_with_site_configuration.title')}"
|
||||
>
|
||||
<p>
|
||||
<f:translate key="overview.no_sites_with_site_configuration.message" domain="backend.siteconfiguration" />
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{rootPagesWithoutSiteConfiguration}">
|
||||
<h2>{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.rootPagesWithoutSiteConfiguration.title')}</h2>
|
||||
<p>
|
||||
<f:translate key="overview.rootPagesWithoutSiteConfiguration.description" domain="backend.siteconfiguration" />
|
||||
</p>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" class="nowrap"><f:translate key="overview.site" domain="backend.siteconfiguration" /></th>
|
||||
<th class="align-top"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{rootPagesWithoutSiteConfiguration}" as="page">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="pages"
|
||||
data-contextmenu-uid="{page.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}">
|
||||
<core:iconForRecord table="pages" row="{page}" />
|
||||
</button>
|
||||
</td>
|
||||
<td>
|
||||
{page.title}
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group">
|
||||
<f:be.link
|
||||
route="site_configuration.edit"
|
||||
parameters="{pageUid: page.uid}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-plus" />
|
||||
<f:translate key="overview.addSiteConfiguration" domain="backend.siteconfiguration" />
|
||||
</f:be.link>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{unassignedSites}">
|
||||
<h2>{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.unassignedSites.title')}</h2>
|
||||
<p>
|
||||
<f:translate key="overview.unassignedSites.description" domain="backend.siteconfiguration" />
|
||||
</p>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="nowrap"><f:translate key="overview.siteIdentifier" domain="backend.siteconfiguration" /></th>
|
||||
<th class="align-top"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{unassignedSites}" as="unassignedSite">
|
||||
<tr>
|
||||
<td>
|
||||
<code>{unassignedSite.identifier}</code>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group">
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
form="form-site-configuration-delete"
|
||||
name="site"
|
||||
value="{unassignedSite.identifier}"
|
||||
data-severity="error"
|
||||
data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.deleteSiteConfiguration')}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-button-ok-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:delete')}"
|
||||
>
|
||||
<core:icon identifier="actions-delete" />
|
||||
<f:translate key="overview.deleteSiteConfiguration" domain="backend.siteconfiguration" />
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{invalidSets}">
|
||||
<f:be.infobox
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::ERROR')}"
|
||||
title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.invalidSets.title')}"
|
||||
>
|
||||
<p>{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_siteconfiguration.xlf:overview.invalidSets.description')}</p>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><f:translate key="overview.invalidSets.set" domain="backend.siteconfiguration" /></th>
|
||||
<th><f:translate key="overview.invalidSets.error" domain="backend.siteconfiguration" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{invalidSets}" as="invalidSet">
|
||||
<tr>
|
||||
<td><code>{invalidSet.name}</code></td>
|
||||
<td>
|
||||
<f:translate key="{invalidSet.error.label}" arguments="{0: invalidSet.name, 1: invalidSet.context}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<form action="{be:moduleLink(route:'site_configuration.delete')}" id="form-site-configuration-delete" method="post" class="hidden"></form>
|
||||
</f:section>
|
||||
|
||||
<f:section name="list">
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" class="nowrap align-top"><f:translate key="overview.site" domain="backend.siteconfiguration" /></th>
|
||||
<th class="align-top"><f:translate key="overview.siteIdentifier" domain="backend.siteconfiguration" /></th>
|
||||
<th class="align-top"><f:translate key="site_language.language" domain="backend.siteconfiguration_tca" /></th>
|
||||
<th class="align-top"><f:translate key="overview.baseUrl" domain="backend.siteconfiguration" /></th>
|
||||
<th class="align-top"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{rootPagesWithSiteConfiguration}" as="page">
|
||||
<f:variable name="rootPage" value="{page}" />
|
||||
<f:for each="{page.rootline}" as="rootLinePage" iteration="rootLinePageIterator">
|
||||
<f:if condition="{rootLinePage.uid} == {page.uid}">
|
||||
<f:variable name="rootPage" value="{rootLinePage}" />
|
||||
</f:if>
|
||||
</f:for>
|
||||
<tr>
|
||||
<td class="col-icon align-top">
|
||||
<button type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="pages"
|
||||
data-contextmenu-uid="{rootPage.uid}"
|
||||
aria-label="{f:translate(key: 'labels.contextMenu.open', domain:'core.core')}">
|
||||
<core:iconForRecord table="pages" row="{rootPage}" />
|
||||
</button>
|
||||
</td>
|
||||
<td class="align-top">
|
||||
<f:if condition="{page.siteIdentifier}">
|
||||
<f:then>
|
||||
<f:be.link route="site_configuration.edit" parameters="{site: page.siteIdentifier}" title="{f:translate(key:'overview.editSiteConfiguration', domain:'backend.siteconfiguration')}">
|
||||
{rootPage.title}
|
||||
</f:be.link>
|
||||
</f:then>
|
||||
<f:else>
|
||||
{rootPage.title}
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="align-top">
|
||||
<f:if condition="{page.siteIdentifier}">
|
||||
<f:then>
|
||||
<code>{page.siteIdentifier}</code>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div>
|
||||
<f:be.link route="site_configuration.edit" parameters="{pageUid: page.uid}" class="btn btn-primary">
|
||||
<f:translate key="overview.addSiteConfiguration" domain="backend.siteconfiguration" />
|
||||
</f:be.link>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{page.siteConfiguration.invalidSets}">
|
||||
<f:render partial="SiteManagement/InvalidSets" arguments="{site: page.siteConfiguration}"/>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="align-top">
|
||||
<f:if condition="{page.siteConfiguration}">
|
||||
<f:for each="{page.siteConfiguration.allLanguages}" as="siteLanguage" iteration="siteLanguageIterator">
|
||||
<div class="{f:if(condition: '{siteLanguageIterator.isLast}', then: '', else: 'mb-2')}">
|
||||
<f:if condition="{siteLanguage.enabled}">
|
||||
<f:then>
|
||||
<core:icon identifier="{siteLanguage.flagIdentifier}" /> {siteLanguage.title} <code>[{siteLanguage.languageId}]</code>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<core:icon identifier="{siteLanguage.flagIdentifier}" overlay="overlay-hidden" />
|
||||
<span class="text-variant">{siteLanguage.title} (<f:translate key="disabled" domain="core.common">disabled</f:translate>) <code>[{siteLanguage.languageId}]</code></span>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="align-top">
|
||||
<f:if condition="{page.siteConfiguration}">
|
||||
<f:for each="{page.siteConfiguration.allLanguages}" as="siteLanguage" iteration="siteLanguageIterator">
|
||||
<div class="{f:if(condition: '{siteLanguageIterator.isLast}', then: '', else: 'mb-2')}">
|
||||
<a href="{siteLanguage.base}" target="_blank">{siteLanguage.base}</a>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="align-top nowrap col-control">
|
||||
<div class="btn-group">
|
||||
<f:if condition="{page.siteIdentifier}">
|
||||
<f:be.link
|
||||
route="site_configuration.detail"
|
||||
parameters="{site: page.siteIdentifier}"
|
||||
title="{f:translate(key:'overview.btn.details', domain:'backend.siteconfiguration')}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-system-options-view" />
|
||||
</f:be.link>
|
||||
<f:be.link
|
||||
route="site_configuration.edit"
|
||||
parameters="{site: page.siteIdentifier}"
|
||||
title="{f:translate(key:'overview.editSiteConfiguration', domain:'backend.siteconfiguration')}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</f:be.link>
|
||||
<f:if condition="{page.siteConfiguration.sets -> f:count()} > 0">
|
||||
<f:then>
|
||||
<f:variable name="returnUrl">{f:be.uri(route: 'site_configuration')}</f:variable>
|
||||
<f:be.link
|
||||
route="site_configuration.editSettings"
|
||||
parameters="{site: page.siteIdentifier, returnUrl: returnUrl}"
|
||||
title="{f:translate(key:'overview.editSiteSettings', domain:'backend.siteconfiguration')}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-cog" />
|
||||
</f:be.link>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<button
|
||||
disabled
|
||||
type="button"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key:'overview.editSiteSettingsUnavailable', domain:'backend.siteconfiguration')}}"
|
||||
>
|
||||
<core:icon identifier="actions-cog" />
|
||||
</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
form="form-site-configuration-delete"
|
||||
name="site"
|
||||
value="{page.siteIdentifier}"
|
||||
title="{f:translate(key:'overview.deleteSiteConfiguration', domain:'backend.siteconfiguration')}}"
|
||||
data-severity="error"
|
||||
data-title="{f:translate(key:'overview.deleteSiteConfiguration', domain:'backend.siteconfiguration')}}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-button-ok-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:delete')}"
|
||||
>
|
||||
<core:icon identifier="actions-delete" />
|
||||
</button>
|
||||
</f:if>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="tiles">
|
||||
<div class="card-container">
|
||||
<f:for each="{rootPagesWithSiteConfiguration}" as="page">
|
||||
<f:variable name="rootPage" value="{page}" />
|
||||
<f:for each="{page.rootline}" as="rootLinePage" iteration="rootLinePageIterator">
|
||||
<f:if condition="{rootLinePage.uid} == {page.uid}">
|
||||
<f:variable name="rootPage" value="{rootLinePage}" />
|
||||
</f:if>
|
||||
</f:for>
|
||||
<div class="card card-size-medium">
|
||||
<div class="card-header">
|
||||
<div class="card-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="pages"
|
||||
data-contextmenu-uid="{rootPage.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="pages" row="{rootPage}" size="medium" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-header-body">
|
||||
<h2 class="card-title">
|
||||
{rootPage.title}
|
||||
</h2>
|
||||
<f:if condition="{page.siteIdentifier}">
|
||||
<span class="card-subtitle">
|
||||
<code>{page.siteIdentifier}</code>
|
||||
</span>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
<f:if condition="{page.siteConfiguration}">
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item">
|
||||
<div class="d-sm-flex justify-content-sm-between">
|
||||
<strong>
|
||||
<f:translate key="overview.entry_point" domain="backend.siteconfiguration" />:
|
||||
</strong>
|
||||
<div>
|
||||
<a href="{page.siteConfiguration.base}" target="_blank">{page.siteConfiguration.base}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="d-sm-flex justify-content-sm-between">
|
||||
<strong>
|
||||
<f:translate key="overview.languages" domain="backend.siteconfiguration" />:
|
||||
</strong>
|
||||
<div>
|
||||
<core:icon identifier="{page.siteConfiguration.allLanguages.0.flagIdentifier}" /> {page.siteConfiguration.allLanguages.0.title}
|
||||
<f:if condition="{page.siteConfiguration.allLanguages -> f:count()} > 1">
|
||||
<f:variable name="siteLanguageAmount" value="{page.siteConfiguration.allLanguages -> f:count()}" />
|
||||
<f:translate
|
||||
key="overview.languages.amount" domain="backend.siteconfiguration"
|
||||
arguments="{
|
||||
0: '{siteLanguageAmount - 1}'
|
||||
}"
|
||||
/>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="d-sm-flex justify-content-sm-between">
|
||||
<strong>
|
||||
<f:translate key="overview.site_sets" domain="backend.siteconfiguration" />:
|
||||
</strong>
|
||||
<div>
|
||||
<f:if condition="{page.siteConfiguration.sets -> f:count()}">
|
||||
<f:then>
|
||||
<div class="d-none d-sm-inline">
|
||||
<core:icon identifier="actions-check" />
|
||||
<span class="visually-hidden">
|
||||
<f:translate key="overview.site_sets.yes" domain="backend.siteconfiguration" />
|
||||
</span>
|
||||
</div>
|
||||
<div class="d-inline d-sm-none">
|
||||
<f:translate key="overview.site_sets.yes" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:render section="none" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
<f:if condition="{page.siteConfiguration.invalidSets}">
|
||||
<f:render partial="SiteManagement/InvalidSets" arguments="{site: page.siteConfiguration}"/>
|
||||
</f:if>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="d-sm-flex justify-content-sm-between">
|
||||
<strong>
|
||||
<f:translate key="overview.error_handling" domain="backend.siteconfiguration" />:
|
||||
</strong>
|
||||
<div>
|
||||
<f:if condition="{page.siteConfiguration.configuration.errorHandling -> f:count()} > 0">
|
||||
<f:then>
|
||||
<f:for each="{page.siteConfiguration.configuration.errorHandling}" as="errorHandling" iteration="errorHandlingIterator">
|
||||
{errorHandling.errorCode}{f:if(condition: '{errorHandlingIterator.isLast}', then: '', else: ', ')}
|
||||
</f:for>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:render section="none" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="d-sm-flex justify-content-sm-between">
|
||||
<strong>
|
||||
<f:translate key="overview.static_routes" domain="backend.siteconfiguration" />:
|
||||
</strong>
|
||||
<div>
|
||||
<f:if condition="{page.siteConfiguration.configuration.routes -> f:count()} > 0">
|
||||
<f:then>
|
||||
<f:for each="{page.siteConfiguration.configuration.routes}" as="route" iteration="routeIterator">
|
||||
{route.route}{f:if(condition: '{routeIterator.isLast}', then: '', else: ', ')}
|
||||
</f:for>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:render section="none" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</f:if>
|
||||
<div class="card-footer">
|
||||
<f:if condition="{page.siteIdentifier}">
|
||||
<div class="d-flex justify-content-between">
|
||||
<div class="btn-group">
|
||||
<f:be.link
|
||||
route="site_configuration.detail"
|
||||
parameters="{site: page.siteIdentifier}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-system-options-view" />
|
||||
<f:translate key="overview.btn.details" domain="backend.siteconfiguration" />
|
||||
</f:be.link>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<f:be.link
|
||||
route="site_configuration.edit"
|
||||
parameters="{site: page.siteIdentifier}"
|
||||
title="{f:translate(key:'overview.editSiteConfiguration', domain:'backend.siteconfiguration')}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</f:be.link>
|
||||
<f:if condition="{page.siteConfiguration.sets -> f:count()} > 0">
|
||||
<f:then>
|
||||
<f:be.link
|
||||
route="site_configuration.editSettings"
|
||||
parameters="{site: page.siteIdentifier, returnUrl: returnUrl}"
|
||||
title="{f:translate(key:'overview.editSiteSettings', domain:'backend.siteconfiguration')}"
|
||||
class="btn btn-default"
|
||||
>
|
||||
<core:icon identifier="actions-cog" />
|
||||
</f:be.link>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<button
|
||||
disabled
|
||||
type="button"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key:'overview.editSiteSettingsUnavailable', domain:'backend.siteconfiguration')}"
|
||||
>
|
||||
<core:icon identifier="actions-cog" />
|
||||
</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
form="form-site-configuration-delete"
|
||||
name="site"
|
||||
value="{page.siteIdentifier}"
|
||||
title="{f:translate(key:'overview.deleteSiteConfiguration', domain:'backend.siteconfiguration')}"
|
||||
data-severity="error"
|
||||
data-title="{f:translate(key:'overview.deleteSiteConfiguration', domain:'backend.siteconfiguration')}"
|
||||
data-button-close-text="{f:translate(key:'cancel', domain: 'core.common')}"
|
||||
data-button-ok-text="{f:translate(key:'delete', domain: 'core.common')}"
|
||||
>
|
||||
<core:icon identifier="actions-delete" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="none">
|
||||
<div class="d-none d-sm-inline">
|
||||
<core:icon identifier="actions-close" />
|
||||
<span class="visually-hidden">
|
||||
<f:translate key="overview.none" domain="backend.siteconfiguration" />
|
||||
</span>
|
||||
</div>
|
||||
<div class="d-inline d-sm-none">
|
||||
<f:translate key="overview.none" domain="backend.siteconfiguration" />
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user