diff --git a/src/Umbraco.Core/Models/UserExtensions.cs b/src/Umbraco.Core/Models/UserExtensions.cs index 930d0fff04..a79aec5026 100644 --- a/src/Umbraco.Core/Models/UserExtensions.cs +++ b/src/Umbraco.Core/Models/UserExtensions.cs @@ -69,11 +69,11 @@ namespace Umbraco.Core.Models { return new[] { - gravatarUrl + "?s=30", - gravatarUrl + "?s=60", - gravatarUrl + "?s=90", - gravatarUrl + "?s=150", - gravatarUrl + "?s=300" + gravatarUrl + "&s=30", + gravatarUrl + "&s=60", + gravatarUrl + "&s=90", + gravatarUrl + "&s=150", + gravatarUrl + "&s=300" }; } diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbuserpreview.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbuserpreview.directive.js index 29db5f7238..634decfa3d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbuserpreview.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbuserpreview.directive.js @@ -12,7 +12,7 @@ replace: true, templateUrl: 'views/components/users/umb-user-preview.html', scope: { - avatar: "=?", + avatars: "=?", name: "=", allowRemove: "=?", onRemove: "&?" diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/userpicker/userpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/userpicker/userpicker.html index 33c4dd41d8..8a3300a5a6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/userpicker/userpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/userpicker/userpicker.html @@ -38,7 +38,7 @@
{{ user.name }}
- {{ value }}, + {{ userGroup.name }},
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/umb-avatar.html b/src/Umbraco.Web.UI.Client/src/views/components/umb-avatar.html index c589eabcf7..0bd72ba7a4 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/umb-avatar.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/umb-avatar.html @@ -1,6 +1,6 @@
- -
+ +
{{ initials }} ?
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-preview.html b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-preview.html index 7753376206..be2037209a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-preview.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-preview.html @@ -5,7 +5,8 @@ size="xs" color="secondary" name="{{name}}" - img-src="{{avatar}}"> + img-src="{{avatars[0]}}" + img-srcset="{{avatars[1]}} 2x, {{avatars[2]}} 3x">
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js index f92352c036..2f30857edb 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js @@ -15,6 +15,7 @@ vm.openMediaPicker = openMediaPicker; vm.openUserPicker = openUserPicker; vm.removeSelectedItem = removeSelectedItem; + vm.clearStartNode = clearStartNode; vm.getUserStateType = getUserStateType; function init() { @@ -64,11 +65,11 @@ vm.contentPicker = { title: "Select content start node", view: "contentpicker", - multiPicker: true, + hideSubmitButton: true, show: true, submit: function(model) { if(model.selection) { - vm.userGroup.startNodesContent = model.selection; + vm.userGroup.startContentId = model.selection[0]; } vm.contentPicker.show = false; vm.contentPicker = null; @@ -87,11 +88,11 @@ section: "media", treeAlias: "media", entityType: "media", - multiPicker: true, + hideSubmitButton: true, show: true, submit: function(model) { if(model.selection) { - vm.userGroup.startNodesMedia = model.selection; + vm.userGroup.startMediaId = model.selection[0]; } vm.contentPicker.show = false; vm.contentPicker = null; @@ -126,7 +127,17 @@ } function removeSelectedItem(index, selection) { - selection.splice(index, 1); + if(selection && selection.length > 0) { + selection.splice(index, 1); + } + } + + function clearStartNode(type) { + if (type === "content") { + vm.userGroup.startContentId = null; + } else if (type === "media") { + vm.userGroup.startMediaId = null; + } } function getUserStateType(state) { diff --git a/src/Umbraco.Web.UI.Client/src/views/users/group.html b/src/Umbraco.Web.UI.Client/src/views/users/group.html index 2e740fe207..e1a870972d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/group.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/group.html @@ -44,17 +44,18 @@ - + + on-remove="vm.clearStartNode('content')"> - + + on-remove="vm.clearStartNode('media')"> diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js index 43392cecf1..d5654cfd5a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js @@ -100,15 +100,21 @@ title: "Select content start node", view: "contentpicker", multiPicker: true, + selection: vm.user.startContentIds, show: true, submit: function (model) { + // select items if (model.selection) { - vm.user.startNodesContent = model.selection; + angular.forEach(model.selection, function(item){ + multiSelectItem(item, vm.user.startContentIds); + }); } + // close overlay vm.contentPicker.show = false; vm.contentPicker = null; }, close: function (oldModel) { + // close overlay vm.contentPicker.show = false; vm.contentPicker = null; } @@ -125,19 +131,40 @@ multiPicker: true, show: true, submit: function (model) { + // select items if (model.selection) { - vm.user.startNodesMedia = model.selection; + angular.forEach(model.selection, function(item){ + multiSelectItem(item, vm.user.startMediaIds); + }); } + // close overlay vm.mediaPicker.show = false; vm.mediaPicker = null; }, close: function (oldModel) { + // close overlay vm.mediaPicker.show = false; vm.mediaPicker = null; } }; } + function multiSelectItem(item, selection) { + var found = false; + // check if item is already in the selected list + if (selection.length > 0) { + angular.forEach(selection, function (selectedItem) { + if (selectedItem.udi === item.udi) { + found = true; + } + }); + } + // only add the selected item if it is not already selected + if (!found) { + selection.push(item); + } + } + function removeSelectedItem(index, selection) { selection.splice(index, 1); } diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.html b/src/Umbraco.Web.UI.Client/src/views/users/user.html index 5c9f6c9587..c9e60a2965 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.html @@ -126,7 +126,8 @@ color="secondary" size="xxl" name="{{vm.user.name}}" - img-src="{{vm.user.avatars[4]}}"> + img-src="{{vm.user.avatars[3]}}" + img-srcset="{{vm.user.avatars[4]}} 2x, {{vm.user.avatars[4]}} 3x"> + img-src="{{user.avatars[2]}}" + img-srcset="{{user.avatars[3]}} 2x, {{user.avatars[4]}} 3x">
@@ -232,7 +233,8 @@ size="xs" color="secondary" name="{{user.name}}" - img-src="{{user.avatars[0]}}"> + img-src="{{user.avatars[0]}}" + img-srcset="{{user.avatars[1]}} 2x, {{user.avatars[2]}} 3x">
{{user.name}}