[TASK] Use ModuleTemplate in Extension Manager 03/44403/2
authorAndreas Fernandez <a.fernandez@scripting-base.de>
Fri, 30 Oct 2015 13:41:35 +0000 (14:41 +0100)
committerStefan Neufeind <typo3.neufeind@speedpartner.de>
Fri, 30 Oct 2015 16:30:49 +0000 (17:30 +0100)
Resolves: #70362
Releases: master
Change-Id: I900b527a9502e35e59646484c64a83e78dd22620
Reviewed-on: https://review.typo3.org/44403
Reviewed-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
16 files changed:
typo3/sysext/extensionmanager/Classes/Controller/AbstractController.php
typo3/sysext/extensionmanager/Classes/Controller/AbstractModuleController.php [new file with mode: 0644]
typo3/sysext/extensionmanager/Classes/Controller/ConfigurationController.php
typo3/sysext/extensionmanager/Classes/Controller/DistributionController.php
typo3/sysext/extensionmanager/Classes/Controller/ListController.php
typo3/sysext/extensionmanager/Classes/Controller/UpdateScriptController.php
typo3/sysext/extensionmanager/Resources/Private/Layouts/Main.html
typo3/sysext/extensionmanager/Resources/Private/Templates/Configuration/ShowConfigurationForm.html
typo3/sysext/extensionmanager/Resources/Private/Templates/Distribution/Show.html
typo3/sysext/extensionmanager/Resources/Private/Templates/List/Distributions.html
typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
typo3/sysext/extensionmanager/Resources/Private/Templates/List/ShowAllVersions.html
typo3/sysext/extensionmanager/Resources/Private/Templates/List/Ter.html
typo3/sysext/extensionmanager/Resources/Private/Templates/List/UnresolvedDependencies.html
typo3/sysext/extensionmanager/Resources/Private/Templates/UpdateScript/Show.html
typo3/sysext/extensionmanager/Resources/Public/JavaScript/Main.js

index 4e1e5d8..65df511 100644 (file)
@@ -29,23 +29,6 @@ class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl
     );
 
     /**
-     * Resolve view and initialize the general view-variables extensionName,
-     * controllerName and actionName based on the request object
-     *
-     * @return \TYPO3\CMS\Fluid\View\TemplateView
-     */
-    protected function resolveView()
-    {
-        $view = parent::resolveView();
-        $view->assignMultiple(array(
-            'extensionName' => $this->request->getControllerExtensionName(),
-            'controllerName' => $this->request->getControllerName(),
-            'actionName' => $this->request->getControllerActionName()
-        ));
-        return $view;
-    }
-
-    /**
      * Translation shortcut
      *
      * @param $key
diff --git a/typo3/sysext/extensionmanager/Classes/Controller/AbstractModuleController.php b/typo3/sysext/extensionmanager/Classes/Controller/AbstractModuleController.php
new file mode 100644 (file)
index 0000000..e470aa1
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+namespace TYPO3\CMS\Extensionmanager\Controller;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+use TYPO3\CMS\Backend\View\BackendTemplateView;
+use TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder;
+
+/**
+ * Abstract action controller.
+ */
+class AbstractModuleController extends AbstractController {
+
+    /**
+     * BackendTemplateContainer
+     *
+     * @var BackendTemplateView
+     */
+    protected $view;
+
+    /**
+     * Backend Template Container
+     *
+     * @var string
+     */
+    protected $defaultViewObjectName = BackendTemplateView::class;
+
+    /**
+     * Resolve view and initialize the general view-variables extensionName,
+     * controllerName and actionName based on the request object
+     *
+     * @return \TYPO3\CMS\Fluid\View\TemplateView
+     */
+    protected function resolveView()
+    {
+        $view = parent::resolveView();
+        $view->assignMultiple(array(
+            'extensionName' => $this->request->getControllerExtensionName(),
+            'controllerName' => $this->request->getControllerName(),
+            'actionName' => $this->request->getControllerActionName()
+        ));
+        return $view;
+    }
+
+    /**
+     * Generates the action menu
+     *
+     * @return void
+     */
+    protected function generateMenu()
+    {
+        $menuItems = [
+            'installedExtensions' => [
+                'controller' => 'List',
+                'action' => 'index',
+                'label' => $this->translate('installedExtensions')
+            ]
+        ];
+
+        if (!$this->settings['offlineMode'] && !$this->settings['composerMode']) {
+            $menuItems['getExtensions'] = [
+                'controller' => 'List',
+                'action' => 'ter',
+                'label' => $this->translate('getExtensions')
+            ];
+            $menuItems['distributions'] = [
+                'controller' => 'List',
+                'action' => 'distributions',
+                'label' => $this->translate('distributions')
+            ];
+
+            if ($this->actionMethodName === 'showAllVersionsAction') {
+                $menuItems['showAllVersions'] = [
+                    'controller' => 'List',
+                    'action' => 'showAllVersions',
+                    'label' => $this->translate('showAllVersions') . ' ' . $this->request->getArgument('extensionKey')
+                ];
+            }
+        }
+
+        $uriBuilder = $this->objectManager->get(UriBuilder::class);
+        $uriBuilder->setRequest($this->request);
+
+        $menu = $this->view->getModuleTemplate()->getDocHeaderComponent()->getMenuRegistry()->makeMenu();
+        $menu->setIdentifier('ExtensionManagerModuleMenu');
+
+        foreach ($menuItems as  $menuItemConfig) {
+            if ($this->request->getControllerName() === $menuItemConfig['controller']) {
+                $isActive = $this->request->getControllerActionName() === $menuItemConfig['action'] ? true : false;
+            } else {
+                $isActive = false;
+            }
+            $menuItem = $menu->makeMenuItem()
+                ->setTitle($menuItemConfig['label'])
+                ->setHref($this->getHref($menuItemConfig['controller'], $menuItemConfig['action']))
+                ->setActive($isActive);
+            $menu->addMenuItem($menuItem);
+        }
+
+        $this->view->getModuleTemplate()->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
+    }
+
+    /**
+     * Creates te URI for a backend action
+     *
+     * @param string $controller
+     * @param string $action
+     * @param array $parameters
+     * @return string
+     */
+    protected function getHref($controller, $action, $parameters = [])
+    {
+        $uriBuilder = $this->objectManager->get(UriBuilder::class);
+        $uriBuilder->setRequest($this->request);
+        return $uriBuilder->reset()->uriFor($action, $parameters, $controller);
+    }
+}
\ No newline at end of file
index 1fca269..f19ac86 100644 (file)
@@ -14,13 +14,17 @@ namespace TYPO3\CMS\Extensionmanager\Controller;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Backend\Template\Components\ButtonBar;
+use TYPO3\CMS\Backend\View\BackendTemplateView;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Extbase\Mvc\View\ViewInterface;
 use TYPO3\CMS\Extensionmanager\Domain\Model\Extension;
 use TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException;
 
 /**
  * Controller for configuration related actions.
  */
-class ConfigurationController extends AbstractController
+class ConfigurationController extends AbstractModuleController
 {
     /**
      * @var \TYPO3\CMS\Extensionmanager\Domain\Repository\ConfigurationItemRepository
@@ -49,6 +53,22 @@ class ConfigurationController extends AbstractController
     }
 
     /**
+     * Set up the doc header properly here
+     *
+     * @param ViewInterface $view
+     * @return void
+     */
+    protected function initializeView(ViewInterface $view)
+    {
+        if ($view instanceof BackendTemplateView) {
+            /** @var BackendTemplateView $view */
+            parent::initializeView($view);
+            $this->generateMenu();
+            $this->registerDocheaderButtons();
+        }
+    }
+
+    /**
      * Show the extension configuration form. The whole form field handling is done
      * in the corresponding view helper
      *
@@ -146,4 +166,60 @@ class ConfigurationController extends AbstractController
         );
         $this->emitAfterExtensionConfigurationWriteSignal($extensionKey, $newConfiguration);
     }
+
+    /**
+     * Registers the Icons into the docheader
+     *
+     * @return void
+     * @throws \InvalidArgumentException
+     */
+    protected function registerDocheaderButtons()
+    {
+        $moduleTemplate = $this->view->getModuleTemplate();
+        $lang = $this->getLanguageService();
+
+        /** @var ButtonBar $buttonBar */
+        $buttonBar = $moduleTemplate->getDocHeaderComponent()->getButtonBar();
+
+        $uriBuilder = $this->controllerContext->getUriBuilder();
+        $uri = $uriBuilder->reset()->uriFor('index', [], 'List');
+
+        $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon('actions-view-go-back', Icon::SIZE_SMALL);
+        $goBackButton = $buttonBar->makeLinkButton()
+            ->setHref($uri)
+            ->setTitle($this->translate('extConfTemplate.backToList'))
+            ->setIcon($icon);
+        $buttonBar->addButton($goBackButton, ButtonBar::BUTTON_POSITION_LEFT);
+
+        $saveSplitButton = $buttonBar->makeSplitButton();
+        // SAVE button:
+        $saveButton = $buttonBar->makeInputButton()
+            ->setName('_savedok')
+            ->setValue('1')
+            ->setTitle($lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveDoc', true))
+            ->setOnClick('javascript:document.configurationform.submit();return false;')
+            ->setIcon($moduleTemplate->getIconFactory()->getIcon('actions-document-save', Icon::SIZE_SMALL));
+        $saveSplitButton->addItem($saveButton, true);
+
+        // SAVE / CLOSE
+        $saveAndCloseButton = $buttonBar->makeInputButton()
+            ->setName('_saveandclosedok')
+            ->setClasses('t3js-save-close')
+            ->setValue('1')
+            ->setTitle($lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveCloseDoc', true))
+            ->setIcon($moduleTemplate->getIconFactory()->getIcon(
+                'actions-document-save-close',
+                Icon::SIZE_SMALL
+            ));
+        $saveSplitButton->addItem($saveAndCloseButton);
+        $buttonBar->addButton($saveSplitButton, ButtonBar::BUTTON_POSITION_LEFT, 2);
+    }
+
+    /**
+     * @return \TYPO3\CMS\Lang\LanguageService
+     */
+    protected function getLanguageService()
+    {
+        return $GLOBALS['LANG'];
+    }
 }
index 4b68ffa..8a03e34 100644 (file)
@@ -13,11 +13,15 @@ namespace TYPO3\CMS\Extensionmanager\Controller;
  *
  * The TYPO3 project - inspiring people to share!
  */
+use TYPO3\CMS\Backend\Template\Components\ButtonBar;
+use TYPO3\CMS\Backend\View\BackendTemplateView;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Extbase\Mvc\View\ViewInterface;
 
 /**
  * Controller for distribution related actions
  */
-class DistributionController extends AbstractController
+class DistributionController extends AbstractModuleController
 {
     /**
      * @var \TYPO3\CMS\Core\Package\PackageManager
@@ -33,6 +37,22 @@ class DistributionController extends AbstractController
     }
 
     /**
+     * Set up the doc header properly here
+     *
+     * @param ViewInterface $view
+     * @return void
+     */
+    protected function initializeView(ViewInterface $view)
+    {
+        if ($view instanceof BackendTemplateView) {
+            /** @var BackendTemplateView $view */
+            parent::initializeView($view);
+            $this->generateMenu();
+            $this->registerDocheaderButtons();
+        }
+    }
+
+    /**
      * Shows information about the distribution
      *
      * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
@@ -59,4 +79,27 @@ class DistributionController extends AbstractController
         $this->view->assign('configurationLink', $configurationLink);
         $this->view->assign('extension', $extension);
     }
+
+    /**
+     * Registers the Icons into the docheader
+     *
+     * @return void
+     * @throws \InvalidArgumentException
+     */
+    protected function registerDocheaderButtons()
+    {
+        /** @var ButtonBar $buttonBar */
+        $buttonBar = $this->view->getModuleTemplate()->getDocHeaderComponent()->getButtonBar();
+
+        $uriBuilder = $this->controllerContext->getUriBuilder();
+
+        $uri = $uriBuilder->reset()->uriFor('distributions', [], 'List');
+        $title = $this->translate('extConfTemplate.backToList');
+        $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon('actions-view-go-back', Icon::SIZE_SMALL);
+        $button = $buttonBar->makeLinkButton()
+            ->setHref($uri)
+            ->setTitle($title)
+            ->setIcon($icon);
+        $buttonBar->addButton($button, ButtonBar::BUTTON_POSITION_LEFT);
+    }
 }
index 77a1efa..267ef34 100644 (file)
@@ -14,11 +14,14 @@ namespace TYPO3\CMS\Extensionmanager\Controller;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Backend\Template\Components\ButtonBar;
+use TYPO3\CMS\Backend\View\BackendTemplateView;
 use TYPO3\CMS\Core\Core\Bootstrap;
+use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Messaging\FlashMessage;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+use TYPO3\CMS\Extbase\Mvc\View\ViewInterface;
 use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
-use TYPO3\CMS\Extensionmanager\Domain\Model\Dependency;
 use TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException;
 use TYPO3\CMS\Extensionmanager\Utility\ExtensionModelUtility;
 use TYPO3\CMS\Extensionmanager\Utility\Repository\Helper;
@@ -26,7 +29,7 @@ use TYPO3\CMS\Extensionmanager\Utility\Repository\Helper;
 /**
  * Controller for extension listings (TER or local extensions)
  */
-class ListController extends AbstractController
+class ListController extends AbstractModuleController
 {
     /**
      * @var \TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository
@@ -108,6 +111,22 @@ class ListController extends AbstractController
     }
 
     /**
+     * Set up the doc header properly here
+     *
+     * @param ViewInterface $view
+     * @return void
+     */
+    protected function initializeView(ViewInterface $view)
+    {
+        if ($view instanceof BackendTemplateView) {
+            /** @var BackendTemplateView $view */
+            parent::initializeView($view);
+            $this->generateMenu();
+            $this->registerDocheaderButtons();
+        }
+    }
+
+    /**
      * Adds an information about composer mode
      */
     protected function addComposerModeNotification()
@@ -250,4 +269,39 @@ class ListController extends AbstractController
             )
         );
     }
+
+    /**
+     * Registers the Icons into the docheader
+     *
+     * @return void
+     * @throws \InvalidArgumentException
+     */
+    protected function registerDocheaderButtons()
+    {
+        if ($this->actionMethodName === 'distributionsAction') {
+            return;
+        }
+
+        /** @var ButtonBar $buttonBar */
+        $buttonBar = $this->view->getModuleTemplate()->getDocHeaderComponent()->getButtonBar();
+        $uriBuilder = $this->controllerContext->getUriBuilder();
+
+        if ($this->actionMethodName === 'showAllVersionsAction') {
+            $uri = $uriBuilder->reset()->uriFor('ter', [], 'List');
+            $title = $this->translate('extConfTemplate.backToList');
+            $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon('actions-view-go-back', Icon::SIZE_SMALL);
+            $classes = '';
+        } else {
+            $uri = $uriBuilder->reset()->uriFor('form', [], 'UploadExtensionFile');
+            $title = $this->translate('extensionList.uploadExtension');
+            $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon('actions-edit-upload', Icon::SIZE_SMALL);
+            $classes = 't3js-upload';
+        }
+        $button = $buttonBar->makeLinkButton()
+            ->setHref($uri)
+            ->setTitle($title)
+            ->setClasses($classes)
+            ->setIcon($icon);
+        $buttonBar->addButton($button, ButtonBar::BUTTON_POSITION_LEFT);
+    }
 }
index 53a5236..1c88a8a 100644 (file)
@@ -13,13 +13,33 @@ namespace TYPO3\CMS\Extensionmanager\Controller;
  *
  * The TYPO3 project - inspiring people to share!
  */
+use TYPO3\CMS\Backend\Template\Components\ButtonBar;
+use TYPO3\CMS\Backend\View\BackendTemplateView;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Extbase\Mvc\View\ViewInterface;
 
 /**
  * Controller for configuration related actions.
  */
-class UpdateScriptController extends AbstractController
+class UpdateScriptController extends AbstractModuleController
 {
     /**
+     * Set up the doc header properly here
+     *
+     * @param ViewInterface $view
+     * @return void
+     */
+    protected function initializeView(ViewInterface $view)
+    {
+        if ($view instanceof BackendTemplateView) {
+            /** @var BackendTemplateView $view */
+            parent::initializeView($view);
+            $this->generateMenu();
+            $this->registerDocheaderButtons();
+        }
+    }
+
+    /**
      * Show the content of the update script (if any).
      *
      * @param string $extensionKey Extension key
@@ -37,4 +57,27 @@ class UpdateScriptController extends AbstractController
             ->assign('updateScriptResult', $updateScriptResult)
             ->assign('extensionKey', $extensionKey);
     }
+
+    /**
+     * Registers the Icons into the docheader
+     *
+     * @return void
+     * @throws \InvalidArgumentException
+     */
+    protected function registerDocheaderButtons()
+    {
+        /** @var ButtonBar $buttonBar */
+        $buttonBar = $this->view->getModuleTemplate()->getDocHeaderComponent()->getButtonBar();
+
+        $uriBuilder = $this->controllerContext->getUriBuilder();
+
+        $uri = $uriBuilder->reset()->uriFor('index', [], 'List');
+        $title = $this->translate('extConfTemplate.backToList');
+        $icon = $this->view->getModuleTemplate()->getIconFactory()->getIcon('actions-view-go-back', Icon::SIZE_SMALL);
+        $button = $buttonBar->makeLinkButton()
+            ->setHref($uri)
+            ->setTitle($title)
+            ->setIcon($icon);
+        $buttonBar->addButton($button, ButtonBar::BUTTON_POSITION_LEFT);
+    }
 }
index 664d4f1..f60c3d8 100644 (file)
@@ -1,7 +1,7 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 
-<f:be.container pageTitle="Extension Manager" enableClickMenu="false" loadExtJsTheme="false" loadJQuery="true"
-
+<f:be.pageRenderer
+       loadJQuery="true"
        includeCssFiles="{
                0:'{f:uri.resource(path:\'Contrib/LoadMask/jquery.loadmask.css\')}'
        }"
        }"
        includeRequireJsModules="{
                0:'TYPO3/CMS/Extensionmanager/Main'
-       }">
+       }"
+       />
+<f:render section="headline" />
+<f:flashMessages />
 
-       <em:be.trigger triggers="{triggers}" />
-       <div id="typo3-docheader">
-               <div class="typo3-docheader-functions">
-                       <f:be.menus.actionMenu>
-                               <f:be.menus.actionMenuItem label="{f:translate(key: 'installedExtensions')}" controller="List" action="index" />
-                               <f:if condition="{settings.offlineMode} == 0">
-                                       <f:then>
-                                               <f:if condition="{settings.composerMode} == 0">
-                                                       <f:then>
-                                                               <f:be.menus.actionMenuItem label="{f:translate(key: 'getExtensions')}" controller="List" action="ter" />
-                                                               <f:be.menus.actionMenuItem label="{f:translate(key: 'distributions')}" controller="List" action="distributions" />
-                                                               <f:if condition="{actionName} == 'showAllVersions'">
-                                                                       <f:be.menus.actionMenuItem label="{f:translate(key: 'showAllVersions')} {extensionKey}" controller="List" action="showAllVersions" />
-                                                               </f:if>
-                                                       </f:then>
-                                               </f:if>
-                                       </f:then>
-                               </f:if>
-                       </f:be.menus.actionMenu>
-               </div>
-               <div class="typo3-docheader-buttons">
-                       <f:render section="docheader-buttons" />
-               </div>
-       </div>
-       <div id="typo3-docbody">
-               <div id="typo3-inner-docbody" class="typo3-extension-manager">
-                       <f:render section="module-headline" />
-                       <f:render section="Content" />
-               </div>
-       </div>
-</f:be.container>
+<f:render section="content" />
index 0045f6a..9fdb2e2 100644 (file)
@@ -1,27 +1,16 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 {namespace core=TYPO3\CMS\Core\ViewHelpers}
-<f:layout name="main" />
 
-<f:section name="docheader-buttons">
-       <a href="{f:uri.action(action:'index',controller:'List',additionalParams:{search:extension.key})}" title="{f:translate(key:'extConfTemplate.backToList')}">
-               <core:icon identifier="actions-view-go-back" />
-       </a>
-       <a href="javascript:document.configurationform.submit();" title="{f:translate(key:'LLL:EXT:lang/locallang_common.xlf:save')}">
-               <core:icon identifier="actions-document-save" />
-       </a>
-       <a href="#" title="{f:translate(key:'LLL:EXT:lang/locallang_common.xlf:saveAndClose')}" class="t3js-save-close">
-               <core:icon identifier="actions-document-save-close" />
-       </a>
-</f:section>
+<f:layout name="main" />
 
-<f:section name="module-headline">
+<f:section name="headline">
        <h1>
                <f:translate key="extConfTemplate.headline" />
                {extension.key}
        </h1>
 </f:section>
 
-<f:section name="Content">
+<f:section name="content">
        <div role="tabpanel">
                <ul class="nav nav-tabs" role="tablist">
                        <f:for each="{configuration}" as="category" key="categoryNumber" iteration="iteration">
@@ -35,7 +24,7 @@
                        </f:for>
                </ul>
 
-               <f:form action="save" name="configurationform" class="validate">
+               <f:form action="save" name="configurationform" id="configurationform" class="validate">
                        <div class="tab-content">
                                <f:form.hidden name="extensionKey" value="{extension.key}" />
                                <f:for each="{configuration}" as="category" key="categoryNumber" iteration="iteration">
index 86c0ea6..3be7866 100644 (file)
@@ -1,17 +1,12 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 {namespace core=TYPO3\CMS\Core\ViewHelpers}
-<f:layout name="main" />
 
-<f:section name="docheader-buttons">
-       <a href="{f:uri.action(controller: 'List',action: 'distributions')}" title="{f:translate(key:'extConfTemplate.backToList')}">
-               <core:icon identifier="actions-view-go-back" />
-       </a>
-</f:section>
+<f:layout name="main" />
 
-<f:section name="module-headline">
+<f:section name="headline">
 </f:section>
 
-<f:section name="Content">
+<f:section name="content">
        <f:flashMessages class="distribution-detail-flashmessage" />
        <div class="distribution-detail">
                <div class="distribution-detail-previewpane">
index 1001c93..9e1d210 100644 (file)
@@ -2,15 +2,11 @@
 
 <f:layout name="main"/>
 
-<f:section name="docheader-buttons">
-</f:section>
-
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="distributions">Get Distributions</f:translate></h1>
 </f:section>
 
-<f:section name="Content">
-       <f:flashMessages />
+<f:section name="content">
        <f:if condition="{enableDistributionsView}">
                <f:then>
                        <f:if condition="{showUnsuitableDistributions} == 0">
index c1a1ed4..67e7af4 100644 (file)
@@ -3,25 +3,11 @@
 
 <f:layout name="main" />
 
-<f:section name="docheader-buttons">
-       <f:if condition="{settings.composerMode} == 0">
-               <f:then>
-                       <div id="upload-button-wrap">
-                               <a href="{f:uri.action(action:'form',controller:'UploadExtensionFile')}" title="{f:translate(key:'extensionList.uploadExtension')}">
-                                       <core:icon identifier="actions-edit-upload" />
-                               </a>
-                       </div>
-               </f:then>
-       </f:if>
-</f:section>
-
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="installedExtensions" /></h1>
 </f:section>
 
-<f:section name="Content">
-       <f:flashMessages />
-
+<f:section name="content">
        <f:render partial="List/UploadForm" />
 
        <form class="form-inline">
index 36d998f..173ab3d 100644 (file)
@@ -1,7 +1,7 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 {namespace core=TYPO3\CMS\Core\ViewHelpers}
 
-<f:layout name="main"/>
+<f:layout name="main" />
 
 <f:section name="docheader-buttons">
        <a href="{f:uri.action(action: 'ter')}" title="{f:translate(key:'extConfTemplate.backToList')}">
@@ -9,11 +9,11 @@
        </a>
 </f:section>
 
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="showAllVersions" /> {extensionKey}</h1>
 </f:section>
 
-<f:section name="Content">
+<f:section name="content">
        <f:if condition="{currentVersion}">
                <p>{currentVersion.description}</p>
 
index c3b6d1b..2891288 100644 (file)
@@ -1,26 +1,13 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 {namespace core=TYPO3\CMS\Core\ViewHelpers}
-<f:layout name="main"/>
 
-<f:section name="docheader-buttons">
-       <f:if condition="{settings.composerMode} == 0">
-               <f:then>
-                       <div id="upload-button-wrap">
-                               <a href="{f:uri.action(action:'form',controller:'UploadExtensionFile')}" title="{f:translate(key:'extensionList.uploadExtension')}">
-                                       <core:icon identifier="actions-edit-upload" />
-                               </a>
-                       </div>
-               </f:then>
-       </f:if>
-</f:section>
+<f:layout name="main" />
 
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="getExtensions">Get Extensions</f:translate></h1>
 </f:section>
 
-<f:section name="Content">
-       <f:flashMessages />
-
+<f:section name="content">
        <f:render partial="List/UploadForm" />
 
        <div class="row">
index 38323c4..42aa024 100644 (file)
@@ -2,14 +2,11 @@
 
 <f:layout name="main" />
 
-<f:section name="docheader-buttons">
-</f:section>
-
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="installExtension">Install extension</f:translate></h1>
 </f:section>
 
-<f:section name="Content">
+<f:section name="content">
        <f:flashMessages />
        <f:render partial="List/UnresolvedDependencies" arguments="{_all}" />
        <f:be.infobox title="{f:translate(key: 'dependencyCheck.unresolvedDependencies.title')}" state="1">
index d86540b..54001e2 100644 (file)
@@ -1,18 +1,13 @@
 {namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
 {namespace core=TYPO3\CMS\Core\ViewHelpers}
-<f:layout name="main" />
 
-<f:section name="docheader-buttons">
-       <a href="{f:uri.action(action:'index',controller:'List',additionalParams:{search:extensionKey})}" title="{f:translate(key:'extConfTemplate.backToList')}">
-               <core:icon identifier="actions-view-go-back" />
-       </a>
-</f:section>
+<f:layout name="main" />
 
-<f:section name="module-headline">
+<f:section name="headline">
        <h1><f:translate key="updateScript.headline" arguments="{0: extensionKey}" /></h1>
 </f:section>
 
-<f:section name="Content">
+<f:section name="content">
        <div class="update-script">
                <f:if condition="{updateScriptResult}">
                        <f:then>
index c64d4db..8a14dfb 100644 (file)
@@ -349,7 +349,7 @@ define(['jquery', 'nprogress', 'TYPO3/CMS/Backend/Modal', 'datatables', 'TYPO3/C
         *
         */
        Repository.initDom = function() {
-               NProgress.configure({parent: '#typo3-docheader', showSpinner: false});
+               NProgress.configure({parent: '.t3js-module-body', showSpinner: false});
 
                $('#terTable').DataTable({
                        lengthChange: false,
@@ -696,7 +696,7 @@ define(['jquery', 'nprogress', 'TYPO3/CMS/Backend/Modal', 'datatables', 'TYPO3/C
         */
        ExtensionManager.UploadForm.initializeEvents = function() {
                // Show upload form
-               $(document).on('click', '#upload-button-wrap > a', function(event) {
+               $(document).on('click', '.t3js-upload', function(event) {
                        var $me = $(this),
                                $uploadForm = $('.uploadForm');