diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Controllers/TagsController.cs b/src/Orchard.Web/Packages/Orchard.Tags/Controllers/TagsController.cs index c7604ae9c..cc0358811 100644 --- a/src/Orchard.Web/Packages/Orchard.Tags/Controllers/TagsController.cs +++ b/src/Orchard.Web/Packages/Orchard.Tags/Controllers/TagsController.cs @@ -4,13 +4,16 @@ using System.Linq; using System.Web.Mvc; using Orchard.Localization; using Orchard.Logging; +using Orchard.Models; using Orchard.Settings; +using Orchard.Tags.Models; using Orchard.Tags.Services; using Orchard.Tags.ViewModels; using Orchard.UI.Notify; using Orchard.Security; namespace Orchard.Tags.Controllers { + //TODO: might as well make this the home controller... [ValidateInput(false)] public class TagsController : Controller { private readonly ITagService _tagService; @@ -78,8 +81,21 @@ namespace Orchard.Tags.Controllers { } } - public ActionResult TagName(int tagId) { - return RedirectToAction("Index"); + public ActionResult Search(string tagName) { + try { + Tag tag = _tagService.GetTagByName(tagName); + IEnumerable contents = _tagService.GetTaggedContentItems(tag.Id).ToList(); + var viewModel = new TagsSearchViewModel { + TagName = tag.TagName, + Contents = contents, + }; + return View(viewModel); + + } + catch (Exception exception) { + _notifier.Error(T("Retrieving tagged items failed: " + exception.Message)); + return Index(); + } } } } diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj index b58536ae5..e05ed9afe 100644 --- a/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj +++ b/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj @@ -74,6 +74,7 @@ + @@ -85,6 +86,7 @@ + diff --git a/src/Orchard.Web/Packages/Orchard.Tags/ViewModels/TagsSearchViewModel.cs b/src/Orchard.Web/Packages/Orchard.Tags/ViewModels/TagsSearchViewModel.cs new file mode 100644 index 000000000..9683f534b --- /dev/null +++ b/src/Orchard.Web/Packages/Orchard.Tags/ViewModels/TagsSearchViewModel.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using Orchard.Models; +using Orchard.Mvc.ViewModels; + +namespace Orchard.Tags.ViewModels { + public class TagsSearchViewModel : BaseViewModel { + public string TagName { get; set; } + public IEnumerable Contents { get; set; } + } +} diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Index.aspx b/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Index.aspx index 457752a8c..375dd6176 100644 --- a/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Index.aspx +++ b/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Index.aspx @@ -6,7 +6,7 @@

Tags

<%=Html.ValidationSummary() %> <% foreach (var tag in Model.Tags) { %> - <%=Html.ActionLink(tag.TagName, "Search", new {tagId = tag.Id}, new {@class="floatRight topSpacer"}) %> + <%=Html.ActionLink(tag.TagName, "Search", new {tagName = tag.TagName}, new {@class="floatRight topSpacer"}) %>   <% } %> diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Search.aspx b/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Search.aspx new file mode 100644 index 000000000..b142d7e14 --- /dev/null +++ b/src/Orchard.Web/Packages/Orchard.Tags/Views/Tags/Search.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> +<%@ Import Namespace="Orchard.Models"%> +<%@ Import Namespace="Orchard.Tags.ViewModels"%> +<%@ Import Namespace="Orchard.Mvc.Html"%> +<% Html.Include("Header"); %> + <% Html.BeginForm(); %> +
+

List of contents tagged with <%= Model.TagName %>

+ <%=Html.ValidationSummary() %> + <% foreach (var contentItem in Model.Contents) { %> + <%=Html.ItemDisplayLink(contentItem)%> +   + <% } %> +
+ <% Html.EndForm(); %> +<% Html.Include("Footer"); %> \ No newline at end of file