diff --git a/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs b/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs index fffa22b01..a2b9d319e 100644 --- a/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs +++ b/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs @@ -23,7 +23,7 @@ namespace Orchard.Specs.Bindings { webApp.GivenIHaveACleanSiteWith( virtualDirectory, TableData( - new { extension = "Module", names = "Orchard.Setup, Orchard.Pages, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields" }, + new { extension = "Module", names = "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields" }, new { extension = "Core", names = "Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title, Reports" }, new { extension = "Theme", names = "SafeMode, TheAdmin, TheThemeMachine" })); diff --git a/src/Orchard.Specs/Setup.feature b/src/Orchard.Specs/Setup.feature index b91619c4a..9663a045f 100644 --- a/src/Orchard.Specs/Setup.feature +++ b/src/Orchard.Specs/Setup.feature @@ -6,7 +6,7 @@ Feature: Setup Scenario: Root request shows setup form Given I have a clean site with | extension | names | - | Module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | + | Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | | Core | Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, XmlRpc, Title | | Theme | SafeMode | When I go to "/" @@ -17,7 +17,7 @@ Scenario: Root request shows setup form Scenario: Setup folder also shows setup form Given I have a clean site with | extension | names | - | Module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | + | Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | | Core | Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, XmlRpc, Title | | Theme | SafeMode | When I go to "/Setup" @@ -28,7 +28,7 @@ Scenario: Setup folder also shows setup form Scenario: Some of the initial form values are required Given I have a clean site with | extension | names | - | Module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | + | Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce | | Core | Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, XmlRpc, Title | | Theme | SafeMode | When I go to "/Setup" @@ -39,7 +39,7 @@ Scenario: Some of the initial form values are required Scenario: Calling setup on a brand new install Given I have a clean site with | extension | names | - | Module | Orchard.Setup, Orchard.Pages, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields | + | Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields | | Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title | | Theme | SafeMode, TheAdmin, TheThemeMachine | And I am on "/Setup" diff --git a/src/Orchard.Specs/Setup.feature.cs b/src/Orchard.Specs/Setup.feature.cs index 820fdcdd4..bbfcb51b1 100644 --- a/src/Orchard.Specs/Setup.feature.cs +++ b/src/Orchard.Specs/Setup.feature.cs @@ -3,7 +3,7 @@ // This code was generated by SpecFlow (http://www.specflow.org/). // SpecFlow Version:1.9.0.77 // SpecFlow Generator Version:1.9.0.0 -// Runtime Version:4.0.30319.18003 +// Runtime Version:4.0.30319.18010 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -78,8 +78,9 @@ this.ScenarioSetup(scenarioInfo); "names"}); table1.AddRow(new string[] { "Module", - "Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Or" + - "chard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce"}); + "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles" + + ", Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orc" + + "hard.jQuery, TinyMce"}); table1.AddRow(new string[] { "Core", "Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, Xml" + @@ -114,8 +115,9 @@ this.ScenarioSetup(scenarioInfo); "names"}); table2.AddRow(new string[] { "Module", - "Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Or" + - "chard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce"}); + "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles" + + ", Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orc" + + "hard.jQuery, TinyMce"}); table2.AddRow(new string[] { "Core", "Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, Xml" + @@ -150,8 +152,9 @@ this.ScenarioSetup(scenarioInfo); "names"}); table3.AddRow(new string[] { "Module", - "Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Or" + - "chard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.jQuery, TinyMce"}); + "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Users, Orchard.Roles" + + ", Orchard.Messaging, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orc" + + "hard.jQuery, TinyMce"}); table3.AddRow(new string[] { "Core", "Common, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, Xml" + @@ -188,7 +191,7 @@ this.ScenarioSetup(scenarioInfo); "names"}); table4.AddRow(new string[] { "Module", - @"Orchard.Setup, Orchard.Pages, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields"}); + @"Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields"}); table4.AddRow(new string[] { "Core", "Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," + diff --git a/src/Orchard.Web/Core/Navigation/Migrations.cs b/src/Orchard.Web/Core/Navigation/Migrations.cs index f8ac33438..c46b38a2a 100644 --- a/src/Orchard.Web/Core/Navigation/Migrations.cs +++ b/src/Orchard.Web/Core/Navigation/Migrations.cs @@ -10,11 +10,6 @@ namespace Orchard.Core.Navigation { .Attachable() .WithDescription("Provides an easy way to create a ContentMenuItem from the content editor.")); - ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder - .Attachable() - .WithDescription("Allows the management of Content Menu Items associated with a Content Item.")); - ContentDefinitionManager.AlterTypeDefinition("Page", cfg => cfg.WithPart("NavigationPart")); - SchemaBuilder.CreateTable("MenuItemPartRecord", table => table .ContentPartRecord() @@ -84,22 +79,6 @@ namespace Orchard.Core.Navigation { .Attachable() .WithDescription("Adds a menu item to the Admin menu that links to this content item.")); - SchemaBuilder.CreateTable("ContentMenuItemPartRecord", - table => table - .ContentPartRecord() - .Column("ContentMenuItemRecord_id") - ); - - ContentDefinitionManager.AlterTypeDefinition("ContentMenuItem", cfg => cfg - .WithPart("MenuPart") - .WithPart("CommonPart") - .WithPart("IdentityPart") - .WithPart("ContentMenuItemPart") - .DisplayedAs("Content Menu Item") - .WithSetting("Description", "Adds a Content Item to the menu.") - .WithSetting("Stereotype", "MenuItem") - ); - SchemaBuilder.CreateTable("ShapeMenuItemPartRecord", table => table.ContentPartRecord() .Column("ShapeType") @@ -179,24 +158,6 @@ namespace Orchard.Core.Navigation { .WithSetting("Stereotype", "MenuItem") ); - ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder.Attachable()); - - SchemaBuilder.CreateTable("ContentMenuItemPartRecord", - table => table - .ContentPartRecord() - .Column("ContentMenuItemRecord_id") - ); - - ContentDefinitionManager.AlterTypeDefinition("ContentMenuItem", cfg => cfg - .WithPart("MenuPart") - .WithPart("CommonPart") - .WithPart("IdentityPart") - .WithPart("ContentMenuItemPart") - .DisplayedAs("Content Menu Item") - .WithSetting("Description", "Adds a Content Item to the menu.") - .WithSetting("Stereotype", "MenuItem") - ); - return 3; } @@ -223,9 +184,6 @@ namespace Orchard.Core.Navigation { ContentDefinitionManager.AlterPartDefinition("MenuPart", builder => builder .WithDescription("Provides an easy way to create a ContentMenuItem from the content editor.")); - ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder - .WithDescription("Allows the management of Content Menu Items associated with a Content Item.")); - ContentDefinitionManager.AlterPartDefinition("AdminMenuPart", builder => builder .Attachable() .WithDescription("Adds a menu item to the Admin menu that links to this content item.")); diff --git a/src/Orchard.Web/Core/Navigation/Module.txt b/src/Orchard.Web/Core/Navigation/Module.txt index f3471b576..ece35e6e7 100644 --- a/src/Orchard.Web/Core/Navigation/Module.txt +++ b/src/Orchard.Web/Core/Navigation/Module.txt @@ -7,4 +7,4 @@ OrchardVersion: 1.6 Description: The navigation module creates and manages a simple navigation menu for the front-end of the application and allows you to add content items to the admin menu. FeatureDescription: Menu management. Category: Core -Dependencies: Orchard.ContentPicker, Title +Dependencies: Title diff --git a/src/Orchard.Web/Core/Navigation/Placement.info b/src/Orchard.Web/Core/Navigation/Placement.info index d01ad0880..6e80ebf01 100644 --- a/src/Orchard.Web/Core/Navigation/Placement.info +++ b/src/Orchard.Web/Core/Navigation/Placement.info @@ -1,9 +1,7 @@  - - diff --git a/src/Orchard.Web/Core/Navigation/Services/DefaultMenuProvider.cs b/src/Orchard.Web/Core/Navigation/Services/DefaultMenuProvider.cs index 14d37adaf..b5456481f 100644 --- a/src/Orchard.Web/Core/Navigation/Services/DefaultMenuProvider.cs +++ b/src/Orchard.Web/Core/Navigation/Services/DefaultMenuProvider.cs @@ -30,16 +30,6 @@ namespace Orchard.Core.Navigation.Services { if (localized != null) { culture = localized.Culture; } - else { - // fetch the culture of the content menu item, if any - var contentMenuItemPart = part.As(); - if (contentMenuItemPart != null) { - localized = contentMenuItemPart.Content.As(); - if (localized != null) { - culture = localized.Culture; - } - } - } if (part.Is()) builder.Add(new LocalizedString(HttpUtility.HtmlEncode(part.MenuText)), part.MenuPosition, item => item.Url(part.As().Url).Content(part).Culture(culture).Permission(Contents.Permissions.ViewContent)); diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index d81456c77..a15b8b755 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -132,26 +132,19 @@ - - - - - - - @@ -160,8 +153,6 @@ - - @@ -205,7 +196,6 @@ - @@ -542,15 +532,6 @@ - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs index d651d53cb..2f6294c5c 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Commands/BlogCommands.cs @@ -5,6 +5,7 @@ using Orchard.Blogs.Models; using Orchard.Commands; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; +using Orchard.ContentPicker.Models; using Orchard.Core.Common.Models; using Orchard.Core.Navigation.Models; using Orchard.Security; diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Module.txt b/src/Orchard.Web/Modules/Orchard.Blogs/Module.txt index 79cc98ed7..e4a4afb1f 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Module.txt @@ -12,5 +12,5 @@ Features: Orchard.Blogs.RemotePublishing: Name: Remote Blog Publishing Description: Blog easier using a dedicated MetaWeblogAPI-compatible publishing tool. - Dependencies: XmlRpc, Orchard.Blogs, Orchard.Autoroute + Dependencies: XmlRpc, Orchard.Autoroute, Orchard.ContentPicker Category: Content Publishing diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj index f158045b1..737ef18fc 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj @@ -148,6 +148,10 @@ {9916839C-39FC-4CEB-A5AF-89CA7E87119F} Orchard.Core + + {f301ef7d-f19c-4d83-aa94-cb64f29c037d} + Orchard.ContentPicker + diff --git a/src/Orchard.Web/Core/Navigation/Drivers/ContentMenuItemPartDriver.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs similarity index 93% rename from src/Orchard.Web/Core/Navigation/Drivers/ContentMenuItemPartDriver.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs index 03e39d04d..67e3b1939 100644 --- a/src/Orchard.Web/Core/Navigation/Drivers/ContentMenuItemPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs @@ -2,12 +2,15 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; +using Orchard.ContentPicker.Models; +using Orchard.ContentPicker.ViewModels; +using Orchard.Core.Navigation; using Orchard.Core.Navigation.Models; using Orchard.Core.Navigation.ViewModels; using Orchard.Localization; using Orchard.Security; -namespace Orchard.Core.Navigation.Drivers { +namespace Orchard.ContentPicker.Drivers { [UsedImplicitly] public class ContentMenuItemPartDriver : ContentPartDriver { private readonly IContentManager _contentManager; diff --git a/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/NavigationPartDriver.cs similarity index 94% rename from src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/NavigationPartDriver.cs index 92e305b67..038b6a632 100644 --- a/src/Orchard.Web/Core/Navigation/Drivers/NavigationPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/NavigationPartDriver.cs @@ -1,5 +1,8 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; +using Orchard.ContentPicker.Models; +using Orchard.ContentPicker.ViewModels; +using Orchard.Core.Navigation; using Orchard.Core.Navigation.Models; using Orchard.Core.Navigation.Services; using Orchard.Core.Navigation.ViewModels; @@ -8,7 +11,7 @@ using Orchard.Security; using Orchard.UI.Navigation; using Orchard.Utility; -namespace Orchard.Core.Navigation.Drivers { +namespace Orchard.ContentPicker.Drivers { public class NavigationPartDriver : ContentPartDriver { private readonly IAuthorizationService _authorizationService; diff --git a/src/Orchard.Web/Core/Navigation/Handlers/ContentMenuItemPartHandler.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentMenuItemPartHandler.cs similarity index 93% rename from src/Orchard.Web/Core/Navigation/Handlers/ContentMenuItemPartHandler.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentMenuItemPartHandler.cs index 6bfd7e71a..9357241e0 100644 --- a/src/Orchard.Web/Core/Navigation/Handlers/ContentMenuItemPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentMenuItemPartHandler.cs @@ -1,10 +1,11 @@ using JetBrains.Annotations; using Orchard.ContentManagement; +using Orchard.ContentPicker.Models; using Orchard.Core.Navigation.Models; using Orchard.Data; using Orchard.ContentManagement.Handlers; -namespace Orchard.Core.Navigation.Handlers { +namespace Orchard.ContentPicker.Handlers { [UsedImplicitly] public class ContentMenuItemPartHandler : ContentHandler { private readonly IContentManager _contentManager; diff --git a/src/Orchard.Web/Core/Navigation/Handlers/NavigationPartHandler.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/NavigationPartHandler.cs similarity index 95% rename from src/Orchard.Web/Core/Navigation/Handlers/NavigationPartHandler.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/NavigationPartHandler.cs index 88d454cff..037ebcd95 100644 --- a/src/Orchard.Web/Core/Navigation/Handlers/NavigationPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/NavigationPartHandler.cs @@ -1,10 +1,11 @@ using JetBrains.Annotations; using Orchard.ContentManagement; +using Orchard.ContentPicker.Models; using Orchard.Core.Navigation.Models; using Orchard.Data; using Orchard.ContentManagement.Handlers; -namespace Orchard.Core.Navigation.Handlers { +namespace Orchard.ContentPicker.Handlers { [UsedImplicitly] public class NavigationPartHandler : ContentHandler { private readonly IContentManager _contentManager; diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Migrations.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Migrations.cs new file mode 100644 index 000000000..ed77d7349 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Migrations.cs @@ -0,0 +1,81 @@ +using System; +using Orchard.ContentManagement.MetaData; +using Orchard.ContentManagement.Records; +using Orchard.ContentPicker.Models; +using Orchard.Core.Contents.Extensions; +using Orchard.Data; +using Orchard.Data.Migration; +using Orchard.Environment.Configuration; +using Orchard.Logging; + +namespace Orchard.ContentPicker { + public class Migrations : DataMigrationImpl { + private readonly ISessionLocator _sessionLocator; + private readonly ShellSettings _shellSettings; + + public Migrations( + ISessionLocator sessionLocator, + ShellSettings shellSettings) { + _sessionLocator = sessionLocator; + _shellSettings = shellSettings; + + Logger = NullLogger.Instance; + } + + public ILogger Logger { get; set; } + + public int Create() { + + SchemaBuilder.CreateTable("ContentMenuItemPartRecord", + table => table + .ContentPartRecord() + .Column("ContentMenuItemRecord_id") + ); + + ContentDefinitionManager.AlterTypeDefinition("ContentMenuItem", cfg => cfg + .WithPart("MenuPart") + .WithPart("CommonPart") + .WithPart("IdentityPart") + .WithPart("ContentMenuItemPart") + .DisplayedAs("Content Menu Item") + .WithSetting("Description", "Adds a Content Item to the menu.") + .WithSetting("Stereotype", "MenuItem") + ); + + ContentDefinitionManager.AlterPartDefinition("NavigationPart", builder => builder + .Attachable() + .WithDescription("Allows the management of Content Menu Items associated with a Content Item.")); + + // copying records from previous version of ContentMenuItemPartRecord which was in Core + var session = _sessionLocator.For(typeof (ContentItemRecord)); + + var tablePrefix = String.IsNullOrEmpty(_shellSettings.DataTablePrefix) ? "" : _shellSettings.DataTablePrefix + "_"; + + try { + if (null != session.CreateSQLQuery("SELECT COUNT FROM " + tablePrefix + "Navigation_ContentMenuItemPartRecord").UniqueResult()) { + // if no exception is thrown, we need to upgrade previous data + var records = session.CreateSQLQuery("SELECT * FROM " + tablePrefix + "Navigation_ContentMenuItemPartRecord").List(); + + foreach (dynamic record in records) { + try { + + session.CreateSQLQuery("INSERT INTO " + tablePrefix + "Orchard_ContentPicker_ContentMenuItemPartRecord (Id, ContentMenuItemRecord_id) VALUES (:id, :cid)") + .SetInt32("id", (int)record.Id) + .SetInt32("cid", (int)record.ContentMenuItemRecord_id) + .ExecuteUpdate(); + } + catch (Exception e) { + Logger.Error(e, "Could not migrate ContentMenuItemRecord with Id: {0}", (int)record.Id); + } + } + } + + } + catch { + // silently ignore exception as it means there is no content to migrate + } + + return 1; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPart.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPart.cs similarity index 89% rename from src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPart.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPart.cs index 6fd311d72..bcd0fcee6 100644 --- a/src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPart.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPart.cs @@ -1,7 +1,7 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Utilities; -namespace Orchard.Core.Navigation.Models { +namespace Orchard.ContentPicker.Models { public class ContentMenuItemPart : ContentPart { public readonly LazyField _content = new LazyField(); diff --git a/src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPartRecord.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPartRecord.cs similarity index 79% rename from src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPartRecord.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPartRecord.cs index eef1b90ae..1ce772656 100644 --- a/src/Orchard.Web/Core/Navigation/Models/ContentMenuItemPartRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/ContentMenuItemPartRecord.cs @@ -1,6 +1,6 @@ using Orchard.ContentManagement.Records; -namespace Orchard.Core.Navigation.Models { +namespace Orchard.ContentPicker.Models { public class ContentMenuItemPartRecord : ContentPartRecord { public virtual ContentItemRecord ContentMenuItemRecord { get; set; } } diff --git a/src/Orchard.Web/Core/Navigation/Models/NavigationPart.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/NavigationPart.cs similarity index 80% rename from src/Orchard.Web/Core/Navigation/Models/NavigationPart.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Models/NavigationPart.cs index b1fddfc11..8f20a8cc8 100644 --- a/src/Orchard.Web/Core/Navigation/Models/NavigationPart.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Models/NavigationPart.cs @@ -1,6 +1,6 @@ using Orchard.ContentManagement; -namespace Orchard.Core.Navigation.Models { +namespace Orchard.ContentPicker.Models { /// /// Allows the management of Content Menu Items associated with a Content Item /// diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Module.txt b/src/Orchard.Web/Modules/Orchard.ContentPicker/Module.txt index 1f4e03181..96b38b73b 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Module.txt @@ -8,5 +8,5 @@ Description: UI for selecting Content Items. Features: Orchard.ContentPicker: Description: UI for selecting Content Items. - Dependencies: Contents + Dependencies: Contents, Navigation Category: Input Editor \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj index 6b6974a6c..c91c1a1f6 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj @@ -47,6 +47,10 @@ + + False + ..\Orchard.Users\bin\NHibernate.dll + @@ -65,6 +69,7 @@ + @@ -73,6 +78,14 @@ + + + + + + + + @@ -87,7 +100,6 @@ - @@ -96,11 +108,13 @@ + + @@ -129,6 +143,15 @@ Designer + + + + + + + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Placement.info b/src/Orchard.Web/Modules/Orchard.ContentPicker/Placement.info index 5f9c22d9b..1f0bd2fbd 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Placement.info +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Placement.info @@ -1,5 +1,7 @@  + + diff --git a/src/Orchard.Web/Core/Navigation/Security/ContentMenuItemAuthorizationEventHandler.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Security/ContentMenuItemAuthorizationEventHandler.cs similarity index 74% rename from src/Orchard.Web/Core/Navigation/Security/ContentMenuItemAuthorizationEventHandler.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Security/ContentMenuItemAuthorizationEventHandler.cs index 233575bd2..4848170e0 100644 --- a/src/Orchard.Web/Core/Navigation/Security/ContentMenuItemAuthorizationEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Security/ContentMenuItemAuthorizationEventHandler.cs @@ -1,13 +1,8 @@ - using System; -using System.Collections.Generic; -using System.Linq; -using Orchard.ContentManagement; -using Orchard.ContentManagement.Aspects; -using Orchard.Core.Common.Models; - using Orchard.Core.Navigation.Models; - using Orchard.Security; +using Orchard.ContentManagement; +using Orchard.ContentPicker.Models; +using Orchard.Security; -namespace Orchard.Core.Navigation.Security { +namespace Orchard.ContentPicker.Security { public class ContentMenuItemAuthorizationEventHandler : IAuthorizationServiceEventHandler{ private readonly IAuthorizationService _authorizationService; diff --git a/src/Orchard.Web/Core/Navigation/ViewModels/ContentMenuItemEditViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/ContentMenuItemEditViewModel.cs similarity index 63% rename from src/Orchard.Web/Core/Navigation/ViewModels/ContentMenuItemEditViewModel.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/ContentMenuItemEditViewModel.cs index 8944f74ce..435b14cea 100644 --- a/src/Orchard.Web/Core/Navigation/ViewModels/ContentMenuItemEditViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/ContentMenuItemEditViewModel.cs @@ -1,6 +1,6 @@ -using Orchard.Core.Navigation.Models; +using Orchard.ContentPicker.Models; -namespace Orchard.Core.Navigation.ViewModels { +namespace Orchard.ContentPicker.ViewModels { public class ContentMenuItemEditViewModel { public int ContentItemId { get; set; } public ContentMenuItemPart Part { get; set; } diff --git a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/NavigationPartViewModel.cs similarity index 83% rename from src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs rename to src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/NavigationPartViewModel.cs index 3f5a60686..a214375ec 100644 --- a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationPartViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/ViewModels/NavigationPartViewModel.cs @@ -1,8 +1,9 @@ using System.Collections.Generic; using Orchard.ContentManagement; +using Orchard.ContentPicker.Models; using Orchard.Core.Navigation.Models; -namespace Orchard.Core.Navigation.ViewModels { +namespace Orchard.ContentPicker.ViewModels { public class NavigationPartViewModel { public IEnumerable ContentMenuItems { get; set; } public NavigationPart Part { get; set; } diff --git a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml similarity index 92% rename from src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml index 750c463ef..9ffb901d0 100644 --- a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/EditorTemplates/Parts.ContentMenuItem.Edit.cshtml @@ -1,4 +1,4 @@ -@model Orchard.Core.Navigation.ViewModels.ContentMenuItemEditViewModel +@model Orchard.ContentPicker.ViewModels.ContentMenuItemEditViewModel @{ Script.Require("ContentPicker").AtFoot(); var title = Model.Part.Content == null ? new HtmlString(T("Empty").Text) : Html.ItemDisplayText(Model.Part.Content); diff --git a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/EditorTemplates/Parts.Navigation.Edit.cshtml similarity index 100% rename from src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.Navigation.Edit.cshtml rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Views/EditorTemplates/Parts.Navigation.Edit.cshtml diff --git a/src/Orchard.Web/Core/Navigation/Views/MenuItemLink-ContentMenuItem.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/MenuItemLink-ContentMenuItem.cshtml similarity index 100% rename from src/Orchard.Web/Core/Navigation/Views/MenuItemLink-ContentMenuItem.cshtml rename to src/Orchard.Web/Modules/Orchard.ContentPicker/Views/MenuItemLink-ContentMenuItem.cshtml diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs b/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs index 0f4d42552..db7183324 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Commands/PageCommands.cs @@ -2,6 +2,7 @@ using Orchard.Commands; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; +using Orchard.ContentPicker.Models; using Orchard.Core.Common.Models; using Orchard.Core.Navigation.Models; using Orchard.Core.Navigation.Services; diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Module.txt b/src/Orchard.Web/Modules/Orchard.Pages/Module.txt index fb40848fd..8855772f5 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Pages/Module.txt @@ -6,5 +6,5 @@ Version: 1.6 OrchardVersion: 1.5 Description: Introduces a preconfigured page content type. FeatureDescription: A basic page content type. -Dependencies: Contents +Dependencies: Contents, Orchard.ContentPicker Category: Content diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj index 7bbc4736a..0c06e19c5 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj +++ b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj @@ -19,6 +19,11 @@ 4.0 + false + + + + true @@ -60,6 +65,10 @@ {9916839C-39FC-4CEB-A5AF-89CA7E87119F} Orchard.Core + + {f301ef7d-f19c-4d83-aa94-cb64f29c037d} + Orchard.ContentPicker + diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs index 2af151650..f15196ba0 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs @@ -75,7 +75,7 @@ namespace Orchard.Setup.Services { // Core "Common", "Containers", "Contents", "Dashboard", "Feeds", "Navigation", "Reports", "Scheduling", "Settings", "Shapes", "Title", // Modules - "Orchard.Pages", "Orchard.Themes", "Orchard.Users", "Orchard.Roles", "Orchard.Modules", + "Orchard.Pages", "Orchard.ContentPicker", "Orchard.Themes", "Orchard.Users", "Orchard.Roles", "Orchard.Modules", "PackagingServices", "Orchard.Packaging", "Gallery", "Orchard.Recipes" };