From 0f37cd3a45eb9bd32fcd8a589fa15688b0f737d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 9 Sep 2024 13:07:47 +0200 Subject: [PATCH 1/5] PR 17018 --- .../common/directives/components/content/edit.controller.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js index 1e455aea5f4e..8a8ae0a36b5d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js @@ -757,8 +757,8 @@ formHelper.showNotifications(err.data); clearNotifications($scope.content); - handleHttpException(err); - deferred.reject(err); + handleHttpException(err); + deferred.reject(err); }); }, close: function () { @@ -787,6 +787,7 @@ }, function (err) { $scope.page.buttonGroupState = "error"; handleHttpException(err); + $scope.$broadcast("formSubmittedValidationFailed") deferred.reject(err); }); } From 02a47695e76b1178caef6472c2428580f61018d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 9 Sep 2024 12:49:07 +0200 Subject: [PATCH 2/5] dispatch change event when embedded media has been added (#17008) --- .../src/common/services/tinymce.service.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js index df5b0d51bb9e..18707c1f60d5 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js @@ -611,6 +611,11 @@ function tinyMceService($rootScope, $q, imageHelper, $locale, $http, $timeout, s } else { editor.selection.setNode(wrapper); } + + + angularHelper.safeApply($rootScope, function () { + editor.dispatch("Change"); + }); }, From 407734ff4ae773b9dafe6c25019c66adb132786b Mon Sep 17 00:00:00 2001 From: Sven Geusens Date: Mon, 9 Sep 2024 18:13:14 +0200 Subject: [PATCH 3/5] Fix null reference exception in CacheValues.For when building the CompositeStringStringKey (#17024) * Fix null ref exeption based on IPropertyValue.Culture documentation * Clarify comment --- src/Umbraco.PublishedCache.NuCache/Property.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.PublishedCache.NuCache/Property.cs b/src/Umbraco.PublishedCache.NuCache/Property.cs index ed9f7277eff3..09716ef43a35 100644 --- a/src/Umbraco.PublishedCache.NuCache/Property.cs +++ b/src/Umbraco.PublishedCache.NuCache/Property.cs @@ -371,6 +371,12 @@ private class CacheValues : CacheValue public CacheValue For(string? culture, string? segment) { + // As noted on IPropertyValue, null value means invariant + // But as we need an actual string value to build a CompositeStringStringKey + // We need to convert null to empty + culture ??= string.Empty; + segment ??= string.Empty; + if (culture == string.Empty && segment == string.Empty) { return this; From 9a088d36b925e911a25565b486ba38fbd5ef0605 Mon Sep 17 00:00:00 2001 From: Sven Geusens Date: Tue, 10 Sep 2024 18:07:20 +0200 Subject: [PATCH 4/5] Expand RedirectUrl.Url storage type to avoid truncation (#17038) * Add migration to expand RedirectUrl.Url to varcharMax * Simplify Migration * readded notnull attribute --- .../Migrations/Upgrade/UmbracoPlan.cs | 1 + .../ChangeRedirectUrlToNvarcharMax.cs | 41 +++++++++++++++++++ .../Persistence/Dtos/RedirectUrlDto.cs | 1 + 3 files changed, 43 insertions(+) create mode 100644 src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_5_0/ChangeRedirectUrlToNvarcharMax.cs diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs index 3ba30b12df29..2d6d47e645dd 100644 --- a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs @@ -106,5 +106,6 @@ protected virtual void DefinePlan() To("{21C42760-5109-4C03-AB4F-7EA53577D1F5}"); To("{6158F3A3-4902-4201-835E-1ED7F810B2D8}"); To("{985AF2BA-69D3-4DBA-95E0-AD3FA7459FA7}"); + To("{CC47C751-A81B-489A-A2BC-0240245DB687}"); } } diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_5_0/ChangeRedirectUrlToNvarcharMax.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_5_0/ChangeRedirectUrlToNvarcharMax.cs new file mode 100644 index 000000000000..4f28b0fe8870 --- /dev/null +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_5_0/ChangeRedirectUrlToNvarcharMax.cs @@ -0,0 +1,41 @@ +using System.Linq.Expressions; +using System.Text; +using NPoco; +using Umbraco.Cms.Core; +using Umbraco.Cms.Infrastructure.Migrations.Expressions.Create.Column; +using Umbraco.Cms.Infrastructure.Persistence; +using Umbraco.Cms.Infrastructure.Persistence.Dtos; + +namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_13_5_0; + +public class ChangeRedirectUrlToNvarcharMax : MigrationBase +{ + public ChangeRedirectUrlToNvarcharMax(IMigrationContext context) : base(context) + { + } + + protected override void Migrate() + { + // We don't need to run this migration for SQLite, since ntext is not a thing there, text is just text. + if (DatabaseType == DatabaseType.SQLite) + { + return; + } + + string tableName = RedirectUrlDto.TableName; + string colName = "url"; + + // Determine the current datatype of the column within the database + string colDataType = Database.ExecuteScalar($"SELECT TOP(1) CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS" + + $" WHERE TABLE_NAME = '{tableName}' AND COLUMN_NAME = '{colName}'"); + + // 255 is the old length, -1 indicate MAX length + if (colDataType == "255") + { + // Upgrade to MAX length + Database.Execute($"Drop Index IX_umbracoRedirectUrl_culture_hash on {Constants.DatabaseSchema.Tables.RedirectUrl}"); + Database.Execute($"ALTER TABLE {tableName} ALTER COLUMN {colName} nvarchar(MAX) NOT NULL"); + Database.Execute($"CREATE INDEX IX_umbracoRedirectUrl_culture_hash ON {Constants.DatabaseSchema.Tables.RedirectUrl} (urlHash, contentKey, culture, createDateUtc)"); + } + } +} diff --git a/src/Umbraco.Infrastructure/Persistence/Dtos/RedirectUrlDto.cs b/src/Umbraco.Infrastructure/Persistence/Dtos/RedirectUrlDto.cs index 453ab1e308a2..3582a7eee569 100644 --- a/src/Umbraco.Infrastructure/Persistence/Dtos/RedirectUrlDto.cs +++ b/src/Umbraco.Infrastructure/Persistence/Dtos/RedirectUrlDto.cs @@ -38,6 +38,7 @@ internal class RedirectUrlDto [Column("url")] [NullSetting(NullSetting = NullSettings.NotNull)] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] public string Url { get; set; } = null!; [Column("culture")] From a6c558194282f0e01ce46b39201e76058f265abd Mon Sep 17 00:00:00 2001 From: Sven Geusens Date: Tue, 10 Sep 2024 18:10:57 +0200 Subject: [PATCH 5/5] Update version to non RC --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 288af47e084d..ff1a0edbe511 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json", - "version": "13.5.0-rc", + "version": "13.5.0", "assemblyVersion": { "precision": "build" },