TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:24 +02:00
commit aad9daaefd
1506 changed files with 94005 additions and 0 deletions
@@ -0,0 +1,333 @@
<html
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module" />
<f:section name="Before">
<f:asset.module identifier="@typo3/form/backend/form-manager/main.js"/>
<f:for each="{stylesheets}" as="stylesheet">
<f:asset.css href="{stylesheet}" identifier="{stylesheet}"/>
</f:for>
</f:section>
<f:section name="Content">
<h1><f:translate key="form.database:formManager.headline" /></h1>
<f:if condition="{hasForms}">
<form
class="form-inline"
data-global-event="submit"
data-action-navigate="$form=~s/$value/"
data-navigate-value="{f:uri.action(action:'index', arguments:'{searchTerm: \'$[value]\', orderField: orderField, orderDirection: orderDirection}')}"
data-value-selector="input[name='searchTerm']"
>
<div class="form-row">
<div class="form-group">
<label for="search_field" class="form-label">
<f:translate id="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.searchString"/>
</label>
<div class="input-group">
<input
type="search"
autocomplete="off"
id="search_field"
name="searchTerm"
class="form-control"
value="{searchTerm}"
/>
<button class="btn btn-default" type="submit" name="search">
<f:translate id="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search"/>
</button>
</div>
</div>
</div>
</form>
</f:if>
<f:if condition="{paginator.paginatedItems}">
<f:then>
<div class="table-fit">
<table id="forms" class="table table-striped table-hover">
<thead>
<tr>
<th class="col-50 col-responsive" colspan="2">
<f:render section="listHeaderSorting" arguments="{field: 'name', label: 'formManager.form_name', searchTerm: searchTerm, orderField: orderField, orderDirection: orderDirection}"/>
</th>
<th class="col-path">
<f:render section="listHeaderSorting" arguments="{field: 'storageLocation', label: 'formManager.location', searchTerm: searchTerm, orderField: orderField, orderDirection: orderDirection}"/>
</th>
<th class="col-state">
<f:render section="listHeaderSorting" arguments="{field: 'duplicateIdentifier', label: 'formManager.integrity', searchTerm: searchTerm, orderField: orderField, orderDirection: orderDirection}"/>
</th>
<th class="col-state">
<f:render section="listHeaderSorting" arguments="{field: 'referenceCount', label: 'formManager.references', searchTerm: searchTerm, orderField: orderField, orderDirection: orderDirection}"/>
</th>
<th class="col-control">
<span class="visually-hidden">{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels._CONTROL_')}</span>
</th>
</tr>
</thead>
<tbody>
<f:for each="{paginator.paginatedItems}" as="form">
<tr>
<td class="col-icon">
<span title="identifier={form.identifier}"><core:icon identifier="content-form" overlay="{f:if(condition: form.invalid, then: 'overlay-missing', else: '{f:if(condition: form.readOnly, then: \'overlay-locked\')}')}" /></span>
</td>
<td class="col-50 col-responsive">
<f:if condition="{form.invalid} || {form.readOnly}">
<f:then>
{form.name}
<f:if condition="{form.invalid}">
<span class="badge badge-danger">
<f:translate key="form.database:formManager.invalid" />
</span>
</f:if>
</f:then>
<f:else>
<f:if condition="{form.editUrl}">
<f:then>
<a href="{form.editUrl}" title="{f:translate(key: 'form.database:formManager.edit_form')}">
{form.name}
</a>
</f:then>
<f:else>
{form.name}
</f:else>
</f:if>
</f:else>
</f:if>
</td>
<td class="col-50 col-path">
{form.storageLocation}
</td>
<td class="col-state">
<f:if condition="{form.invalid}">
<f:then>
<span title="{f:translate(key: 'form.database:formManager.invalid')}">
<core:icon identifier="status-dialog-error" />
</span>
</f:then>
<f:else if="{form.duplicateIdentifier}">
<span title="{f:translate(key: 'form.database:formManager.duplicate_identifier')}">
<core:icon identifier="status-dialog-error" />
</span>
</f:else>
</f:if>
</td>
<td class="col-state">
<f:if condition="{form.referenceCount}">
<f:then>
<a href="#" data-identifier="showReferences" data-form-persistence-identifier="{form.persistenceIdentifier}" data-form-name="{form.name}">
{form.referenceCount}
</a>
</f:then>
<f:else>-</f:else>
</f:if>
</td>
<td class="col-control">
<div class="btn-group" role="group">
<f:if condition="{form.invalid} || {form.readOnly}">
<f:then>
<span class="btn btn-default disabled" aria-hidden="true"><core:icon identifier="empty-empty" /></span>
</f:then>
<f:else>
<f:if condition="{form.editUrl}">
<f:then>
<a href="{form.editUrl}" class="btn btn-default" title="{f:translate(key: 'form.database:formManager.edit_form')}">
<core:icon identifier="actions-open" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled" aria-hidden="true"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
</f:else>
</f:if>
<f:if condition="{form.removable} && ({form.invalid} == '0') && ({form.referenceCount} == '0')">
<f:then>
<a
href="#"
class="btn btn-default"
data-bs-original-title="{f:translate(key: 'form.database:formManager.delete_form')}"
data-identifier="removeForm"
data-form-persistence-identifier="{form.persistenceIdentifier}"
data-form-name="{form.name}"
title="{f:translate(key: 'form.database:formManager.delete_form')}"
>
<core:icon identifier="actions-edit-delete" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled" aria-hidden="true"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
</div>
<div class="btn-group dropdown" role="group">
<f:if condition="{form.invalid}">
<f:then>
<span class="btn btn-default disabled" aria-hidden="true"><core:icon identifier="empty-empty" /></span>
</f:then>
<f:else>
<a
href="#actions-{form.identifier}"
class="btn btn-default dropdown-toggle dropdown-toggle-no-chevron"
data-bs-toggle="dropdown"
data-bs-boundary="window"
aria-expanded="false"
>
<core:icon identifier="actions-menu-alternative" />
</a>
<ul id="actions-{form.identifier}" class="dropdown-menu">
<li>
<a
href="#"
class="dropdown-item dropdown-item-spaced"
data-bs-original-title="{f:translate(id: 'form.database:formManager.duplicate_this_form')}"
data-identifier="duplicateForm"
data-form-persistence-identifier="{form.persistenceIdentifier}"
data-form-name="{form.name}"
>
<span class="dropdown-item-columns">
<span class="dropdown-item-column dropdown-item-column-icon text-{cacheAction.severity}">
<core:icon identifier="actions-duplicate" />
</span>
<span class="dropdown-item-column dropdown-item-column-text">
<f:translate id="form.database:formManager.duplicate_this_form" />
</span>
</span>
</a>
</li>
<f:if condition="{form.actions.recordHistoryUrl}">
<li>
<a class="dropdown-item dropdown-item-spaced"
href="{form.actions.recordHistoryUrl}"
title="{f:translate(id: 'form.database:formManager.showHistory')}">
<span class="dropdown-item-columns">
<span class="dropdown-item-column dropdown-item-column-icon">
<core:icon identifier="actions-document-history-open" />
</span>
<span class="dropdown-item-column dropdown-item-column-text">
<f:translate id="form.database:formManager.showHistory" />
</span>
</span>
</a>
</li>
</f:if>
</ul>
</f:else>
</f:if>
</div>
</td>
</tr>
</f:for>
</tbody>
<tfoot>
<tr>
<td colspan="6">
<f:variable name="totalAmountOfPaginatedItems" value="{paginator.paginatedItems -> f:count()}" />
<f:if condition="{paginator.paginatedItems -> f:count()} > 1">
<f:then>{totalAmountOfPaginatedItems} <f:translate key="form.database:formManager.table.amount.forms" /></f:then>
<f:else>{totalAmountOfPaginatedItems} <f:translate key="form.database:formManager.table.amount.form" /></f:else>
</f:if>
</td>
</tr>
</tfoot>
</table>
</div>
<f:render partial="Backend/FormManager/Pagination" arguments="{_all}" />
</f:then>
<f:else if="{hasForms}">
<f:be.infobox
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
title="{f:translate(key: 'form.database:formManager.forms_not_found.title')}"
>
<p><f:translate key="form.database:formManager.forms_not_found_by_search_term.message" arguments="{0: searchTerm}" /></p>
<a class="btn btn-primary" href="{f:be.uri(route:'web_FormFormbuilder')}">
<f:translate key="form.database:formManager.remove_search_term"/>
</a>
</f:be.infobox>
</f:else>
<f:else>
<f:be.infobox
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
title="{f:translate(key: 'form.database:formManager.forms_not_found.title')}"
>
<p><f:translate key="form.database:formManager.forms_not_found.message" /></p>
<a class="btn btn-primary" href="#" data-identifier="newForm"><f:translate key="form.database:formManager.create_new_form" /></a>
</f:be.infobox>
</f:else>
</f:if>
</f:section>
<f:section name="listHeaderSorting">
<div class="dropdown dropdown-static">
<button class="dropdown-toggle dropdown-toggle-link" type="button" data-bs-toggle="dropdown" aria-expanded="false">
<f:translate key="form.database:{label}"/>
<f:if condition="{orderField} === {field}">
<f:then>
<div class="text-primary">
<f:if condition="{orderDirection} === 'asc'">
<f:then>
<core:icon identifier="actions-sort-amount-up" />
</f:then>
<f:else>
<core:icon identifier="actions-sort-amount-down" />
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<div>
<core:icon identifier="empty-empty" />
</div>
</f:else>
</f:if>
</button>
<ul class="dropdown-menu">
<li>
<a
class="dropdown-item"
href="{f:uri.action(action:'index', arguments:'{searchTerm: searchTerm, orderField: field, orderDirection: \'asc\'}')}"
title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.asc')}"
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.asc')}"
>
<span class="dropdown-item-columns">
<span class="dropdown-item-column dropdown-item-column-icon text-primary">
<f:if condition="{orderField} === {field}">
<f:if condition="{orderDirection} === 'asc'">
<core:icon identifier="actions-dot" />
</f:if>
</f:if>
</span>
<span class="dropdown-item-column dropdown-item-column-title">
{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.asc')}
</span>
</span>
</a>
</li>
<li>
<a
class="dropdown-item"
href="{f:uri.action(action:'index', arguments:'{searchTerm: searchTerm, orderField: field, orderDirection: \'desc\'}')}"
title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.desc')}"
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.desc')}"
>
<span class="dropdown-item-columns">
<span class="dropdown-item-column dropdown-item-column-icon text-primary">
<f:if condition="{orderField} === {field}">
<f:if condition="{orderDirection} === 'desc'">
<core:icon identifier="actions-dot" />
</f:if>
</f:if>
</span>
<span class="dropdown-item-column dropdown-item-column-title">
{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.sorting.desc')}
</span>
</span>
</a>
</li>
</ul>
</div>
</f:section>
</html>