Skip to content

5.7.0

Choose a tag to compare

@spryker-release-bot spryker-release-bot released this 15 Sep 09:47
· 1 commit to master since this release

Included commits: 5.6.0...5.7.0

Improvements

  • Introduced GuiConfig::isSimplePaginationEnabledByDefault(), GuiConfig::isCaseSensitiveSearchEnabledByDefault(), and GuiConfig::isSortingEnabledByDefault() to allow project-wide control over Zed table pagination, search, and sorting performance defaults. Each returns null by default, meaning the behavior is resolved adaptively per request.
  • Introduced GuiConfig::getLargeTableRowCountThreshold() — the approximate row count above which AbstractTable treats a table as large and enables the performance optimizations automatically. Returns null by default, which keeps the adaptive check disabled entirely and leaves all existing tables unchanged.
  • Introduced TableConfiguration::setUseSimplePagination() and TableConfiguration::isSimplePaginationEnabled() to skip both the recordsTotal and recordsFiltered COUNT(*) queries on large Zed tables, replacing them with a single extra fetched row and switching the UI to Previous/Next-only pagination.
  • Introduced TableConfiguration::setUseCaseSensitiveSearch() and TableConfiguration::isCaseSensitiveSearchEnabled() to match the global search box with an exact, case-sensitive comparison that can use existing indexes, instead of a LOWER(column) LIKE '%term%' pattern that forces a full table scan.
  • Introduced TableConfiguration::setUseSorting() and TableConfiguration::isSortingEnabled() to skip ORDER BY on the underlying query, avoiding a full sort of the joined result set on very large tables. A genuine column click from the client still applies.
  • Introduced TableConfiguration::isColumnSearchEnabled() and extended TableConfiguration::getSearchableColumns() to support per-column search inputs alongside the global search box. setSearchable() now also accepts an associative [headerKey => sqlExpression] array, which doubles as the per-column search map, and setSearchableColumns() remains available for configuring per-column search independently.
  • Introduced AbstractTable::resolveAdaptiveTableConfiguration() and AbstractTable::getGuiConfig(), which resolve the still-unset performance flags for a single request based on the estimated row count of the query's main table. An explicit value from configure() or from GuiConfig always wins and skips the row-count check.
  • Introduced a translated hint shown on tables running in large-table mode, explaining why pagination, search, and sorting behave differently (en_US/de_DE translations added).
  • Introduced a centralized Zed table library under assets/Zed/js/modules/libs/table/: table.js orchestrates creation and configuration of every Back Office table, and table-access.js, table-handle.js, assignable-table.js, master-detail-table.js, performance-table.js, and searchable-table.js provide the feature set modules previously implemented themselves. Documented in libs/table/README.md.
  • Introduced deferred table initialization: tables in hidden containers (closed tabs, dialogs) are held back by an IntersectionObserver and created when they become visible, so they no longer size their columns against a zero-width container or fetch rows the user may never see.
  • Introduced pagination boundary handling in performance-table.js, so a persisted page offset beyond the available records resets to the first page instead of rendering an empty table.
  • Adjusted Presentation/Table/table.twig to render the gui-table-data class by default (overridable via the class variable), so every AbstractTable-based grid is discovered by the centralized table library.
  • Adjusted TableConfiguration::getSearchable() to always return a list, so an associative searchable configuration does not leak its keys into the global search configuration.

Removals

  • Removed the per-module DataTables initialization path from assets/Zed/js/modules/init.js and assets/Inspinia2/js/app.js; tables are now created exclusively by the centralized table library.
  • Removed the unused Bootstrap 3 DataTables packages (datatables.net-bs, datatables.net-buttons-bs, datatables.net-responsive-bs, datatables.net-select-bs) from the Zed asset dependencies; only the Bootstrap 5 variants remain in use.