This project is mirrored from https://git.typo3.org/typo3/typo3.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 01 May, 2021 5 commits
  2. 30 Apr, 2021 6 commits
    • Benjamin Franzke's avatar
      [FEATURE] Introduce backend module web component router · de74be87
      Benjamin Franzke authored
      A custom Lit-based web componenent router is added which
      reflects module URLs into the browser adress bar and
      at the same time prepares for native web components to
      be used as future iframe module alternatives.
      
      Such modules will be implemented as JavaScript modules,
      that provide an implementation for a custom HTML Web
      Component. The first of such components (added within
      this change) is a wrapper component for traditional
      iframe-based backend modules.
      
      Module state changes are advertised via DOM events and
      propagated to the browser address bar, browser title,
      and the module menu.
      
      Adress bar updates
      ==================
      
      The module URL to address bar synchronisation enables sharable
      module deeplinks to be copied from the browser address bar.
      Whenever a component advertises a state change (e.g.
      iframe change), a sharable deep link is generated and
      shown in the browser adressbar.
      
      Technical preparation for the required deeplinking has been
      added with #93674.
      
      History Management
      ==================
      
      Browser history state is managed via the iframe
      history context of the content module frame
      (that is unlike other modern Single Page Applications
      which use history.pushState and history.replaceState).
      
      This approach required some synchronisation work, but there are
      technical limitations that prevent a combination of iframe history
      updates in combination for newer API like history.pushState.
      (The limitation is: state added by history.pushState is skipped
      by iframe history handling).
      
      The advantage of this compromise is: All "traditional" modules will
      preserve their state handling as before, no breaking/behavioral
      changes for iframe-based modules.
      
      Routing
      =======
      
      The router uses two parameters to perform routing:
       * module – Module name as defined in ext_tables.php
       * endpoint – (json) api to be used by the component (= module URL)
      The module attribute is used to perform the actual routing
      to the respective backend module component, while the endpoint
      attribute serves as API to parse/fetch the state of the module.
      
      A named slot is used to switch between the available module components.
      That means only one of the routers childNodes will be visible at a
      time, while all modules are actively attached to the DOM.
      State is therefore preserved when switching between modules
      and the iframe is always kept active, allowing to act as history
      state-container (as described in "History Management").
      
      Example of two modules that are attached to the DOM, where
      only <typo3-configuration-module> is visible as the <slot>
      in the shadow root puts a reference to this childNode:
      
      <typo3-backend-module-router module="system_config" endpoint="…">
        #shadow-root
          <slot name="TYPO3/CMS/Lowlevel/ConfigurationModule"></slot>
        <typo3-iframe-module endpoint="…"
          slot="TYPO3/CMS/Backend/Module/Iframe"></…>
        <typo3-configuration-module endpoint="…"
          slot="TYPO3/CMS/Lowlevel/ConfigurationModule"></…>
      </typo3-backend-module-router>
      
      Note: The "TYPO3/CMS/Lowlevel/ConfigurationModule" component is not
      yet part of this commit, and only serves as an example (will be
      implemented later on). The slot name is resolved from
      the module key.
      
      Out of scope for this patch (will follow later)
      ===============================================
      
       * Link based routing interception via data-module tag for anchor tags.
         To be added as an additional convenience API on top of the
         router module and endpoint attribute (current API).
       * Convenience components for module layout
       * Integration into shortcut handler
       * Install-tool URLs do not reflect into addressbar right now
         Install-tool modules are redirected, therefore url updates can not
         be mapped as backend URLs right now
         Solution will probably be to integrate the install tool
         components as web component into the backend.
      
      Resolves: #93988
      Related: #93674
      Releases: master
      Change-Id: I682e89649b597c8c74b6a0a8f198f6bcf5bbc347
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/67464
      
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      de74be87
    • Christian Kuhn's avatar
      [TASK] Simplify ext:beuser moduleData handling · d9c10375
      Christian Kuhn authored and Andreas Fernandez's avatar Andreas Fernandez committed
      * Store an array in uc instead of serialized objects
      * PHP 7.4 strictness in some classes
      * Simplified inheritance chain
      * Drop a service class of little use by merging
        calls to controller
      * Avoid another ObjectManager->get() call
      * Minor bugfix that a shortcut to 'compare users'
        is not reflected in module menu drop down
      * Minor cosmetics
      
      Change-Id: I73bd2f884573807a819e4ae0d68c93897641b0f1
      Resolves: #94025
      Releases: master
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68924
      
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      d9c10375
    • Oliver Bartsch's avatar
      [BUGFIX] Add active class to correct element in EXT:workspaces · 25a010a3
      Oliver Bartsch authored and Benni Mack's avatar Benni Mack committed
      The tablist inside the element information modal
      in the workspaces module did not longer set the
      active state on the correct tab item.
      
      This is due to a change in bootstrap 5, since an
      active tab is highlighted by setting the `active`
      class on the tab item link (`nav-link`) instead of
      the tab item (`nav-item`) itself.
      
      This is fixed by adding the `active` class to the
      correct element again.
      
      Further reference:
      https://getbootstrap.com/docs/5.0/components/navs-tabs
      
      Resolves: #94028
      Related: #93119
      Releases: master
      Change-Id: I21ee8ede69876feef047c6303c4fbe890f898a65
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68928
      
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      25a010a3
    • Benni Mack's avatar
      [BUGFIX] Resolve WS overlays in Extbase JOIN queries properly · d608b64c
      Benni Mack authored
      When having JOINs in SQL selects, which typically happens
      when a MM property is resolved via Extbase's ORM, versionOL()
      threw an SQL error because versionOL() also queried "uid_local"
      which did not exist in e.g. sys_category.
      
      This change splits up the massive "overlayLanguageAndWorkspace()"
      method into smaller chunks and takes a different route when
      doing workspace overlays for JOINs. By re-fetching the main tables'
      record, all known fields can be identified via array_key_intersect()
      and then chunked together again with the JOINed information
      via array_replace().
      
      The added tests show that the assertion for MM relations now work
      (if the fix is not applied, the included tests fail due to a SQL error in tests),
      but deliver a wrong result, which will be fixed with
      https://review.typo3.org/c/Packages/TYPO3.CMS/+/68913
      
      Resolves: #81208
      Resolves: #93484
      Releases: master, 10.4
      Change-Id: Iaba70be0cf5b7a36ab13380940286628ac976f9a
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68915
      
      
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Nikita Hovratov's avatarNikita Hovratov <nikita.h@live.de>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Ralf Merz's avatarRalf Merz <mail@merzilla.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      d608b64c
    • Oliver Bartsch's avatar
      [TASK] Remove clearable related wrap from MFA providers · fc6bf1f5
      Oliver Bartsch authored and Benni Mack's avatar Benni Mack committed
      The input field of both, TOTP and recovery codes,
      was wrapped into a container having `form-control`
      and `form-control-clearable` classes set.
      
      Those classes have no effect, since they belong to
      the clearable functionality of TYPO3 and will be added
      automatically on initialization. Since MFA does not use
      this functionality, the container is removed.
      
      Resolves: #94027
      Releases: master
      Change-Id: I563fd55629f002df3617306a52da20c379cfcd75
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68927
      
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      fc6bf1f5
    • Benni Mack's avatar
      [TASK] Pin fluid standalone dependency to ^2.6.10 · 4ed1c061
      Benni Mack authored and Benjamin Franzke's avatar Benjamin Franzke committed
      Various parts of TYPO3 Core are not ready yet
      to be used with Fluid Engine 3.0-dev, which
      people might accidentally install.
      
      This change sets the fluid dependency back to
      ^2.6.10
      
      Used commands:
      
      - composer req "typo3fluid/fluid:^2.6.10"
      - composer req "typo3fluid/fluid:^2.6.10" -d typo3/sysext/adminpanel --no-update
      - composer req "typo3fluid/fluid:^2.6.10" -d typo3/sysext/core --no-update
      - composer req "typo3fluid/fluid:^2.6.10" -d typo3/sysext/fluid --no-update
      - composer req "typo3fluid/fluid:^2.6.10" -d typo3/sysext/redirects --no-update
      
      Resolves: #91850
      Releases: master, 10.4
      Change-Id: If46475fd3fdbca3ce23a652a253c0ac28d9a6149
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68919
      
      
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      4ed1c061
  3. 29 Apr, 2021 14 commits
  4. 28 Apr, 2021 6 commits
  5. 27 Apr, 2021 9 commits