• Christian Kuhn's avatar
    [TASK] Install tool: JS driven routing · 3896e163
    Christian Kuhn authored and Susanne Moog's avatar Susanne Moog committed
    The install tool suffered from three main issues since 6.2 rewrite:
    * The "step" installer was re-used for recovery and installation
    * The routing logic was server based and threw lots of redirects
      which lead to redirect loops
    * The Controller/Action class structure was weird and hard to
      understand
    
    The patch solves this with a rather huge rewrite:
    * There are two request handlers: One for the Installer, one for
      the install tool.
    * A simple list of controllers. One InstallerController for the
      step installer, the others for the main module points of the
      install tool and a Login and a Layout controller.
    * Single action code is moved into controllers.
    * Both tool and installer first load only a <head> section that
      contain JS references. All other calls are ajax based and the
      routing is done JS side.
    * Installer and install tool no longer share controller code
      or templates, the installer can potentially be fully extracted
      from ext:install in another step.
    * Installer.js is the "walk through installation" module of the
      installer.
    * Router.js is the routing module for the install tool, all tool
      ajax requests get specific urls from this module and hand over
      errors to the Router.
    * Error handling is handled on JS side: If for instance
      the login session expires and user clicks elsewhere, a 403
      response is returned which is handled by JS to route to login.
      This is also the place where a recovery can hook in later.
    * The silent configuration updater is executed again which was
      removed during one of the previous master patches.
    * The template structure is much easier.
    * Various card content which has been calculated when loading
      the card layout is moved to the ajax code for single card
      content. That increases the performance of the main module
      points and makes them pretty snappy.
    
    Change-Id: Ib40f40acba17bb47142c0da1bcfb389ab9b4b3a1
    Resolves: #82504
    Releases: master
    Reviewed-on: https://review.typo3.org/54128
    
    
    Tested-by: default avatarStefan Neufeind <typo3.neufeind@speedpartner.de>
    Tested-by: default avatarTYPO3com <no-reply@typo3.com>
    Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
    Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
    Reviewed-by: Mona Muzaffar's avatarMona Muzaffar <mona.muzaffar@gmx.de>
    Tested-by: Mona Muzaffar's avatarMona Muzaffar <mona.muzaffar@gmx.de>
    Tested-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
    Reviewed-by: Susanne Moog's avatarSusanne Moog <susanne.moog@typo3.org>
    3896e163