Merge from dev branch

This commit is contained in:
rpaquay
2010-02-12 09:54:30 -08:00
608 changed files with 4384 additions and 713 deletions

10
.hgignore Normal file
View File

@@ -0,0 +1,10 @@
glob:bin
glob:obj
glob:App_Data
glob:_ReSharper*
glob:src/Orchard.suo
glob:*.user
glob:*.patch
glob:*.hg
glob:build
glob:*.sln.cache

24
ClickToBuild.cmd Normal file
View File

@@ -0,0 +1,24 @@
if "%WindowsSdkDir%" neq "" goto build
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" goto initialize2k8on64
if exist "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" goto initialize2k8
echo "Unable to detect suitable environment. Build may not succeed."
goto build
:initialize2k8
call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
goto build
:initialize2k8on64
call "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
goto build
:build
call build
pause
goto end
:end

115
Orchard.proj Normal file
View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Initialization -->
<PropertyGroup>
<LibFolder>$(MSBuildProjectDirectory)\lib</LibFolder>
<SrcFolder>$(MSBuildProjectDirectory)\src</SrcFolder>
<BuildFolder>$(MSBuildProjectDirectory)\build</BuildFolder>
<CompileFolder>$(BuildFolder)\Compile</CompileFolder>
<WebSitesFolder>$(CompileFolder)\_PublishedWebsites</WebSitesFolder>
<StageFolder>$(BuildFolder)\Stage</StageFolder>
</PropertyGroup>
<Import Project="$(LibFolder)\msbuild\MSBuild.Community.Tasks.Targets"/>
<!-- Coordinating Targets -->
<Target Name ="Build">
<CallTarget Targets="Clean"/>
<CallTarget Targets="Compile"/>
<CallTarget Targets="Test"/>
<CallTarget Targets="Package"/>
</Target>
<Target Name="Package">
<CallTarget Targets="Package-Stage"/>
<CallTarget Targets="Package-Zip"/>
</Target>
<!-- Building -->
<Target Name="Clean">
<MSBuild Projects="$(SrcFolder)\Orchard.sln" Targets="Clean" />
<RemoveDir Directories="$(BuildFolder)" />
</Target>
<Target Name ="Compile">
<MSBuild
Projects="$(SrcFolder)\Orchard.sln"
Targets="Build"
Properties="Configuration=Release;OutputPath=$(CompileFolder)" />
</Target>
<!-- Testing -->
<Target Name ="Test">
<Exec Command="$(LibFolder)\nunit\nunit-console-x86.exe /xml=$(BuildFolder)\Orchard.Tests.xml $(CompileFolder)\Orchard.Core.Tests.dll $(CompileFolder)\Orchard.Tests.dll $(CompileFolder)\Orchard.Tests.Modules.dll $(CompileFolder)\Orchard.Web.Tests.dll $(CompileFolder)\MSBuild.Orchard.Tasks.Tests.dll" />
</Target>
<!-- Packaging -->
<UsingTask AssemblyFile="$(CompileFolder)\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.StageProjectAlteration" />
<Target Name="Package-Stage">
<ItemGroup>
<Stage-Bin-Exclude Include="$(WebSitesFolder)\**\bin\**\*" />
<Stage-Web Include="$(WebSitesFolder)\Orchard.Web\**\*;$(SrcFolder)\Orchard.Web\*.csproj" />
<Stage-Core Include="$(WebSitesFolder)\Orchard.Core\**\*" Exclude="@(Stage-Bin-Exclude)" />
<Stage-Modules Include="$(WebSitesFolder)\**\*" Exclude="@(Stage-Web);@(Stage-Core);@(Stage-Bin-Exclude)" />
<Stage-License Include="$(MSBuildProjectDirectory)\*.txt" />
</ItemGroup>
<Copy SourceFiles="@(Stage-Web);@(Stage-License)" DestinationFolder="$(StageFolder)\%(RecursiveDir)" />
<Copy SourceFiles="@(Stage-Core)" DestinationFolder="$(StageFolder)\Core\%(RecursiveDir)" />
<Copy SourceFiles="@(Stage-Modules)" DestinationFolder="$(StageFolder)\Modules\%(RecursiveDir)" />
<!-- extra processing of the staged csproj file -->
<StageProjectAlteration ProjectFileName="$(StageFolder)\Orchard.Web.csproj" AddContentFiles="
@(Stage-Modules->'Modules\%(RecursiveDir)%(Filename)%(Extension)');
@(Stage-Core->'Core\%(RecursiveDir)%(Filename)%(Extension)')">
<Output TaskParameter="ExtraFiles" ItemName="StageProjectAlteration-ExtraFiles"/>
</StageProjectAlteration>
<!-- move over extra non-content files the csproj referenced -->
<Copy SourceFiles="@(StageProjectAlteration-ExtraFiles->'$(SrcFolder)\Orchard.Web\%(Identity)')"
DestinationFolder="$(StageFolder)\%(RecursiveDir)"/>
</Target>
<Target Name="Package-Zip">
<ItemGroup>
<Zip-Exclude Include="
$(MSBuildProjectDirectory)\src\**\bin\**\*;
$(MSBuildProjectDirectory)\src\**\obj\**\*;
$(MSBuildProjectDirectory)\**\App_Data\**\*;
$(MSBuildProjectDirectory)\**\_ReSharper*\**\*;
$(MSBuildProjectDirectory)\**\*.sln.cache;
$(MSBuildProjectDirectory)\**\*.suo;
$(MSBuildProjectDirectory)\**\*.user;
$(MSBuildProjectDirectory)\**\*.patch;
$(MSBuildProjectDirectory)\**\*.hg;
" />
<Zip-Stage Include="$(StageFolder)\**\*" />
<Zip-Source Include="
$(MSBuildProjectDirectory)\lib\**\*;
$(MSBuildProjectDirectory)\src\**\*;
$(MSBuildProjectDirectory)\*.txt;
" Exclude="@(Zip-Exclude)" />
</ItemGroup>
<Zip Files="@(Zip-Stage)" WorkingDirectory="$(StageFolder)" ZipFileName="$(BuildFolder)\Orchard.Web.zip" />
<Zip Files="@(Zip-Source)" WorkingDirectory="$(MSBuildProjectDirectory)" ZipFileName="$(BuildFolder)\Orchard.Source.zip" />
</Target>
</Project>

2
build.cmd Normal file
View File

@@ -0,0 +1,2 @@
if "%~1"=="" build Build
msbuild /t:%~1

Binary file not shown.

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- $Id: MSBuild.Community.Tasks.Targets 368 2007-11-22 18:22:00Z pcpatel $ -->
<PropertyGroup>
<!--<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>-->
<MSBuildCommunityTasksPath>.</MSBuildCommunityTasksPath>
<MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AspNet.InstallAspNet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AssemblyInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Attrib" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlExecute" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FileUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FtpUpload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FxCop" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GacUtil" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GetSolutionProjects" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ILMerge" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Mail" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Move" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpCreateRemoteDirectory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpDirectoryExists" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpUploadDirectoryContent" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Add" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Divide" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Modulo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Multiple" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Subtract" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NDoc" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NUnit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Oracle.AddTnsName" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Prompt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryWrite" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexMatch" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexReplace" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RoboCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Script" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sleep" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryScriptMap" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectorySetting" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.InstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.UninstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Schema.TaskSchema" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.ExecuteDDL" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssAdd" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckin" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssClean" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssDiff" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssGet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssHistory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssLabel" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssUndoCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCommit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnExport" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnVersion" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Tfs.TfsVersion" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.TemplateFile" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Time" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Unzip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Version" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.WebDownload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlMassUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xslt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Zip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.JavaScript.JSCompress" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.User" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Computer" />
<ItemGroup>
<FxCopRuleAssemblies Include="UsageRules.dll"/>
<FxCopRuleAssemblies Include="SecurityRules.dll"/>
<FxCopRuleAssemblies Include="PortabilityRules.dll"/>
<FxCopRuleAssemblies Include="PerformanceRules.dll"/>
<FxCopRuleAssemblies Include="MobilityRules.dll"/>
<FxCopRuleAssemblies Include="InteroperabilityRules.dll"/>
<FxCopRuleAssemblies Include="GlobalizationRules.dll"/>
<FxCopRuleAssemblies Include="DesignRules.dll"/>
</ItemGroup>
</Project>

Binary file not shown.

View File

@@ -84,6 +84,7 @@
<PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
<Abbreviation Text="SQ" />
</Naming2>
</CodeStyleSettings>
</Configuration>

View File

@@ -14,7 +14,7 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Handlers;
using Orchard.ContentManagement.Records;
using Orchard.Security;
using Orchard.Tests.Packages;
using Orchard.Tests.Modules;
namespace Orchard.Core.Tests.Common.Providers {
[TestFixture]

View File

@@ -10,7 +10,7 @@ using Orchard.ContentManagement.Records;
using Orchard.Core.Common.Models;
using Orchard.Core.Common.Records;
using Orchard.Core.Common.Services;
using Orchard.Tests.Packages;
using Orchard.Tests.Modules;
namespace Orchard.Core.Tests.Common.Services {
[TestFixture]

View File

@@ -19,7 +19,7 @@ using Orchard.Core.Feeds.Models;
using Orchard.Core.Feeds.Rss;
using Orchard.Core.Feeds.StandardBuilders;
using Orchard.Mvc.Results;
using Orchard.Tests.Packages;
using Orchard.Tests.Modules;
using Orchard.Tests.Stubs;
namespace Orchard.Core.Tests.Feeds.Controllers {

View File

@@ -85,9 +85,9 @@
<Compile Include="Scheduling\ScheduledTaskExecutorTests.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Orchard.Tests.Packages\Orchard.Tests.Packages.csproj">
<ProjectReference Include="..\Orchard.Tests.Modules\Orchard.Tests.Modules.csproj">
<Project>{6CB3EB30-F725-45C0-9742-42599BA8E8D2}</Project>
<Name>Orchard.Tests.Packages</Name>
<Name>Orchard.Tests.Modules</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Tests\Orchard.Tests.csproj">
<Project>{ABC826D4-2FA1-4F2F-87DE-E6095F653810}</Project>

View File

@@ -10,7 +10,7 @@ using Orchard.Core.Scheduling.Services;
using Orchard.Data;
using Orchard.Tasks;
using Orchard.Tasks.Scheduling;
using Orchard.Tests.Packages;
using Orchard.Tests.Modules;
namespace Orchard.Core.Tests.Scheduling {
[TestFixture]

View File

@@ -11,7 +11,7 @@ using Orchard.Core.Scheduling.Services;
using Orchard.Data;
using Orchard.Tasks;
using Orchard.Tasks.Scheduling;
using Orchard.Tests.Packages;
using Orchard.Tests.Modules;
namespace Orchard.Core.Tests.Scheduling {
[TestFixture]

View File

@@ -12,7 +12,7 @@ using Orchard.Services;
using Orchard.Tests.Data;
using Orchard.Tests.Stubs;
namespace Orchard.Tests.Packages {
namespace Orchard.Tests.Modules {
public abstract class DatabaseEnabledTestsBase {
protected IContainer _container;

View File

@@ -8,8 +8,8 @@
<ProjectGuid>{6CB3EB30-F725-45C0-9742-42599BA8E8D2}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Orchard.Tests.Packages</RootNamespace>
<AssemblyName>Orchard.Tests.Packages</AssemblyName>
<RootNamespace>Orchard.Tests.Modules</RootNamespace>
<AssemblyName>Orchard.Tests.Modules</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
@@ -105,15 +105,15 @@
<Project>{9916839C-39FC-4CEB-A5AF-89CA7E87119F}</Project>
<Name>Orchard.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Packages\Orchard.Pages\Orchard.Pages.csproj">
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.Pages\Orchard.Pages.csproj">
<Project>{4A9C04A6-0986-4A92-A610-5F59FF273FB9}</Project>
<Name>Orchard.Pages</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Packages\Orchard.Roles\Orchard.Roles.csproj">
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.Roles\Orchard.Roles.csproj">
<Project>{D10AD48F-407D-4DB5-A328-173EC7CB010F}</Project>
<Name>Orchard.Roles</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Packages\Orchard.Users\Orchard.Users.csproj">
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.Users\Orchard.Users.csproj">
<Project>{79AED36E-ABD0-4747-93D3-8722B042454B}</Project>
<Name>Orchard.Users</Name>
</ProjectReference>

View File

@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Orchard.Tests.Packages")]
[assembly: AssemblyTitle("Orchard.Tests.Modules")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Orchard")]

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Orchard.Tests.Packages.Roles.Controllers {
namespace Orchard.Tests.Modules.Roles.Controllers {
class AdminControllerTests {
}
}

View File

@@ -6,7 +6,7 @@ using NUnit.Framework;
using Orchard.Roles.Records;
using Orchard.Roles.Services;
namespace Orchard.Tests.Packages.Roles.Services {
namespace Orchard.Tests.Modules.Roles.Services {
[TestFixture]
public class RoleServiceTests : DatabaseEnabledTestsBase{
public override void Register(ContainerBuilder builder) {

View File

@@ -22,7 +22,7 @@ using Orchard.Users.Models;
using Orchard.Users.Services;
using Orchard.Users.ViewModels;
namespace Orchard.Tests.Packages.Users.Controllers {
namespace Orchard.Tests.Modules.Users.Controllers {
[TestFixture]
public class AdminControllerTests : DatabaseEnabledTestsBase {
private AdminController _controller;

View File

@@ -16,7 +16,7 @@ using Orchard.Security;
using Orchard.Users.Models;
using Orchard.Users.Services;
namespace Orchard.Tests.Packages.Users.Services {
namespace Orchard.Tests.Modules.Users.Services {
[TestFixture]
public class MembershipServiceTests {
private IMembershipService _membershipService;

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Web.Mvc;
namespace Orchard.Tests.Packages {
namespace Orchard.Tests.Modules {
public static class Values {
public static IValueProvider From<T>(T obj) {
if (obj is IDictionary<string,string>) {

View File

@@ -7,7 +7,7 @@ using Orchard.Core.XmlRpc.Controllers;
using Orchard.Core.XmlRpc.Models;
using Orchard.Core.XmlRpc.Services;
namespace Orchard.Tests.Packages.XmlRpc.Controllers {
namespace Orchard.Tests.Modules.XmlRpc.Controllers {
[TestFixture]
public class HomeControllerTests {
[Test]

View File

@@ -4,7 +4,7 @@ using NUnit.Framework;
using Orchard.Core.XmlRpc.Models;
using Orchard.Core.XmlRpc.Services;
namespace Orchard.Tests.Packages.XmlRpc.Services {
namespace Orchard.Tests.Modules.XmlRpc.Services {
[TestFixture]
public class XmlRpcReaderTests {
private IMapper<XElement, XRpcMethodCall> _methodCallMapper;

View File

@@ -3,7 +3,7 @@ using NUnit.Framework;
using Orchard.Core.XmlRpc.Models;
using Orchard.Core.XmlRpc.Services;
namespace Orchard.Tests.Packages.XmlRpc.Services {
namespace Orchard.Tests.Modules.XmlRpc.Services {
[TestFixture]
public class XmlRpcWriterTests {
[Test]

View File

@@ -0,0 +1,136 @@
using System;
using System.Data.SqlClient;
using System.IO;
using System.Threading;
using NUnit.Framework;
using Orchard.Data.Migrations;
using Orchard.Environment;
using Orchard.Tests.Records;
namespace Orchard.Tests.Data.Migrations {
[TestFixture]
public class DatabaseMigrationManagerTests {
private string _tempDataFolder;
[SetUp]
public void Init() {
var tempFilePath = Path.GetTempFileName();
File.Delete(tempFilePath);
Directory.CreateDirectory(tempFilePath);
_tempDataFolder = tempFilePath;
}
[TearDown]
public void Term() {
try { Directory.Delete(_tempDataFolder, true); }
catch (IOException) { }
}
private static void CreateSqlServerDatabase(string databasePath) {
var databaseName = Path.GetFileNameWithoutExtension(databasePath);
using (var connection = new SqlConnection(
"Data Source=.\\SQLEXPRESS;Initial Catalog=tempdb;Integrated Security=true;User Instance=True;")) {
connection.Open();
using (var command = connection.CreateCommand()) {
command.CommandText =
"CREATE DATABASE " + databaseName +
" ON PRIMARY (NAME=" + databaseName +
", FILENAME='" + databasePath.Replace("'", "''") + "')";
command.ExecuteNonQuery();
command.CommandText =
"EXEC sp_detach_db '" + databaseName + "', 'true'";
command.ExecuteNonQuery();
}
}
}
[Test]
public void MigrationManagerShouldCreateEmptySQLiteDatabaseAtGivenLocation() {
var manager = (IDatabaseMigrationManager)new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SQLite", _tempDataFolder, "");
coordinator.CreateDatabase();
Assert.That(File.Exists(Path.Combine(_tempDataFolder, "Orchard.db")), Is.True);
}
[Test, ExpectedException(typeof(NotImplementedException))]
public void MigrationManagerShouldNotImplementTheCreationOfSqlServer() {
var manager = (IDatabaseMigrationManager)new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SqlServer", _tempDataFolder, "");
coordinator.CreateDatabase();
}
[Test]
public void CanConnectShouldBeFalseWhenSqlServerIsInvalid() {
var manager = (IDatabaseMigrationManager)new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SqlServer", _tempDataFolder, "Data Source=.\\SQLEXPRESS;Initial Catalog=Hello");
Assert.That(coordinator.CanConnect(), Is.False);
}
[Test]
public void CanConnectShouldBeTrueWhenValidSqlServerMdfIsTargetted() {
var databasePath = Path.Combine(_tempDataFolder, "Orchard.mdf");
CreateSqlServerDatabase(databasePath);
var manager = (IDatabaseMigrationManager)new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SqlServer", _tempDataFolder, "Data Source=.\\SQLEXPRESS;AttachDbFileName=" + databasePath + ";Integrated Security=True;User Instance=True;");
Assert.That(coordinator.CanConnect(), Is.True);
}
[Test]
public void SQLiteSchemaShouldBeGeneratedAndUsable() {
var manager = (IDatabaseMigrationManager) new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SQLite", _tempDataFolder, "");
var recordDescriptors = new[] {
new RecordDescriptor {Prefix = "Hello", Type = typeof (Foo)}
};
coordinator.UpdateSchema(recordDescriptors);
var sessionFactory = coordinator.BuildSessionFactory(recordDescriptors);
var session = sessionFactory.OpenSession();
var foo = new Foo {Name = "hi there"};
session.Save(foo);
session.Flush();
session.Close();
Assert.That(foo, Is.Not.EqualTo(0));
sessionFactory.Close();
}
[Test]
public void SqlServerSchemaShouldBeGeneratedAndUsable() {
var databasePath = Path.Combine(_tempDataFolder, "Orchard.mdf");
CreateSqlServerDatabase(databasePath);
var manager = (IDatabaseMigrationManager)new DatabaseMigrationManager();
var coordinator = manager.CreateCoordinator("SqlServer", _tempDataFolder, "Data Source=.\\SQLEXPRESS;AttachDbFileName=" + databasePath + ";Integrated Security=True;User Instance=True;");
var recordDescriptors = new[] {
new RecordDescriptor {Prefix = "Hello", Type = typeof (Foo)}
};
coordinator.UpdateSchema(recordDescriptors);
var sessionFactory = coordinator.BuildSessionFactory(recordDescriptors);
var session = sessionFactory.OpenSession();
var foo = new Foo { Name = "hi there" };
session.Save(foo);
session.Flush();
session.Close();
Assert.That(foo, Is.Not.EqualTo(0));
sessionFactory.Close();
}
}
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
@@ -11,6 +10,7 @@ using Autofac.Modules;
using Moq;
using NUnit.Framework;
using Orchard.Environment;
using Orchard.Environment.Configuration;
using Orchard.Mvc;
using Orchard.Mvc.ModelBinders;
using Orchard.Mvc.Routes;
@@ -46,9 +46,23 @@ namespace Orchard.Tests.Environment {
builder.Register(new ViewEngineCollection { new WebFormViewEngine() });
builder.Register(new StuExtensionManager()).As<IExtensionManager>();
builder.Register(new Mock<IHackInstallationGenerator>().Object);
builder.Register(new StubShellSettingsLoader()).As<IShellSettingsLoader>();
});
}
public class StubShellSettingsLoader : IShellSettingsLoader {
private readonly List<IShellSettings> _shellSettings = new List<IShellSettings>
{new ShellSettings {Name = "testing"}};
public IEnumerable<IShellSettings> LoadSettings() {
return _shellSettings.AsEnumerable();
}
public void SaveSettings(IShellSettings settings) {
_shellSettings.Add(settings);
}
}
public class StuExtensionManager : IExtensionManager {
public IEnumerable<ExtensionDescriptor> AvailableExtensions() {
return Enumerable.Empty<ExtensionDescriptor>();
@@ -96,7 +110,7 @@ namespace Orchard.Tests.Environment {
[Test]
public void DifferentShellInstanceShouldBeReturnedAfterEachCreate() {
var host = _container.Resolve<IOrchardHost>();
var host = (DefaultOrchardHost)_container.Resolve<IOrchardHost>();
var runtime1 = host.CreateShell();
var runtime2 = host.CreateShell();
Assert.That(runtime1, Is.Not.SameAs(runtime2));

View File

@@ -37,7 +37,6 @@ namespace Orchard.Tests.Environment {
new[] { modelBinderProvider1, modelBinderProvider2 },
modelBinderPublisher,
new ViewEngineCollection { new WebFormViewEngine() },
new Moq.Mock<IExtensionManager>().Object,
Enumerable.Empty<IOrchardShellEvents>());
runtime.Activate();

View File

@@ -0,0 +1,45 @@
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using System.Web.Routing;
using Autofac;
using NUnit.Framework;
using Orchard.Environment;
using Orchard.Environment.ShellBuilders;
using Orchard.Mvc.Filters;
using Orchard.Mvc.ViewEngines;
namespace Orchard.Tests.Environment.ShellBuilders {
[TestFixture]
public class SetupShellContainerFactoryTests {
private IContainer _hostContainer;
[SetUp]
public void Init() {
_hostContainer = OrchardStarter.CreateHostContainer(builder => {
builder.Register(new ViewEngineCollection());
builder.Register(new RouteCollection());
builder.Register(new ModelBinderDictionary());
});
}
[Test]
public void FactoryShouldCreateContainerThatProvidesShell() {
var factory = new SafeModeShellContainerFactory(_hostContainer);
var shellContainer = factory.CreateContainer(null);
Assert.That(shellContainer, Is.Not.Null);
var shell = shellContainer.Resolve<IOrchardShell>();
Assert.That(shell, Is.Not.Null);
}
[Test]
public void ShellContainerShouldProvideLayoutViewEngine() {
var factory = new SafeModeShellContainerFactory(_hostContainer);
var shellContainer = factory.CreateContainer(null);
var viewEngineFilter = shellContainer.Resolve<IEnumerable<IFilterProvider>>()
.Single(f=>f is ViewEngineFilter);
Assert.That(viewEngineFilter, Is.Not.Null);
}
}
}

View File

@@ -48,8 +48,8 @@ namespace Orchard.Tests.Extensions {
}
[Test]
public void NamesFromFoldersWithPackageTxtShouldBeListed() {
var folders = new PackageFolders(new[] { _tempFolderName });
public void NamesFromFoldersWithModuleTxtShouldBeListed() {
var folders = new ModuleFolders(new[] { _tempFolderName });
var names = folders.ListNames();
Assert.That(names.Count(), Is.EqualTo(2));
Assert.That(names, Has.Some.EqualTo("Sample1"));
@@ -57,8 +57,8 @@ namespace Orchard.Tests.Extensions {
}
[Test]
public void PackageTxtShouldBeParsedAndReturnedAsYamlDocument() {
var folders = new PackageFolders(new[] { _tempFolderName });
public void ModuleTxtShouldBeParsedAndReturnedAsYamlDocument() {
var folders = new ModuleFolders(new[] { _tempFolderName });
var sample1 = folders.ParseManifest("Sample1");
var mapping = (Mapping)sample1.YamlDocument.Root;
var entities = mapping.Entities

View File

@@ -135,12 +135,14 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="DataUtility.cs" />
<Compile Include="Data\Migrations\DatabaseMigrationManagerTests.cs" />
<Compile Include="Data\RepositoryTests.cs" />
<Compile Include="Data\StubLocator.cs" />
<Compile Include="Environment\DefaultCompositionStrategyTests.cs" />
<Compile Include="Environment\DefaultOrchardHostTests.cs" />
<Compile Include="Environment\DefaultOrchardShellTests.cs" />
<Compile Include="Environment\OrchardStarterTests.cs" />
<Compile Include="Environment\ShellBuilders\SetupShellContainerFactoryTests.cs" />
<Compile Include="Environment\TestDependencies\TestDependency.cs" />
<Compile Include="EventsTests.cs" />
<Compile Include="Extensions\ExtensionFoldersTests.cs" />
@@ -182,9 +184,9 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Extensions\FoldersData\Sample1\Package.txt" />
<EmbeddedResource Include="Extensions\FoldersData\Sample1\Module.txt" />
<EmbeddedResource Include="Extensions\FoldersData\Sample2\Two.txt" />
<EmbeddedResource Include="Extensions\FoldersData\Sample3\Package.txt" />
<EmbeddedResource Include="Extensions\FoldersData\Sample3\Module.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@@ -6,7 +6,7 @@ namespace Orchard.Core.Common {
public class Permissions : IPermissionProvider {
public static readonly Permission ChangeOwner = new Permission { Name = "ChangeOwner", Description = "Change the owner of content items" };
public string PackageName {
public string ModuleName {
get { return "Common"; }
}

View File

@@ -0,0 +1,13 @@
using Orchard.UI.Navigation;
namespace Orchard.Core.Navigation {
public class AdminMenu : INavigationProvider {
public string MenuName { get { return "admin"; } }
public void GetNavigation(NavigationBuilder builder) {
builder.Add("Navigation", "12",
menu => menu
.Add("Manage Main Menu", "2.0", item => item.Action("Index", "Admin", new { area = "Navigation" }).Permission(Permissions.ManageMainMenu)));
}
}
}

View File

@@ -0,0 +1,21 @@
using System.Web.Mvc;
using Orchard.Core.Navigation.ViewModels;
using Orchard.Localization;
namespace Orchard.Core.Navigation.Controllers {
[ValidateInput(false)]
public class AdminController : Controller {
public IOrchardServices Services { get; private set; }
public AdminController(IOrchardServices services) {
Services = services;
T = NullLocalizer.Instance;
}
public Localizer T { get; set; }
public ActionResult Index() {
return View(new NavigationIndexViewModel());
}
}
}

View File

@@ -0,0 +1,15 @@
using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.Core.Navigation.Records;
namespace Orchard.Core.Navigation.Models {
public class MenuItem : ContentPart<MenuItemRecord> {
[HiddenInput(DisplayValue = false)]
public int Id { get { return ContentItem.Id; } }
public string Url {
get { return Record.Url; }
set { Record.Url = value; }
}
}
}

View File

@@ -0,0 +1,29 @@
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
namespace Orchard.Core.Navigation.Models {
[UsedImplicitly]
public class MenuItemDriver : ContentItemDriver<MenuItem> {
private readonly IOrchardServices _orchardServices;
public readonly static ContentType ContentType = new ContentType {
Name = "menuitem",
DisplayName = "Menu Item"
};
public MenuItemDriver(IOrchardServices orchardServices) {
_orchardServices = orchardServices;
}
protected override ContentType GetContentType() {
return ContentType;
}
protected override string Prefix { get { return ""; } }
protected override string GetDisplayText(MenuItem item) {
return item.Url;
}
}
}

View File

@@ -0,0 +1,15 @@
using Orchard.Core.Navigation.Records;
using Orchard.Data;
using Orchard.ContentManagement.Handlers;
namespace Orchard.Core.Navigation.Models {
public class MenuItemHandler : ContentHandler {
private readonly IOrchardServices _orchardServices;
public MenuItemHandler(IRepository<MenuItemRecord> repository, IOrchardServices orchardServices) {
_orchardServices = orchardServices;
Filters.Add(new ActivatingFilter<MenuItem>(MenuItemDriver.ContentType.Name));
Filters.Add(StorageFilter.For(repository));
}
}
}

View File

@@ -0,0 +1,26 @@
using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.Core.Navigation.Records;
namespace Orchard.Core.Navigation.Models {
public class MenuPart : ContentPart<MenuPartRecord> {
[HiddenInput(DisplayValue = false)]
public int Id { get { return ContentItem.Id; } }
public bool OnMainMenu {
get { return Record.OnMainMenu; }
set { Record.OnMainMenu = value; }
}
public string MenuText {
get { return Record.MenuText; }
set { Record.MenuText = value; }
}
[HiddenInput(DisplayValue = false)]
public string MenuPosition {
get { return Record.MenuPosition; }
set { Record.MenuPosition = value; }
}
}
}

View File

@@ -0,0 +1,32 @@
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.Security;
namespace Orchard.Core.Navigation.Models {
[UsedImplicitly]
public class MenuPartDriver : ContentPartDriver<MenuPart> {
private readonly IAuthorizationService _authorizationService;
public MenuPartDriver(IAuthorizationService authorizationService) {
_authorizationService = authorizationService;
}
public virtual IUser CurrentUser { get; set; }
protected override DriverResult Editor(MenuPart part) {
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, part))
return null;
return ContentPartTemplate(part, "Parts/Navigation.EditMenuPart").Location("primary", "9");
}
protected override DriverResult Editor(MenuPart part, IUpdateModel updater) {
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, part))
return null;
updater.TryUpdateModel(part, Prefix, null, null);
return ContentPartTemplate(part, "Parts/Navigation.EditMenuPart").Location("primary", "9");
}
}
}

View File

@@ -0,0 +1,22 @@
using System;
using JetBrains.Annotations;
using Orchard.ContentManagement.Handlers;
using Orchard.Core.Navigation.Records;
using Orchard.Data;
namespace Orchard.Core.Navigation.Models {
[UsedImplicitly]
public class MenuPartHandler : ContentHandler {
public MenuPartHandler(IRepository<MenuPartRecord> menuPartRepository) {
Filters.Add(new ActivatingFilter<MenuPart>("blog"));
Filters.Add(new ActivatingFilter<MenuPart>("page"));
Filters.Add(new ActivatingFilter<MenuPart>("menuitem"));
Filters.Add(StorageFilter.For(menuPartRepository));
OnActivated<MenuPart>((ctx, x) => {
x.OnMainMenu = false;
x.MenuText = String.Empty;
});
}
}
}

View File

@@ -0,0 +1 @@
name: Navigation

View File

@@ -0,0 +1,27 @@
using System.Collections.Generic;
using Orchard.Security.Permissions;
namespace Orchard.Core.Navigation {
public class Permissions : IPermissionProvider {
public static readonly Permission ManageMainMenu = new Permission { Name = "ManageMainMenu", Description = "Manage main menu" };
public string ModuleName {
get { return "Navigation"; }
}
public IEnumerable<Permission> GetPermissions() {
return new[] {
ManageMainMenu
};
}
public IEnumerable<PermissionStereotype> GetDefaultStereotypes() {
return new[] {
new PermissionStereotype {
Name = "Administrators",
Permissions = new[] {ManageMainMenu}
}
};
}
}
}

View File

@@ -0,0 +1,7 @@
using Orchard.ContentManagement.Records;
namespace Orchard.Core.Navigation.Records {
public class MenuItemRecord : ContentPartRecord {
public virtual string Url { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using Orchard.ContentManagement.Records;
namespace Orchard.Core.Navigation.Records {
public class MenuPartRecord : ContentPartRecord {
public virtual string MenuText { get; set; }
public virtual string MenuPosition { get; set; }
public virtual bool OnMainMenu { get; set; }
}
}

View File

@@ -0,0 +1,42 @@
using System.Collections.Generic;
using Orchard.ContentManagement;
using Orchard.Core.Navigation.Models;
using Orchard.Core.Navigation.Records;
using Orchard.UI.Navigation;
using MenuItem=Orchard.Core.Navigation.Models.MenuItem;
namespace Orchard.Core.Navigation.Services {
public class MainMenu : INavigationProvider {
private readonly IContentManager _contentManager;
public MainMenu(IContentManager contentManager) {
_contentManager = contentManager;
}
public string MenuName { get { return "mainmenu"; } }
public void GetNavigation(NavigationBuilder builder) {
IEnumerable<MenuPart> menuParts = _contentManager.Query<MenuPart, MenuPartRecord>().Where(x => x.OnMainMenu).List();
foreach (var menuPart in menuParts) {
if (menuPart != null ) {
MenuPart part = menuPart;
if (part.Is<MenuItem>())
builder.Add(menu => menu.Add(part.MenuText, part.MenuPosition, part.As<MenuItem>().Url));
else
builder.Add(
menu =>
menu.Add(part.MenuText, part.MenuPosition,
nib =>
nib.Action(
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
DisplayRouteValues["action"] as string,
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
DisplayRouteValues["controller"] as string,
part.ContentItem.ContentManager.GetItemMetadata(part.ContentItem).
DisplayRouteValues)));
}
}
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Web.Mvc;
using Orchard.Mvc.Filters;
using Orchard.Mvc.ViewModels;
using Orchard.UI.Navigation;
namespace Orchard.Core.Navigation.Services {
public class MainMenuFilter : FilterProvider, IResultFilter {
private readonly INavigationManager _navigationManager;
public MainMenuFilter(INavigationManager navigationManager) {
_navigationManager = navigationManager;
}
public void OnResultExecuting(ResultExecutingContext filterContext) {
var viewResult = filterContext.Result as ViewResult;
if (viewResult == null)
return;
var baseViewModel = viewResult.ViewData.Model as BaseViewModel;
if (baseViewModel == null)
return;
baseViewModel.Menu = _navigationManager.BuildMenu("mainmenu");
}
public void OnResultExecuted(ResultExecutedContext filterContext) {
}
}
}

View File

@@ -0,0 +1,6 @@
using Orchard.Mvc.ViewModels;
namespace Orchard.Core.Navigation.ViewModels {
public class NavigationIndexViewModel : AdminViewModel {
}
}

View File

@@ -0,0 +1,44 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<NavigationIndexViewModel>" %>
<%@ Import Namespace="Orchard.Core.Navigation.ViewModels"%>
<h1><%=Html.TitleForPage(T("Edit Main Menu").ToString())%></h1><%
using (Html.BeginFormAntiForgeryPost()) { %>
<table>
<thead>
<tr>
<td>Text</td>
<td>Position</td>
<td>Url</td>
<td></td>
</tr>
</thead>
<tbody>
<%-- loop over menu items --%>
<tr>
<td><input type="text" name="text" /></td>
<td><input type="text" name="position" /></td>
<td><input type="text" name="url" /></td>
<td>Delete Button</td>
</tr>
<%-- end loop --%>
<tr>
<td></td>
<td></td>
<td></td>
<td>Update All Button</td>
</tr>
</tbody>
</table><%
}
using (Html.BeginFormAntiForgeryPost()) { %>
<table>
<tbody>
<tr>
<td><input type="text" name="addtext" /></td>
<td><input type="text" name="addposition" /></td>
<td><input type="text" name="addurl" /></td>
<td>Add Button</td>
</tr>
</tbody>
</table><%
} %>

View File

@@ -0,0 +1,9 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<MenuPart>" %>
<%@ Import Namespace="Orchard.Core.Navigation.Models"%>
<%@ Import Namespace="Orchard.Core.Navigation.ViewModels"%>
<fieldset>
<%=Html.EditorFor(m => m.OnMainMenu) %>
<label for="OnMainMenu" class="forcheckbox"><%=_Encoded("Add to the main menu") %></label>
<label for="MenuText"><%=_Encoded("Menu text") %></label>
<%=Html.TextBoxFor(m => m.MenuText, new { @class = "large text" })%>
</fieldset>

View File

@@ -102,6 +102,20 @@
<Compile Include="Feeds\Models\FeedResponse.cs" />
<Compile Include="Feeds\Rss\RssFeedBuilder.cs" />
<Compile Include="Feeds\Rss\RssResult.cs" />
<Compile Include="Navigation\AdminMenu.cs" />
<Compile Include="Navigation\Controllers\AdminController.cs" />
<Compile Include="Navigation\Models\MenuItem.cs" />
<Compile Include="Navigation\Models\MenuItemDriver.cs" />
<Compile Include="Navigation\Models\MenuItemHandler.cs" />
<Compile Include="Navigation\Models\MenuPart.cs" />
<Compile Include="Navigation\Models\MenuPartDriver.cs" />
<Compile Include="Navigation\Models\MenuPartHandler.cs" />
<Compile Include="Navigation\Permissions.cs" />
<Compile Include="Navigation\Records\MenuItemRecord.cs" />
<Compile Include="Navigation\Records\MenuPartRecord.cs" />
<Compile Include="Navigation\Services\MainMenu.cs" />
<Compile Include="Navigation\Services\MainMenuFilter.cs" />
<Compile Include="Navigation\ViewModels\NavigationIndexViewModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Scheduling\Records\ScheduledTaskRecord.cs" />
<Compile Include="Scheduling\Services\PublishingTaskHandler.cs" />
@@ -149,11 +163,11 @@
<Compile Include="XmlRpc\XmlRpcContext.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Common\Package.txt" />
<Content Include="Settings\Package.txt" />
<Content Include="Common\Module.txt" />
<Content Include="Settings\Module.txt" />
<Content Include="Settings\Views\Admin\Index.ascx" />
<Content Include="Web.config" />
<Content Include="XmlRpc\Package.txt" />
<Content Include="XmlRpc\Module.txt" />
<Content Include="XmlRpc\Views\Home\Index.aspx" />
</ItemGroup>
<ItemGroup>
@@ -170,7 +184,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="Common\Views\Web.config" />
<Content Include="Themes\Package.txt" />
<Content Include="Themes\Module.txt" />
<Content Include="Themes\Views\Admin\Index.aspx" />
</ItemGroup>
<ItemGroup>
@@ -179,8 +193,9 @@
<Content Include="Common\Views\EditorTemplates\Parts\Common.Routable.ascx" />
<Content Include="Common\Views\EditorTemplates\Parts\Common.Body.ascx" />
<Content Include="Common\Views\EditorTemplates\Parts\Common.Owner.ascx" />
<Content Include="Feeds\Package.txt" />
<Content Include="Scheduling\Package.txt" />
<Content Include="Feeds\Module.txt" />
<Content Include="Navigation\Module.txt" />
<Content Include="Scheduling\Module.txt" />
<Content Include="Settings\Views\EditorTemplates\Items\Settings.Site.ascx" />
<Content Include="Themes\Scripts\jquery-1.4.1.js" />
<Content Include="Themes\Scripts\jquery-1.4.1.min.js" />
@@ -200,6 +215,11 @@
<Content Include="Themes\Views\Menu.ascx" />
<Content Include="Themes\Views\Web.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Navigation\Views\Admin\Index.ascx" />
<Content Include="Navigation\Views\EditorTemplates\Parts\Navigation.EditMenuPart.ascx" />
<Content Include="Navigation\Views\Web.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Scheduling\Controllers\" />
</ItemGroup>

View File

@@ -3,8 +3,6 @@ using Orchard.Core.Settings.Models;
using Orchard.Core.Settings.ViewModels;
using Orchard.Localization;
using Orchard.ContentManagement;
using Orchard.Security;
using Orchard.Security.Permissions;
using Orchard.Settings;
using Orchard.UI.Notify;

View File

@@ -6,7 +6,7 @@ namespace Orchard.Core.Settings {
public static readonly Permission ManageSettings = new Permission { Name = "ManageSettings", Description = "Manage site settings" };
public static readonly Permission ChangeSuperuser = new Permission { Name = "ChangeSuperuser", Description = "Change the superuser for the site" };
public string PackageName {
public string ModuleName {
get { return "Settings"; }
}

View File

@@ -33,6 +33,8 @@ namespace Orchard.Core.Settings.Services {
item.Record.SiteName = "My Orchard Project Application";
item.Record.PageTitleSeparator = " - ";
});
// ensure subsequent calls will locate this object
_contentManager.Flush();
return site;
}
return _contentManager.Get<ISite>(record.Id);

View File

@@ -7,7 +7,7 @@ namespace Orchard.Core.Themes {
public static readonly Permission ManageThemes = new Permission { Description = "Manage Themes", Name = "ManageThemes" };
public static readonly Permission ApplyTheme = new Permission { Description = "Apply a Theme", Name = "ApplyTheme" };
public string PackageName {
public string ModuleName {
get {
return "Themes";
}

View File

@@ -1,8 +1,24 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<object>" %>
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
<% var menu = Model.Menu.FirstOrDefault();
if (menu != null && menu.Items.Count() > 0) { %>
<div id="menucontainer">
<%-- todo: (heskew) *really* need a better way of doing this. ...and this is really, really ugly :) --%>
<ul id="menu">
<li><%= Html.ActionLink(T("Home").ToString(), "Index", "Home", new {Area = ""}, new {})%></li>
<li><%= Html.ActionLink(T("Blogs").ToString(), "List", "Blog", new { Area = "Orchard.Blogs" }, new { })%></li>
<li><%= Html.ActionLink(T("Admin").ToString(), "List", new { Area = "Orchard.Blogs", Controller = "BlogAdmin" })%></li>
<%
int counter = 0, count = menu.Items.Count() - 1;
foreach (var menuItem in menu.Items) {
var sbClass = new StringBuilder(10);
if (counter == 0)
sbClass.Append("first ");
if (counter == count)
sbClass.Append("last ");%>
<li class="<%=sbClass.ToString().TrimEnd() %>"><%=!string.IsNullOrEmpty(menuItem.Url)
? Html.Link(menuItem.Text, ResolveUrl(menuItem.Url))
: Html.ActionLink(menuItem.Text, (string)menuItem.RouteValues["action"], menuItem.RouteValues).ToHtmlString() %></li>
<%
++counter;
} %>
</ul>
</div>
</div>
<% } %>

View File

@@ -110,7 +110,7 @@
<Compile Include="ViewModels\BlogEditViewModel.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Package.txt" />
<Content Include="Module.txt" />
<Content Include="Scripts\archives.js" />
<Content Include="Scripts\jquery.ui.core.js" />
<Content Include="Scripts\jquery.ui.datepicker.js" />

View File

@@ -16,7 +16,7 @@ namespace Orchard.Blogs {
public static readonly Permission MetaListOthersBlogs = new Permission { ImpliedBy = new[] { EditOthersBlogPost, PublishOthersBlogPost, DeleteOthersBlogPost } };
public static readonly Permission MetaListBlogs = new Permission { ImpliedBy = new[] { EditBlogPost, PublishBlogPost, DeleteBlogPost } };
public string PackageName {
public string ModuleName {
get {
return "Blogs";
}

Some files were not shown because too many files have changed in this diff Show More