From 6e649291bb7b64dde8ee2ecb6c090517bd9973c4 Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Fri, 11 Mar 2016 09:45:54 +0100
Subject: [PATCH] [TASK] Use DocHeader buttons in PermissionController

The save / abort buttons in the edit view of the permission controller are
replaced by DocHeader buttons to ensure are more consistent UI.

Change-Id: Ic035f2bd1f5063a8d0b52310b1f011078f7e6c25
Resolves: #68378
Releases: master, 7.6
Reviewed-on: https://review.typo3.org/47186
Reviewed-by: Daniel Goerz <ervaude@gmail.com>
Tested-by: Daniel Goerz <ervaude@gmail.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
---
 .../Controller/PermissionController.php       | 33 +++++++++++++++++++
 .../Private/Templates/Permission/Edit.html    |  5 +--
 2 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/beuser/Classes/Controller/PermissionController.php b/typo3/sysext/beuser/Classes/Controller/PermissionController.php
index ffcb96da9eed..738233785d9d 100644
--- a/typo3/sysext/beuser/Classes/Controller/PermissionController.php
+++ b/typo3/sysext/beuser/Classes/Controller/PermissionController.php
@@ -155,12 +155,45 @@ class PermissionController extends ActionController
         $currentRequest = $this->request;
         $moduleName = $currentRequest->getPluginName();
         $getVars = $this->request->getArguments();
+        $lang = $this->getLanguageService();
 
         $extensionName = $currentRequest->getControllerExtensionName();
         if (empty($getVars)) {
             $modulePrefix = strtolower('tx_' . $extensionName . '_' . $moduleName);
             $getVars = array('id', 'M', $modulePrefix);
         }
+
+        if ($currentRequest->getControllerActionName() === 'edit') {
+            // CLOSE button:
+            $closeUrl = $this->uriBuilder->reset()->setArguments(array(
+                'action' => 'index',
+                'id' => $this->id
+            ))->buildBackendUri();
+            $closeButton = $buttonBar->makeLinkButton()
+                ->setHref($closeUrl)
+                ->setTitle($lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.closeDoc'))
+                ->setIcon($this->view->getModuleTemplate()->getIconFactory()->getIcon(
+                    'actions-document-close',
+                    Icon::SIZE_SMALL
+                ));
+            $buttonBar->addButton($closeButton);
+
+            // SAVE button:
+            $saveButton = $buttonBar->makeInputButton()
+                ->setTitle($lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveCloseDoc'))
+                ->setName('tx_beuser_system_beusertxpermission[submit]')
+                ->setValue('Save')
+                ->setForm('PermissionControllerEdit')
+                ->setIcon($this->view->getModuleTemplate()->getIconFactory()->getIcon(
+                    'actions-document-save',
+                    Icon::SIZE_SMALL
+                ))
+                ->setShowLabelText(true);
+
+            $buttonBar->addButton($saveButton);
+        }
+
+        // SHORTCUT botton:
         $shortcutButton = $buttonBar->makeShortcutButton()
             ->setModuleName($moduleName)
             ->setGetVariables($getVars);
diff --git a/typo3/sysext/beuser/Resources/Private/Templates/Permission/Edit.html b/typo3/sysext/beuser/Resources/Private/Templates/Permission/Edit.html
index af3d6fcf78fa..a5ac1e0beee5 100644
--- a/typo3/sysext/beuser/Resources/Private/Templates/Permission/Edit.html
+++ b/typo3/sysext/beuser/Resources/Private/Templates/Permission/Edit.html
@@ -11,7 +11,7 @@
 </f:section>
 
 <f:section name="content">
-	<f:form action="update" name="editform">
+	<f:form action="update" name="editform" id="PermissionControllerEdit">
 
 		<div class="form-group">
 			<label><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></label>
@@ -78,9 +78,6 @@
 			<f:form.select id="recursionLevel" name="mirror[pages][{id}]" options="{recursiveSelectOptions}" class="form-control" />
 		</div>
 
-		<f:form.submit class="btn btn-default" name="submit" value="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Save')}" />
-		<f:link.action class="btn btn-default" action="index" arguments="{id: id}"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Abort" /></f:link.action>
-
 		<f:form.hidden name="data[pages][{id}][perms_user]" value="{pageInfo.perms_user}" />
 		<f:form.hidden name="data[pages][{id}][perms_group]" value="{pageInfo.perms_group}" />
 		<f:form.hidden name="data[pages][{id}][perms_everybody]" value="{pageInfo.perms_everybody}" />
-- 
GitLab