mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Merge 1.x => integration
--HG-- branch : integration
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -43,25 +44,33 @@
|
||||
<Reference Include="Autofac, Version=2.1.13.813, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\autofac\Autofac.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Autofac.Integration.Web">
|
||||
<HintPath>..\..\..\lib\autofac\Autofac.Integration.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Autofac.Integration.Web.Mvc">
|
||||
<HintPath>..\..\..\lib\autofac\Autofac.Integration.Web.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\aspnetmvc\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAzure.ServiceRuntime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="NHibernate.ByteCode.Castle">
|
||||
<HintPath>..\..\..\lib\fluentnhibernate\NHibernate.ByteCode.Castle.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Private>False</Private>
|
||||
@@ -172,151 +181,188 @@
|
||||
<ProjectReference Include="..\..\Orchard.Web\Core\Orchard.Core.csproj">
|
||||
<Project>{9916839C-39FC-4CEB-A5AF-89CA7E87119F}</Project>
|
||||
<Name>Orchard.Core</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Lucene\Lucene.csproj">
|
||||
<Project>{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}</Project>
|
||||
<Name>Lucene</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.ArchiveLater\Orchard.ArchiveLater.csproj">
|
||||
<Project>{1C981BB3-26F7-494C-9005-CC27A5144233}</Project>
|
||||
<Name>Orchard.ArchiveLater</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Blogs\Orchard.Blogs.csproj">
|
||||
<Project>{63FBD4D9-E1DA-4A7B-AA6A-D6074FE50867}</Project>
|
||||
<Name>Orchard.Blogs</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.CodeGeneration\Orchard.CodeGeneration.csproj">
|
||||
<Project>{C0C45321-B51D-4D8D-9B7B-AA4C2E0B2962}</Project>
|
||||
<Name>Orchard.CodeGeneration</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Comments\Orchard.Comments.csproj">
|
||||
<Project>{14C049FD-B35B-415A-A824-87F26B26E7FD}</Project>
|
||||
<Name>Orchard.Comments</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.ContentTypes\Orchard.ContentTypes.csproj">
|
||||
<Project>{0E7646E8-FE8F-43C1-8799-D97860925EC4}</Project>
|
||||
<Name>Orchard.ContentTypes</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.DesignerTools\Orchard.DesignerTools.csproj">
|
||||
<Project>{4A4595EF-6C37-4F99-96ED-4AE0B9E438D3}</Project>
|
||||
<Name>Orchard.DesignerTools</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Email\Orchard.Email.csproj">
|
||||
<Project>{05660F47-D649-48BD-9DED-DF4E01E7CFF9}</Project>
|
||||
<Name>Orchard.Email</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Experimental\Orchard.Experimental.csproj">
|
||||
<Project>{AB3C207C-0126-4143-8D62-1119DF80D366}</Project>
|
||||
<Name>Orchard.Experimental</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Indexing\Orchard.Indexing.csproj">
|
||||
<Project>{EA2B9121-EF54-40A6-A53E-6593C86EE696}</Project>
|
||||
<Name>Orchard.Indexing</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.jQuery\Orchard.jQuery.csproj">
|
||||
<Project>{8F116B06-1C0E-4E4C-9A0A-D2FAB851E768}</Project>
|
||||
<Name>Orchard.jQuery</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Lists\Orchard.Lists.csproj">
|
||||
<Project>{137906EA-15FE-4AD8-A6A0-27528F0477D6}</Project>
|
||||
<Name>Orchard.Lists</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Localization\Orchard.Localization.csproj">
|
||||
<Project>{FBC8B571-ED50-49D8-8D9D-64AB7454A0D6}</Project>
|
||||
<Name>Orchard.Localization</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.MediaPicker\Orchard.MediaPicker.csproj">
|
||||
<Project>{43D0EC0B-1955-4566-8D31-7B9102DA1703}</Project>
|
||||
<Name>Orchard.MediaPicker</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Media\Orchard.Media.csproj">
|
||||
<Project>{D9A7B330-CD22-4DA1-A95A-8DE1982AD8EB}</Project>
|
||||
<Name>Orchard.Media</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Messaging\Orchard.Messaging.csproj">
|
||||
<Project>{085948FF-0E9B-4A9A-B564-F8B8B4BDDDBC}</Project>
|
||||
<Name>Orchard.Messaging</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Migrations\Orchard.Migrations.csproj">
|
||||
<Project>{EA4F1DA7-F2AB-4384-9AA4-9B756E2026B1}</Project>
|
||||
<Name>Orchard.Migrations</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Modules\Orchard.Modules.csproj">
|
||||
<Project>{17F86780-9A1F-4AA1-86F1-875EEC2730C7}</Project>
|
||||
<Name>Orchard.Modules</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.MultiTenancy\Orchard.MultiTenancy.csproj">
|
||||
<Project>{72457126-E118-4171-A08F-9A709EE4B7FC}</Project>
|
||||
<Name>Orchard.MultiTenancy</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Packaging\Orchard.Packaging.csproj">
|
||||
<Project>{DFD137A2-DDB5-4D22-BE0D-FA9AD4C8B059}</Project>
|
||||
<Name>Orchard.Packaging</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Pages\Orchard.Pages.csproj">
|
||||
<Project>{3420C92A-747F-4990-BA08-F2C9531E44AD}</Project>
|
||||
<Name>Orchard.Pages</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.PublishLater\Orchard.PublishLater.csproj">
|
||||
<Project>{C889167C-E52C-4A65-A419-224B3D1B957D}</Project>
|
||||
<Name>Orchard.PublishLater</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Recipes\Orchard.Recipes.csproj">
|
||||
<Project>{FC1D74E8-7A4D-48F4-83DE-95C6173780C4}</Project>
|
||||
<Name>Orchard.Recipes</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Roles\Orchard.Roles.csproj">
|
||||
<Project>{D10AD48F-407D-4DB5-A328-173EC7CB010F}</Project>
|
||||
<Name>Orchard.Roles</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Scripting.Dlr\Orchard.Scripting.Dlr.csproj">
|
||||
<Project>{2AD6973D-C7BB-416E-89FE-EEE34664E05F}</Project>
|
||||
<Name>Orchard.Scripting.Dlr</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Scripting\Orchard.Scripting.csproj">
|
||||
<Project>{2AD6973D-C7BB-416E-89FE-EEE34664E05F}</Project>
|
||||
<Name>Orchard.Scripting</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Search\Orchard.Search.csproj">
|
||||
<Project>{4BE4EB01-AC56-4048-924E-2CA77F509ABA}</Project>
|
||||
<Name>Orchard.Search</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Setup\Orchard.Setup.csproj">
|
||||
<Project>{8C7FCBC2-E6E1-405E-BFB5-D8D9E67A09C4}</Project>
|
||||
<Name>Orchard.Setup</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Tags\Orchard.Tags.csproj">
|
||||
<Project>{5D0F00F0-26C9-4785-AD61-B85710C60EB0}</Project>
|
||||
<Name>Orchard.Tags</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Themes\Orchard.Themes.csproj">
|
||||
<Project>{CDE24A24-01D3-403C-84B9-37722E18DFB7}</Project>
|
||||
<Name>Orchard.Themes</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Users\Orchard.Users.csproj">
|
||||
<Project>{79AED36E-ABD0-4747-93D3-8722B042454B}</Project>
|
||||
<Name>Orchard.Users</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\Orchard.Widgets\Orchard.Widgets.csproj">
|
||||
<Project>{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}</Project>
|
||||
<Name>Orchard.Widgets</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard.Web\Modules\TinyMce\TinyMce.csproj">
|
||||
<Project>{954CA994-D204-468B-9D69-51F6AD3E1C29}</Project>
|
||||
<Name>TinyMce</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Orchard\Orchard.Framework.csproj">
|
||||
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
|
||||
<Name>Orchard.Framework</Name>
|
||||
<EmbedInteropTypes>False</EmbedInteropTypes>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Tools\Orchard\Orchard.csproj">
|
||||
<Project>{33B1BC8D-E292-4972-A363-22056B207156}</Project>
|
||||
<Name>Orchard</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Orchard.Azure.csproj">
|
||||
<Project>{2505AA84-65A6-43D0-9C27-4F44FD576284}</Project>
|
||||
<Name>Orchard.Azure</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -54,7 +54,9 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.WindowsAzure.ServiceRuntime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
@@ -81,6 +83,7 @@
|
||||
<ProjectReference Include="..\Orchard\Orchard.Framework.csproj">
|
||||
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
|
||||
<Name>Orchard.Framework</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -7,7 +7,7 @@ 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 |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Theme | SafeMode |
|
||||
When I go to "/"
|
||||
Then I should see "Welcome to Orchard"
|
||||
@@ -18,7 +18,7 @@ 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 |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Theme | SafeMode |
|
||||
When I go to "/Setup"
|
||||
Then I should see "Welcome to Orchard"
|
||||
@@ -29,7 +29,7 @@ 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 |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Theme | SafeMode |
|
||||
When I go to "/Setup"
|
||||
And I hit "Finish Setup"
|
||||
@@ -39,8 +39,8 @@ 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.Users, Orchard.Roles, Orchard.Lists, Orchard.ContentTypes, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce, Orchard.Blogs, Orchard.Tags, Orchard.Packaging, Orchard.Recipes |
|
||||
| Core | Common, Containers, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Lists, Orchard.ContentTypes, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce, Orchard.Blogs, Orchard.Tags, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup |
|
||||
| Core | Common, Containers, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| Theme | SafeMode, TheThemeMachine |
|
||||
And I am on "/Setup"
|
||||
When I fill in
|
||||
|
||||
Generated
+2
-2
@@ -2,7 +2,7 @@
|
||||
// <auto-generated>
|
||||
// This code was generated by SpecFlow (http://www.specflow.org/).
|
||||
// SpecFlow Version:1.5.0.0
|
||||
// Runtime Version:4.0.30319.1
|
||||
// Runtime Version:4.0.30319.225
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
@@ -176,7 +176,7 @@ this.ScenarioSetup(scenarioInfo);
|
||||
"names"});
|
||||
table4.AddRow(new string[] {
|
||||
"Module",
|
||||
@"Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Lists, Orchard.ContentTypes, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce, Orchard.Blogs, Orchard.Tags, Orchard.Packaging, Orchard.Recipes"});
|
||||
@"Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Lists, Orchard.ContentTypes, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce, Orchard.Blogs, Orchard.Tags, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup"});
|
||||
table4.AddRow(new string[] {
|
||||
"Core",
|
||||
"Common, Containers, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, S" +
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
<Reference Include="ClaySharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\claysharp\ClaySharp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
@@ -53,10 +54,12 @@
|
||||
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\aspnetmvc\System.Web.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\aspnetmvc\System.Web.WebPages.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -208,7 +211,6 @@
|
||||
<Compile Include="Settings\Commands\SiteSettingsCommands.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2Part.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2PartRecord.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettingsCache.cs" />
|
||||
<Compile Include="Settings\ResourceManifest.cs" />
|
||||
<Compile Include="Settings\Migrations.cs" />
|
||||
<Compile Include="Settings\Drivers\SiteSettingsPartDriver.cs" />
|
||||
@@ -320,6 +322,7 @@
|
||||
<ProjectReference Include="..\..\Orchard\Orchard.Framework.csproj">
|
||||
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
|
||||
<Name>Orchard.Framework</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
--- Orchard.Core.csproj
|
||||
+++ Orchard.Core.csproj
|
||||
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
+ <UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -200,6 +201,7 @@
|
||||
<Compile Include="Scheduling\Services\ScheduledTaskManager.cs" />
|
||||
<Compile Include="Scheduling\Services\ScheduledTaskExecutor.cs" />
|
||||
<Compile Include="Scheduling\Models\Task.cs" />
|
||||
+ <Compile Include="Settings\Models\SiteSettingsCache.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2Part.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2PartRecord.cs" />
|
||||
<Compile Include="Settings\ResourceManifest.cs" />
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Core.Settings.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
@@ -12,14 +11,6 @@ namespace Orchard.Core.Settings.Handlers {
|
||||
Filters.Add(new ActivatingFilter<SiteSettings2Part>("Site"));
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
Filters.Add(StorageFilter.For(repository2));
|
||||
|
||||
OnInitializing<SiteSettingsPart>(InitializeSiteSettings);
|
||||
}
|
||||
|
||||
private static void InitializeSiteSettings(InitializingContentContext initializingContentContext, SiteSettingsPart siteSettingsPart) {
|
||||
siteSettingsPart.Record.SiteSalt = Guid.NewGuid().ToString("N");
|
||||
siteSettingsPart.Record.SiteName = "My Orchard Project Application";
|
||||
siteSettingsPart.Record.PageTitleSeparator = " - ";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,141 +0,0 @@
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Settings;
|
||||
|
||||
namespace Orchard.Core.Settings.Models {
|
||||
public class SiteSettingsCache : ISite {
|
||||
private readonly int _id;
|
||||
|
||||
private SiteSettingsPart _siteSettingsPart;
|
||||
|
||||
private string _pageTitleSeparator;
|
||||
private string _siteName;
|
||||
private string _siteSalt;
|
||||
private string _superUser;
|
||||
private string _homePage;
|
||||
private string _siteCulture;
|
||||
private ResourceDebugMode _resourceDebugMode;
|
||||
private int _pageSize;
|
||||
private string _baseUrl;
|
||||
|
||||
public SiteSettingsCache(ISite site) {
|
||||
_id = site.Id;
|
||||
_pageTitleSeparator = site.PageTitleSeparator;
|
||||
_siteName = site.SiteName;
|
||||
_siteSalt = site.SiteSalt;
|
||||
_superUser = site.SuperUser;
|
||||
_homePage = site.HomePage;
|
||||
_siteCulture = site.SiteCulture;
|
||||
_resourceDebugMode = site.ResourceDebugMode;
|
||||
_pageSize = site.PageSize;
|
||||
_baseUrl = site.BaseUrl;
|
||||
}
|
||||
|
||||
public int Id {
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public string PageTitleSeparator {
|
||||
get { return _pageTitleSeparator; }
|
||||
|
||||
set {
|
||||
_pageTitleSeparator = value;
|
||||
SiteSettingsPart.PageTitleSeparator = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteName {
|
||||
get { return _siteName; }
|
||||
|
||||
set {
|
||||
_siteName = value;
|
||||
SiteSettingsPart.SiteName = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteSalt {
|
||||
get { return _siteSalt; }
|
||||
|
||||
set {
|
||||
_siteSalt = value;
|
||||
SiteSettingsPart.Record.SiteSalt = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SuperUser {
|
||||
get { return _superUser; }
|
||||
|
||||
set {
|
||||
_superUser = value;
|
||||
SiteSettingsPart.SuperUser = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string HomePage {
|
||||
get { return _homePage; }
|
||||
|
||||
set {
|
||||
_homePage = value;
|
||||
SiteSettingsPart.HomePage = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteCulture {
|
||||
get { return _siteCulture; }
|
||||
|
||||
set {
|
||||
_siteCulture = value;
|
||||
SiteSettingsPart.SiteCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
public ResourceDebugMode ResourceDebugMode {
|
||||
get { return _resourceDebugMode; }
|
||||
|
||||
set {
|
||||
_resourceDebugMode = value;
|
||||
SiteSettingsPart.ResourceDebugMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int PageSize {
|
||||
get { return _pageSize; }
|
||||
|
||||
set {
|
||||
_pageSize = value;
|
||||
SiteSettingsPart.PageSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string BaseUrl {
|
||||
get { return _baseUrl; }
|
||||
|
||||
set {
|
||||
_baseUrl = value;
|
||||
SiteSettingsPart.BaseUrl = value;
|
||||
}
|
||||
}
|
||||
|
||||
public ContentItem ContentItem {
|
||||
get { return SiteSettingsPart.ContentItem; }
|
||||
}
|
||||
|
||||
private ISiteService SiteService { get; set; }
|
||||
|
||||
private SiteSettingsPart SiteSettingsPart {
|
||||
get {
|
||||
if (_siteSettingsPart == null) {
|
||||
_siteSettingsPart = SiteService.GetSiteSettingsPart() as SiteSettingsPart;
|
||||
}
|
||||
|
||||
return _siteSettingsPart;
|
||||
}
|
||||
|
||||
set { _siteSettingsPart = value; }
|
||||
}
|
||||
|
||||
public void ResetCache(ISiteService siteService) {
|
||||
SiteService = siteService;
|
||||
SiteSettingsPart = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,27 +20,23 @@ namespace Orchard.Core.Settings.Services {
|
||||
ICacheManager cacheManager) {
|
||||
_contentManager = contentManager;
|
||||
_cacheManager = cacheManager;
|
||||
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
public ISite GetSiteSettings() {
|
||||
SiteSettingsCache siteSettingsCache = _cacheManager.Get("SiteSettings",
|
||||
ctx => new SiteSettingsCache(GetSiteSettingsPart()));
|
||||
siteSettingsCache.ResetCache(this);
|
||||
return siteSettingsCache;
|
||||
}
|
||||
|
||||
public ISite GetSiteSettingsPart() {
|
||||
var siteId = _cacheManager.Get("SiteId", ctx => {
|
||||
var site = _contentManager.Query("Site")
|
||||
.Slice(0, 1)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (site == null) {
|
||||
site = _contentManager.Create<SiteSettingsPart>("Site").ContentItem;
|
||||
site = _contentManager.Create<SiteSettingsPart>("Site", item => {
|
||||
item.Record.SiteSalt = Guid.NewGuid().ToString("N");
|
||||
item.Record.SiteName = "My Orchard Project Application";
|
||||
item.Record.PageTitleSeparator = " - ";
|
||||
}).ContentItem;
|
||||
}
|
||||
|
||||
return site.Id;
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<AssemblyName>Lucene</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -36,6 +37,7 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="Lucene.Net">
|
||||
<HintPath>..\..\..\..\lib\lucene.net\Lucene.Net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -42,6 +43,7 @@
|
||||
<Reference Include="Joel.Net.Akismet, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\joel.net.akismet\Joel.Net.Akismet.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="ClaySharp">
|
||||
<HintPath>..\..\..\..\lib\claysharp\ClaySharp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -42,6 +43,7 @@
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\sharpziplib\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Xml.Linq;
|
||||
@@ -10,6 +11,7 @@ using Orchard.Environment.Extensions.Models;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Packaging.Events;
|
||||
using Orchard.Packaging.Extensions;
|
||||
using Orchard.Packaging.GalleryServer;
|
||||
using Orchard.Packaging.Models;
|
||||
using Orchard.Packaging.Services;
|
||||
using Orchard.Packaging.ViewModels;
|
||||
@@ -151,16 +153,17 @@ namespace Orchard.Packaging.Controllers {
|
||||
int totalCount = 0;
|
||||
foreach (var source in sources) {
|
||||
try {
|
||||
Expression<Func<PublishedPackage, bool>> packagesCriteria = p => p.PackageType == packageType &&
|
||||
p.IsLatestVersion &&
|
||||
(string.IsNullOrEmpty(options.SearchText)
|
||||
|| p.Title.Contains(options.SearchText)
|
||||
|| p.Description.Contains(options.SearchText)
|
||||
|| p.Tags.Contains(options.SearchText));
|
||||
|
||||
var sourceExtensions = _packagingSourceManager.GetExtensionList(true,
|
||||
source,
|
||||
packages => {
|
||||
packages = packages.Where(p => p.PackageType == packageType &&
|
||||
p.IsLatestVersion &&
|
||||
(string.IsNullOrEmpty(options.SearchText)
|
||||
|| p.Title.Contains(options.SearchText)
|
||||
|| p.Description.Contains(options.SearchText)
|
||||
|| p.Tags.Contains(options.SearchText)
|
||||
));
|
||||
packages = packages.Where(packagesCriteria);
|
||||
|
||||
switch (options.Order) {
|
||||
case PackagingExtensionsOrder.Downloads:
|
||||
@@ -174,8 +177,8 @@ namespace Orchard.Packaging.Controllers {
|
||||
break;
|
||||
}
|
||||
|
||||
if(pager.PageSize != 0) {
|
||||
packages = packages.Skip((pager.Page - 1)*pager.PageSize).Take(pager.PageSize);
|
||||
if (pager.PageSize != 0) {
|
||||
packages = packages.Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize);
|
||||
}
|
||||
|
||||
return packages;
|
||||
@@ -184,10 +187,7 @@ namespace Orchard.Packaging.Controllers {
|
||||
// count packages separately to prevent loading everything just to count
|
||||
totalCount += _packagingSourceManager.GetExtensionCount(
|
||||
source,
|
||||
packages => packages.Where(p => p.PackageType == packageType &&
|
||||
p.IsLatestVersion &&
|
||||
(string.IsNullOrEmpty(options.SearchText) || p.Title.Contains(options.SearchText)))
|
||||
);
|
||||
packages => packages.Where(packagesCriteria));
|
||||
|
||||
extensions = extensions == null ? sourceExtensions : extensions.Concat(sourceExtensions);
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<AssemblyName>Orchard.Packaging</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -38,6 +39,7 @@
|
||||
<Reference Include="NuGet.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\nuget\NuGet.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data.Services.Client" />
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<AssemblyName>Orchard.Scripting.Dlr</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -37,19 +38,23 @@
|
||||
<Reference Include="IronRuby, Version=1.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\dlr\IronRuby.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="IronRuby.Libraries, Version=1.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\dlr\IronRuby.Libraries.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Dynamic, Version=1.1.0.10, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\dlr\Microsoft.Dynamic.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Scripting, Version=1.1.0.10, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\dlr\Microsoft.Scripting.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<Tags>blog</Tags>
|
||||
<Version>1.0</Version>
|
||||
</Recipe>
|
||||
|
||||
|
||||
<Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,
|
||||
XmlRpc,Orchard.Blogs.RemotePublishing,
|
||||
TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.PublishLater,
|
||||
@@ -16,7 +16,7 @@
|
||||
Orchard.Scripting,Orchard.Scripting.Lightweight,
|
||||
PackagingServices,Orchard.Packaging,Gallery.Updates,Orchard.Warmup,
|
||||
TheThemeMachine" />
|
||||
|
||||
|
||||
<Metadata>
|
||||
<Types>
|
||||
<Page ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">
|
||||
@@ -53,5 +53,6 @@
|
||||
widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /Identity:"SetupHtmlWidget3" /UseLoremIpsumText:true
|
||||
menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true
|
||||
site setting set baseurl
|
||||
theme activate "The Theme Machine"
|
||||
</Command>
|
||||
</Orchard>
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
<Tags></Tags>
|
||||
<Version>1.0</Version>
|
||||
</Recipe>
|
||||
|
||||
|
||||
<Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,
|
||||
Orchard.Lists,TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.PublishLater,
|
||||
Orchard.jQuery,Orchard.Widgets,Orchard.Widgets.PageLayerHinting,Orchard.ContentTypes,
|
||||
Orchard.Scripting,Orchard.Scripting.Lightweight,
|
||||
PackagingServices,Orchard.Packaging,Gallery.Updates,Orchard.Warmup,
|
||||
TheThemeMachine" />
|
||||
|
||||
|
||||
<Metadata>
|
||||
<Types>
|
||||
<Page ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">
|
||||
@@ -49,5 +49,6 @@
|
||||
widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /Identity:"SetupHtmlWidget3" /UseLoremIpsumText:true
|
||||
menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true
|
||||
site setting set baseurl
|
||||
theme activate "The Theme Machine"
|
||||
</Command>
|
||||
</Orchard>
|
||||
|
||||
@@ -7,13 +7,15 @@ using Orchard.ContentManagement;
|
||||
using Orchard.Core.Settings.Descriptor.Records;
|
||||
using Orchard.Core.Settings.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.Data.Migration;
|
||||
using Orchard.Data.Migration.Interpreters;
|
||||
using Orchard.Data.Migration.Schema;
|
||||
using Orchard.Environment;
|
||||
using Orchard.Environment.Configuration;
|
||||
using Orchard.Environment.ShellBuilders;
|
||||
using Orchard.Environment.Descriptor;
|
||||
using Orchard.Environment.Descriptor.Models;
|
||||
using Orchard.Environment.ShellBuilders;
|
||||
using Orchard.Environment.State;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Localization.Services;
|
||||
using Orchard.Recipes.Models;
|
||||
@@ -21,9 +23,6 @@ using Orchard.Recipes.Services;
|
||||
using Orchard.Reports.Services;
|
||||
using Orchard.Security;
|
||||
using Orchard.Settings;
|
||||
using Orchard.Environment.State;
|
||||
using Orchard.Data.Migration;
|
||||
using Orchard.Themes.Services;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Setup.Services {
|
||||
@@ -172,6 +171,7 @@ namespace Orchard.Setup.Services {
|
||||
|
||||
private string CreateTenantData(SetupContext context, IWorkContextScope environment) {
|
||||
string executionId = null;
|
||||
|
||||
// create superuser
|
||||
var membershipService = environment.Resolve<IMembershipService>();
|
||||
var user =
|
||||
@@ -191,10 +191,6 @@ namespace Orchard.Setup.Services {
|
||||
siteSettings.Record.SuperUser = context.AdminUsername;
|
||||
siteSettings.Record.SiteCulture = "en-US";
|
||||
|
||||
// set site theme
|
||||
var themeService = environment.Resolve<ISiteThemeService>();
|
||||
themeService.SetSiteTheme("TheThemeMachine");
|
||||
|
||||
// add default culture
|
||||
var cultureManager = environment.Resolve<ICultureManager>();
|
||||
cultureManager.AddCulture("en-US");
|
||||
@@ -202,7 +198,7 @@ namespace Orchard.Setup.Services {
|
||||
var recipeManager = environment.Resolve<IRecipeManager>();
|
||||
executionId = recipeManager.Execute(Recipes().Where(r => r.Name.Equals(context.Recipe, StringComparison.OrdinalIgnoreCase)).FirstOrDefault());
|
||||
|
||||
//null check: temporary fix for running setup in command line
|
||||
// null check: temporary fix for running setup in command line
|
||||
if (HttpContext.Current != null) {
|
||||
authenticationService.SignIn(user, true);
|
||||
}
|
||||
|
||||
@@ -140,10 +140,6 @@ namespace Orchard.Setup {
|
||||
|
||||
return site.As<ISite>();
|
||||
}
|
||||
|
||||
public ISite GetSiteSettingsPart() {
|
||||
return GetSiteSettings();
|
||||
}
|
||||
}
|
||||
|
||||
class SafeModeSite : ContentPart, ISite {
|
||||
|
||||
@@ -69,7 +69,13 @@ namespace Orchard.Themes.Controllers {
|
||||
bool installThemes = _featureManager.GetEnabledFeatures().FirstOrDefault(f => f.Id == "PackagingServices") != null;
|
||||
|
||||
var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate();
|
||||
ThemeEntry currentTheme = new ThemeEntry(_siteThemeService.GetSiteTheme());
|
||||
|
||||
ThemeEntry currentTheme = null;
|
||||
ExtensionDescriptor currentThemeDescriptor = _siteThemeService.GetSiteTheme();
|
||||
if (currentThemeDescriptor != null) {
|
||||
currentTheme = new ThemeEntry(currentThemeDescriptor);
|
||||
}
|
||||
|
||||
IEnumerable<ThemeEntry> themes = _extensionManager.AvailableExtensions()
|
||||
.Where(extensionDescriptor => {
|
||||
bool hidden = false;
|
||||
@@ -80,7 +86,8 @@ namespace Orchard.Themes.Controllers {
|
||||
|
||||
return !hidden &&
|
||||
DefaultExtensionTypes.IsTheme(extensionDescriptor.ExtensionType) &&
|
||||
!currentTheme.Descriptor.Id.Equals(extensionDescriptor.Id);
|
||||
(currentTheme == null ||
|
||||
!currentTheme.Descriptor.Id.Equals(extensionDescriptor.Id));
|
||||
})
|
||||
.Select(extensionDescriptor => {
|
||||
ThemeEntry themeEntry = new ThemeEntry(extensionDescriptor) {
|
||||
|
||||
@@ -61,8 +61,11 @@ namespace Orchard.Warmup.Controllers {
|
||||
using (var urlReader = new StringReader(viewModel.Settings.Urls)) {
|
||||
string relativeUrl;
|
||||
while (null != (relativeUrl = urlReader.ReadLine())) {
|
||||
if(String.IsNullOrWhiteSpace(relativeUrl)) {
|
||||
continue;
|
||||
}
|
||||
if (!Uri.IsWellFormedUriString(relativeUrl, UriKind.Relative) || !(relativeUrl.StartsWith("/"))) {
|
||||
AddModelError("Urls", T("{0} is an invalid warmup url.", relativeUrl));
|
||||
AddModelError("Urls", T("\"{0}\" is an invalid warmup url.", relativeUrl));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,14 +78,15 @@ namespace Orchard.Warmup.Controllers {
|
||||
}
|
||||
}
|
||||
|
||||
if (ModelState.IsValid) {
|
||||
Services.Notifier.Information(T("Warmup updated successfully."));
|
||||
}
|
||||
if (ModelState.IsValid) {
|
||||
_warmupUpdater.Generate();
|
||||
Services.Notifier.Information(T("Warmup updated successfully."));
|
||||
}
|
||||
else {
|
||||
Services.TransactionManager.Cancel();
|
||||
}
|
||||
|
||||
return RedirectToAction("Index");
|
||||
return Index();
|
||||
}
|
||||
|
||||
bool IUpdateModel.TryUpdateModel<TModel>(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) {
|
||||
|
||||
@@ -117,6 +117,10 @@ namespace Orchard.Warmup.Services {
|
||||
using (var urlReader = new StringReader(part.Urls)) {
|
||||
string relativeUrl;
|
||||
while (null != (relativeUrl = urlReader.ReadLine())) {
|
||||
if (String.IsNullOrWhiteSpace(relativeUrl)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
string url = null;
|
||||
relativeUrl = relativeUrl.Trim();
|
||||
|
||||
|
||||
@@ -7,14 +7,16 @@
|
||||
Layout.Title = T("Performance").ToString();
|
||||
}
|
||||
|
||||
<p>The urls below will be requested using @Html.Link(WorkContext.CurrentSite.BaseUrl, WorkContext.CurrentSite.BaseUrl) as a base url. You can change it on the @Html.ActionLink(T("General Settings page").Text, "Index", new { controller = "Admin", area = "Settings" }).</p>
|
||||
|
||||
@using (Html.BeginFormAntiForgeryPost()) {
|
||||
@Html.ValidationSummary()
|
||||
|
||||
<p>@T("The paths below will be requested using {0} as a base url. You can change the base url on the {1}. ", @Html.Link(WorkContext.CurrentSite.BaseUrl, WorkContext.CurrentSite.BaseUrl), @Html.ActionLink(T("General Settings page").Text, "Index", new { controller = "Admin", area = "Settings" }))</p>
|
||||
|
||||
<fieldset>
|
||||
<div>
|
||||
@Html.TextAreaFor(m => m.Settings.Urls, new { @class = "textMedium" })
|
||||
<span class="hint">@T("This must be a set of relative paths, e.g., /, /About")</span>
|
||||
<span class="hint">@T("This must be a set of relative paths, e.g., /, /About. Please ensure that you enter only one path per line.")</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
@@ -33,13 +35,10 @@
|
||||
<label class="forcheckbox" for="@Html.FieldIdFor(m => m.Settings.OnPublish)">@T("Generate warmup pages any time some content is published")</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<button class="primaryAction" name="submit" value="@T("Save")" type="submit">@T("Save")</button>
|
||||
</fieldset>
|
||||
}
|
||||
|
||||
if (Model.ReportEntries.Any()) {
|
||||
<fieldset>
|
||||
<label>@T("Report")</label>
|
||||
<h3>@T("Status")</h3>
|
||||
<table class="items" summary="@T("This is a table of the reports in your application")">
|
||||
<colgroup>
|
||||
<col id="Col1" />
|
||||
@@ -49,9 +48,9 @@
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">@T("Url")</th>
|
||||
<th scope="col">@T("Path")</th>
|
||||
<th scope="col">@T("Status")</th>
|
||||
<th scope="col">@T("Date")</th>
|
||||
<th scope="col">@T("Date generated")</th>
|
||||
<th scope="col"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -70,3 +69,8 @@
|
||||
}
|
||||
</table>
|
||||
</fieldset>
|
||||
}
|
||||
<fieldset>
|
||||
<button class="primaryAction" name="submit" value="@T("Save")" type="submit">@T("Save")</button>
|
||||
</fieldset>
|
||||
}
|
||||
|
||||
@@ -12,6 +12,5 @@ Features:
|
||||
Orchard.Widgets.PageLayerHinting:
|
||||
Name: Page Layer Hinting
|
||||
Description: Adds a notification after creating a new Page with a direct link to create a Widget Layer for that specific page by URL.
|
||||
Dependencies: Orchard.Widgets
|
||||
Dependencies: Orchard.Widgets, Routable
|
||||
Category: Widget
|
||||
Priority: -1
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace Orchard.jQuery {
|
||||
manifest.DefineScript("jQueryUI_Progressbar").SetUrl("jquery.ui.progressbar.min.js", "jquery.ui.progressbar.js").SetVersion("1.8.10").SetDependencies("jQueryUI_Core", "jQueryUI_Widget");
|
||||
|
||||
// Effects
|
||||
manifest.DefineScript("jQueryEffects_Core").SetUrl("jquery.effects.core.min.js", "jquery.effects.core.js").SetVersion("1.8.10").SetDependencies("jQueryEffects_Core");
|
||||
manifest.DefineScript("jQueryEffects_Core").SetUrl("jquery.effects.core.min.js", "jquery.effects.core.js").SetVersion("1.8.10").SetDependencies("jQuery");
|
||||
manifest.DefineScript("jQueryEffects_Blind").SetUrl("jquery.effects.blind.min.js", "jquery.effects.blind.js").SetVersion("1.8.10").SetDependencies("jQueryEffects_Core");
|
||||
manifest.DefineScript("jQueryEffects_Bounce").SetUrl("jquery.effects.bounce.min.js", "jquery.effects.bounce.js").SetVersion("1.8.10").SetDependencies("jQueryEffects_Core");
|
||||
manifest.DefineScript("jQueryEffects_Clip").SetUrl("jquery.effects.clip.min.js", "jquery.effects.clip.js").SetVersion("1.8.10").SetDependencies("jQueryEffects_Core");
|
||||
|
||||
@@ -3,13 +3,37 @@
|
||||
Script.Require("ShapesBase");
|
||||
Style.Include("site.css");
|
||||
RegisterLink(new LinkEntry { Condition = "lte IE 6", Rel = "stylesheet", Type="text/css", Href = Href("../Styles/ie6.css")}.AddAttribute("media", "screen, projection"));
|
||||
|
||||
if (!string.IsNullOrEmpty(WorkContext.CurrentSite.SuperUser)) {
|
||||
WorkContext.Layout.Footer.Add(New.User(), "10"); // Login and dashboard links
|
||||
}
|
||||
}
|
||||
<div id="header">
|
||||
<div id="branding">
|
||||
<h1>@T("Welcome to Orchard")</h1>
|
||||
</div>
|
||||
</div>
|
||||
@Display(Model.Messages)
|
||||
|
||||
@if (Model.Navigation != null) {
|
||||
<div id="layout-navigation" class="group">
|
||||
@Display(Model.Navigation)
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Model.Messages != null) {
|
||||
<div id="messages">
|
||||
@Display(Model.Messages)
|
||||
</div>
|
||||
}
|
||||
|
||||
<div id="main">
|
||||
@Display(Model.Content)
|
||||
</div>
|
||||
@if (Model.Content != null) {
|
||||
@Display(Model.Content)
|
||||
}
|
||||
</div>
|
||||
|
||||
@if (Model.Footer != null) {
|
||||
<div id="footer" role="contentinfo">
|
||||
@Display(Model.Footer)
|
||||
</div>
|
||||
}
|
||||
@@ -24,7 +24,10 @@
|
||||
|
||||
Model.Classes.Add("pager");
|
||||
Model.Classes.Add("group");
|
||||
var tag = Tag(Model, "ul");
|
||||
var pageTag = Tag(Model, "ul");
|
||||
|
||||
Model.Classes.Add("selector");
|
||||
var pageSizeTag = Tag(Model, "ul");
|
||||
|
||||
if (Model.RouteData != null) {
|
||||
foreach (var rd in Model.RouteData.Values) {
|
||||
@@ -40,109 +43,134 @@
|
||||
}
|
||||
|
||||
@if (Model.TotalItemCount > 1) {
|
||||
using (Html.BeginFormAntiForgeryPost()) {
|
||||
<div class="pager-footer">
|
||||
<div class="pager-footer">
|
||||
@if (totalPageCount > 1 || Model.PageSize == 0 || Model.PageSize > pageSizes.First()) {
|
||||
<div class="page-size-options">
|
||||
<div>@T("Show:")</div>
|
||||
|
||||
@if (totalPageCount > 1 || Model.PageSize == 0 || Model.PageSize > pageSizes.First()) {
|
||||
<div class="page-size-options">
|
||||
<input type="hidden" name="Page" value="1" />
|
||||
<label for="pageSize">@T("Show:")</label>
|
||||
<select id="pageSize" name="PageSize">
|
||||
@Html.SelectOption((int)Model.PageSize, 0, T("All").ToString())
|
||||
@foreach (int size in pageSizes.OrderBy(p => p)) {
|
||||
@Html.SelectOption((int)Model.PageSize, size, size.ToString())
|
||||
@pageSizeTag.StartElement
|
||||
|
||||
@{ routeData["pageSize"] = 0; }
|
||||
|
||||
@if ((int)Model.PageSize == 0) {
|
||||
<li class="selected"><span>@T("All").ToString()</span></li>
|
||||
} else {
|
||||
<li>@Html.ActionLink(T("All").ToString(), (string)routeData["action"], (string)routeData["controller"], routeData, null)</li>
|
||||
}
|
||||
|
||||
@foreach (int size in pageSizes.OrderBy(p => p)) {
|
||||
routeData["pageSize"] = size;
|
||||
|
||||
if ((int)Model.PageSize == size) {
|
||||
<li class="selected"><span>@size.ToString()</span></li>
|
||||
} else {
|
||||
<li>@Html.ActionLink(size.ToString(), (string)routeData["action"], (string)routeData["controller"], routeData, null)</li>
|
||||
}
|
||||
</select>
|
||||
}
|
||||
|
||||
<button id="submit-pager" type="submit">@T("Apply")</button>
|
||||
</div>
|
||||
@pageSizeTag.EndElement
|
||||
</div>
|
||||
}
|
||||
|
||||
<span class="page-results">@T("Showing items {0} - {1} of {2}", (Model.Page - 1) * (int)Model.PageSize + 1, Model.PageSize == 0 ? Model.TotalItemCount : Math.Min(Model.TotalItemCount, (Model.Page) * (int)Model.PageSize), Model.TotalItemCount)</span>
|
||||
|
||||
@if (totalPageCount > 1) {
|
||||
routeData["pageSize"] = Model.PageSize;
|
||||
@pageTag.StartElement
|
||||
|
||||
// first
|
||||
if (firstPage > 1) {
|
||||
if (routeData.ContainsKey("page")) {
|
||||
routeData.Remove("page");
|
||||
}
|
||||
|
||||
<li class="page-first">
|
||||
@Html.ActionLink(T("<<").Text, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
<span class="page-results">@T("Showing items {0} - {1} of {2}", (Model.Page - 1) * (int)Model.PageSize + 1, Model.PageSize == 0 ? Model.TotalItemCount : Math.Min(Model.TotalItemCount, (Model.Page) * (int)Model.PageSize), Model.TotalItemCount)</span>
|
||||
// previous page
|
||||
if (Model.Page > 1) {
|
||||
if (Model.Page == 2 && routeData.ContainsKey("page")) {
|
||||
routeData.Remove("page");
|
||||
}
|
||||
else {
|
||||
routeData["page"] = Model.Page - 1;
|
||||
}
|
||||
|
||||
@if (totalPageCount > 1) {
|
||||
routeData["pageSize"] = Model.PageSize;
|
||||
@tag.StartElement
|
||||
|
||||
// first
|
||||
if (firstPage > 1) {
|
||||
if (routeData.ContainsKey("page")) {
|
||||
routeData.Remove("page");
|
||||
}
|
||||
|
||||
<li class="page-first">
|
||||
@Html.ActionLink(T("<<").Text, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
// previous page
|
||||
if (Model.Page > 1) {
|
||||
if (Model.Page == 2 && routeData.ContainsKey("page")) {
|
||||
routeData.Remove("page");
|
||||
} else {
|
||||
routeData["page"] = Model.Page - 1;
|
||||
}
|
||||
|
||||
<li class="page-previous">
|
||||
@Html.ActionLink((string)previousText, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
// page numbers
|
||||
for (var p = firstPage; p <= lastPage; p++) {
|
||||
<li class="page-@p">
|
||||
@if (p == Model.Page) {
|
||||
<span>@p</span>
|
||||
} else {
|
||||
if (p == 1) {
|
||||
routeData.Remove("page");
|
||||
} else {
|
||||
routeData["page"] = p;
|
||||
}
|
||||
@Html.ActionLink(p.ToString(), (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
}
|
||||
</li>
|
||||
}
|
||||
|
||||
// next page
|
||||
if (Model.Page < totalPageCount) {
|
||||
routeData["page"] = Model.Page + 1;
|
||||
|
||||
<li class="page-next">
|
||||
@Html.ActionLink((string)nextText, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
// last page
|
||||
if (lastPage < totalPageCount) {
|
||||
routeData["page"] = totalPageCount;
|
||||
|
||||
<li class="page-last">
|
||||
@Html.ActionLink(T(">>").Text, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
@tag.EndElement
|
||||
<li class="page-previous">
|
||||
@Html.ActionLink((string)previousText, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
</div>
|
||||
}
|
||||
// page numbers
|
||||
for (var p = firstPage; p <= lastPage; p++) {
|
||||
<li class="page-@p">
|
||||
@if (p == Model.Page) {
|
||||
<span>@p</span>
|
||||
}
|
||||
else {
|
||||
if (p == 1) {
|
||||
routeData.Remove("page");
|
||||
}
|
||||
else {
|
||||
routeData["page"] = p;
|
||||
}
|
||||
@Html.ActionLink(p.ToString(), (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
}
|
||||
</li>
|
||||
}
|
||||
|
||||
// next page
|
||||
if (Model.Page < totalPageCount) {
|
||||
routeData["page"] = Model.Page + 1;
|
||||
|
||||
<li class="page-next">
|
||||
@Html.ActionLink((string)nextText, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
// last page
|
||||
if (lastPage < totalPageCount) {
|
||||
routeData["page"] = totalPageCount;
|
||||
|
||||
<li class="page-last">
|
||||
@Html.ActionLink(T(">>").Text, (string)routeData["action"], (string)routeData["controller"], routeData, null)
|
||||
</li>
|
||||
}
|
||||
|
||||
@pageTag.EndElement
|
||||
}
|
||||
|
||||
</div>
|
||||
}
|
||||
@using(Script.Foot()) {
|
||||
@using (Script.Foot()) {
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function () {
|
||||
// Add the event handler for value change in the select field
|
||||
$("#pageSize").change(function () {
|
||||
var self = $(this);
|
||||
var form = self.parents("form");
|
||||
|
||||
// Submit form
|
||||
form.submit();
|
||||
|
||||
// disable button so that no other value can be chosen while the form is submited
|
||||
self.attr("disabled", true);
|
||||
$('ul.selector').each(function () {
|
||||
var self = $(this),
|
||||
options = $.map(self.find("li"), function (li) {
|
||||
var self = $(li);
|
||||
return $("<option/>", {
|
||||
value: self.children("a").attr("href"),
|
||||
text: self.text(),
|
||||
selected: self.hasClass("selected")
|
||||
})[0];
|
||||
}),
|
||||
select = $("<select/>", {
|
||||
id: self.attr("id") + "Selector",
|
||||
"class": self.attr("class"),
|
||||
name: self.attr("name") + "Selector"
|
||||
}).change(onSelectChange).append(options);
|
||||
self.replaceWith(select);
|
||||
});
|
||||
|
||||
function onSelectChange() {
|
||||
// redirect to page with new page size
|
||||
// disable button so that no other value can be chosen while the form is submited
|
||||
window.location = $(this).attr("disabled", true).val();
|
||||
}
|
||||
})
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
@@ -63,8 +63,6 @@
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
|
||||
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
|
||||
<remove assembly="mscorlib" />
|
||||
<remove assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
|
||||
@@ -247,7 +247,20 @@ namespace Orchard.Environment.Extensions {
|
||||
}
|
||||
|
||||
private IEnumerable<ExtensionProbeEntry> SortExtensionProbeEntries(IEnumerable<ExtensionProbeEntry> entries, ConcurrentDictionary<string, DateTime> virtualPathModficationDates) {
|
||||
return entries
|
||||
// All "entries" are for the same extension ID, so we just need to filter/sort them by priority+ modification dates.
|
||||
var groupByPriority = entries
|
||||
.GroupBy(entry => entry.Priority)
|
||||
.OrderByDescending(g => g.Key);
|
||||
|
||||
// Select highest priority group with at least one item
|
||||
var firstNonEmptyGroup = groupByPriority.FirstOrDefault(g => g.Count() >= 1) ?? Enumerable.Empty<ExtensionProbeEntry>();
|
||||
|
||||
// No need for further sorting if only 1 item found
|
||||
if (firstNonEmptyGroup.Count() <= 1)
|
||||
return firstNonEmptyGroup;
|
||||
|
||||
// Sort by last modification date/loader order
|
||||
return firstNonEmptyGroup
|
||||
.OrderByDescending(probe => GetVirtualPathDepedenciesModificationTimeUtc(virtualPathModficationDates, probe))
|
||||
.ThenBy(probe => probe.Loader.Order)
|
||||
.ToList();
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
return new ExtensionProbeEntry {
|
||||
Descriptor = descriptor,
|
||||
Loader = this,
|
||||
Priority = 100, // Higher priority because assemblies in ~/bin always take precedence
|
||||
VirtualPath = "~/Core/" + descriptor.Id,
|
||||
VirtualPathDependencies = Enumerable.Empty<string>(),
|
||||
};
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
public class ExtensionProbeEntry {
|
||||
public ExtensionDescriptor Descriptor { get; set; }
|
||||
public IExtensionLoader Loader { get; set; }
|
||||
public int Priority { get; set; }
|
||||
public string VirtualPath { get; set; }
|
||||
public IEnumerable<string> VirtualPathDependencies { get; set; }
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Orchard.Environment.Extensions.Models;
|
||||
using Orchard.FileSystems.Dependencies;
|
||||
@@ -59,6 +60,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
return new ExtensionProbeEntry {
|
||||
Descriptor = descriptor,
|
||||
Loader = this,
|
||||
Priority = 100, // Higher priority because assemblies in ~/bin always take precedence
|
||||
VirtualPath = assemblyPath,
|
||||
VirtualPathDependencies = new[] { assemblyPath },
|
||||
};
|
||||
|
||||
@@ -56,41 +56,51 @@
|
||||
<Reference Include="Autofac, Version=2.1.13.813, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\autofac\Autofac.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Autofac.Configuration, Version=2.1.13.813, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\autofac\Autofac.Configuration.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Autofac.Integration.Web, Version=2.1.13.813, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\autofac\Autofac.Integration.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Autofac.Integration.Web.Mvc, Version=2.1.13.813, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\autofac\Autofac.Integration.Web.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Castle.Core, Version=1.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\Castle Windsor 2.0\bin\Castle.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Castle.DynamicProxy2, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\Castle Windsor 2.0\bin\Castle.DynamicProxy2.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Castle.Services.Logging.Log4netIntegration">
|
||||
<HintPath>..\..\lib\Castle Windsor 2.0\bin\Castle.Services.Logging.Log4netIntegration.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClaySharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\claysharp\ClaySharp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FluentNHibernate, Version=1.0.0.593, Culture=neutral, PublicKeyToken=8aa435e3cb308880, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\fluentnhibernate\FluentNHibernate.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\fluentnhibernate\log4net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Web.Infrastructure">
|
||||
@@ -99,10 +109,12 @@
|
||||
<Reference Include="NHibernate, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\fluentnhibernate\NHibernate.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="NHibernate.Linq, Version=1.0.0.4000, Culture=neutral, PublicKeyToken=444cf6a87fdab271, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\linqnhibernate\NHibernate.Linq.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
namespace Orchard.Settings {
|
||||
public interface ISiteService : IDependency {
|
||||
ISite GetSiteSettings();
|
||||
ISite GetSiteSettingsPart();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,12 @@ namespace Orchard.HostContext {
|
||||
}
|
||||
|
||||
private static CommandHost CreateWorkerAppDomainWithHost(string virtualPath, string physicalPath, Type hostType) {
|
||||
ClientBuildManager clientBuildManager = new ClientBuildManager(virtualPath, physicalPath);
|
||||
var clientBuildManager = new ClientBuildManager(virtualPath, physicalPath);
|
||||
// Fix for http://orchard.codeplex.com/workitem/17920
|
||||
// By forcing the CBM to build App_Code, etc, we ensure that the ASP.NET BuildManager
|
||||
// is in a state where it can safely (i.e. in a multi-threaded safe way) process
|
||||
// multiple concurrent calls to "GetCompiledAssembly".
|
||||
clientBuildManager.CompileApplicationDependencies();
|
||||
return (CommandHost)clientBuildManager.CreateObject(hostType, false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user