TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,290 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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/backend/element/immediate-action-element.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
|
||||
<f:variable name="args" value="{0: 'system', 1: '0'}" />
|
||||
<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">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.compare.title" /></h1>
|
||||
|
||||
<f:variable name="comparedUserAmount" value="{compareUserList -> f:count()}" />
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped-columns table-bordered table-vertical-top beuser-comparison-table">
|
||||
<colgroup>
|
||||
<col style="width: 15%;">
|
||||
<f:for each="{compareUserList}" as="tmpColumn">
|
||||
<col style="width: calc(85% / {comparedUserAmount})">
|
||||
</f:for>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<td></td>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<th scope="col">
|
||||
<div class="beuser-comparison-element">
|
||||
<div class="beuser-comparison-element__title">
|
||||
<span title="id={compareData.user.uid}">
|
||||
<core:iconForRecord table="be_users" row="{compareData.user}"/>
|
||||
</span>
|
||||
<span>{compareData.user.username}<f:if condition="{showUid}" > <code>[{compareData.user.uid}]</code></f:if></span>
|
||||
</div>
|
||||
<div class="beuser-comparison-element__action">
|
||||
<backend:link.editRecord
|
||||
table="be_users"
|
||||
uid="{compareData.user.uid}"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
|
||||
<f:form.button
|
||||
form="form-remove-from-compare-list"
|
||||
name="uid"
|
||||
value="{compareData.user.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" size="small" />
|
||||
</f:form.button>
|
||||
</div>
|
||||
</div>
|
||||
</th>
|
||||
</f:for>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:admin" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.user.admin}">
|
||||
<f:then>
|
||||
<span class="text-success"><core:icon identifier="actions-check" size="small" /></span>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<span class="text-danger"><core:icon identifier="actions-close" size="small" /></span>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:no" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{showUid}"> <code>[{compareData.user.admin}]</code></f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:name" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>{compareData.user.realName}</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:email" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
{compareData.user.email}
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:avatar" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<backend:avatar backendUser="{compareData.user.uid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:disable" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.user.disable}">
|
||||
<f:then>
|
||||
<span class="text-danger"><core:icon identifier="actions-close" size="small" /></span>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:no" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<span class="text-success"><core:icon identifier="actions-check" size="small" /></span>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{showUid}"> <code>[{compareData.user.disable}]</code></f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:startDateAndTime" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.user.starttime}">
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareData.user.starttime}</f:format.date>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:endDateAndTime" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.user.endtime}">
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareData.user.endtime}</f:format.date>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:lastLogin" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.user.lastlogin}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareData.user.lastlogin}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:never" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.description" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
{compareData.user.description -> f:format.nl2br()}
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="groups" arguments="{groups: compareData.groups, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="languages" arguments="{languages: compareData.languages, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="pageTypes" arguments="{pageTypes: compareData.pageTypes, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:if condition="{compareData.pageContentTypes}">
|
||||
<f:render partial="Compare/Information" section="pageContentTypes" arguments="{pageContentTypes: compareData.pageContentTypes, showUid: showUid}" />
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="nonExcludeFields"
|
||||
arguments="{
|
||||
nonExcludeFields: compareData.non_exclude_fields,
|
||||
id: compareData.user.uid,
|
||||
showUid: showUid
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="workspaces" arguments="{workspaces: compareData.workspaces, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="dbMounts" arguments="{dbMounts: compareData.dbMounts, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="fileMounts" arguments="{fileMounts: compareData.fileMounts, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="fileFolderPermissions" arguments="{fileFolderPermissions: compareData.fileFolderPermissions, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="categories" arguments="{categories: compareData.categories, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:options" /></th>
|
||||
<f:for each="{compareUserList}" as="compareData">
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{compareData.tsconfig}">
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="tsconfig"
|
||||
arguments="{
|
||||
tsconfig: compareData.tsconfig,
|
||||
id:compareData.user.uid,
|
||||
showUid: showUid
|
||||
}"
|
||||
/>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:form action="removeFromCompareList" method="post" id="form-remove-from-compare-list" class="hidden">
|
||||
<f:form.hidden name="redirectToCompare" value="1"/>
|
||||
</f:form>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,116 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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="Content">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.title" /></h1>
|
||||
|
||||
<f:if condition="{compareUserList}">
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.section.compare" /></h2>
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-list-compare" class="table table-striped table-hover">
|
||||
<thead>
|
||||
<th colspan="3"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:userName" /> / <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:realName" /></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>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<tr>
|
||||
<td class="col-indicator">
|
||||
<f:if condition="{onlineBackendUsers.{compareUser.uid}}">
|
||||
<typo3-backend-status-indicator state="success" live label="{f:translate(key:'backendUser.list.label.online', domain:'beuser.messages')}"></typo3-backend-status-indicator>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="col-avatar">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="be_users"
|
||||
data-contextmenu-uid="{compareUser.uid}"
|
||||
title="{f:if(condition: '{compareUser.description}', then: '{compareUser.description} (id={compareUser.uid})', else: 'id={compareUser.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<backend:avatar backendUser="{compareUser.uid}" showIcon="true" />
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="be_users"
|
||||
uid="{compareUser.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
>
|
||||
<f:if condition="{compareUser.realName}">
|
||||
<f:then>
|
||||
{compareUser.realName}
|
||||
<br>
|
||||
<span class="text-variant">({compareUser.username})</span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
{compareUser.username}
|
||||
</f:else>
|
||||
</f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<backend:link.editRecord
|
||||
class="btn btn-default"
|
||||
table="be_users"
|
||||
uid="{compareUser.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:form.button
|
||||
form="form-remove-from-compare-list"
|
||||
name="uid"
|
||||
value="{compareUser.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" />
|
||||
</f:form.button>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<f:if condition="{compareUserList -> f:count()} > 1">
|
||||
<f:then>{compareUserList -> f:count()} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:users" /></f:then>
|
||||
<f:else>{compareUserList -> f:count()} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:user" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<f:link.action action="compare" class="btn btn-default t3js-acceptance-compare">
|
||||
<core:icon identifier="actions-code-compare" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.btn.compareList" />
|
||||
</f:link.action>
|
||||
<f:form.button type="submit" class="btn btn-default" form="form-remove-all-from-compare-list">
|
||||
<core:icon identifier="actions-selection-delete" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.clearCompareList" />
|
||||
</f:form.button>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.section.allUsers" /></h2>
|
||||
</f:if>
|
||||
<f:render partial="BackendUser/Filter" arguments="{demand: demand, backendUserGroups: backendUserGroups}" />
|
||||
<f:render partial="BackendUser/PaginatedList" arguments="{_all}" />
|
||||
|
||||
<f:form action="initiatePasswordReset" method="post" id="form-initiate-password-reset" class="hidden"/>
|
||||
<f:form action="removeFromCompareList" method="post" id="form-remove-from-compare-list" class="hidden"/>
|
||||
<f:form action="addToCompareList" method="post" id="form-add-to-compare-list" class="hidden"/>
|
||||
<f:form action="removeAllFromCompareList" method="post" id="form-remove-all-from-compare-list" class="hidden"/>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,119 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:beuser="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers"
|
||||
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="Content">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.online.title" /></h1>
|
||||
<div class="table-fit">
|
||||
<table class="table beuser-online-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:userName" /> / <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:realName" /></th>
|
||||
<th class="col-50"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.online.table.column.ipAddress" /></th>
|
||||
<th class="col-datetime"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.online.table.column.lastAccess" /></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>
|
||||
<f:for each="{onlineUsersAndSessions}" as="onlineUser">
|
||||
<tbody>
|
||||
<f:for each="{onlineUser.sessions}" as="session" iteration="backendUserIterator">
|
||||
<f:variable name="sessionAmount" value="{onlineUser.sessions -> f:count()}" />
|
||||
<tr{f:if(condition: '({sessionAmount} > 1) && !{backendUserIterator.isFirst}', then: ' class="beuser-online-table_row"')}>
|
||||
<f:if condition="{backendUserIterator.isFirst}">
|
||||
<f:then>
|
||||
<td {f:if(condition: '{sessionAmount} > 1', then: 'rowspan="{sessionAmount}" class="col-avatar align-top"', else: 'class="col-avatar"')}>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="be_users"
|
||||
data-contextmenu-uid="{onlineUser.backendUser.uid}"
|
||||
title="{f:if(condition: '{onlineUser.backendUser.description}', then: '{onlineUser.backendUser.description} (id={onlineUser.backendUser.uid})', else: 'id={onlineUser.backendUser.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<backend:avatar backendUser="{onlineUser.backendUser.uid}" showIcon="true" />
|
||||
</button>
|
||||
</td>
|
||||
<td {f:if(condition: '{sessionAmount} > 1', then: 'rowspan="{sessionAmount}" class="col-min align-top border-end"', else: 'class="col-min"')}>
|
||||
<backend:link.editRecord table="be_users" uid="{onlineUser.backendUser.uid}" title="{f:translate(key:'btn.edit')}">
|
||||
<f:if condition="{onlineUser.backendUser.realName}">
|
||||
<f:then>
|
||||
{onlineUser.backendUser.realName}
|
||||
<beuser:mfaStatus userUid="{onlineUser.backendUser.uid}"/><br>
|
||||
<span class="text-variant">({onlineUser.backendUser.userName})</span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
{onlineUser.backendUser.userName}
|
||||
<beuser:mfaStatus userUid="{onlineUser.backendUser.uid}"/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
</f:then>
|
||||
</f:if>
|
||||
<td class="col-50">{session.ip}</td>
|
||||
<td class="col-datetime">
|
||||
<f:format.date format="{dateFormat} {timeFormat}" date="{session.timestamp}" />
|
||||
<f:if condition="{currentSessionId} == {session.id}">
|
||||
<span class="badge badge-notice"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.online.activeSession" /></span>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<f:if condition="{currentSessionId} == {session.id}">
|
||||
<f:else>
|
||||
<f:form.button
|
||||
name="sessionId"
|
||||
value="{session.id}"
|
||||
form="form-terminate-backend-user-session"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
title="{f:translate(key: 'resetPassword.label')}"
|
||||
type="submit"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key: 'backendUser.online.endSession')}"
|
||||
data-content="{f:translate(key: 'backendUser.online.reallyLogout')} {onlineUser.backendUser.userName}?"
|
||||
data-button-close-text="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
>
|
||||
<core:icon identifier="actions-close" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.online.endSession" />
|
||||
</f:form.button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="#"
|
||||
data-dispatch-action="TYPO3.InfoWindow.showItem"
|
||||
data-dispatch-args-list="be_users,{onlineUser.backendUser.uid}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-document-info" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</f:for>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<f:variable name="onlineUsersAndSessionsCount">{onlineUsersAndSessions -> f:count()}</f:variable>
|
||||
<f:if condition="{onlineUsersAndSessionsCount} > 1">
|
||||
<f:then>{onlineUsersAndSessionsCount} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:users" /></f:then>
|
||||
<f:else>{onlineUsersAndSessionsCount} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:user" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:form id="form-terminate-backend-user-session" action="terminateBackendUserSession" controller="BackendUser" method="post"class="hidden" />
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,578 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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/backend/element/immediate-action-element.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
|
||||
<f:variable name="args" value="{0: 'system', 1: data.user.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">
|
||||
|
||||
<h1>
|
||||
<f:translate
|
||||
key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.title"
|
||||
arguments="{
|
||||
0: '{data.user.username}'
|
||||
}"
|
||||
/>
|
||||
</h1>
|
||||
|
||||
<f:be.infobox
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.infobox.title')}"
|
||||
message="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.infobox.message')}"
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
/>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover table-vertical-top">
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:admin" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.admin}">
|
||||
<f:then>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:no" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:userName" /></th>
|
||||
<td class="col-word-break">
|
||||
{data.user.username}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:name" /></th>
|
||||
<td class="col-word-break">
|
||||
{data.user.realName}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:email" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.email}">
|
||||
<f:link.email email="{data.user.email}"/>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:avatar" /></th>
|
||||
<td class="col-word-break">
|
||||
<backend:avatar backendUser="{data.user.uid}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:disable" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.disable}">
|
||||
<f:then>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:no" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:startDateAndTime" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.starttime}">
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{data.user.starttime}</f:format.date>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:endDateAndTime" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.endtime}">
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{data.user.endtime}</f:format.date>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:lastLogin" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.user.lastlogin}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{data.user.lastlogin}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:never" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.description" /></th>
|
||||
<td class="col-word-break">
|
||||
{data.user.description -> f:format.nl2br()}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:groups" /></h2>
|
||||
<f:if condition="{data.groups.all}">
|
||||
<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="#permission-group-groups-collapse"
|
||||
aria-controls="permission-group-groups-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-groups-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="groups"
|
||||
arguments="{
|
||||
groups: data.groups,
|
||||
hasColumnClasses: 1
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:languages" /></h2>
|
||||
<f:if condition="{data.languages}">
|
||||
<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="#permission-group-languages-collapse"
|
||||
aria-controls="permission-group-languages-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-languages-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="languages" arguments="{languages: data.languages}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:permissions" /></h2>
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:generalPermissions" /></h3>
|
||||
<f:if condition="{data.modules}">
|
||||
<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="#permission-group-modules-collapse"
|
||||
aria-controls="permission-group-modules-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:userMods" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-modules-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="modules" arguments="{modules: data.modules}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:userMods" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.pageTypes}">
|
||||
<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="#permission-group-pageType-collapse"
|
||||
aria-controls="permission-group-pageType-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-pageType-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="pageTypes" arguments="{pageTypes: data.pageTypes}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.pageContentTypes}">
|
||||
<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="#permission-group-pageContentTypes-collapse"
|
||||
aria-controls="permission-group-pageContentTypes-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-pageContentTypes-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="pageContentTypes" arguments="{pageContentTypes: data.pageContentTypes}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.tables.all}">
|
||||
<f:then>
|
||||
<h3 class="headline-spaced"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.tables" /></h3>
|
||||
<f:render partial="Compare/Information" section="tables" arguments="{tables: data.tables}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.tables" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.non_exclude_fields}">
|
||||
<f:then>
|
||||
<h3 class="headline-spaced"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" /></h3>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="nonExcludeFields"
|
||||
arguments="{
|
||||
nonExcludeFields: data.non_exclude_fields,
|
||||
id: data.user.uid
|
||||
}"
|
||||
/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:mountsWorkspaces" /></h2>
|
||||
<f:if condition="{data.workspaces} && {data.workspaces.record.uid}">
|
||||
<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="#permission-group-workspaces-collapse"
|
||||
aria-controls="permission-group-workspaces-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-workspaces-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="workspaces" arguments="{workspaces: data.workspaces}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.dbMounts}">
|
||||
<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="#permission-group-dbMounts-collapse"
|
||||
aria-controls="permission-group-dbMounts-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-dbMounts-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="dbMounts" arguments="{dbMounts: data.dbMounts}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.fileMounts}">
|
||||
<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="#permission-group-fileMounts-collapse"
|
||||
aria-controls="permission-group-fileMounts-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-fileMounts-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="fileMounts" arguments="{fileMounts: data.fileMounts}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.fileFolderPermissions}">
|
||||
<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="#permission-group-fileFolderPermissions-collapse"
|
||||
aria-controls="permission-group-fileFolderPermissions-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-fileFolderPermissions-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="fileFolderPermissions" arguments="{fileFolderPermissions: data.fileFolderPermissions}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.categories}">
|
||||
<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="#permission-group-categories-collapse"
|
||||
aria-controls="permission-group-categories-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-categories-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="categories" arguments="{categories: data.categories}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:options" /></h2>
|
||||
<f:if condition="{data.tsconfig}">
|
||||
<f:then>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="tsconfig"
|
||||
arguments="{
|
||||
tsconfig: data.tsconfig,
|
||||
id: data.user.uid
|
||||
}"
|
||||
/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:TSconfig" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,217 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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/backend/element/immediate-action-element.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
|
||||
<f:variable name="args" value="{0: 'system', 1: '0'}" />
|
||||
<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">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.compare.title" /></h1>
|
||||
|
||||
<f:variable name="comparedUserGroupAmount" value="{compareGroupList -> f:count()}" />
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped-columns table-bordered table-vertical-top beuser-comparison-table">
|
||||
<colgroup>
|
||||
<col style="width: 15%;">
|
||||
<f:for each="{compareGroupList}" as="tmpColumn">
|
||||
<col style="width: calc(85% / {comparedUserGroupAmount})">
|
||||
</f:for>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<td></td>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<th scope="col">
|
||||
<div class="beuser-comparison-element">
|
||||
<div class="beuser-comparison-element__title">
|
||||
<span title="id={compareData.group.uid}">
|
||||
<core:iconForRecord table="be_groups" row="{compareData.group}"/>
|
||||
</span>
|
||||
<span>{compareData.group.title}<f:if condition="{showUid}"> <code>[{compareData.group.uid}]</code></f:if></span>
|
||||
</div>
|
||||
<div class="beuser-comparison-element__action">
|
||||
<backend:link.editRecord
|
||||
table="be_groups"
|
||||
uid="{compareData.group.uid}"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:form.button
|
||||
form="form-remove-group-from-compare-list"
|
||||
name="uid"
|
||||
value="{compareData.group.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" size="small" />
|
||||
</f:form.button>
|
||||
</div>
|
||||
</div>
|
||||
</th>
|
||||
</f:for>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.description" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
{compareData.group.description -> f:format.nl2br()}
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="groups" arguments="{groups: compareData.groups, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="languages" arguments="{languages: compareData.languages, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:userMods" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="modules" arguments="{modules: compareData.modules, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="pageTypes" arguments="{pageTypes: compareData.pageTypes, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.tables" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="tables"
|
||||
arguments="{
|
||||
tables: compareData.tables,
|
||||
id:compareData.group.uid,
|
||||
showUid: showUid
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="pageContentTypes" arguments="{pageContentTypes: compareData.pageContentTypes, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="nonExcludeFields"
|
||||
arguments="{
|
||||
nonExcludeFields: compareData.non_exclude_fields,
|
||||
id: compareData.group.uid,
|
||||
showUid: showUid
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="workspaces" arguments="{workspaces: compareData.workspaces}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="dbMounts" arguments="{dbMounts: compareData.dbMounts, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="fileMounts" arguments="{fileMounts: compareData.fileMounts, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="fileFolderPermissions" arguments="{fileFolderPermissions: compareData.fileFolderPermissions, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td>
|
||||
<f:render partial="Compare/Information" section="categories" arguments="{categories: compareData.categories, showUid: showUid}" />
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:options" /></th>
|
||||
<f:for each="{compareGroupList}" as="compareData">
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{compareData.tsconfig}">
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="tsconfig"
|
||||
arguments="{
|
||||
tsconfig: compareData.tsconfig,
|
||||
id:compareData.group.uid
|
||||
}"
|
||||
/>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:form action="removeGroupFromCompareList" method="post" id="form-remove-group-from-compare-list" class="hidden">
|
||||
<f:form.hidden name="redirectToCompare" value="1"/>
|
||||
</f:form>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,114 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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="Content">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.title" /></h1>
|
||||
<f:if condition="{totalAmountOfBackendUserGroups} > 0">
|
||||
<f:then>
|
||||
<f:if condition="{compareGroupList}">
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.section.compare" /></h2>
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-list-compare" class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.table.column.groupTitle" /></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="{compareGroupList}" as="compareGroup">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="be_groups"
|
||||
data-contextmenu-uid="{compareGroup.uid}"
|
||||
title="{f:if(condition: '{compareGroup.description}', then: '{compareGroup.description} (id={compareGroup.uid})', else: 'id={compareGroup.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="be_groups" row="{compareGroup}"/>
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="be_groups"
|
||||
uid="{compareGroup.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
>
|
||||
{compareGroup.title}
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<backend:link.editRecord
|
||||
class="btn btn-default"
|
||||
table="be_groups"
|
||||
uid="{compareGroup.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:form.button
|
||||
form="form-remove-group-from-compare-list"
|
||||
name="uid"
|
||||
value="{compareGroup.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" />
|
||||
</f:form.button>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<f:if condition="{compareGroupList -> f:count()} > 1">
|
||||
<f:then>{compareGroupList -> f:count()} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:groups" /></f:then>
|
||||
<f:else>{compareGroupList -> f:count()} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:group" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<f:link.action action="compareGroups" class="btn btn-default t3js-acceptance-compare">
|
||||
<core:icon identifier="actions-code-compare" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.btn.compareList" />
|
||||
</f:link.action>
|
||||
<f:form.button type="submit" class="btn btn-default" form="form-remove-all-groups-from-compare-list">
|
||||
<core:icon identifier="actions-selection-delete" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.clearCompareList" />
|
||||
</f:form.button>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.section.allUserGroups" /></h2>
|
||||
</f:if>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}" title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.noGroupsFound.title')}">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.noGroupsFound.message"/></p>
|
||||
<backend:link.newRecord returnUrl="{returnUrl}" class="btn btn-primary" table="be_groups">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.backendUserGroup.create"/>
|
||||
</backend:link.newRecord>
|
||||
</f:be.infobox>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:render partial="BackendUserGroup/Filter" arguments="{userGroupDto: userGroupDto, backendUserGroups: backendUserGroups}" />
|
||||
<f:render partial="BackendUserGroup/PaginatedList" arguments="{_all}" />
|
||||
|
||||
<f:form action="removeGroupFromCompareList" method="post" id="form-remove-group-from-compare-list" class="hidden"/>
|
||||
<f:form action="addGroupToCompareList" method="post" id="form-add-group-to-compare-list" class="hidden"/>
|
||||
<f:form action="removeAllGroupsFromCompareList" method="post" id="form-remove-all-groups-from-compare-list" class="hidden"/>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,545 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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/backend/element/immediate-action-element.js"/>
|
||||
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
|
||||
<f:variable name="args" value="{0: 'system', 1: '0'}" />
|
||||
<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">
|
||||
<h1>
|
||||
<f:translate
|
||||
key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.show.title"
|
||||
arguments="{
|
||||
0: '{data.group.title}'
|
||||
}"
|
||||
/>
|
||||
</h1>
|
||||
|
||||
<f:be.infobox
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.show.infobox.title')}"
|
||||
message="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.show.infobox.message')}"
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
/>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover table-vertical-top">
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.title" /></th>
|
||||
<td class="col-word-break">
|
||||
{data.group.title}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:disable" /></th>
|
||||
<td class="col-word-break">
|
||||
<f:if condition="{data.group.hidden}">
|
||||
<f:then>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:no" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="col-fieldname"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.description" /></th>
|
||||
<td class="col-word-break">
|
||||
{data.group.description -> f:format.nl2br()}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:inheritance" /></h2>
|
||||
<f:if condition="{data.groups.diff}">
|
||||
<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="#permission-group-groups-collapse"
|
||||
aria-controls="permission-group-groups-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-groups-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="table-fit">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:information.groups.table.column.groupTitle" />
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{data.groups.all}" as="group">
|
||||
<f:if condition="{group.diff}">
|
||||
<tr>
|
||||
<td class="col-title col-responsive">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="be_groups"
|
||||
data-contextmenu-uid="{group.row.uid}"
|
||||
title="id={group.row.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="be_groups" row="{group.row}"/>
|
||||
</button>
|
||||
<backend:link.editRecord
|
||||
table="be_groups"
|
||||
uid="{group.row.uid}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
{group.row.title}<f:if condition="{showUid}"> <code>[{group.row.uid}]</code></f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:languages" /></h2>
|
||||
<f:if condition="{data.languages}">
|
||||
<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="#permission-group-languages-collapse"
|
||||
aria-controls="permission-group-languages-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-languages-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="languages" arguments="{languages: data.languages}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedLanguages" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:permissions" /></h2>
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:generalPermissions" /></h3>
|
||||
<f:if condition="{data.modules}">
|
||||
<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="#permission-group-modules-collapse"
|
||||
aria-controls="permission-group-modules-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:userMods" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-modules-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="modules" arguments="{modules: data.modules}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:userMods" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.pageTypes}">
|
||||
<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="#permission-group-pageType-collapse"
|
||||
aria-controls="permission-group-pageType-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-pageType-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="pageTypes" arguments="{pageTypes: data.pageTypes}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.pagetypes_select" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.pageContentTypes}">
|
||||
<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="#permission-group-pageContentTypes-collapse"
|
||||
aria-controls="permission-group-pageContentTypes-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-pageContentTypes-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="pageContentTypes" arguments="{pageContentTypes: data.pageContentTypes}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:allowedPageContentTypes" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.tables.all}">
|
||||
<f:then>
|
||||
<h3 class="headline-spaced"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.tables" /></h3>
|
||||
<f:render partial="Compare/Information" section="tables" arguments="{tables: data.tables}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.tables" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.non_exclude_fields}">
|
||||
<f:then>
|
||||
<h3 class="headline-spaced"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" /></h3>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="nonExcludeFields"
|
||||
arguments="{
|
||||
nonExcludeFields: data.non_exclude_fields,
|
||||
id: data.user.uid
|
||||
}"
|
||||
/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.non_exclude_fields" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:mountsWorkspaces" /></h2>
|
||||
<f:if condition="{data.workspaces} && {data.workspaces.record.uid}">
|
||||
<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="#permission-group-workspaces-collapse"
|
||||
aria-controls="permission-group-workspaces-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-workspaces-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="workspaces" arguments="{workspaces: data.workspaces}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:workspace_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.dbMounts}">
|
||||
<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="#permission-group-dbMounts-collapse"
|
||||
aria-controls="permission-group-dbMounts-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-dbMounts-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="dbMounts" arguments="{dbMounts: data.dbMounts}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:pageTreeEntryPoints" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.fileMounts}">
|
||||
<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="#permission-group-fileMounts-collapse"
|
||||
aria-controls="permission-group-fileMounts-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-fileMounts-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="fileMounts" arguments="{fileMounts: data.fileMounts}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:fileMounts" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.fileFolderPermissions}">
|
||||
<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="#permission-group-fileFolderPermissions-collapse"
|
||||
aria-controls="permission-group-fileFolderPermissions-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-fileFolderPermissions-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="fileFolderPermissions" arguments="{fileFolderPermissions: data.fileFolderPermissions}" />
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups.fileoper_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{data.categories}">
|
||||
<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="#permission-group-categories-collapse"
|
||||
aria-controls="permission-group-categories-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-categories-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<f:render partial="Compare/Information" section="categories" arguments="{categories: data.categories}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:category_perms" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
<h2><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:options" /></h2>
|
||||
<f:if condition="{data.tsconfig}">
|
||||
<f:then>
|
||||
<f:render
|
||||
partial="Compare/Information"
|
||||
section="tsconfig"
|
||||
arguments="{
|
||||
tsconfig: data.tsconfig,
|
||||
id: data.user.uid
|
||||
}"
|
||||
/>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:TSconfig" />
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.show.notConfigured" /></p>
|
||||
</div>
|
||||
</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,37 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
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="Content">
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.list.title" /></h1>
|
||||
<f:if condition="{totalAmountOfFilemounts} > 0">
|
||||
<f:then>
|
||||
<f:render partial="Filemount/PaginatedList" arguments="{_all}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:be.infobox
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.infobox.noFilemountFound.title')}"
|
||||
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
|
||||
>
|
||||
<p><f:translate key="filemount.infobox.noFilemountFound.message" /></p>
|
||||
<backend:link.newRecord
|
||||
table="sys_filemounts"
|
||||
returnUrl="{f:be.uri(route: 'backend_user_management')}"
|
||||
class="btn btn-default"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-add" />
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.create" />
|
||||
</backend:link.newRecord>
|
||||
</f:be.infobox>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:render partial="Permission/Groupname" arguments="{pageId: pageId, groupId: groupId, groupname: groupname}" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,43 @@
|
||||
<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"
|
||||
>
|
||||
|
||||
<span id="{elementId}">
|
||||
<div class="input-group">
|
||||
<select class="form-select form-select-sm" name="new_page_group" id="new_page_group">
|
||||
<f:if condition="{addCurrentGroup}">
|
||||
<f:then><option value="{groupUid}" selected>{groupname}</option></f:then>
|
||||
<f:else><option value="0"></option></f:else>
|
||||
</f:if>
|
||||
<f:for each="{groups}" key="uid" as="group">
|
||||
<option value="{uid}" {f:if(condition: '{uid} == {groupUid}', then: 'selected')}>{group.title}</option>
|
||||
</f:for>
|
||||
</select>
|
||||
<button
|
||||
type="button"
|
||||
class="savegroup btn btn-sm btn-default"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:changeGroup')}"
|
||||
data-page="{pageId}"
|
||||
data-group-id="{groupUid}"
|
||||
data-element-id="{elementId}"
|
||||
>
|
||||
<core:icon identifier="actions-document-save" size="small"/>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="restoregroup btn btn-sm btn-default"
|
||||
title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-page="{pageId}"
|
||||
data-group-id="{groupUid}"
|
||||
data-element-id="{elementId}"
|
||||
data-if-not-set="[not set]"
|
||||
{f:if(condition: groupname, then: 'data-groupname="{groupname}"')}
|
||||
>
|
||||
<core:icon identifier="actions-close" size="small"/>
|
||||
</button>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:render partial="Permission/Ownername" arguments="{pageId: pageId, userId: userId, username: username}" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,41 @@
|
||||
<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"
|
||||
>
|
||||
|
||||
<span id="{elementId}">
|
||||
<div class="input-group">
|
||||
<select class="form-select form-select-sm" name="new_page_owner" id="new_page_owner">
|
||||
<f:if condition="{addCurrentUser}">
|
||||
<f:then><option value="{ownerUid}" selected>{username}</option></f:then>
|
||||
<f:else><option value="0"></option></f:else>
|
||||
</f:if>
|
||||
<f:for each="{users}" key="uid" as="user">
|
||||
<option value="{uid}" {f:if(condition: '{uid} == {ownerUid}', then: 'selected')}>{user.username}</option>
|
||||
</f:for>
|
||||
</select>
|
||||
<button type="button"
|
||||
class="saveowner btn btn-sm btn-default"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:changeOwner')}"
|
||||
data-page="{pageId}"
|
||||
data-owner="{ownerUid}"
|
||||
data-element-id="{elementId}"
|
||||
>
|
||||
<core:icon identifier="actions-document-save" size="small"/>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="restoreowner btn btn-sm btn-default"
|
||||
title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-page="{pageId}"
|
||||
data-owner="{ownerUid}"
|
||||
data-element-id="{elementId}"
|
||||
data-if-not-set="[not set]"
|
||||
{f:if(condition: username, then: 'data-username="{username}"')}
|
||||
>
|
||||
<core:icon identifier="actions-close" size="small"/>
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html
|
||||
xmlns:beuser="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<beuser:permissions permission="{permission}" scope="{scope}" pageId="{pageId}" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,175 @@
|
||||
<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/beuser/permissions.js"/>
|
||||
|
||||
<h1>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:permissions" />:
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Edit" />
|
||||
</h1>
|
||||
|
||||
<f:comment><!-- {base} is defined as it's *required* for mathematical operations in Fluid --></f:comment>
|
||||
<f:variable name="base" value="2" />
|
||||
|
||||
<form action="{formAction}" method="post" name="editform" id="PermissionControllerEdit">
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="selectOwner"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></label>
|
||||
<select class="form-select" name="data[pages][{id}][perms_userid]" id="selectOwner">
|
||||
<f:for each="{beUserData}" key="userId" as="user">
|
||||
<option value="{userId}" {f:if(condition: '{userId} == {currentBeUser}', then: 'selected')}>{user}</option>
|
||||
</f:for>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="selectGroup"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></label>
|
||||
<f:if condition="{f:count(subject:beGroupData)} > 1">
|
||||
<f:then>
|
||||
<select class="form-select" name="data[pages][{id}][perms_groupid]" id="selectGroup">
|
||||
<f:for each="{beGroupData}" key="groupId" as="group">
|
||||
<option value="{groupId}" {f:if(condition: '{groupId} == {currentBeGroup}', then: 'selected')}>{group}</option>
|
||||
</f:for>
|
||||
</select>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="alert alert-notice"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:noGroups" /></div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="recursionLevel"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Depth" /></label>
|
||||
<select class="form-select" name="mirror[pages][{id}]" id="recursionLevel">
|
||||
<f:for each="{recursiveSelectOptions}" key="depth" as="depthLabel">
|
||||
<option value="{depth}" {f:if(condition: '{depth} == {currentBeUser}', then: 'selected')}>{depthLabel}</option>
|
||||
</f:for>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover" id="typo3-permissionMatrix">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></strong></td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_user][]" value="{base ^ 0}" data-check-change-permissions="check[perms_user],data[pages][{id}][perms_user]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_user][]" value="{base ^ 4}" data-check-change-permissions="check[perms_user],data[pages][{id}][perms_user]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_user][]" value="{base ^ 1}" data-check-change-permissions="check[perms_user],data[pages][{id}][perms_user]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_user][]" value="{base ^ 2}" data-check-change-permissions="check[perms_user],data[pages][{id}][perms_user]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_user][]" value="{base ^ 3}" data-check-change-permissions="check[perms_user],data[pages][{id}][perms_user]" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></strong></td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_group][]" value="{base ^ 0}" data-check-change-permissions="check[perms_group],data[pages][{id}][perms_group]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_group][]" value="{base ^ 4}" data-check-change-permissions="check[perms_group],data[pages][{id}][perms_group]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_group][]" value="{base ^ 1}" data-check-change-permissions="check[perms_group],data[pages][{id}][perms_group]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_group][]" value="{base ^ 2}" data-check-change-permissions="check[perms_group],data[pages][{id}][perms_group]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_group][]" value="{base ^ 3}" data-check-change-permissions="check[perms_group],data[pages][{id}][perms_group]" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Everybody" /></strong></td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_everybody][]" value="{base ^ 0}" data-check-change-permissions="check[perms_everybody],data[pages][{id}][perms_everybody]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_everybody][]" value="{base ^ 4}" data-check-change-permissions="check[perms_everybody],data[pages][{id}][perms_everybody]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_everybody][]" value="{base ^ 1}" data-check-change-permissions="check[perms_everybody],data[pages][{id}][perms_everybody]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_everybody][]" value="{base ^ 2}" data-check-change-permissions="check[perms_everybody],data[pages][{id}][perms_everybody]" />
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="form-check form-check-type-toggle">
|
||||
<input class="form-check-input" type="checkbox" name="check[perms_everybody][]" value="{base ^ 3}" data-check-change-permissions="check[perms_everybody],data[pages][{id}][perms_everybody]" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="data[pages][{id}][perms_user]" value="{pageInfo.perms_user}" data-checkbox-group="check[perms_user]" />
|
||||
<input type="hidden" name="data[pages][{id}][perms_group]" value="{pageInfo.perms_group}" data-checkbox-group="check[perms_group]" />
|
||||
<input type="hidden" name="data[pages][{id}][perms_everybody]" value="{pageInfo.perms_everybody}" data-checkbox-group="check[perms_everybody]" />
|
||||
<input type="hidden" name="depth" value="{depth}" />
|
||||
<input type="hidden" name="returnUrl" value="{returnUrl}" />
|
||||
</form>
|
||||
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Legend" /></h3>
|
||||
<p>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1_t" /> <br>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16_t" /> <br>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2_t" /> <br>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4_t" /> <br>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8_t" />
|
||||
</p>
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:def" /></p>
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,196 @@
|
||||
<html
|
||||
xmlns:backend="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:beuser="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers"
|
||||
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="Content">
|
||||
|
||||
<f:asset.module identifier="@typo3/beuser/permissions.js"/>
|
||||
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:permissions" /></h1>
|
||||
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover" id="typo3-permissionList">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="2"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></th>
|
||||
<th colspan="2"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Everybody" /></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<f:for each="{viewTree}" as="data">
|
||||
<tr>
|
||||
<f:if condition="{data.row.uid}">
|
||||
<f:then>
|
||||
<f:variable name="editUrl"><f:spaceless>
|
||||
<backend:moduleLink route="permissions_pages" arguments="{id: '{f:if(condition: data.row._ORIG_uid, then: data.row._ORIG_uid, else: data.row.uid)}', action: 'edit', depth: depth, returnUrl: returnUrl}" />
|
||||
</f:spaceless></f:variable>
|
||||
|
||||
<f:comment>
|
||||
A "normal" page row is rendered, not the root page
|
||||
</f:comment>
|
||||
|
||||
<td class="col-title col-responsive permission-column-name">
|
||||
<div class="treeline-container">
|
||||
<f:spaceless>
|
||||
{data.depthData -> f:format.raw()}{data.HTML -> f:format.raw()}
|
||||
<f:if condition="{data.icon}">{data.icon -> f:format.raw()}</f:if>
|
||||
</f:spaceless>
|
||||
<a class="treeline-label"
|
||||
href="{editUrl}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}"
|
||||
>{data.row.title}</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="permission-column-list">
|
||||
<beuser:permissions permission="{data.row.perms_user}" scope="user" pageId="{data.row.uid}" />
|
||||
</td>
|
||||
<td class="permission-column-group">
|
||||
<f:render
|
||||
partial="Permission/Ownername"
|
||||
arguments="{
|
||||
pageId: '{data.row.uid}',
|
||||
userId: '{data.row.perms_userid}',
|
||||
username: '{beuser:arrayElement(array:beUsers, key:data.row.perms_userid, subKey:\'username\')}'
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
|
||||
<td class="permission-column-list">
|
||||
<beuser:permissions permission="{data.row.perms_group}" scope="group" pageId="{data.row.uid}" />
|
||||
</td>
|
||||
<td class="permission-column-group">
|
||||
<f:render
|
||||
partial="Permission/Groupname"
|
||||
arguments="{
|
||||
pageId: '{data.row.uid}',
|
||||
groupId: '{data.row.perms_groupid}',
|
||||
groupname: '{beuser:arrayElement(array:beGroups, key:data.row.perms_groupid, subKey:\'title\')}'
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
|
||||
<td class="permission-column-list">
|
||||
<beuser:permissions permission="{data.row.perms_everybody}" scope="everybody" pageId="{data.row.uid}" />
|
||||
</td>
|
||||
|
||||
<td class="col-control">
|
||||
<span class="btn-group">
|
||||
<f:if condition="{data.row.editlock}">
|
||||
<f:then>
|
||||
<button
|
||||
type="button"
|
||||
class="editlock btn btn-sm btn-default"
|
||||
data-page="{data.row.uid}"
|
||||
data-lockstate="1"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr')}"
|
||||
>
|
||||
<core:icon identifier="actions-lock" />
|
||||
</button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<button
|
||||
type="button"
|
||||
class="editlock btn btn-sm btn-default"
|
||||
data-page="{data.row.uid}"
|
||||
data-lockstate="0"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr2')}"
|
||||
>
|
||||
<core:icon identifier="actions-unlock" />
|
||||
</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:comment>
|
||||
Edit link is workspace aware: If in ws, link to edit the ws overlay record is rendered
|
||||
</f:comment>
|
||||
<a href="{editUrl}"
|
||||
class="btn btn-sm btn-default"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}">
|
||||
<core:icon identifier="actions-open" />
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
Root page row is rendered
|
||||
</f:comment>
|
||||
<td class="permission-column-name">
|
||||
<f:format.raw>{data.HTML}</f:format.raw>
|
||||
<f:if condition="{data.icon}">{data.icon -> f:format.raw()}</f:if>
|
||||
{data.row.title -> f:format.crop(maxCharacters:20)}
|
||||
</td>
|
||||
<td colspan="6"></td>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Legend" />:</h3>
|
||||
<div class="access-legend">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">1</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">2</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">3</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="t3-vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">4</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><span class="number">5</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8_t" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:def" /></p>
|
||||
<p>
|
||||
<core:icon identifier="status-status-permission-granted" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Granted" /><br>
|
||||
<core:icon identifier="status-status-permission-denied" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Denied" />
|
||||
</p>
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,30 @@
|
||||
<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:if condition="{editLockState}">
|
||||
<f:then>
|
||||
<button type="button"
|
||||
class="editlock btn btn-sm btn-default"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr')}"
|
||||
data-page="{pageId}"
|
||||
data-lockstate="1"
|
||||
>
|
||||
<core:icon identifier="actions-lock" size="small" />
|
||||
</button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<button type="button"
|
||||
class="editlock btn btn-sm btn-default"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr2')}"
|
||||
data-page="{pageId}"
|
||||
data-lockstate="0"
|
||||
>
|
||||
<core:icon identifier="actions-unlock" size="small" />
|
||||
</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user