+
+
+
+
+
+
+
+ */
+ public override void Execute(RecipeExecutionContext context) {
+
+ foreach (var aliasElement in context.RecipeStep.Step.Elements()) {
+ var aliasPath = aliasElement.Attribute("Path").Value;
+
+ Logger.Information("Importing alias '{0}'.", aliasPath);
+
+ try {
+ var rvd = new RouteValueDictionary();
+
+ var routeValuesElement = aliasElement.Descendants("RouteValues").FirstOrDefault();
+
+ if (routeValuesElement != null) {
+ foreach (var routeValue in routeValuesElement.Descendants("Add")) {
+ rvd.Add(routeValue.Attribute("Key").Value, routeValue.Attribute("Value").Value);
+ }
+ }
+
+ _aliasService.Set(aliasPath, rvd, "Custom", false);
+ }
+
+ catch (Exception ex) {
+ Logger.Error(ex, "Error while processing alias '{0}'.", aliasPath);
+ throw;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Records/AliasRecord.cs b/src/Orchard.Web/Modules/Orchard.Alias/Records/AliasRecord.cs
index 258667261..e243c7ad5 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/Records/AliasRecord.cs
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Records/AliasRecord.cs
@@ -5,5 +5,6 @@
public virtual ActionRecord Action { get; set; }
public virtual string RouteValues { get; set; }
public virtual string Source { get; set; }
+ public virtual bool IsManaged { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs b/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs
index f09bcac46..563516d65 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Routes.cs
@@ -10,7 +10,7 @@ namespace Orchard.Alias {
public class Routes : IRouteProvider {
private readonly ShellBlueprint _blueprint;
private readonly IAliasHolder _aliasHolder;
-
+
public Routes(ShellBlueprint blueprint, IAliasHolder aliasHolder) {
_blueprint = blueprint;
_aliasHolder = aliasHolder;
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs b/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs
index da53408b8..f39737fae 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs
+++ b/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs
@@ -13,6 +13,7 @@ namespace Orchard.Alias.ViewModels {
public AliasInfo Alias { get; set; }
public bool IsChecked { get; set; }
}
+
public class AdminIndexOptions {
public string Search { get; set; }
public AliasOrder Order { get; set; }
@@ -25,7 +26,9 @@ namespace Orchard.Alias.ViewModels {
}
public enum AliasFilter {
- All
+ All,
+ Managed,
+ Unmanaged
}
public enum AliasBulkAction {
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Add.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Add.cshtml
index da790c3ad..f94f52ae0 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Add.cshtml
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Add.cshtml
@@ -4,25 +4,25 @@
@using (Html.BeginFormAntiForgeryPost()) {
@Html.ValidationSummary()
-
-
- }
\ No newline at end of file
+
+
+}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Delete.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Delete.cshtml
index bda927365..1c61a71a5 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Delete.cshtml
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Delete.cshtml
@@ -3,11 +3,11 @@
}
@using (Html.BeginFormAntiForgeryPost()) {
-
+
}
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Edit.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Edit.cshtml
index 072569b9c..5a8afe8a1 100644
--- a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Edit.cshtml
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Edit.cshtml
@@ -4,25 +4,25 @@
@using (Html.BeginFormAntiForgeryPost()) {
@Html.ValidationSummary()
-
-
- }
+
+
+}
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml
deleted file mode 100644
index 417632e11..000000000
--- a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml
+++ /dev/null
@@ -1,92 +0,0 @@
-@model AdminIndexViewModel
-
-@using Orchard.Alias
-@using Orchard.Alias.ViewModels
-@using Orchard.Environment.Configuration
-@using Orchard.Utility.Extensions
-
-@{
- var urlPrefix = WorkContext.Resolve().RequestUrlPrefix;
-
- Layout.Title = T("Manage Aliases").Text;
- var aliasService = WorkContext.Resolve();
- AdminIndexOptions options = Model.Options;
- int index = -1;
-
- var pageSizes = new List() { 10, 50, 100 };
- var defaultPageSize = WorkContext.CurrentSite.PageSize;
- if (!pageSizes.Contains(defaultPageSize)) {
- pageSizes.Add(defaultPageSize);
- }
-}
-
-@using (Html.BeginFormAntiForgeryPost()) {
- @Html.ValidationSummary()
- @Html.ActionLink(T("Add new Alias").Text, "Add", new { returnurl = HttpContext.Current.Request.RawUrl }, new { @class = "button primaryAction" })
-
-
-
-
-}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexManaged.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexManaged.cshtml
new file mode 100644
index 000000000..6404513b8
--- /dev/null
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexManaged.cshtml
@@ -0,0 +1,74 @@
+@model AdminIndexViewModel
+
+@using Orchard.Alias
+@using Orchard.Alias.ViewModels
+@using Orchard.Environment.Configuration
+@using Orchard.Utility.Extensions
+
+@{
+ var urlPrefix = WorkContext.Resolve().RequestUrlPrefix;
+
+ Layout.Title = T("Manage Aliases").Text;
+ var aliasService = WorkContext.Resolve();
+ AdminIndexOptions options = Model.Options;
+ int index = -1;
+
+ var pageSizes = new List() { 10, 50, 100 };
+ var defaultPageSize = WorkContext.CurrentSite.PageSize;
+ if (!pageSizes.Contains(defaultPageSize)) {
+ pageSizes.Add(defaultPageSize);
+ }
+}
+
+@using (Html.BeginFormAntiForgeryPost()) {
+ @Html.ValidationSummary()
+
+
+
+}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexUnmanaged.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexUnmanaged.cshtml
new file mode 100644
index 000000000..22bb3e247
--- /dev/null
+++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/IndexUnmanaged.cshtml
@@ -0,0 +1,91 @@
+@model AdminIndexViewModel
+
+@using Orchard.Alias
+@using Orchard.Alias.ViewModels
+@using Orchard.Environment.Configuration
+@using Orchard.Utility.Extensions
+
+@{
+ var urlPrefix = WorkContext.Resolve().RequestUrlPrefix;
+
+ Layout.Title = T("Manage Aliases").Text;
+ var aliasService = WorkContext.Resolve();
+ AdminIndexOptions options = Model.Options;
+ int index = -1;
+
+ var pageSizes = new List() { 10, 50, 100 };
+ var defaultPageSize = WorkContext.CurrentSite.PageSize;
+ if (!pageSizes.Contains(defaultPageSize)) {
+ pageSizes.Add(defaultPageSize);
+ }
+}
+
+@using (Html.BeginFormAntiForgeryPost()) {
+ @Html.ValidationSummary()
+ @Html.ActionLink(T("Add new Alias").Text, "Add", new { returnurl = HttpContext.Current.Request.RawUrl }, new { @class = "button primaryAction" })
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs
index df0f07afc..dfedcf80d 100644
--- a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs
+++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs
@@ -96,7 +96,7 @@ namespace Orchard.Autoroute.Services {
public void PublishAlias(AutoroutePart part) {
var displayRouteValues = _contentManager.GetItemMetadata(part).DisplayRouteValues;
- _aliasService.Replace(part.DisplayAlias, displayRouteValues, AliasSource);
+ _aliasService.Replace(part.DisplayAlias, displayRouteValues, AliasSource, true);
_routeEvents.Routed(part, part.DisplayAlias);
}
@@ -146,7 +146,8 @@ namespace Orchard.Autoroute.Services {
if (String.Equals(culture, _cultureManager.GetSiteCulture(), StringComparison.OrdinalIgnoreCase) && !String.IsNullOrWhiteSpace(patternIndex)) {
settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = patternIndex, Culture = culture });
return settings.Patterns.Where(x => x.Culture == null).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == culture).FirstOrDefault().PatternIndex));
- } else {
+ }
+ else {
settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = "0", Culture = culture });
return new RoutePattern { Name = "Title", Description = "my-title", Pattern = "{Content.Slug}", Culture = culture };
}
diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Routing/ArchiveConstraint.CS b/src/Orchard.Web/Modules/Orchard.Blogs/Routing/ArchiveConstraint.CS
index 61ade43a1..e740de62a 100644
--- a/src/Orchard.Web/Modules/Orchard.Blogs/Routing/ArchiveConstraint.CS
+++ b/src/Orchard.Web/Modules/Orchard.Blogs/Routing/ArchiveConstraint.CS
@@ -37,18 +37,18 @@ namespace Orchard.Blogs.Routing {
return false;
}
- IDictionary routeValues;
- if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out routeValues)) {
+ AliasInfo aliasInfo;
+ if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out aliasInfo)) {
return false;
}
- var isBlog =
+ var isBlog =
//routeValues.ContainsKey("area") &&
//routeValues["area"] == "Orchard.Blogs" &&
- routeValues.ContainsKey("controller") &&
- routeValues["controller"] == "Blog" &&
- routeValues.ContainsKey("action") &&
- routeValues["action"] == "Item"
+ aliasInfo.RouteValues.ContainsKey("controller") &&
+ aliasInfo.RouteValues["controller"] == "Blog" &&
+ aliasInfo.RouteValues.ContainsKey("action") &&
+ aliasInfo.RouteValues["action"] == "Item"
;
return isBlog;
@@ -84,7 +84,7 @@ namespace Orchard.Blogs.Routing {
}
// archive for blog as homepage ?
- if(path.StartsWith("archive/", StringComparison.OrdinalIgnoreCase)) {
+ if (path.StartsWith("archive/", StringComparison.OrdinalIgnoreCase)) {
return String.Empty;
}
diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Routing/RsdConstraint.CS b/src/Orchard.Web/Modules/Orchard.Blogs/Routing/RsdConstraint.CS
index d41b9fde6..c722ec0a7 100644
--- a/src/Orchard.Web/Modules/Orchard.Blogs/Routing/RsdConstraint.CS
+++ b/src/Orchard.Web/Modules/Orchard.Blogs/Routing/RsdConstraint.CS
@@ -25,18 +25,19 @@ namespace Orchard.Blogs.Routing {
return false;
}
- IDictionary routeValues;
- if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out routeValues)) {
+ AliasInfo aliasInfo;
+ if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out aliasInfo))
+ {
return false;
}
var isBlog =
//routeValues.ContainsKey("area") &&
//routeValues["area"] == "Orchard.Blogs" &&
- routeValues.ContainsKey("controller") &&
- routeValues["controller"] == "Blog" &&
- routeValues.ContainsKey("action") &&
- routeValues["action"] == "Item"
+ aliasInfo.RouteValues.ContainsKey("controller") &&
+ aliasInfo.RouteValues["controller"] == "Blog" &&
+ aliasInfo.RouteValues.ContainsKey("action") &&
+ aliasInfo.RouteValues["action"] == "Item"
;
return isBlog;
diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Builders/RolesStep.cs b/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Builders/RolesStep.cs
index c6a0c2389..577ca085e 100644
--- a/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Builders/RolesStep.cs
+++ b/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Builders/RolesStep.cs
@@ -22,11 +22,11 @@ namespace Orchard.Roles.Recipes.Builders {
}
public override LocalizedString Description {
- get { return T("Exports the user roles."); }
+ get { return T("Exports user roles."); }
}
public override void Build(BuildContext context) {
- var roles = _roleRecordepository.Table.ToList();
+ var roles = _roleRecordepository.Table.OrderBy(x => x.Name).ToList();
if (!roles.Any())
return;
@@ -34,7 +34,7 @@ namespace Orchard.Roles.Recipes.Builders {
var root = new XElement("Roles");
context.RecipeDocument.Element("Orchard").Add(root);
- foreach (var role in roles.OrderBy(x => x.Name)) {
+ foreach (var role in roles) {
root.Add(
new XElement("Role",
new XAttribute("Name", role.Name),