TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/Modules/permissions.xlf" date="2026-11-10T13:37:37Z" product-name="permissions">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="title">
|
||||
<source>Permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="short_description">
|
||||
<source>Manage page access permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="description">
|
||||
<source>Administers which backend users and groups can access and edit pages in the site tree. For each page, an owner user and group can be assigned, and read, write, and edit permissions defined. These settings control who can view or modify content within the page hierarchy.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/Modules/user_management.xlf" date="2026-11-10T13:37:37Z" product-name="user_management">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="title">
|
||||
<source>Users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="short_description">
|
||||
<source>Backend users management</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="description">
|
||||
<source>Administers backend user accounts and groups, and defines access permissions on records, files, and modules. Page-level read and write permissions can be managed separately in the Permissions module.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,430 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/locallang.xlf" date="2023-02-15T18:03:32Z" product-name="beuser">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="userName">
|
||||
<source>Username</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="avatar">
|
||||
<source>Avatar</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="realName">
|
||||
<source>Real name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="name">
|
||||
<source>Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="email">
|
||||
<source>Email</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin">
|
||||
<source>Admin</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="users">
|
||||
<source>Users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="user">
|
||||
<source>User</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="yes">
|
||||
<source>Yes</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="no">
|
||||
<source>No</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="never">
|
||||
<source>Never</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="disable">
|
||||
<source>Enabled</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="startDateAndTime">
|
||||
<source>Start</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="endDateAndTime">
|
||||
<source>Stop</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="lastLogin">
|
||||
<source>Last login</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="allowedLanguages">
|
||||
<source>Limit to languages</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pageTreeEntryPoints">
|
||||
<source>Page Tree Entry Points</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="fileMounts">
|
||||
<source>File mountpoints</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="groups">
|
||||
<source>Groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="inheritance">
|
||||
<source>Inheritance</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="group">
|
||||
<source>Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="languages">
|
||||
<source>Languages</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="categories">
|
||||
<source>Categories</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="permissions">
|
||||
<source>Permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="modules">
|
||||
<source>Modules</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tableModes.read">
|
||||
<source>Read</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tableModes.write">
|
||||
<source>Read & Write</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mountsWorkspaces">
|
||||
<source>Mounts and workspaces</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="options">
|
||||
<source>Options</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="allowedPageContentTypes">
|
||||
<source>Allowed page content types</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="generalPermissions">
|
||||
<source>General permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compare.tables">
|
||||
<source>Table permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compare.direct.inherit">
|
||||
<source>Inherit</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compare.direct.direct">
|
||||
<source>Direct</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="information.defaultLanguage">
|
||||
<source>Default</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="information.defaultWorkspace">
|
||||
<source>Default</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="information.groups.table.column.groupTitle">
|
||||
<source>Group title</source>
|
||||
</trans-unit>
|
||||
<!-- Docheader menu / Shortcut button title -->
|
||||
<trans-unit id="backendUser">
|
||||
<source>Backend User</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup">
|
||||
<source>Backend User Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUsers">
|
||||
<source>Backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserDetails">
|
||||
<source>Backend user details</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroupsMenu">
|
||||
<source>Backend user groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroupDetails">
|
||||
<source>Backend user group details</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compareBackendUsers">
|
||||
<source>Compare backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compareBackendUsersGroups">
|
||||
<source>Compare backend user groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="onlineUsers">
|
||||
<source>Online users</source>
|
||||
</trans-unit>
|
||||
<!-- Button / Links -->
|
||||
<trans-unit id="btn.addToCompareList">
|
||||
<source>Add to compare list</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.backendUser.create">
|
||||
<source>Create new backend user</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.editor.create">
|
||||
<source>Create editor</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.admin.create">
|
||||
<source>Create admin</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.backendUserGroup.create">
|
||||
<source>Create new backend user group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.clearCompareList">
|
||||
<source>Clear compare list</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.compare">
|
||||
<source>Compare</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.delete">
|
||||
<source>Delete</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.details">
|
||||
<source>Show details</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.disable">
|
||||
<source>Disable</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.edit">
|
||||
<source>Edit</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.enable">
|
||||
<source>Enable</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.info">
|
||||
<source>Info</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="btn.removeFromCompareList">
|
||||
<source>Remove from compare list</source>
|
||||
</trans-unit>
|
||||
<!-- Filter -->
|
||||
<trans-unit id="filter">
|
||||
<source>Filter</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset">
|
||||
<source>Reset</source>
|
||||
</trans-unit>
|
||||
<!-- Pagination -->
|
||||
<trans-unit id="pagination.previous">
|
||||
<source>previous</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.next">
|
||||
<source>next</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.first">
|
||||
<source>first</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.last">
|
||||
<source>last</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.records">
|
||||
<source>Records</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.page">
|
||||
<source>Page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pagination.refresh">
|
||||
<source>Refresh</source>
|
||||
</trans-unit>
|
||||
<!-- Backend users: General (ViewHelper labels, etc.) -->
|
||||
<trans-unit id="switchBackMode">
|
||||
<source>Switch to user</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="lockedMfaProviders">
|
||||
<source>Locked MFA providers</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mfaEnabled">
|
||||
<source>MFA enabled</source>
|
||||
</trans-unit>
|
||||
<!-- Backend users: List -->
|
||||
<trans-unit id="backendUser.list.title">
|
||||
<source>Backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.section.compare">
|
||||
<source>Backend users to compare</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.section.allUsers">
|
||||
<source>Backend users in the system</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.btn.compareList">
|
||||
<source>Compare selected backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.table.column.group">
|
||||
<source>Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.group">
|
||||
<source>Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.loginState">
|
||||
<source>Login state</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.loginState.all">
|
||||
<source>All</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.loginState.loginBefore">
|
||||
<source>Logged in before</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.loginState.never">
|
||||
<source>Never logged in</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.loginState.loggedIn">
|
||||
<source>Currently logged in</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.status">
|
||||
<source>Status</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.status.all">
|
||||
<source>All</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.status.enabled">
|
||||
<source>Enabled</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.status.disabled">
|
||||
<source>Disabled</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.userType">
|
||||
<source>Type</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.userType.all">
|
||||
<source>All</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.userType.admin">
|
||||
<source>Admin</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.filter.userType.normalUser">
|
||||
<source>Normal user</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.list.label.online">
|
||||
<source>online</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.confirmDelete">
|
||||
<source>Are you sure you want to delete the backend user '%s'?</source>
|
||||
</trans-unit>
|
||||
<!-- Backend users: Show -->
|
||||
<trans-unit id="backendUser.show.title">
|
||||
<source>Configuration of backend user "%s"</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.show.notConfigured">
|
||||
<source>Not configured.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.show.infobox.title">
|
||||
<source>Compiled rights and settings</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.show.infobox.message">
|
||||
<source>This view displays all compiled rights and settings of the selected backend user. These can come from settings in the backend user record itself, as well as from settings that have been stored in backend user groups assigned to this backend user.</source>
|
||||
</trans-unit>
|
||||
<!-- Backend users: Compare -->
|
||||
<trans-unit id="backendUser.compare.title">
|
||||
<source>Compare backend users</source>
|
||||
</trans-unit>
|
||||
<!-- Backend users: Online -->
|
||||
<trans-unit id="backendUser.online.title">
|
||||
<source>Online users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.table.column.ipAddress">
|
||||
<source>IP address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.table.column.lastAccess">
|
||||
<source>Last access</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.activeSession">
|
||||
<source>Active session</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.flashMessage.terminateSessionSuccess">
|
||||
<source>Session successfully terminated.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.reallyLogout">
|
||||
<source>Really logout</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUser.online.endSession">
|
||||
<source>End session</source>
|
||||
</trans-unit>
|
||||
<!-- Backend user groups: List -->
|
||||
<trans-unit id="backendUserGroup.list.title">
|
||||
<source>Backend user groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.noGroupsFound.title">
|
||||
<source>No backend user groups found</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.noGroupsFound.message">
|
||||
<source>There are currently no backend user groups found in the database.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.section.compare">
|
||||
<source>Backend user groups to compare</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.section.allUserGroups">
|
||||
<source>Backend user groups in the system</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.btn.compareList">
|
||||
<source>Compare selected backend user groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.filter.groupTitle">
|
||||
<source>Group title or group ID</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.table.column.groupTitle">
|
||||
<source>Group title</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.list.table.column.subgroup">
|
||||
<source>Inherit settings from groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.confirmDelete">
|
||||
<source>Are you sure you want to delete the backend user group '%s'?</source>
|
||||
</trans-unit>
|
||||
<!-- Backend user groups: Show -->
|
||||
<trans-unit id="backendUserGroup.show.title">
|
||||
<source>Configuration of backend user group "%s"</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.show.notConfigured">
|
||||
<source>Not configured.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.show.infobox.title">
|
||||
<source>Compiled rights and settings</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup.show.infobox.message">
|
||||
<source>This view displays all compiled rights and settings of the selected backend user group. These can come from settings in the backend user group record itself, as well as from settings that have been stored in backend user groups assigned to this backend user group.</source>
|
||||
</trans-unit>
|
||||
<!-- Backend user groups: Compare -->
|
||||
<trans-unit id="backendUserGroup.compare.title">
|
||||
<source>Compare backend user groups</source>
|
||||
</trans-unit>
|
||||
<!-- File mounts -->
|
||||
<trans-unit id="filemounts">
|
||||
<source>File mounts</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.list.title">
|
||||
<source>File Mounts</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.confirm.deletion">
|
||||
<source>Are you sure, that you want to delete the file mount "%s"?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.create">
|
||||
<source>Create new file mount</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.infobox.noFilemountFound.title">
|
||||
<source>No file mount found</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.infobox.noFilemountFound.message">
|
||||
<source>Please create a file mount and select its entry point.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.link.openInFilelist">
|
||||
<source>Open in file list</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.amount.multiple">
|
||||
<source>File mounts</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filemount.amount.singular">
|
||||
<source>File mount</source>
|
||||
</trans-unit>
|
||||
<!-- Password reset -->
|
||||
<trans-unit id="flashMessage.resetPassword.error.title">
|
||||
<source>Password reset not triggered</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="flashMessage.resetPassword.error.text">
|
||||
<source>Sorry, the password of this user cannot be reset.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="flashMessage.resetPassword.success.title">
|
||||
<source>Password reset triggered</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="flashMessage.resetPassword.success.text">
|
||||
<source>Password reset for email address %s initiated.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="resetPassword.label">
|
||||
<source>Reset Password</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="resetPassword.confirmation.header">
|
||||
<source>Reset Password</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="resetPassword.confirmation.text">
|
||||
<source>Are you sure you want to reset the password for %s?</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf" date="2011-10-17T20:22:34Z" product-name="lang">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="permissions">
|
||||
<source>Permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="ch_permissions">
|
||||
<source>Change permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Legend">
|
||||
<source>Legend</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Owner">
|
||||
<source>Owner</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Group">
|
||||
<source>Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Everybody">
|
||||
<source>Everybody</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="EditLock_descr">
|
||||
<source>Disable the »Admin-only« edit lock for this page. Currently this page and all content is locked for editing by all non-Admin users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="EditLock_descr2">
|
||||
<source>Enable the »Admin-only« edit lock for this page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save">
|
||||
<source>Save</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort">
|
||||
<source>Abort</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Edit">
|
||||
<source>EDIT</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="recursive">
|
||||
<source>Set recursively</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="page_affected">
|
||||
<source>page affected</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pages_affected">
|
||||
<source>pages affected</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="user_overview">
|
||||
<source>User overview</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Mode">
|
||||
<source>Mode</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Depth">
|
||||
<source>Depth</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="level">
|
||||
<source>level</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="levels">
|
||||
<source>levels</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="User">
|
||||
<source>User</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="changeOwner">
|
||||
<source>Change owner</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="changeGroup">
|
||||
<source>Change group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="def">
|
||||
<source>Definition: 'content' is records from all tables on a page - except from records from the table 'pages' (Pages).</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="A_Granted">
|
||||
<source>Access Granted</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="A_Denied">
|
||||
<source>Access Denied</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="1">
|
||||
<source>Show page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="16">
|
||||
<source>Edit content</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="2">
|
||||
<source>Edit page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="4">
|
||||
<source>Delete page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="8">
|
||||
<source>New pages</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="1_t">
|
||||
<source>Show/Copy page and content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="16_t">
|
||||
<source>Change/Add/Delete/Move content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="2_t">
|
||||
<source>Change page eg. change pagetitle etc.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="4_t">
|
||||
<source>Delete/Move page and content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="8_t">
|
||||
<source>Create new pages under this page.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="WorkspaceWarning">
|
||||
<source>Workspace Warning</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="WorkspaceWarningText">
|
||||
<source>Permissions set in a workspace take effect only after the related elements are published. To apply permissions immediately, configure them in the Live workspace. (Permissions are always evaluated based on the Live workspace record or the placeholder of a draft version)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="notSet">
|
||||
<source>not set</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="deleted">
|
||||
<source>deleted</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="noGroups">
|
||||
<source>No user groups exist.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="selectNone">
|
||||
<source> - none - </source>
|
||||
</trans-unit>
|
||||
<trans-unit id="selectUnchanged">
|
||||
<source> - leave unchanged - </source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,9 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:render section="headline" />
|
||||
<f:render section="content" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,80 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:form action="list" objectName="demand" object="{demand}">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_username" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:userName" /></label>
|
||||
<f:form.textfield
|
||||
type="search"
|
||||
autocomplete="off"
|
||||
id="tx_Beuser_username"
|
||||
class="form-control"
|
||||
property="userName"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_usertype" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.filter.userType" /></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_usertype"
|
||||
class="form-select"
|
||||
property="userType"
|
||||
options="{
|
||||
0: '{f:translate(key:\"backendUser.list.filter.userType.all\")}',
|
||||
1: '{f:translate(key:\"backendUser.list.filter.userType.admin\")}',
|
||||
2: '{f:translate(key:\"backendUser.list.filter.userType.normalUser\")}'
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_status" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.filter.status" /></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_status"
|
||||
class="form-select"
|
||||
property="status"
|
||||
options="{
|
||||
0: '{f:translate(key:\"backendUser.list.filter.status.all\")}',
|
||||
1: '{f:translate(key:\"backendUser.list.filter.status.enabled\")}',
|
||||
2: '{f:translate(key:\"backendUser.list.filter.status.disabled\")}'
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_logins" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.filter.loginState" /></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_logins"
|
||||
class="form-select"
|
||||
property="logins"
|
||||
options="{
|
||||
0: '{f:translate(key:\"backendUser.list.filter.loginState.all\")}',
|
||||
1: '{f:translate(key:\"backendUser.list.filter.loginState.loginBefore\")}',
|
||||
2: '{f:translate(key:\"backendUser.list.filter.loginState.never\")}',
|
||||
3: '{f:translate(key:\"backendUser.list.filter.loginState.loggedIn\")}'
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_beuser_backendUserGroup" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.filter.group" /></label>
|
||||
<f:form.select
|
||||
id="tx_beuser_backendUserGroup"
|
||||
class="form-select"
|
||||
property="backendUserGroup"
|
||||
options="{backendUserGroups}"
|
||||
optionLabelField="title"
|
||||
optionValueField="uid"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group align-self-end">
|
||||
<f:form.button type="submit" name="operation" value="filter" class="btn btn-default">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filter" />
|
||||
</f:form.button>
|
||||
<f:form.button type="submit" name="operation" value="reset-filters" class="btn btn-link">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:reset" />
|
||||
</f:form.button>
|
||||
</div>
|
||||
</div>
|
||||
</f:form>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,223 @@
|
||||
<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"
|
||||
>
|
||||
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-list" class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<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><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUser.list.table.column.group" /></th>
|
||||
<th class="col-datetime"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:lastLogin" /></th>
|
||||
<th class="col-control"><span class="visually-hidden"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels._CONTROL_" /></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{paginator.paginatedItems}" as="backendUser">
|
||||
<tr>
|
||||
<td class="col-indicator">
|
||||
<f:if condition="{onlineBackendUsers.{backendUser.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="{backendUser.uid}"
|
||||
title="{f:if(condition: '{backendUser.description}', then: '{backendUser.description} (id={backendUser.uid})', else: 'id={backendUser.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<backend:avatar backendUser="{backendUser.uid}" showIcon="TRUE" />
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-50">
|
||||
<backend:link.editRecord table="be_users" uid="{backendUser.uid}" title="{f:translate(key:'btn.edit')}">
|
||||
<f:if condition="{backendUser.realName}">
|
||||
<f:then>
|
||||
{backendUser.realName}
|
||||
<beuser:mfaStatus userUid="{backendUser.uid}"/><br>
|
||||
<span class="text-variant">({backendUser.username})</span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
{backendUser.username}
|
||||
<beuser:mfaStatus userUid="{backendUser.uid}"/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
<td class="col-50 nowrap-disabled">
|
||||
<f:for each="{backendUser.backendUserGroups}" as="backendUserGroup" iteration="backendUserGroupIterator">
|
||||
<backend:link.editRecord table="be_groups" uid="{backendUserGroup.uid}" title="{f:translate(key:'btn.edit')}" class="nowrap">{backendUserGroup.title}</backend:link.editRecord><f:if condition="!{backendUserGroupIterator.isLast}">,</f:if>
|
||||
</f:for>
|
||||
</td>
|
||||
<td class="col-datetime">
|
||||
<f:if condition="{backendUser.lastLoginDateAndTime}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{backendUser.lastLoginDateAndTime}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:never" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<backend:link.editRecord
|
||||
class="btn btn-default"
|
||||
table="be_users"
|
||||
uid="{backendUser.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:if condition="{backendUser.currentlyLoggedIn} == 1">
|
||||
<f:then>
|
||||
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{backendUser.isDisabled} == 1">
|
||||
<f:then>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[be_users][{backendUser.uid}][disable]=0', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.enable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-edit-unhide" />
|
||||
</a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[be_users][{backendUser.uid}][disable]=1', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.disable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-edit-hide" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{currentUserUid} == {backendUser.uid}">
|
||||
<f:then>
|
||||
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<form action="{backend:moduleLink(route:'tce_db', currentUrlParameterName:'redirect')}" name="be_user_remove_{backendUser.uid}" id="be_user_remove_{backendUser.uid}" method="post">
|
||||
<input name="cmd[be_users][{backendUser.uid}][delete]=1" type="hidden" value="{group.uid}">
|
||||
</form>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
data-target-form="be_user_remove_{backendUser.uid}"
|
||||
title="{f:translate(key:'btn.delete')}"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')}"
|
||||
data-content="{f:translate(key:'backendUser.confirmDelete',arguments:'{0:backendUser.userName}')}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-button-ok-text="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:buttons.confirm.delete_record.yes')}"
|
||||
>
|
||||
<core:icon identifier="actions-edit-delete" />
|
||||
</button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<f:if condition="{backendUser.passwordResetEnabled}">
|
||||
<f:then>
|
||||
<f:form.button
|
||||
name="user"
|
||||
value="{backendUser.uid}"
|
||||
form="form-initiate-password-reset"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
title="{f:translate(key: 'resetPassword.label')}"
|
||||
type="submit"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key: 'resetPassword.confirmation.header')}"
|
||||
data-content="{f:translate(key: 'resetPassword.confirmation.text', arguments: {0: '{backendUser.email}'})}"
|
||||
data-button-close-text="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}">
|
||||
<core:icon identifier="actions-key" />
|
||||
</f:form.button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:link.action
|
||||
action="show"
|
||||
arguments="{uid: backendUser.uid}"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.details')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-system-options-view" size="small"/>
|
||||
</f:link.action>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="#"
|
||||
title="{f:translate(key:'btn.info')}"
|
||||
data-dispatch-action="TYPO3.InfoWindow.showItem"
|
||||
data-dispatch-args-list="be_users,{backendUser.uid}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-document-info" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<f:if condition="{compareUserUidList.{backendUser.uid}}">
|
||||
<f:then>
|
||||
<f:form.button
|
||||
form="form-remove-from-compare-list"
|
||||
name="uid"
|
||||
value="{backendUser.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" size="small"/>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.compare" />
|
||||
</f:form.button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:form.button
|
||||
form="form-add-to-compare-list"
|
||||
name="uid"
|
||||
value="{backendUser.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.addToCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-plus" size="small"/>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.compare" />
|
||||
</f:form.button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<beuser:SwitchUser class="btn btn-default" backendUser="{backendUser}" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<f:if condition="{totalAmountOfBackendUsers} > 1">
|
||||
<f:then>{totalAmountOfBackendUsers} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:users" /></f:then>
|
||||
<f:else>{totalAmountOfBackendUsers} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:user" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'list'}" />
|
||||
@@ -0,0 +1,27 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<f:form action="groups" objectName="userGroupDto" object="{userGroupDto}">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="tx_Beugroups_title" class="form-label"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.filter.groupTitle" /></label>
|
||||
<f:form.textfield
|
||||
id="tx_Beugroups_title"
|
||||
class="form-control"
|
||||
property="title"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group align-self-end">
|
||||
<f:form.button type="submit" name="operation" value="filter" class="btn btn-default">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filter" />
|
||||
</f:form.button>
|
||||
<f:form.button type="submit" name="operation" value="reset-filters" class="btn btn-link">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:reset" />
|
||||
</f:form.button>
|
||||
</div>
|
||||
</div>
|
||||
</f:form>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,162 @@
|
||||
<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"
|
||||
>
|
||||
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-group-list" 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><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:backendUserGroup.list.table.column.subgroup" /></th>
|
||||
<th class="col-control"><span class="visually-hidden"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels._CONTROL_" /></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{paginator.paginatedItems}" as="backendUserGroup">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="be_groups"
|
||||
data-contextmenu-uid="{backendUserGroup.uid}"
|
||||
title="{f:if(condition: '{backendUserGroup.description}', then: '{backendUserGroup.description} (id={backendUserGroup.uid})', else: 'id={backendUserGroup.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<beuser:spriteIconForRecord table="be_groups" object="{backendUserGroup}" />
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-50">
|
||||
<backend:link.editRecord table="be_groups" uid="{backendUserGroup.uid}" title="{f:translate(key:'btn.edit')}">
|
||||
{backendUserGroup.title}
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
<td class="col-50 nowrap-disabled">
|
||||
<f:for each="{backendUserGroup.subgroups}" as="subgroup" iteration="subGroupIterator">
|
||||
<backend:link.editRecord table="be_groups" uid="{subgroup.uid}" title="{f:translate(key:'btn.edit')}">{subgroup.title}</backend:link.editRecord><f:if condition="!{subGroupIterator.isLast}">,</f:if>
|
||||
</f:for>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<backend:link.editRecord
|
||||
class="btn btn-default"
|
||||
table="be_groups"
|
||||
uid="{backendUserGroup.uid}"
|
||||
title="{f:translate(key:'btn.edit')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:if condition="{backendUserGroup.hidden}">
|
||||
<f:then>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[be_groups][{backendUserGroup.uid}][hidden]=0', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.enable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-edit-unhide" />
|
||||
</a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[be_groups][{backendUserGroup.uid}][hidden]=1', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.disable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-edit-hide" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<form action="{backend:moduleLink(route:'tce_db', currentUrlParameterName:'redirect')}" name="be_user_group_remove_{backendUserGroup.uid}" id="be_user_group_remove_{backendUserGroup.uid}" method="post">
|
||||
<input name="cmd[be_groups][{backendUserGroup.uid}][delete]=1" type="hidden" value="{group.uid}">
|
||||
</form>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
data-target-form="be_user_group_remove_{backendUserGroup.uid}"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')}"
|
||||
data-content="{f:translate(key:'backendUserGroup.confirmDelete',arguments:'{0:backendUserGroup.title}')}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
data-button-ok-text="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:buttons.confirm.delete_record.yes')}"
|
||||
title="{f:translate(key:'btn.delete')}"
|
||||
>
|
||||
<core:icon identifier="actions-edit-delete"/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<f:link.action
|
||||
action="showGroup"
|
||||
arguments="{uid: backendUserGroup.uid}"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.details')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-system-options-view" size="small"/>
|
||||
</f:link.action>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="#"
|
||||
title="{f:translate(key:'btn.info')}"
|
||||
data-dispatch-action="TYPO3.InfoWindow.showItem"
|
||||
data-dispatch-args-list="be_groups,{backendUserGroup.uid}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-document-info" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<f:if condition="{compareGroupUidList.{backendUserGroup.uid}}">
|
||||
<f:then>
|
||||
<f:form.button
|
||||
form="form-remove-group-from-compare-list"
|
||||
name="uid"
|
||||
value="{backendUserGroup.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.removeFromCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-minus" size="small"/>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.compare" />
|
||||
</f:form.button>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:form.button
|
||||
form="form-add-group-to-compare-list"
|
||||
name="uid"
|
||||
value="{backendUserGroup.uid}"
|
||||
type="submit"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'btn.addToCompareList')}"
|
||||
>
|
||||
<core:icon identifier="actions-plus" size="small"/> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.compare" />
|
||||
</f:form.button>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<f:if condition="{totalAmountOfBackendUserGroups} > 1">
|
||||
<f:then>{totalAmountOfBackendUserGroups} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:groups" /></f:then>
|
||||
<f:else>{totalAmountOfBackendUserGroups} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:group" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'groups'}" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,489 @@
|
||||
<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:section name="languages">
|
||||
<f:if condition="{languages}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{languages}" key="languageId" as="language">
|
||||
<tr>
|
||||
<f:if condition="{languageId} == 0">
|
||||
<f:then>
|
||||
<td class="col-icon"></td>
|
||||
<td class="col-title">
|
||||
{language.title} (<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:information.defaultLanguage" />)<f:if condition="{showUid}"> <code>[{languageId}]</code></f:if>
|
||||
</td>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<td class="col-icon">
|
||||
<span title="id={languageId}"><core:icon identifier="{language.flagIconIdentifier}" /></span>
|
||||
</td>
|
||||
<td class="col-title">{language.title}<f:if condition="{showUid}"> <code>[{languageId}]</code></f:if></td>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="groups">
|
||||
<f:if condition="{groups.all}">
|
||||
<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>
|
||||
<th{f:if(condition: '{hasColumnClasses}', then: ' class="col-min"')}><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.direct.direct" /></th>
|
||||
<th{f:if(condition: '{hasColumnClasses}', then: ' class="col-min"')}><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:compare.direct.inherit" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{groups.all}" as="group">
|
||||
<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>
|
||||
<td{f:if(condition: '{hasColumnClasses}', then: ' class="col-min"')}>
|
||||
<f:if condition="{group.direct}"><span class="text-success"><core:icon identifier="actions-check" size="small" /></span></f:if>
|
||||
</td>
|
||||
<td{f:if(condition: '{hasColumnClasses}', then: ' class="col-min"')}>
|
||||
<f:if condition="{group.diff}"><span class="text-success"><core:icon identifier="actions-check" size="small" /></span></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="dbMounts">
|
||||
<f:if condition="{dbMounts}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{dbMounts}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="pages"
|
||||
data-contextmenu-uid="{item.uid}"
|
||||
title="id={item.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="pages" row="{item}"/>
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="pages"
|
||||
uid="{item.uid}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
{item.title}<f:if condition="{showUid}"> <code>[{item.uid}]</code></f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="fileMounts">
|
||||
<f:if condition="{fileMounts}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{fileMounts}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="sys_filemounts"
|
||||
data-contextmenu-uid="{item.uid}"
|
||||
title="id={item.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="sys_filemounts" row="{item}"/>
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="sys_filemounts"
|
||||
uid="{item.uid}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
{item.title}<f:if condition="{showUid}"> <code>[{item.uid}]</code></f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="fileFolderPermissions">
|
||||
<f:if condition="{fileFolderPermissions}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{fileFolderPermissions}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon"><core:icon identifier="{item.icon}" /></td>
|
||||
<td class="col-title">
|
||||
<f:if condition="{item.label}">
|
||||
<f:then>{f:translate(key:item.label,default:item.label)}</f:then>
|
||||
<f:else>{item.value}</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{showUid}"> <code>[{item.value}]</code></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="categories">
|
||||
<f:if condition="{categories}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{categories}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="sys_category"
|
||||
data-contextmenu-uid="{item.uid}"
|
||||
title="id={item.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:iconForRecord table="sys_category" row="{item}"/>
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="sys_category"
|
||||
uid="{item.uid}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>
|
||||
{item.title}<f:if condition="{showUid}"> <code>[{item.uid}]</code></f:if>
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="workspaces">
|
||||
<f:if condition="{workspaces}">
|
||||
<f:if condition="{workspaces.record.uid}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="sys_workspace"
|
||||
data-contextmenu-uid="{workspaces.record.uid}"
|
||||
title="id={workspaces.record.uid}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<core:icon identifier="mimetypes-x-sys_workspace" size="small" />
|
||||
</button>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<backend:link.editRecord
|
||||
table="sys_workspace"
|
||||
uid="{workspaces.record.uid}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:btn.edit')}"
|
||||
>{workspaces.record.title}</backend:link.editRecord>
|
||||
(<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:information.defaultWorkspace" />)<f:if condition="{showUid}"> <code>[{workspaces.record.uid}]</code></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="pageTypes">
|
||||
<f:if condition="{pageTypes}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{pageTypes}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon"><core:icon identifier="{item.icon}" /></td>
|
||||
<td class="col-title">
|
||||
<f:if condition="{item.label}">{f:translate(key:item.label,default:item.label)}</f:if><f:if condition="{showUid}"> <code>[{item.value}]</code></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="modules">
|
||||
<f:if condition="{modules}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:if condition="{showHeadline}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:modules" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</f:if>
|
||||
<tbody>
|
||||
<f:for each="{modules}" as="module">
|
||||
<tr>
|
||||
<td class="col-icon"><core:icon identifier="{module.iconIdentifier}" /></td>
|
||||
<td class="col-title">{f:translate(key: module.title, default: module.title)}<f:if condition="{showUid}"> <code>[{module.identifier}]</code></f:if></td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="tables">
|
||||
<f:if condition="{tables.all}">
|
||||
<f:for each="{tables.all}" key="table" as="label">
|
||||
<f:if condition="{tables.tables_select.{table}} && !{tables.tables_modify.{table}}">
|
||||
<f:variable name="tableReadConfigured" value="1" />
|
||||
</f:if>
|
||||
<f:if condition="{tables.tables_modify.{table}}">
|
||||
<f:variable name="tableReadWriteConfigured" value="1" />
|
||||
</f:if>
|
||||
</f:for>
|
||||
<f:if condition="{tableReadConfigured}">
|
||||
<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-read-table-{id}-collapse"
|
||||
aria-controls="permission-group-read-table-{id}-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:tableModes.read" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-read-table-{id}-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{tables.all}" key="table" as="label">
|
||||
<f:if condition="{tables.tables_select.{table}} && !{tables.tables_modify.{table}}">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<core:iconForRecord table="{table}" row="{id: '0'}" />
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<f:if condition="{label}">{f:translate(key:label, default:label)}</f:if><f:if condition="{showUid}"> <code>[{table}]</code></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{tableReadWriteConfigured}">
|
||||
<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-read-write-table-{id}-collapse"
|
||||
aria-controls="permission-group-read-write-table-{id}-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:tableModes.write" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-read-write-table-{id}-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{tables.all}" key="table" as="label">
|
||||
<f:if condition="{tables.tables_modify.{table}}">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<core:iconForRecord table="{table}" row="{id: '0'}" />
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<f:if condition="{label}">{f:translate(key:label, default:label)}</f:if><f:if condition="{showUid}"> <code>[{table}]</code></f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="nonExcludeFields">
|
||||
<f:if condition="{nonExcludeFields}">
|
||||
<f:for each="{nonExcludeFields}" key="tableName" as="table">
|
||||
<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-{tableName}-{id}-collapse"
|
||||
aria-controls="permission-group-{tableName}-{id}-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-icon">
|
||||
<core:iconForRecord table="{tableName}" row="{id: '0'}" />
|
||||
</div>
|
||||
<div class="panel-title">
|
||||
<f:if condition="{table.label}">{f:translate(key:table.label,default:table.label)}</f:if><f:if condition="{showUid}"> <code>[{tableName}]</code></f:if>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-{tableName}-{id}-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<ul class="panel-list">
|
||||
<f:for each="{table.fields}" as="label" key="field">
|
||||
<li><f:if condition="{label}">{f:translate(key:label,default:label)} </f:if><code>[{field}]</code></li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="tsconfig">
|
||||
<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-tsconfig-{id}-collapse"
|
||||
aria-controls="permission-group-tsconfig-{id}-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:TSconfig" />
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="permission-group-tsconfig-{id}-collapse" class="panel-collapse collapse" data-persist-collapse-state="true" role="tabpanel">
|
||||
<div class="panel-body">
|
||||
<f:render section="userTsConfigTree" arguments="{treeArray: tsconfig}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="userTsConfigTree">
|
||||
<ul class="treelist">
|
||||
<f:for each="{treeArray}" key="key" as="value">
|
||||
<li>
|
||||
<span class="treelist-group treelist-group-monospace">
|
||||
<span class="treelist-label">{key}</span>
|
||||
<f:if condition="!{beuser:isArray(value: value)}">
|
||||
<span class="treelist-operator">=</span>
|
||||
<span class="treelist-value">{value}</span>
|
||||
</f:if>
|
||||
</span>
|
||||
<f:if condition="{beuser:isArray(value: value)}">
|
||||
<f:render section="userTsConfigTree" arguments="{treeArray: value}" />
|
||||
</f:if>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</f:section>
|
||||
|
||||
<f:section name="pageContentTypes">
|
||||
<f:if condition="{pageContentTypes}">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<f:for each="{pageContentTypes}" as="item">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<core:icon identifier="{f:if(condition: item.icon, then: item.icon, else: 'empty-empty')}" />
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<f:if condition="{item.label}">
|
||||
<f:then>
|
||||
{f:translate(key: item.label)}
|
||||
<f:if condition="{showUid}"><code title="{item.longType}">[{item.shortType}]</code></f:if>
|
||||
</f:then>
|
||||
<f:else>
|
||||
{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:notAvailableAbbreviation')}
|
||||
<f:if condition="{showUid}"><code>[{item.longType}]</code></f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,150 @@
|
||||
<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"
|
||||
>
|
||||
|
||||
<div class="table-fit">
|
||||
<table id="typo3-filemount-list" class="table table-striped table-hover">
|
||||
<colgroup>
|
||||
<col class="col-icon">
|
||||
<col style="width: 20%;">
|
||||
</colgroup>
|
||||
<colgroup>
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 20%;">
|
||||
<col class="col-min">
|
||||
<col class="col-control">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_filemounts.title" /></th>
|
||||
<th><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.description" /></th>
|
||||
<th><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_storage" /></th>
|
||||
<th><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_filemounts.identifier" /></th>
|
||||
<th><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_filemounts.read_only" /></th>
|
||||
<th class="col-control"><span class="visually-hidden"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels._CONTROL_" /></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{paginator.paginatedItems}" as="fileMount">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-link"
|
||||
data-contextmenu-trigger="click"
|
||||
data-contextmenu-table="sys_filemounts"
|
||||
data-contextmenu-uid="{fileMount.uid}"
|
||||
title="{f:if(condition: '{fileMount.description}', then: '{fileMount.description} (id={fileMount.uid})', else: 'id={fileMount.uid}')}"
|
||||
aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.contextMenu.open')}"
|
||||
>
|
||||
<beuser:spriteIconForRecord table="sys_filemounts" object="{fileMount}" />
|
||||
</button>
|
||||
</td>
|
||||
<td>
|
||||
<backend:link.editRecord table="sys_filemounts" uid="{fileMount.uid}" title="{f:translate(key:'btn.edit')}">
|
||||
{fileMount.title}
|
||||
</backend:link.editRecord>
|
||||
</td>
|
||||
<td>{fileMount.description}</td>
|
||||
<td>
|
||||
<a
|
||||
href="{backend:moduleLink(route: 'media_management', query: 'id={fileMount.storage.uid}:/')}'"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.link.openInFilelist')}"
|
||||
>
|
||||
{fileMount.storage.name}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a
|
||||
href="{backend:moduleLink(route: 'media_management', query: 'id={fileMount.storage.uid}:{fileMount.path}')}'"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.link.openInFilelist')}"
|
||||
>
|
||||
{fileMount.storage.configuration.basePath}{fileMount.path}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{fileMount.readOnly} == true">
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:yes" />
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<backend:link.editRecord class="btn btn-default" table="sys_filemounts" uid="{fileMount.uid}" title="{f:translate(key:'btn.edit')}">
|
||||
<core:icon identifier="actions-open" />
|
||||
</backend:link.editRecord>
|
||||
<f:if condition="{fileMount.hidden} == true">
|
||||
<f:then>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[sys_filemounts][{fileMount.uid}][hidden]=0', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.enable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-toggle-off" />
|
||||
</a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'data[sys_filemounts][{fileMount.uid}][hidden]=1', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.disable')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-toggle-on" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<a
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
href="{backend:moduleLink(route:'tce_db', query:'cmd[sys_filemounts][{fileMount.uid}][delete]=1', currentUrlParameterName:'redirect')}"
|
||||
title="{f:translate(key:'btn.delete')}"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')}"
|
||||
data-content="{f:translate(key:'filemount.confirm.deletion',arguments:'{0:fileMount.title}')}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-delete" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a
|
||||
class="btn btn-default"
|
||||
href="#"
|
||||
title="{f:translate(key:'btn.info')}"
|
||||
data-dispatch-action="TYPO3.InfoWindow.showItem"
|
||||
data-dispatch-args-list="sys_filemounts,{fileMount.uid}"
|
||||
role="button"
|
||||
>
|
||||
<core:icon identifier="actions-info" />
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<f:if condition="{totalAmountOfFilemounts} > 1" >
|
||||
<f:then>
|
||||
{totalAmountOfFilemounts} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.amount.multiple" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
{totalAmountOfFilemounts} <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:filemount.amount.singular" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<f:render partial="SimplePagination" arguments="{paginator:paginator, pagination:pagination, actionName:'filemounts'}" />
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,42 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<span id="g_{pageId}">
|
||||
<button
|
||||
type="button"
|
||||
class="ug_selector changegroup btn btn-sm btn-link"
|
||||
data-page="{pageId}"
|
||||
data-group-id="{groupId}"
|
||||
data-groupname="{groupname}"
|
||||
title="{groupname}"
|
||||
>
|
||||
<f:if condition="{groupId} == 0">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
No group set -> [not set]
|
||||
</f:comment>
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:notSet" />]
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{groupname}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
A group name can be resolved
|
||||
</f:comment>
|
||||
{groupname}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
Group was deleted -> [deleted]
|
||||
</f:comment>
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:deleted" />]
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,42 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<span id="o_{pageId}">
|
||||
<button
|
||||
type="button"
|
||||
class="ug_selector changeowner btn btn-sm btn-link"
|
||||
data-page="{pageId}"
|
||||
data-owner="{userId}"
|
||||
data-username="{username}"
|
||||
title="{username}"
|
||||
>
|
||||
<f:if condition="{userId} == 0">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
No owner set -> [not set]
|
||||
</f:comment>
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:notSet" />]
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{username}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
A user name can be resolved
|
||||
</f:comment>
|
||||
{username}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
User was deleted -> [deleted]
|
||||
</f:comment>
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:deleted" />]
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,99 @@
|
||||
<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="{paginator.numberOfPages} > 1">
|
||||
<nav class="pagination-wrap">
|
||||
<ul class="pagination">
|
||||
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
|
||||
<f:then>
|
||||
<li class="page-item">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: 1})}" title="{f:translate(key:'pagination.first')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-first" />
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.previousPageNumber})}" title="{f:translate(key:'pagination.previous')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-previous" />
|
||||
</a>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<li class="page-item">
|
||||
<span class="page-link">
|
||||
<f:translate key="pagination.records" /> {pagination.startRecordNumber} - {pagination.endRecordNumber}
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<span class="page-link">
|
||||
<f:translate key="pagination.page" />
|
||||
<form class="form-inline"
|
||||
data-global-event="submit"
|
||||
data-action-navigate="$form=~s/$value/"
|
||||
data-navigate-value="{f:uri.action(action:actionName, arguments:'{currentPage: \'$[value]\'}')}"
|
||||
data-value-selector="input[name='paginator-target-page']">
|
||||
<input
|
||||
min="{pagination.firstPageNumber}"
|
||||
max="{pagination.lastPageNumber}"
|
||||
data-number-of-pages="{paginator.numberOfPages}"
|
||||
name="paginator-target-page"
|
||||
class="form-control form-control-sm paginator-input"
|
||||
size="5"
|
||||
value="{paginator.currentPageNumber}"
|
||||
type="number"
|
||||
/>
|
||||
</form>
|
||||
/ {pagination.lastPageNumber}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
|
||||
<f:then>
|
||||
<li class="page-item">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.nextPageNumber})}" title="{f:translate(key:'pagination.next')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-next" />
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.lastPageNumber})}" title="{f:translate(key:'pagination.last')}" class="page-link">
|
||||
<core:icon identifier="actions-view-paging-last" />
|
||||
</a>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
<li class="page-item disabled">
|
||||
<span class="page-link">
|
||||
<core:icon identifier="empty-empty"/>
|
||||
</span>
|
||||
</li>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<li class="page-item">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: paginator.currentPageNumber})}" title="{f:translate(key:'pagination.refresh')}" class="page-link">
|
||||
<core:icon identifier="actions-refresh" />
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</f:if>
|
||||
|
||||
</html>
|
||||
@@ -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