All notable changes to Roadiz will be documented in this file.
2.3.31 - 2024-10-26
- (DtsGenerator) Fixed
.d.ts
file header generation with latest @roadiz/types package - (49aca37)
2.3.30 - 2024-10-25
- Updated MySQL reserved words list - (277fd69)
2.3.29 - 2024-10-10
- 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
- (Documents) Do not throw
UnableToMoveFile
when documentfilename
changes because we update the whole file - (da5386e)
2.3.27 - 2024-09-13
- Fixed usage view with fieldName - (c0a3e07)
2.3.26 - 2024-08-27
- Missing
processable
property for backoffice Explorer thumbnails - (72e2195)
2.3.25 - 2024-08-26
- Set translation and locale to be used in Request context from Roadiz ResourceInfo - (a444bc9)
2.3.24 - 2024-08-26
- Do not use array reference for ConfigurableExplorerItem.php anymore - (6a23ba0)
2.3.23 - 2024-08-02
- Fixed StringHandler camelCase method with lc_first - (47c7798)
2.3.22 - 2024-08-01
- Do not require a
themes
folder at project root - (02b2e1c)
2.3.21 - 2024-07-29
- (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
- Do not crash Doctrine metadata if NodesSources class does not exist. - (93d84df)
2.3.19 - 2024-07-12
- 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)
- 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
- (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
- (Serialization) Always falls back on default translation if no translation for Tag, Folder and Document entities - (0f0ceed)
2.3.16 - 2024-07-02
- Missing
RealmRepository::findByNodeWithSerializationGroup
method - (aac6e4e) - Missing
NodesTagsRepository
- (b80548d) StringHandler::variablize
method with non-alphanum characters - (6db4486)
- 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
- Still execute migration Version20240318204224 when there are no node_type_fields: i.e at Roadiz first install - (6fda4a9)
2.3.14 - 2024-06-21
- Fixed
null
newParent parameter for Ajax Node/Tag/Folder controllers - (81d3570)
2.3.13 - 2024-06-19
- Removed duplicated Twig templates - (a6461a1)
2.3.12 - 2024-06-17
- (Nodes) Fixed node offspring resolution cache with new
NodeOffspringResolverInterface
service - (cf62690)
2.3.11 - 2024-06-17
- (Attributes) Fixed AttributeValueRepository findByAttributable method preventing fetch attribute values without translations. Fixed AttributeChoiceType still requesting entityManager. - (1ce795e)
2.3.10 - 2024-06-14
- Pass FormInterface to
bulkAction
to update bulk item with a form field data. - (8d46507)
2.3.9 - 2024-06-13
- 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
- Do not execute
RealmSerializationGroupNormalizer
if there are no realms setup with a serialization_group. - (32da06d)
2.3.7 - 2024-06-06
- (CoreBundle) Made preview required RoleName configurable - (1f94711)
2.3.6 - 2024-06-04
- (NodeType) Added
sortingAttributesByWeight
boolean option for NodeType - (becf83e)
2.3.5 - 2024-06-03
- Undefined JS var - (cb67bec)
2.3.4 - 2024-06-03
- (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)
- (Attributes) Added Attribute
weight
field to sort filtered lists. - (cbcc6e6)
2.3.3 - 2024-05-31
- Display attribute code in list with usage count - (4f88a0a)
2.3.2 - 2024-05-27
- (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
- (Node) Always set node TTL against its node-type - (a772d06)
2.3.0 - 2024-05-15
- Solr: Removed
$proximity
argument fromsearch
andsearchWithHighlight
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 usefield_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 andapi_platform.yaml
configuration - Nodes: NodesSources
metaKeyword
and Nodepriority
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 returnarray<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
- 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 allowhttp
redirectUri (352bf79) - Override
_api_operation
attribute as well when usingGetWebResponseByPathController
(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 ifdata
is WebResponseInterface (a7da352) - Settings: Removed encrypted Settings. Use symfony:secret to store secrets. (ccec892)
- Solr: Removed
$proximity
argument fromsearch
andsearchWithHighlight
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)
- 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
acceptingUserInterface
for OpenId accounts (e9dc229) - Setting: Always format DateTimeInterface to string in settings even if type is wrongly set (3c9eda6)
- 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
- Removed
$proximity
argument fromsearch
andsearchWithHighlight
SearchHandlerInterface methods
- (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)
- (Solr) [breaking] Removed
$proximity
argument fromsearch
andsearchWithHighlight
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 ifdata
is WebResponseInterface - (a7da352)
2.2.14 - 2024-03-20
- Use
\DateTimeInterface
to check object types instead of\DateTime
- (9389865)
2.2.13 - 2024-03-08
- 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 usefield_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.
- (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)
- Temporary CHANGELOG.md - (1df3c21)
- 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)
- Removed deprecated AppController.php and Handler methods. Removed FrontendController.php. - (4c72de2)
- Some constructor args refactoring, remove direct dependency on KernelInterface - (de5356f)
- 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
- (Documents) Do not try to render private Document URLs even for thumbnails - (57ee606)
- Removed deprecated Packages.php - (d8f7511)
2.2.11 - 2024-03-07
- (Trees) Fixed tag and folder trees when they display first created translation instead of user chosen translation - (87878c2)
- Use constructor readonly initializers on Ajax controllers - (ce01609)
2.2.10 - 2024-03-07
- (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
- (AttributeValue) Always join Node to filter out attribute values linked to not-published nodes. - (cdd4158)
2.2.8 - 2024-03-07
- Switched to ApiPlatform 3.2, make sure to upgrade
bundles.php
file andapi_platform.yaml
configuration
- (Realms) Fixed realm cache-key user awareness - (ce71706)
- (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)
- Missing
node_parent_position
composite index - (9147b6b) - Made all foreign key columns not nullable for index performance - (fd90805)
2.2.7 - 2024-02-27
- Lighten Tag and NodesSources serialization with
tag_documents
andtag_color
serialization groups - (6890501)
2.2.6 - 2024-02-25
- (Search) Missing
hl.q
Solr param when requesting highlight with complex queries - (ae7fb60)
- 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
- Prevent some api endpoint routes to trigger session from LocaleSubscriber - (fa63c8c)
- Prevent creating same NodeTypeField name but with different doctrine type. - (d4a5c58)
2.2.4 - 2024-02-21
- NodesSources
metaKeyword
and Nodepriority
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 returnarray<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
- Fixed fetching non-ISO locale from database and querying result cache - (6a1ec32)
- Fixed maintenance mode exception when using API endpoints - (02f0457)
- Changed CHANGELOG generator to git-cliff - (1de377b)
- (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 usingGetWebResponseByPathController
- (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)
- Improved event subscriber registration and initialization - (febf372)
2.2.3 - 2024-02-09
- Fixed Setting value with \DateTimeInterface - (fa9acb5)
- Fixed stateless with some listeners - (b04faa2)
- 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
- Prevent redirections to resolve a not-published resource. - (665c031)
- Removed explicit symfony-cmf/routing dependency - (6daf32f)
- (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
- (Api) Added
AttributeValueQueryExtension
andNodesTagsQueryExtension
to restrict tags and attributes linked to any published node. - (cd2a017)
2.2.0 - 2023-12-12
- Controller::get and Controller::has methods have been removed
- Requires PHP 8.1 minimum
- (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
- Fixed missing entityManager flush to remove custom-form answer. - (e9aa0ba)
- Upgrade to ORM 2.17 and removed WITH joins on EAGER fetched relations - (7aadd02)
2.1.50 - 2023-11-16
- 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)
- Use php82 - (e10fdd5)
2.1.49 - 2023-10-20
- Remaining merge conflict trace - (518f940)
- (CustomForm) Made custom-form answer email notification async. Do not forget to define
framework.router.default_uri
. - (5e783c2)
2.1.48 - 2023-10-20
- (CustomForm) Catch mailer transport exception when submitting custom-form answers - (52487e3)
- (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)
- Moved and minified tree-add-btn - (ab99bc6)
- Refactoring CSS vars, difference between primary and success colors - (be5a594)
2.1.47 - 2023-10-09
- (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)
- (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
- Make sure your Solr managed-schema has a dynamic field named
*_ps
with typelocation
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 searchlocale
.
- (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)
- (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, improvedAttributeValueIndexingSubscriber
- (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)
- Send JSON form response after a fetch POST request - (75bb3d3)
- Replace all $.ajax and XHR request with window.fetch - (0c6579e)
- 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
- (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)
- Removed jQuery from LeafletGeotagField.js MultiLeafletGeotagField.js - (6de56cf)
- Better table style for horizontal ones - (8c6246a)
- Fixed drawer nav using flexbox - (10f772b)
- Vanilla JS cleansing - (37bf74b)
2.1.44 - 2023-09-07
validateNodeAccessForRole
is deprecated, usedenyAccessUnlessGranted
orisGranted
with one ofNodeVoter
attribute and a Node instance
- (Tag) Added missing API search filter on tags relations - (146ce90)
- (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)
- Breadcrumb separator style - (dbe4ec3)
- Removed Roadiz font and drop old browser postcss support - (18186fa)
2.1.43 - 2023-09-04
- (UserSecurityType) Missing CallbackTransformer on user chroot form normalization - (0d9a1b2)
2.1.42 - 2023-09-04
- (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)
- (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
- Do not require explicitly doctrine/dbal since issue came from doctrine/bundle - (93321bb)
2.1.40 - 2023-08-04
- (NodesTags) Added a single UUID field to prevent primary key overlap. - (68fff41)
- (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
- (Doctrine) Do not extend
Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository
anymore due to LazyServiceEntityRepository startingdoctrine/[email protected]
- (ec1687c)
2.1.38 - 2023-08-03
- 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
- (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
- Gathered Mysql and Postgresql database initialization in the same Migration to avoid always skipping RZ\Roadiz\Migrations\Version20201225181256 - (af73bf4)
- (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
- (WebResponseOutputDataTransformer) Made
WebResponseOutputDataTransformer
overrideable in projects instead of reimplementing it. - (52fd409)
2.1.34 - 2023-07-31
- (AjaxNodeTreeController) Fixed non-integer translationId - (e33762f)
2.1.33 - 2023-07-31
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.
- (AjaxNodeTree) Removed
translationId
path param fromnodesTreeAjax
route - (d5e6fe6)
- (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
- (ApiResourceGenerator) Do not wrap boolean value in quotes - (90630c1)
2.1.31 - 2023-07-25
- (CoreBundle) Fixed doctrine/dbal version - (3087a38)
- Use
ramsey/uuid
for Webhook ID generation, doctrine/dbal removed AutoGenerated uuids - (55f80fc)
2.1.30 - 2023-07-25
- (CoreBundle) Fixed doctrine/dbal dependency to 2.x due to UUID removal. Missing constraint in core-bundle. - (9824f1f)
- Allowed
doctrine/dbal
3.x - (ba47367)
2.1.29 - 2023-07-25
-
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
andcollectionOperations
to singleoperations
node and addclass
withApiPlatform\Metadata\Get
orApiPlatform\Metadata\GetCollection
- Rename
iri
totypes
and wrap single values into array - Rename
path
touriTemplate
- Rename
normalization_context
tonormalizationContext
- Rename
openapi_context
toopenapiContext
- Move
shortName
to eachoperation
- Rename
attributes
toextraProperties
(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
- If you do not want to remove existing config, you'll have to move
-
All filters and extensions use new interfaces
-
Removed all deprecated DataTransformer and Dto classes
-
Once everything is migrated changed
metadata_backward_compatibility_layer: false
inconfig/packages/api_platform.yaml
- Fixed doctrine/dbal dependency to 2.x due to UUID removal - (d426160)
- (ApiPlatform) [breaking] Disabled
metadata_backward_compatibility_layer
and migrated all API resources, filters, extensions to newOperation
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
- 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
- (Search) Fixed node advanced search using
__node__
prefix - (bcb7d5d)
- [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
- Missing
isTransactional
on last migration - (5bf8833)
2.1.26 - 2023-07-12
- Fixed Loggable behaviour, removed relationship between UserLogEntry and User for future entity-manager separation. - (96d180b)
2.1.25 - 2023-07-12
- 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
- (Search engine) Do not add quotes if multi word exact query, Solr Helper already does it - (b0aa80a)
2.1.23 - 2023-07-02
- Use FilterValidationException instead of InvalidArgumentException to generate 400 and no 500 errors - (ca89b73)
2.1.22 - 2023-06-30
- Log entity requires a Migration that may be destructive on
log
table.
- Do not handle node add attribute form when no attribute exists - (db77e62)
- (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
- Roadiz/models namespace root is now ./src. Change your Doctrine entities path
- (OpenID) Do not register
roadiz_rozier.open_id.discovery
ifdiscovery_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)
- (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
- (Preview) Check strict
_preview
param value (allowing0
,false
values to disable preview mode) - (70b60c9)
- (Preview) Added OpenAPI decorator to document
_preview
query param and JWT security - (449c9f9)
2.1.19 - 2023-06-23
- (OpenApi) Fixed
getByPath
operation overlap withget
by settingid
request attribute and api_resource operation configuration - (54a378d)
2.1.18 - 2023-06-23
- Fixed and refactored SQL search query building on Repository and Paginator levels - (b5d320b)
2.1.17 - 2023-06-20
- (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)
- (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)
2.1.16 - 2023-06-01
- (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
- Allow all
gedmo/doctrine-extensions
v3 - (0ed814b)
2.1.14 - 2023-05-19
- Fixed Collection type hinting and co-variance - (2a53d81)
2.1.13 - 2023-05-19
- Fixed
Collection<int, classname>
type hinting - (3a670bb) - Fixed CustomFormAnswer class renaming
getAnswers()
togetAnswerFields()
- (d88a179)
2.1.12 - 2023-05-11
- Add PreviewResolverInterface into NodeSourceWalkerContext to alter TreeWalker definition against preview status - (463be2e)
2.1.11 - 2023-05-05
- (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
- (Rozier) Fixed global backoffice grid when tree panel is hidden - (4aa8a5e)
- (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
andNodeSourceSearchQueryEvent
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
- JoinDataTransformer must always transform to an array, even single objects - (e17b804)
2.1.8 - 2023-04-06
- (PreviewBarSubscriber) Test if Response content is string before searching tag - (93d1897)
2.1.7 - 2023-04-04
- (Documents) Prevent renaming document filename if new pathname is not available - (13982cc)
- (EntityGenerator) Nullable
$field->getDefaultValues()
- (297f099)
2.1.6 - 2023-03-23
- Fixed AjaxNodesExplorerController search params strict typing. - (fd38552)
- (EntityGenerator) Entity generator uses DefaultValuesResolverInterface to compute required ENUM fields length acording to their default values. - (20263b6)
2.1.5 - 2023-03-17
- 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
- (EntityGenerator) Fixed attributes list generator when there is only one attribute to print - (b6139ba)
2.1.3 - 2023-03-14
- Fixed SolrPaginator
getLastPage
using an index starting at 1 instead of 0 - (052f9be)
2.1.2 - 2023-03-14
- Fix SolrPaginator last-page when there are no results - (a044446)
- Create overrideable
createSearchResultsFromResponse
method for any AbstractSearchHandler extending class - (b23b92f)
2.1.1 - 2023-03-13
- 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).
- [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
- (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)
- Fix newlines for multiline run commands - (387a93c)
- Use org secret ROADIZ_SPLIT_ACCESS_TOKEN - (4816fb6)
- Force GITHUB_TOKEN (https://docs.github.com/en/actions/security-guides/automatic-token-authentication) - (d0d25cd)
- Invalid workflow - (4dbc1f7)
- try to use auto GITHUB_TOKEN from github actions - (e8c32fb)
- Define default_branch for all packages - (645a91b)
- Do not rename GITHUB_TOKEN - (aa93d6a)
- Changed username for github Actions - (a558dbd)
- (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)
- Updated dependencies - (c201f15)