From 6010a9b915a67f0be6b69ffdd842ab74f08f5c75 Mon Sep 17 00:00:00 2001
From: loudej
Date: Sat, 21 Nov 2009 02:42:45 +0000
Subject: [PATCH] Commenting a catch-all route... Refining the item links...
--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4041614
---
.../Packages/Orchard.Blogs/Routes.cs | 32 ++++++++--------
.../Views/Content/Details.aspx | 2 +-
src/Orchard/Models/ContentItem.cs | 1 +
src/Orchard/Mvc/Html/ContentItemExtensions.cs | 38 ++++++++++++++-----
4 files changed, 46 insertions(+), 27 deletions(-)
diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Routes.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Routes.cs
index 9ce5fe203..cede41188 100644
--- a/src/Orchard.Web/Packages/Orchard.Blogs/Routes.cs
+++ b/src/Orchard.Web/Packages/Orchard.Blogs/Routes.cs
@@ -27,22 +27,22 @@ namespace Orchard.Blogs {
},
new MvcRouteHandler())
},
- new RouteDescriptor {
- Route = new Route(
- "{blogSlug}",
- new RouteValueDictionary {
- {"area", "Orchard.Blogs"},
- {"controller", "Blog"},
- {"action", "Item"}
- },
- new RouteValueDictionary()/* {
- {"blogSlug", new IsBlogConstraint()}
- }*/,
- new RouteValueDictionary {
- {"area", "Orchard.Blogs"}
- },
- new MvcRouteHandler())
- }
+ //new RouteDescriptor {
+ // Route = new Route(
+ // "{blogSlug}",
+ // new RouteValueDictionary {
+ // {"area", "Orchard.Blogs"},
+ // {"controller", "Blog"},
+ // {"action", "Item"}
+ // },
+ // new RouteValueDictionary()/* {
+ // {"blogSlug", new IsBlogConstraint()}
+ // }*/,
+ // new RouteValueDictionary {
+ // {"area", "Orchard.Blogs"}
+ // },
+ // new MvcRouteHandler())
+ // }
};
}
}
diff --git a/src/Orchard.Web/Packages/Orchard.DevTools/Views/Content/Details.aspx b/src/Orchard.Web/Packages/Orchard.DevTools/Views/Content/Details.aspx
index e0aa3d51f..785a69bc5 100644
--- a/src/Orchard.Web/Packages/Orchard.DevTools/Views/Content/Details.aspx
+++ b/src/Orchard.Web/Packages/Orchard.DevTools/Views/Content/Details.aspx
@@ -27,7 +27,7 @@
<%=Model.Item.Id %>
ContentType:
- <%=Model.Item.ContentType%>
+ <%=Model.Item.ContentType%> <%=Html.ItemDisplayLink(Model.Item) %> <%=Html.ItemEditLink("edit", Model.Item) %>
Content Item Parts
diff --git a/src/Orchard/Models/ContentItem.cs b/src/Orchard/Models/ContentItem.cs
index 99524fccd..7f417fadf 100644
--- a/src/Orchard/Models/ContentItem.cs
+++ b/src/Orchard/Models/ContentItem.cs
@@ -9,6 +9,7 @@ namespace Orchard.Models {
_parts = new List();
}
+
private readonly IList _parts;
public int Id { get; set; }
diff --git a/src/Orchard/Mvc/Html/ContentItemExtensions.cs b/src/Orchard/Mvc/Html/ContentItemExtensions.cs
index b46cdba6f..bed5a7237 100644
--- a/src/Orchard/Mvc/Html/ContentItemExtensions.cs
+++ b/src/Orchard/Mvc/Html/ContentItemExtensions.cs
@@ -6,27 +6,45 @@ using Orchard.Models;
namespace Orchard.Mvc.Html {
public static class ContentItemExtensions {
public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, string linkText, IContentItemPart item) {
- var display = item.As();
- var values = display.DisplayRouteValues();
- return html.ActionLink(linkText, Convert.ToString(values["action"]), values);
+ return ItemDisplayLink(html, linkText, item.ContentItem);
}
public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, IContentItemPart item) {
- var display = item.As();
- var values = display.DisplayRouteValues();
- return html.ActionLink(display.DisplayText, Convert.ToString(values["action"]), values);
+ return ItemDisplayLink(html, item.ContentItem);
}
public static MvcHtmlString ItemEditLink(this HtmlHelper html, string linkText, IContentItemPart item) {
- var display = item.As();
- var values = display.DisplayRouteValues();
- return html.ActionLink(linkText, Convert.ToString(values["action"]), values);
+ return ItemEditLink(html, linkText, item.ContentItem);
}
public static MvcHtmlString ItemEditLink(this HtmlHelper html, IContentItemPart item) {
+ return ItemEditLink(html, item.ContentItem);
+ }
+
+ public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, string linkText, ContentItem item) {
var display = item.As();
+ if (display == null)
+ return null;
+
var values = display.DisplayRouteValues();
- return html.ActionLink(display.DisplayText, Convert.ToString(values["action"]), values);
+ return html.ActionLink(linkText ?? display.DisplayText, Convert.ToString(values["action"]), values);
+ }
+
+ public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, ContentItem item) {
+ return ItemDisplayLink(html, null, item);
+ }
+
+ public static MvcHtmlString ItemEditLink(this HtmlHelper html, string linkText, ContentItem item) {
+ var display = item.As();
+ if (display == null)
+ return null;
+
+ var values = display.EditRouteValues();
+ return html.ActionLink(linkText ?? display.DisplayText, Convert.ToString(values["action"]), values);
+ }
+
+ public static MvcHtmlString ItemEditLink(this HtmlHelper html, ContentItem item) {
+ return ItemEditLink(html, null, item);
}
}
}