mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-24 21:43:37 +08:00
Build*Model -> Build*Shape (in process of changing to work with (Clay) shapes instead of ContentItemViewModel)
--HG-- branch : dev
This commit is contained in:
@@ -103,7 +103,7 @@ namespace Orchard.Core.Tests.Common.Providers {
|
||||
var item = contentManager.Create<ICommonPart>("test-item", VersionOptions.Draft, init => { });
|
||||
var viewModel = new OwnerEditorViewModel() { Owner = "User" };
|
||||
updateModel.Setup(x => x.TryUpdateModel(viewModel, "", null, null)).Returns(true);
|
||||
contentManager.UpdateEditorModel(item.ContentItem, updateModel.Object);
|
||||
contentManager.UpdateEditorShape(item.ContentItem, updateModel.Object);
|
||||
}
|
||||
|
||||
class UpdatModelStub : IUpdateModel {
|
||||
@@ -142,7 +142,7 @@ namespace Orchard.Core.Tests.Common.Providers {
|
||||
|
||||
var updater = new UpdatModelStub() { Owner = null };
|
||||
|
||||
contentManager.UpdateEditorModel(item.ContentItem, updater);
|
||||
contentManager.UpdateEditorShape(item.ContentItem, updater);
|
||||
}
|
||||
|
||||
[Test, Ignore("Fix pending")]
|
||||
@@ -160,7 +160,7 @@ namespace Orchard.Core.Tests.Common.Providers {
|
||||
|
||||
var updater = new UpdatModelStub() {Owner = ""};
|
||||
|
||||
contentManager.UpdateEditorModel(item.ContentItem, updater);
|
||||
contentManager.UpdateEditorShape(item.ContentItem, updater);
|
||||
|
||||
Assert.That(updater.ModelErrors.ContainsKey("CommonPart.Owner"), Is.True);
|
||||
}
|
||||
|
@@ -58,7 +58,7 @@ namespace Orchard.Core.Tests.Routable.Services {
|
||||
public void InvalidCharactersShouldBeReplacedByADash() {
|
||||
var contentManager = _container.Resolve<IContentManager>();
|
||||
|
||||
var thing = contentManager.Create<Thing>(ThingDriver.ContentType.Name, t => {
|
||||
var thing = contentManager.Create<Thing>("thing", t => {
|
||||
t.As<RoutePart>().Record = new RoutePartRecord();
|
||||
t.Title = "Please do not use any of the following characters in your slugs: \":\", \"?\", \"#\", \"[\", \"]\", \"@\", \"!\", \"$\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \";\", \"=\"";
|
||||
});
|
||||
@@ -159,13 +159,13 @@ namespace Orchard.Core.Tests.Routable.Services {
|
||||
|
||||
private RoutePart CreateRoutePart(string title, string slug = "", string containerPath = "") {
|
||||
var contentManager = _container.Resolve<IContentManager>();
|
||||
return contentManager.Create<Thing>(ThingDriver.ContentType.Name, t => {
|
||||
return contentManager.Create<Thing>("thing", t => {
|
||||
t.As<RoutePart>().Record = new RoutePartRecord();
|
||||
if (!string.IsNullOrWhiteSpace(slug))
|
||||
t.As<RoutePart>().Slug = slug;
|
||||
t.Title = title;
|
||||
if (!string.IsNullOrWhiteSpace(containerPath)) {
|
||||
t.As<ICommonPart>().Container = contentManager.Create<Thing>(ThingDriver.ContentType.Name, tt => {
|
||||
t.As<ICommonPart>().Container = contentManager.Create<Thing>("thing", tt => {
|
||||
tt.As<RoutePart>().Path = containerPath;
|
||||
tt.As<RoutePart>().Slug = containerPath;
|
||||
});
|
||||
@@ -191,10 +191,10 @@ namespace Orchard.Core.Tests.Routable.Services {
|
||||
[UsedImplicitly]
|
||||
public class ThingHandler : ContentHandler {
|
||||
public ThingHandler() {
|
||||
Filters.Add(new ActivatingFilter<Thing>(ThingDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>(ThingDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<CommonPart>(ThingDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<RoutePart>(ThingDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<Thing>("thing"));
|
||||
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>("thing"));
|
||||
Filters.Add(new ActivatingFilter<CommonPart>("thing"));
|
||||
Filters.Add(new ActivatingFilter<RoutePart>("thing"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,20 +212,13 @@ namespace Orchard.Core.Tests.Routable.Services {
|
||||
}
|
||||
}
|
||||
|
||||
public class ThingDriver : ContentItemDriver<Thing> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "thing",
|
||||
DisplayName = "Thing"
|
||||
};
|
||||
}
|
||||
|
||||
[UsedImplicitly]
|
||||
public class StuffHandler : ContentHandler {
|
||||
public StuffHandler() {
|
||||
Filters.Add(new ActivatingFilter<Stuff>(StuffDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>(StuffDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<CommonPart>(StuffDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<RoutePart>(StuffDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<Stuff>("stuff"));
|
||||
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>("stuff"));
|
||||
Filters.Add(new ActivatingFilter<CommonPart>("stuff"));
|
||||
Filters.Add(new ActivatingFilter<RoutePart>("stuff"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,12 +235,5 @@ namespace Orchard.Core.Tests.Routable.Services {
|
||||
set { this.As<RoutePart>().Slug = value; }
|
||||
}
|
||||
}
|
||||
|
||||
public class StuffDriver : ContentItemDriver<Stuff> {
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "stuff",
|
||||
DisplayName = "Stuff"
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
@@ -7,6 +7,8 @@ using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Drivers.Coordinators;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.DisplayManagement.Implementation;
|
||||
using Orchard.Environment.AutofacUtil;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
using Orchard.Tests.Utility;
|
||||
@@ -22,14 +24,15 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
|
||||
var builder = new ContainerBuilder();
|
||||
//builder.RegisterModule(new ImplicitCollectionSupportModule());
|
||||
builder.RegisterType<ContentPartDriverCoordinator>().As<IContentHandler>();
|
||||
builder.RegisterAutoMocking();
|
||||
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
|
||||
builder.RegisterAutoMocking(MockBehavior.Loose);
|
||||
_container = builder.Build();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DriverHandlerShouldNotThrowException() {
|
||||
var contentHandler = _container.Resolve<IContentHandler>();
|
||||
contentHandler.BuildDisplayModel(null);
|
||||
contentHandler.BuildDisplayShape(null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -41,12 +44,17 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
|
||||
builder.RegisterInstance(driver2.Object);
|
||||
builder.Update(_container);
|
||||
var contentHandler = _container.Resolve<IContentHandler>();
|
||||
var shapeHelperFactory = _container.Resolve<IShapeHelperFactory>();
|
||||
|
||||
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(new ContentItem()), null);
|
||||
var shape = shapeHelperFactory.CreateHelper();
|
||||
ContentItem foo = shape.Foo();
|
||||
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(foo), "");
|
||||
|
||||
driver1.Verify(x => x.BuildDisplayModel(ctx), Times.Never());
|
||||
contentHandler.BuildDisplayModel(ctx);
|
||||
driver1.Verify(x => x.BuildDisplayModel(ctx));
|
||||
driver1.Verify(x => x.BuildDisplayShape(ctx), Times.Never());
|
||||
driver2.Verify(x => x.BuildDisplayShape(ctx), Times.Never());
|
||||
contentHandler.BuildDisplayShape(ctx);
|
||||
driver1.Verify(x => x.BuildDisplayShape(ctx));
|
||||
driver2.Verify(x => x.BuildDisplayShape(ctx));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -55,15 +63,18 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
|
||||
var builder = new ContainerUpdater();
|
||||
builder.RegisterInstance(driver).As<IContentPartDriver>();
|
||||
builder.Update(_container);
|
||||
|
||||
var contentHandler = _container.Resolve<IContentHandler>();
|
||||
var shapeHelperFactory = _container.Resolve<IShapeHelperFactory>();
|
||||
|
||||
var item = new ContentItem();
|
||||
item.Weld(new StubPart { Foo = new[] { "a", "b", "c" } });
|
||||
var contentItem = new ContentItem();
|
||||
contentItem.Weld(new StubPart { Foo = new[] { "a", "b", "c" } });
|
||||
|
||||
var shape = shapeHelperFactory.CreateHelper();
|
||||
var item = shape.Item(contentItem);
|
||||
|
||||
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(item), "");
|
||||
Assert.That(ctx.ViewModel.Zones.Count(), Is.EqualTo(0));
|
||||
contentHandler.BuildDisplayModel(ctx);
|
||||
contentHandler.BuildDisplayShape(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<ContentPartDisplayZoneItem>().Single().Prefix, Is.EqualTo("Stub"));
|
||||
|
@@ -6,7 +6,7 @@ using Orchard.ContentManagement.ViewModels;
|
||||
namespace Orchard.Tests.ContentManagement.Models {
|
||||
public class AlphaHandler : ContentHandler {
|
||||
public AlphaHandler() {
|
||||
OnGetDisplayViewModel<Alpha>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" }));
|
||||
OnGetDisplayShape<Alpha>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" }));
|
||||
}
|
||||
public override IEnumerable<ContentType> GetContentTypes() {
|
||||
return new[] { new ContentType { Name = "alpha" } };
|
||||
|
@@ -4,7 +4,7 @@ using Orchard.ContentManagement.ViewModels;
|
||||
namespace Orchard.Tests.ContentManagement.Models {
|
||||
public class FlavoredHandler : ContentHandler {
|
||||
public FlavoredHandler() {
|
||||
OnGetDisplayViewModel<Flavored>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part)));
|
||||
OnGetDisplayShape<Flavored>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part)));
|
||||
}
|
||||
protected override void Activating(ActivatingContentContext context) {
|
||||
if (context.ContentType == "beta" || context.ContentType == "alpha") {
|
||||
|
@@ -4,7 +4,7 @@ using Orchard.ContentManagement.ViewModels;
|
||||
namespace Orchard.Tests.ContentManagement.Models {
|
||||
public class StyledHandler : ContentHandler {
|
||||
public StyledHandler() {
|
||||
OnGetDisplayViewModel<Styled>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "10" }));
|
||||
OnGetDisplayShape<Styled>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "10" }));
|
||||
}
|
||||
|
||||
protected override void Activating(ActivatingContentContext context) {
|
||||
|
@@ -190,7 +190,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
var entry = new ListContentsViewModel.Entry {
|
||||
ContentItem = contentItem,
|
||||
ContentItemMetadata = _contentManager.GetItemMetadata(contentItem),
|
||||
ViewModel = _contentManager.BuildDisplayModel(contentItem, "SummaryAdmin"),
|
||||
ViewModel = _contentManager.BuildDisplayShape(contentItem, "SummaryAdmin"),
|
||||
};
|
||||
if (string.IsNullOrEmpty(entry.ContentItemMetadata.DisplayText)) {
|
||||
entry.ContentItemMetadata.DisplayText = string.Format("[{0}#{1}]", contentItem.ContentType, contentItem.Id);
|
||||
@@ -225,7 +225,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
|
||||
var model = new CreateItemViewModel {
|
||||
Id = id,
|
||||
Content = _contentManager.BuildEditorModel(contentItem)
|
||||
Content = _contentManager.BuildEditorShape(contentItem)
|
||||
};
|
||||
PrepareEditorViewModel(model.Content);
|
||||
return View("Create", model);
|
||||
@@ -240,7 +240,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
_contentManager.Create(contentItem, VersionOptions.Draft);
|
||||
model.Content = _contentManager.UpdateEditorModel(contentItem, this);
|
||||
model.Content = _contentManager.UpdateEditorShape(contentItem, this);
|
||||
|
||||
if (!ModelState.IsValid) {
|
||||
_transactionManager.Cancel();
|
||||
@@ -266,7 +266,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
|
||||
var model = new EditItemViewModel {
|
||||
Id = id,
|
||||
Content = _contentManager.BuildEditorModel(contentItem)
|
||||
Content = _contentManager.BuildEditorShape(contentItem)
|
||||
};
|
||||
|
||||
PrepareEditorViewModel(model.Content);
|
||||
@@ -284,7 +284,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Couldn't edit content")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
model.Content = _contentManager.UpdateEditorModel(contentItem, this);
|
||||
model.Content = _contentManager.UpdateEditorShape(contentItem, this);
|
||||
if (!ModelState.IsValid) {
|
||||
_transactionManager.Cancel();
|
||||
PrepareEditorViewModel(model.Content);
|
||||
|
@@ -20,7 +20,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
var contentItem = _contentManager.Get(id, VersionOptions.Published);
|
||||
|
||||
var model = Shape.Content(
|
||||
_contentManager.BuildDisplayModel(contentItem, "Detail")
|
||||
_contentManager.BuildDisplayShape(contentItem, "Detail")
|
||||
);
|
||||
//PrepareDisplayViewModel(model.Content);
|
||||
return View(model);
|
||||
@@ -37,7 +37,7 @@ namespace Orchard.Core.Contents.Controllers {
|
||||
var contentItem = _contentManager.Get(id, versionOptions);
|
||||
|
||||
var model = new DisplayItemViewModel {
|
||||
Content = _contentManager.BuildDisplayModel(contentItem, "Detail")
|
||||
Content = _contentManager.BuildDisplayShape(contentItem, "Detail")
|
||||
};
|
||||
PrepareDisplayViewModel(model.Content);
|
||||
return View("Preview", model);
|
||||
|
@@ -60,7 +60,7 @@ namespace Orchard.Core.Localization.Controllers {
|
||||
Id = id,
|
||||
SelectedCulture = selectedCulture,
|
||||
SiteCultures = siteCultures,
|
||||
Content = _contentManager.BuildEditorModel(contentItem)
|
||||
Content = _contentManager.BuildEditorShape(contentItem)
|
||||
};
|
||||
Services.TransactionManager.Cancel();
|
||||
|
||||
@@ -98,13 +98,13 @@ namespace Orchard.Core.Localization.Controllers {
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.Content = _contentManager.UpdateEditorModel(contentItemTranslation, this);
|
||||
viewModel.Content = _contentManager.UpdateEditorShape(contentItemTranslation, this);
|
||||
|
||||
if (!ModelState.IsValid) {
|
||||
Services.TransactionManager.Cancel();
|
||||
viewModel.SiteCultures = _cultureManager.ListCultures().Where(s => s != _localizationService.GetContentCulture(contentItem) && s != _cultureManager.GetSiteCulture());
|
||||
contentItem.As<LocalizationPart>().Culture.Culture = null;
|
||||
viewModel.Content = _contentManager.BuildEditorModel(contentItem);
|
||||
viewModel.Content = _contentManager.BuildEditorShape(contentItem);
|
||||
PrepareEditorViewModel(viewModel.Content);
|
||||
return View(viewModel);
|
||||
}
|
||||
|
@@ -80,8 +80,8 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Couldn't manage the main menu")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var menuPart = _services.ContentManager.New<MenuPart>(MenuItemPartDriver.ContentType.Name);
|
||||
model.MenuItem = _services.ContentManager.UpdateEditorModel(menuPart, this);
|
||||
var menuPart = _services.ContentManager.New<MenuPart>("MenuItem");
|
||||
model.MenuItem = _services.ContentManager.UpdateEditorShape(menuPart, this);
|
||||
|
||||
if (!ModelState.IsValid) {
|
||||
_services.TransactionManager.Cancel();
|
||||
|
@@ -6,32 +6,20 @@ using Orchard.Security;
|
||||
|
||||
namespace Orchard.Core.Navigation.Drivers {
|
||||
[UsedImplicitly]
|
||||
public class MenuItemPartDriver : ContentItemDriver<MenuItemPart> {
|
||||
public class MenuItemPartDriver : ContentPartDriver<MenuItemPart> {
|
||||
private readonly IAuthorizationService _authorizationService;
|
||||
private readonly IWorkContextAccessor _workContextAccessor;
|
||||
|
||||
public readonly static ContentType ContentType = new ContentType {
|
||||
Name = "MenuItem",
|
||||
DisplayName = "Menu Item"
|
||||
};
|
||||
|
||||
public MenuItemPartDriver(IAuthorizationService authorizationService) {
|
||||
public MenuItemPartDriver(IAuthorizationService authorizationService, IWorkContextAccessor workContextAccessor) {
|
||||
_authorizationService = authorizationService;
|
||||
}
|
||||
|
||||
public virtual IUser CurrentUser { get; set; }
|
||||
|
||||
protected override ContentType GetContentType() {
|
||||
return ContentType;
|
||||
}
|
||||
|
||||
protected override string Prefix { get { return ""; } }
|
||||
|
||||
protected override string GetDisplayText(MenuItemPart itemPart) {
|
||||
return itemPart.Url;
|
||||
_workContextAccessor = workContextAccessor;
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(MenuItemPart itemPart, IUpdateModel updater) {
|
||||
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, itemPart))
|
||||
//todo: (heskew) need context
|
||||
var currentUser = _workContextAccessor.GetContext().CurrentUser;
|
||||
|
||||
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, currentUser, itemPart))
|
||||
return null;
|
||||
|
||||
updater.TryUpdateModel(itemPart, Prefix, null, null);
|
||||
|
@@ -1,5 +1,4 @@
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Core.Navigation.Drivers;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
@@ -8,7 +7,7 @@ namespace Orchard.Core.Navigation.Handlers {
|
||||
[UsedImplicitly]
|
||||
public class MenuItemPartHandler : ContentHandler {
|
||||
public MenuItemPartHandler(IRepository<MenuItemPartRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<MenuItemPart>(MenuItemPartDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<MenuItemPart>("MenuItem"));
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
}
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ namespace Orchard.Core.Routable.Controllers {
|
||||
throw new ApplicationException("Ambiguous content");
|
||||
}
|
||||
var model = new RoutableDisplayViewModel {
|
||||
Routable = _contentManager.BuildDisplayModel<IRoutableAspect>(hits.Single(), "Detail")
|
||||
Routable = _contentManager.BuildDisplayShape<IRoutableAspect>(hits.Single(), "Detail")
|
||||
};
|
||||
PrepareDisplayViewModel(model.Routable);
|
||||
return View("Display", model);
|
||||
@@ -71,7 +71,7 @@ namespace Orchard.Core.Routable.Controllers {
|
||||
}
|
||||
}
|
||||
|
||||
_contentManager.UpdateEditorModel(contentItem, this);
|
||||
_contentManager.UpdateEditorShape(contentItem, this);
|
||||
_transactionManager.Cancel();
|
||||
|
||||
return Json(contentItem.As<IRoutableAspect>().Slug ?? slug);
|
||||
|
@@ -37,7 +37,7 @@ namespace Orchard.Core.Routable.Services {
|
||||
return new NotFoundResult();
|
||||
|
||||
var model = new RoutableDisplayViewModel {
|
||||
Routable = _contentManager.BuildDisplayModel<IRoutableAspect>(contentItem.As<RoutePart>(), "Detail")
|
||||
Routable = _contentManager.BuildDisplayShape<IRoutableAspect>(contentItem.As<RoutePart>(), "Detail")
|
||||
};
|
||||
|
||||
return new ViewResult {
|
||||
|
@@ -33,7 +33,7 @@ namespace Orchard.Core.Settings.Controllers {
|
||||
Site = _siteService.GetSiteSettings().As<SiteSettingsPart>(),
|
||||
SiteCultures = _cultureManager.ListCultures()
|
||||
};
|
||||
model.ViewModel = Services.ContentManager.BuildEditorModel(model.Site);
|
||||
model.ViewModel = Services.ContentManager.BuildEditorShape(model.Site);
|
||||
return View(model);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace Orchard.Core.Settings.Controllers {
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var viewModel = new SettingsIndexViewModel { Site = _siteService.GetSiteSettings().As<SiteSettingsPart>() };
|
||||
viewModel.ViewModel = Services.ContentManager.UpdateEditorModel(viewModel.Site.ContentItem, this);
|
||||
viewModel.ViewModel = Services.ContentManager.UpdateEditorShape(viewModel.Site.ContentItem, this);
|
||||
|
||||
if (!TryUpdateModel(viewModel)) {
|
||||
return View(viewModel);
|
||||
|
@@ -34,8 +34,8 @@ namespace Orchard.DevTools.Controllers {
|
||||
.Select(x => x.GetType())
|
||||
.SelectMany(x => AllTypes(x))
|
||||
.Distinct();
|
||||
model.DisplayModel = _contentManager.BuildDisplayModel(model.Item, "Detail");
|
||||
model.EditorModel = _contentManager.BuildEditorModel(model.Item);
|
||||
model.DisplayModel = _contentManager.BuildDisplayShape(model.Item, "Detail");
|
||||
model.EditorModel = _contentManager.BuildEditorShape(model.Item);
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
@@ -6,12 +6,12 @@ using Orchard.DevTools.Models;
|
||||
namespace Orchard.DevTools.Handlers {
|
||||
[UsedImplicitly]
|
||||
public class DebugLinkHandler : ContentHandler {
|
||||
protected override void BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
protected override void BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel<Settings.DevToolsSettings>();
|
||||
if (devToolsSettings.ShowDebugLinks)
|
||||
context.AddDisplay(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" });
|
||||
}
|
||||
protected override void BuildEditorModel(BuildEditorModelContext context) {
|
||||
protected override void BuildEditorShape(BuildEditorModelContext context) {
|
||||
var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel<Settings.DevToolsSettings>();
|
||||
if (devToolsSettings.ShowDebugLinks)
|
||||
context.AddEditor(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" });
|
||||
|
@@ -4,7 +4,6 @@ using Orchard.ContentManagement;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Security;
|
||||
using Orchard.UI.Notify;
|
||||
using Orchard.Users.Drivers;
|
||||
using Orchard.Users.Models;
|
||||
using Orchard.Users.Services;
|
||||
using Orchard.Users.ViewModels;
|
||||
@@ -50,9 +49,9 @@ namespace Orchard.Users.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to manage users")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var user = Services.ContentManager.New<IUser>(UserPartDriver.ContentType.Name);
|
||||
var user = Services.ContentManager.New<IUser>("User");
|
||||
var model = new UserCreateViewModel {
|
||||
User = Services.ContentManager.BuildEditorModel(user)
|
||||
User = Services.ContentManager.BuildEditorShape(user)
|
||||
};
|
||||
return View(model);
|
||||
}
|
||||
@@ -62,8 +61,8 @@ namespace Orchard.Users.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to manage users")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var user = Services.ContentManager.New<IUser>(UserPartDriver.ContentType.Name);
|
||||
model.User = Services.ContentManager.UpdateEditorModel(user, this);
|
||||
var user = Services.ContentManager.New<IUser>("User");
|
||||
model.User = Services.ContentManager.UpdateEditorShape(user, this);
|
||||
if (!ModelState.IsValid) {
|
||||
Services.TransactionManager.Cancel();
|
||||
return View(model);
|
||||
@@ -84,7 +83,7 @@ namespace Orchard.Users.Controllers {
|
||||
model.Email,
|
||||
null, null, true));
|
||||
|
||||
model.User = Services.ContentManager.UpdateEditorModel(user, this);
|
||||
model.User = Services.ContentManager.UpdateEditorShape(user, this);
|
||||
|
||||
if (ModelState.IsValid == false) {
|
||||
Services.TransactionManager.Cancel();
|
||||
@@ -99,7 +98,7 @@ namespace Orchard.Users.Controllers {
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
return View(new UserEditViewModel {
|
||||
User = Services.ContentManager.BuildEditorModel<UserPart>(id)
|
||||
User = Services.ContentManager.BuildEditorShape<UserPart>(id)
|
||||
});
|
||||
}
|
||||
|
||||
@@ -109,7 +108,7 @@ namespace Orchard.Users.Controllers {
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var model = new UserEditViewModel {
|
||||
User = Services.ContentManager.UpdateEditorModel<UserPart>(id, this)
|
||||
User = Services.ContentManager.UpdateEditorShape<UserPart>(id, this)
|
||||
};
|
||||
|
||||
TryUpdateModel(model);
|
||||
|
@@ -1,14 +1,13 @@
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Data;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Users.Drivers;
|
||||
using Orchard.Users.Models;
|
||||
|
||||
namespace Orchard.Users.Handlers {
|
||||
[UsedImplicitly]
|
||||
public class UserPartHandler : ContentHandler {
|
||||
public UserPartHandler(IRepository<UserPartRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<UserPart>(UserPartDriver.ContentType.Name));
|
||||
Filters.Add(new ActivatingFilter<UserPart>("User"));
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,6 @@ using Orchard.Data;
|
||||
using Orchard.Logging;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Security;
|
||||
using Orchard.Users.Drivers;
|
||||
using Orchard.Users.Models;
|
||||
|
||||
namespace Orchard.Users.Services {
|
||||
@@ -34,7 +33,7 @@ namespace Orchard.Users.Services {
|
||||
public IUser CreateUser(CreateUserParams createUserParams) {
|
||||
Logger.Information("CreateUser {0} {1}", createUserParams.Username, createUserParams.Email);
|
||||
|
||||
return _contentManager.Create<UserPart>(UserPartDriver.ContentType.Name, init =>
|
||||
return _contentManager.Create<UserPart>("User", init =>
|
||||
{
|
||||
init.Record.UserName = createUserParams.Username;
|
||||
init.Record.Email = createUserParams.Email;
|
||||
|
@@ -165,26 +165,26 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
/* Display and editor convenience extension methods */
|
||||
|
||||
public static ContentItemViewModel<T> BuildDisplayModel<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> BuildDisplayShape<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
|
||||
var content = manager.Get<T>(id);
|
||||
if (content == null)
|
||||
return null;
|
||||
return manager.BuildDisplayModel(content, displayType);
|
||||
return manager.BuildDisplayShape(content, displayType);
|
||||
}
|
||||
|
||||
public static ContentItemViewModel<T> BuildEditorModel<T>(this IContentManager manager, int id) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> BuildEditorShape<T>(this IContentManager manager, int id) where T : class, IContent {
|
||||
var content = manager.Get<T>(id);
|
||||
if (content == null)
|
||||
return null;
|
||||
return manager.BuildEditorModel(content);
|
||||
return manager.BuildEditorShape(content);
|
||||
|
||||
}
|
||||
|
||||
public static ContentItemViewModel<T> UpdateEditorModel<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
|
||||
public static ContentItemViewModel<T> UpdateEditorShape<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
|
||||
var content = manager.Get<T>(id);
|
||||
if (content == null)
|
||||
return null;
|
||||
return manager.UpdateEditorModel(content, updater);
|
||||
return manager.UpdateEditorShape(content, updater);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -380,37 +380,47 @@ namespace Orchard.ContentManagement {
|
||||
};
|
||||
foreach (var handler in Handlers) {
|
||||
handler.GetContentItemMetadata(context);
|
||||
//-- was - from ContentItemDriver --
|
||||
//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;
|
||||
// context.Metadata.CreateRouteValues = GetCreateRouteValues(item) ?? context.Metadata.CreateRouteValues;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
return context.Metadata;
|
||||
}
|
||||
|
||||
public ContentItemViewModel<TContentPart> BuildDisplayModel<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
|
||||
public ContentItemViewModel<TContentPart> BuildDisplayShape<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
|
||||
if (content == null)
|
||||
return null;
|
||||
|
||||
var displayModel = new ContentItemViewModel<TContentPart>(content);
|
||||
var context = new BuildDisplayModelContext(displayModel, displayType);
|
||||
foreach (var handler in Handlers) {
|
||||
handler.BuildDisplayModel(context);
|
||||
handler.BuildDisplayShape(context);
|
||||
}
|
||||
return displayModel;
|
||||
}
|
||||
|
||||
public ContentItemViewModel<TContentPart> BuildEditorModel<TContentPart>(TContentPart content) where TContentPart : IContent {
|
||||
public ContentItemViewModel<TContentPart> BuildEditorShape<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);
|
||||
handler.BuildEditorShape(context);
|
||||
}
|
||||
return editorModel;
|
||||
}
|
||||
|
||||
public ContentItemViewModel<TContentPart> UpdateEditorModel<TContentPart>(TContentPart content, IUpdateModel updater) where TContentPart : IContent {
|
||||
public ContentItemViewModel<TContentPart> UpdateEditorShape<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) {
|
||||
handler.UpdateEditorModel(context);
|
||||
handler.UpdateEditorShape(context);
|
||||
}
|
||||
return editorModel;
|
||||
}
|
||||
|
@@ -9,15 +9,15 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
protected virtual string Prefix { get { return ""; } }
|
||||
protected virtual string Zone { get { return "body"; } }
|
||||
|
||||
DriverResult IContentFieldDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
DriverResult IContentFieldDriver.BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
return Process(context.ContentItem, (part, field) => Display(part, field, context.DisplayType));
|
||||
}
|
||||
|
||||
DriverResult IContentFieldDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
DriverResult IContentFieldDriver.BuildEditorShape(BuildEditorModelContext context) {
|
||||
return Process(context.ContentItem, Editor);
|
||||
}
|
||||
|
||||
DriverResult IContentFieldDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
DriverResult IContentFieldDriver.UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
return Process(context.ContentItem, (part, field) => Editor(part, field, context.Updater));
|
||||
}
|
||||
|
||||
|
@@ -7,17 +7,17 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
protected virtual string Prefix { get { return ""; } }
|
||||
protected virtual string Zone { get { return "body"; } }
|
||||
|
||||
DriverResult IContentPartDriver.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
DriverResult IContentPartDriver.BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Display(part, context.DisplayType);
|
||||
}
|
||||
|
||||
DriverResult IContentPartDriver.BuildEditorModel(BuildEditorModelContext context) {
|
||||
DriverResult IContentPartDriver.BuildEditorShape(BuildEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Editor(part);
|
||||
}
|
||||
|
||||
DriverResult IContentPartDriver.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
DriverResult IContentPartDriver.UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
var part = context.ContentItem.As<TContent>();
|
||||
return part == null ? null : Editor(part, context.Updater);
|
||||
}
|
||||
|
@@ -29,35 +29,35 @@ namespace Orchard.ContentManagement.Drivers.Coordinators {
|
||||
var fieldTypeName = partFieldDefinition.FieldDefinition.Name;
|
||||
var fieldInfo = fieldInfos.FirstOrDefault(x => x.FieldTypeName == fieldTypeName);
|
||||
if (fieldInfo != null) {
|
||||
var storage = _fieldStorageProviderSelector
|
||||
var storage = _fieldStorageProviderSelector
|
||||
.GetProvider(partFieldDefinition)
|
||||
.BindStorage(contentPart, partFieldDefinition);
|
||||
var field = fieldInfo.Factory(partFieldDefinition, storage);
|
||||
contentPart.Weld(field);
|
||||
var field = fieldInfo.Factory(partFieldDefinition, storage);
|
||||
contentPart.Weld(field);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
public override void BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.BuildDisplayModel(context);
|
||||
var result = driver.BuildDisplayShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
public override void BuildEditorModel(BuildEditorModelContext context) {
|
||||
public override void BuildEditorShape(BuildEditorModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.BuildEditorModel(context);
|
||||
var result = driver.BuildEditorShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
public override void UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
public override void UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.UpdateEditorModel(context);
|
||||
var result = driver.UpdateEditorShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
|
@@ -36,25 +36,25 @@ namespace Orchard.ContentManagement.Drivers.Coordinators {
|
||||
}
|
||||
}
|
||||
|
||||
public override void BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
public override void BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.BuildDisplayModel(context);
|
||||
var result = driver.BuildDisplayShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
public override void BuildEditorModel(BuildEditorModelContext context) {
|
||||
public override void BuildEditorShape(BuildEditorModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.BuildEditorModel(context);
|
||||
var result = driver.BuildEditorShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
}
|
||||
|
||||
public override void UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
public override void UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
_drivers.Invoke(driver => {
|
||||
var result = driver.UpdateEditorModel(context);
|
||||
var result = driver.UpdateEditorShape(context);
|
||||
if (result != null)
|
||||
result.Apply(context);
|
||||
}, Logger);
|
||||
|
@@ -4,9 +4,9 @@ using Orchard.ContentManagement.MetaData;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public interface IContentFieldDriver : IEvents {
|
||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
||||
DriverResult BuildDisplayShape(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorShape(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorShape(UpdateEditorModelContext context);
|
||||
|
||||
IEnumerable<ContentFieldInfo> GetFieldInfo();
|
||||
}
|
||||
|
@@ -4,9 +4,9 @@ using Orchard.ContentManagement.MetaData;
|
||||
|
||||
namespace Orchard.ContentManagement.Drivers {
|
||||
public interface IContentPartDriver : IEvents {
|
||||
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorModel(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
|
||||
DriverResult BuildDisplayShape(BuildDisplayModelContext context);
|
||||
DriverResult BuildEditorShape(BuildEditorModelContext context);
|
||||
DriverResult UpdateEditorShape(UpdateEditorModelContext context);
|
||||
|
||||
IEnumerable<ContentPartInfo> GetPartInfo();
|
||||
}
|
||||
|
@@ -80,16 +80,16 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
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 {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnGetDisplayViewModel = handler });
|
||||
protected void OnGetDisplayShape<TPart>(Action<BuildDisplayModelContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnGetDisplayShape = handler });
|
||||
}
|
||||
|
||||
protected void OnGetEditorViewModel<TPart>(Action<BuildEditorModelContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnGetEditorViewModel = handler });
|
||||
protected void OnGetEditorShape<TPart>(Action<BuildEditorModelContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnGetEditorShape = handler });
|
||||
}
|
||||
|
||||
protected void OnUpdateEditorViewModel<TPart>(Action<UpdateEditorModelContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnUpdateEditorViewModel = handler });
|
||||
protected void OnUpdateEditorShape<TPart>(Action<UpdateEditorModelContext, TPart> handler) where TPart : class, IContent {
|
||||
Filters.Add(new InlineTemplateFilter<TPart> { OnUpdateEditorShape = handler });
|
||||
}
|
||||
|
||||
class InlineStorageFilter<TPart> : StorageFilterBase<TPart> where TPart : class, IContent {
|
||||
@@ -164,20 +164,20 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
|
||||
class InlineTemplateFilter<TPart> : TemplateFilterBase<TPart> where TPart : class, IContent {
|
||||
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; }
|
||||
public Action<BuildDisplayModelContext, TPart> OnGetDisplayShape { get; set; }
|
||||
public Action<BuildEditorModelContext, TPart> OnGetEditorShape { get; set; }
|
||||
public Action<UpdateEditorModelContext, TPart> OnUpdateEditorShape { get; set; }
|
||||
protected override void GetContentItemMetadata(GetContentItemMetadataContext context, TPart instance) {
|
||||
if (OnGetItemMetadata != null) OnGetItemMetadata(context, instance);
|
||||
}
|
||||
protected override void BuildDisplayModel(BuildDisplayModelContext context, TPart instance) {
|
||||
if (OnGetDisplayViewModel != null) OnGetDisplayViewModel(context, instance);
|
||||
protected override void BuildDisplayShape(BuildDisplayModelContext context, TPart instance) {
|
||||
if (OnGetDisplayShape != null) OnGetDisplayShape(context, instance);
|
||||
}
|
||||
protected override void BuildEditorModel(BuildEditorModelContext context, TPart instance) {
|
||||
if (OnGetEditorViewModel != null) OnGetEditorViewModel(context, instance);
|
||||
protected override void BuildEditorShape(BuildEditorModelContext context, TPart instance) {
|
||||
if (OnGetEditorShape != null) OnGetEditorShape(context, instance);
|
||||
}
|
||||
protected override void UpdateEditorModel(UpdateEditorModelContext context, TPart instance) {
|
||||
if (OnUpdateEditorViewModel != null) OnUpdateEditorViewModel(context, instance);
|
||||
protected override void UpdateEditorShape(UpdateEditorModelContext context, TPart instance) {
|
||||
if (OnUpdateEditorShape != null) OnUpdateEditorShape(context, instance);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,20 +292,20 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
filter.GetContentItemMetadata(context);
|
||||
GetItemMetadata(context);
|
||||
}
|
||||
void IContentHandler.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
void IContentHandler.BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
|
||||
filter.BuildDisplayModel(context);
|
||||
BuildDisplayModel(context);
|
||||
filter.BuildDisplayShape(context);
|
||||
BuildDisplayShape(context);
|
||||
}
|
||||
void IContentHandler.BuildEditorModel(BuildEditorModelContext context) {
|
||||
void IContentHandler.BuildEditorShape(BuildEditorModelContext context) {
|
||||
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
|
||||
filter.BuildEditorModel(context);
|
||||
BuildEditorModel(context);
|
||||
filter.BuildEditorShape(context);
|
||||
BuildEditorShape(context);
|
||||
}
|
||||
void IContentHandler.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
void IContentHandler.UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
|
||||
filter.UpdateEditorModel(context);
|
||||
UpdateEditorModel(context);
|
||||
filter.UpdateEditorShape(context);
|
||||
UpdateEditorShape(context);
|
||||
}
|
||||
|
||||
protected virtual void Activating(ActivatingContentContext context) { }
|
||||
@@ -335,8 +335,8 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
protected virtual void Indexed(IndexContentContext 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) { }
|
||||
protected virtual void BuildDisplayShape(BuildDisplayModelContext context) { }
|
||||
protected virtual void BuildEditorShape(BuildEditorModelContext context) { }
|
||||
protected virtual void UpdateEditorShape(UpdateEditorModelContext context) { }
|
||||
}
|
||||
}
|
@@ -7,67 +7,27 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
return Enumerable.Empty<ContentType>();
|
||||
}
|
||||
|
||||
public virtual void Activating(ActivatingContentContext context) {
|
||||
}
|
||||
public virtual void Activating(ActivatingContentContext context) {}
|
||||
public virtual void Activated(ActivatedContentContext context) {}
|
||||
public virtual void Initializing(InitializingContentContext context) {}
|
||||
public virtual void Creating(CreateContentContext context) {}
|
||||
public virtual void Created(CreateContentContext context) {}
|
||||
public virtual void Saving(SaveContentContext context) {}
|
||||
public virtual void Saved(SaveContentContext context) {}
|
||||
public virtual void Loading(LoadContentContext context) {}
|
||||
public virtual void Loaded(LoadContentContext context) {}
|
||||
public virtual void Versioning(VersionContentContext context) {}
|
||||
public virtual void Versioned(VersionContentContext context) {}
|
||||
public virtual void Publishing(PublishContentContext context) {}
|
||||
public virtual void Published(PublishContentContext context) {}
|
||||
public virtual void Removing(RemoveContentContext context) {}
|
||||
public virtual void Removed(RemoveContentContext context) {}
|
||||
public virtual void Indexing(IndexContentContext context) {}
|
||||
public virtual void Indexed(IndexContentContext context) {}
|
||||
|
||||
public virtual void Activated(ActivatedContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Initializing(InitializingContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Creating(CreateContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Created(CreateContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Saving(SaveContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Saved(SaveContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Loading(LoadContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Loaded(LoadContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Versioning(VersionContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Versioned(VersionContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Publishing(PublishContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Published(PublishContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Removing(RemoveContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Removed(RemoveContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Indexing(IndexContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void Indexed(IndexContentContext context) {
|
||||
}
|
||||
|
||||
public virtual void GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
}
|
||||
|
||||
public virtual void BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
}
|
||||
|
||||
public virtual void BuildEditorModel(BuildEditorModelContext context) {
|
||||
}
|
||||
|
||||
public virtual void UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
}
|
||||
public virtual void GetContentItemMetadata(GetContentItemMetadataContext context) {}
|
||||
public virtual void BuildDisplayShape(BuildDisplayModelContext context) {}
|
||||
public virtual void BuildEditorShape(BuildEditorModelContext context) {}
|
||||
public virtual void UpdateEditorShape(UpdateEditorModelContext context) {}
|
||||
}
|
||||
}
|
@@ -22,7 +22,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
_updater = (context, viewModel) => context.Updater.TryUpdateModel(viewModel, "", null, null);
|
||||
}
|
||||
|
||||
protected override void BuildDisplayModel(BuildDisplayModelContext context, TContent instance) {
|
||||
protected override void BuildDisplayShape(BuildDisplayModelContext context, TContent instance) {
|
||||
context.ViewModel.TemplateName = _templateName;
|
||||
var longestMatch = LongestMatch(context.DisplayType);
|
||||
if (!string.IsNullOrEmpty(longestMatch))
|
||||
@@ -54,7 +54,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
});
|
||||
}
|
||||
|
||||
protected override void BuildEditorModel(BuildEditorModelContext context, TContent instance) {
|
||||
protected override void BuildEditorShape(BuildEditorModelContext context, TContent instance) {
|
||||
context.ViewModel.TemplateName = _templateName;
|
||||
context.ViewModel.Prefix = _prefix;
|
||||
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
|
||||
@@ -67,7 +67,7 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
}
|
||||
}
|
||||
|
||||
protected override void UpdateEditorModel(UpdateEditorModelContext context, TContent instance) {
|
||||
protected override void UpdateEditorShape(UpdateEditorModelContext context, TContent instance) {
|
||||
if (context.ViewModel is ContentItemViewModel<TContent>)
|
||||
_updater(context, (ContentItemViewModel<TContent>)context.ViewModel);
|
||||
else
|
||||
|
@@ -23,8 +23,8 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
void Indexed(IndexContentContext context);
|
||||
|
||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
||||
void BuildDisplayModel(BuildDisplayModelContext context);
|
||||
void BuildEditorModel(BuildEditorModelContext context);
|
||||
void UpdateEditorModel(UpdateEditorModelContext context);
|
||||
void BuildDisplayShape(BuildDisplayModelContext context);
|
||||
void BuildEditorShape(BuildEditorModelContext context);
|
||||
void UpdateEditorShape(UpdateEditorModelContext context);
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
interface IContentTemplateFilter : IContentFilter {
|
||||
void GetContentItemMetadata(GetContentItemMetadataContext context);
|
||||
void BuildDisplayModel(BuildDisplayModelContext context);
|
||||
void BuildEditorModel(BuildEditorModelContext context);
|
||||
void UpdateEditorModel(UpdateEditorModelContext context);
|
||||
void BuildDisplayShape(BuildDisplayModelContext context);
|
||||
void BuildEditorShape(BuildEditorModelContext context);
|
||||
void UpdateEditorShape(UpdateEditorModelContext context);
|
||||
}
|
||||
}
|
||||
|
@@ -1,28 +1,28 @@
|
||||
namespace Orchard.ContentManagement.Handlers {
|
||||
public abstract class TemplateFilterBase<TPart> : IContentTemplateFilter where TPart : class, IContent {
|
||||
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) { }
|
||||
protected virtual void BuildDisplayShape(BuildDisplayModelContext context, TPart instance) { }
|
||||
protected virtual void BuildEditorShape(BuildEditorModelContext context, TPart instance) { }
|
||||
protected virtual void UpdateEditorShape(UpdateEditorModelContext context, TPart instance) { }
|
||||
|
||||
void IContentTemplateFilter.GetContentItemMetadata(GetContentItemMetadataContext context) {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
GetContentItemMetadata(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
|
||||
void IContentTemplateFilter.BuildDisplayModel(BuildDisplayModelContext context) {
|
||||
void IContentTemplateFilter.BuildDisplayShape(BuildDisplayModelContext context) {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
BuildDisplayModel(context, context.ContentItem.As<TPart>());
|
||||
BuildDisplayShape(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
|
||||
void IContentTemplateFilter.BuildEditorModel(BuildEditorModelContext context) {
|
||||
void IContentTemplateFilter.BuildEditorShape(BuildEditorModelContext context) {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
BuildEditorModel(context, context.ContentItem.As<TPart>());
|
||||
BuildEditorShape(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
|
||||
void IContentTemplateFilter.UpdateEditorModel(UpdateEditorModelContext context) {
|
||||
void IContentTemplateFilter.UpdateEditorShape(UpdateEditorModelContext context) {
|
||||
if (context.ContentItem.Is<TPart>())
|
||||
UpdateEditorModel(context, context.ContentItem.As<TPart>());
|
||||
UpdateEditorShape(context, context.ContentItem.As<TPart>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,11 +17,11 @@ namespace Orchard.ContentManagement.Handlers {
|
||||
return this;
|
||||
}
|
||||
|
||||
protected override void BuildEditorModel(BuildEditorModelContext context, ContentPart<TRecord> part) {
|
||||
protected override void BuildEditorShape(BuildEditorModelContext context, ContentPart<TRecord> part) {
|
||||
context.ViewModel.Zones.AddEditorPart(_location, part.Record, _templateName, _prefix);
|
||||
}
|
||||
|
||||
protected override void UpdateEditorModel(UpdateEditorModelContext context, ContentPart<TRecord> part) {
|
||||
protected override void UpdateEditorShape(UpdateEditorModelContext context, ContentPart<TRecord> part) {
|
||||
context.Updater.TryUpdateModel(part.Record, _prefix, null, null);
|
||||
context.ViewModel.Zones.AddEditorPart(_location, part.Record, _templateName, _prefix);
|
||||
}
|
||||
|
@@ -26,9 +26,9 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
ContentItemMetadata GetItemMetadata(IContent contentItem);
|
||||
|
||||
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;
|
||||
ContentItemViewModel<TContent> BuildDisplayShape<TContent>(TContent content, string displayType) where TContent : IContent;
|
||||
ContentItemViewModel<TContent> BuildEditorShape<TContent>(TContent content) where TContent : IContent;
|
||||
ContentItemViewModel<TContent> UpdateEditorShape<TContent>(TContent content, IUpdateModel updater) where TContent : IContent;
|
||||
}
|
||||
|
||||
public class VersionOptions {
|
||||
|
Reference in New Issue
Block a user