1. 13 Jan, 2022 2 commits
  2. 12 Jan, 2022 3 commits
    • Oliver Hader's avatar
      [!!!][TASK] Deny inline JavaScript in FormEngine's requireJsModules · 7b5c2d29
      Oliver Hader authored and Benjamin Franzke's avatar Benjamin Franzke committed
      Custom FormEngine components loading additional RequireJS modules
      must use corresponding JavaScriptModuleInstruction instances to
      declare modules and optional method invocations.
      
      Assigning scalar values to FormEngine node section 'requireJsModules'
      (e.g. used for arbitrary inline JavaScript callbacks) is not possible
      anymore and will throw a LogicException.
      
      Resolves: #96221
      Related: #95200
      Releases: main
      Change-Id: I8c487fa3914a46ae1ce2e75db0bf6a59756273d3
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72485
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      7b5c2d29
    • Christian Kuhn's avatar
      [TASK] Simplify Templating Bootstrap in BE Controllers · 37ac299f
      Christian Kuhn authored
      This patch introduces a new EXT:fluid view class
      "BackendTemplateView" to be used as main view for
      backend-related non-Extbase views.
      
      This class is the base of a new non-Extbase and
      non-request dependent backend view. The class is for
      now marked @internal and experimental since we'll
      probably add a factory to configure backend template
      overrides for any backend view later-on.
      
      A few ViewHelpers are changed to work without
      accessing the request if enough VH arguments are provided.
      
      This is the first patch in a series of patches that will
      switch from StandaloneView usages in backend
      controllers to this new BackendTemplateView.
      
      Basic strategy:
      * $view->getRequest()->setControllerExtensionName('SysNote')
        is removed. This is Extbase-specific and not needed nor
        wanted for common non-Extbase controllers.
      * Instantiate the View (for now with makeInstance, will be
        replaced with a factory later-on)
      * Set the needed paths via ->setTemplateRootPaths() etc.
        For these, we *always* use the main extension's entry
        templating paths, for instance
        'EXT:sys_note/Resources/Private/Templates' or
        'EXT:sys_note/Resources/Private/Partials'.
        We do *not* use sub directories here to clear up path
        logic.
      * ->assign() / ->assignMultiple() whatever is needed.
      * ->render('SubDirectory/TemplateName') the actual
        action / template, no '.html' suffix.
      
      As a demo, EXT:sys_note is adapted accordingly which hands
      over arguments to the above mentioned VH's in a way so
      these don't access the request object anymore. The sys_note
      code gets a couple of additional changes so the hooks can
      prepare request dependent arguments and set them as
      template variables (here: returnUrl).
      
      This patch triggers a hidden gem: Since ViewHelpers no
      longer receive an Extbase request, they also don't trigger
      Extbase magic anymore. The casual victim here is
      f:translate, which has already been prepared to not trigger
      Extbase's frontend TypoScript parsing if there is no
      Extbase request. This often improves backend view performance
      by 25% or more, depending on the amount of frontend
      TypoScript to parse.
      
      Further patches will adapt other core backend routes and will
      relate to this patch for reference.
      
      Change-Id: I4fec3ad690452a00e731c9f6928273048397dd89
      Resolves: #96513
      Related: #96473
      Releases: main
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72966
      
      Reviewed-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>
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      37ac299f
    • Oliver Bartsch's avatar
      [BUGFIX] Use optgroup in SelectMultipleSideBySideElement · 6de8eea9
      Oliver Bartsch authored
      Instead of using multiple "fake" <option> elements with
      the same value `--div--`, the SelectMultipleSideBySideElement
      does now use proper HTML <optgroup> elements for grouping
      of the available options. This is in line with other
      select elements, e.g. the SelectSingleElement.
      
      Besides the improved HTML markup, this also improves
      the UI, since the <optgroup> element is non-selectable.
      It is also no longer considered by the filter, which
      previously led to confusion, especially when filtering
      and having the "dividers" as only options left.
      
      Resolves: #95137
      Releases: main, 11.5
      Change-Id: Ia51e2623217eb0c7abd6c0cd2e9c4a742686641d
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72992
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Jochen's avatarJochen <rothjochen@gmail.com>
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Jochen's avatarJochen <rothjochen@gmail.com>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      6de8eea9
  3. 11 Jan, 2022 3 commits
  4. 10 Jan, 2022 1 commit
  5. 08 Jan, 2022 1 commit
  6. 07 Jan, 2022 2 commits
  7. 05 Jan, 2022 1 commit
  8. 04 Jan, 2022 1 commit
  9. 03 Jan, 2022 2 commits
  10. 30 Dec, 2021 1 commit
  11. 29 Dec, 2021 1 commit
  12. 23 Dec, 2021 1 commit
  13. 21 Dec, 2021 1 commit
  14. 20 Dec, 2021 4 commits
  15. 17 Dec, 2021 1 commit
  16. 16 Dec, 2021 2 commits
  17. 15 Dec, 2021 3 commits
  18. 14 Dec, 2021 1 commit
  19. 13 Dec, 2021 6 commits
  20. 10 Dec, 2021 1 commit
  21. 09 Dec, 2021 2 commits