mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Some renaming of class around content to be more consistent.
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4045011
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autofac;
|
||||
using Autofac.Builder;
|
||||
using Autofac.Modules;
|
||||
@@ -16,14 +13,14 @@ using Orchard.UI.Zones;
|
||||
|
||||
namespace Orchard.Tests.ContentManagement {
|
||||
[TestFixture]
|
||||
public class PartDriverHandlerTests {
|
||||
public class ContentPartDriverHandlerTests {
|
||||
private IContainer _container;
|
||||
|
||||
[SetUp]
|
||||
public void Init() {
|
||||
var builder = new ContainerBuilder();
|
||||
builder.RegisterModule(new ImplicitCollectionSupportModule());
|
||||
builder.Register<PartDriverHandler>().As<IContentHandler>();
|
||||
builder.Register<ContentPartDriverHandler>().As<IContentHandler>();
|
||||
_container = builder.Build();
|
||||
}
|
||||
|
||||
@@ -35,15 +32,15 @@ namespace Orchard.Tests.ContentManagement {
|
||||
|
||||
[Test]
|
||||
public void AllDriversShouldBeCalled() {
|
||||
var driver1 = new Mock<IPartDriver>();
|
||||
var driver2 = new Mock<IPartDriver>();
|
||||
var driver1 = new Mock<IContentPartDriver>();
|
||||
var driver2 = new Mock<IContentPartDriver>();
|
||||
_container.Build(x => {
|
||||
x.Register(driver1.Object);
|
||||
x.Register(driver2.Object);
|
||||
});
|
||||
var contentHandler = _container.Resolve<IContentHandler>();
|
||||
|
||||
var ctx = new BuildDisplayModelContext(new ItemViewModel(new ContentItem()), null);
|
||||
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(new ContentItem()), null);
|
||||
|
||||
driver1.Verify(x => x.BuildDisplayModel(ctx), Times.Never());
|
||||
contentHandler.BuildDisplayModel(ctx);
|
||||
@@ -53,23 +50,23 @@ namespace Orchard.Tests.ContentManagement {
|
||||
[Test]
|
||||
public void TestDriverCanAddDisplay() {
|
||||
var driver = new StubPartDriver();
|
||||
_container.Build(x => x.Register(driver).As<IPartDriver>());
|
||||
_container.Build(x => x.Register(driver).As<IContentPartDriver>());
|
||||
|
||||
var contentHandler = _container.Resolve<IContentHandler>();
|
||||
|
||||
var item = new ContentItem();
|
||||
item.Weld(new StubPart { Foo = new[] { "a", "b", "c" } });
|
||||
|
||||
var ctx = new BuildDisplayModelContext(new ItemViewModel(item), "");
|
||||
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(item), "");
|
||||
Assert.That(ctx.ViewModel.Zones.Count(), Is.EqualTo(0));
|
||||
contentHandler.BuildDisplayModel(ctx);
|
||||
Assert.That(ctx.ViewModel.Zones.Count(), Is.EqualTo(1));
|
||||
Assert.That(ctx.ViewModel.Zones.Single().Key, Is.EqualTo("topmeta"));
|
||||
Assert.That(ctx.ViewModel.Zones.Single().Value.Items.OfType<PartDisplayZoneItem>().Single().Prefix, Is.EqualTo("Stub"));
|
||||
Assert.That(ctx.ViewModel.Zones.Single().Value.Items.OfType<ContentPartDisplayZoneItem>().Single().Prefix, Is.EqualTo("Stub"));
|
||||
|
||||
}
|
||||
|
||||
public class StubPartDriver : PartDriver<StubPart> {
|
||||
public class StubPartDriver : ContentPartDriver<StubPart> {
|
||||
protected override string Prefix {
|
||||
get { return "Stub"; }
|
||||
}
|
||||
@@ -77,21 +74,21 @@ namespace Orchard.Tests.ContentManagement {
|
||||
protected override DriverResult Display(StubPart part, string displayType) {
|
||||
var viewModel = new StubViewModel { Foo = string.Join(",", part.Foo) };
|
||||
if (displayType.StartsWith("Summary"))
|
||||
return PartTemplate(viewModel, "StubViewModelTerse").Location("topmeta");
|
||||
return ContentPartTemplate(viewModel, "StubViewModelTerse").Location("topmeta");
|
||||
|
||||
return PartTemplate(viewModel).Location("topmeta");
|
||||
return ContentPartTemplate(viewModel).Location("topmeta");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(StubPart part) {
|
||||
var viewModel = new StubViewModel { Foo = string.Join(",", part.Foo) };
|
||||
return PartTemplate(viewModel).Location("last", "10");
|
||||
return ContentPartTemplate(viewModel).Location("last", "10");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(StubPart part, IUpdateModel updater) {
|
||||
var viewModel = new StubViewModel { Foo = string.Join(",", part.Foo) };
|
||||
updater.TryUpdateModel(viewModel, Prefix, null, null);
|
||||
part.Foo = viewModel.Foo.Split(new[] { ',' }).Select(x => x.Trim()).ToArray();
|
||||
return PartTemplate(viewModel).Location("last", "10");
|
||||
return ContentPartTemplate(viewModel).Location("last", "10");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,5 +101,4 @@ namespace Orchard.Tests.ContentManagement {
|
||||
public string Foo { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -122,7 +122,7 @@
|
||||
<Compile Include="ContentManagement\Models\Gamma.cs" />
|
||||
<Compile Include="ContentManagement\Models\Styled.cs" />
|
||||
<Compile Include="ContentManagement\Models\StyledHandler.cs" />
|
||||
<Compile Include="ContentManagement\PartDriverHandlerTests.cs">
|
||||
<Compile Include="ContentManagement\ContentPartDriverHandlerTests.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Records\DeltaRecord.cs">
|
||||
|
@@ -3,7 +3,7 @@ using Orchard.Core.Common.Models;
|
||||
using Orchard.Core.Common.ViewModels;
|
||||
|
||||
namespace Orchard.Core.Common.Controllers {
|
||||
public class BodyDriver : PartDriver<BodyAspect> {
|
||||
public class BodyDriver : ContentPartDriver<BodyAspect> {
|
||||
private const string TemplateName = "Parts/Common.Body";
|
||||
private const string DefaultTextEditorTemplate = "TinyMceTextEditor";
|
||||
protected override string Prefix {
|
||||
@@ -12,18 +12,18 @@ namespace Orchard.Core.Common.Controllers {
|
||||
|
||||
protected override DriverResult Display(BodyAspect part, string displayType) {
|
||||
var model = new BodyDisplayViewModel { BodyAspect = part };
|
||||
return PartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
return ContentPartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(BodyAspect part) {
|
||||
var model = new BodyEditorViewModel { BodyAspect = part, TextEditorTemplate = DefaultTextEditorTemplate };
|
||||
return PartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
return ContentPartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(BodyAspect part, Orchard.ContentManagement.IUpdateModel updater) {
|
||||
var model = new BodyEditorViewModel { BodyAspect = part, TextEditorTemplate = DefaultTextEditorTemplate };
|
||||
updater.TryUpdateModel(model, Prefix, null, null);
|
||||
return PartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
return ContentPartTemplate(model, TemplateName, Prefix).Location("body");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,16 +7,16 @@ using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.Core.Settings.Models;
|
||||
|
||||
namespace Orchard.Core.Settings.Controllers {
|
||||
public class SiteSettingsDriver : ItemDriver<SiteSettings> {
|
||||
public class SiteSettingsDriver : ContentItemDriver<SiteSettings> {
|
||||
protected override ContentType GetContentType() {
|
||||
return SiteSettings.ContentType;
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(SiteSettings part) {
|
||||
return ItemTemplate("Items/Settings.Site");
|
||||
return ContentItemTemplate("Items/Settings.Site");
|
||||
}
|
||||
protected override DriverResult Editor(SiteSettings part, IUpdateModel updater) {
|
||||
return ItemTemplate("Items/Settings.Site");
|
||||
return ContentItemTemplate("Items/Settings.Site");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ using Orchard.Core.Settings.Models;
|
||||
namespace Orchard.Core.Settings.ViewModels {
|
||||
public class SettingsIndexViewModel : AdminViewModel {
|
||||
public SiteSettings Site { get; set; }
|
||||
public ItemViewModel ViewModel { get; set; }
|
||||
public ContentItemViewModel ViewModel { get; set; }
|
||||
|
||||
|
||||
[HiddenInput(DisplayValue = false)]
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<SiteSettings>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<SiteSettings>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Core.Settings.Models"%>
|
||||
<% Html.Zone("primary"); %>
|
||||
|
@@ -10,7 +10,7 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.Controllers {
|
||||
[UsedImplicitly]
|
||||
public class BlogDriver : ItemDriver<Blog> {
|
||||
public class BlogDriver : ContentItemDriver<Blog> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "blog",
|
||||
DisplayName = "Blog"
|
||||
@@ -54,7 +54,7 @@ namespace Orchard.Blogs.Controllers {
|
||||
|
||||
protected override DriverResult Display(Blog blog, string displayType) {
|
||||
|
||||
IEnumerable<ItemViewModel<BlogPost>> blogPosts = null;
|
||||
IEnumerable<ContentItemViewModel<BlogPost>> blogPosts = null;
|
||||
if (displayType.StartsWith("DetailAdmin")) {
|
||||
blogPosts = _blogPostService.Get(blog)
|
||||
.Select(bp => _contentManager.BuildDisplayModel(bp, "SummaryAdmin"));
|
||||
@@ -65,21 +65,21 @@ namespace Orchard.Blogs.Controllers {
|
||||
}
|
||||
|
||||
return Combined(
|
||||
ItemTemplate("Items/Blogs.Blog").LongestMatch(displayType, "Summary", "DetailAdmin", "SummaryAdmin"),
|
||||
blogPosts == null ? null : PartTemplate(blogPosts, "Parts/Blogs.BlogPost.List", "").Location("body"));
|
||||
ContentItemTemplate("Items/Blogs.Blog").LongestMatch(displayType, "Summary", "DetailAdmin", "SummaryAdmin"),
|
||||
blogPosts == null ? null : ContentPartTemplate(blogPosts, "Parts/Blogs.BlogPost.List", "").Location("body"));
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(Blog blog) {
|
||||
return Combined(
|
||||
ItemTemplate("Items/Blogs.Blog"),
|
||||
PartTemplate(blog, "Parts/Blogs.Blog.Fields").Location("primary", "1"));
|
||||
ContentItemTemplate("Items/Blogs.Blog"),
|
||||
ContentPartTemplate(blog, "Parts/Blogs.Blog.Fields").Location("primary", "1"));
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(Blog blog, IUpdateModel updater) {
|
||||
updater.TryUpdateModel(blog, Prefix, null, null);
|
||||
return Combined(
|
||||
ItemTemplate("Items/Blogs.Blog"),
|
||||
PartTemplate(blog, "Parts/Blogs.Blog.Fields").Location("primary", "1"));
|
||||
ContentItemTemplate("Items/Blogs.Blog"),
|
||||
ContentPartTemplate(blog, "Parts/Blogs.Blog.Fields").Location("primary", "1"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ using Orchard.ContentManagement.Drivers;
|
||||
|
||||
namespace Orchard.Blogs.Controllers {
|
||||
[UsedImplicitly]
|
||||
public class BlogPostDriver : ItemDriver<BlogPost> {
|
||||
public class BlogPostDriver : ContentItemDriver<BlogPost> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "blogpost",
|
||||
DisplayName = "Blog Post"
|
||||
@@ -43,14 +43,14 @@ namespace Orchard.Blogs.Controllers {
|
||||
}
|
||||
|
||||
protected override DriverResult Display(BlogPost post, string displayType) {
|
||||
return ItemTemplate("Items/Blogs.BlogPost").LongestMatch(displayType, "Summary", "SummaryAdmin");
|
||||
return ContentItemTemplate("Items/Blogs.BlogPost").LongestMatch(displayType, "Summary", "SummaryAdmin");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(BlogPost post) {
|
||||
return Combined(
|
||||
ItemTemplate("Items/Blogs.BlogPost"),
|
||||
PartTemplate(post, "Parts/Blogs.BlogPost.Fields").Location("primary", "1"),
|
||||
PartTemplate(post, "Parts/Blogs.BlogPost.Publish").Location("secondary", "1"));
|
||||
ContentItemTemplate("Items/Blogs.BlogPost"),
|
||||
ContentPartTemplate(post, "Parts/Blogs.BlogPost.Fields").Location("primary", "1"),
|
||||
ContentPartTemplate(post, "Parts/Blogs.BlogPost.Publish").Location("secondary", "1"));
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(BlogPost post, IUpdateModel updater) {
|
||||
|
@@ -4,6 +4,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class AdminBlogsViewModel : AdminViewModel {
|
||||
public IEnumerable<ItemViewModel<Blog>> Blogs { get; set; }
|
||||
public IEnumerable<ContentItemViewModel<Blog>> Blogs { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogEditViewModel : AdminViewModel {
|
||||
public ItemViewModel<Blog> Blog { get; set; }
|
||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogForAdminViewModel : AdminViewModel {
|
||||
public ItemViewModel<Blog> Blog { get; set; }
|
||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogPostEditViewModel : AdminViewModel {
|
||||
public ItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
}
|
||||
}
|
@@ -4,6 +4,6 @@ using Orchard.Mvc.ViewModels;
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogPostViewModel : BaseViewModel {
|
||||
public Blog Blog { get; set; }
|
||||
public ItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogViewModel : BaseViewModel {
|
||||
public ItemViewModel<Blog> Blog { get; set; }
|
||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||
}
|
||||
}
|
@@ -4,6 +4,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogsViewModel : BaseViewModel {
|
||||
public IEnumerable<ItemViewModel<Blog>> Blogs { get; set; }
|
||||
public IEnumerable<ContentItemViewModel<Blog>> Blogs { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class CreateBlogPostViewModel : AdminViewModel {
|
||||
public ItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
||||
}
|
||||
}
|
@@ -3,6 +3,6 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class CreateBlogViewModel : AdminViewModel {
|
||||
public ItemViewModel<Blog> Blog { get; set; }
|
||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<Blog>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<Blog>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<Blog>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<Blog>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<Blog>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<Blog>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<Blog>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<Blog>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<BlogPost>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<BlogPost>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.ContentManagement"%>
|
||||
<%@ Import Namespace="Orchard.Core.Common.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<BlogPost>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<BlogPost>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.ContentManagement"%>
|
||||
<%@ Import Namespace="Orchard.Core.Common.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<BlogPost>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<BlogPost>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ItemViewModel<BlogPost>>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ContentItemViewModel<BlogPost>>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
<%=Html.UnorderedList(Model, (bp, i) => Html.DisplayForItem(bp).ToHtmlString(), "blogPosts contentItems") %>
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<Blog>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<Blog>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
<% Html.AddTitleParts(Model.Item.Name); %>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<BlogPost>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<BlogPost>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||
<% Html.AddTitleParts(Model.Item.Title); %>
|
||||
|
@@ -3,7 +3,7 @@ using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
|
||||
namespace Orchard.Comments.Controllers {
|
||||
public class HasCommentsDriver : PartDriver<HasComments> {
|
||||
public class HasCommentsDriver : ContentPartDriver<HasComments> {
|
||||
protected override DriverResult Display(HasComments part, string displayType) {
|
||||
if (part.CommentsShown == false) {
|
||||
return null;
|
||||
@@ -13,20 +13,20 @@ namespace Orchard.Comments.Controllers {
|
||||
// comment count go in any given skin or what if the skin builder doesn't want the count
|
||||
if (displayType.StartsWith("Detail")) {
|
||||
return Combined(
|
||||
PartTemplate(part, "Parts/Comments.Count").Location("body", "above.5"),
|
||||
PartTemplate(part, "Parts/Comments.HasComments").Location("body", "below.5"));
|
||||
ContentPartTemplate(part, "Parts/Comments.Count").Location("body", "above.5"),
|
||||
ContentPartTemplate(part, "Parts/Comments.HasComments").Location("body", "below.5"));
|
||||
}
|
||||
|
||||
return PartTemplate(part, "Parts/Comments.Count").Location("body", "above.5");
|
||||
return ContentPartTemplate(part, "Parts/Comments.Count").Location("body", "above.5");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(HasComments part) {
|
||||
return PartTemplate(part, "Parts/Comments.HasComments").Location("primary", "99");
|
||||
return ContentPartTemplate(part, "Parts/Comments.HasComments").Location("primary", "99");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(HasComments part, IUpdateModel updater) {
|
||||
updater.TryUpdateModel(part, Prefix, null, null);
|
||||
return PartTemplate(part, "Parts/Comments.HasComments").Location("primary", "99");
|
||||
return ContentPartTemplate(part, "Parts/Comments.HasComments").Location("primary", "99");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -14,15 +14,15 @@ namespace Orchard.DevTools.ViewModels {
|
||||
|
||||
public IEnumerable<Type> PartTypes { get; set; }
|
||||
|
||||
public ItemViewModel DisplayModel { get; set; }
|
||||
public ContentItemViewModel DisplayModel { get; set; }
|
||||
|
||||
public ItemViewModel EditorModel { get; set; }
|
||||
public ContentItemViewModel EditorModel { get; set; }
|
||||
|
||||
public IEnumerable<TemplateViewModel> Displays {
|
||||
get {
|
||||
return DisplayModel.Zones
|
||||
.SelectMany(z => z.Value.Items
|
||||
.OfType<PartDisplayZoneItem>()
|
||||
.OfType<ContentPartDisplayZoneItem>()
|
||||
.Select(x=>new{ZoneName=z.Key,Item=x}))
|
||||
.Select(x => new TemplateViewModel(x.Item.Model,x.Item.Prefix) {
|
||||
Model = x.Item.Model,
|
||||
@@ -37,7 +37,7 @@ namespace Orchard.DevTools.ViewModels {
|
||||
get {
|
||||
return EditorModel.Zones
|
||||
.SelectMany(z => z.Value.Items
|
||||
.OfType<PartEditorZoneItem>()
|
||||
.OfType<ContentPartEditorZoneItem>()
|
||||
.Select(x => new { ZoneName = z.Key, Item = x }))
|
||||
.Select(x => new TemplateViewModel(x.Item.Model, x.Item.Prefix) {
|
||||
Model = x.Item.Model,
|
||||
|
@@ -15,7 +15,7 @@ using Orchard.Security;
|
||||
using Orchard.UI.Notify;
|
||||
|
||||
namespace Orchard.Roles.Controllers {
|
||||
public class UserRolesDriver : PartDriver<UserRoles> {
|
||||
public class UserRolesDriver : ContentPartDriver<UserRoles> {
|
||||
private readonly IRepository<UserRolesRecord> _userRolesRepository;
|
||||
private readonly IRoleService _roleService;
|
||||
private readonly INotifier _notifier;
|
||||
@@ -49,7 +49,7 @@ namespace Orchard.Roles.Controllers {
|
||||
UserRoles = userRoles,
|
||||
Roles = roles.ToList(),
|
||||
};
|
||||
return PartTemplate(model, "Parts/Roles.UserRoles");
|
||||
return ContentPartTemplate(model, "Parts/Roles.UserRoles");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(UserRoles userRoles, IUpdateModel updater) {
|
||||
@@ -75,7 +75,7 @@ namespace Orchard.Roles.Controllers {
|
||||
}
|
||||
|
||||
}
|
||||
return PartTemplate(model, "Parts/Roles.UserRoles");
|
||||
return ContentPartTemplate(model, "Parts/Roles.UserRoles");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ using Orchard.Sandbox.Models;
|
||||
|
||||
namespace Orchard.Sandbox.Controllers {
|
||||
[UsedImplicitly]
|
||||
public class SandboxPageDriver : ItemDriver<SandboxPage> {
|
||||
public class SandboxPageDriver : ContentItemDriver<SandboxPage> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "sandboxpage",
|
||||
DisplayName = "Sandbox Page"
|
||||
@@ -43,17 +43,17 @@ namespace Orchard.Sandbox.Controllers {
|
||||
|
||||
protected override DriverResult Display(SandboxPage part, string displayType) {
|
||||
return Combined(
|
||||
ItemTemplate("Items/Sandbox.Page").LongestMatch(displayType, "Summary"),
|
||||
PartTemplate(part, "Parts/Sandbox.Page.Title").Location("title"));
|
||||
ContentItemTemplate("Items/Sandbox.Page").LongestMatch(displayType, "Summary"),
|
||||
ContentPartTemplate(part, "Parts/Sandbox.Page.Title").Location("title"));
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(ItemViewModel<SandboxPage> model) {
|
||||
return ItemTemplate("Items/Sandbox.Page");
|
||||
protected override DriverResult Editor(ContentItemViewModel<SandboxPage> model) {
|
||||
return ContentItemTemplate("Items/Sandbox.Page");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(ItemViewModel<SandboxPage> model, IUpdateModel updater) {
|
||||
protected override DriverResult Editor(ContentItemViewModel<SandboxPage> model, IUpdateModel updater) {
|
||||
updater.TryUpdateModel(model, Prefix, null, null);
|
||||
return ItemTemplate("Items/Sandbox.Page");
|
||||
return ContentItemTemplate("Items/Sandbox.Page");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,6 +5,6 @@ using Orchard.Sandbox.Models;
|
||||
|
||||
namespace Orchard.Sandbox.ViewModels {
|
||||
public class PageEditViewModel : BaseViewModel {
|
||||
public ItemViewModel<SandboxPage> Page { get; set; }
|
||||
public ContentItemViewModel<SandboxPage> Page { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -4,6 +4,6 @@ using Orchard.Sandbox.Models;
|
||||
|
||||
namespace Orchard.Sandbox.ViewModels {
|
||||
public class PageIndexViewModel : BaseViewModel {
|
||||
public IEnumerable<ItemViewModel<SandboxPage>> Pages { get; set; }
|
||||
public IEnumerable<ContentItemViewModel<SandboxPage>> Pages { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -3,6 +3,6 @@ using Orchard.Sandbox.Models;
|
||||
|
||||
namespace Orchard.Sandbox.ViewModels {
|
||||
public class PageShowViewModel : BaseViewModel {
|
||||
public ItemViewModel<SandboxPage> Page { get; set; }
|
||||
public ContentItemViewModel<SandboxPage> Page { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<SandboxPage>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<SandboxPage>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Sandbox.Models" %>
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<SandboxPage>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<SandboxPage>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Sandbox.Models" %>
|
||||
<div class="item">
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<SandboxPage>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<SandboxPage>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Sandbox.Models" %>
|
||||
|
||||
|
@@ -10,7 +10,7 @@ using Orchard.Tags.ViewModels;
|
||||
namespace Orchard.Tags.Controllers {
|
||||
|
||||
[UsedImplicitly]
|
||||
public class HasTagsDriver : PartDriver<HasTags> {
|
||||
public class HasTagsDriver : ContentPartDriver<HasTags> {
|
||||
private readonly ITagService _tagService;
|
||||
|
||||
public HasTagsDriver(ITagService tagService) {
|
||||
@@ -18,14 +18,14 @@ namespace Orchard.Tags.Controllers {
|
||||
}
|
||||
|
||||
protected override DriverResult Display(HasTags part, string displayType) {
|
||||
return PartTemplate(part, "Parts/Tags.ShowTags").Location("body:above");
|
||||
return ContentPartTemplate(part, "Parts/Tags.ShowTags").Location("body:above");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(HasTags part) {
|
||||
var model = new EditTagsViewModel {
|
||||
Tags = string.Join(", ", part.CurrentTags.Select((t, i) => t.TagName).ToArray())
|
||||
};
|
||||
return PartTemplate(model, "Parts/Tags.EditTags").Location("primary", "9");
|
||||
return ContentPartTemplate(model, "Parts/Tags.EditTags").Location("primary", "9");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(HasTags part, IUpdateModel updater) {
|
||||
@@ -36,7 +36,7 @@ namespace Orchard.Tags.Controllers {
|
||||
var tagNames = TagHelpers.ParseCommaSeparatedTagNames(model.Tags);
|
||||
_tagService.UpdateTagsForContentItem(part.ContentItem.Id, tagNames);
|
||||
|
||||
return PartTemplate(model, "Parts/Tags.EditTags").Location("primary", "9");
|
||||
return ContentPartTemplate(model, "Parts/Tags.EditTags").Location("primary", "9");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,6 +5,6 @@ using Orchard.Mvc.ViewModels;
|
||||
namespace Orchard.Tags.ViewModels {
|
||||
public class TagsSearchViewModel : BaseViewModel {
|
||||
public string TagName { get; set; }
|
||||
public IEnumerable<ItemViewModel<IContent>> Items { get; set; }
|
||||
public IEnumerable<ContentItemViewModel<IContent>> Items { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ using Orchard.Users.Models;
|
||||
|
||||
namespace Orchard.Users.Controllers {
|
||||
[UsedImplicitly]
|
||||
public class UserDriver : ItemDriver<User> {
|
||||
public class UserDriver : ContentItemDriver<User> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "user",
|
||||
DisplayName = "User Profile"
|
||||
@@ -31,11 +31,11 @@ namespace Orchard.Users.Controllers {
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(User part) {
|
||||
return ItemTemplate("Items/Users.User");
|
||||
return ContentItemTemplate("Items/Users.User");
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(User part, IUpdateModel updater) {
|
||||
return ItemTemplate("Items/Users.User");
|
||||
return ContentItemTemplate("Items/Users.User");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,6 @@ namespace Orchard.Users.ViewModels {
|
||||
[Required, DataType(DataType.Password)]
|
||||
public string ConfirmPassword { get; set; }
|
||||
|
||||
public ItemViewModel<IUser> User { get; set; }
|
||||
public ContentItemViewModel<IUser> User { get; set; }
|
||||
}
|
||||
}
|
@@ -23,6 +23,6 @@ namespace Orchard.Users.ViewModels {
|
||||
set { User.Item.Record.Email = value; }
|
||||
}
|
||||
|
||||
public ItemViewModel<User> User { get; set; }
|
||||
public ContentItemViewModel<User> User { get; set; }
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemViewModel<User>>" %>
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<User>>" %>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||
<%@ Import Namespace="Orchard.Users.Models" %>
|
||||
<% Html.ZonesAny(); %>
|
||||
|
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.ContentManagement.Records;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
@@ -151,15 +150,15 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
/* Display and editor convenience extension methods */
|
||||
|
||||
public static ItemViewModel<T> BuildDisplayModel<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> BuildDisplayModel<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
|
||||
return manager.BuildDisplayModel(manager.Get<T>(id), displayType);
|
||||
}
|
||||
|
||||
public static ItemViewModel<T> BuildEditorModel<T>(this IContentManager manager, int id) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> BuildEditorModel<T>(this IContentManager manager, int id) where T : class, IContent {
|
||||
return manager.BuildEditorModel(manager.Get<T>(id));
|
||||
}
|
||||
|
||||
public static ItemViewModel<T> UpdateEditorModel<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> UpdateEditorModel<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
|
||||
return manager.UpdateEditorModel(manager.Get<T>(id), updater);
|
||||
}
|
||||
|
||||
|
@@ -282,18 +282,18 @@ namespace Orchard.ContentManagement {
|
||||
}
|
||||
|
||||
public ContentItemMetadata GetItemMetadata(IContent content) {
|
||||
var context = new GetItemMetadataContext {
|
||||
var context = new GetContentItemMetadataContext {
|
||||
ContentItem = content.ContentItem,
|
||||
Metadata = new ContentItemMetadata()
|
||||
};
|
||||
foreach (var handler in Handlers) {
|
||||
handler.GetItemMetadata(context);
|
||||
handler.GetContentItemMetadata(context);
|
||||
}
|
||||
return context.Metadata;
|
||||
}
|
||||
|
||||
public ItemViewModel<TContentPart> BuildDisplayModel<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
|
||||
var displayModel = new ItemViewModel<TContentPart>(content);
|
||||
public ContentItemViewModel<TContentPart> BuildDisplayModel<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
|
||||
var displayModel = new ContentItemViewModel<TContentPart>(content);
|
||||
var context = new BuildDisplayModelContext(displayModel, displayType);
|
||||
foreach (var handler in Handlers) {
|
||||
handler.BuildDisplayModel(context);
|
||||
@@ -301,8 +301,8 @@ namespace Orchard.ContentManagement {
|
||||
return displayModel;
|
||||
}
|
||||
|
||||
public ItemViewModel<TContentPart> BuildEditorModel<TContentPart>(TContentPart content) where TContentPart : IContent {
|
||||
var editorModel = new ItemViewModel<TContentPart>(content);
|
||||
public ContentItemViewModel<TContentPart> BuildEditorModel<TContentPart>(TContentPart content) where TContentPart : IContent {
|
||||
var editorModel = new ContentItemViewModel<TContentPart>(content);
|
||||
var context = new BuildEditorModelContext(editorModel);
|
||||
foreach (var handler in Handlers) {
|
||||
handler.BuildEditorModel(context);
|
||||
@@ -310,8 +310,8 @@ namespace Orchard.ContentManagement {
|
||||
return editorModel;
|
||||
}
|
||||
|
||||
public ItemViewModel<TContentPart> UpdateEditorModel<TContentPart>(TContentPart content, IUpdateModel updater) where TContentPart : IContent {
|
||||
var editorModel = new ItemViewModel<TContentPart>(content);
|
||||
public ContentItemViewModel<TContentPart> UpdateEditorModel<TContentPart>(TContentPart content, IUpdateModel updater) where TContentPart : IContent {
|
||||
var editorModel = new ContentItemViewModel<TContentPart>(content);
|
||||
|
||||
var context = new UpdateEditorModelContext(editorModel, updater);
|
||||
foreach (var handler in Handlers) {
|
||||
|
@@ -1,21 +1,22 @@
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public abstract class AutomaticPartDriver<TPart> : PartDriver<TPart> where TPart : class, IContent {
|
||||
public abstract class AutomaticContentPartDriver<TPart> : ContentPartDriver<TPart> where TPart : class, IContent {
|
||||
protected override string Prefix {
|
||||
get {
|
||||
return (typeof (TPart).Name);
|
||||
}
|
||||
}
|
||||
|
||||
protected override DriverResult Display(TPart part, string displayType) {
|
||||
return PartTemplate(part);
|
||||
return ContentPartTemplate(part);
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(TPart part) {
|
||||
return PartTemplate(part);
|
||||
return ContentPartTemplate(part);
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(TPart part, IUpdateModel updater) {
|
||||
updater.TryUpdateModel(part, Prefix, null, null);
|
||||
return PartTemplate(part);
|
||||
return ContentPartTemplate(part);
|
||||
}
|
||||
}
|
||||
}
|
87
src/Orchard/ContentManagement/Drivers/ContentItemDriver.cs
Normal file
87
src/Orchard/ContentManagement/Drivers/ContentItemDriver.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Routing;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public interface IContentItemDriver : IEvents {
|
||||
IEnumerable<ContentType> GetContentTypes();
|
||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
||||
|
||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
||||
}
|
||||
|
||||
public abstract class ContentItemDriver<TContent> : ContentPartDriver<TContent>, IContentItemDriver where TContent : class, IContent {
|
||||
private readonly ContentType _contentType;
|
||||
|
||||
public ContentItemDriver() {
|
||||
}
|
||||
|
||||
public ContentItemDriver(ContentType contentType) {
|
||||
_contentType = contentType;
|
||||
}
|
||||
|
||||
IEnumerable<ContentType> IContentItemDriver.GetContentTypes() {
|
||||
var contentType = GetContentType();
|
||||
return contentType != null ? new[] { contentType } : Enumerable.Empty<ContentType>();
|
||||
}
|
||||
|
||||
void IContentItemDriver.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
var item = context.ContentItem.As<TContent>();
|
||||
if (item != null) {
|
||||
context.Metadata.DisplayText = GetDisplayText(item) ?? context.Metadata.DisplayText;
|
||||
context.Metadata.DisplayRouteValues = GetDisplayRouteValues(item) ?? context.Metadata.DisplayRouteValues;
|
||||
context.Metadata.EditorRouteValues = GetEditorRouteValues(item) ?? context.Metadata.EditorRouteValues;
|
||||
}
|
||||
}
|
||||
|
||||
DriverResult IContentItemDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
return Display(new ContentItemViewModel<TContent>(context.ViewModel), context.DisplayType);
|
||||
}
|
||||
return Display((ContentItemViewModel<TContent>)context.ViewModel, context.DisplayType);
|
||||
}
|
||||
|
||||
DriverResult IContentItemDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
return Editor(new ContentItemViewModel<TContent>(context.ViewModel));
|
||||
}
|
||||
return Editor((ContentItemViewModel<TContent>)context.ViewModel);
|
||||
}
|
||||
|
||||
DriverResult IContentItemDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
return Editor(new ContentItemViewModel<TContent>(context.ViewModel), context.Updater);
|
||||
}
|
||||
return Editor((ContentItemViewModel<TContent>)context.ViewModel, context.Updater);
|
||||
}
|
||||
|
||||
protected virtual ContentType GetContentType() { return _contentType; }
|
||||
protected virtual string GetDisplayText(TContent item) { return null; }
|
||||
protected virtual RouteValueDictionary GetDisplayRouteValues(TContent item) { return null; }
|
||||
protected virtual RouteValueDictionary GetEditorRouteValues(TContent item) { return null; }
|
||||
|
||||
protected virtual DriverResult Display(ContentItemViewModel<TContent> viewModel, string displayType) { return null; }
|
||||
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel) { return null; }
|
||||
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel, IUpdateModel updater) { return null; }
|
||||
|
||||
public ContentItemTemplateResult<TContent> ContentItemTemplate(string templateName) {
|
||||
return new ContentItemTemplateResult<TContent>(templateName);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,17 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
[UsedImplicitly]
|
||||
public class ItemDriverHandler : IContentHandler {
|
||||
private readonly IEnumerable<IItemDriver> _drivers;
|
||||
public class ContentItemDriverHandler : IContentHandler {
|
||||
private readonly IEnumerable<IContentItemDriver> _drivers;
|
||||
|
||||
public ItemDriverHandler(IEnumerable<IItemDriver> drivers) {
|
||||
public ContentItemDriverHandler(IEnumerable<IContentItemDriver> drivers) {
|
||||
_drivers = drivers;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
@@ -45,8 +42,8 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
void IContentHandler.Removed(RemoveContentContext context) { }
|
||||
|
||||
|
||||
void IContentHandler.GetItemMetadata(GetItemMetadataContext context) {
|
||||
_drivers.Invoke(driver => driver.GetItemMetadata(context), Logger);
|
||||
void IContentHandler.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
_drivers.Invoke(driver => driver.GetContentItemMetadata(context), Logger);
|
||||
}
|
||||
|
||||
void IContentHandler.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
@@ -72,8 +69,5 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,12 +1,11 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public class ItemTemplateResult<TContent> : DriverResult where TContent : class, IContent {
|
||||
public ItemTemplateResult(string templateName) {
|
||||
public class ContentItemTemplateResult<TContent> : DriverResult where TContent : class, IContent {
|
||||
public ContentItemTemplateResult(string templateName) {
|
||||
TemplateName = templateName;
|
||||
}
|
||||
|
||||
@@ -14,11 +13,11 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
|
||||
public override void Apply(BuildDisplayModelContext context) {
|
||||
context.ViewModel.TemplateName = TemplateName;
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
context.ViewModel.Adaptor = (html, viewModel) => {
|
||||
return new HtmlHelper<ItemViewModel<TContent>>(
|
||||
return new HtmlHelper<ContentItemViewModel<TContent>>(
|
||||
html.ViewContext,
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ItemViewModel<TContent>(viewModel)) },
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ContentItemViewModel<TContent>(viewModel)) },
|
||||
html.RouteCollection);
|
||||
};
|
||||
}
|
||||
@@ -26,22 +25,21 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
|
||||
public override void Apply(BuildEditorModelContext context) {
|
||||
context.ViewModel.TemplateName = TemplateName;
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
context.ViewModel.Adaptor = (html, viewModel) => {
|
||||
return new HtmlHelper<ItemViewModel<TContent>>(
|
||||
return new HtmlHelper<ContentItemViewModel<TContent>>(
|
||||
html.ViewContext,
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ItemViewModel<TContent>(viewModel)) },
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ContentItemViewModel<TContent>(viewModel)) },
|
||||
html.RouteCollection);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class ViewDataContainer : IViewDataContainer {
|
||||
public ViewDataDictionary ViewData { get; set; }
|
||||
}
|
||||
|
||||
public ItemTemplateResult<TContent> LongestMatch(string displayType, params string[] knownDisplayTypes) {
|
||||
public ContentItemTemplateResult<TContent> LongestMatch(string displayType, params string[] knownDisplayTypes) {
|
||||
|
||||
if (string.IsNullOrEmpty(displayType))
|
||||
return this;
|
@@ -1,29 +1,27 @@
|
||||
using System;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public interface IPartDriver : IEvents {
|
||||
public interface IContentPartDriver : IEvents {
|
||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
||||
}
|
||||
|
||||
public abstract class PartDriver<TContent> : IPartDriver where TContent : class, IContent {
|
||||
|
||||
public abstract class ContentPartDriver<TContent> : IContentPartDriver where TContent : class, IContent {
|
||||
protected virtual string Prefix { get { return ""; } }
|
||||
protected virtual string Zone { get { return "body"; } }
|
||||
|
||||
DriverResult IPartDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
DriverResult IContentPartDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Display(part, context.DisplayType);
|
||||
}
|
||||
|
||||
DriverResult IPartDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
DriverResult IContentPartDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Editor(part);
|
||||
}
|
||||
|
||||
DriverResult IPartDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
DriverResult IContentPartDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Editor(part, context.Updater);
|
||||
}
|
||||
@@ -33,15 +31,18 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
protected virtual DriverResult Editor(TContent part, IUpdateModel updater) {return null;}
|
||||
|
||||
|
||||
public PartTemplateResult PartTemplate(object model) {
|
||||
return new PartTemplateResult(model, null, Prefix).Location(Zone);
|
||||
public ContentPartTemplateResult ContentPartTemplate(object model) {
|
||||
return new ContentPartTemplateResult(model, null, Prefix).Location(Zone);
|
||||
}
|
||||
public PartTemplateResult PartTemplate(object model, string template) {
|
||||
return new PartTemplateResult(model, template, Prefix).Location(Zone);
|
||||
|
||||
public ContentPartTemplateResult ContentPartTemplate(object model, string template) {
|
||||
return new ContentPartTemplateResult(model, template, Prefix).Location(Zone);
|
||||
}
|
||||
public PartTemplateResult PartTemplate(object model, string template, string prefix) {
|
||||
return new PartTemplateResult(model, template, prefix).Location(Zone);
|
||||
|
||||
public ContentPartTemplateResult ContentPartTemplate(object model, string template, string prefix) {
|
||||
return new ContentPartTemplateResult(model, template, prefix).Location(Zone);
|
||||
}
|
||||
|
||||
public CombinedResult Combined(params DriverResult[] results) {
|
||||
return new CombinedResult(results);
|
||||
}
|
@@ -6,17 +6,17 @@ using Orchard.Logging;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
[UsedImplicitly]
|
||||
public class PartDriverHandler : IContentHandler {
|
||||
private readonly IEnumerable<IPartDriver> _drivers;
|
||||
public class ContentPartDriverHandler : IContentHandler {
|
||||
private readonly IEnumerable<IContentPartDriver> _drivers;
|
||||
|
||||
public PartDriverHandler(IEnumerable<IPartDriver> drivers) {
|
||||
public ContentPartDriverHandler(IEnumerable<IContentPartDriver> drivers) {
|
||||
_drivers = drivers;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
System.Collections.Generic.IEnumerable<ContentType> IContentHandler.GetContentTypes() {
|
||||
IEnumerable<ContentType> IContentHandler.GetContentTypes() {
|
||||
return Enumerable.Empty<ContentType>();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
|
||||
void IContentHandler.Removed(RemoveContentContext context) { }
|
||||
|
||||
void IContentHandler.GetItemMetadata(GetItemMetadataContext context) { }
|
||||
void IContentHandler.GetContentItemMetadata(GetContentItemMetadataContext context) { }
|
||||
|
||||
void IContentHandler.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
@@ -65,6 +65,5 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,15 +1,14 @@
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.ContentManagement.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public class PartTemplateResult : DriverResult {
|
||||
public class ContentPartTemplateResult : DriverResult {
|
||||
public object Model { get; set; }
|
||||
public string TemplateName { get; set; }
|
||||
public string Prefix { get; set; }
|
||||
public string Zone { get; set; }
|
||||
public string Position { get; set; }
|
||||
|
||||
public PartTemplateResult(object model, string templateName, string prefix) {
|
||||
public ContentPartTemplateResult(object model, string templateName, string prefix) {
|
||||
Model = model;
|
||||
TemplateName = templateName;
|
||||
Prefix = prefix;
|
||||
@@ -25,12 +24,12 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
Zone + ":" + Position, Model, TemplateName, Prefix);
|
||||
}
|
||||
|
||||
public PartTemplateResult Location(string zone) {
|
||||
public ContentPartTemplateResult Location(string zone) {
|
||||
Zone = zone;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PartTemplateResult Location(string zone, string position) {
|
||||
public ContentPartTemplateResult Location(string zone, string position) {
|
||||
Zone = zone;
|
||||
Position = position;
|
||||
return this;
|
@@ -1,89 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Routing;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public interface IItemDriver : IEvents {
|
||||
IEnumerable<ContentType> GetContentTypes();
|
||||
void GetItemMetadata(GetItemMetadataContext context);
|
||||
|
||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
||||
}
|
||||
|
||||
public abstract class ItemDriver<TContent> : PartDriver<TContent>, IItemDriver where TContent : class, IContent {
|
||||
private ContentType _contentType;
|
||||
|
||||
public ItemDriver() {
|
||||
}
|
||||
|
||||
public ItemDriver(ContentType contentType) {
|
||||
_contentType = contentType;
|
||||
}
|
||||
|
||||
IEnumerable<ContentType> IItemDriver.GetContentTypes() {
|
||||
var contentType = GetContentType();
|
||||
return contentType != null ? new[] { contentType } : Enumerable.Empty<ContentType>();
|
||||
}
|
||||
|
||||
void IItemDriver.GetItemMetadata(GetItemMetadataContext context) {
|
||||
var item = context.ContentItem.As<TContent>();
|
||||
if (item != null) {
|
||||
context.Metadata.DisplayText = GetDisplayText(item) ?? context.Metadata.DisplayText;
|
||||
context.Metadata.DisplayRouteValues = GetDisplayRouteValues(item) ?? context.Metadata.DisplayRouteValues;
|
||||
context.Metadata.EditorRouteValues = GetEditorRouteValues(item) ?? context.Metadata.EditorRouteValues;
|
||||
}
|
||||
}
|
||||
|
||||
DriverResult IItemDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
return Display(new ItemViewModel<TContent>(context.ViewModel), context.DisplayType);
|
||||
}
|
||||
return Display((ItemViewModel<TContent>)context.ViewModel, context.DisplayType);
|
||||
}
|
||||
|
||||
DriverResult IItemDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
return Editor(new ItemViewModel<TContent>(context.ViewModel));
|
||||
}
|
||||
return Editor((ItemViewModel<TContent>)context.ViewModel);
|
||||
}
|
||||
|
||||
DriverResult IItemDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
if (part == null) {
|
||||
return null;
|
||||
}
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
return Editor(new ItemViewModel<TContent>(context.ViewModel), context.Updater);
|
||||
}
|
||||
return Editor((ItemViewModel<TContent>)context.ViewModel, context.Updater);
|
||||
}
|
||||
|
||||
protected virtual ContentType GetContentType() { return _contentType; }
|
||||
protected virtual string GetDisplayText(TContent item) { return null; }
|
||||
protected virtual RouteValueDictionary GetDisplayRouteValues(TContent item) { return null; }
|
||||
protected virtual RouteValueDictionary GetEditorRouteValues(TContent item) { return null; }
|
||||
|
||||
protected virtual DriverResult Display(ItemViewModel<TContent> viewModel, string displayType) { return null; }
|
||||
protected virtual DriverResult Editor(ItemViewModel<TContent> viewModel) { return null; }
|
||||
protected virtual DriverResult Editor(ItemViewModel<TContent> viewModel, IUpdateModel updater) { return null; }
|
||||
|
||||
public ItemTemplateResult<TContent> ItemTemplate(string templateName) {
|
||||
return new ItemTemplateResult<TContent>(templateName);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -4,7 +4,7 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public class BuildDisplayModelContext {
|
||||
public BuildDisplayModelContext(ItemViewModel viewModel, string displayType) {
|
||||
public BuildDisplayModelContext(ContentItemViewModel viewModel, string displayType) {
|
||||
ContentItem = viewModel.Item;
|
||||
DisplayType = displayType;
|
||||
ViewModel = viewModel;
|
||||
@@ -12,7 +12,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
|
||||
public ContentItem ContentItem { get; private set; }
|
||||
public string DisplayType { get; private set; }
|
||||
public ItemViewModel ViewModel { get; private set; }
|
||||
public ContentItemViewModel ViewModel { get; private set; }
|
||||
|
||||
public void AddDisplay(TemplateViewModel display) {
|
||||
//TEMP: (loudej) transition code - from TemplateViewMode to ZoneItem
|
||||
|
@@ -4,13 +4,13 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public class BuildEditorModelContext {
|
||||
public BuildEditorModelContext(ItemViewModel viewModel) {
|
||||
public BuildEditorModelContext(ContentItemViewModel viewModel) {
|
||||
ContentItem = viewModel.Item;
|
||||
ViewModel = viewModel;
|
||||
}
|
||||
|
||||
public ContentItem ContentItem { get; set; }
|
||||
public ItemViewModel ViewModel { get; set; }
|
||||
public ContentItemViewModel ViewModel { get; set; }
|
||||
|
||||
|
||||
public void AddEditor(TemplateViewModel display) {
|
||||
|
@@ -49,7 +49,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
Filters.Add(new InlineStorageFilter<TPart> { OnRemoved = handler });
|
||||
}
|
||||
|
||||
protected void OnGetItemMetadata<TPart>(Action<GetItemMetadataContext, TPart> handler) where TPart : class, IContent {
|
||||
protected void OnGetContentItemMetadata<TPart>(Action<GetContentItemMetadataContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnGetItemMetadata = handler });
|
||||
}
|
||||
protected void OnGetDisplayViewModel<TPart>(Action<BuildDisplayModelContext, TPart> handler) where TPart : class, IContent {
|
||||
@@ -104,11 +104,11 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
}
|
||||
|
||||
class InlineTemplateFilter<TPart> : TemplateFilterBase<TPart> where TPart : class, IContent {
|
||||
public Action<GetItemMetadataContext, TPart> OnGetItemMetadata { get; set; }
|
||||
public Action<GetContentItemMetadataContext, TPart> OnGetItemMetadata { get; set; }
|
||||
public Action<BuildDisplayModelContext, TPart> OnGetDisplayViewModel { get; set; }
|
||||
public Action<BuildEditorModelContext, TPart> OnGetEditorViewModel { get; set; }
|
||||
public Action<UpdateEditorModelContext, TPart> OnUpdateEditorViewModel { get; set; }
|
||||
protected override void GetItemMetadata(GetItemMetadataContext context, TPart instance) {
|
||||
protected override void GetContentItemMetadata(GetContentItemMetadataContext context, TPart instance) {
|
||||
if (OnGetItemMetadata != null) OnGetItemMetadata(context, instance);
|
||||
}
|
||||
protected override void BuildDisplayModel(BuildDisplayModelContext context, TPart instance) {
|
||||
@@ -185,9 +185,9 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
}
|
||||
|
||||
|
||||
void IContentHandler.GetItemMetadata(GetItemMetadataContext context) {
|
||||
void IContentHandler.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
|
||||
filter.GetItemMetadata(context);
|
||||
filter.GetContentItemMetadata(context);
|
||||
GetItemMetadata(context);
|
||||
}
|
||||
void IContentHandler.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
@@ -221,7 +221,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
protected virtual void Removing(RemoveContentContext context) { }
|
||||
protected virtual void Removed(RemoveContentContext context) { }
|
||||
|
||||
protected virtual void GetItemMetadata(GetItemMetadataContext context) { }
|
||||
protected virtual void GetItemMetadata(GetContentItemMetadataContext context) { }
|
||||
protected virtual void BuildDisplayModel(BuildDisplayModelContext context) { }
|
||||
protected virtual void BuildEditorModel(BuildEditorModelContext context) { }
|
||||
protected virtual void UpdateEditorModel(UpdateEditorModelContext context) { }
|
||||
|
@@ -9,7 +9,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
// todo: (heskew) use _prefix?
|
||||
private readonly string _prefix;
|
||||
private readonly string[] _displayTypes;
|
||||
private Action<UpdateEditorModelContext, ItemViewModel<TContent>> _updater;
|
||||
private Action<UpdateEditorModelContext, ContentItemViewModel<TContent>> _updater;
|
||||
|
||||
public ContentItemTemplates(string templateName)
|
||||
: this(templateName, "") {
|
||||
@@ -30,11 +30,11 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
|
||||
context.ViewModel.Prefix = _prefix;
|
||||
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
context.ViewModel.Adaptor = (html, viewModel) => {
|
||||
return new HtmlHelper<ItemViewModel<TContent>>(
|
||||
return new HtmlHelper<ContentItemViewModel<TContent>>(
|
||||
html.ViewContext,
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ItemViewModel<TContent>(viewModel)) },
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ContentItemViewModel<TContent>(viewModel)) },
|
||||
html.RouteCollection);
|
||||
};
|
||||
}
|
||||
@@ -57,26 +57,26 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
protected override void BuildEditorModel(BuildEditorModelContext context, TContent instance) {
|
||||
context.ViewModel.TemplateName = _templateName;
|
||||
context.ViewModel.Prefix = _prefix;
|
||||
if (context.ViewModel.GetType() != typeof(ItemViewModel<TContent>)) {
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
context.ViewModel.Adaptor = (html, viewModel) => {
|
||||
return new HtmlHelper<ItemViewModel<TContent>>(
|
||||
return new HtmlHelper<ContentItemViewModel<TContent>>(
|
||||
html.ViewContext,
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ItemViewModel<TContent>(viewModel)) },
|
||||
new ViewDataContainer { ViewData = new ViewDataDictionary(new ContentItemViewModel<TContent>(viewModel)) },
|
||||
html.RouteCollection);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
protected override void UpdateEditorModel(UpdateEditorModelContext context, TContent instance) {
|
||||
if (context.ViewModel is ItemViewModel<TContent>)
|
||||
_updater(context, (ItemViewModel<TContent>)context.ViewModel);
|
||||
if (context.ViewModel is ContentItemViewModel<TContent>)
|
||||
_updater(context, (ContentItemViewModel<TContent>)context.ViewModel);
|
||||
else
|
||||
_updater(context, new ItemViewModel<TContent>(context.ViewModel));
|
||||
_updater(context, new ContentItemViewModel<TContent>(context.ViewModel));
|
||||
context.ViewModel.TemplateName = _templateName;
|
||||
context.ViewModel.Prefix = _prefix;
|
||||
}
|
||||
|
||||
public void Updater(Action<UpdateEditorModelContext, ItemViewModel<TContent>> updater) {
|
||||
public void Updater(Action<UpdateEditorModelContext, ContentItemViewModel<TContent>> updater) {
|
||||
_updater = updater;
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public class GetItemMetadataContext {
|
||||
public class GetContentItemMetadataContext {
|
||||
public ContentItem ContentItem { get; set; }
|
||||
public ContentItemMetadata Metadata { get; set; }
|
||||
}
|
@@ -15,7 +15,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
void Removing(RemoveContentContext context);
|
||||
void Removed(RemoveContentContext context);
|
||||
|
||||
void GetItemMetadata(GetItemMetadataContext context);
|
||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
||||
void BuildDisplayModel(BuildDisplayModelContext context);
|
||||
void BuildEditorModel(BuildEditorModelContext context);
|
||||
void UpdateEditorModel(UpdateEditorModelContext context);
|
||||
|
@@ -1,11 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
interface IContentTemplateFilter : IContentFilter {
|
||||
void GetItemMetadata(GetItemMetadataContext context);
|
||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
||||
void BuildDisplayModel(BuildDisplayModelContext context);
|
||||
void BuildEditorModel(BuildEditorModelContext context);
|
||||
void UpdateEditorModel(UpdateEditorModelContext context);
|
||||
|
@@ -1,19 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public abstract class TemplateFilterBase<TPart> : IContentTemplateFilter where TPart : class, IContent {
|
||||
|
||||
protected virtual void GetItemMetadata(GetItemMetadataContext context, TPart instance) { }
|
||||
protected virtual void GetContentItemMetadata(GetContentItemMetadataContext context, TPart instance) { }
|
||||
protected virtual void BuildDisplayModel(BuildDisplayModelContext context, TPart instance) { }
|
||||
protected virtual void BuildEditorModel(BuildEditorModelContext context, TPart instance) { }
|
||||
protected virtual void UpdateEditorModel(UpdateEditorModelContext context, TPart instance) { }
|
||||
|
||||
void IContentTemplateFilter.GetItemMetadata(GetItemMetadataContext context) {
|
||||
void IContentTemplateFilter.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
GetItemMetadata(context, context.ContentItem.As<TPart>());
|
||||
GetContentItemMetadata(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
|
||||
void IContentTemplateFilter.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
@@ -30,6 +24,5 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
UpdateEditorModel(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,7 @@ using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public class UpdateEditorModelContext : BuildEditorModelContext {
|
||||
public UpdateEditorModelContext(ItemViewModel viewModel, IUpdateModel updater)
|
||||
public UpdateEditorModelContext(ContentItemViewModel viewModel, IUpdateModel updater)
|
||||
: base(viewModel) {
|
||||
Updater = updater;
|
||||
}
|
||||
|
@@ -21,9 +21,9 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
ContentItemMetadata GetItemMetadata(IContent contentItem);
|
||||
|
||||
ItemViewModel<TContent> BuildDisplayModel<TContent>(TContent content, string displayType) where TContent : IContent;
|
||||
ItemViewModel<TContent> BuildEditorModel<TContent>(TContent content) where TContent : IContent;
|
||||
ItemViewModel<TContent> UpdateEditorModel<TContent>(TContent content, IUpdateModel updater) where TContent : IContent;
|
||||
ContentItemViewModel<TContent> BuildDisplayModel<TContent>(TContent content, string displayType) where TContent : IContent;
|
||||
ContentItemViewModel<TContent> BuildEditorModel<TContent>(TContent content) where TContent : IContent;
|
||||
ContentItemViewModel<TContent> UpdateEditorModel<TContent>(TContent content, IUpdateModel updater) where TContent : IContent;
|
||||
}
|
||||
|
||||
public class VersionOptions {
|
||||
|
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
@@ -18,6 +17,7 @@ namespace Orchard.ContentManagement.Records {
|
||||
public ContentItemAlteration() {
|
||||
_recordTypes = Enumerable.Empty<Type>();
|
||||
}
|
||||
|
||||
public ContentItemAlteration(IEnumerable<Type> recordTypes) {
|
||||
_recordTypes = recordTypes;
|
||||
}
|
||||
@@ -69,7 +69,8 @@ namespace Orchard.ContentManagement.Records {
|
||||
.Cascade.All();
|
||||
}
|
||||
}
|
||||
class PartAlteration<TPartRecord> : IAlteration<ContentItemRecord> where TPartRecord : ContentPartRecord {
|
||||
|
||||
class ContentPartAlterationInternal<TPartRecord> : IAlteration<ContentItemRecord> where TPartRecord : ContentPartRecord {
|
||||
public void Override(AutoMapping<ContentItemRecord> mapping) {
|
||||
|
||||
// public TPartRecord TPartRecord {get;set;}
|
||||
@@ -94,7 +95,7 @@ namespace Orchard.ContentManagement.Records {
|
||||
}
|
||||
}
|
||||
|
||||
class PartVersionAlteration<TPartRecord> : IAlteration<ContentItemVersionRecord> where TPartRecord : ContentPartVersionRecord {
|
||||
class ContentPartVersionAlterationInternal<TPartRecord> : IAlteration<ContentItemVersionRecord> where TPartRecord : ContentPartVersionRecord {
|
||||
public void Override(AutoMapping<ContentItemVersionRecord> mapping) {
|
||||
|
||||
// public TPartRecord TPartRecord {get;set;}
|
||||
|
@@ -11,12 +11,12 @@ namespace Orchard.ContentManagement.Records {
|
||||
var recordType = mapping.GetType().GetGenericArguments().Single();
|
||||
|
||||
if (Utility.IsPartRecord(recordType)) {
|
||||
var type = typeof(PartAlteration<>).MakeGenericType(recordType);
|
||||
var type = typeof(ContentPartAlterationInternal<>).MakeGenericType(recordType);
|
||||
var alteration = (IAlteration)Activator.CreateInstance(type);
|
||||
alteration.Override(mapping);
|
||||
}
|
||||
else if (Utility.IsPartVersionRecord(recordType)) {
|
||||
var type = typeof(PartVersionAlteration<>).MakeGenericType(recordType);
|
||||
var type = typeof(ContentPartVersionAlterationInternal<>).MakeGenericType(recordType);
|
||||
var alteration = (IAlteration)Activator.CreateInstance(type);
|
||||
alteration.Override(mapping);
|
||||
}
|
||||
@@ -28,7 +28,7 @@ namespace Orchard.ContentManagement.Records {
|
||||
void Override(object mapping);
|
||||
}
|
||||
|
||||
class PartAlteration<T> : IAlteration where T : ContentPartRecord {
|
||||
class ContentPartAlterationInternal<T> : IAlteration where T : ContentPartRecord {
|
||||
public void Override(object mappingObj) {
|
||||
var mapping = (AutoMapping<T>)mappingObj;
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace Orchard.ContentManagement.Records {
|
||||
}
|
||||
}
|
||||
|
||||
class PartVersionAlteration<T> : IAlteration where T : ContentPartVersionRecord {
|
||||
class ContentPartVersionAlterationInternal<T> : IAlteration where T : ContentPartVersionRecord {
|
||||
public void Override(object mappingObj) {
|
||||
var mapping = (AutoMapping<T>)mappingObj;
|
||||
|
||||
|
@@ -5,13 +5,12 @@ using System.Web.Mvc.Html;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Mvc.Html {
|
||||
public static class ItemDisplayExtensions {
|
||||
public static MvcHtmlString DisplayForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, TItemModel item) where TItemModel : ItemViewModel {
|
||||
public static class ContentItemDisplayExtensions {
|
||||
public static MvcHtmlString DisplayForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, TItemModel item) where TItemModel : ContentItemViewModel {
|
||||
return html.DisplayForItem(x => item);
|
||||
}
|
||||
|
||||
public static MvcHtmlString DisplayForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, TItemModel>> expression) where TItemModel : ItemViewModel {
|
||||
|
||||
public static MvcHtmlString DisplayForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, TItemModel>> expression) where TItemModel : ContentItemViewModel {
|
||||
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
|
||||
var model = (TItemModel)metadata.Model;
|
||||
|
@@ -5,12 +5,12 @@ using System.Web.Mvc.Html;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.Mvc.Html {
|
||||
public static class ItemEditorExtensions {
|
||||
public static MvcHtmlString EditorForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, TItemModel item) where TItemModel : ItemViewModel {
|
||||
public static class ContentItemEditorExtensions {
|
||||
public static MvcHtmlString EditorForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, TItemModel item) where TItemModel : ContentItemViewModel {
|
||||
return html.EditorForItem(x => item);
|
||||
}
|
||||
public static MvcHtmlString EditorForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, TItemModel>> expression) where TItemModel : ItemViewModel {
|
||||
|
||||
public static MvcHtmlString EditorForItem<TModel, TItemModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, TItemModel>> expression) where TItemModel : ContentItemViewModel {
|
||||
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
|
||||
var model = (TItemModel)metadata.Model;
|
||||
|
@@ -45,7 +45,7 @@ namespace Orchard.Mvc.Html {
|
||||
}
|
||||
|
||||
public static MvcHtmlString ItemDisplayTemplate(this HtmlHelper html, IContent content, string template) {
|
||||
return html.Partial(string.Format("{0}/{1}", content.ContentItem.ContentType, template), new ItemViewModel(content.ContentItem));
|
||||
return html.Partial(string.Format("{0}/{1}", content.ContentItem.ContentType, template), new ContentItemViewModel(content.ContentItem));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -4,19 +4,19 @@ using Orchard.ContentManagement;
|
||||
using Orchard.UI.Zones;
|
||||
|
||||
namespace Orchard.Mvc.ViewModels {
|
||||
public class ItemViewModel : IZoneContainer {
|
||||
public class ContentItemViewModel : IZoneContainer {
|
||||
private ContentItem _item;
|
||||
|
||||
public ItemViewModel() {
|
||||
public ContentItemViewModel() {
|
||||
Zones = new ZoneCollection();
|
||||
}
|
||||
|
||||
public ItemViewModel(ContentItem item) {
|
||||
public ContentItemViewModel(ContentItem item) {
|
||||
Zones = new ZoneCollection();
|
||||
Item = item;
|
||||
}
|
||||
|
||||
public ItemViewModel(ItemViewModel viewModel) {
|
||||
public ContentItemViewModel(ContentItemViewModel viewModel) {
|
||||
TemplateName = viewModel.TemplateName;
|
||||
Prefix = viewModel.Prefix;
|
||||
Item = viewModel.Item;
|
||||
@@ -32,23 +32,23 @@ namespace Orchard.Mvc.ViewModels {
|
||||
_item = value;
|
||||
}
|
||||
|
||||
public Func<HtmlHelper, ItemViewModel, HtmlHelper> Adaptor { get; set; }
|
||||
public Func<HtmlHelper, ContentItemViewModel, HtmlHelper> Adaptor { get; set; }
|
||||
public string TemplateName { get; set; }
|
||||
public string Prefix { get; set; }
|
||||
public ZoneCollection Zones { get; private set; }
|
||||
}
|
||||
|
||||
public class ItemViewModel<TPart> : ItemViewModel where TPart : IContent {
|
||||
public class ContentItemViewModel<TPart> : ContentItemViewModel where TPart : IContent {
|
||||
private TPart _item;
|
||||
|
||||
public ItemViewModel() {
|
||||
public ContentItemViewModel() {
|
||||
}
|
||||
|
||||
public ItemViewModel(TPart content)
|
||||
public ContentItemViewModel(TPart content)
|
||||
: base(content.ContentItem) {
|
||||
}
|
||||
|
||||
public ItemViewModel(ItemViewModel viewModel)
|
||||
public ContentItemViewModel(ContentItemViewModel viewModel)
|
||||
: base(viewModel) {
|
||||
}
|
||||
|
@@ -135,14 +135,14 @@
|
||||
<Compile Include="ContentManagement\ContentType.cs" />
|
||||
<Compile Include="ContentManagement\DefaultContentManager.cs" />
|
||||
<Compile Include="ContentManagement\DefaultContentQuery.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\AutomaticPartDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\AutomaticContentPartDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\CombinedResult.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\DriverResult.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ItemDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ItemDriverHandler.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ItemTemplateResult.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\PartDriverHandler.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\PartTemplateResult.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemDriverHandler.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemTemplateResult.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentPartDriverHandler.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentPartTemplateResult.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\ActivatedContentContext.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\ActivatingContentContext.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\ActivatingFilter.cs" />
|
||||
@@ -152,7 +152,7 @@
|
||||
<Compile Include="ContentManagement\Handlers\ContentItemBuilder.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\ContentItemTemplates.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\CreateContentContext.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\GetItemMetadataContext.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\GetContentItemMetadataContext.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\IContentActivatingFilter.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\IContentFilter.cs" />
|
||||
<Compile Include="ContentManagement\Handlers\IContentHandler.cs" />
|
||||
@@ -167,7 +167,7 @@
|
||||
<Compile Include="ContentManagement\IContent.cs" />
|
||||
<Compile Include="ContentManagement\IContentManager.cs" />
|
||||
<Compile Include="ContentManagement\IContentQuery.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\PartDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentPartDriver.cs" />
|
||||
<Compile Include="ContentManagement\IUpdateModel.cs" />
|
||||
<Compile Include="ContentManagement\Records\ContentItemRecord.cs" />
|
||||
<Compile Include="ContentManagement\Records\ContentItemAlteration.cs" />
|
||||
@@ -177,7 +177,7 @@
|
||||
<Compile Include="ContentManagement\Records\ContentPartVersionRecord.cs" />
|
||||
<Compile Include="ContentManagement\Records\ContentTypeRecord.cs" />
|
||||
<Compile Include="ContentManagement\Records\Utility.cs" />
|
||||
<Compile Include="Mvc\ViewModels\ItemViewModel.cs" />
|
||||
<Compile Include="Mvc\ViewModels\ContentItemViewModel.cs" />
|
||||
<Compile Include="ContentManagement\ViewModels\TemplateViewModel.cs" />
|
||||
<Compile Include="Controllers\AccountController.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
@@ -225,8 +225,8 @@
|
||||
<Compile Include="Logging\NullLoggerFactory.cs" />
|
||||
<Compile Include="Mvc\Html\ContainerExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\ContentItemExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\ItemDisplayExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\ItemEditorExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\ContentItemDisplayExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\ContentItemEditorExtensions.cs" />
|
||||
<Compile Include="Mvc\Html\LayoutExtensions.cs" />
|
||||
<Compile Include="Mvc\MvcModule.cs" />
|
||||
<Compile Include="Mvc\Html\HtmlHelperExtensions.cs" />
|
||||
@@ -254,10 +254,10 @@
|
||||
<Compile Include="UI\Resources\ResourceFilter.cs" />
|
||||
<Compile Include="UI\Resources\ResourceManager.cs" />
|
||||
<Compile Include="UI\Zones\DelegateZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\ItemDisplayZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\ContentItemDisplayZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\IZoneManager.cs" />
|
||||
<Compile Include="UI\Zones\PartDisplayZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\PartEditorZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\ContentPartDisplayZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\ContentPartEditorZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\RenderPartialZoneItem.cs" />
|
||||
<Compile Include="UI\Zones\ZoneCollection.cs" />
|
||||
<Compile Include="UI\Zones\ZoneEntry.cs" />
|
||||
|
@@ -3,8 +3,8 @@ using Orchard.Mvc.Html;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
|
||||
namespace Orchard.UI.Zones {
|
||||
public class ItemDisplayZoneItem : ZoneItem {
|
||||
public ItemViewModel ViewModel { get; set; }
|
||||
public class ContentItemDisplayZoneItem : ZoneItem {
|
||||
public ContentItemViewModel ViewModel { get; set; }
|
||||
|
||||
public override void Execute<TModel>(HtmlHelper<TModel> html) {
|
||||
html.DisplayForItem(ViewModel);
|
@@ -2,7 +2,7 @@ using System.Web.Mvc;
|
||||
using System.Web.Mvc.Html;
|
||||
|
||||
namespace Orchard.UI.Zones {
|
||||
public class PartDisplayZoneItem : ZoneItem {
|
||||
public class ContentPartDisplayZoneItem : ZoneItem {
|
||||
public object Model { get; set; }
|
||||
public string TemplateName { get; set; }
|
||||
public string Prefix { get; set; }
|
@@ -2,7 +2,7 @@ using System.Web.Mvc;
|
||||
using System.Web.Mvc.Html;
|
||||
|
||||
namespace Orchard.UI.Zones {
|
||||
public class PartEditorZoneItem : ZoneItem {
|
||||
public class ContentPartEditorZoneItem : ZoneItem {
|
||||
public object Model { get; set; }
|
||||
public string TemplateName { get; set; }
|
||||
public string Prefix { get; set; }
|
@@ -15,14 +15,14 @@ namespace Orchard.UI.Zones {
|
||||
public void AddRenderPartial(string location, string templateName, object model) {
|
||||
AddZoneItem(location, new RenderPartialZoneItem { Model = model, TemplateName = templateName });
|
||||
}
|
||||
public void AddDisplayItem(string location, ItemViewModel viewModel) {
|
||||
AddZoneItem(location, new ItemDisplayZoneItem { ViewModel = viewModel });
|
||||
public void AddDisplayItem(string location, ContentItemViewModel viewModel) {
|
||||
AddZoneItem(location, new ContentItemDisplayZoneItem { ViewModel = viewModel });
|
||||
}
|
||||
public void AddDisplayPart(string location, object model, string templateName, string prefix) {
|
||||
AddZoneItem(location, new PartDisplayZoneItem { Model = model, TemplateName = templateName, Prefix = prefix });
|
||||
AddZoneItem(location, new ContentPartDisplayZoneItem { Model = model, TemplateName = templateName, Prefix = prefix });
|
||||
}
|
||||
public void AddEditorPart(string location, object model, string templateName, string prefix) {
|
||||
AddZoneItem(location, new PartEditorZoneItem { Model = model, TemplateName = templateName, Prefix = prefix });
|
||||
AddZoneItem(location, new ContentPartEditorZoneItem { Model = model, TemplateName = templateName, Prefix = prefix });
|
||||
}
|
||||
|
||||
private void AddZoneItem(string location, ZoneItem item) {
|
||||
|
Reference in New Issue
Block a user