diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Handlers/AutoroutePartHandler.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Handlers/AutoroutePartHandler.cs index f2486e0d5..7aef62750 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Handlers/AutoroutePartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Handlers/AutoroutePartHandler.cs @@ -73,7 +73,7 @@ namespace Orchard.Autoroute.Handlers { } // Update the home alias to point to this item being published. - _homeAliasService.SetHomeAlias(part); + _homeAliasService.PublishHomeAlias(part); } _autorouteService.Value.PublishAlias(part); diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs index 8f60639fe..20a24a5e1 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/AutorouteService.cs @@ -113,23 +113,6 @@ namespace Orchard.Autoroute.Services { } public void RemoveAliases(AutoroutePart part) { - //// https://github.com/OrchardCMS/Orchard/issues/5137 - //// If the alias of the specified part is empty while not being the homepage, - //// we need to make sure we are not removing all empty aliases in order to prevent losing the homepage content item being the homepage. - //if (String.IsNullOrWhiteSpace(part.Path)) { - // if (!IsHomePage(part)) { - // // The item being removed is NOT the homepage, so we need to make sure we're not removing the alias for the homepage. - // var aliasRecordId = GetHomePageAliasRecordId(); - - // // Remove all aliases EXCEPT for the alias of the homepage. - // _aliasStorage.Remove(x => x.Path == part.Path && x.Source == AliasSource && x.Id != aliasRecordId); - - // // Done. - // return; - // } - //} - - //// Safe to delete all aliases for the specified part since it is definitely not the homepage. _aliasService.Delete(part.Path, AliasSource); } diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/HomeAliasService.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/HomeAliasService.cs index 3709cdd9c..21a2f51c9 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/HomeAliasService.cs +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/HomeAliasService.cs @@ -37,16 +37,18 @@ namespace Orchard.Autoroute.Services { return homePage; } - public void SetHomeAlias(IContent content) { + public void PublishHomeAlias(IContent content) { var routeValues = _contentManager.GetItemMetadata(content).DisplayRouteValues; - SetHomeAlias(routeValues); + PublishHomeAlias(routeValues); } - public void SetHomeAlias(string route) { + public void PublishHomeAlias(string route) { + _aliasService.DeleteBySource(AliasSource); _aliasService.Set(HomeAlias, route, AliasSource); } - public void SetHomeAlias(RouteValueDictionary route) { + public void PublishHomeAlias(RouteValueDictionary route) { + _aliasService.DeleteBySource(AliasSource); _aliasService.Set(HomeAlias, route, AliasSource); } } diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/IHomeAliasService.cs b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/IHomeAliasService.cs index 910531dc4..d617b1dce 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Services/IHomeAliasService.cs +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Services/IHomeAliasService.cs @@ -7,8 +7,8 @@ namespace Orchard.Autoroute.Services { RouteValueDictionary GetHomeRoute(); int? GetHomePageId(); IContent GetHomePage(VersionOptions version = null); - void SetHomeAlias(IContent content); - void SetHomeAlias(string route); - void SetHomeAlias(RouteValueDictionary route); + void PublishHomeAlias(IContent content); + void PublishHomeAlias(string route); + void PublishHomeAlias(RouteValueDictionary route); } }