1. 21 Jun, 2022 1 commit
  2. 02 Mar, 2021 1 commit
  3. 04 Jan, 2021 1 commit
  4. 21 Dec, 2020 1 commit
    • Benjamin Franzke's avatar
      [TASK] Update bootstrap javascript to 5.0.0-beta1 · 27881b60
      Benjamin Franzke authored and Benni Mack's avatar Benni Mack committed
      Bootstrap v5 – introduced in #92616 – was added with CCS from beta1 but
      JavaScript from alpha2. bootstrap.bundle.js was manually wrapped
      into a AMD closure, and because bootstrap 5.0.0-beta1 contains alot of
      changes regarding data tags, it couldn't be updated in the initial
      Bootstrap is now bundled using rollup using the ES6 sources in order
      to allow for automatic updates through `grunt build`.
      popperjs – previously bundled into bootstrap distributed files –
      is now added as dependency. The bootstap ES6 sources, that we now use
      through rollup, do not bundle this external dependency (for good reasons).
      Dependency added with:
         yarn add @popperjs/core
      Further adaptions contained in this change to ensure beta1 compatibility:
      a) Carousel "item" to "carousel-item" class migration
      b) $.fn.modal(options) does no longer imply $.fn.modal('show')
      c) Fix panels, both JS and CSS (card-group can't be used here)
      d) All bootstrap data- tags are migrated to data-bs-.
         (see https://github.com/twbs/bootstrap/pull/31827)
         Migrated with
         # renderes a sed substition with the help of a nested sed from all the
         # data-bs attributes that where changed in the twbs/bootstrap commit
         git grep -l data- | xargs sed -i $( \
              curl -s \
              https://patch-diff.githubusercontent.com/raw/twbs/bootstrap/pull/31827.patch | \
              sed 's/data-bs-[a-z-]*/\n&\n/g' | grep "data-bs-[a-z-]" | \
              sort | uniq | \
              sed 's/data-bs-\(.*\)\([^a-z-]\|$\)/ -e s\/data-\1\\\([^a-z-]\\\)\/data-bs-\1\\1\/g -e s\/data('"'"'\1'"'"')\/data('"'"'bs-\1'"'"')\/g/g' \
         # Revert false positives from the above auto-replacement
         git checkout -- typo3/sysext/core/Documentation/Changelog/ \
              typo3/sysext/backend/Classes/Form/Container/FlexFormContainerContainer.php \
              Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LiveSearch.ts \
              Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngineFlexForm.ts \
              Build/Sources/TypeScript/install/Resources/Public/TypeScript/Module/Settings/ExtensionConfiguration.ts \
         (cd Build && grunt build)
      Resolves: #93126
      Resolves: #93123
      Resolves: #93132
      Related: #92616
      Releases: master
      Change-Id: Ie194d0f87d2c60df7b9e8a6de4893cfaaea55356
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/67215
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: default avatarMartin Kutschker <mkutschker-typo3@yahoo.com>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarMartin Kutschker <mkutschker-typo3@yahoo.com>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
  5. 20 Dec, 2020 1 commit
    • Matthias Stegmann's avatar
      [FEATURE] Introduce Bootstrap v5 for TYPO3 Backend · 793fc121
      Matthias Stegmann authored and Benni Mack's avatar Benni Mack committed
      This changes removes the frontend framework
      Bootstrap 3, and adds Bootstrap 5 beta 1 (we
      expect Bootstrap 5 final by the time we release TYPO3 v11 LTS).
      Bootstrap v3 is not supported by the Bootstrap
      team any longer, so an update is critical for TYPO3 Core.
      Bootstrap v5 adds a few accessibility improvements
      as well as flexbox for rendering
      containers and grids throughout TYPO3 Backend.
      All JS components are not bound to jQuery anymore,
      and have been reworked.
      A lot of HTML/CSS changes happened, which we
      slowly migrate (and not in a huge change)
      to TYPO3's templates, in order to keep
      this change managable.
      A legacy CSS/SCSS file is added to
      keep some backwards-compatibility classes
      to ease the migration for extension developers
      who have built their own backend modules.
      Key features of Bootstrap 5:
      * "rem" instead of "px" is used by default
      * CSS variables are introduced
      * Improved bootstrap focus outline styling (buttons / inputs / links)
      * Simplified grid functionality
      * use new button color mixin to increase contrast:
        Primary, Success and Warning Button color is now dark instead of white
      EXT:styleguide was used as a basis for
      upgrading to keep compatibility as much
      as possible, but more changes will be coming
      in the next few minor releases.
      Resolves: #92616
      Releases: master
      Change-Id: Iec989f39649b5460b055ec879199faf38e424f2b
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/66247
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Tested-by: Oliver Hader's avatarOliver Hader <oliver.hader@typo3.org>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: Oliver Hader's avatarOliver Hader <oliver.hader@typo3.org>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
  6. 28 Jun, 2019 1 commit
  7. 23 Apr, 2019 1 commit
  8. 06 Jul, 2018 1 commit
  9. 20 Apr, 2018 1 commit
  10. 19 Sep, 2017 1 commit
    • 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
      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
      * 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>
  11. 24 Aug, 2017 1 commit
  12. 18 Aug, 2017 1 commit
    • Mona Muzaffar's avatar
      [!!!][FEATURE] Main install tool refactoring · eb7539b6
      Mona Muzaffar authored and Frank Nägler's avatar Frank Nägler committed
      The patch applies a major refactoring of the "tool" part of the
      install tool. As the most visible change, the install tool
      application is now split from the "install" backend module menu
      entry into four different entries - "Maintenance", "Settings",
      "Upgrade" and "Environment". This is in-line with the strategy outline at
      The patch can be seen as the main separation and split patch to
      introduce the integration of the install tool application
      into the overall backend look and feel.
      On the visible side, single install tool actions that were
      spread over the old menu entries like "all configuration" and
      friends are now given single "cards" within one of the four
      main module entries. The "standalone" version of the install
      tool is now similar to the backend view - just without all the
      other module menu entries.
      Aside from this major visible change, the patch comes with
      a main refactoring of the underlying PHP code and click behavior:
      * All "action" buttons that initiate something are now ajax based.
        Codewise, this is the major part.
      * No main controller loads ext_tables / ext_localconf anymore.
      * Main "Install.js" is now mostly a dispatcher to load specific
        requireJs components determined by given clicked main module.
      * Major refactorinng of JavaScript output and click-flow.
      * Introduce various new "services". Ajax actions always return
        objects and arrays, but no HTML. This is a major step towards
        proper cli and psr-7 integration.
      Even with the install tool paradigm "never cache anything", the
      application feels very snappy due to slim main controllers
      and straight single Ajax action triggers.
      Some parts of the internal PHP API of the install tool have been
      changed. While the install tool is "internal" anyway, this patch
      has been marked as [!!!] to hint extension developers in the
      unlikely case it breaks some low level extension.
      The state of this major change is not "perfect": There are
      various details to improve. However, this patch has more than
      9k lines, all major parts work fine and the huge file juggling
      prevents other patches from being integrated. Glitches and
      further improvements can be done with small patches afterwards.
      Resolves: #76084
      Releases: master
      Change-Id: I2cc93f35c0760fce33c2136d41159c802932dfc4
      Reviewed-on: https://review.typo3.org/53109
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Mona Muzaffar's avatarMona Muzaffar <mona.muzaffar@gmx.de>
      Tested-by: Mona Muzaffar's avatarMona Muzaffar <mona.muzaffar@gmx.de>
      Reviewed-by: Frank Nägler's avatarFrank Naegler <frank.naegler@typo3.org>
      Tested-by: Frank Nägler's avatarFrank Naegler <frank.naegler@typo3.org>
      Reviewed-by: Marco Christian Krenn's avatarMarco Christian Krenn <krenn@webconsulting.at>
      Tested-by: Marco Christian Krenn's avatarMarco Christian Krenn <krenn@webconsulting.at>
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: Philipp Hamid's avatarPhilipp Hamid <ph@supertrumpf.at>
      Tested-by: Philipp Hamid's avatarPhilipp Hamid <ph@supertrumpf.at>