Refactoring and repair

ShapeMetadata.FrameTypes changed to ShapeMetadata.Wrappers
Adding placeholder "Item" template (needs to lock onto alternates, and use ~/Views/Items/* locations)

--HG--
branch : theming
This commit is contained in:
Louis DeJardin
2010-09-07 23:14:19 -07:00
parent bb9ba92f9d
commit ff5a2d8245
10 changed files with 26 additions and 18 deletions

View File

@@ -402,6 +402,7 @@
<None Include="Contents\Views\Content.cshtml" />
<None Include="Contents\Views\Item\Display.cshtml" />
<None Include="HomePage\Views\HomePage.cshtml" />
<None Include="Shapes\Views\Item.cshtml" />
<None Include="Shapes\Views\Document.aspx_" />
<None Include="Shapes\Views\Document.cshtml" />
<None Include="Shapes\Views\Layout.ascx_" />

View File

@@ -0,0 +1,2 @@
<h3>Content item placeholder</h3>
<p>This file will be relocated and specialized</p>

View File

@@ -1,4 +1,4 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
layouthea<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
<%@ Import Namespace="Orchard.Utility.Extensions"%>
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%><%

View File

@@ -7,9 +7,9 @@
<ul>
@foreach(var descriptor in shapeTable.Descriptors) {
<li>@descriptor.Key : @descriptor.Value.BindingSource
@if(descriptor.Value.FrameTypes.Any()){
foreach(var ft in descriptor.Value.FrameTypes) {
@(" +"+ft)
@if(descriptor.Value.Wrappers.Any()){
foreach(var wrapper in descriptor.Value.Wrappers) {
@(" +"+wrapper)
}
}
</li>

View File

@@ -2,22 +2,24 @@
<%@ Import Namespace="Orchard.Security" %>
<%@ Import Namespace="Orchard.DisplayManagement.Descriptors" %>
<%@ Import Namespace="Orchard" %>
<%@ Import Namespace="Orchard.ContentManagement" %>
<%
Model.Content.Add(Model.Metadata.ChildContent, "5");
// these are just hacked together to fire existing partials... can change
Model.Header.Add(Display.Header());
// <experimentation>
var thisUser = Html.Resolve<IAuthenticationService>().GetAuthenticatedUser();
Model.Header.Add(Display.User(CurrentUser: thisUser), "after");
Model.CurrentUser = thisUser;
Model.Header.Add(Display.Partial(TemplateName: "User"), "after");
Model.Header.Add(Display.Partial(TemplateName: "User"), "after");
var userDetail = Html.Resolve<IContentManager>().BuildDisplayModel(thisUser, "Detail");
Model.Content.Add(userDetail);
// </experimentation>
var userDisplay = thisUser.ContentItem.ContentManager.BuildDisplayModel(thisUser, "Detail");
Model.Content.Add(userDisplay);
Html.RegisterStyle("site.css", "1");
Html.RegisterStyle("ie.css", "1").WithCondition("if (lte IE 8)").ForMedia("screen, projection");
Html.RegisterStyle("ie6.css", "1").WithCondition("if (lte IE 6)").ForMedia("screen, projection");

View File

@@ -370,21 +370,24 @@ namespace Orchard.ContentManagement {
public dynamic BuildDisplayModel<TContent>(TContent content, string displayType) where TContent : IContent {
var shapeHelper = _shapeHelperFactory.CreateHelper();
var context = new BuildDisplayModelContext(content, displayType, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
var context = new BuildDisplayModelContext(content, displayType, itemShape, _shapeHelperFactory);
Handlers.Invoke(handler => handler.BuildDisplayShape(context), Logger);
return context.Model;
}
public dynamic BuildEditorModel<TContent>(TContent content) where TContent : IContent {
var shapeHelper = _shapeHelperFactory.CreateHelper();
var context = new BuildEditorModelContext(content, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
var context = new BuildEditorModelContext(content, itemShape, _shapeHelperFactory);
Handlers.Invoke(handler => handler.BuildEditorShape(context), Logger);
return context.Model;
}
public dynamic UpdateEditorModel<TContent>(TContent content, IUpdateModel updater) where TContent : IContent {
var shapeHelper = _shapeHelperFactory.CreateHelper();
var context = new UpdateEditorModelContext(content, updater, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
var context = new UpdateEditorModelContext(content, updater, itemShape, _shapeHelperFactory);
Handlers.Invoke(handler => handler.UpdateEditorShape(context), Logger);
return context.Model;
}

View File

@@ -9,7 +9,7 @@ namespace Orchard.DisplayManagement.Descriptors {
public ShapeDescriptor() {
Creating = Enumerable.Empty<Action<ShapeCreatingContext>>();
Created = Enumerable.Empty<Action<ShapeCreatedContext>>();
FrameTypes = new List<string>();
Wrappers = new List<string>();
}
public string ShapeType { get; set; }
@@ -25,6 +25,6 @@ namespace Orchard.DisplayManagement.Descriptors {
public IEnumerable<Action<ShapeCreatingContext>> Creating {get;set;}
public IEnumerable<Action<ShapeCreatedContext>> Created {get;set;}
public IList<string> FrameTypes { get; set; }
public IList<string> Wrappers { get; set; }
}
}

View File

@@ -57,7 +57,7 @@ namespace Orchard.DisplayManagement.Implementation {
throw new OrchardException(T("Shape type {0} not found", shapeMetadata.Type));
}
foreach (var frameType in shape.Metadata.FrameTypes) {
foreach (var frameType in shape.Metadata.Wrappers) {
ShapeDescriptor frameDescriptor;
if (shapeTable.Descriptors.TryGetValue(frameType, out frameDescriptor)) {
shape.Metadata.ChildContent = Process(frameDescriptor, shape, context);

View File

@@ -101,7 +101,7 @@ namespace Orchard.DisplayManagement.Implementation {
createdContext.Shape.Metadata = shapeMetadata;
if (shapeDescriptor != null)
shapeMetadata.FrameTypes = shapeMetadata.FrameTypes.Concat(shapeDescriptor.FrameTypes).ToList();
shapeMetadata.Wrappers = shapeMetadata.Wrappers.Concat(shapeDescriptor.Wrappers).ToList();
// "created" events provides default values and new object initialization
foreach (var ev in _events) {

View File

@@ -5,12 +5,12 @@ using System.Web;
namespace Orchard.DisplayManagement.Shapes {
public class ShapeMetadata {
public ShapeMetadata() {
FrameTypes = new List<string>();
Wrappers = new List<string>();
}
public string Type { get; set; }
public string Position { get; set; }
public IList<string> FrameTypes { get; set; }
public IList<string> Wrappers { get; set; }
public bool WasExecuted { get; set; }
public IHtmlString ChildContent { get; set; }