From f98df48c25aec1382c3dbe79f1e8bb112165d27e Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 11 Sep 2019 17:55:39 +0100 Subject: [PATCH 01/10] Help Drawer - Hide Tours if there are none `vm.tours` is declared as an empty array (in the controller), it isn't null, so we need to check the array length. Otherwise if there are none, the "Tours" title is displayed. (cherry picked from commit a51f7b29de9c95b751f6997d1f18fd6f51fb5917) --- .../src/views/common/drawers/help/help.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html b/src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html index 56db1fd88a..0ad1f21a86 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html @@ -9,7 +9,7 @@ -
+
Tours
From b0e788fdaa746ab0017d0fb180d61bed0c3d4a56 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Mon, 9 Sep 2019 19:40:08 +0200 Subject: [PATCH 02/10] Don't show NC delete confirmation if an item can't be deleted (cherry picked from commit 3f4bff9ac366405052dfd51201d8a8ef2d0e38df) --- .../src/less/components/umb-nested-content.less | 5 +++++ .../nestedcontent/nestedcontent.controller.js | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-nested-content.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-nested-content.less index 59c90972d2..d018e76c0d 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-nested-content.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-nested-content.less @@ -154,6 +154,11 @@ .umb-nested-content__icon--disabled { opacity: 0.3; + cursor: default !important; + + &:hover { + color: @ui-option-type; + } } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js index aaf7ed08bb..68fcdc3e8b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.controller.js @@ -232,13 +232,15 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.NestedContent.Prop }; $scope.deleteNode = function (idx) { - if ($scope.nodes.length > $scope.model.config.minItems) { - $scope.nodes.splice(idx, 1); - $scope.setDirty(); - updateModel(); - } + $scope.nodes.splice(idx, 1); + $scope.setDirty(); + updateModel(); }; $scope.requestDeleteNode = function (idx) { + if ($scope.nodes.length <= $scope.model.config.minItems) { + return; + } + if ($scope.model.config.confirmDeletes === true) { localizationService.localizeMany(["content_nestedContentDeleteItem", "general_delete", "general_cancel", "contentTypeEditor_yesDelete"]).then(function (data) { const overlay = { From 0934a83aec39f659bb8970db37610a80f9423cc2 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Sun, 8 Sep 2019 20:43:27 +0200 Subject: [PATCH 03/10] Fix textbox aria-required (cherry picked from commit e83760c6bdc01523ac348a55772503cbbf001917) --- .../src/views/propertyeditors/textbox/textbox.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html index ff62629b1c..f8f9b18c7f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html @@ -4,7 +4,7 @@ class="umb-property-editor umb-textstring textstring" val-server="value" ng-required="model.validation.mandatory" - aria-required="model.validation.mandatory" + aria-required="{{model.validation.mandatory}}" aria-invalid="False" ng-trim="false" ng-keyup="model.change()" /> From ba63470833bee5da6949f5220ebbceb2667a1181 Mon Sep 17 00:00:00 2001 From: Michael Pontin Date: Fri, 6 Sep 2019 17:39:57 +0100 Subject: [PATCH 04/10] Added double check for the decimal label (cherry picked from commit 1c9ed847a16bb6494335844b09ea233d60fa366d) --- .../PropertyEditors/ValueConverters/LabelValueConverter.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Core/PropertyEditors/ValueConverters/LabelValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/LabelValueConverter.cs index 84baf226cf..eb461b4920 100644 --- a/src/Umbraco.Core/PropertyEditors/ValueConverters/LabelValueConverter.cs +++ b/src/Umbraco.Core/PropertyEditors/ValueConverters/LabelValueConverter.cs @@ -65,6 +65,8 @@ namespace Umbraco.Core.PropertyEditors.ValueConverters if (source is decimal sourceDecimal) return sourceDecimal; if (source is string sourceDecimalString) return decimal.TryParse(sourceDecimalString, NumberStyles.Any, CultureInfo.InvariantCulture, out var d) ? d : 0; + if (source is double sourceDouble) + return Convert.ToDecimal(sourceDouble); return (decimal) 0; case ValueTypes.Integer: if (source is int sourceInt) return sourceInt; From 9ed50613ed88b3c925abd85917e80c8c1ab162d1 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Sun, 8 Sep 2019 20:33:28 +0200 Subject: [PATCH 05/10] Make integer properties work with mandatory validation clientside (cherry picked from commit 26b40ebfd2cd3d454ef4e8c91be1d7a2ff448518) --- .../src/views/propertyeditors/integer/integer.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/integer/integer.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/integer/integer.html index 549a07319d..5c10790400 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/integer/integer.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/integer/integer.html @@ -5,6 +5,8 @@ pattern="[\-0-9]*" class="umb-property-editor umb-number" ng-model="model.value" + ng-required="model.validation.mandatory" + aria-required="{{model.validation.mandatory}}" id="{{model.alias}}" val-server="value" fix-number min="{{model.config.min}}" max="{{model.config.max}}" step="{{model.config.step}}" /> From 24691b4ce03fa47040375c2a0c5430147d2b5098 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Sun, 8 Sep 2019 20:26:45 +0200 Subject: [PATCH 06/10] Make decimal properties work with mandatory validation clientside (cherry picked from commit 0582e4f72ea503f6baf4589eca1b35e8bfa12822) --- .../src/views/propertyeditors/decimal/decimal.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/decimal/decimal.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/decimal/decimal.html index 28cb909cc0..d5560c8433 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/decimal/decimal.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/decimal/decimal.html @@ -5,6 +5,8 @@ pattern="[\-0-9]+([,\.][0-9]+)?" class="umb-property-editor umb-number" ng-model="model.value" + ng-required="model.validation.mandatory" + aria-required="{{model.validation.mandatory}}" val-server="value" fix-number min="{{model.config.min}}" max="{{model.config.max}}" step="{{model.config.step}}" /> From 234a0c45c0f7a9dcb46e207015dbca5f276b9ff7 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Sun, 15 Sep 2019 12:42:34 +0200 Subject: [PATCH 07/10] v8: umbCheckbox and umbRadiobutton fixes (#6302) --- .../components/forms/umbcheckbox.directive.js | 13 +++--- .../forms/umbradiobutton.directive.js | 41 +++++++++++-------- .../views/components/forms/umb-checkbox.html | 4 +- .../components/forms/umb-radiobutton.html | 15 +++---- 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js index 47381a15c0..f8643ad191 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js @@ -22,14 +22,14 @@ @param {boolean} model Set to true or false to set the checkbox to checked or unchecked. -@param {string} input-id Set the id of the checkbox. +@param {string} inputId Set the id of the checkbox. @param {string} value Set the value of the checkbox. @param {string} name Set the name of the checkbox. @param {string} text Set the text for the checkbox label. -@param {string} server-validation-field Set the val-server-field of the checkbox. +@param {string} serverValidationField Set the val-server-field of the checkbox. @param {boolean} disabled Set the checkbox to be disabled. @param {boolean} required Set the checkbox to be required. -@param {string} on-change Callback when the value of the checkbox changed by interaction. +@param {callback} onChange Callback when the value of the checkbox change by interaction. **/ @@ -40,8 +40,8 @@ function UmbCheckboxController($timeout) { var vm = this; - - vm.callOnChange = function() { + + if (vm.onChange) { $timeout(function() { vm.onChange({model:vm.model, value:vm.value}); }, 0); @@ -49,7 +49,6 @@ } - var component = { templateUrl: 'views/components/forms/umb-checkbox.html', controller: UmbCheckboxController, @@ -63,7 +62,7 @@ serverValidationField: "@", disabled: "<", required: "<", - onChange: "&" + onChange: "&?" } }; 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 351ba2fee2..933107527b 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 @@ -27,31 +27,40 @@ @param {string} text Set the text for the radiobutton label. @param {boolean} disabled Set the radiobutton to be disabled. @param {boolean} required Set the radiobutton to be required. +@param {callback} onChange Callback when the value of the radiobutton change by interaction. **/ (function () { 'use strict'; - function RadiobuttonDirective() { - var directive = { - restrict: 'E', - replace: true, - templateUrl: 'views/components/forms/umb-radiobutton.html', - scope: { - model: "=", - value: "@", - name: "@", - text: "@", - disabled: "=", - required: "=" - } - }; + function UmbRadiobuttonController($timeout) { - return directive; + var vm = this; + if (vm.onChange) { + $timeout(function () { + vm.onChange({ model: vm.model, value: vm.value }); + }, 0); + } + } - angular.module('umbraco.directives').directive('umbRadiobutton', RadiobuttonDirective); + var component = { + templateUrl: 'views/components/forms/umb-radiobutton.html', + controller: UmbRadiobuttonController, + controllerAs: 'vm', + bindings: { + model: "=", + value: "@", + name: "@", + text: "@", + disabled: "=", + required: "=", + onChange: "&?" + } + }; + + angular.module('umbraco.directives').component('umbRadiobutton', component); })(); diff --git a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html index d40263c6b6..2f90905c7d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html @@ -1,4 +1,4 @@ -