From b6558cf73449439cffc4cc82fa285b96ad937b2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 20 Jan 2021 10:15:52 +0100 Subject: [PATCH 1/9] empty value should also enable in order to stay backwards compatible. (cherry picked from commit 2321fbfcabec653a8e9ca71c19be4e7e2127374d) --- .../forms/umbautofocus.directive.js | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js index 47ef460c53..98c4ef691e 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js @@ -10,18 +10,14 @@ angular.module("umbraco.directives") } }; - //check if there's a value for the attribute, if there is and it's false then we conditionally don't - //use auto focus. - if (attrs.umbAutoFocus) { - attrs.$observe("umbAutoFocus", function (newVal) { - var enabled = (newVal === "false" || newVal === 0 || newVal === false) ? false : true; - if (enabled) { - $timeout(function() { - update(); - }); - } - }); - } + attrs.$observe("umbAutoFocus", function (newVal) { + var enabled = (newVal === "false" || newVal === 0 || newVal === false) ? false : true; + if (enabled) { + $timeout(function() { + update(); + }); + } + }); }; }); From 704fad92e5d7eee1db0c8016f6f104c374ead8b8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 20 Jan 2021 10:04:54 +0100 Subject: [PATCH 2/9] Fixes: 9360: Nested validation freezes browser (#9677) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Niels Lyngsø (cherry picked from commit b75a237162d23c16b9090a5819e63eb371b1bb24) --- .../common/services/angularhelper.service.js | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/angularhelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/angularhelper.service.js index fd620bac18..7c291ffb3f 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/angularhelper.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/angularhelper.service.js @@ -11,6 +11,11 @@ function angularHelper($q) { var requiredFormProps = ["$error", "$name", "$dirty", "$pristine", "$valid", "$submitted", "$pending"]; function collectAllFormErrorsRecursively(formCtrl, allErrors) { + // skip if the control is already added to the array + if (allErrors.indexOf(formCtrl) !== -1) { + return; + } + // loop over the error dictionary (see https://docs.angularjs.org/api/ng/type/form.FormController#$error) var keys = Object.keys(formCtrl.$error); if (keys.length === 0) { @@ -31,6 +36,7 @@ function angularHelper($q) { allErrors.push(ctrl); // add the error return; } + // recurse with the sub form collectAllFormErrorsRecursively(ctrl, allErrors); } @@ -43,6 +49,7 @@ function angularHelper($q) { } function isForm(obj) { + // a method to check that the collection of object prop names contains the property name expected function allPropertiesExist(objectPropNames) { //ensure that every required property name exists on the current object @@ -89,9 +96,9 @@ function angularHelper($q) { /** * Method used to re-run the $parsers for a given ngModel - * @param {} scope - * @param {} ngModel - * @returns {} + * @param {} scope + * @param {} ngModel + * @returns {} */ revalidateNgModel: function (scope, ngModel) { this.safeApply(scope, function() { @@ -103,8 +110,8 @@ function angularHelper($q) { /** * Execute a list of promises sequentially. Unlike $q.all which executes all promises at once, this will execute them in sequence. - * @param {} promises - * @returns {} + * @param {} promises + * @returns {} */ executeSequentialPromises: function (promises) { @@ -178,7 +185,7 @@ function angularHelper($q) { //NOTE: There isn't a way in angular to get a reference to the current form object since the form object // is just defined as a property of the scope when it is named but you'll always need to know the name which // isn't very convenient. If we want to watch for validation changes we need to get a form reference. - // The way that we detect the form object is a bit hackerific in that we detect all of the required properties + // The way that we detect the form object is a bit hackerific in that we detect all of the required properties // that exist on a form object. // //The other way to do it in a directive is to require "^form", but in a controller the only other way to do it @@ -239,7 +246,7 @@ function angularHelper($q) { $submitted: false, $pending: undefined, $addControl: Utilities.noop, - $removeControl: Utilities.noop, + $removeControl: Utilities.noop, $setValidity: Utilities.noop, $setDirty: Utilities.noop, $setPristine: Utilities.noop, From 0744b38fe4f8b15e3fdc460261d8e28d24906f65 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:16:28 +0100 Subject: [PATCH 3/9] Fixes umbraco/Umbraco-CMS#9244 Log a warning instead of throwing an error so existing code doesn't fail --- src/Umbraco.Core/Services/Implement/UserService.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Services/Implement/UserService.cs b/src/Umbraco.Core/Services/Implement/UserService.cs index e4906863fa..41424e1dda 100644 --- a/src/Umbraco.Core/Services/Implement/UserService.cs +++ b/src/Umbraco.Core/Services/Implement/UserService.cs @@ -205,7 +205,7 @@ namespace Umbraco.Core.Services.Implement //NOTE: this will not be cached return _userRepository.GetByUsername(username, includeSecurityData: false); } - + throw; } } @@ -258,7 +258,7 @@ namespace Umbraco.Core.Services.Implement // this method must exist in this service as an implementation (legacy) void IMembershipMemberService.SetLastLogin(string username, DateTime date) { - throw new NotSupportedException("This method is not implemented or supported for users"); + Logger.Warn("This method is not implemented. Using membership providers users is not advised, use ASP.NET Identity instead. See issue #9224 for more information."); } /// @@ -717,7 +717,7 @@ namespace Umbraco.Core.Services.Implement //NOTE: this will not be cached return _userRepository.Get(id, includeSecurityData: false); } - + throw; } } From e18bda50a10e94ba5eb870ba65eb36426d3e8bac Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:18:18 +0100 Subject: [PATCH 4/9] Bump version to 8.6.7 --- src/SolutionInfo.cs | 6 +++--- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs index 687030ad13..b5fb5fdd77 100644 --- a/src/SolutionInfo.cs +++ b/src/SolutionInfo.cs @@ -2,7 +2,7 @@ using System.Resources; [assembly: AssemblyCompany("Umbraco")] -[assembly: AssemblyCopyright("Copyright © Umbraco 2020")] +[assembly: AssemblyCopyright("Copyright © Umbraco 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -18,5 +18,5 @@ using System.Resources; [assembly: AssemblyVersion("8.0.0")] // these are FYI and changed automatically -[assembly: AssemblyFileVersion("8.6.6")] -[assembly: AssemblyInformationalVersion("8.6.6")] +[assembly: AssemblyFileVersion("8.6.7")] +[assembly: AssemblyInformationalVersion("8.6.7")] diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index e8c31f4665..bb36aeb8c2 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -345,9 +345,9 @@ False True - 8660 + 8670 / - http://localhost:8660 + http://localhost:8670 False False From b44a3e42804c562475d50fc4da11f6b038e152cc Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Tue, 19 Jan 2021 18:17:48 +0100 Subject: [PATCH 5/9] Inject missing localization service (cherry picked from commit c501ef0b68f135811ca9000e4f091c53851b5db4) --- .../directives/components/forms/umbradiobutton.directive.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js index 7ed84547f1..f8a3fd2d2e 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js @@ -36,7 +36,7 @@ (function () { 'use strict'; - function UmbRadiobuttonController($timeout) { + function UmbRadiobuttonController($timeout, localizationService) { var vm = this; From 0b3256c4feb8124b00cd461eabaca323415b851d Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:24:28 +0100 Subject: [PATCH 6/9] Bump version to 8.7.2 --- src/SolutionInfo.cs | 6 +++--- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs index 087e5a3a55..597b416ffb 100644 --- a/src/SolutionInfo.cs +++ b/src/SolutionInfo.cs @@ -2,7 +2,7 @@ using System.Resources; [assembly: AssemblyCompany("Umbraco")] -[assembly: AssemblyCopyright("Copyright © Umbraco 2020")] +[assembly: AssemblyCopyright("Copyright © Umbraco 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -18,5 +18,5 @@ using System.Resources; [assembly: AssemblyVersion("8.0.0")] // these are FYI and changed automatically -[assembly: AssemblyFileVersion("8.7.1")] -[assembly: AssemblyInformationalVersion("8.7.1")] +[assembly: AssemblyFileVersion("8.7.2")] +[assembly: AssemblyInformationalVersion("8.7.2")] diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index eb3159fa43..63b392b5e5 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -346,9 +346,9 @@ False True - 8710 + 8720 / - http://localhost:8710 + http://localhost:8720 8660 / http://localhost:8660 From cda81ae9be18f99f99b905a2616edeead6aafa7b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:26:14 +0100 Subject: [PATCH 7/9] Bump version to 8.8.3 --- src/SolutionInfo.cs | 6 +++--- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs index 9ea8419e15..284aa24629 100644 --- a/src/SolutionInfo.cs +++ b/src/SolutionInfo.cs @@ -2,7 +2,7 @@ using System.Resources; [assembly: AssemblyCompany("Umbraco")] -[assembly: AssemblyCopyright("Copyright © Umbraco 2020")] +[assembly: AssemblyCopyright("Copyright © Umbraco 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -18,5 +18,5 @@ using System.Resources; [assembly: AssemblyVersion("8.0.0")] // these are FYI and changed automatically -[assembly: AssemblyFileVersion("8.8.2")] -[assembly: AssemblyInformationalVersion("8.8.2")] +[assembly: AssemblyFileVersion("8.8.3")] +[assembly: AssemblyInformationalVersion("8.8.3")] diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 5ff224f449..c104514cb1 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -346,9 +346,9 @@ False True - 8820 + 8830 / - http://localhost:8820 + http://localhost:8830 False False From e913c2720c987daec757ab54ca6bf83a74603bd0 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:27:40 +0100 Subject: [PATCH 8/9] Bump version to 8.9.2 --- src/SolutionInfo.cs | 6 +++--- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs index 1c59137aac..eeeb9b41ff 100644 --- a/src/SolutionInfo.cs +++ b/src/SolutionInfo.cs @@ -2,7 +2,7 @@ using System.Resources; [assembly: AssemblyCompany("Umbraco")] -[assembly: AssemblyCopyright("Copyright © Umbraco 2020")] +[assembly: AssemblyCopyright("Copyright © Umbraco 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -18,5 +18,5 @@ using System.Resources; [assembly: AssemblyVersion("8.0.0")] // these are FYI and changed automatically -[assembly: AssemblyFileVersion("8.9.1")] -[assembly: AssemblyInformationalVersion("8.9.1")] +[assembly: AssemblyFileVersion("8.9.2")] +[assembly: AssemblyInformationalVersion("8.9.2")] diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 8ea1fd87b7..ce4153f81b 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -346,9 +346,9 @@ False True - 8910 + 8920 / - http://localhost:8910 + http://localhost:8920 False False From ae30a8db91f9c6bdc097fb8d0dc80d760c10e7c9 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 20 Jan 2021 11:29:04 +0100 Subject: [PATCH 9/9] Bump version to 8.10.2 --- src/SolutionInfo.cs | 4 ++-- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs index b1fdd967e4..3b88bba754 100644 --- a/src/SolutionInfo.cs +++ b/src/SolutionInfo.cs @@ -18,5 +18,5 @@ using System.Resources; [assembly: AssemblyVersion("8.0.0")] // these are FYI and changed automatically -[assembly: AssemblyFileVersion("8.10.1")] -[assembly: AssemblyInformationalVersion("8.10.1")] +[assembly: AssemblyFileVersion("8.10.2")] +[assembly: AssemblyInformationalVersion("8.10.2")] diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 22a7e4356f..7338038359 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -347,9 +347,9 @@ False True - 8101 + 8102 / - http://localhost:8101 + http://localhost:8102 False False