We're thrilled to share that Sitefinity 15.2 is now available. Below you can find details about what is included in this release.
What's new in Sitefinity 15.2
Decoupled Next.js Renderer for Sitefinity
We аre excited to introduce support for frontend development with the Next.js framework based on React, using both server-side and client-side rendering capabilities.
Key features include:
Learn more...
Decoupled extensibility for content editing UI
Sitefinity 15.2 comes with a new extensibility mechanism that empowers you to customize and enhance the platform's content editing experience using your preferred JavaScript frameworks - such as Angular, React, or Vue. You can now replace or augment Sitefinity's default user interface and functionality for content fields to better align with your specific business needs.
Key features include:
Customizable tools for the Rich Text Editor
You can extend the built-in Rich Text Editor by adding your own custom tools and functionalities. For instance, if you need a special formatting option or a custom media insertion tool that's not available by default, you can develop and integrate it directly into the editor. This enhancement allows content creators to work more efficiently and adhere to your organization's specific content guidelines.
Integration of external applications for content fields
Custom presentation and validation:
- What this means: Instead of using Sitefinity's standard content input fields (like text box, dropdown, etc.), you can replace them with your own custom-built applications. These applications can offer a tailored user interface and specialized functionality that better suit the data being entered.
- How it works: Develop your custom fields using popular JavaScript frameworks such as Angular, React, or Vue. These custom fields can provide a more intuitive or specialized data entry process, like a dynamic form, a custom calendar picker, or an interactive map for location data.
Advanced business logic:
- Embedding complex rules: You can incorporate sophisticated business rules and validation logic directly into your custom content fields. This ensures that the data entered by users complies with your specific requirements before it's saved or processed.
- Examples: Implement real-time validation that checks for data inconsistencies, enforce formatting rules, or integrate with external systems for data verification (like checking a shipping address against a postal service database).
Seamless interaction with Sitefinity CMS:
- Unified user experience: Your custom applications will integrate smoothly with Sitefinity backend. Users will experience a cohesive interface where your custom fields operate just like the default ones.
- Data management: The data collected through your custom fields is managed within Sitefinity just like any other content, ensuring consistency in how content is stored, retrieved, and utilized across your website or application.
Learn more...
General Enhancements & Improvements
Site sync
- Enhanced performance in calculating Site Sync dependencies.
- Ability to review SiteSync dependencies before syncing an item.
Learn more...
- Ability to configure SiteSync cleanup. You can now remove old log entries from SiteSync and clear the sync history.
Learn more...
MVC, ASP.NET Core, Next.js
- Enhancements to the user registration process.
- Dashboard warning when password requirements are not configured.
- Require activation is now the default option in the user registration process.
Learn more...
- There is an ability to add CAPTCHA protection for additional verification in the registration process.
Learn more...
- Improved email activation process, including options to resend activation emails and confirmation of email upon username modification.
Learn more...
WYSIWYG editor
ASP.NET Core, Next.js
You can now change the icons of the widgets in the widget selector and display your custom icons. You can only use custom icons in one tone.
Learn more...
MVC, ASP.NET Core, Next.js
The table view rendering of complex objects now collapses columns when the object has more properties than can be adequately displayed in the widget designer and offers a more detailed view to edit complex objects with multiple properties.
Learn more...
Improved navigation of hierarchical content types
Improved navigation between parent-child content types. Clicking the parent item name now opens the item for editing, instead of opening its children.
You can now access the children in column Contains. To navigate to the specific items, you only need to click the links.
- Output cache dependencies - persistence improvements to decrease the database load
- MVC Breadcrumb widget - performance improvements to reduce the number of database queries
- Optimized taxa loading in MVC widgets
- Refactored MVC widgets to use dynamic modules cache
- Link parsing - executed on demand
Upgrade improvements
- When upgrading to Sitefinity 15.2 (or higher), if you are using custom MVC widget templates created from Bootstrap 4 or 5, which were not modified and their source version is the same as of the default widget templates, all these templates will be automatically upgraded to the latest version.
Deprecated capabilities
- The integration between Twitter (now known as X) and the Sitefinity CMS Publishing system has been removed.
As a result, you will no longer be able to include Twitter feed as source or target destination in your feeds. Only pages based on Web Forms or hybrid templates are affected because Twitter Feed is a Web Forms widget.
Learn more....
- NativeChat connector module will not be available for new Sitefinity projects. It will remain available for upgraded projects if the module was active before the upgrade.
Refer to Deprecated capabilities in Sitefinity CMS for a complete list of discontinued capabilities per product version.
What's fixed
- Additional URLs not added on change of page location (330394)
- Manage Dashboard Button Redirects to Title and Properties (516192)
- Form responses: Issues with Filter sidebar (522623)
- Form responses selection checkbox is displayed on top of contextual help for the screen (515696)
- Site Sync: Images synced from libraries pointing to different Azure blob storage don't contain cache-control header in the Target site (522135)
- Stop schedule button is primary but it shouldn't be (522499)
- Media content selector in complex objects does not display selected values (521742)
- Corrupted thumbnails are generated for jpg images with width less than the set Max width (521467)
- Site Shield: Cannot access non-default site when set Additional custom roles with access (522561)
- SharePoint: Cannot sync documents in subfolders (519001)
- Sitemap: Duplicated entries are created under certain conditions (519309)
- AdminApp: "URL to file" displayed incorrectly when uploading images with the same name as the library (519385)
- Kendo editor removes comments (518279)
- Audit Trail only logs one role change when multiple roles are assigned or unassigned on the user's profile (522127)
- Compare Revision history for dynamic content multiple providers returns 403 (521427)
- Projects with a name other than the default throw an exception on initial initialization (522295)
- Insight journey is broken when using external authentication provider (501417)
- Multilingual: The Default protocol Login page returns 404 error when there are different cultures set for the
frontend and the backend (497777)
- Continuous loading issue after embedding image in Sitefinity library (519817)
- Caching behavior when setting a new Home page (316810)
- Forms Renderer - issue with submiting form (522747)
- Forms Renderer - Form field name with spaces breaks the backend (522739)
- OData output cache issue when Ninject is integrated (489336)
- ASP.NET Core - Forms Dynamic list widget - Sort items fields are visible when switching between content and classification (524920)
- Search: Inconsistent behaviour when indexing outer redirect pages (521389)
- Backend pages take more time to load after upgrade to 15.0 (518743)
- Content List items can no longer have the $ symbol in the title (521670)
- 404 error when going to Edit view of personalized page after it's changed to group page (491584)
- Advanced Settings: Search index should index only settings that are currently visible and can be updated (read-only mode) (523297)
- Resize images setting times out on large libraries (517614)
- URL validation is missing at translation import (515609)
- Not all widget templates are included in precompilation (524824)
- Question mark (?) in link selector fragment does not work (521518)
- Sitemap files numbered with more than one digit cannot be downloaded and lead to 404 (524937)
- Newly dropped layout grid widget does not show input fields for CSS classes in its designer (498272)
- List of Complex objects with rich text field breaks the widget designer when a link is added (522704)
- Narrow by selection -> Tags, breaks the list scroller at around 67 items (446047)
- OG and Meta Description fields do not allow removing their values entirely (522287)
- AdminApp allows the creation of multiple tags with identical names (497564)
- "Destination array was not long enough" exception is thrown when downloading file with wrong TotalSize (524921)
- Cannot perform export for deployment when App_Data is on shared network drive (525352)
- Non-admin users are unable to edit the System Email template under Forms Notification (524838)
- Dashboard: Recent items widget in dashboard breaks every time an item is published and the project has been upgraded from before version 13.1 (525671)
- Form responses are not ordered as in form editor (517806)
- Classic UI can be accessed and form entries can be edited using the respective route (525152)
- Incorrect license expiration date on Dashboard widget (525262)
- Inconsistent URL generation between canonical URL and sitemap URL for the Home page(524779)
- Permissions: Error is thrown when open redirect/group page for edit (525745)
- Creating Taxonomies do not support underscores (_) in title. (526524)
- Renderer: Cannot login when WebSecurity module disabled (526474)
- Content block revision history comparison throws an error (518994)
- Search content types with GUID fails (518045)
- Revision History: The title of a content item that contains special characters cannot be decoded (526202)
- Default sort expression for documents is not taken into account (492870)
- AngularJS error thrown when editing CSS widget after app recycle (526865)
- Service hooks: trigger selection in show all triggers selects all instead of single trigger (526047)
- AdminApp: Unencoded HTML displayed on rejected pages (workflow) (525968)
- Cannot bulk assign tags and categories to dynamic content items with deleted Title field and changed identifier (526948)
- Dynamic Content Designer selectors show content in all languages after ML changes in 13.1 (525264)
- Custom image thumbnail sizes not persisted in the Content block (526331)
- Pages grid does not show more than 20 items on a child level (526494)
- Slow performance when loading pages module with 10 000 pages and 60 languages (526862)
- Drop cue is not visible when dragging widgets in core page template sidebar (527113)
- Choice field with multiple selection saves name prop instead of value pros of the choice item (526875)
- AdminApp: Error selecting > 100 nodes MixedContentContext field type in custom widget (515447)
- Draft records are not documented in the revision history for dynamic modules (526707)
- ASP.NET Core form response notification table order (525924)
- Cannot select parent page if there is a redirect page with no value (527359)
- Site Sync: Syncing structure and data of a type, sync all content types under the same parent module (526768)
- Renderer: LinkModel properties do not display the persisted value when a pdf document is selected (525747)
- Duplicate page from Draft page does not hold current Page Template (526929)
- Autogenerated fields: Links created for content and pages within the site in KnownFieldTypes.Html fields are absolute instead of relative, even when "Resolves urls as absolute" is unchecked in webservice configuration (523198)
- When GetLocations method is called, reference to MixedContentContext property is null (514461)
- ASP.NET Core form responses not ordered as fields in the UI (525926)
- Next.js Renderer: Close button appears more times than necessary when delete page template (525370)
- Personalization menu has edit icons (518086)
- Renderer: Saving section preset shows 'Required' error message (525614)
- AI Services: Improved error handling of responses containing invalid JSON (523296)
- While updating an anchor link in a rich text editor fields, an empty anchor link can get created if blank space + original link is selected (525218)
- The selector does not load the selected items > 100 items (528085)
- Link attributes are not saved (526066)
- Renderer: LinkModels in collection don't retain the value. (526006)
- Select Image Widget View Does Not Trigger Lazy Loading Without A Scrollbar (525454)
- AdminApp: Insert video/image custom tools from the AdminApp extensions samples work only with the libraries provider set as default for the site (526413)
- Autogenerated field types: MixedContentContext - Properties of selected items cannot be edited when the selected item is from a non-default provider (525161)
- Image file info disappears after the parent item (news for example) is published (526705)
- HTML Sanitizer sanitizing tags and attributes from content block even when turned off (528633)
- ASP.NET Core: Cannot login when Redirect page after login configured (528728)
- Extend the OData service to return all fields that are in the index (523545)
- Extend the search results model in ASP.NET Core Renderer to access all indexed fields (523545)
- OData: Trailing slash breaks API endpoints (529141)
- Personalized content list widget cannot display item in detail view (521835)
- Culture chip is overlapped on Site Sync screen (528113)
- Using 'Escape' to close a widget designer breaks the page/template editor and widgets cannot be edited anymore (526837)
- Autogenerated widget designers: LinkModel reordering doesn't work and results in an error (528192)
- Incorrect file size when uploading image via RTE from your computer (528720)
- NativeChat: FAQ functionality preserves old answers (523768)
- Upgrading Sitefinity CMS to version 15.1.8322 disables the site-specific settings (528498)
- Angular Dashboard cannot parse datetime of the dashboard log entries when the default culture is Finnish (529465)
- Inconsistency between home page URL and canonical URL when redirecting to the root in sub-folder localization strategy (530240)
- Custom field of page doesn't invalidate cache of other pages (529888)
- Sitemap generating under HTTP when AbsolutePathRootUrlOfFirstRequest is under HTTP and DomainUrlLocalizationStrategy is used (529467)
- Site Sync: During site sync, deleting an item in a dynamic module in the source environment only deletes the default language version in the target environment (530549)
- Site Sync: Modifying a page template also marks its parent template for sync (439087)
- Creating a new field with unchecked "Allow empty values" setting causes issues with existing items when the database is in Azure (529044)
- AdminApp: Already published items have empty value in "Publish on" field in the "Schedule publish/unpublish" modal for monolingual setup (528928)
- Unpublishing a page does not invalidate the cache of its dependencies via Navigation widget (528938)
- Search facet suffix and prefix are not displayed (531152)
- Azure Search: Adding an additional field category throws exception, the index is not populated with data (467862)
- When a field is not set as facetable, it dose not highlight the selected option in the search index properties (532140)
- Dynamic content type backend page not respecting data source links, if configured separately (531483)
- "Items linking to this item" action doesn't redirect to correct site (527872)
- Forms MVC: File upload field required validation message is not displayed when there are errors in other fields (531299)
- Forms MVC: Paragraph textbox field Regex validation not working (531693)
- Custom field: "Include in indexes" causes issues during import (532249)
- Search: Incorrect values in search index on dynamic modules with changed identifier field (532248)
- Cannot create external redirect page with Cyrillic characters in the URL (526955)
- Cannot revert page from revision history after searching for the page in Pages grid (532134)
- Missing cache dependencies for child/parent items when using ChildItems or ParentItem extension methods for MVC widgets (532498)
- Form responses preview on another domain - domain URL of file upload is saved in the database (528984)
- Creating a new page translation copies older content from the widgets (528196)
- Multisite sharing - Error message for a site that is created by duplicating pages and settings from an existing site (532778)
- After an upgrade, additional URLs generate incorrectly for non-default language pages (532251)
- Advanced Settings search index breaks content type definition/views after Site Sync (532688)
- Missing "?" tooltip to schedule dialog (527523)
- Error when trying to see where a shared content block is used (446992)
- MVC: Updated related data does not invalidate output cache (531720)
- Issue with bulk delete for a given language on the backend UI (529181)
- Operations not available for form responses in different cultures than the site culture (529378)
- Autogenerated designers: Selected drop-down values are not displayed when editing an MVC widget designer (528202)
- Incorrect placeholder text for "Embed media" in the Rich text editor (532564)
- Changing the URL of the "Content" group page and then clicking Back button while editing a form results in 404 (532965)
- Performance issue for the Tags widget (532711)
- Back to edit page link not working on page revision history dialog in AdminApp when Sitefinity hosted as a child application (533560)
- Cannot revert page to a previous revision from inside page edit in AdminApp when Sitefinity is hosted as a child application (533558)
- Images moved from one Library to another and then moved to an Amazon S3 bucket return incorrect URL (528027)
- MVC: Image widget - infinite loading when navigating to empty folder (533931)
- Search performance improvement when indexing a large number of images (497619)
- When reordering widgets through the sidebar, the three dots on the reorder widget remain visible until you click elsewhere (527004)
- Importing translation .xliff file with field with empty value throws an error (534173)
- RSSFeeds: Performance degradation with many sites and Dynamic modules (534247)
- Form marked for sync without making any change (534290)
- Deleting a translation project leads to leftovers in the User files and DB (535007)
- Wrong domain used when selecting Media items with Link selector (518819)
- Cannot add relation for related document field with .json extension as allowed extension (365884)
- Cannot have a selector for all taxonomies types (Tags, Categories and Custom taxonomy) (533772)
- The last modified date of the page temp draft is not updated after locking the page (535373)
- Unable to duplicate a site with pages for non-administrator (533659)
- "Edit all properties" of Image widget designer button not working on age template (535143)
- SaaS: Hide in Pages advanced settings (in Title and properties) (535455)
- Treeview the link: "show all news" is missing (534605)
- Unable to open embedded YouTube videos (535274)
- Adding HTML into the name field of a web service injects the input into the error message (536090)
- Category based filtering not working on multiple sites when Categories are site specific (535022)
- HTML removes attributes for tracking visitor activities (535714)
- Renderer Section: --sf-backgrоund-color contains an "o" in Cyrillic which causes that attribute gets incorrectly encoded in the frontend when a background color is defined (536532)
- Renderer: Autogenerated Widget Designer, A complex object that has 3 or more layers in the content selector cease to function (536501)
- Form responses: Performance issues when loading form responses (534160)
- Backend Interface Settings: Adding several modules in the Search section results in a fields not loading for new modules (535398)
- Taxonomies: The skeleton transition is not always displayed (525227)
- Significant delay when loading more dynamic items per page in the backend (531193)
- Discarding Page Draft makes control not editable (538283)
- AdminApp: Duplicate/Edit recurring event and change the start date saves the original event date. (535765)
- Next.js Renderer: Load more in page templates does not work (538223)
- Next.js Renderer: count of Used by pages is 0 for the default template in change template (538221)
- Information Logged while moving images across libraries doesn't capture details of the image with the issue (538513)
- Error Publishing/Saving a duplicated News item with custom field - image with all sources (538656)
- Possible web cache poisoning (in front end search (521058)
- Search: Performance issue when indexing a large number of images (497619)
- Access token is added twice after login from FE with site shield access token (476067)
- UrlName validation allows period in the end of URLs (528572)
- Font color dropdown in Rich text editor toolset is not working when editing a Dynamic Content item that has long text field and scrollable mode (523410)
- Rich-text editor toolset disappears when resizing browser window. (525774)
- Dynamic widget cannot switch from detail view to list view (527071)
- UrlName validation allows period in the end of URLs (528572)
- Content block - the selected color indicator is missing from the Icon (534643)
- Related Media: Filtering media not work when there are more than one library provider (538487)
- Incorrect canonical URLs for pages in non-default site (538268)
- AdminApp: Adding custom css file for rich text editor through a custom toolset does not work (538826)
- Forms: Cannot edit FieldName property of a field when ColumnName is set in another field (539472)
- PDF file with fillable form does not work correctly after being uploaded and downloaded from Sitefinity (538230)
ASP.NET Core Renderer:
- ASP.NET Core Renderer: A Content List widget with filter expression and List settings to show a limited number of items is not rendered on the front-end page (522253)
- ASP.NET Core Renderer: Remove dynamic list control form rules (507245)
- ASP.NET Core Renderer: Extending ContentList entity with RTE field causes other fields in the designer to stop working (517078)
- ASP.NET Core Renderer: Email templates do not work with individual form controls (524324)
- ASP.NET Core Renderer: Custom section: Widgets added within a static section don't appear in the hierarchy (523403)
- ASP.NET Core Renderer: Exception "A binary operator with incompatible types was detected. Found operand types 'Edm.DateTimeOffset' and 'Edm.String' for operator kind 'GreaterThanOrEqual'." thrown for custom DateTime fields (525037)
- ASP.NET Core Renderer: Entity property type of IList value cannot be deserialized when it's having MixedContentContext and multiple list items (528060)
- ASP.NET Core Renderer: Content preview results in object reference error (531225)
- ASP.NET Core Renderer: Published form is not unlocked for other users (532364)
- ASP.NET Core Renderer: Duplicating widget causing order issue (517508)
- ASP.NET Core Renderer: Dynamic list widget - selecting all classifications display only top level (524943)
- ASP.NET Core Renderer: Error when importing translated XLIFF file of a page (527703)
- ASP.NET Core Renderer: Forms cannot be submitted when Web security module is deactivated (524303)
- ASP.NET Core Renderer: Login widget does not redirect user to ReturnUrl after successful login (513646)
- ASP.NET Core Renderer: Selected items locations not included in sitemap (525229)
- ASP.NET Core Renderer: form the regex validation is doubling the double-quotes in the rendered output (527677)
- ASP.NET Core Renderer: No redirect to login page after session expires in the backend (529100)
- ASP.NET Core Renderer: Filtering by custom DateTime field in ContentList widget throws exception (530462)
- ASP.NET Core Renderer: Profile widget cannot edit profile with frontend user from different provider than the default (524775)
- ASP.NET Core Renderer: Forms should display more clear message when an error occurs on submit (529297)
- ASP.NET Core Renderer: Broken links in Content Block in translated page with MS Translator (526412)
- ASP.NET Core Renderer: Site Shield not working with app when working with Sitefinity Headless (529219)
- ASP.NET Core Renderer: Images in Image widgets throw 404 error when editing pages in non default site from default site domain (533384)
- ASP.NET Core Renderer: Retrieving Related fields throws exception when no item is selected (533725)
- ASP.NET Core Renderer: Cannot create page section preset with custom role (532736)
- ASP.NET Core Renderer: Personalization issue if a widget uses a custom template from a resource package (533739)
- ASP.NET Core Renderer: CDN cache support for static files (534579)
- ASP.NET Core Renderer: Autogenerated Widget Designer: ChipChoice not displaying Enum Description attribute value (533313)
- ASP.NET Core Renderer: Drag and drop handle in page structure sidebar has different behavior in section and widget (535471)
- ASP.NET Core Renderer: Unpublishing page with ABTesting variations makes control not editable (538302)
- ASP.NET Core Renderer: Page Locked/Unavailable when .NET Core Renderer page is scheduled for publish (538273)
- ASP.NET Core Renderer: Page Locked/Unavailable while creating an A/B Test (528050)
- ASP.NET Core Renderer - Autogenerated Widget Designer: ChipChoice not displaying Enum Description attribute value (533313)
- ASP.NET Core Renderer - 302 redirect returned for item additional URLs instead of 301 (538664)
Other:
- Cumulative product security enhancements and updates (510293, 453127, 375105, 523716)
- Progress Telerik UI for ASP.NET AJAX updated to 2024.3.805.462
- Progress Telerik UI for WPF updated to 2024.3.924.462
- jQuery UI updated to 1.14.0
- jQuery migrate updated to 3.5.2
- jQuery validation updated to 1.21.0
- NativeChat SDK updated to 3.13.0
- AWSSDK.S3 to 3.7.400.5
- HtmlSanitizer updated to 8.1.870
- ServiceStack updated to 8.3.0
- Azure.Core updated to 1.40.0
- Microsoft.Spatial updated to 7.20.0
- Microsoft.AspNet.OData updated to 7.7.6
- Microsoft.OData.Core updated to 7.20.0
API and breaking changes
- API changes
Learn more...
- ControllerExtensions.GetDynamicContentType return type changed from DynamicModuleType to IDynamicModuleType
-
ASP.NET Core: To customize the display names of enumerators, the System.ComponentModel.DescriptionAttribute has been replaced with Progress.Sitefinity.Renderer.Designers.EnumDisplayNameAttribute.
-
ASP.NET Core: For enumerators, the System.ComponentModel.DescriptionAttribute is now used to customize the tooltip, whereas previously it was used to customize the name.
-
ASP.NET Core: The System.ComponentModel.DescriptionAttribute used in enum members must be replaced with Progress.Sitefinity.Renderer.Designers.EnumDisplayNameAttribute, as this attribute is now used to customize the names. If not changed, it will likely impact customer custom widgets.
Documentation improvements
Multiple code samples and REST SDK documentation for the ASP.NET Core Renderer have been included.
Learn more...
Regards,
Progress Sitefinity Team