diff --git a/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ObjectDumper.cs b/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ObjectDumper.cs index 750d965c0..b46486d44 100644 --- a/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ObjectDumper.cs +++ b/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ObjectDumper.cs @@ -126,6 +126,11 @@ namespace Orchard.DesignerTools.Services { foreach (var member in members) { if (o is ContentItem && member.Name == "Parts") { foreach (var part in ((ContentItem) o).Parts) { + // ignore contentparts like ContentPart + if(part.GetType().IsGenericType) { + continue; + } + SafeCall(() => Dump(part, part.PartDefinition.Name)); } } diff --git a/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ShapeTracingFactory.cs b/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ShapeTracingFactory.cs index 7bb716dc6..268459701 100644 --- a/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ShapeTracingFactory.cs +++ b/src/Orchard.Web/Modules/Orchard.DesignerTools/Services/ShapeTracingFactory.cs @@ -100,7 +100,7 @@ namespace Orchard.DesignerTools.Services { var sb = new StringBuilder(); ConvertToJSon(dump, sb); - shape.Dump = sb.ToString(); + shape._Dump = sb.ToString(); shape.Template = null; shape.OriginalTemplate = descriptor.BindingSource; @@ -159,26 +159,29 @@ namespace Orchard.DesignerTools.Services { switch (x.Name.ToString()) { case "ul" : + var first = true; foreach(var li in x.Elements()) { + if (!first) sb.Append(","); ConvertToJSon(li, sb); - sb.Append(","); + first = false; } break; case "li": var name = x.Element("h1").Value; var value = x.Element("span").Value; - sb.AppendFormat("name: \"{0}\", ", FormatJsonValue(name)); - sb.AppendFormat("value: \"{0}\"", FormatJsonValue(value)); + sb.AppendFormat("\"name\": \"{0}\", ", FormatJsonValue(name)); + sb.AppendFormat("\"value\": \"{0}\"", FormatJsonValue(value)); var ul = x.Element("ul"); if (ul != null && ul.Descendants().Any()) { - sb.Append(", children: ["); + sb.Append(", \"children\": ["); + first = true; foreach (var li in ul.Elements()) { - sb.Append("{ "); + sb.Append(first ? "{ " : ", {"); ConvertToJSon(li, sb); sb.Append(" }"); - sb.Append(", "); + first = false; } sb.Append("]"); } @@ -189,7 +192,7 @@ namespace Orchard.DesignerTools.Services { private static string FormatJsonValue(string value) { // replace " by \" in json strings - return value.Replace("\"", @"\"""); + return value.Replace(@"\", @"\\").Replace("\"", @"\""").Replace("\r\n", @"\n").Replace("\n", @"\n"); } private static string FormatShapeFilename(string shape, string shapeType, string displayType, string themePrefix, string extension) { diff --git a/src/Orchard.Web/Modules/Orchard.DesignerTools/Views/ShapeTracingWrapper.cshtml b/src/Orchard.Web/Modules/Orchard.DesignerTools/Views/ShapeTracingWrapper.cshtml index 90d79a166..da5fc6520 100644 --- a/src/Orchard.Web/Modules/Orchard.DesignerTools/Views/ShapeTracingWrapper.cshtml +++ b/src/Orchard.Web/Modules/Orchard.DesignerTools/Views/ShapeTracingWrapper.cshtml @@ -40,6 +40,6 @@ Wrappers: Model.Metadata.Wrappers, ChildContent: Model.Metadata.ChildContent, ShapeId: Model.ShapeId, - Dump: Model.Dump + Dump: Model._Dump )); }