diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Alias/Controllers/AdminController.cs index 6303e4bfc..93ab2feb5 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Alias/Controllers/AdminController.cs @@ -45,13 +45,7 @@ namespace Orchard.Alias.Controllers { if (options == null) options = new AdminIndexOptions(); - switch (options.Filter) { - case AliasFilter.All: - break; - default: - throw new ArgumentOutOfRangeException(); - } - + var aliases = _aliasHolder.GetMaps().SelectMany(x => x.GetAliases()); if (!String.IsNullOrWhiteSpace(options.Search)) { @@ -61,6 +55,19 @@ namespace Orchard.Alias.Controllers { aliases = aliases.ToList(); + switch (options.Filter) + { + case AliasFilter.Managed: + aliases = aliases.Where(x => x.IsManaged); + break; + case AliasFilter.Custom: + aliases = aliases.Where(x => !x.IsManaged); + break; + case AliasFilter.All: + break; + default: + throw new ArgumentOutOfRangeException(); + } var pagerShape = Services.New.Pager(pager).TotalItemCount(aliases.Count()); switch (options.Order) { @@ -76,7 +83,7 @@ namespace Orchard.Alias.Controllers { var model = new AdminIndexViewModel { Options = options, Pager = pagerShape, - AliasEntries = aliases.Select(x => new AliasEntry() { Alias = x, IsChecked = false }).ToList() + AliasEntries = aliases.Select(x => new AliasEntry() { Alias = x, IsChecked = false }).OrderBy(x => x.Alias.IsManaged).ToList() }; return View(model); @@ -104,8 +111,7 @@ namespace Orchard.Alias.Controllers { break; default: throw new ArgumentOutOfRangeException(); - } - + } return RedirectToAction("Index"); } diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Implementation/Storage/AliasStorage.cs b/src/Orchard.Web/Modules/Orchard.Alias/Implementation/Storage/AliasStorage.cs index 12858d45d..7569adb38 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Implementation/Storage/AliasStorage.cs +++ b/src/Orchard.Web/Modules/Orchard.Alias/Implementation/Storage/AliasStorage.cs @@ -91,7 +91,7 @@ namespace Orchard.Alias.Implementation.Storage { } public void Remove(string path) { - Remove(x => x.Path == path && x.Source == path); + Remove(x => x.Path == path); } public void Remove(string path, string aliasSource) { diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Recipes/Executors/AliasStep.cs b/src/Orchard.Web/Modules/Orchard.Alias/Recipes/Executors/AliasStep.cs index f6d73d18c..068a95ee4 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Recipes/Executors/AliasStep.cs +++ b/src/Orchard.Web/Modules/Orchard.Alias/Recipes/Executors/AliasStep.cs @@ -21,8 +21,7 @@ namespace Orchard.Alias.Recipes.Executors { get { return "Aliases"; } } - public override void Execute(RecipeExecutionContext context) { - //var installedPermissions = _roleService.GetInstalledPermissions().SelectMany(p => p.Value).ToList(); + public override void Execute(RecipeExecutionContext context) { foreach (var aliasElement in context.RecipeStep.Step.Elements()) { var aliasPath = aliasElement.Attribute("Path").Value; @@ -41,40 +40,16 @@ namespace Orchard.Alias.Recipes.Executors { rvd.Add(routeValue.Attribute("Key").Value, routeValue.Attribute("Value").Value); } } - - //_aliasService.Set(aliasPath, rvd, "Custom",false); - + try { - _aliasService.Set(aliasPath, rvd, "Custom", false); - //var role = _roleService.GetRoleByName(roleName); - //if (role == null) { - // _roleService.CreateRole(roleName); - // role = _roleService.GetRoleByName(roleName); + _aliasService.Set(aliasPath, rvd, "Custom", false); } - - // var permissions = roleElement.Attribute("Permissions").Value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - // // Only import permissions for currenlty installed modules. - // var permissionsValid = permissions.Where(permission => installedPermissions.Any(x => x.Name == permission)).ToList(); - - // // Union to keep existing permissions. - // _roleService.UpdateRole(role.Id, role.Name, permissionsValid.Union(role.RolesPermissions.Select(p => p.Permission.Name))); - //} + catch (Exception ex) { Logger.Error(ex, "Error while processing alias '{0}'.", aliasPath); throw; } - - ////remove all local pathys that are not present in the remote export - //var allRemotePaths = recipeContext.RecipeStep.Step.XPathSelectElements("Paths/Add").Select(e => e.Attribute("Path").Value); - //var allLocalPaths = _aliasService.List().Select(t => t.Item1).ToList(); - - //foreach (var path in allLocalPaths.Where(p => !allRemotePaths.Contains(p))) - //{ - // _aliasService.Delete(path); - //} - - - //recipeContext.Executed = true; + } } diff --git a/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs b/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs index d7debdf9d..e0670dee3 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Alias/ViewModels/AdminIndexViewModel.cs @@ -11,8 +11,7 @@ namespace Orchard.Alias.ViewModels { public class AliasEntry { public AliasInfo Alias { get; set; } - public bool IsChecked { get; set; } - public bool IsManaged { get; set; } + public bool IsChecked { get; set; } } public class AdminIndexOptions { public string Search { get; set; } @@ -26,7 +25,9 @@ namespace Orchard.Alias.ViewModels { } public enum AliasFilter { - All + All, + Managed, + Custom } public enum AliasBulkAction { diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml index 417632e11..c112c1b97 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Alias/Views/Admin/Index.cshtml @@ -36,6 +36,12 @@ + + @@ -54,6 +60,7 @@ @T("Alias") @T("Route") + @T("IsManaged")   @@ -79,9 +86,14 @@ @Html.Link(url, Href("~/" + urlPrefix + "/" + url)) - @Html.ActionLink(T("Edit").Text, "Edit", new { path = alias.Path == String.Empty ? "/" : alias.Path }) - | - @Html.ActionLink(T("Delete").Text, "Delete", new { path = alias.Path }, new { itemprop = "UnsafeUrl RemoveUrl" }) + + + + @if (!alias.IsManaged) { + @Html.ActionLink(T("Edit").Text, "Edit", new { path = alias.Path == String.Empty ? "/" : alias.Path }) + | + @Html.ActionLink(T("Delete").Text, "Delete", new { path = alias.Path }, new { itemprop = "UnsafeUrl RemoveUrl" }) + } }