Skip to content

Latest commit

 

History

History
1225 lines (779 loc) · 91.8 KB

CHANGELOG.md

File metadata and controls

1225 lines (779 loc) · 91.8 KB

Changelog

All notable changes to Roadiz will be documented in this file.

2.3.31 - 2024-10-26

Bug Fixes

  • (DtsGenerator) Fixed .d.ts file header generation with latest @roadiz/types package - (49aca37)

2.3.30 - 2024-10-25

Bug Fixes

  • Updated MySQL reserved words list - (277fd69)

2.3.29 - 2024-10-10

Bug Fixes

  • Allow duplicated documents when embedding audio embed covers, fix #19 - (e61e2ee)
  • Do not throw exception on bad page and itemPerPage argument, just use defaults fix #20 - (e051822)

2.3.28 - 2024-09-24

Bug Fixes

  • (Documents) Do not throw UnableToMoveFile when document filename changes because we update the whole file - (da5386e)

2.3.27 - 2024-09-13

Bug Fixes

  • Fixed usage view with fieldName - (c0a3e07)

2.3.26 - 2024-08-27

Bug Fixes

  • Missing processable property for backoffice Explorer thumbnails - (72e2195)

2.3.25 - 2024-08-26

Bug Fixes

  • Set translation and locale to be used in Request context from Roadiz ResourceInfo - (a444bc9)

2.3.24 - 2024-08-26

Bug Fixes

  • Do not use array reference for ConfigurableExplorerItem.php anymore - (6a23ba0)

2.3.23 - 2024-08-02

Bug Fixes

  • Fixed StringHandler camelCase method with lc_first - (47c7798)

2.3.22 - 2024-08-01

Bug Fixes

  • Do not require a themes folder at project root - (02b2e1c)

2.3.21 - 2024-07-29

Bug Fixes

  • (Style) Fixed explorer drawer item style to allow long titles and breadcrumbs - (c621b6a)
  • Added autocomplete on login template - (7369d9c)

2.3.20 - 2024-07-13

Bug Fixes

  • Do not crash Doctrine metadata if NodesSources class does not exist. - (93d84df)

2.3.19 - 2024-07-12

Bug Fixes

  • Fixed RequestDataCollector - (4aa997a)
  • Fixed CacheController twig template - (1d9d203)
  • Use constructor promotion for all final classes when possible - (0513183)
  • Fixed simple.html.twig Twig template with rz-accent-color for login and custom-form - (2fa84b6)
  • Get rid of cssAction route and use CSS vars for node, tag, attribute, custom-form, folder accent colors - (06548e2)
  • Use NodeSourceXlsxSerializer in Export and Search node controllers - (00b96e4)
  • Fixed unit tests namespaces, moved to tests folder and use autoload-dev composer directive - (f8092dc)

Features

  • Export custom-form answers into CSV file instead of Xlsx - (5da1a44)
  • Added deprecation notices about RZ\Roadiz\CoreBundle\Xlsx services - (a9af918)

2.3.18 - 2024-07-05

Bug Fixes

  • (Document) Remove Documents used by CustomFormAnswer from unused repository method - (f5289b8)
  • (EmailManager) Removed EmailManager and ContactFormManager direct usage. Use their *Factory service to avoid sharing service data between async requests. - (80e25e5)

2.3.17 - 2024-07-05

Bug Fixes

  • (Serialization) Always falls back on default translation if no translation for Tag, Folder and Document entities - (0f0ceed)

2.3.16 - 2024-07-02

Bug Fixes

  • Missing RealmRepository::findByNodeWithSerializationGroup method - (aac6e4e)
  • Missing NodesTagsRepository - (b80548d)
  • StringHandler::variablize method with non-alphanum characters - (6db4486)

Features

  • Added required column in custom-form field listing view - (f184d4e)
  • Transform CustomFormField groupName to DataList to improve user experience - (676a016)
  • Added CustomFormField autocomplete field to provide HTML autocomplete hint - (6b8c3e7)
  • Upgrade rezozero/tree-walker package - (d90c04a)

2.3.15 - 2024-06-26

Bug Fixes

  • Still execute migration Version20240318204224 when there are no node_type_fields: i.e at Roadiz first install - (6fda4a9)

2.3.14 - 2024-06-21

Bug Fixes

  • Fixed null newParent parameter for Ajax Node/Tag/Folder controllers - (81d3570)

2.3.13 - 2024-06-19

Bug Fixes

  • Removed duplicated Twig templates - (a6461a1)

2.3.12 - 2024-06-17

Bug Fixes

  • (Nodes) Fixed node offspring resolution cache with new NodeOffspringResolverInterface service - (cf62690)

2.3.11 - 2024-06-17

Bug Fixes

  • (Attributes) Fixed AttributeValueRepository findByAttributable method preventing fetch attribute values without translations. Fixed AttributeChoiceType still requesting entityManager. - (1ce795e)

2.3.10 - 2024-06-14

Bug Fixes

  • Pass FormInterface to bulkAction to update bulk item with a form field data. - (8d46507)

2.3.9 - 2024-06-13

Features

  • Added security layer on NodesSources form type for each node-type-field (NodeTypeFieldVoter) - (29b0332)
  • Added customizable getDefaultRouteParameters in AbstractAdminController - (899b397)

2.3.8 - 2024-06-07

Performance

  • Do not execute RealmSerializationGroupNormalizer if there are no realms setup with a serialization_group. - (32da06d)

2.3.7 - 2024-06-06

Features

  • (CoreBundle) Made preview required RoleName configurable - (1f94711)

2.3.6 - 2024-06-04

Features

  • (NodeType) Added sortingAttributesByWeight boolean option for NodeType - (becf83e)

2.3.5 - 2024-06-03

Bug Fixes

2.3.4 - 2024-06-03

Bug Fixes

  • (UI) Fixed drag and drop custom-form fields, node-type fields and attribute-values by setting new position against previous or next element id - (1c929fc)

Features

  • (Attributes) Added Attribute weight field to sort filtered lists. - (cbcc6e6)

2.3.3 - 2024-05-31

Bug Fixes

  • Display attribute code in list with usage count - (4f88a0a)

2.3.2 - 2024-05-27

Bug Fixes

  • (OpenId) Drop Guzzle client for Symfony Http client and silent open-id misconfiguration errors on Discovery - (4fe292f)
  • (User) Fixed user-list image when no picture - (399bd91)
  • Throw 400 when requesting explorer entities with bad node-type-field id - (883bc71)

2.3.1 - 2024-05-22

Bug Fixes

  • (Node) Always set node TTL against its node-type - (a772d06)

2.3.0 - 2024-05-15

⚠ BREAKING CHANGES

  • Solr: Removed $proximity argument from search and searchWithHighlight SearchHandlerInterface methods
  • Make sure you don't have fields with name longer than 50 characters before migrating. Migration can be skipped if so.
  • Removed NodeTypeField id join column from NodesCustomForms, NodesSourcesDocuments and NodesToNodes relation tables to use field_name string column for loose relation. Make sure to backup your database before performing this migration.
  • node_type_name JSON property is no-longer required in node-type JSON export files.
  • Node constructor does not accept any argument anymore.
  • Switched to ApiPlatform 3.2, make sure to upgrade bundles.php file and api_platform.yaml configuration
  • Nodes: NodesSources metaKeyword and Node priority fields will be dropped.
  • Settings: Setting encryption and crypto keys have been dropped, migrate all your secrets to symfony:secrets to get only one secure vault.

Remove any crypto configuration from config/packages/roadiz_core.yml:

    security:
        private_key_name: default
  • getResultItems method will always return array<SolrSearchResultItem> no matter item type or highlighting.
  • Regenerate your api platform resource YAML files, or rename getByPath operation to %entity%_get_by_path
  • Command constructor signatures changed
  • Controller::get and Controller::has methods have been removed

Features

  • Added ApiProperty documentation for base entities fields (fa4a0be)
  • Added more social network urls to head (b4f6863)
  • Added new cron testing commands to test if your cron jobs are executing (efdbaa5)
  • Added new cron testing commands to test if your cron jobs are executing (b486bec)
  • Added new DataListTextType to render HTML input with their datalist. (5316137)
  • Admin: Create an update event for each bulk entity (7ca5792)
  • Allow WebResponse object instantiation overriding (8690594)
  • Always use SolrSearchResultItem to wrap a single object from search engine results. (00ebe1d)
  • Better overridability for WebResponses (1dff926)
  • CoreBundle: Refactored node routing (eea6399)
  • Create different operation names for each Entity with WebResponse. (21fdc5c)
  • CustomForms: Made NodesCustomForms.php relation columns not nullable for index performance (dba0237)
  • Do not serialize tag slug manually (42747f1)
  • Documents: Improved $mimeToIcon with additional mime-types and new 3d category. (898264f)
  • Documents: Made NodesSourcesDocuments.php relation columns not nullable for index performance (167b2dd)
  • Documents: Set SvgRenderers higher priority than ImageRenderer (920f273)
  • EntityGenerator: Added ApiProperty documentation for generated entities non-virtual fields (d6e4462)
  • Expose WebResponse optional maxAge and populate with Node's TTL when available (1a020de)
  • Fixed api-platform version to 3.2 (6501910)
  • Improved locale management by storing _translation into Request attributes during LocaleSubscriber (9e70e04)
  • Made Gravatar optional with roadiz_core.useGravatar config option (6e8c396)
  • Nodes: Made NodesToNodes.php relation columns not nullable for index performance (bd9f5d6)
  • Nodes: Removed useless NodesSources metaKeyword and Node priority fields. (e3bed58)
  • NodesSources: Respect user set TTL on nodes-sources during API requests (f1c66c2)
  • OpenId: Added force_ssl_on_redirect_uri open_id configuration to allow http redirectUri (352bf79)
  • Override _api_operation attribute as well when using GetWebResponseByPathController (89dd9a3)
  • Prevent creating same NodeTypeField name but with different doctrine type. (c81773d)
  • Realms: Made RealmNode.php realm_id column not nullable for index performance (153d53c)
  • Reduce NodeTypeField name to maximum 50 characters long. (8d7529a)
  • Refactored command signatures (173a4fb)
  • Removed NodeTypeField id join column from NodesCustomForms, NodesSourcesDocuments and NodesToNodes relation tables to use string column for loose relation. (fb5a2d8)
  • Removed NodeTypeFieldObjectConstructor.php for app:install to avoid conflicts between object construction and dropping all fields. node_type_name JSON property is no-longer required (6a30b32)
  • Set Request attribute data as WebResponse instead of WebResponse item. Changed LinkHeader and AddHeaders event subscribers to check if data is WebResponseInterface (a7da352)
  • Settings: Removed encrypted Settings. Use symfony:secret to store secrets. (ccec892)
  • Solr: Removed $proximity argument from search and searchWithHighlight SearchHandlerInterface methods (e0e36b5)
  • Upgrade to ApiPlatform 3.2 (4962d87)
  • Upgrade to doctrine/orm ~2.19.0 (b14f5be)
  • Upgraded to Symfony 6.4 LTS (0e37266)
  • WebResponseDataTransformer must always transform PersistableInterface (de1226a)
  • WebResponse: Expose request attribute _web_response_item_class to store WebResponse item class name (e483039)
  • WebResponse: Moved all web_response_by_path operations to WebResponse resource to avoid cheating with Api Platform resource resolution. (a44745a)

Bug Fixes

  • Allow OpenApi decoration with no web_response_by_path path (c74dc6f)
  • Documents: Requires api-platform/metadata for unit tests (ae67dba)
  • Documents: Updated Dailymotion oembed discovery and iframe source generation. (2a06744)
  • Fixed AjaxNodesExplorerController with SearchResultsInterface (9231f42)
  • Fixed Attributes import (9023668)
  • Fixed permission for nodesTranstypePage action menu button (151878e)
  • Fixed stateless with some listeners (b04faa2)
  • LoginController.php with random images (032e68e)
  • Missing orphanRemoval: true on non-nullable OneToMany relationships (019b353)
  • Moved AbstractDateTimedPositioned.php to CoreBundle to avoid requiring ApiPlatform on Models (359c026)
  • Need to comment all bundle config api_resource definitions (cfd0c53)
  • Prevent some api endpoint routes to trigger session from LocaleSubscriber (fa63c8c)
  • Removed explicit symfony-cmf/routing dependency (6daf32f)
  • Removed NodeTypeInterface from Node constructor, Removed ThemeRoutesLoader.php (0816525)
  • Rewrote all api_resources config files with resources: prefix (40e5e9a)
  • Security: Fixed NodeVoter accepting UserInterface for OpenId accounts (e9dc229)
  • Setting: Always format DateTimeInterface to string in settings even if type is wrongly set (3c9eda6)

Performance Improvements

  • Improved event subscriber registration and initialization (febf372)
  • Made all foreign key columns not nullable for index performance (fd90805)
  • Missing node_parent_position composite index (9147b6b)

2.2.15 - 2024-04-19

⚠ Breaking changes

  • Removed $proximity argument from search and searchWithHighlight SearchHandlerInterface methods

Bug Fixes

  • (Documents) Updated Dailymotion oembed discovery and iframe source generation. - (2628f40)
  • Allow OpenApi decoration with no web_response_by_path path - (c74dc6f)
  • Need to comment all bundle config api_resource definitions - (cfd0c53)
  • Rewrote all api_resources config files with resources: prefix - (40e5e9a)

Features

  • (Solr) [breaking] Removed $proximity argument from search and searchWithHighlight SearchHandlerInterface methods - (e0e36b5)
  • (WebResponse) Expose request attribute _web_response_item_class to store WebResponse item class name - (e483039)
  • Set Request attribute data as WebResponse instead of WebResponse item. Changed LinkHeader and AddHeaders event subscribers to check if data is WebResponseInterface - (a7da352)

2.2.14 - 2024-03-20

Bug Fixes

  • Use \DateTimeInterface to check object types instead of \DateTime - (9389865)

2.2.13 - 2024-03-08

⚠ Breaking changes

  • Make sure you don't have fields with name longer than 50 characters before migrating. Migration can be skipped if so.
  • Removed NodeTypeField id join column from NodesCustomForms, NodesSourcesDocuments and NodesToNodes relation tables to use field_name string column for loose relation. Make sure to backup your database before performing this migration.
  • node_type_name JSON property is no-longer required in node-type JSON export files.
  • Node constructor does not accept any argument anymore.

Bug Fixes

  • (Documents) Requires api-platform/metadata for unit tests - (ae67dba)
  • (Setting) Always format DateTimeInterface to string in settings even if type is wrongly set - (3c9eda6)
  • Error during back-porting from 2.3.x-dev - (409eed2)
  • Fixed AjaxNodesExplorerController with SearchResultsInterface - (9231f42)
  • Missing orphanRemoval: true on non-nullable OneToMany relationships - (019b353)
  • [breaking]Removed NodeTypeInterface from Node constructor, Removed ThemeRoutesLoader.php - (0816525)
  • LoginController.php with random images - (032e68e)
  • Moved AbstractDateTimedPositioned.php to CoreBundle to avoid requiring ApiPlatform on Models - (359c026)

Documentation

  • Temporary CHANGELOG.md - (1df3c21)

Features

  • Expose WebResponse optional maxAge and populate with Node's TTL when available - (1a020de)
  • [breaking]Reduce NodeTypeField name to maximum 50 characters long. - (8d7529a)
  • [breaking]Removed NodeTypeField id join column from NodesCustomForms, NodesSourcesDocuments and NodesToNodes relation tables to use string column for loose relation. - (fb5a2d8)
  • [breaking]Removed NodeTypeFieldObjectConstructor.php for app:install to avoid conflicts between object construction and dropping all fields. node_type_name JSON property is no-longer required - (6a30b32)
  • Upgrade to doctrine/orm ~2.19.0 - (b14f5be)

Refactor

  • Removed deprecated AppController.php and Handler methods. Removed FrontendController.php. - (4c72de2)
  • Some constructor args refactoring, remove direct dependency on KernelInterface - (de5356f)

Testing

  • Fixed tests directory - (ad895dc)
  • Align all phpstan.neon levels - (261c583)
  • Remove atoum from github actions - (dff59c9)
  • Replace atoum with PHPUnit for unit tests - (49f315f)

2.2.12 - 2024-03-08

Bug Fixes

  • (Documents) Do not try to render private Document URLs even for thumbnails - (57ee606)

Refactor

  • Removed deprecated Packages.php - (d8f7511)

2.2.11 - 2024-03-07

Bug Fixes

  • (Trees) Fixed tag and folder trees when they display first created translation instead of user chosen translation - (87878c2)

Refactor

  • Use constructor readonly initializers on Ajax controllers - (ce01609)

2.2.10 - 2024-03-07

Bug Fixes

  • (NodeTypes) Do not update DB schema when importing a NodeType JSON file. Fixes app:install command which updated JSON files and schema instead of just importing Types. - (80f7a86)

2.2.9 - 2024-03-07

Bug Fixes

  • (AttributeValue) Always join Node to filter out attribute values linked to not-published nodes. - (cdd4158)

2.2.8 - 2024-03-07

⚠ Breaking changes

  • Switched to ApiPlatform 3.2, make sure to upgrade bundles.php file and api_platform.yaml configuration

Bug Fixes

  • (Realms) Fixed realm cache-key user awareness - (ce71706)

Features

  • (Admin) Create an update event for each bulk entity - (7ca5792)
  • (CustomForms) Made NodesCustomForms.php relation columns not nullable for index performance - (dba0237)
  • (Documents) Made NodesSourcesDocuments.php relation columns not nullable for index performance - (167b2dd)
  • (Nodes) Made NodesToNodes.php relation columns not nullable for index performance - (bd9f5d6)
  • (Realms) Made RealmNode.php realm_id column not nullable for index performance - (153d53c)
  • [breaking]Upgrade to ApiPlatform 3.2 - (4962d87)

Performance

  • Missing node_parent_position composite index - (9147b6b)
  • Made all foreign key columns not nullable for index performance - (fd90805)

2.2.7 - 2024-02-27

Bug Fixes

  • Lighten Tag and NodesSources serialization with tag_documents and tag_color serialization groups - (6890501)

2.2.6 - 2024-02-25

Bug Fixes

  • (Search) Missing hl.q Solr param when requesting highlight with complex queries - (ae7fb60)

Styling

  • Fixed roadiz icon position when no custom image set - (cfaf751)
  • Upgraded Backoffice user-panel and admin-menu sub-nav items - (744aec2)

2.2.5 - 2024-02-23

Bug Fixes

  • Prevent some api endpoint routes to trigger session from LocaleSubscriber - (fa63c8c)

Features

  • Prevent creating same NodeTypeField name but with different doctrine type. - (d4a5c58)

2.2.4 - 2024-02-21

⚠ Breaking changes

  • NodesSources metaKeyword and Node priority fields will be dropped.
  • Setting encryption and crypto keys have been dropped, migrate all your secrets to symfony:secrets to get only one secure vault.

Remove any crypto configuration from config/packages/roadiz_core.yml:

    security:
        private_key_name: default
  • getResultItems method will always return array<SolrSearchResultItem> no matter item type or highlighting.
  • Regenerate your api platform resource YAML files, or rename getByPath operation to %entity%_get_by_path
  • Command constructor signatures changed

Bug Fixes

  • Fixed fetching non-ISO locale from database and querying result cache - (6a1ec32)
  • Fixed maintenance mode exception when using API endpoints - (02f0457)

Documentation

  • Changed CHANGELOG generator to git-cliff - (1de377b)

Features

  • (Nodes) [breaking] Removed useless NodesSources metaKeyword and Node priority fields. - (e3bed58)
  • (NodesSources) Respect user set TTL on nodes-sources during API requests - (f1c66c2)
  • (Settings) [breaking] Removed encrypted Settings. Use symfony:secret to store secrets. - (ccec892)
  • Improved locale management by storing _translation into Request attributes during LocaleSubscriber - (9e70e04)
  • Override _api_operation attribute as well when using GetWebResponseByPathController - (89dd9a3)
  • [breaking]Always use SolrSearchResultItem to wrap a single object from search engine results. - (00ebe1d)
  • [breaking]Create different operation names for each Entity with WebResponse. - (21fdc5c)
  • [breaking]Refactored command signatures - (173a4fb)

Performance

  • Improved event subscriber registration and initialization - (febf372)

2.2.3 - 2024-02-09

Bug Fixes

  • Fixed Setting value with \DateTimeInterface - (fa9acb5)
  • Fixed stateless with some listeners - (b04faa2)

Features

  • WebResponseDataTransformer must always transform PersistableInterface - (de1226a)
  • Allow WebResponse object instantiation overriding - (8690594)
  • Better overridability for WebResponses - (1dff926)
  • Added more social network urls to head - (b4f6863)

2.2.2 - 2024-02-07

Bug Fixes

  • Prevent redirections to resolve a not-published resource. - (665c031)
  • Removed explicit symfony-cmf/routing dependency - (6daf32f)

Features

  • (CoreBundle) Refactored node routing - (eea6399)
  • (EntityGenerator) Added ApiProperty documentation for generated entities non-virtual fields - (d6e4462)
  • Added new cron testing commands to test if your cron jobs are executing - (efdbaa5)
  • Added new DataListTextType to render HTML input with their datalist. - (5316137)
  • Added ApiProperty documentation for base entities fields - (fa4a0be)
  • Do not serialize tag slug manually - (42747f1)

2.2.1 - 2023-12-13

Bug Fixes

  • (Api) Added AttributeValueQueryExtension and NodesTagsQueryExtension to restrict tags and attributes linked to any published node. - (cd2a017)

2.2.0 - 2023-12-12

⚠ Breaking changes

  • Controller::get and Controller::has methods have been removed
  • Requires PHP 8.1 minimum

Features

  • (DtsGenerator) Added AllRoadizNodesSources Typescript type - (c249f37)
  • Improved classicLikeComparison for Node and NodesSources to search in attribute-values translations - (d10dbbc)
  • [breaking]Upgraded to Symfony 6.4 LTS - (0e37266)
  • [breaking]Require PHP 8.1 minimum - (2fc0299)

2.1.51 - 2023-11-20

Bug Fixes

  • Fixed missing entityManager flush to remove custom-form answer. - (e9aa0ba)

Features

  • Upgrade to ORM 2.17 and removed WITH joins on EAGER fetched relations - (7aadd02)

2.1.50 - 2023-11-16

Bug Fixes

  • Prevent doctrine/orm to upgrade to 2.17.0: Associations with fetch-mode=EAGER may not be using WITH conditions - (9ef566c)
  • Deprecated: Using ${var} in strings is deprecated, use {$var} instead - (fae9914)

Features

2.1.49 - 2023-10-20

Bug Fixes

  • Remaining merge conflict trace - (518f940)

Features

  • (CustomForm) Made custom-form answer email notification async. Do not forget to define framework.router.default_uri. - (5e783c2)

2.1.48 - 2023-10-20

Bug Fixes

  • (CustomForm) Catch mailer transport exception when submitting custom-form answers - (52487e3)

Features

  • (Document) Added document image crop alignment control - (51e2cdb)
  • (Documents) Added image crop alignment for processable documents. - (970d4c6)
  • (NodeType) Added attributable node-type field to display or not nodes' attributes - (9206664)

Styling

  • Moved and minified tree-add-btn - (ab99bc6)
  • Refactoring CSS vars, difference between primary and success colors - (be5a594)

2.1.47 - 2023-10-09

Bug Fixes

  • (Serializer) Do not use class-string type-hint it breaks JSON serializer symfony/symfony#47736 - (9ffaf6e)
  • (Solr) Fixed fuzzy/proximity integer - (7d72a02)
  • Append History state.headerData to url query-param is set - (0a1e35c)

Features

  • (Documents) Added inline download route to preview private PDF from backoffice. - (0b607d2)
  • Configure API firewall as database-less JWT by default to ensure PreviewUser are not reloaded - (51305e1)

2.1.46 - 2023-09-28

⚠ Breaking changes

  • Make sure your Solr managed-schema has a dynamic field named *_ps with type location multiValued:
<dynamicField name="*_ps" type="location" indexed="true" stored="true" multiValued="true"/>
  • Solr search with hightlightings will output highlighting object with different labelled keys (title_txt_en, collection_txt_en) according to search locale.

Bug Fixes

  • (EntityRepository) Support node. order-by keys - (be7c441)
  • (Node) Enforce UniqueEntity validation is used on all nodes and on UrlAlias when checking nodeName - (5d7e8ae)
  • (Rozier) Call off() on undefined element - (dd4324d)
  • (RozierBundle) Add a second path to make RoadizRozier templates extendable with @!RoadizRozier namespace - (9fcb20b)
  • (User) Removed deprecated User salt column - (1294167)
  • Use multi-byte string methods - (a9a5b84)
  • Support reverseProxyCache host with or without protocol - (9a170d5)

Features

  • (AbstractAdminController) Made AbstractAdminController getRepository method overridable - (a46157d)
  • (AbstractAdminWithBulkController) Made new bulkActions more easy to code, added User enable/disable bulk actions. - (50651ea)
  • (AbstractAdminWithBulkController) Made remove behaviour overridable. - (a306faf)
  • (AbstractAdminWithBulkController) Added generic bulk-actions behaviour using AbstractAdminWithBulkController and @RoadizRozier/admin/bulk_actions.html.twig template - (1495058)
  • (Node) Added new SEARCH attribute for NodeVoter to allow non-editor to at least search nodes. - (f713c0c)
  • (Solr) Added TreeWalkerIndexingEventSubscriber to index node children using a TreeWalker, improved AttributeValueIndexingSubscriber - (fea4ea0)
  • (Solr) [breaking] Added multiple geojson point indexing - (13041a2)
  • (Solr) Index integer, decimal, datetime, string and geojson fields - (a62c29c)
  • (Solr) [breaking] Highlightings keep fields name to allow to display title with haighlighted parts, not only collection_txt - (3ae0379)
  • Added Custom forms bulk delete actions - (25dd271)
  • Added redirections bulk delete action - (6652e67)

Refactor

  • Send JSON form response after a fetch POST request - (75bb3d3)
  • Replace all $.ajax and XHR request with window.fetch - (0c6579e)

Styling

  • main-container height, and user-panel action button size - (4f5f714)
  • Wrong colspan count - (0efc2d2)
  • user-image and uk-badge-mini - (ba8236d)

2.1.45 - 2023-09-13

Bug Fixes

  • (EntityListManager) Validate ordering field name before QueryBuilder rejects it - (76cc4b4)
  • (LeafletGeotagField) Do not display a Marker if field is empty - (9b6b27d)
  • Do not display children-nodes-quick-creation if no linked types - (a826ec9)

Features

  • Removed jQuery from LeafletGeotagField.js MultiLeafletGeotagField.js - (6de56cf)

Styling

  • Better table style for horizontal ones - (8c6246a)
  • Fixed drawer nav using flexbox - (10f772b)
  • Vanilla JS cleansing - (37bf74b)

2.1.44 - 2023-09-07

⚠ Breaking changes

  • validateNodeAccessForRole is deprecated, use denyAccessUnlessGranted or isGranted with one of NodeVoter attribute and a Node instance

Bug Fixes

  • (Tag) Added missing API search filter on tags relations - (146ce90)

Features

  • (Attributes) Secure API collection and item attribute_values requests with realms - (fd68f51)
  • (Attributes) Added relation between Realms and Attributes and AttributeValue to secure attribute access - (6f5f477)
  • (Chroot) Display node chroot on mainNodeTree instead of its children - (b9e2f7a)
  • (NodeVoter) [breaking] Added a NodeVoter and deprecated validateNodeAccessForRole method - (f6de0ee)

Styling

  • Breadcrumb separator style - (dbe4ec3)
  • Removed Roadiz font and drop old browser postcss support - (18186fa)

2.1.43 - 2023-09-04

Bug Fixes

  • (UserSecurityType) Missing CallbackTransformer on user chroot form normalization - (0d9a1b2)

2.1.42 - 2023-09-04

Bug Fixes

  • (NodeNameChecker) Limit generated unique nodeName to 250 chars, no matter suffix added to it - (bb1e271)
  • Duplicated translation keys - (d108eec)
  • Renamed NodeTypeField and CustomFormField defaultValues field label - (957024b)
  • Fixed non-named inherited indexes - (a43439c)

Features

  • (Attributes) Added indexes on attributes values position, fallback value on default translation during Normalization - (453708f)
  • Displays parent node listing sort options if parent is a stack (hiding children) - (48d06ce)
  • Use RangeFilter on Node' position - (1423bf2)
  • Added NodesSources getListingSortOptions method - (26ff61f)
  • Added NumericFilter on node.position, added new node_listing serialization group - (a73b5b2)

2.1.41 - 2023-08-04

Bug Fixes

  • Do not require explicitly doctrine/dbal since issue came from doctrine/bundle - (93321bb)

2.1.40 - 2023-08-04

Bug Fixes

  • (NodesTags) Added a single UUID field to prevent primary key overlap. - (68fff41)

Features

  • (TreeWalker) Added new tag roadiz_core.tree_walker_definition_factory to inject TreeWalker definitions into TreeWalkerGenerator and any BlocksAwareWebResponseOutputDataTransformerTrait - (86e5ac6)

2.1.39 - 2023-08-03

Bug Fixes

  • (Doctrine) Do not extend Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository anymore due to LazyServiceEntityRepository starting doctrine/[email protected] - (ec1687c)

2.1.38 - 2023-08-03

Bug Fixes

  • doctrine/dbal >=3.4.0 broke queries on inheriting class using fields from child classes. Still using NodesSources when querying on child entities and their custom fields. - (e7d5dbe)

2.1.37 - 2023-08-03

Features

  • (Security) Added UserChecker to check users enabled, expired, locked or credentialExpired. Removed useless User' boolean expired and credentialsExpired fields. - (42d4d11)

2.1.36 - 2023-08-03

Bug Fixes

  • Gathered Mysql and Postgresql database initialization in the same Migration to avoid always skipping RZ\Roadiz\Migrations\Version20201225181256 - (af73bf4)

Features

  • (OpenID) Added new OpenID mode with roadiz_rozier.open_id.requires_local_user (default: true) which requires an existing Roadiz account before authenticating SSO users. - (639e1a5)

2.1.35 - 2023-08-01

Bug Fixes

  • (WebResponseOutputDataTransformer) Made WebResponseOutputDataTransformer overrideable in projects instead of reimplementing it. - (52fd409)

2.1.34 - 2023-07-31

Bug Fixes

  • (AjaxNodeTreeController) Fixed non-integer translationId - (e33762f)

2.1.33 - 2023-07-31

⚠ Breaking changes

  • bin/console themes:migrate command do not execute Doctrine migrations, generate NS entities and schema update. You must version your NS****.php files and migrations to sync your app in different environments.

Bug Fixes

  • (AjaxNodeTree) Removed translationId path param from nodesTreeAjax route - (d5e6fe6)

Features

  • (NodeType) [breaking] Roadiz now generates a new Doctrine Migration for each updates on node-types and node-types fields. - (3e1b8bb)
  • (NodeType) NodeTypeImporter now removes extra fields from database when not present on .json files - (c59919e)
  • Added more OpenApi context to generated api resources - (29c8fa3)

2.1.32 - 2023-07-25

Bug Fixes

  • (ApiResourceGenerator) Do not wrap boolean value in quotes - (90630c1)

2.1.31 - 2023-07-25

Bug Fixes

  • (CoreBundle) Fixed doctrine/dbal version - (3087a38)

Features

  • Use ramsey/uuid for Webhook ID generation, doctrine/dbal removed AutoGenerated uuids - (55f80fc)

2.1.30 - 2023-07-25

Bug Fixes

  • (CoreBundle) Fixed doctrine/dbal dependency to 2.x due to UUID removal. Missing constraint in core-bundle. - (9824f1f)

Features

  • Allowed doctrine/dbal 3.x - (ba47367)

2.1.29 - 2023-07-25

⚠ Breaking changes

  • You must migrate your config/api_resources/*.yml files to use new ApiPlatform interfaces and resource YML syntax

  • Remove and regenerate your NS entities with bin/console generate:nsentities to update namespaces

  • Remove and regenerate your Resource configs with bin/console generate:api-resources

    • If you do not want to remove existing config, you'll have to move itemOperations and collectionOperations to single operations node and add class with ApiPlatform\Metadata\Get or ApiPlatform\Metadata\GetCollection
    • Rename iri to types and wrap single values into array
    • Rename path to uriTemplate
    • Rename normalization_context to normalizationContext
    • Rename openapi_context to openapiContext
    • Move shortName to each operation
    • Rename attributes to extraProperties (for /archives endpoints)
    • Add uriTemplate for your custom endpoints (for /archives endpoints)
    • Prefix all named operations with api_ to avoid conflict with non API routes
  • All filters and extensions use new interfaces

  • Removed all deprecated DataTransformer and Dto classes

  • Once everything is migrated changed metadata_backward_compatibility_layer: false in config/packages/api_platform.yaml

Bug Fixes

  • Fixed doctrine/dbal dependency to 2.x due to UUID removal - (d426160)

Features

  • (ApiPlatform) [breaking] Disabled metadata_backward_compatibility_layer and migrated all API resources, filters, extensions to new Operation syntax - (f0317aa)
  • (UserBundle) Moved /users/me operation to /me to avoid conflict on User Get operation and IRI generation - (883146e)
  • Migrated api-platform deprecated http_cache configuration - (4177d05)
  • Use ramsey/uuid for Webhook ID generation, doctrine/dbal removed AutoGenerated uuids - (3b409d3)
  • Upgrade to rezozero/liform ^0.19 - (d4862d6)

2.1.28 - 2023-07-19

⚠ Breaking changes

  • Log namespace changed to RZ\Roadiz\CoreBundle\Logger\Entity\Log

Make sure you update config/packages/doctrine.yaml with:

    orm:
        auto_generate_proxy_classes: true
        default_entity_manager: default
        entity_managers:
            # Put `logger` entity manager first to select it as default for Log entity
            logger:
                naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
                mappings:
                    ## Just sharding EM to avoid having Logs in default EM
                    ## and flushing bad entities when storing log entries.
                    RoadizCoreLogger:
                        is_bundle: false
                        type: attribute
                        dir: '%kernel.project_dir%/vendor/roadiz/core-bundle/src/Logger/Entity'
                        prefix: 'RZ\Roadiz\CoreBundle\Logger\Entity'
                        alias: RoadizCoreLogger
            default:
                dql:
                    string_functions:
                        JSON_CONTAINS: Scienta\DoctrineJsonFunctions\Query\AST\Functions\Mysql\JsonContains
                naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
                auto_mapping: true
                mappings:
                    ## Keep RoadizCoreLogger to avoid creating different migrations since we are using
                    ## the same database for both entity managers. Just sharding EM to avoid
                    ## having Logs in default EM and flushing bad entities when storing log entries.
                    RoadizCoreLogger:
                        is_bundle: false
                        type: attribute
                        dir: '%kernel.project_dir%/vendor/roadiz/core-bundle/src/Logger/Entity'
                        prefix: 'RZ\Roadiz\CoreBundle\Logger\Entity'
                        alias: RoadizCoreLogger
                    App:
                        is_bundle: false
                        type: attribute
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App
	            # ...
  • RZ\Roadiz\CoreBundle\Entity\LoginAttempt has been removed with its manager and utils

Bug Fixes

  • (Search) Fixed node advanced search using __node__ prefix - (bcb7d5d)

Features

  • [breaking]Moved Log entity to a different namespace to handle with a different entity-manager and avoid flushing Log in the same transaction with other entities - (6d2583c)
  • Removed dead code ExceptionViewer and redondant Logger levels constants - (f5287f6)
  • [breaking]Removed deprecated LoginAttempt entity, using default Symfony login throtling - (f7e2a39)

2.1.27 - 2023-07-12

Bug Fixes

  • Missing isTransactional on last migration - (5bf8833)

2.1.26 - 2023-07-12

Bug Fixes

  • Fixed Loggable behaviour, removed relationship between UserLogEntry and User for future entity-manager separation. - (96d180b)

2.1.25 - 2023-07-12

Bug Fixes

  • Do not display document thumbnail controls for audio, video - (57bbc85)
  • Do not generate log URL when no entityId is set in log - (997ee20)

2.1.24 - 2023-07-06

Bug Fixes

  • (Search engine) Do not add quotes if multi word exact query, Solr Helper already does it - (b0aa80a)

2.1.23 - 2023-07-02

Bug Fixes

  • Use FilterValidationException instead of InvalidArgumentException to generate 400 and no 500 errors - (ca89b73)

2.1.22 - 2023-06-30

⚠ Breaking changes

  • Log entity requires a Migration that may be destructive on log table.

Bug Fixes

  • Do not handle node add attribute form when no attribute exists - (db77e62)

Features

  • (Log) Made Log entity autonomous without any relationship, only loose references - (e0dd99c)
  • (Log) Added Twig Log extension to generate link to entities edit pages - (471a571)
  • (Log) [breaking] Added entityClass and entityId to remove hard relationship with NodesSources - (7300cc3)

2.1.21 - 2023-06-28

⚠ Breaking changes

  • Roadiz/models namespace root is now ./src. Change your Doctrine entities path

Bug Fixes

  • (OpenID) Do not register roadiz_rozier.open_id.discovery if discovery_url is not valid - (120b6a9)
  • CoreBundle must not reference other bundles classes. - (701cbf3)
  • Fixed monorepo phpcs config standard - (b3a1ac0)
  • Reached phpstan level 7 validation - (d5c0bdc)

Features

  • (ListManager) Refactored and factorized request query-params handling - (a6188c6)
  • (TwoFactorBundle) Added console command to disable 2FA and override users:list command - (81cd472)
  • Added Example PageController and more phpstan fixes - (db8cec8)
  • [breaking]Moved Models namespace to src - (fe0960f)

2.1.20 - 2023-06-23

Bug Fixes

  • (Preview) Check strict _preview param value (allowing 0, false values to disable preview mode) - (70b60c9)

Features

  • (Preview) Added OpenAPI decorator to document _preview query param and JWT security - (449c9f9)

2.1.19 - 2023-06-23

Bug Fixes

  • (OpenApi) Fixed getByPath operation overlap with get by setting id request attribute and api_resource operation configuration - (54a378d)

2.1.18 - 2023-06-23

Bug Fixes

  • Fixed and refactored SQL search query building on Repository and Paginator levels - (b5d320b)

2.1.17 - 2023-06-20

Bug Fixes

  • (UI) Changed user and menu panels size for LG breakpoint. Clear cache.global_clearer in CacheController and SchemaUpdater. - (c20463e)
  • UpdateNodeTypeSchemaMessage should be handled synced to avoid Doctrine exception on refresh - (84a611b)

Features

  • (Redirections) Added redirection look-up cache and CRUD events - (a78b3d3)
  • (Redirections) Added cache adapter to look for redirection query - (18da77c)
  • Added Roadiz custom data-collector for web-profiler - (d0e01fa)
  • Added Redirections usage count to better analyze your app routes - (3a6a38b)
  • Added all Doctrine string fields explicit length and validation assert. - (8c1d230)

Refactor

  • Removed dead classes - (f9c1c8b)
  • Deprecated Controller methods to get services - (d8d351b)

2.1.16 - 2023-06-01

Bug Fixes

  • (LeafInterface) Do not test exact class when setting LeafInterface parent to allow doctrine proxies. - (56ed76d)
  • Do not prevent setting parent with not the same class - (3b5996d)

2.1.15 - 2023-05-24

Bug Fixes

  • Allow all gedmo/doctrine-extensions v3 - (0ed814b)

2.1.14 - 2023-05-19

Bug Fixes

  • Fixed Collection type hinting and co-variance - (2a53d81)

2.1.13 - 2023-05-19

Bug Fixes

  • Fixed Collection<int, classname> type hinting - (3a670bb)
  • Fixed CustomFormAnswer class renaming getAnswers() to getAnswerFields() - (d88a179)

2.1.12 - 2023-05-11

Bug Fixes

  • Add PreviewResolverInterface into NodeSourceWalkerContext to alter TreeWalker definition against preview status - (463be2e)

2.1.11 - 2023-05-05

Bug Fixes

  • (Document) Ignore thumbnail documents from Explorer - (d236f1a)
  • (Solr) Added a new wildcardQuery to search and autocomplete at the same time - (37746af)

2.1.10 - 2023-05-05

Bug Fixes

  • (Rozier) Fixed global backoffice grid when tree panel is hidden - (4aa8a5e)

Features

  • (Document) Added DocumentPdfMessageHandler to generate thumbnail for PDF documents. - (35241bc)
  • (Rozier) Added UserActionsMenuEvent to customize backoffice user panel menu from other bundles - (ee5e2a6)
  • (SearchEngine) Added DocumentSearchQueryEvent and NodeSourceSearchQueryEvent event to alter Solr select queries - (083d2e5)
  • (TwoFactorBundle) Added github actions - (2bc480a)
  • (TwoFactorBundle) Added backup codes and backoffice templates - (95db653)
  • (TwoFactorBundle) Added TwoFactor bundle to login to Roadiz with TOTP application - (0953b00)
  • (UserViewer) Removed setUser setter for single method usage - (b7c0f75)
  • Added solarium webprofiler panel - (2cea745)

2.1.9 - 2023-04-11

Bug Fixes

  • JoinDataTransformer must always transform to an array, even single objects - (e17b804)

2.1.8 - 2023-04-06

Bug Fixes

  • (PreviewBarSubscriber) Test if Response content is string before searching tag - (93d1897)

2.1.7 - 2023-04-04

Bug Fixes

  • (Documents) Prevent renaming document filename if new pathname is not available - (13982cc)
  • (EntityGenerator) Nullable $field->getDefaultValues() - (297f099)

2.1.6 - 2023-03-23

Bug Fixes

  • Fixed AjaxNodesExplorerController search params strict typing. - (fd38552)

Features

  • (EntityGenerator) Entity generator uses DefaultValuesResolverInterface to compute required ENUM fields length acording to their default values. - (20263b6)

2.1.5 - 2023-03-17

Features

  • Added onlyVisible optional param for TreeWalker definitions - (abf93a8)
  • Migrate from monolithic docker image to nginx + app + worker + cron containers - (fa8b76a)

2.1.4 - 2023-03-15

Bug Fixes

  • (EntityGenerator) Fixed attributes list generator when there is only one attribute to print - (b6139ba)

2.1.3 - 2023-03-14

Bug Fixes

  • Fixed SolrPaginator getLastPage using an index starting at 1 instead of 0 - (052f9be)

2.1.2 - 2023-03-14

Bug Fixes

  • Fix SolrPaginator last-page when there are no results - (a044446)

Features

  • Create overrideable createSearchResultsFromResponse method for any AbstractSearchHandler extending class - (b23b92f)

2.1.1 - 2023-03-13

⚠ Breaking changes

  • All Solr documents MUST have a idempotent ID field to ease up Solr indexing (no more need to delete previous index entry before indexing an entity).

Features

  • [breaking]Rename getCompositeIdentifier to getIdempotentIdentifier and provided a fallback. - (e8c895a)
  • Added NodesSourcesHeadFactoryInterface for better WebResponse and CommonContent responses maintainability. - (ed05a24)
  • Updated Solr indexing tags fields for multivalued strings and use composite ID for easy overriding - (50a04af)

2.1.0 - 2023-03-06

Bug Fixes

  • (api-platform) Revert to api-platform/core 2.6 - (0f3f429)
  • Missing openid package from rozier-bundle - (2f63197)
  • Fixed doctrine resolved entities - (e2b038a)
  • Fixed mappings App\GeneratedEntity\NSPage#usersProxy and App\Entity\PositionedPageUser#nodeSource are inconsistent with each other - (0b8d980)
  • php image supervisor configuration - (63977d2)

CI/CD

Features

  • (Attributes) Migration to attributes - (21a28c8)
  • (Documents) Moved private documents to a dedicated listing - (6433842)
  • Added sub-package code - (9898e76)
  • Moving all subpackages into monorepo, added Github Actions for splitting repositories - (3e3f0f0)
  • Added all roadiz/* sub packages to lib/ folder in order to create monorepo - (854c74d)
  • Dotenv for API name and description - (0184f91)
  • Added MenuLinkPathNormalizer - (800c5c6)
  • Added Menu and auto treeWalker generator - (2bad3a9)
  • Added flysystem font.storage - (f639f4a)
  • Big roadiz/documents namespace refactoring - (02dfbb5)
  • Clone roadiz/documents lib directly in lib folder for better development process - (85a9d93)
  • Added flysystem dependency for InterventionRequest - (09769ca)
  • Added roadiz/models lib into single project structure - (8697f7b)
  • Node types - (6f4addc)
  • New RoadizFontBundle to extract domain logic from Core and make it optional - (377384a)
  • Upgraded to API platform 2.7 and PHP 8.0 minimum - (f56b655)
  • Added ffmpeg to docker image and populate DotEnv var - (601b137)
  • Added new user proxied reference field to Page node-type - (f44edae)
  • Use definitive archives endpoint configuration - (a894b5a)
  • Moved open_id configuration from core to rozier bundle - (7b3172c)
  • Added default built-in search - (4c2d5dc)
  • added nsarticle archive operation - (a73f0bb)
  • Requires rollerworks/password-common-list - (3b9b67c)
  • Use built-in symfony login throttling - (75234a1)
  • UserValidationRequest configuration - (400466e)
  • UserBundle configuration - (09a670f)
  • Added RoadizUserBundle configuration - (37dbc5a)
  • Register RoadizUserBundle - (5bba2bb)
  • UserBundle config start - (498fd5d)
  • changed document menu - (83e1ec1)
  • add healthcheck config and traefik - (3676d2b)
  • Added realms admin section - (571181c)
  • Add php8.1 - (3e4f9c7)
  • WebResponse as an API Resource - (fd41c30)
  • Configure getByPath operation for each API platform resource - (9f723de)
  • Rate limiters for contact and custom form submissions - (70a28f0)
  • OpenId authenticator config - (14f36df)
  • Added lexik_jwt_authentication - (0cae5d0)
  • Env var HTTP_CACHE_SHARED_MAX_AGE - (e543e05)
  • Better makefile - (8f3376f)

Refactor