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:
Sipke Schoorstra
2015-04-19 14:33:40 +02:00
99 changed files with 668 additions and 504 deletions

View File

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

View File

@@ -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 = {}));

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -15,4 +15,4 @@
tagBuilder.Attributes["alt"] = T("Image not found").Text;
}
}
@Html.Raw(tagBuilder.ToString(TagRenderMode.SelfClosing))
@tagBuilder.ToHtmlString(TagRenderMode.SelfClosing)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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