1. 04 Jan, 2021 2 commits
  2. 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
      patch.
      
      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 \
              Build/Sources/Sass/typo3/_element_panel.scss
      
         (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>
      27881b60
  3. 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>
      793fc121
  4. 17 Dec, 2020 1 commit
    • Oliver Bartsch's avatar
      [!!!][TASK] Rework shortcut PHP API functionality · e4833fda
      Oliver Bartsch authored and Christian Kuhn's avatar Christian Kuhn committed
      To be able to introduce URL rewrites for the backend,
      the internal handling and registration of the shortcut
      PHP API is reworked.
      
      The Shortcut PHP API previously has the full URL of
      the shortcut target stored in the database. This lead
      to many problems such as shortcuts got invalid as soon
      as their target module changed its route path. Furthermore,
      this required unnecessary functionality like replacing
      tokens on URL creation.
      
      Therefore, a shortcut record now stores only the route
      identifier of the module to link to and necessary arguments
      in two new database columns. A upgrade wizard is in place
      to migrate existing data.
      
      The rework also required to deprecate some methods in
      the ShortcutButton API and a parameter signature change
      of the JavaScript function `TYPO3.ShortcutMenu.createShortcut()`
      which performs the AJAX call to create new shortcuts.
      
      Side effect, this also deprecated the last remains of
      xMOD_alt_doc.php in the core.
      
      Resolves: #93093
      Releases: master
      Change-Id: I07666a299651e4953b4adf2987fcd3469094c288
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/67143
      
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Daniel Goerz's avatarDaniel Goerz <daniel.goerz@posteo.de>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Daniel Goerz's avatarDaniel Goerz <daniel.goerz@posteo.de>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      e4833fda
  5. 14 Dec, 2020 1 commit
  6. 10 Dec, 2020 1 commit
  7. 23 Oct, 2020 1 commit
  8. 21 Oct, 2020 1 commit
  9. 12 Oct, 2020 1 commit
    • Benni Mack's avatar
      [!!!][TASK] Remove move placeholders · 27c7de8a
      Benni Mack authored and Christian Kuhn's avatar Christian Kuhn committed
      Workspaces ("Element-based versioning") previously had - due to
      the "pid=-1" logic until TYPO3 v10 - a so-called "MOVE PLACEHOLDER".
      
      This was indicated by t3ver_state = 3, all relevant fields:
      * t3ver_state = 3 (move placeholder)
      * t3ver_oid = 0 no connected live record, it allowed fetching these records
        with one query together with live records as db restrictions t3ver_oid > 0
      * t3ver_wsid = workspace UID
      * t3ver_move_id = UID of the live record
      * pid = new PID the version was moved to
      * sorting - when a record was moved within page with activated sorting
      
      Other record fields were not important. However, when moving a record, the
      value from TCA ctrl section "shadowColumnsForMovePlaceholders" was used to
      fill in gaps from the live record.
      
      The ACTUAL versioned record was indicated by t3ver_state = 4, the so-called
      "MOVE POINTER". In previous version until TYPO3 v10, it's PID field was set
      to -1, but since TYPO3 v10, it has the same PID as the "MOVE PLACEHOLDER".
      
      Characteristics of the move pointer as of TYPO3 v10:
      * t3ver_state = 4 (move pointer)
      * t3ver_oid = UID of the live record
      * t3ver_wsid = workspace UID
      * t3ver_move_id = 0
      * pid = PID the version was moved to
      * sorting - same value as the live record (not evaluated until now)
      * All other fields with optionally modified content
      
      Both move placeholder and move pointer did not know each other directly.
      Fetching the move pointer for a move placeheldor (or the other way around)
      involved the live record, leading to many queries.
      
      The patch obsoletes the move placeholder records, moving necessary
      information to the move pointer: It now contains the updated sorting
      and is considered in the Database Restrictions to be fetched.
      
      In general, when publishing, the moved record now
      behaves identical to the other versioned types.
      
      This makes the internal code much easier, creates less DB queries
      on read + write and leads to less DB records in the database.
      
      The change removes creation of move placeholders, and considers the
      move pointers when evaluating sorting and PID in DataHandler.
      
      Read functionality from BackendUtility and PageRepository don't need an
      additional step to fetch the live version of a move placeholder anymore.
      
      An upgrade wizard takes existing move placeholders (state=3), updates
      pid+sorting (PID generally not needed, just to be sure) of the move
      pointer (state=4) and then deletes the move placeholder.
      
      TCA definition $TCA[my-table][ctrl][shadowColumnsForMovePlaceholders]
      is not needed anymore and removed by an auto TCA migration.
      
      Finally, workspace enabled tables do not need the t3ver_move_id field
      anymore: The live record UID is already in t3ver_oid field for state=4
      records, just like with all other versioned records. The field will
      be fully removed with a separate patch in order to keep the actual CSV
      tests readable for this patch.
      
      Resolves: #92497
      Releases: master
      Change-Id: I206336aec8be8a324fefdfd69f648f5a298c6ad1
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65797
      
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      27c7de8a
  10. 02 Oct, 2020 2 commits
  11. 27 Sep, 2020 1 commit
  12. 26 Sep, 2020 1 commit
  13. 25 Sep, 2020 1 commit
  14. 20 Sep, 2020 1 commit
  15. 18 Sep, 2020 1 commit
  16. 17 Sep, 2020 1 commit
  17. 08 Sep, 2020 5 commits
  18. 05 Sep, 2020 2 commits
    • Daniel Windloff's avatar
      [TASK] DatabaseRecordList: Streamline `fieldArray` · 55f5bf73
      Daniel Windloff authored and Christian Kuhn's avatar Christian Kuhn committed
      The `fieldArray` related configuration has been moved to the `getTable`
      method.
      The configuration handling for the `fieldArray` has been changed, in
      order to avoid later unset on the `fieldArray`.
      
      The `fieldArray` is only in the `getTable` and subordinated render
      methods.
      Therefore, the implicit configuration transfer like `fieldArray[0]`
      for the label column has been replaced.
      
      Releases: master
      Resolves: #92154
      Change-Id: I04287e90e8cffc2ab768bd5399a8155f823fdfe1
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65534
      
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      55f5bf73
    • Christian Kuhn's avatar
      [!!!][TASK] Refactor create bookmark handling · 5be7b805
      Christian Kuhn authored and Anja Leichsenring's avatar Anja Leichsenring committed
      The backend shortcut / bookmark handlig API was designed to
      hand over relevant get/post arguments as key only (eg. 'id').
      The underlying code then pulled values from GET/POST or from
      SOBE->MOD_SETTINGS. This is ugly, there shouldn't be such
      magic: Only controllers know relevant keys and values, so
      it should hand them over directly to the shortcut API.
      
      The patch changes this:
      * Old and unused ViewHelper f:be.buttons.shortcut is deprecated.
      * ViewHelper be:moduleLayout.button.shortcutButton deprecates
        argument 'getVars' and adds new argument 'arguments'.
      * Class ShortcutButton has a new setter 'setArguments' that
        accepts all relevant argument key/value pairs to create a
        shortcut. Existing get/set related methods are deprecated.
      * Helper methods 'makeShortcutIcon' and 'makeShortcutUrl' of
        class ModuleTemplate are deprecated and implemented in class
        ShortcutButton directly.
      * All core usages are adapted to new API.
      * Shortcut handling was the last core usage of SOBE, so last
        $GLOBALS['SOBE'] = $this assignments can be finally removed.
      
      Impact:
      * Shortcuts to modules not directly reachable via main menu
        do not work due to limits of the module registration API. An
        example is the 'create multiple pages' controller. This issue
        exists before the patch, affected controllers no longer render
        a shortcut button for now.
      * The old code usually added the 'route' argument twice for shortcuts.
        This has been resolved. As a side effect, the comparison if a
        shortcuts exists (yellow shortcut icon) fails currently for existing
        shortcuts when the patch is applied: The comparison relies on
        direct string equality since shortcuts always store the final url in
        the database. This storage strategy should be changed with another
        patch that will solve the 'no yellow icon' issue at the same time.
      
      Change-Id: I3ccd2b8f6adab8e7780c5f9911fdea013ccfa99b
      Resolves: #92132
      Releases: master
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65503
      
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      5be7b805
  19. 04 Sep, 2020 1 commit
  20. 03 Sep, 2020 1 commit
  21. 30 Aug, 2020 4 commits
  22. 28 Aug, 2020 5 commits
  23. 27 Aug, 2020 1 commit
    • Christian Kuhn's avatar
      [!!!][TASK] Drop TCA [ctrl][thumbnail] and user uc[thumbnailsByDefault] · ae39eb5a
      Christian Kuhn authored and Anja Leichsenring's avatar Anja Leichsenring committed
      Setting TCA[$someTable]['ctrl']['thumbnail'] to some image related
      column made the list module show attached images as preview.
      Until core v8, this has been used for tt_content and has been
      dropped for this table because two different fields (images, media)
      are used and the setting could not cope with that.
      For extensions with own tables, this setting has been used
      very seldom. It also partially destroys the list module view.
      
      The patch drops evaluation of this ctrl setting in the list module.
      With this gone, the 'thumbnailsByDefault' setting of the user settings
      module only affects the file list module. The file list module has
      it's own checkbox to toggle image preview rendering, so the setup module
      checkbox has little benefit and is removed as well. This additionally
      fixes a bug that thumbnail preview rendering in file list module can't
      be turned off if the setup module checkbox is set.
      
      Additionally, the patch drops some unused css for the list module,
      'typo3-dblist' simply does not exist as class.
      
      Change-Id: If9365b5a26e708cc4d4d57cfcddd728cf97d7811
      Resolves: #92118
      Related: #79622
      Releases: master
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65493
      
      Tested-by: Achim Fritz's avatarAchim Fritz <af@achimfritz.de>
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Daniel Windloff
      Tested-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      Reviewed-by: Achim Fritz's avatarAchim Fritz <af@achimfritz.de>
      Reviewed-by: Daniel Windloff
      Reviewed-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      ae39eb5a
  24. 25 Aug, 2020 2 commits
  25. 23 Aug, 2020 1 commit