Fixes template drop down data and persisting an updated template.
This commit is contained in:
@@ -145,19 +145,19 @@ angular.module('umbraco.mocks').
|
||||
view: "dropdown",
|
||||
alias: "_umb_template",
|
||||
config: {
|
||||
items: [
|
||||
{ alias: "", name: "-- Choose template --" },
|
||||
{ alias: "myTemplate", name: "My Templates" },
|
||||
{ alias: "home", name: "Home Page" },
|
||||
{ alias: "news", name: "News Page" }
|
||||
]
|
||||
items: {
|
||||
"" : "-- Choose template --",
|
||||
"myTemplate" : "My Templates",
|
||||
"home" : "Home Page",
|
||||
"news" : "News Page"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Link to document',
|
||||
value: ["/testing" + id, "http://localhost/testing" + id, "http://mydomain.com/testing" + id].join(),
|
||||
view: "urllist",
|
||||
alias: "_umb_template"
|
||||
alias: "_umb_urllist"
|
||||
},
|
||||
{
|
||||
alias: "test", label: "Stuff", view: "test", value: "",
|
||||
|
||||
@@ -236,9 +236,7 @@ function umbDataFormatter() {
|
||||
saveModel.releaseDate = prop.value;
|
||||
break;
|
||||
case "_umb_template":
|
||||
//this will be a json string
|
||||
var json = angular.toJson(prop.value);
|
||||
saveModel.templateAlias = json.alias;
|
||||
saveModel.templateAlias = prop.value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,17 +184,19 @@ namespace Umbraco.Web.Editors
|
||||
contentItem.PersistedContent.ReleaseDate = contentItem.ReleaseDate;
|
||||
//only set the template if it didn't change
|
||||
var templateChanged = (contentItem.PersistedContent.Template == null && contentItem.TemplateAlias.IsNullOrWhiteSpace() == false)
|
||||
|| (contentItem.PersistedContent.Template != null && contentItem.PersistedContent.Template.Alias != contentItem.TemplateAlias);
|
||||
|| (contentItem.PersistedContent.Template != null && contentItem.PersistedContent.Template.Alias != contentItem.TemplateAlias)
|
||||
|| (contentItem.PersistedContent.Template != null && contentItem.TemplateAlias.IsNullOrWhiteSpace());
|
||||
if (templateChanged)
|
||||
{
|
||||
var template = Services.FileService.GetTemplate(contentItem.TemplateAlias);
|
||||
if (template == null)
|
||||
if (template == null && contentItem.TemplateAlias.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
//ModelState.AddModelError("Template", "No template exists with the specified alias: " + contentItem.TemplateAlias);
|
||||
LogHelper.Warn<ContentController>("No template exists with the specified alias: " + contentItem.TemplateAlias);
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: this could be null if there was a template and the posted template is null, this should remove the assigned template
|
||||
contentItem.PersistedContent.Template = template;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,8 +88,11 @@ namespace Umbraco.Web.Models.Mapping
|
||||
private static void MapGenericCustomProperties(IContent content, ContentItemDisplay display)
|
||||
{
|
||||
//fill in the template config to be passed to the template drop down.
|
||||
var templateItemConfig = new List<AllowedTemplate> {new AllowedTemplate {Alias = "", Name = "Choose..."}};
|
||||
templateItemConfig.AddRange(content.ContentType.AllowedTemplates.Select(t => new AllowedTemplate {Alias = t.Alias, Name = t.Name}));
|
||||
var templateItemConfig = new Dictionary<string, string> {{"", "Choose..."}};
|
||||
foreach (var t in content.ContentType.AllowedTemplates)
|
||||
{
|
||||
templateItemConfig.Add(t.Alias, t.Name);
|
||||
}
|
||||
|
||||
TabsAndPropertiesResolver.MapGenericProperties(
|
||||
content, display,
|
||||
@@ -127,15 +130,6 @@ namespace Umbraco.Web.Models.Mapping
|
||||
});
|
||||
}
|
||||
|
||||
[DataContract(Name = "template", Namespace = "")]
|
||||
private class AllowedTemplate
|
||||
{
|
||||
[DataMember(Name = "alias")]
|
||||
public string Alias { get; set; }
|
||||
[DataMember(Name = "name")]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the published date value for the IContent object
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user