diff --git a/src/Umbraco.Core/Models/PreValueInnerListItem.cs b/src/Umbraco.Core/Models/PreValueInnerListItem.cs new file mode 100644 index 0000000000..d4480d56d3 --- /dev/null +++ b/src/Umbraco.Core/Models/PreValueInnerListItem.cs @@ -0,0 +1,13 @@ +using Newtonsoft.Json; + +namespace Umbraco.Core.Models +{ + public class PreValueInnerListItem + { + [JsonProperty("value")] + public object Value { get; set; } + + [JsonProperty("label")] + public string Label { get; set; } + } +} diff --git a/src/Umbraco.Core/PropertyEditors/PreValueField.cs b/src/Umbraco.Core/PropertyEditors/PreValueField.cs index 2b66f7a6a8..144333e449 100644 --- a/src/Umbraco.Core/PropertyEditors/PreValueField.cs +++ b/src/Umbraco.Core/PropertyEditors/PreValueField.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using Newtonsoft.Json; using Umbraco.Core.Manifest; +using Umbraco.Core.Models; namespace Umbraco.Core.PropertyEditors { @@ -86,5 +87,11 @@ namespace Umbraco.Core.PropertyEditors /// [JsonProperty("config")] public IDictionary Config { get; set; } + + /// + /// This allows for inner prevalues to be defined, for views such as radiobuttonlist, that require a selection. + /// + [JsonProperty("prevalues")] + public PreValueInnerListItem[] PreValues { get; set; } } -} \ No newline at end of file +} diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 0f5461eb35..337fad89dc 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -386,6 +386,7 @@ + diff --git a/src/Umbraco.Web.UI.Client/src/common/services/datatypehelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/datatypehelper.service.js index 3cde632d4b..264d15215f 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/datatypehelper.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/datatypehelper.service.js @@ -18,7 +18,8 @@ function dataTypeHelper() { description: preVals[i].description, label: preVals[i].label, view: preVals[i].view, - value: preVals[i].value + value: preVals[i].value, + prevalues: preVals[i].prevalues }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js index ad15167d18..329acc86f0 100644 --- a/src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js @@ -29,6 +29,7 @@ function DataTypeEditController($scope, $routeParams, $location, appState, navig view: preVals[i].view, value: preVals[i].value, config: preVals[i].config, + prevalues: preVals[i].prevalues }); } } diff --git a/src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs b/src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs index 6879701bde..bd1624e0b5 100644 --- a/src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs +++ b/src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Runtime.Serialization; +using Umbraco.Core.Models; namespace Umbraco.Web.Models.ContentEditing { @@ -40,5 +41,10 @@ namespace Umbraco.Web.Models.ContentEditing [DataMember(Name = "config")] public IDictionary Config { get; set; } + /// + /// This allows for inner prevalues to be defined, for views such as radiobuttonlist, that require a selection. + /// + [DataMember(Name = "prevalues")] + public PreValueInnerListItem[] PreValues { get; set; } } -} \ No newline at end of file +}