TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
<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="Content">
|
||||
<h1>{f:translate(key:'reports.messages:contentStatistics.title')}</h1>
|
||||
<p class="lead">{f:translate(key:'reports.messages:contentStatistics.description')}</p>
|
||||
|
||||
<f:if condition="{data.error}">
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::ERROR')}">{f:translate(key:'reports.messages:contentStatistics.existingElements.error')}</f:be.infobox>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.exists}">
|
||||
<h2>{f:translate(key:'reports.messages:contentStatistics.existingElements.header')}</h2>
|
||||
<p>{f:translate(key:'reports.messages:contentStatistics.existingElements.description')}</p>
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}">{f:translate(key:'reports.messages:contentStatistics.existingElements.explanation')}</f:be.infobox>
|
||||
<f:for each="{data.exists}" as="groupItem" key="group">
|
||||
<f:if condition="{groupItem.elements}">
|
||||
<f:if condition="{groupItem.header}">
|
||||
<h3>{f:translate(key:groupItem.header, default:groupItem.header)} ({groupItem.elements -> f:count()})</h3>
|
||||
</f:if>
|
||||
<f:for each="{groupItem.elements}" as="type" key="ctype" iteration="i">
|
||||
<f:render section="panel" arguments="{type:type, ctype:ctype, mode:'exists'}" />
|
||||
</f:for>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.unused}">
|
||||
<h2>{f:translate(key:'reports.messages:contentStatistics.unusedElements.header')}</h2>
|
||||
<p>{f:translate(key:'reports.messages:contentStatistics.unusedElements.description')}</p>
|
||||
<f:for each="{data.unused}" as="groupItem" key="group">
|
||||
<f:if condition="{groupItem.elements}">
|
||||
<f:if condition="{groupItem.header}">
|
||||
<h3>{f:translate(key:groupItem.header, default:groupItem.header)} ({groupItem.elements -> f:count()})</h3>
|
||||
</f:if>
|
||||
<div class="panel-group">
|
||||
<f:for each="{groupItem.elements}" as="type" key="ctype" iteration="i">
|
||||
<f:render section="panel" arguments="{type:type, ctype:ctype, mode:'unused'}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="panel">
|
||||
<div class="panel panel-default">
|
||||
<h4 class="panel-heading">
|
||||
<div class="panel-heading-row">
|
||||
<button class="panel-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapsible-panel-{ctype}" aria-expanded="false">
|
||||
<span class="caret"></span>
|
||||
<div class="panel-title">
|
||||
<f:if condition="{type.iconIdentifier}">
|
||||
<core:icon identifier="{type.iconIdentifier}" overlay="{type.iconOverlay}" />
|
||||
</f:if>
|
||||
{f:translate(key:type.title, default:type.title)}
|
||||
<code>[{ctype}]</code>
|
||||
</div>
|
||||
</button>
|
||||
<div>
|
||||
<f:if condition="{mode} == exists">
|
||||
<f:then>
|
||||
<f:translate key="reports.messages:contentStatistics.statistic.active_text" arguments="{0:type.count.visible, 1:type.count.hidden}" />
|
||||
</f:then>
|
||||
<f:else if="{type.count.deleted}">
|
||||
<f:translate key="reports.messages:contentStatistics.statistic.deleted_text" arguments="{0:type.count.deleted}" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<f:if condition="{type.count}">
|
||||
<div class="panel-actions">
|
||||
<a class="btn btn-default btn-sm" href="{be:moduleLink(route: 'system_reports_contentstatistics', arguments:{ctype:ctype})}">
|
||||
<core:icon identifier="actions-document-view" />
|
||||
{f:translate(key:'core.common:details')}
|
||||
</a>
|
||||
</div>
|
||||
</f:if>
|
||||
</div>
|
||||
</h4>
|
||||
<div class="panel-collapse collapse" id="collapsible-panel-{ctype}" aria-expanded="false">
|
||||
<div class="panel-body">
|
||||
<h4><f:translate key="reports.messages:contentStatistics.fields" arguments="{0:'{type.fields -> f:count()}'}" /></h4>
|
||||
<table class="table table-sm table-hover table-condensed table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{f:translate(key:'core.core:labels.th.name')}</th>
|
||||
<th>{f:translate(key:'reports.messages:contentStatistics.field.type')}</th>
|
||||
<th>{f:translate(key:'reports.messages:contentStatistics.field.not_excluded')}</th>
|
||||
<th>{f:translate(key:'reports.messages:contentStatistics.field.required')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{type.fields}" as="field">
|
||||
<tr>
|
||||
<td>{f:translate(key:field.label, default:field.label)} <code>[{field.name}]</code></td>
|
||||
<td>{field.type}</td>
|
||||
<td>{f:if(condition:'!{field.configuration.exclude}', then:'{core:icon(identifier:\'actions-check-circle\')}')}</td>
|
||||
<td>{f:if(condition:field.configuration.required, then:'{core:icon(identifier:\'actions-check-circle\')}')}</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,174 @@
|
||||
<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="Content">
|
||||
<h1>{f:translate(key:label, default:label)} <code>[{ctype}]</code></h1>
|
||||
<h2>{f:translate(key:'reports.messages:contentStatistics.statistic')}</h2>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>{f:translate(key:'core.general:LGL.enabled')}</th>
|
||||
<td>{count.visible}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{f:translate(key:'core.general:LGL.disabled')}</th>
|
||||
<td>{count.hidden}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{f:translate(key:'reports.messages:contentStatistics.statistic.deleted')}</th>
|
||||
<td>{count.deleted}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2 id="recordlist">{f:translate(key:'reports.messages:contentStatistics.records')}</h2>
|
||||
<f:if condition="{rows}">
|
||||
<f:then>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover table-border">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>UID</th>
|
||||
<th>{f:translate(key:'frontend.db.tt_content:header')}</th>
|
||||
<th>{f:translate(key:'core.core:labels.pid')}</th>
|
||||
<th>{f:translate(key:'core.core:labels.tstamp')}</th>
|
||||
<th>{f:translate(key:'core.core:labels.path')}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{rows}" as="row">
|
||||
<tr>
|
||||
<td class="nowrap">{row.uid}</td>
|
||||
<td class="col-title col-responsive nowrap">
|
||||
<be:link.editRecord
|
||||
returnUrl="{returnUrl}"
|
||||
table="tt_content"
|
||||
uid="{row.uid}"
|
||||
title="{f:translate(key:'core.mod_web_list:edit')}"
|
||||
>
|
||||
<span><core:iconForRecord table="tt_content" row="{row}" /></span>
|
||||
{row.header}
|
||||
</be:link.editRecord>
|
||||
</td>
|
||||
<td class="nowrap">{row.pid}</td>
|
||||
<td class="nowrap">{row.tstamp_formatted}</td>
|
||||
<td class="col-path nowrap">{row.path}</td>
|
||||
<td class="col-control nowrap">
|
||||
<div class="btn-group" role="group">
|
||||
<be:link.editRecord
|
||||
uid="{row.uid}"
|
||||
table="tt_content"
|
||||
class="btn btn-default"
|
||||
returnUrl="{returnUrl}"
|
||||
title="{f:translate(key:'core.mod_web_list:edit')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</be:link.editRecord>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:if condition="{paginator.numberOfPages} > 1">
|
||||
<nav class="pagination-wrap">
|
||||
<ul class="pagination">
|
||||
<f:if condition="{pagination.previousPageNumber}">
|
||||
<f:then>
|
||||
<li class="page-item">
|
||||
<a href="{f:be.uri(route:'system_reports_contentstatistics', parameters:'{ctype: ctype, page:1}')}#recordlist" title="{f:translate(extensionName: 'fluid', key:'widget.pagination.first')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-first" />
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a href="{f:be.uri(route:'system_reports_contentstatistics', parameters:'{ctype: ctype, page:pagination.previousPageNumber}')}#recordlist" title="{f:translate(extensionName: 'fluid', key:'widget.pagination.previous')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-previous" />
|
||||
</a>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<li class="page-item">
|
||||
<span class="page-link">
|
||||
{pagination.startRecordNumber} - {pagination.endRecordNumber}
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<span class="page-link">
|
||||
<f:translate extensionName="fluid" key="widget.pagination.page" />
|
||||
<f:variable name="goToPageUrl">
|
||||
<f:be.uri route="system_reports_contentstatistics" parameters="{action:'overview', page:987654322}" />
|
||||
</f:variable>
|
||||
<form data-on-submit="processNavigate" class="form-inline">
|
||||
<input type="number"
|
||||
value="{paginator.currentPageNumber}"
|
||||
name="paginator-target-page"
|
||||
class="form-control form-control-sm paginator-input"
|
||||
min="1"
|
||||
max="{paginator.numberOfPages}"
|
||||
data-number-of-pages="{paginator.numberOfPages}"
|
||||
data-url="{goToPageUrl}" />
|
||||
</form>
|
||||
/ {paginator.numberOfPages}
|
||||
</span>
|
||||
</li>
|
||||
<f:if condition="{pagination.nextPageNumber}">
|
||||
<f:then>
|
||||
<li class="page-item">
|
||||
<a href="{f:be.uri(route:'system_reports_contentstatistics', parameters:'{ctype: ctype, page: pagination.nextPageNumber}')}#recordlist" title="{f:translate(extensionName: 'fluid', key:'widget.pagination.next')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-next" />
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a href="{f:be.uri(route:'system_reports_contentstatistics', parameters:'{ctype: ctype, page: paginator.numberOfPages}')}#recordlist" title="{f:translate(extensionName: 'fluid', key:'widget.pagination.last')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-last" />
|
||||
</a>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<li class="page-item">
|
||||
<a href="{f:be.uri(route:'system_reports_contentstatistics', parameters:'{ctype: ctype, page: paginator.currentPageNumber}')}#recordlist" title="{f:translate(extensionName: 'fluid', key:'widget.pagination.refresh')}" class="page-link">
|
||||
<core:icon identifier="actions-refresh" />
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</f:if>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:be.infobox>{f:translate(key:'reports.messages:contentStatistics.noRecords')}</f:be.infobox>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:section>
|
||||
</html>
|
||||
@@ -0,0 +1,2 @@
|
||||
<f:layout name="SystemEmail" />
|
||||
<f:section name="Main">{message -> f:format.raw()}</f:section>
|
||||
@@ -0,0 +1,98 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:layout name="Module" />
|
||||
|
||||
<f:section name="Content">
|
||||
<h1>{f:translate(key:'title', domain:'reports.modules.statistics')}</h1>
|
||||
<p>{f:translate(key:'description', domain:'reports.modules.statistics')}</p>
|
||||
|
||||
|
||||
<h2>{f:translate(key:'pages', domain: 'reports.modules.statistics')}</h2>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<colgroup>
|
||||
<col width="24">
|
||||
<col>
|
||||
<col width="150">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"></th>
|
||||
<th>{f:translate(key:'count', domain: 'reports.modules.statistics')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{pages}" as="item" key="name">
|
||||
<tr>
|
||||
<td><f:format.raw>{item.icon}</f:format.raw></td>
|
||||
<td>{f:translate(key:'{name}', domain: 'reports.modules.statistics')}</td>
|
||||
<td>{item.count}</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2>{f:translate(key:'doktype', domain: 'reports.modules.statistics')}</h2>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<colgroup>
|
||||
<col width="24">
|
||||
<col>
|
||||
<col width="150">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>{f:translate(key:'doktype_value', domain: 'reports.modules.statistics')}</th>
|
||||
<th>{f:translate(key:'count', domain: 'reports.modules.statistics')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{doktypes}" as="item">
|
||||
<tr>
|
||||
<td><f:format.raw>{item.icon}</f:format.raw></td>
|
||||
<td>{item.title}</td>
|
||||
<td>{item.count}</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2>{f:translate(key:'tables', domain: 'reports.modules.statistics')}</h2>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<colgroup>
|
||||
<col width="24">
|
||||
<col>
|
||||
<col width="150">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>{f:translate(domain:'reports.modules.statistics', key:'label')}</th>
|
||||
<th>{f:translate(domain:'reports.modules.statistics', key:'tablename')}</th>
|
||||
<th>{f:translate(domain:'reports.modules.statistics', key:'total_lost')}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{tables}" key="name" as="item">
|
||||
<tr>
|
||||
<td><f:format.raw>{item.icon}</f:format.raw></td>
|
||||
<td>{item.title}</td>
|
||||
<td>{name}</td>
|
||||
<td>{item.count}</td>
|
||||
<td><f:format.raw>{item.lostRecords}</f:format.raw></td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:layout name="Module" />
|
||||
|
||||
<f:section name="Content">
|
||||
<h1>
|
||||
<f:translate key="title" domain="reports.modules.status" />
|
||||
</h1>
|
||||
<p>
|
||||
<f:translate key="description" domain="reports.modules.status" />
|
||||
</p>
|
||||
|
||||
<f:for each="{statusCollection}" as="statuses" key="title">
|
||||
<h2>{title}</h2>
|
||||
<div class="statusreport-wrapper">
|
||||
<f:for each="{statuses}" as="status">
|
||||
<div class="statusreport" data-severity="{status.severity.cssClass}">
|
||||
<div class="statusreport-indicator">
|
||||
<div class="statusreport-indicator-icon">
|
||||
<core:icon identifier="{severityIconMapping.{status.severity.value}}" size="default" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="statusreport-title">
|
||||
{status.title}
|
||||
</div>
|
||||
<div class="statusreport-body">
|
||||
<strong>{status.value}</strong><br>
|
||||
{status.message -> f:format.raw()}
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user