Getting the media picker wired up for udi

This commit is contained in:
Shannon
2017-01-30 16:54:01 +11:00
parent 09085e3bcf
commit 0078a5d8cc
5 changed files with 58 additions and 56 deletions

View File

@@ -204,11 +204,9 @@ namespace Umbraco.Core
/// </summary>
public const string MediaPicker2Alias = "Umbraco.MediaPicker2";
[Obsolete("This is an obsoleted picker, use MultipleMediaPicker2Alias instead")]
[Obsolete("This is an obsoleted picker, use MemberPicker2Alias instead")]
public const string MultipleMediaPickerAlias = "Umbraco.MultipleMediaPicker";
public const string MultipleMediaPicker2Alias = "Umbraco.MultipleMediaPicker2";
/// <summary>
/// Guid for the Member Picker datatype.
/// </summary>

View File

@@ -40,7 +40,13 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
}
$scope.images.push(media);
$scope.ids.push(media.id);
if ($scope.model.config.idType === "udi") {
$scope.ids.push(media.udi);
}
else {
$scope.ids.push(media.id);
}
}
});
@@ -81,9 +87,12 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
$scope.images.push(media);
//TODO: Determine if we are storing UDI vs INT
$scope.ids.push(media.id);
if ($scope.model.config.idType === "udi") {
$scope.ids.push(media.udi);
}
else {
$scope.ids.push(media.id);
}
});
$scope.sync();

View File

@@ -6,8 +6,10 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.Models.Validation;
using Umbraco.Core.Serialization;
namespace Umbraco.Web.Models.ContentEditing
{
@@ -29,6 +31,7 @@ namespace Umbraco.Web.Models.ContentEditing
[DataMember(Name = "udi")]
[ReadOnly(true)]
[JsonConverter(typeof(UdiJsonConverter))]
public Udi Udi { get; set; }
[DataMember(Name = "icon")]

View File

@@ -16,6 +16,26 @@ namespace Umbraco.Web.PropertyEditors
[PropertyEditor(Constants.PropertyEditors.MediaPickerAlias, "(Obsolete) Media Picker", PropertyEditorValueTypes.Integer, "mediapicker", Group = "media", Icon = "icon-picture", IsDeprecated = true)]
public class MediaPickerPropertyEditor : MediaPickerPropertyEditor2
{
public MediaPickerPropertyEditor()
{
InternalPreValues = new Dictionary<string, object>
{
{"multiPicker", "0"},
{"onlyImages", "0"},
{"idType", "id"}
};
}
protected override PreValueEditor CreatePreValueEditor()
{
return new SingleMediaPickerPreValueEditor();
}
internal class SingleMediaPickerPreValueEditor : PreValueEditor
{
[PreValueField("startNodeId", "Start node", "mediapicker")]
public int StartNodeId { get; set; }
}
}
/// <summary>
@@ -28,38 +48,36 @@ namespace Umbraco.Web.PropertyEditors
{
InternalPreValues = new Dictionary<string, object>
{
{"multiPicker", "0"},
{"onlyImages", "0"}
{"idType", "udi"}
};
}
protected IDictionary<string, object> InternalPreValues;
protected override PropertyValueEditor CreateValueEditor()
{
return new SingleMediaPickerValueEditor();
}
public override IDictionary<string, object> DefaultPreValues
{
get { return InternalPreValues; }
set { InternalPreValues = value; }
}
protected override PreValueEditor CreatePreValueEditor()
{
return new SingleMediaPickerPreValueEditor();
}
protected override PreValueEditor CreatePreValueEditor()
{
return new MediaPickerPreValueEditor();
}
internal class MediaPickerPreValueEditor : PreValueEditor
{
[PreValueField("multiPicker", "Pick multiple items", "boolean")]
public bool MultiPicker { get; set; }
[PreValueField("onlyImages", "Pick only images", "boolean", Description = "Only let the editor choose images from media.")]
public bool OnlyImages { get; set; }
internal class SingleMediaPickerValueEditor : PropertyValueEditor
{
override
}
internal class SingleMediaPickerPreValueEditor : PreValueEditor
{
[PreValueField("disableFolderSelect", "Disable folder select", "boolean", Description = "Do not allow folders to be picked.")]
public bool DisableFolderSelect { get; set; }
[PreValueField("startNodeId", "Start node", "mediapicker")]
public int StartNodeId { get; set; }
public int StartNodeId { get; set; }
}
}
}

View File

@@ -7,37 +7,11 @@ namespace Umbraco.Web.PropertyEditors
[Obsolete("This editor is obsolete, use MultipleMediaPickerPropertyEditor2 instead which stores UDI")]
[PropertyEditor(Constants.PropertyEditors.MultipleMediaPickerAlias, "(Obsolete) Media Picker", "mediapicker", Group = "media", Icon = "icon-pictures-alt-2", IsDeprecated = true)]
public class MultipleMediaPickerPropertyEditor : MediaPickerPropertyEditor
{
}
[PropertyEditor(Constants.PropertyEditors.MultipleMediaPicker2Alias, "Media Picker", PropertyEditorValueTypes.Text, "mediapicker", Group = "media", Icon = "icon-pictures-alt-2", IsDeprecated = true)]
public class MultipleMediaPickerPropertyEditor2 : MediaPickerPropertyEditor2
{
public MultipleMediaPickerPropertyEditor2()
{
public MultipleMediaPickerPropertyEditor()
{
//clear the pre-values so it defaults to a multiple picker.
InternalPreValues.Clear();
}
protected override PreValueEditor CreatePreValueEditor()
{
return new MediaPickerPreValueEditor();
}
internal class MediaPickerPreValueEditor : PreValueEditor
{
[PreValueField("multiPicker", "Pick multiple items", "boolean")]
public bool MultiPicker { get; set; }
[PreValueField("onlyImages", "Pick only images", "boolean", Description = "Only let the editor choose images from media.")]
public bool OnlyImages { get; set; }
[PreValueField("disableFolderSelect", "Disable folder select", "boolean", Description = "Do not allow folders to be picked.")]
public bool DisableFolderSelect { get; set; }
[PreValueField("startNodeId", "Start node", "mediapicker")]
public int StartNodeId { get; set; }
}
}
}
}