From f1197a6db2bf1d667c02802bdb41e70634d12e0b Mon Sep 17 00:00:00 2001 From: elitsa Date: Thu, 27 Dec 2018 13:23:20 +0100 Subject: [PATCH 01/84] Adding shortcuts for closing an infinite editor through Escape key. --- .../common/infiniteeditors/compositions/compositions.html | 1 + .../src/views/common/infiniteeditors/copy/copy.html | 1 + .../common/infiniteeditors/datatypepicker/datatypepicker.html | 3 ++- .../infiniteeditors/datatypesettings/datatypesettings.html | 3 ++- .../src/views/common/infiniteeditors/embed/embed.html | 1 + .../views/common/infiniteeditors/iconpicker/iconpicker.html | 3 ++- .../infiniteeditors/insertcodesnippet/insertcodesnippet.html | 1 + .../views/common/infiniteeditors/insertfield/insertfield.html | 1 + .../views/common/infiniteeditors/itempicker/itempicker.html | 1 + .../views/common/infiniteeditors/linkpicker/linkpicker.html | 1 + .../infiniteeditors/membergrouppicker/membergrouppicker.html | 1 + .../src/views/common/infiniteeditors/move/move.html | 1 + .../infiniteeditors/nodepermissions/nodepermissions.html | 1 + .../infiniteeditors/propertysettings/propertysettings.html | 1 + .../common/infiniteeditors/querybuilder/querybuilder.html | 3 ++- .../src/views/common/infiniteeditors/rollback/rollback.html | 3 ++- .../common/infiniteeditors/sectionpicker/sectionpicker.html | 3 ++- .../infiniteeditors/templatesections/templatesections.html | 1 + .../views/common/infiniteeditors/treepicker/treepicker.html | 1 + .../infiniteeditors/usergrouppicker/usergrouppicker.html | 3 ++- .../views/common/infiniteeditors/userpicker/userpicker.html | 3 ++- .../stylesheets/infiniteeditors/richtextrule/richtextrule.html | 1 + 22 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/compositions/compositions.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/compositions/compositions.html index 84fbab7cb2..bf74431d96 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/compositions/compositions.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/compositions/compositions.html @@ -110,6 +110,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> @@ -138,4 +139,4 @@ - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.html index b4ff894c4d..620f9f1731 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.html @@ -52,6 +52,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/embed/embed.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/embed/embed.html index f14fb364ab..e48ec84b25 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/embed/embed.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/embed/embed.html @@ -54,6 +54,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> @@ -75,4 +76,4 @@ - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertcodesnippet/insertcodesnippet.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertcodesnippet/insertcodesnippet.html index 2ccbf11cc1..ea247c77e5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertcodesnippet/insertcodesnippet.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertcodesnippet/insertcodesnippet.html @@ -47,6 +47,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertfield/insertfield.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertfield/insertfield.html index 56bd498fd1..16f4bfb919 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertfield/insertfield.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/insertfield/insertfield.html @@ -207,6 +207,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html index a50ab4242d..71fcf2f493 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html @@ -120,6 +120,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/propertysettings/propertysettings.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/propertysettings/propertysettings.html index df5bbe8ca5..4c7f2613b5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/propertysettings/propertysettings.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/propertysettings/propertysettings.html @@ -155,6 +155,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/querybuilder/querybuilder.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/querybuilder/querybuilder.html index 4b6c6cc179..725871337d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/querybuilder/querybuilder.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/querybuilder/querybuilder.html @@ -193,6 +193,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> @@ -209,4 +210,4 @@ - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/rollback/rollback.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/rollback/rollback.html index b5b925b266..d7ba57c1af 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/rollback/rollback.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/rollback/rollback.html @@ -86,6 +86,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/sectionpicker/sectionpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/sectionpicker/sectionpicker.html index 8ca1993dcc..2e88bf709c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/sectionpicker/sectionpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/sectionpicker/sectionpicker.html @@ -38,6 +38,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/templatesections/templatesections.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/templatesections/templatesections.html index d6e3996287..5b946976d7 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/templatesections/templatesections.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/templatesections/templatesections.html @@ -87,6 +87,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/usergrouppicker/usergrouppicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/usergrouppicker/usergrouppicker.html index e97d80648b..e2ae1ab524 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/usergrouppicker/usergrouppicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/usergrouppicker/usergrouppicker.html @@ -84,6 +84,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/userpicker/userpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/userpicker/userpicker.html index bc6c8b5761..e39d693b47 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/userpicker/userpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/userpicker/userpicker.html @@ -74,6 +74,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> - \ No newline at end of file + diff --git a/src/Umbraco.Web.UI.Client/src/views/stylesheets/infiniteeditors/richtextrule/richtextrule.html b/src/Umbraco.Web.UI.Client/src/views/stylesheets/infiniteeditors/richtextrule/richtextrule.html index a36f3ef6a2..557341fe1b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/stylesheets/infiniteeditors/richtextrule/richtextrule.html +++ b/src/Umbraco.Web.UI.Client/src/views/stylesheets/infiniteeditors/richtextrule/richtextrule.html @@ -53,6 +53,7 @@ type="button" button-style="link" label-key="general_close" + shortcut="esc" action="vm.close()"> Date: Thu, 3 Jan 2019 16:38:37 +0100 Subject: [PATCH 02/84] Fix for wrong sorting overload in MediaService (#3948) --- src/Umbraco.Core/Services/MediaService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Core/Services/MediaService.cs b/src/Umbraco.Core/Services/MediaService.cs index d1f11c619a..b95a8a258c 100644 --- a/src/Umbraco.Core/Services/MediaService.cs +++ b/src/Umbraco.Core/Services/MediaService.cs @@ -509,7 +509,7 @@ namespace Umbraco.Core.Services public IEnumerable GetPagedChildren(int id, long pageIndex, int pageSize, out long totalChildren, string orderBy, Direction orderDirection, bool orderBySystemField, string filter) { - return GetPagedChildren(id, pageIndex, pageSize, out totalChildren, orderBy, orderDirection, true, filter, null); + return GetPagedChildren(id, pageIndex, pageSize, out totalChildren, orderBy, orderDirection, orderBySystemField, filter, null); } /// From cc6c16894c288f422140482f55bd773e01df08f8 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Sun, 6 Jan 2019 19:11:58 +0100 Subject: [PATCH 03/84] Safeguard the tags value converter against empty tags --- .../ValueConverters/TagsValueConverter.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs index b085748487..204fde0c2e 100644 --- a/src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs +++ b/src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs @@ -42,16 +42,22 @@ namespace Umbraco.Core.PropertyEditors.ValueConverters public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview) { + var sourceAsString = source?.ToString(); + if(sourceAsString.IsNullOrWhiteSpace()) + { + return new string[0]; + } + // if Json storage type deserialzie and return as string array if (JsonStorageType(propertyType.DataTypeId)) { - var jArray = JsonConvert.DeserializeObject(source.ToString()); + var jArray = JsonConvert.DeserializeObject(sourceAsString); return jArray.ToObject(); } // Otherwise assume CSV storage type and return as string array var csvTags = - source.ToString() + sourceAsString .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries) .ToArray(); return csvTags; From 4564623899fb265f5dc1cb62ddbf7d43a169e4e1 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 3 Jan 2019 21:04:59 +0100 Subject: [PATCH 04/84] Don't use a hardcoded folder type alias to determine folder types in the list view --- .../views/propertyeditors/listview/listview.controller.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js index 118f1b81d2..df7a574c49 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js @@ -1,4 +1,4 @@ -function listViewController($rootScope, $scope, $routeParams, $injector, $cookieStore, notificationsService, iconHelper, dialogService, editorState, localizationService, $location, appState, $timeout, $q, mediaResource, listViewHelper, userService, navigationService, treeService) { +function listViewController($rootScope, $scope, $routeParams, $injector, $cookieStore, notificationsService, iconHelper, dialogService, editorState, localizationService, $location, appState, $timeout, $q, mediaResource, listViewHelper, userService, navigationService, treeService, mediaHelper) { //this is a quick check to see if we're in create mode, if so just exit - we cannot show children for content // that isn't created yet, if we continue this will use the parent id in the route params which isn't what @@ -269,10 +269,12 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie $scope.listViewResultSet = data; //update all values for display + var section = appState.getSectionState("currentSection"); if ($scope.listViewResultSet.items) { _.each($scope.listViewResultSet.items, function (e, index) { setPropertyValues(e); - if (e.contentTypeAlias === 'Folder') { + // create the folders collection (only for media list views) + if (section === "media" && !mediaHelper.hasFilePropertyType(e)) { $scope.folders.push(e); } }); From d53d0b4271110d49dfc5bcaadff1c68ef6506385 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 7 Jan 2019 12:53:31 +0100 Subject: [PATCH 05/84] Add disabled state to toggle (#3967) (cherry picked from commit d231db8ef25455c2d1f291b9b707e4d95a251a9f) # Conflicts: # src/Umbraco.Web.UI.Client/src/views/languages/edit.html --- .../components/buttons/umbtoggle.directive.js | 4 ++++ .../src/less/components/buttons/umb-toggle.less | 10 ++++++++-- .../src/less/components/users/umb-permission.less | 6 ++++++ .../src/views/components/buttons/umb-toggle.html | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js index e3c4cbf40c..c2c9ec068b 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js @@ -18,6 +18,7 @@ @param {boolean} checked Set to true or false to toggle the switch. +@param {boolean} disabled Set to true or false to disable the switch. @param {callback} onClick The function which should be called when the toggle is clicked. @param {string=} showLabels Set to true or false to show a "On" or "Off" label next to the switch. @param {string=} labelOn Set a custom label for when the switched is turned on. It will default to "On". @@ -115,6 +118,7 @@ templateUrl: 'views/components/buttons/umb-toggle.html', scope: { checked: "=", + disabled: "=", onClick: "&", labelOn: "@?", labelOff: "@?", diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less index 150963cbb2..4c30ae583c 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-toggle.less @@ -28,7 +28,8 @@ .umb-toggle__toggle { cursor: pointer; - display: inline-block; + align-items: center; + display: flex; width: 48px; height: 24px; background: @gray-8; @@ -41,6 +42,11 @@ background-color: @green; } +.umb-toggle--disabled .umb-toggle__toggle { + cursor: not-allowed; + opacity: 0.8; +} + .umb-toggle--checked .umb-toggle__handler { transform: translate3d(24px, 0, 0) rotate(0); } @@ -63,7 +69,7 @@ .umb-toggle__icon { position: absolute; - top: 3px; + line-height: 1em; text-decoration: none; transition: all 0.2s ease; } diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-permission.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-permission.less index 9447a48217..5855fbd528 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-permission.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-permission.less @@ -21,6 +21,12 @@ cursor: pointer; } +.umb-permission--disabled .umb-permission__toggle, +.umb-permission--disabled .umb-permission__content { + cursor: not-allowed; + opacity: 0.8; +} + .umb-permission__description { font-size: 13px; color: @gray-5; diff --git a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html index bc5c114bb6..c8039448fd 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-toggle.html @@ -1,4 +1,4 @@ -