From 0d91cf30ac88349ec8b5ccc51223ae7d89b19dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Ros?= <> Date: Fri, 3 Sep 2010 14:02:37 -0700 Subject: [PATCH 1/2] Removing ContentType --HG-- branch : theming --- src/Orchard.Core.Tests/Body/BodyPartTests.cs | 15 ++++++--------- .../DefaultContentManagerTests.cs | 2 +- .../ContentManagement/Models/AlphaHandler.cs | 8 ++------ .../ContentManagement/Models/BetaHandler.cs | 11 +---------- .../ContentManagement/Models/Delta.cs | 9 +-------- .../ContentManagement/Models/Gamma.cs | 4 ---- .../Core/Settings/Models/SiteSettingsPart.cs | 1 - src/Orchard/ContentManagement/ContentType.cs | 6 ------ .../ContentManagement/DefaultContentManager.cs | 7 +++---- .../ContentManagement/Handlers/ContentHandler.cs | 4 ---- .../Handlers/ContentHandlerBase.cs | 9 +-------- .../ContentManagement/Handlers/IContentHandler.cs | 6 +----- src/Orchard/ContentManagement/IContentManager.cs | 3 ++- 13 files changed, 18 insertions(+), 67 deletions(-) delete mode 100644 src/Orchard/ContentManagement/ContentType.cs diff --git a/src/Orchard.Core.Tests/Body/BodyPartTests.cs b/src/Orchard.Core.Tests/Body/BodyPartTests.cs index 725904ebb..e79430e96 100644 --- a/src/Orchard.Core.Tests/Body/BodyPartTests.cs +++ b/src/Orchard.Core.Tests/Body/BodyPartTests.cs @@ -41,7 +41,7 @@ namespace Orchard.Core.Tests.Body { public void BodyCanHandleLongText() { var contentManager = _container.Resolve(); - contentManager.Create(ThingDriver.ContentType.Name, t => { + contentManager.Create(ThingDriver.ContentTypeName, t => { t.As().Record = new BodyPartRecord(); t.Text = new String('x', 10000); }); @@ -69,10 +69,10 @@ namespace Orchard.Core.Tests.Body { [UsedImplicitly] public class ThingHandler : ContentHandler { public ThingHandler() { - Filters.Add(new ActivatingFilter(ThingDriver.ContentType.Name)); - Filters.Add(new ActivatingFilter>(ThingDriver.ContentType.Name)); - Filters.Add(new ActivatingFilter(ThingDriver.ContentType.Name)); - Filters.Add(new ActivatingFilter(ThingDriver.ContentType.Name)); + Filters.Add(new ActivatingFilter(ThingDriver.ContentTypeName)); + Filters.Add(new ActivatingFilter>(ThingDriver.ContentTypeName)); + Filters.Add(new ActivatingFilter(ThingDriver.ContentTypeName)); + Filters.Add(new ActivatingFilter(ThingDriver.ContentTypeName)); } } @@ -87,10 +87,7 @@ namespace Orchard.Core.Tests.Body { } public class ThingDriver : ContentPartDriver { - public readonly static ContentType ContentType = new ContentType { - Name = "thing", - DisplayName = "Thing" - }; + public static readonly string ContentTypeName = "thing"; } } diff --git a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs index d644d4db0..b99acd7d0 100644 --- a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs +++ b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs @@ -165,7 +165,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void GetContentTypesShouldReturnAllTypes() { - var types = _manager.GetContentTypes(); + var types = _manager.GetContentTypeDefinitions(); Assert.That(types.Count(), Is.EqualTo(4)); Assert.That(types, Has.Some.With.Property("Name").EqualTo("alpha")); Assert.That(types, Has.Some.With.Property("Name").EqualTo("beta")); diff --git a/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs b/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs index f9f762583..dc035cd53 100644 --- a/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs +++ b/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; -using Orchard.ContentManagement; -using Orchard.ContentManagement.Handlers; +using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.ViewModels; namespace Orchard.Tests.ContentManagement.Models { @@ -8,9 +6,7 @@ namespace Orchard.Tests.ContentManagement.Models { public AlphaHandler() { OnGetDisplayShape((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" })); } - public override IEnumerable GetContentTypes() { - return new[] { new ContentType { Name = "alpha" } }; - } + protected override void Activating(ActivatingContentContext context) { if (context.ContentType == "alpha") { context.Builder.Weld(); diff --git a/src/Orchard.Tests/ContentManagement/Models/BetaHandler.cs b/src/Orchard.Tests/ContentManagement/Models/BetaHandler.cs index 69d6b4ab2..5e03597be 100644 --- a/src/Orchard.Tests/ContentManagement/Models/BetaHandler.cs +++ b/src/Orchard.Tests/ContentManagement/Models/BetaHandler.cs @@ -1,16 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Orchard.ContentManagement; -using Orchard.ContentManagement.Handlers; +using Orchard.ContentManagement.Handlers; namespace Orchard.Tests.ContentManagement.Models { public class BetaHandler : ContentHandler { - public override System.Collections.Generic.IEnumerable GetContentTypes() { - return new[] { new ContentType { Name = "beta" } }; - } - protected override void Activating(ActivatingContentContext context) { if (context.ContentType == "beta") { context.Builder.Weld(); diff --git a/src/Orchard.Tests/ContentManagement/Models/Delta.cs b/src/Orchard.Tests/ContentManagement/Models/Delta.cs index ad3380791..22e0b0c1d 100644 --- a/src/Orchard.Tests/ContentManagement/Models/Delta.cs +++ b/src/Orchard.Tests/ContentManagement/Models/Delta.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Orchard.Data; +using Orchard.Data; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.Tests.ContentManagement.Records; @@ -13,9 +9,6 @@ namespace Orchard.Tests.ContentManagement.Models { public class DeltaHandler : ContentHandler { - public override System.Collections.Generic.IEnumerable GetContentTypes() { - return new[] { new ContentType { Name = "delta" } }; - } public DeltaHandler(IRepository repository) { Filters.Add(new ActivatingFilter(x => x == "delta")); diff --git a/src/Orchard.Tests/ContentManagement/Models/Gamma.cs b/src/Orchard.Tests/ContentManagement/Models/Gamma.cs index 77c012a97..ec14f4c1e 100644 --- a/src/Orchard.Tests/ContentManagement/Models/Gamma.cs +++ b/src/Orchard.Tests/ContentManagement/Models/Gamma.cs @@ -9,10 +9,6 @@ namespace Orchard.Tests.ContentManagement.Models { public class GammaHandler : ContentHandler { - public override System.Collections.Generic.IEnumerable GetContentTypes() { - return new[] { new ContentType { Name = "gamma" } }; - } - public GammaHandler(IRepository repository) { Filters.Add(new ActivatingFilter(x => x == "gamma")); Filters.Add(StorageFilter.For(repository)); diff --git a/src/Orchard.Web/Core/Settings/Models/SiteSettingsPart.cs b/src/Orchard.Web/Core/Settings/Models/SiteSettingsPart.cs index 2ef606aac..a0f8b561e 100644 --- a/src/Orchard.Web/Core/Settings/Models/SiteSettingsPart.cs +++ b/src/Orchard.Web/Core/Settings/Models/SiteSettingsPart.cs @@ -3,7 +3,6 @@ using Orchard.Settings; namespace Orchard.Core.Settings.Models { public sealed class SiteSettingsPart : ContentPart, ISite { - public static readonly ContentType ContentType = new ContentType { Name = "Site", DisplayName = "Site Settings" }; public string PageTitleSeparator { get { return Record.PageTitleSeparator; } diff --git a/src/Orchard/ContentManagement/ContentType.cs b/src/Orchard/ContentManagement/ContentType.cs deleted file mode 100644 index acf310bfd..000000000 --- a/src/Orchard/ContentManagement/ContentType.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Orchard.ContentManagement { - public class ContentType { - public string Name { get; set; } - public string DisplayName { get; set; } - } -} diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index 3c7743f56..f64e8fe2e 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -5,6 +5,7 @@ using Autofac; using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.MetaData; using Orchard.ContentManagement.MetaData.Builders; +using Orchard.ContentManagement.MetaData.Models; using Orchard.ContentManagement.Records; using Orchard.Data; using Orchard.Indexing; @@ -43,10 +44,8 @@ namespace Orchard.ContentManagement { } } - public IEnumerable GetContentTypes() { - return Handlers.Aggregate( - Enumerable.Empty(), - (types, handler) => types.Concat(handler.GetContentTypes())); + public IEnumerable GetContentTypeDefinitions() { + return _contentDefinitionManager.ListTypeDefinitions(); } public virtual ContentItem New(string contentType) { diff --git a/src/Orchard/ContentManagement/Handlers/ContentHandler.cs b/src/Orchard/ContentManagement/Handlers/ContentHandler.cs index 50a0bdc76..10df8962b 100644 --- a/src/Orchard/ContentManagement/Handlers/ContentHandler.cs +++ b/src/Orchard/ContentManagement/Handlers/ContentHandler.cs @@ -181,10 +181,6 @@ namespace Orchard.ContentManagement.Handlers { } } - public virtual IEnumerable GetContentTypes() { - return Enumerable.Empty(); - } - void IContentHandler.Activating(ActivatingContentContext context) { foreach (var filter in Filters.OfType()) filter.Activating(context); diff --git a/src/Orchard/ContentManagement/Handlers/ContentHandlerBase.cs b/src/Orchard/ContentManagement/Handlers/ContentHandlerBase.cs index c9a988601..c599163f8 100644 --- a/src/Orchard/ContentManagement/Handlers/ContentHandlerBase.cs +++ b/src/Orchard/ContentManagement/Handlers/ContentHandlerBase.cs @@ -1,12 +1,5 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Orchard.ContentManagement.Handlers { +namespace Orchard.ContentManagement.Handlers { public class ContentHandlerBase : IContentHandler { - public virtual IEnumerable GetContentTypes() { - return Enumerable.Empty(); - } - public virtual void Activating(ActivatingContentContext context) {} public virtual void Activated(ActivatedContentContext context) {} public virtual void Initializing(InitializingContentContext context) {} diff --git a/src/Orchard/ContentManagement/Handlers/IContentHandler.cs b/src/Orchard/ContentManagement/Handlers/IContentHandler.cs index 44440e18f..3a63decad 100644 --- a/src/Orchard/ContentManagement/Handlers/IContentHandler.cs +++ b/src/Orchard/ContentManagement/Handlers/IContentHandler.cs @@ -1,9 +1,5 @@ -using System.Collections.Generic; - -namespace Orchard.ContentManagement.Handlers { +namespace Orchard.ContentManagement.Handlers { public interface IContentHandler : IEvents { - IEnumerable GetContentTypes(); - void Activating(ActivatingContentContext context); void Activated(ActivatedContentContext context); void Initializing(InitializingContentContext context); diff --git a/src/Orchard/ContentManagement/IContentManager.cs b/src/Orchard/ContentManagement/IContentManager.cs index e4a3c964e..f58137302 100644 --- a/src/Orchard/ContentManagement/IContentManager.cs +++ b/src/Orchard/ContentManagement/IContentManager.cs @@ -1,10 +1,11 @@ using System.Collections.Generic; +using Orchard.ContentManagement.MetaData.Models; using Orchard.Indexing; using Orchard.Mvc.ViewModels; namespace Orchard.ContentManagement { public interface IContentManager : IDependency { - IEnumerable GetContentTypes(); + IEnumerable GetContentTypeDefinitions(); ContentItem New(string contentType); From 043bcf54ee3977ce90b2e5e5399024996ff3f9ec Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Fri, 3 Sep 2010 16:04:42 -0700 Subject: [PATCH 2/2] Retiring ContentItemViewModel ...and all that entails - things like IZone and IZoneCollection are barely roughed in --HG-- branch : theming --- .../Providers/CommonPartProviderTests.cs | 6 +- .../ContentPartDriverCoordinatorTests.cs | 43 +++++------ .../ContentManagement/Models/AlphaHandler.cs | 3 +- .../Models/FlavoredHandler.cs | 3 +- .../ContentManagement/Models/StyledHandler.cs | 3 +- .../UI/Navigation/MenuFilterTests.cs | 1 - .../UI/Notify/NotifyFilterTests.cs | 1 - .../Core/Common/Drivers/BodyPartDriver.cs | 3 +- .../Common/ViewModels/BodyDisplayViewModel.cs | 5 +- .../Contents/Controllers/AdminController.cs | 75 ++++++++----------- .../Contents/Controllers/ItemController.cs | 24 +----- .../ViewModels/CreateItemViewModel.cs | 6 +- .../Contents/ViewModels/EditItemViewModel.cs | 6 +- .../ViewModels/ListContentsViewModel.cs | 2 - .../Core/HomePage/Views/HomePage.cshtml | 11 +++ .../Controllers/AdminController.cs | 43 ++++++----- .../ViewModels/AddLocalizationViewModel.cs | 4 +- .../Navigation/Controllers/AdminController.cs | 15 +++- .../ViewModels/CreateMenuItemViewModel.cs | 5 +- src/Orchard.Web/Core/Orchard.Core.csproj | 1 + .../Reports/Controllers/AdminController.cs | 10 ++- .../Routable/Controllers/ItemController.cs | 23 ++---- .../Services/RoutableHomePageProvider.cs | 14 ++-- .../ViewModels/RoutableDisplayViewModel.cs | 3 +- .../Settings/Controllers/AdminController.cs | 31 +++++--- .../ViewModels/SettingsIndexViewModel.cs | 2 - .../Orchard.ContentTypes.sln | 20 +++++ .../Controllers/ContentController.cs | 12 ++- .../Handlers/DebugLinkHandler.cs | 5 +- .../ViewModels/ContentDetailsViewModel.cs | 24 ++---- .../Modules/Orchard.Setup/SetupMode.cs | 3 - .../Controllers/AdminController.cs | 15 +++- .../DesignerNotes/ZoneManagerEvents.cs | 2 + .../Orchard.Themes/Orchard.Themes.csproj | 5 +- .../Services/ThemeZoneManagerEvents.cs | 2 + .../Orchard.Themes/Views/Document.cshtml | 24 ++++++ .../Views/{Document.aspx => _Document.aspx} | 0 .../Controllers/AdminController.cs | 24 +++--- .../RegistrationSettingsPartHandler.cs | 2 +- .../Orchard.Users/Orchard.Users.csproj | 1 + .../ViewModels/UserCreateViewModel.cs | 5 +- .../ViewModels/UserEditViewModel.cs | 14 ++-- src/Orchard.Web/Orchard.Web.csproj | 4 +- .../Contoso/Views/HomePage/Home/Index.cshtml | 5 ++ .../Contoso/Views/Layout.HomePage.cshtml | 5 ++ ...ut.HomePage.ascx => _Layout.HomePage.ascx} | 0 .../ContentManagement/ContentExtensions.cs | 18 ++--- src/Orchard/ContentManagement/ContentItem.cs | 8 ++ src/Orchard/ContentManagement/ContentPart.cs | 10 +++ .../DefaultContentManager.cs | 25 +++---- .../Drivers/ContentItemTemplateResult.cs | 4 + .../Drivers/ContentTemplateResult.cs | 12 +-- .../Handlers/BuildDisplayModelContext.cs | 18 +---- .../Handlers/BuildEditorModelContext.cs | 19 +---- .../Handlers/ContentItemTemplates.cs | 10 ++- .../Handlers/TemplateFilterForRecord.cs | 15 ++-- .../Handlers/UpdateEditorModelContext.cs | 6 +- src/Orchard/ContentManagement/IContent.cs | 5 +- .../ContentManagement/IContentManager.cs | 6 +- .../Mvc/Html/ContentItemDisplayExtensions.cs | 4 +- .../Mvc/Html/ContentItemEditorExtensions.cs | 2 + src/Orchard/Mvc/Html/LayoutExtensions.cs | 37 +-------- src/Orchard/Mvc/ViewEngines/LayoutView.cs | 2 +- .../Mvc/ViewModels/ContentItemViewModel.cs | 2 + src/Orchard/Orchard.Framework.csproj | 3 - src/Orchard/UI/IPage.cs | 33 ++++++++ src/Orchard/UI/Navigation/MenuFilter.cs | 2 + src/Orchard/UI/Resources/ResourceFilter.cs | 2 + .../UI/Zones/ContentItemDisplayZoneItem.cs | 2 + .../UI/Zones/ContentPartDisplayZoneItem.cs | 2 + .../UI/Zones/ContentPartEditorZoneItem.cs | 2 + src/Orchard/UI/Zones/DelegateZoneItem.cs | 2 + src/Orchard/UI/Zones/IZoneManager.cs | 2 + src/Orchard/UI/Zones/IZoneManagerEvents.cs | 3 +- src/Orchard/UI/Zones/ZoneCollection.cs | 2 + src/Orchard/UI/Zones/ZoneManager.cs | 3 +- 76 files changed, 419 insertions(+), 357 deletions(-) create mode 100644 src/Orchard.Web/Core/HomePage/Views/HomePage.cshtml create mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.sln create mode 100644 src/Orchard.Web/Modules/Orchard.Themes/Views/Document.cshtml rename src/Orchard.Web/Modules/Orchard.Themes/Views/{Document.aspx => _Document.aspx} (100%) create mode 100644 src/Orchard.Web/Themes/Contoso/Views/HomePage/Home/Index.cshtml create mode 100644 src/Orchard.Web/Themes/Contoso/Views/Layout.HomePage.cshtml rename src/Orchard.Web/Themes/Contoso/Views/{Layout.HomePage.ascx => _Layout.HomePage.ascx} (100%) diff --git a/src/Orchard.Core.Tests/Common/Providers/CommonPartProviderTests.cs b/src/Orchard.Core.Tests/Common/Providers/CommonPartProviderTests.cs index 0c796e7f1..27bf95f78 100644 --- a/src/Orchard.Core.Tests/Common/Providers/CommonPartProviderTests.cs +++ b/src/Orchard.Core.Tests/Common/Providers/CommonPartProviderTests.cs @@ -103,7 +103,7 @@ namespace Orchard.Core.Tests.Common.Providers { var item = contentManager.Create("test-item", VersionOptions.Draft, init => { }); var viewModel = new OwnerEditorViewModel() { Owner = "User" }; updateModel.Setup(x => x.TryUpdateModel(viewModel, "", null, null)).Returns(true); - contentManager.UpdateEditorShape(item.ContentItem, updateModel.Object); + contentManager.UpdateEditorModel(item.ContentItem, updateModel.Object); } class UpdatModelStub : IUpdateModel { @@ -142,7 +142,7 @@ namespace Orchard.Core.Tests.Common.Providers { var updater = new UpdatModelStub() { Owner = null }; - contentManager.UpdateEditorShape(item.ContentItem, updater); + contentManager.UpdateEditorModel(item.ContentItem, updater); } [Test, Ignore("Fix pending")] @@ -160,7 +160,7 @@ namespace Orchard.Core.Tests.Common.Providers { var updater = new UpdatModelStub() {Owner = ""}; - contentManager.UpdateEditorShape(item.ContentItem, updater); + contentManager.UpdateEditorModel(item.ContentItem, updater); Assert.That(updater.ModelErrors.ContainsKey("CommonPart.Owner"), Is.True); } diff --git a/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs index ed128c02b..f6f39f79b 100644 --- a/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs +++ b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs @@ -7,12 +7,10 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Drivers.Coordinators; using Orchard.ContentManagement.Handlers; +using Orchard.ContentManagement.MetaData; using Orchard.DisplayManagement; using Orchard.DisplayManagement.Implementation; using Orchard.Environment.AutofacUtil; -using Orchard.Mvc.ViewModels; -using Orchard.Tests.Utility; -using Orchard.UI.Zones; namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { [TestFixture] @@ -25,7 +23,8 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { //builder.RegisterModule(new ImplicitCollectionSupportModule()); builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterAutoMocking(MockBehavior.Loose); + builder.RegisterType().As(); + builder.RegisterInstance(new Mock().Object); _container = builder.Build(); } @@ -44,20 +43,18 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { builder.RegisterInstance(driver2.Object); builder.Update(_container); var contentHandler = _container.Resolve(); - var shapeHelperFactory = _container.Resolve(); - var shape = shapeHelperFactory.CreateHelper(); - ContentItem foo = shape.Foo(); - var ctx = new BuildDisplayModelContext(new ContentItemViewModel(foo), ""); + var contentItem = new ContentItem(); + var context = new BuildDisplayModelContext(contentItem, ""); - 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)); + driver1.Verify(x => x.BuildDisplayShape(context), Times.Never()); + driver2.Verify(x => x.BuildDisplayShape(context), Times.Never()); + contentHandler.BuildDisplayShape(context); + driver1.Verify(x => x.BuildDisplayShape(context)); + driver2.Verify(x => x.BuildDisplayShape(context)); } - [Test] + [Test, Ignore("no implementation for IZoneCollection")] public void TestDriverCanAddDisplay() { var driver = new StubPartDriver(); var builder = new ContainerBuilder(); @@ -69,16 +66,12 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { 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)); + var ctx = new BuildDisplayModelContext(contentItem, ""); + var context = shapeHelperFactory.CreateHelper().Context(ctx); + Assert.That(context.TopMeta, Is.Null); 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().Single().Prefix, Is.EqualTo("Stub")); - + Assert.That(context.TopMeta, Is.Not.Null); + Assert.That(context.TopMeta.Count == 1); } public class StubPartDriver : ContentPartDriver { @@ -89,9 +82,9 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { protected override DriverResult Display(StubPart part, string displayType) { var viewModel = new StubViewModel { Foo = string.Join(",", part.Foo) }; if (displayType.StartsWith("Summary")) - return ContentPartTemplate(viewModel, "StubViewModelTerse").Location("topmeta"); + return ContentPartTemplate(viewModel, "StubViewModelTerse").Location("TopMeta"); - return ContentPartTemplate(viewModel).Location("topmeta"); + return ContentPartTemplate(viewModel).Location("TopMeta"); } protected override DriverResult Editor(StubPart part) { diff --git a/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs b/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs index dc035cd53..e5840decc 100644 --- a/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs +++ b/src/Orchard.Tests/ContentManagement/Models/AlphaHandler.cs @@ -1,10 +1,9 @@ using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.ViewModels; namespace Orchard.Tests.ContentManagement.Models { public class AlphaHandler : ContentHandler { public AlphaHandler() { - OnGetDisplayShape((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" })); + OnGetDisplayShape((ctx, part) => ctx.ContentItem.Zones["Main"].Add(part, "3")); } protected override void Activating(ActivatingContentContext context) { diff --git a/src/Orchard.Tests/ContentManagement/Models/FlavoredHandler.cs b/src/Orchard.Tests/ContentManagement/Models/FlavoredHandler.cs index 4122fcd7f..2ddaece74 100644 --- a/src/Orchard.Tests/ContentManagement/Models/FlavoredHandler.cs +++ b/src/Orchard.Tests/ContentManagement/Models/FlavoredHandler.cs @@ -1,10 +1,9 @@ using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.ViewModels; namespace Orchard.Tests.ContentManagement.Models { public class FlavoredHandler : ContentHandler { public FlavoredHandler() { - OnGetDisplayShape((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part))); + OnGetDisplayShape((ctx, part) => ctx.ContentItem.Zones["Main"].Add(part)); } protected override void Activating(ActivatingContentContext context) { if (context.ContentType == "beta" || context.ContentType == "alpha") { diff --git a/src/Orchard.Tests/ContentManagement/Models/StyledHandler.cs b/src/Orchard.Tests/ContentManagement/Models/StyledHandler.cs index 464fc1829..c3bea9e61 100644 --- a/src/Orchard.Tests/ContentManagement/Models/StyledHandler.cs +++ b/src/Orchard.Tests/ContentManagement/Models/StyledHandler.cs @@ -1,10 +1,9 @@ using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.ViewModels; namespace Orchard.Tests.ContentManagement.Models { public class StyledHandler : ContentHandler { public StyledHandler() { - OnGetDisplayShape((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "10" })); + OnGetDisplayShape((ctx, part) => ctx.ContentItem.Zones["Main"].Add(part, "10")); } protected override void Activating(ActivatingContentContext context) { diff --git a/src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs b/src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs index 301779081..1245dcc94 100644 --- a/src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs +++ b/src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs @@ -4,7 +4,6 @@ using System.Web.Routing; using Moq; using NUnit.Framework; using Orchard.Localization; -using Orchard.Mvc.ViewModels; using Orchard.Security; using Orchard.Tests.Stubs; using Orchard.UI.Admin; diff --git a/src/Orchard.Tests/UI/Notify/NotifyFilterTests.cs b/src/Orchard.Tests/UI/Notify/NotifyFilterTests.cs index 97820128e..ba48fad61 100644 --- a/src/Orchard.Tests/UI/Notify/NotifyFilterTests.cs +++ b/src/Orchard.Tests/UI/Notify/NotifyFilterTests.cs @@ -3,7 +3,6 @@ using System.Web.Routing; using Moq; using NUnit.Framework; using Orchard.Localization; -using Orchard.Mvc.ViewModels; using Orchard.Tests.Stubs; using Orchard.UI.Notify; diff --git a/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs b/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs index 48253ed3d..474698a42 100644 --- a/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs +++ b/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; +using System.Web; using JetBrains.Annotations; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; @@ -37,7 +38,7 @@ namespace Orchard.Core.Common.Drivers { // \/\/ Hackalicious on many accounts - don't copy what has been done here for the wrapper \/\/ protected override DriverResult Display(BodyPart part, string displayType) { var bodyText = _htmlFilters.Aggregate(part.Text, (text, filter) => filter.ProcessContent(text)); - var model = new BodyDisplayViewModel { BodyPart = part, Text = bodyText }; + var model = new BodyDisplayViewModel { BodyPart = part, Html = new HtmlString(bodyText) }; var location = part.GetLocation(displayType); return Combined( diff --git a/src/Orchard.Web/Core/Common/ViewModels/BodyDisplayViewModel.cs b/src/Orchard.Web/Core/Common/ViewModels/BodyDisplayViewModel.cs index 8617f2fd7..12c8162aa 100644 --- a/src/Orchard.Web/Core/Common/ViewModels/BodyDisplayViewModel.cs +++ b/src/Orchard.Web/Core/Common/ViewModels/BodyDisplayViewModel.cs @@ -1,8 +1,9 @@ -using Orchard.Core.Common.Models; +using System.Web; +using Orchard.Core.Common.Models; namespace Orchard.Core.Common.ViewModels { public class BodyDisplayViewModel { public BodyPart BodyPart { get; set; } - public string Text { get; set; } + public IHtmlString Html { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs index c24dfb18c..7fc383cf6 100644 --- a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs @@ -12,10 +12,10 @@ using Orchard.Core.Common.Models; using Orchard.Core.Contents.Settings; using Orchard.Core.Contents.ViewModels; using Orchard.Data; +using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.Logging; using Orchard.Mvc.Results; -using Orchard.Mvc.ViewModels; using Orchard.UI.Notify; namespace Orchard.Core.Contents.Controllers { @@ -29,15 +29,18 @@ namespace Orchard.Core.Contents.Controllers { IOrchardServices orchardServices, IContentManager contentManager, IContentDefinitionManager contentDefinitionManager, - ITransactionManager transactionManager) { + ITransactionManager transactionManager, + IShapeHelperFactory shapeHelperFactory) { Services = orchardServices; _contentManager = contentManager; _contentDefinitionManager = contentDefinitionManager; _transactionManager = transactionManager; T = NullLocalizer.Instance; Logger = NullLogger.Instance; + Shape = shapeHelperFactory.CreateHelper(); } + dynamic Shape { get; set; } public IOrchardServices Services { get; private set; } public Localizer T { get; set; } public ILogger Logger { get; set; } @@ -110,7 +113,7 @@ namespace Orchard.Core.Contents.Controllers { .Select(ctd => new KeyValuePair(ctd.Name, ctd.DisplayName)) .ToList().OrderBy(kvp => kvp.Key); - return View("List", model); + return View(Shape.Model(model)); } private IEnumerable GetCreatableTypes() { @@ -188,9 +191,8 @@ namespace Orchard.Core.Contents.Controllers { private ListContentsViewModel.Entry BuildEntry(ContentItem contentItem) { var entry = new ListContentsViewModel.Entry { - ContentItem = contentItem, + ContentItem = _contentManager.BuildDisplayModel(contentItem, "SummaryAdmin"), ContentItemMetadata = _contentManager.GetItemMetadata(contentItem), - ViewModel = _contentManager.BuildDisplayShape(contentItem, "SummaryAdmin"), }; if (string.IsNullOrEmpty(entry.ContentItemMetadata.DisplayText)) { entry.ContentItemMetadata.DisplayText = string.Format("[{0}#{1}]", contentItem.ContentType, contentItem.Id); @@ -207,11 +209,7 @@ namespace Orchard.Core.Contents.Controllers { } ActionResult CreatableTypeList() { - var model = new ListContentTypesViewModel { - Types = GetCreatableTypes() - }; - - return View("CreatableTypeList", model); + return View(Shape.Model(Types: GetCreatableTypes())); } public ActionResult Create(string id) { @@ -223,35 +221,32 @@ namespace Orchard.Core.Contents.Controllers { if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Cannot create content"))) return new HttpUnauthorizedResult(); - var model = new CreateItemViewModel { - Id = id, - Content = _contentManager.BuildEditorShape(contentItem) - }; - PrepareEditorViewModel(model.Content); - return View("Create", model); + var model = _contentManager.BuildEditorModel(contentItem); + return View(Shape.Model(Content: model)); } - [HttpPost] - public ActionResult Create(CreateItemViewModel model) { - var contentItem = _contentManager.New(model.Id); + [HttpPost, ActionName("Create")] + public ActionResult CreatePOST(string id) { + var contentItem = _contentManager.New(id); if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Couldn't create content"))) return new HttpUnauthorizedResult(); _contentManager.Create(contentItem, VersionOptions.Draft); - model.Content = _contentManager.UpdateEditorShape(contentItem, this); + var model = _contentManager.UpdateEditorModel(contentItem, this); if (!ModelState.IsValid) { _transactionManager.Cancel(); - PrepareEditorViewModel(model.Content); - return View("Create", model); + return View(Shape.Model(Content: model)); } if (!contentItem.Has()) _contentManager.Publish(contentItem); - Services.Notifier.Information(string.IsNullOrWhiteSpace(model.Content.Item.TypeDefinition.DisplayName) ? T("Your content has been created.") : T("Your {0} has been created.", model.Content.Item.TypeDefinition.DisplayName)); + Services.Notifier.Information(string.IsNullOrWhiteSpace(model.TypeDefinition.DisplayName) + ? T("Your content has been created.") + : T("Your {0} has been created.", model.TypeDefinition.DisplayName)); return RedirectToAction("Edit", new RouteValueDictionary { { "Id", contentItem.Id } }); } @@ -264,19 +259,14 @@ namespace Orchard.Core.Contents.Controllers { if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Cannot edit content"))) return new HttpUnauthorizedResult(); - var model = new EditItemViewModel { - Id = id, - Content = _contentManager.BuildEditorShape(contentItem) - }; + var model = _contentManager.BuildEditorModel(contentItem); - PrepareEditorViewModel(model.Content); - - return View("Edit", model); + return View(Shape.Model(Content: model)); } - [HttpPost] - public ActionResult Edit(EditItemViewModel model) { - var contentItem = _contentManager.Get(model.Id, VersionOptions.DraftRequired); + [HttpPost, ActionName("Edit")] + public ActionResult EditPOST(int id) { + var contentItem = _contentManager.Get(id, VersionOptions.DraftRequired); if (contentItem == null) return new NotFoundResult(); @@ -284,18 +274,19 @@ namespace Orchard.Core.Contents.Controllers { if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Couldn't edit content"))) return new HttpUnauthorizedResult(); - model.Content = _contentManager.UpdateEditorShape(contentItem, this); + var model = _contentManager.UpdateEditorModel(contentItem, this); if (!ModelState.IsValid) { _transactionManager.Cancel(); - PrepareEditorViewModel(model.Content); - return View("Edit", model); + return View("Edit", Shape.Model(Content: model)); } //need to go about this differently - to know when to publish (IPlublishableAspect ?) if (!contentItem.Has()) _contentManager.Publish(contentItem); - Services.Notifier.Information(string.IsNullOrWhiteSpace(model.Content.Item.TypeDefinition.DisplayName) ? T("Your content has been saved.") : T("Your {0} has been saved.", model.Content.Item.TypeDefinition.DisplayName)); + Services.Notifier.Information(string.IsNullOrWhiteSpace(model.TypeDefinition.DisplayName) + ? T("Your content has been saved.") + : T("Your {0} has been saved.", model.TypeDefinition.DisplayName)); return RedirectToAction("Edit", new RouteValueDictionary { { "Id", contentItem.Id } }); } @@ -308,7 +299,9 @@ namespace Orchard.Core.Contents.Controllers { if (contentItem != null) { _contentManager.Remove(contentItem); - Services.Notifier.Information(string.IsNullOrWhiteSpace(contentItem.TypeDefinition.DisplayName) ? T("That content has been removed.") : T("That {0} has been removed.", contentItem.TypeDefinition.DisplayName)); + Services.Notifier.Information(string.IsNullOrWhiteSpace(contentItem.TypeDefinition.DisplayName) + ? T("That content has been removed.") + : T("That {0} has been removed.", contentItem.TypeDefinition.DisplayName)); } if (!String.IsNullOrEmpty(returnUrl)) @@ -355,12 +348,6 @@ namespace Orchard.Core.Contents.Controllers { return RedirectToAction("List"); } - private static void PrepareEditorViewModel(ContentItemViewModel itemViewModel) { - if (string.IsNullOrEmpty(itemViewModel.TemplateName)) { - itemViewModel.TemplateName = "Items/Contents.Item"; - } - } - bool IUpdateModel.TryUpdateModel(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) { return TryUpdateModel(model, prefix, includeProperties, excludeProperties); } diff --git a/src/Orchard.Web/Core/Contents/Controllers/ItemController.cs b/src/Orchard.Web/Core/Contents/Controllers/ItemController.cs index 8644a742f..1e9d931d4 100644 --- a/src/Orchard.Web/Core/Contents/Controllers/ItemController.cs +++ b/src/Orchard.Web/Core/Contents/Controllers/ItemController.cs @@ -1,8 +1,6 @@ using System.Web.Mvc; using Orchard.ContentManagement; -using Orchard.Core.Contents.ViewModels; using Orchard.DisplayManagement; -using Orchard.Mvc.ViewModels; namespace Orchard.Core.Contents.Controllers { public class ItemController : Controller { @@ -18,12 +16,8 @@ namespace Orchard.Core.Contents.Controllers { // /Contents/Item/Display/72 public ActionResult Display(int id) { var contentItem = _contentManager.Get(id, VersionOptions.Published); - - var model = Shape.Content( - _contentManager.BuildDisplayShape(contentItem, "Detail") - ); - //PrepareDisplayViewModel(model.Content); - return View(model); + var model = _contentManager.BuildDisplayModel(contentItem, "Detail"); + return View(Shape.Model(model)); } // /Contents/Item/Preview/72 @@ -35,18 +29,8 @@ namespace Orchard.Core.Contents.Controllers { } var contentItem = _contentManager.Get(id, versionOptions); - - var model = new DisplayItemViewModel { - Content = _contentManager.BuildDisplayShape(contentItem, "Detail") - }; - PrepareDisplayViewModel(model.Content); - return View("Preview", model); - } - - private static void PrepareDisplayViewModel(ContentItemViewModel itemViewModel) { - if (string.IsNullOrEmpty(itemViewModel.TemplateName)) { - itemViewModel.TemplateName = "Items/Contents.Item"; - } + var model = _contentManager.BuildDisplayModel(contentItem, "Detail"); + return View(Shape.Model(model)); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Contents/ViewModels/CreateItemViewModel.cs b/src/Orchard.Web/Core/Contents/ViewModels/CreateItemViewModel.cs index 74b2f6d73..228c86bac 100644 --- a/src/Orchard.Web/Core/Contents/ViewModels/CreateItemViewModel.cs +++ b/src/Orchard.Web/Core/Contents/ViewModels/CreateItemViewModel.cs @@ -1,8 +1,8 @@ -using Orchard.Mvc.ViewModels; - -namespace Orchard.Core.Contents.ViewModels { +namespace Orchard.Core.Contents.ViewModels { +#if REFACTORING public class CreateItemViewModel { public string Id { get; set; } public ContentItemViewModel Content { get; set; } } +#endif } diff --git a/src/Orchard.Web/Core/Contents/ViewModels/EditItemViewModel.cs b/src/Orchard.Web/Core/Contents/ViewModels/EditItemViewModel.cs index 13a64595e..09cf06bd4 100644 --- a/src/Orchard.Web/Core/Contents/ViewModels/EditItemViewModel.cs +++ b/src/Orchard.Web/Core/Contents/ViewModels/EditItemViewModel.cs @@ -1,6 +1,5 @@ -using Orchard.Mvc.ViewModels; - -namespace Orchard.Core.Contents.ViewModels { +namespace Orchard.Core.Contents.ViewModels { +#if REFACTORING public class EditItemViewModel { public int Id { get; set; } public ContentItemViewModel Content { get; set; } @@ -8,4 +7,5 @@ namespace Orchard.Core.Contents.ViewModels { public class DisplayItemViewModel { public ContentItemViewModel Content { get; set; } } +#endif } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Contents/ViewModels/ListContentsViewModel.cs b/src/Orchard.Web/Core/Contents/ViewModels/ListContentsViewModel.cs index 9cda5009e..bf6cd6be5 100644 --- a/src/Orchard.Web/Core/Contents/ViewModels/ListContentsViewModel.cs +++ b/src/Orchard.Web/Core/Contents/ViewModels/ListContentsViewModel.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Orchard.ContentManagement; -using Orchard.Mvc.ViewModels; namespace Orchard.Core.Contents.ViewModels { public class ListContentsViewModel { @@ -25,7 +24,6 @@ namespace Orchard.Core.Contents.ViewModels { public class Entry { public ContentItem ContentItem { get; set; } public ContentItemMetadata ContentItemMetadata { get; set; } - public ContentItemViewModel ViewModel { get; set; } } #endregion diff --git a/src/Orchard.Web/Core/HomePage/Views/HomePage.cshtml b/src/Orchard.Web/Core/HomePage/Views/HomePage.cshtml new file mode 100644 index 000000000..0357b347d --- /dev/null +++ b/src/Orchard.Web/Core/HomePage/Views/HomePage.cshtml @@ -0,0 +1,11 @@ +@model dynamic +
+

HomePage shape template

+

I am the home page

+
+
content item id
+
@Display(Model.Id)
+
the hard way to get at the raw body text
+
@Display(Model.Parts[3].Text)
+
+
\ No newline at end of file diff --git a/src/Orchard.Web/Core/Localization/Controllers/AdminController.cs b/src/Orchard.Web/Core/Localization/Controllers/AdminController.cs index dc0aae8e6..d363c8bb6 100644 --- a/src/Orchard.Web/Core/Localization/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Localization/Controllers/AdminController.cs @@ -7,10 +7,10 @@ using Orchard.Core.Localization.Models; using Orchard.Core.Localization.Services; using Orchard.Core.Localization.ViewModels; using Orchard.Core.Routable.Models; +using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.Localization.Services; using Orchard.Mvc.Results; -using Orchard.Mvc.ViewModels; using Orchard.UI.Notify; namespace Orchard.Core.Localization.Controllers { @@ -20,14 +20,21 @@ namespace Orchard.Core.Localization.Controllers { private readonly ICultureManager _cultureManager; private readonly ILocalizationService _localizationService; - public AdminController(IOrchardServices orchardServices, IContentManager contentManager, ICultureManager cultureManager, ILocalizationService localizationService) { + public AdminController( + IOrchardServices orchardServices, + IContentManager contentManager, + ICultureManager cultureManager, + ILocalizationService localizationService, + IShapeHelperFactory shapeHelperFactory) { _contentManager = contentManager; _cultureManager = cultureManager; _localizationService = localizationService; T = NullLocalizer.Instance; Services = orchardServices; + Shape = shapeHelperFactory.CreateHelper(); } + dynamic Shape { get; set; } public Localizer T { get; set; } public IOrchardServices Services { get; set; } @@ -60,12 +67,11 @@ namespace Orchard.Core.Localization.Controllers { Id = id, SelectedCulture = selectedCulture, SiteCultures = siteCultures, - Content = _contentManager.BuildEditorShape(contentItem) + Content = _contentManager.BuildEditorModel(contentItem) }; Services.TransactionManager.Cancel(); - PrepareEditorViewModel(model.Content); - return View(model); + return View(Shape.Model(model)); } [HttpPost, ActionName("Translate")] @@ -75,11 +81,11 @@ namespace Orchard.Core.Localization.Controllers { if (contentItem == null) return new NotFoundResult(); - var viewModel = new AddLocalizationViewModel(); - TryUpdateModel(viewModel); + var model = new AddLocalizationViewModel(); + TryUpdateModel(model); ContentItem contentItemTranslation = null; - var existingTranslation = _localizationService.GetLocalizedContentItem(contentItem, viewModel.SelectedCulture); + var existingTranslation = _localizationService.GetLocalizedContentItem(contentItem, model.SelectedCulture); if (existingTranslation != null) { // edit existing contentItemTranslation = _contentManager.Get(existingTranslation.ContentItem.Id, VersionOptions.DraftRequired); @@ -89,8 +95,8 @@ namespace Orchard.Core.Localization.Controllers { contentItemTranslation = _contentManager.New(contentItem.ContentType); var localized = contentItemTranslation.As(); localized.MasterContentItem = contentItem; - if (!string.IsNullOrWhiteSpace(viewModel.SelectedCulture)) - localized.Culture = _cultureManager.GetCultureByName(viewModel.SelectedCulture); + if (!string.IsNullOrWhiteSpace(model.SelectedCulture)) + localized.Culture = _cultureManager.GetCultureByName(model.SelectedCulture); _contentManager.Create(contentItemTranslation, VersionOptions.Draft); if (!contentItem.Has() && contentItem.VersionRecord != null && contentItem.VersionRecord.Published) { @@ -98,32 +104,25 @@ namespace Orchard.Core.Localization.Controllers { } } - viewModel.Content = _contentManager.UpdateEditorShape(contentItemTranslation, this); + model.Content = _contentManager.UpdateEditorModel(contentItemTranslation, this); if (!ModelState.IsValid) { Services.TransactionManager.Cancel(); - viewModel.SiteCultures = _cultureManager.ListCultures().Where(s => s != _localizationService.GetContentCulture(contentItem) && s != _cultureManager.GetSiteCulture()); + model.SiteCultures = _cultureManager.ListCultures().Where(s => s != _localizationService.GetContentCulture(contentItem) && s != _cultureManager.GetSiteCulture()); contentItem.As().Culture.Culture = null; - viewModel.Content = _contentManager.BuildEditorShape(contentItem); - PrepareEditorViewModel(viewModel.Content); - return View(viewModel); + model.Content = _contentManager.BuildEditorModel(contentItem); + return View(Shape.Model(model)); } Services.Notifier.Information(T("Created content item translation.")); - var metadata = _contentManager.GetItemMetadata(viewModel.Content.Item); + var metadata = _contentManager.GetItemMetadata(model.Content); if (metadata.EditorRouteValues == null) return null; //todo: (heskew) redirect to somewhere better than nowhere return RedirectToRoute(metadata.EditorRouteValues); } - private static void PrepareEditorViewModel(ContentItemViewModel itemViewModel) { - if (string.IsNullOrEmpty(itemViewModel.TemplateName)) { - itemViewModel.TemplateName = "Items/Contents.Item"; - } - } - bool IUpdateModel.TryUpdateModel(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) { return TryUpdateModel(model, prefix, includeProperties, excludeProperties); } diff --git a/src/Orchard.Web/Core/Localization/ViewModels/AddLocalizationViewModel.cs b/src/Orchard.Web/Core/Localization/ViewModels/AddLocalizationViewModel.cs index ce90e7be9..776c36bb1 100644 --- a/src/Orchard.Web/Core/Localization/ViewModels/AddLocalizationViewModel.cs +++ b/src/Orchard.Web/Core/Localization/ViewModels/AddLocalizationViewModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using Orchard.Mvc.ViewModels; +using Orchard.ContentManagement; namespace Orchard.Core.Localization.ViewModels { public class AddLocalizationViewModel { @@ -8,6 +8,6 @@ namespace Orchard.Core.Localization.ViewModels { [Required] public string SelectedCulture { get; set; } public IEnumerable SiteCultures { get; set; } - public ContentItemViewModel Content { get; set; } + public IContent Content { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs index ace752671..b56ca4bb5 100644 --- a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs @@ -6,6 +6,7 @@ using Orchard.Core.Navigation.Drivers; using Orchard.Core.Navigation.Models; using Orchard.Core.Navigation.Services; using Orchard.Core.Navigation.ViewModels; +using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.Mvc.AntiForgery; using Orchard.UI.Navigation; @@ -18,13 +19,19 @@ namespace Orchard.Core.Navigation.Controllers { private readonly IOrchardServices _services; private readonly INavigationManager _navigationManager; - public AdminController(IMenuService menuService, IOrchardServices services, INavigationManager navigationManager) { + public AdminController( + IMenuService menuService, + IOrchardServices services, + INavigationManager navigationManager, + IShapeHelperFactory shapeHelperFactory) { _menuService = menuService; _services = services; _navigationManager = navigationManager; T = NullLocalizer.Instance; + Shape = shapeHelperFactory.CreateHelper(); } + dynamic Shape { get; set; } public Localizer T { get; set; } public ActionResult Index(NavigationManagementViewModel model) { @@ -37,7 +44,7 @@ namespace Orchard.Core.Navigation.Controllers { if (model.MenuItemEntries == null || model.MenuItemEntries.Count() < 1) model.MenuItemEntries = _menuService.Get().Select(menuPart => CreateMenuItemEntries(menuPart)).OrderBy(menuPartEntry => menuPartEntry.MenuItem.Position, new PositionComparer()).ToList(); - return View("Index", model); + return View(Shape.Model(model)); } [HttpPost, ActionName("Index")] @@ -81,7 +88,7 @@ namespace Orchard.Core.Navigation.Controllers { return new HttpUnauthorizedResult(); var menuPart = _services.ContentManager.New("MenuItem"); - model.MenuItem = _services.ContentManager.UpdateEditorShape(menuPart, this); + model.MenuItem = _services.ContentManager.UpdateEditorModel(menuPart, this); if (!ModelState.IsValid) { _services.TransactionManager.Cancel(); @@ -92,7 +99,7 @@ namespace Orchard.Core.Navigation.Controllers { menuPart.MenuPosition = Position.GetNext(_navigationManager.BuildMenu("main")); menuPart.OnMainMenu = true; - _services.ContentManager.Create(model.MenuItem.Item.ContentItem); + _services.ContentManager.Create(model.MenuItem); return RedirectToAction("Index"); } diff --git a/src/Orchard.Web/Core/Navigation/ViewModels/CreateMenuItemViewModel.cs b/src/Orchard.Web/Core/Navigation/ViewModels/CreateMenuItemViewModel.cs index 62eae1599..d24f4894a 100644 --- a/src/Orchard.Web/Core/Navigation/ViewModels/CreateMenuItemViewModel.cs +++ b/src/Orchard.Web/Core/Navigation/ViewModels/CreateMenuItemViewModel.cs @@ -1,8 +1,7 @@ -using Orchard.Core.Navigation.Models; -using Orchard.Mvc.ViewModels; +using Orchard.ContentManagement; namespace Orchard.Core.Navigation.ViewModels { public class CreateMenuItemViewModel { - public ContentItemViewModel MenuItem { get; set; } + public IContent MenuItem { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index dab4ff1ae..372e02abc 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -376,6 +376,7 @@ + diff --git a/src/Orchard.Web/Core/Reports/Controllers/AdminController.cs b/src/Orchard.Web/Core/Reports/Controllers/AdminController.cs index d8f8dd6d9..ebb1dcaff 100644 --- a/src/Orchard.Web/Core/Reports/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Reports/Controllers/AdminController.cs @@ -1,27 +1,29 @@ using System.Linq; using System.Web.Mvc; using Orchard.Core.Reports.ViewModels; -using Orchard.Mvc.ViewModels; +using Orchard.DisplayManagement; using Orchard.Reports.Services; namespace Orchard.Core.Reports.Controllers { public class AdminController : Controller { private readonly IReportsManager _reportsManager; - public AdminController(IReportsManager reportsManager) { + public AdminController(IReportsManager reportsManager, IShapeHelperFactory shapeHelperFactory) { _reportsManager = reportsManager; } + dynamic Shape { get; set; } + public ActionResult Index() { var model = new ReportsAdminIndexViewModel { Reports = _reportsManager.GetReports().ToList() }; - return View(model); + return View(Shape.Model(model)); } public ActionResult Display(int id) { var model = new DisplayReportViewModel { Report = _reportsManager.Get(id) }; - return View(model); + return View(Shape.Model(model)); } } diff --git a/src/Orchard.Web/Core/Routable/Controllers/ItemController.cs b/src/Orchard.Web/Core/Routable/Controllers/ItemController.cs index a70a26d69..417aeb478 100644 --- a/src/Orchard.Web/Core/Routable/Controllers/ItemController.cs +++ b/src/Orchard.Web/Core/Routable/Controllers/ItemController.cs @@ -3,12 +3,10 @@ using System.Linq; using System.Web.Mvc; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; -using Orchard.Core.Common.Models; using Orchard.Core.Routable.Models; -using Orchard.Core.Routable.ViewModels; using Orchard.Data; +using Orchard.DisplayManagement; using Orchard.Localization; -using Orchard.Mvc.ViewModels; namespace Orchard.Core.Routable.Controllers { [ValidateInput(false)] @@ -17,12 +15,15 @@ namespace Orchard.Core.Routable.Controllers { private readonly ITransactionManager _transactionManager; private readonly IRoutablePathConstraint _routablePathConstraint; - public ItemController(IContentManager contentManager, ITransactionManager transactionManager, IRoutablePathConstraint routablePathConstraint) { + public ItemController(IContentManager contentManager, ITransactionManager transactionManager, IRoutablePathConstraint routablePathConstraint, IShapeHelperFactory shapeHelperFactory) { _contentManager = contentManager; _transactionManager = transactionManager; _routablePathConstraint = routablePathConstraint; + Shape = shapeHelperFactory.CreateHelper(); } + dynamic Shape { get; set; } + public ActionResult Display(string path) { var matchedPath = _routablePathConstraint.FindPath(path); if (string.IsNullOrEmpty(matchedPath)) { @@ -39,17 +40,9 @@ namespace Orchard.Core.Routable.Controllers { if (hits.Count() != 1) { throw new ApplicationException("Ambiguous content"); } - var model = new RoutableDisplayViewModel { - Routable = _contentManager.BuildDisplayShape(hits.Single(), "Detail") - }; - PrepareDisplayViewModel(model.Routable); - return View("Display", model); - } - private void PrepareDisplayViewModel(ContentItemViewModel itemViewModel) { - if (string.IsNullOrEmpty(itemViewModel.TemplateName)) { - itemViewModel.TemplateName = "Items/Contents.Item"; - } + var model = _contentManager.BuildDisplayModel(hits.Single(), "Detail"); + return View(Shape.Model(model)); } public ActionResult Slugify(string contentType, int? id, int? containerId) { @@ -71,7 +64,7 @@ namespace Orchard.Core.Routable.Controllers { } } - _contentManager.UpdateEditorShape(contentItem, this); + _contentManager.UpdateEditorModel(contentItem, this); _transactionManager.Cancel(); return Json(contentItem.As().Slug ?? slug); diff --git a/src/Orchard.Web/Core/Routable/Services/RoutableHomePageProvider.cs b/src/Orchard.Web/Core/Routable/Services/RoutableHomePageProvider.cs index d63d3f32a..ac0437f0a 100644 --- a/src/Orchard.Web/Core/Routable/Services/RoutableHomePageProvider.cs +++ b/src/Orchard.Web/Core/Routable/Services/RoutableHomePageProvider.cs @@ -2,7 +2,7 @@ using JetBrains.Annotations; using Orchard.ContentManagement.Aspects; using Orchard.Core.Routable.Models; -using Orchard.Core.Routable.ViewModels; +using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.Mvc.Results; using Orchard.Services; @@ -14,12 +14,14 @@ namespace Orchard.Core.Routable.Services { private readonly IContentManager _contentManager; public const string Name = "RoutableHomePageProvider"; - public RoutableHomePageProvider(IOrchardServices services, IContentManager contentManager) { + public RoutableHomePageProvider(IOrchardServices services, IContentManager contentManager, IShapeHelperFactory shapeHelperFactory) { _contentManager = contentManager; Services = services; T = NullLocalizer.Instance; + Shape = shapeHelperFactory.CreateHelper(); } + dynamic Shape { get; set; } public IOrchardServices Services { get; private set; } public Localizer T { get; set; } @@ -36,13 +38,11 @@ namespace Orchard.Core.Routable.Services { if (contentItem == null || !contentItem.Is()) return new NotFoundResult(); - var model = new RoutableDisplayViewModel { - Routable = _contentManager.BuildDisplayShape(contentItem.As(), "Detail") - }; + var model = _contentManager.BuildDisplayModel(contentItem, "Detail"); return new ViewResult { - ViewName = "~/Core/Routable/Views/Item/Display.ascx", - ViewData = new ViewDataDictionary(model) + //ViewName = "~/Core/Routable/Views/Item/Display.ascx", + ViewData = new ViewDataDictionary(Shape.HomePage(model)) }; } } diff --git a/src/Orchard.Web/Core/Routable/ViewModels/RoutableDisplayViewModel.cs b/src/Orchard.Web/Core/Routable/ViewModels/RoutableDisplayViewModel.cs index 1a7959ef3..512077b7d 100644 --- a/src/Orchard.Web/Core/Routable/ViewModels/RoutableDisplayViewModel.cs +++ b/src/Orchard.Web/Core/Routable/ViewModels/RoutableDisplayViewModel.cs @@ -1,8 +1,9 @@ using Orchard.ContentManagement.Aspects; -using Orchard.Mvc.ViewModels; namespace Orchard.Core.Routable.ViewModels { +#if REFACTORING public class RoutableDisplayViewModel { public ContentItemViewModel Routable {get;set;} } +#endif } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Settings/Controllers/AdminController.cs b/src/Orchard.Web/Core/Settings/Controllers/AdminController.cs index 0e357e4c7..cebcfb64d 100644 --- a/src/Orchard.Web/Core/Settings/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Settings/Controllers/AdminController.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Web.Mvc; using Orchard.Core.Settings.Models; using Orchard.Core.Settings.ViewModels; +using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.ContentManagement; using Orchard.Localization.Services; @@ -16,25 +17,30 @@ namespace Orchard.Core.Settings.Controllers { private readonly ICultureManager _cultureManager; public IOrchardServices Services { get; private set; } - public AdminController(ISiteService siteService, IOrchardServices services, ICultureManager cultureManager) { + public AdminController( + ISiteService siteService, + IOrchardServices services, + ICultureManager cultureManager, + IShapeHelperFactory shapeHelperFactory) { _siteService = siteService; _cultureManager = cultureManager; Services = services; T = NullLocalizer.Instance; } + dynamic Shape { get; set; } public Localizer T { get; set; } public ActionResult Index(string tabName) { if (!Services.Authorizer.Authorize(Permissions.ManageSettings, T("Not authorized to manage settings"))) return new HttpUnauthorizedResult(); + var site = _siteService.GetSiteSettings().As(); var model = new SettingsIndexViewModel { - Site = _siteService.GetSiteSettings().As(), + Site = Services.ContentManager.BuildEditorModel(site), SiteCultures = _cultureManager.ListCultures() }; - model.ViewModel = Services.ContentManager.BuildEditorShape(model.Site); - return View(model); + return View(Shape.Model(model)); } [HttpPost, ActionName("Index")] @@ -42,11 +48,12 @@ namespace Orchard.Core.Settings.Controllers { if (!Services.Authorizer.Authorize(Permissions.ManageSettings, T("Not authorized to manage settings"))) return new HttpUnauthorizedResult(); - var viewModel = new SettingsIndexViewModel { Site = _siteService.GetSiteSettings().As() }; - viewModel.ViewModel = Services.ContentManager.UpdateEditorShape(viewModel.Site.ContentItem, this); + var site = _siteService.GetSiteSettings().As(); + var model = new SettingsIndexViewModel { Site = Services.ContentManager.UpdateEditorModel(site, this) }; - if (!TryUpdateModel(viewModel)) { - return View(viewModel); + if (!ModelState.IsValid) { + Services.TransactionManager.Cancel(); + return View(Shape.Model(model)); } Services.Notifier.Information(T("Settings updated")); @@ -58,15 +65,15 @@ namespace Orchard.Core.Settings.Controllers { if (!Services.Authorizer.Authorize(Permissions.ManageSettings, T("Not authorized to manage settings"))) return new HttpUnauthorizedResult(); - var viewModel = new SiteCulturesViewModel { + var model = new SiteCulturesViewModel { CurrentCulture = _cultureManager.GetCurrentCulture(HttpContext), SiteCultures = _cultureManager.ListCultures(), }; - viewModel.AvailableSystemCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures) + model.AvailableSystemCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures) .Select(ci => ci.Name) - .Where(s => !viewModel.SiteCultures.Contains(s)); + .Where(s => !model.SiteCultures.Contains(s)); - return View(viewModel); + return View(Shape.Model(model)); } [HttpPost] diff --git a/src/Orchard.Web/Core/Settings/ViewModels/SettingsIndexViewModel.cs b/src/Orchard.Web/Core/Settings/ViewModels/SettingsIndexViewModel.cs index eb894e15e..18eefa608 100644 --- a/src/Orchard.Web/Core/Settings/ViewModels/SettingsIndexViewModel.cs +++ b/src/Orchard.Web/Core/Settings/ViewModels/SettingsIndexViewModel.cs @@ -1,14 +1,12 @@ using System.Collections.Generic; using System.Web.Mvc; using Orchard.ContentManagement; -using Orchard.Mvc.ViewModels; using Orchard.Core.Settings.Models; namespace Orchard.Core.Settings.ViewModels { public class SettingsIndexViewModel { public SiteSettingsPart Site { get; set; } public IEnumerable SiteCultures { get; set; } - public ContentItemViewModel ViewModel { get; set; } [HiddenInput(DisplayValue = false)] diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.sln b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.sln new file mode 100644 index 000000000..47708a3fe --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.ContentTypes", "Orchard.ContentTypes.csproj", "{0E7646E8-FE8F-43C1-8799-D97860925EC4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0E7646E8-FE8F-43C1-8799-D97860925EC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E7646E8-FE8F-43C1-8799-D97860925EC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E7646E8-FE8F-43C1-8799-D97860925EC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E7646E8-FE8F-43C1-8799-D97860925EC4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Orchard.Web/Modules/Orchard.DevTools/Controllers/ContentController.cs b/src/Orchard.Web/Modules/Orchard.DevTools/Controllers/ContentController.cs index 0bbc3c75b..27144e368 100644 --- a/src/Orchard.Web/Modules/Orchard.DevTools/Controllers/ContentController.cs +++ b/src/Orchard.Web/Modules/Orchard.DevTools/Controllers/ContentController.cs @@ -6,6 +6,7 @@ using Orchard.Data; using Orchard.DevTools.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Records; +using Orchard.DisplayManagement; namespace Orchard.DevTools.Controllers { public class ContentController : Controller { @@ -14,11 +15,14 @@ namespace Orchard.DevTools.Controllers { public ContentController( IRepository contentTypeRepository, - IContentManager contentManager) { + IContentManager contentManager, + IShapeHelperFactory shapeHelperFactory) { _contentTypeRepository = contentTypeRepository; _contentManager = contentManager; } + dynamic Shape { get; set; } + public ActionResult Index() { return View(new ContentIndexViewModel { Items = _contentManager.Query().List(), @@ -34,10 +38,10 @@ namespace Orchard.DevTools.Controllers { .Select(x => x.GetType()) .SelectMany(x => AllTypes(x)) .Distinct(); - model.DisplayModel = _contentManager.BuildDisplayShape(model.Item, "Detail"); - model.EditorModel = _contentManager.BuildEditorShape(model.Item); + model.DisplayShape = _contentManager.BuildDisplayModel(model.Item, "Detail"); + model.EditorShape = _contentManager.BuildEditorModel(model.Item); - return View(model); + return View(Shape.Model(model)); } static IEnumerable AllTypes(Type type) { diff --git a/src/Orchard.Web/Modules/Orchard.DevTools/Handlers/DebugLinkHandler.cs b/src/Orchard.Web/Modules/Orchard.DevTools/Handlers/DebugLinkHandler.cs index 9162d5c4c..d3f9949dd 100644 --- a/src/Orchard.Web/Modules/Orchard.DevTools/Handlers/DebugLinkHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.DevTools/Handlers/DebugLinkHandler.cs @@ -1,6 +1,5 @@ using JetBrains.Annotations; using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.ViewModels; using Orchard.DevTools.Models; namespace Orchard.DevTools.Handlers { @@ -9,12 +8,12 @@ namespace Orchard.DevTools.Handlers { protected override void BuildDisplayShape(BuildDisplayModelContext context) { var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel(); if (devToolsSettings.ShowDebugLinks) - context.AddDisplay(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" }); + context.ContentItem.Zones["Recap"].Add(new ShowDebugLink { ContentItem = context.ContentItem }, "9999"); } protected override void BuildEditorShape(BuildEditorModelContext context) { var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel(); if (devToolsSettings.ShowDebugLinks) - context.AddEditor(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" }); + context.ContentItem.Zones["Recap"].Add(new ShowDebugLink { ContentItem = context.ContentItem }, "9999"); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.DevTools/ViewModels/ContentDetailsViewModel.cs b/src/Orchard.Web/Modules/Orchard.DevTools/ViewModels/ContentDetailsViewModel.cs index 60ba3dcd4..d94bc21a5 100644 --- a/src/Orchard.Web/Modules/Orchard.DevTools/ViewModels/ContentDetailsViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.DevTools/ViewModels/ContentDetailsViewModel.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using Orchard.ContentManagement; using Orchard.ContentManagement.ViewModels; -using Orchard.Mvc.ViewModels; using Orchard.UI.Zones; namespace Orchard.DevTools.ViewModels { @@ -12,27 +11,13 @@ namespace Orchard.DevTools.ViewModels { public IEnumerable PartTypes { get; set; } - public ContentItemViewModel DisplayModel { get; set; } + public IContent DisplayShape { get; set; } - public ContentItemViewModel EditorModel { get; set; } - - public IEnumerable Displays { - get { - return DisplayModel.Zones - .SelectMany(z => z.Value.Items - .OfType() - .Select(x=>new{ZoneName=z.Key,Item=x})) - .Select(x => new TemplateViewModel(x.Item.Model,x.Item.Prefix) { - Model = x.Item.Model, - TemplateName=x.Item.TemplateName, - WasUsed=x.Item.WasExecuted, - ZoneName=x.ZoneName, - }); - } - } + public IContent EditorShape { get; set; } public IEnumerable Editors { get { +#if REFACTORING return EditorModel.Zones .SelectMany(z => z.Value.Items .OfType() @@ -43,6 +28,9 @@ namespace Orchard.DevTools.ViewModels { WasUsed = x.Item.WasExecuted, ZoneName = x.ZoneName, }); +#else + return null; +#endif } } diff --git a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs index d34ace551..a06b2ed61 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs @@ -26,12 +26,10 @@ using Orchard.Mvc.ViewEngines; using Orchard.Mvc.ViewEngines.Razor; using Orchard.Mvc.ViewEngines.WebForms; using Orchard.Settings; -using Orchard.Setup.Commands; using Orchard.Themes; using Orchard.UI.Notify; using Orchard.UI.PageClass; using Orchard.UI.PageTitle; -using Orchard.UI.Zones; namespace Orchard.Setup { public class SetupMode : Module { @@ -47,7 +45,6 @@ namespace Orchard.Setup { builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); - builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs index b37e80a27..1b49fb6d5 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs @@ -2,8 +2,8 @@ using System.Reflection; using System.Web; using System.Web.Mvc; +using Orchard.DisplayManagement; using Orchard.Localization; -using Orchard.Mvc.ViewModels; using Orchard.Security; using Orchard.Themes.Preview; using Orchard.Themes.ViewModels; @@ -15,13 +15,20 @@ namespace Orchard.Themes.Controllers { private readonly IThemeService _themeService; private readonly IPreviewTheme _previewTheme; - public AdminController(IOrchardServices services, IThemeService themeService, IPreviewTheme previewTheme, IAuthorizer authorizer, INotifier notifier) { + public AdminController( + IOrchardServices services, + IThemeService themeService, + PreviewTheme previewTheme, + IAuthorizer authorizer, + INotifier notifier, + IShapeHelperFactory shapeHelperFactory) { Services = services; _themeService = themeService; _previewTheme = previewTheme; T = NullLocalizer.Instance; } + dynamic Shape { get; set; } public IOrchardServices Services{ get; set; } public Localizer T { get; set; } @@ -30,11 +37,11 @@ namespace Orchard.Themes.Controllers { var themes = _themeService.GetInstalledThemes(); var currentTheme = _themeService.GetSiteTheme(); var model = new ThemesIndexViewModel { CurrentTheme = currentTheme, Themes = themes }; - return View(model); + return View(Shape.Model(model)); } catch (Exception exception) { Services.Notifier.Error(T("Listing themes failed: " + exception.Message)); - return View(new ThemesIndexViewModel()); + return View(Shape.Model(new ThemesIndexViewModel())); } } diff --git a/src/Orchard.Web/Modules/Orchard.Themes/DesignerNotes/ZoneManagerEvents.cs b/src/Orchard.Web/Modules/Orchard.Themes/DesignerNotes/ZoneManagerEvents.cs index e9512e777..a37d52819 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/DesignerNotes/ZoneManagerEvents.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/DesignerNotes/ZoneManagerEvents.cs @@ -9,6 +9,7 @@ using Orchard.Services; using Orchard.UI.Zones; namespace Orchard.Themes.DesignerNotes { +#if REFACTORING public class ZoneManagerEvents : IZoneManagerEvents { private readonly IThemeService _themeService; private readonly IAuthorizationService _authorizationService; @@ -82,4 +83,5 @@ namespace Orchard.Themes.DesignerNotes { public void ZoneRendered(ZoneRenderContext context) { } } +#endif } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj index c257cfbb4..f43cce0be 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj +++ b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj @@ -104,7 +104,7 @@ - + @@ -128,6 +128,9 @@ Orchard.Framework + + +