diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md index 3f4714f57f..5b1a1fbeb2 100644 --- a/docs/en/studio/release-notes.md +++ b/docs/en/studio/release-notes.md @@ -9,7 +9,21 @@ This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version. -## 2.2.4 (2026-03-25) Latest +## 2.2.6 (2026-04-08) Latest + +- Disable Scriban 7.0 cumulative output limit for template rendering + +## 2.2.5 (2026-04-08) + +- Upgraded GPT-5 → GPT-5.4 and improved AI management (providers, blob storage, CLI options) +- Fixed critical build issues (MongoDB, MAUI) and improved overall stability +- Enhanced monitoring (HTTP requests & exceptions) +- Added DBMS auto-detection from connection string +- Upgraded to ABP 10.2 and Scriban 7.0.0 +- Improved developer experience and telemetry (PostHog) +- Minor UI fixes and workflow adjustments (manual build trigger) + +## 2.2.4 (2026-03-25) - Add `Template Create and Build` workflow - Disable NuGetAudit in template common.props to prevent CLI deadlock during initial migration diff --git a/docs/en/studio/version-mapping.md b/docs/en/studio/version-mapping.md index baa5b24ff1..a5a1e366f1 100644 --- a/docs/en/studio/version-mapping.md +++ b/docs/en/studio/version-mapping.md @@ -11,6 +11,7 @@ This document provides a general overview of the relationship between various ve | **ABP Studio Version** | **ABP Version of Startup Template** | |------------------------|---------------------------| +| 2.2.5 - 2.2.6 | 10.2.0 | | 2.2.2 - 2.2.4 | 10.1.1 | | 2.2.1 | 10.1.0 | | 2.1.5 - 2.1.9 | 10.0.2 | @@ -43,7 +44,6 @@ This document provides a general overview of the relationship between various ve | 0.7.0 to 0.7.3 | 8.2.0 | | 0.6.8 - 0.6.9 | 8.1.3 | | 0.6.7 | 8.1.1 | - # Working with ABP's Preview Versions By default, ABP Studio uses stable versions to create solutions. Therefore, if you want to create a solution with a preview version, first you need to create a solution and then switch your solution to the preview version from the ABP Studio UI: diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js index 1b3bd0b7f4..428a4b15f7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js @@ -55,19 +55,20 @@ $(function () { await submitCoverImage(); - $formCreate.ajaxSubmit({ - success: function (result) { - if (isTagsEnabled) { - submitEntityTags(result.id); - } - else { - finishSaving(); - } - }, - error: function (result) { - abp.notify.error(result.responseJSON.error.message); - abp.ui.clearBusy(); + abp.ajax({ + url: $formCreate.attr("action"), + data: new FormData($formCreate[0]), + processData: false, + contentType: false + }).done(function (result) { + if (isTagsEnabled) { + submitEntityTags(result.id); } + else { + finishSaving(); + } + }).fail(function () { + abp.ui.clearBusy(); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js index 96d640127e..3f474b89ff 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js @@ -42,19 +42,20 @@ $(function () { await submitCoverImage(); - $formUpdate.ajaxSubmit({ - success: function (result) { - if (isTagsEnabled) { - submitEntityTags($blogPostIdInput.val()); - } - else { - finishSaving(result); - } - }, - error: function (result) { - abp.ui.clearBusy(); - abp.notify.error(result.responseJSON.error.message); + abp.ajax({ + url: $formUpdate.attr("action"), + data: new FormData($formUpdate[0]), + processData: false, + contentType: false + }).done(function (result) { + if (isTagsEnabled) { + submitEntityTags($blogPostIdInput.val()); + } + else { + finishSaving(result); } + }).fail(function () { + abp.ui.clearBusy(); }); } else { diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js index ca7ab72cdc..4474e0fbee 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js @@ -36,16 +36,16 @@ $(function () { $("#ViewModel_Style").val(styleEditor.getValue()); $("#ViewModel_Script").val(scriptEditor.getValue()); - $createForm.ajaxSubmit({ - success: function (result) { - abp.notify.success(l('SavedSuccessfully')); - abp.ui.clearBusy(); - location.href = "../Pages"; - }, - error: function (result) { - abp.ui.clearBusy(); - abp.notify.error(result.responseJSON.error.message); - } + abp.ajax({ + url: $createForm.attr("action"), + data: new FormData($createForm[0]), + processData: false, + contentType: false + }).done(function () { + abp.notify.success(l('SavedSuccessfully')); + location.href = "../Pages"; + }).always(function () { + abp.ui.clearBusy(); }); } }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js index a58e601135..7ce5bb8b1b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js @@ -34,12 +34,16 @@ $(function () { $("#ViewModel_Style").val(styleEditor.getValue()); $("#ViewModel_Script").val(scriptEditor.getValue()); - $formUpdate.ajaxSubmit({ - success: function (result) { - abp.notify.success(l('SavedSuccessfully')); - abp.ui.clearBusy(); - location.href = "../../Pages"; - } + abp.ajax({ + url: $formUpdate.attr("action"), + data: new FormData($formUpdate[0]), + processData: false, + contentType: false + }).done(function () { + abp.notify.success(l('SavedSuccessfully')); + location.href = "../../Pages"; + }).always(function () { + abp.ui.clearBusy(); }); } });