mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-11-28 09:22:55 +08:00
Fixing Json escaping in shape tracing
--HG-- branch : 1.x
This commit is contained in:
@@ -126,6 +126,11 @@ namespace Orchard.DesignerTools.Services {
|
|||||||
foreach (var member in members) {
|
foreach (var member in members) {
|
||||||
if (o is ContentItem && member.Name == "Parts") {
|
if (o is ContentItem && member.Name == "Parts") {
|
||||||
foreach (var part in ((ContentItem) o).Parts) {
|
foreach (var part in ((ContentItem) o).Parts) {
|
||||||
|
// ignore contentparts like ContentPart<ContentItemVersionRecord>
|
||||||
|
if(part.GetType().IsGenericType) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
SafeCall(() => Dump(part, part.PartDefinition.Name));
|
SafeCall(() => Dump(part, part.PartDefinition.Name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace Orchard.DesignerTools.Services {
|
|||||||
|
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
ConvertToJSon(dump, sb);
|
ConvertToJSon(dump, sb);
|
||||||
shape.Dump = sb.ToString();
|
shape._Dump = sb.ToString();
|
||||||
|
|
||||||
shape.Template = null;
|
shape.Template = null;
|
||||||
shape.OriginalTemplate = descriptor.BindingSource;
|
shape.OriginalTemplate = descriptor.BindingSource;
|
||||||
@@ -159,26 +159,29 @@ namespace Orchard.DesignerTools.Services {
|
|||||||
|
|
||||||
switch (x.Name.ToString()) {
|
switch (x.Name.ToString()) {
|
||||||
case "ul" :
|
case "ul" :
|
||||||
|
var first = true;
|
||||||
foreach(var li in x.Elements()) {
|
foreach(var li in x.Elements()) {
|
||||||
|
if (!first) sb.Append(",");
|
||||||
ConvertToJSon(li, sb);
|
ConvertToJSon(li, sb);
|
||||||
sb.Append(",");
|
first = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "li":
|
case "li":
|
||||||
var name = x.Element("h1").Value;
|
var name = x.Element("h1").Value;
|
||||||
var value = x.Element("span").Value;
|
var value = x.Element("span").Value;
|
||||||
|
|
||||||
sb.AppendFormat("name: \"{0}\", ", FormatJsonValue(name));
|
sb.AppendFormat("\"name\": \"{0}\", ", FormatJsonValue(name));
|
||||||
sb.AppendFormat("value: \"{0}\"", FormatJsonValue(value));
|
sb.AppendFormat("\"value\": \"{0}\"", FormatJsonValue(value));
|
||||||
|
|
||||||
var ul = x.Element("ul");
|
var ul = x.Element("ul");
|
||||||
if (ul != null && ul.Descendants().Any()) {
|
if (ul != null && ul.Descendants().Any()) {
|
||||||
sb.Append(", children: [");
|
sb.Append(", \"children\": [");
|
||||||
|
first = true;
|
||||||
foreach (var li in ul.Elements()) {
|
foreach (var li in ul.Elements()) {
|
||||||
sb.Append("{ ");
|
sb.Append(first ? "{ " : ", {");
|
||||||
ConvertToJSon(li, sb);
|
ConvertToJSon(li, sb);
|
||||||
sb.Append(" }");
|
sb.Append(" }");
|
||||||
sb.Append(", ");
|
first = false;
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
}
|
}
|
||||||
@@ -189,7 +192,7 @@ namespace Orchard.DesignerTools.Services {
|
|||||||
|
|
||||||
private static string FormatJsonValue(string value) {
|
private static string FormatJsonValue(string value) {
|
||||||
// replace " by \" in json strings
|
// 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) {
|
private static string FormatShapeFilename(string shape, string shapeType, string displayType, string themePrefix, string extension) {
|
||||||
|
|||||||
@@ -40,6 +40,6 @@
|
|||||||
Wrappers: Model.Metadata.Wrappers,
|
Wrappers: Model.Metadata.Wrappers,
|
||||||
ChildContent: Model.Metadata.ChildContent,
|
ChildContent: Model.Metadata.ChildContent,
|
||||||
ShapeId: Model.ShapeId,
|
ShapeId: Model.ShapeId,
|
||||||
Dump: Model.Dump
|
Dump: Model._Dump
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user