mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-27 04:19:04 +08:00
Merge branch '1.9-int' into feature/layoutzones
Conflicts: src/Orchard.Web/Modules/Orchard.Layouts/Scripts/Models.min.js src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/Column.cshtml src/Orchard.Web/Modules/Orchard.Search/Handlers/SearchSettingsPartHandler.cs
This commit is contained in:
@@ -6,6 +6,13 @@ using Orchard.Layouts.Framework.Elements;
|
||||
|
||||
namespace Orchard.Layouts.Helpers {
|
||||
public static class TagBuilderExtensions {
|
||||
|
||||
/// <summary>
|
||||
/// Creates an <see cref="OrchardTagBuilder"/> and adds the ID, Class and Style attributes from the shape.Element property.
|
||||
/// </summary>
|
||||
public static OrchardTagBuilder CreateElementTagBuilder(dynamic shape, string tag = "div") {
|
||||
return AddCommonElementAttributes(new OrchardTagBuilder(tag), shape);
|
||||
}
|
||||
|
||||
public static OrchardTagBuilder AddCommonElementAttributes(this OrchardTagBuilder tagBuilder, dynamic shape) {
|
||||
var attributes = GetCommonElementAttributes(shape);
|
||||
|
||||
@@ -1,34 +1,10 @@
|
||||
var LayoutEditor;
|
||||
(function ($, LayoutEditor) {
|
||||
|
||||
var decode = function(value) {
|
||||
var decode = function (value) {
|
||||
return !!value ? decodeURIComponent(value.replace(/\+/g, "%20")) : null;
|
||||
};
|
||||
|
||||
var decodeGraph = function (graph) {
|
||||
|
||||
if (!!graph.html) {
|
||||
graph.html = decode(graph.html);
|
||||
}
|
||||
|
||||
if (!!graph.data) {
|
||||
var items = $.deserialize(graph.data);
|
||||
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
items[i] = decode(items[i]);
|
||||
}
|
||||
|
||||
graph.data = $.param(items);
|
||||
}
|
||||
|
||||
if (!!graph.children) {
|
||||
for (var i = 0; i < graph.children.length; i++) {
|
||||
decodeGraph(graph.children[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
LayoutEditor.decode = decode;
|
||||
LayoutEditor.decodeLayoutGraph = decodeGraph;
|
||||
|
||||
})(jQuery, LayoutEditor || (LayoutEditor = {}));
|
||||
@@ -274,7 +274,9 @@ angular
|
||||
$scope.$root.editElement(receivedElement).then(function (args) {
|
||||
if (!args.cancel) {
|
||||
receivedElement.data = args.element.data;
|
||||
receivedElement.setHtml(args.element.html);
|
||||
|
||||
if (receivedElement.setHtml)
|
||||
receivedElement.setHtml(args.element.html);
|
||||
}
|
||||
$timeout(function () {
|
||||
if (!!args.cancel)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -241,7 +241,9 @@
|
||||
$scope.$root.editElement(receivedElement).then(function (args) {
|
||||
if (!args.cancel) {
|
||||
receivedElement.data = args.element.data;
|
||||
receivedElement.setHtml(args.element.html);
|
||||
|
||||
if (receivedElement.setHtml)
|
||||
receivedElement.setHtml(args.element.html);
|
||||
}
|
||||
$timeout(function () {
|
||||
if (!!args.cancel)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -13,14 +13,14 @@ namespace Orchard.Layouts.Services {
|
||||
// Consider combining this class with DefaultContentDisplay to reuse shared code, for example by inheriting from a common base class.
|
||||
public abstract class ContentDisplayBase : Component {
|
||||
private readonly IShapeFactory _shapeFactory;
|
||||
private readonly Lazy<IShapeTableLocator> _shapeTableLocator;
|
||||
private readonly Lazy<IShapeTableLocator> _shapeTableLocator;
|
||||
private readonly RequestContext _requestContext;
|
||||
private readonly IVirtualPathProvider _virtualPathProvider;
|
||||
private readonly IWorkContextAccessor _workContextAccessor;
|
||||
|
||||
protected ContentDisplayBase(
|
||||
IShapeFactory shapeFactory,
|
||||
Lazy<IShapeTableLocator> shapeTableLocator,
|
||||
Lazy<IShapeTableLocator> shapeTableLocator,
|
||||
RequestContext requestContext,
|
||||
IVirtualPathProvider virtualPathProvider,
|
||||
IWorkContextAccessor workContextAccessor) {
|
||||
@@ -109,9 +109,9 @@ namespace Orchard.Layouts.Services {
|
||||
private void BindPlacement(BuildShapeContext context, string displayType, string stereotype) {
|
||||
context.FindPlacement = (partShapeType, differentiator, defaultLocation) => {
|
||||
var workContext = _workContextAccessor.GetContext(_requestContext.HttpContext);
|
||||
var theme = workContext.CurrentTheme;
|
||||
var shapeTable = _shapeTableLocator.Value.Lookup(theme.Id);
|
||||
var request = _requestContext.HttpContext.Request;
|
||||
var shapeTable = workContext.HttpContext != null
|
||||
? _shapeTableLocator.Value.Lookup(workContext.CurrentTheme.Id)
|
||||
: _shapeTableLocator.Value.Lookup(null);
|
||||
|
||||
ShapeDescriptor descriptor;
|
||||
if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) {
|
||||
|
||||
@@ -43,10 +43,9 @@
|
||||
}
|
||||
});
|
||||
(function() {
|
||||
var editorConfig = @Html.Raw(Model.ConfigurationData);
|
||||
var editorCanvasData = @Html.Raw(Model.Data);
|
||||
var editorConfig = JSON.parse(LayoutEditor.decode("@Html.Raw(Url.Encode(Model.ConfigurationData))"));
|
||||
var editorCanvasData = JSON.parse(LayoutEditor.decode("@Html.Raw(Url.Encode(Model.Data))"));
|
||||
|
||||
LayoutEditor.decodeLayoutGraph(editorCanvasData);
|
||||
window.layoutEditor = new LayoutEditor.Editor(editorConfig, editorCanvasData);
|
||||
})(jQuery);
|
||||
</script>
|
||||
|
||||
@@ -43,11 +43,9 @@
|
||||
html: LayoutEditor.decode("@Url.Encode(Model.ElementHtml)"),
|
||||
isTemplated: false
|
||||
},
|
||||
elementEditorModel: @Html.Raw(Model.ElementEditorModel.ToJson())
|
||||
elementEditorModel: LayoutEditor.decode("@Html.Raw(Url.Encode(Model.ElementEditorModel.ToJson()))")
|
||||
};
|
||||
|
||||
LayoutEditor.decodeLayoutGraph(payload.element);
|
||||
LayoutEditor.decodeLayoutGraph(payload.elementEditorModel);
|
||||
window.parent.currentDialog.trigger("command", payload);
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
// Only render the surrounding div if there are any attributes to be rendered.
|
||||
var commonAttributes = (IDictionary<string, object>)TagBuilderExtensions.GetCommonElementAttributes(Model);
|
||||
var tagBuilder = commonAttributes.Any() ? new OrchardTagBuilder("div") : default(OrchardTagBuilder);
|
||||
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
@using Orchard.Core.Shapes
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Elements
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var columnSpan = (int?)Model.Width;
|
||||
var columnOffset = (int?)Model.Offset;
|
||||
var element = (Column) Model.Element;
|
||||
var columnSpan = element.Width;
|
||||
var columnOffset = element.Offset;
|
||||
var columnOffsetCss = columnOffset > 0 ? "offset-" + columnOffset : default(string);
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
|
||||
tagBuilder.AddCssClass("cell");
|
||||
tagBuilder.AddCssClass(String.Concat("span-", columnSpan));
|
||||
tagBuilder.AddCssClass(columnOffsetCss);
|
||||
}
|
||||
@if (!Model.Collapsed) {
|
||||
@tagBuilder.StartElement
|
||||
foreach (var item in CoreShapes.Order(Model)) {
|
||||
@Display(item)
|
||||
}
|
||||
@tagBuilder.EndElement
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@DisplayChildren(Model)
|
||||
@tagBuilder.EndElement
|
||||
@@ -1,7 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@Display(Model.ContentField)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@foreach (var contentItem in Model.ContentItems) {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
}
|
||||
@using Orchard.Layouts.Helpers
|
||||
@if (Model.Content != null) {
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
@tagBuilder.StartElement
|
||||
@Display(Model.Content)
|
||||
@tagBuilder.EndElement
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
tagBuilder.AddCssClass("table");
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
tagBuilder.InnerHtml = Model.ProcessedText;
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@Html.Raw(Model.ProcessedText)
|
||||
@tagBuilder.EndElement
|
||||
@tagBuilder.ToHtmlString()
|
||||
@@ -15,4 +15,4 @@
|
||||
tagBuilder.Attributes["alt"] = T("Image not found").Text;
|
||||
}
|
||||
}
|
||||
@Html.Raw(tagBuilder.ToString(TagRenderMode.SelfClosing))
|
||||
@tagBuilder.ToHtmlString(TagRenderMode.SelfClosing)
|
||||
@@ -1,9 +1,8 @@
|
||||
@using Orchard.ContentManagement
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.MediaLibrary.Models
|
||||
@{
|
||||
var tagBuilder = (OrchardTagBuilder)TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("img"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model, "img");
|
||||
var imagePart = (ImagePart)Model.ImagePart;
|
||||
var mediaPart = imagePart != null ? imagePart.As<MediaPart>() : default(MediaPart);
|
||||
|
||||
@@ -17,4 +16,4 @@
|
||||
|
||||
tagBuilder.AddCssClass("layout-content-image");
|
||||
}
|
||||
@Html.Raw(tagBuilder.ToString(TagRenderMode.SelfClosing))
|
||||
@tagBuilder.ToHtmlString(TagRenderMode.SelfClosing)
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var text = (string)Model.ProcessedContent;
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
tagBuilder.InnerHtml = Model.ProcessedContent;
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@Html.Raw(text)
|
||||
@tagBuilder.EndElement
|
||||
@tagBuilder.ToHtmlString()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@foreach (var contentItem in Model.ContentItems) {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("p"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model, "p");
|
||||
tagBuilder.InnerHtml = Model.ProcessedText;
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@Html.Raw(Model.ProcessedText)
|
||||
@tagBuilder.EndElement
|
||||
@tagBuilder.ToHtmlString()
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
tagBuilder.AddCssClass("row");
|
||||
}
|
||||
@if (!Model.Collapsed) {
|
||||
@tagBuilder.StartElement
|
||||
@DisplayChildren(Model)
|
||||
@tagBuilder.EndElement
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = (OrchardTagBuilder)TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
}
|
||||
@using Orchard.Layouts.Helpers
|
||||
@if (Model.Shape != null) {
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
@tagBuilder.StartElement
|
||||
@Display(Model.Shape)
|
||||
@tagBuilder.EndElement
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.Layouts.Helpers
|
||||
@{
|
||||
var tagBuilder = TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("div"), Model);
|
||||
var text = (string) Model.ProcessedText;
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model);
|
||||
tagBuilder.InnerHtml = Model.ProcessedText;
|
||||
}
|
||||
@tagBuilder.StartElement
|
||||
@Html.Raw(text)
|
||||
@tagBuilder.EndElement
|
||||
@tagBuilder.ToHtmlString()
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
@using Orchard.ContentManagement
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Elements
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.MediaLibrary.Models
|
||||
@{
|
||||
var tagBuilder = new OrchardTagBuilder("img");
|
||||
var element = (VectorImage)Model.Element;
|
||||
var tagBuilder = (OrchardTagBuilder)TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("img"), Model);
|
||||
var vectorImagePart = (VectorImagePart)Model.VectorImagePart;
|
||||
var mediaPart = vectorImagePart != null ? vectorImagePart.As<MediaPart>() : default(MediaPart);
|
||||
|
||||
@@ -25,4 +24,4 @@
|
||||
tagBuilder.Attributes["height"] = element.Height.ToString();
|
||||
}
|
||||
}
|
||||
@Html.Raw(tagBuilder.ToString(TagRenderMode.SelfClosing))
|
||||
@tagBuilder.ToHtmlString(TagRenderMode.SelfClosing)
|
||||
@@ -1,11 +1,10 @@
|
||||
@using Orchard.ContentManagement
|
||||
@using Orchard.DisplayManagement.Shapes
|
||||
@using Orchard.Layouts.Elements
|
||||
@using Orchard.Layouts.Helpers
|
||||
@using Orchard.MediaLibrary.Models
|
||||
@{
|
||||
var element = (VectorImage)Model.Element;
|
||||
var tagBuilder = (OrchardTagBuilder)TagBuilderExtensions.AddCommonElementAttributes(new OrchardTagBuilder("img"), Model);
|
||||
var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model, "img");
|
||||
var vectorImagePart = (VectorImagePart)Model.VectorImagePart;
|
||||
var mediaPart = vectorImagePart != null ? vectorImagePart.As<MediaPart>() : default(MediaPart);
|
||||
|
||||
@@ -27,4 +26,4 @@
|
||||
|
||||
tagBuilder.AddCssClass("layout-content-vector");
|
||||
}
|
||||
@Html.Raw(tagBuilder.ToString(TagRenderMode.SelfClosing))
|
||||
@tagBuilder.ToHtmlString(TagRenderMode.SelfClosing)
|
||||
|
||||
Reference in New Issue
Block a user