Fixes template drop down data and persisting an updated template.

This commit is contained in:
Shannon
2013-09-05 15:14:28 +10:00
parent 0026f7bd01
commit e4cb079ae1
4 changed files with 17 additions and 23 deletions

View File

@@ -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: "",

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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>