Files
Orchard/src/Orchard.Web/Modules/Orchard.Widgets/Handlers/WidgetPartHandler.cs
Nathan Heskew a70c5ad4ea Adding ContentItemMetadata route values for widgets, blogs and blog posts
- also removing the default (Core.Contents specific) metadata from Orchard.ContentManagement.ContentItemMetadata

work items: 16683, 16791

--HG--
branch : dev
2010-11-22 21:45:33 -08:00

42 lines
1.6 KiB
C#

using System.Web.Routing;
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Handlers;
using Orchard.Data;
using Orchard.Widgets.Models;
namespace Orchard.Widgets.Handlers {
[UsedImplicitly]
public class WidgetPartHandler : ContentHandler {
public WidgetPartHandler(IRepository<WidgetPartRecord> widgetsRepository) {
Filters.Add(StorageFilter.For(widgetsRepository));
}
protected override void GetItemMetadata(GetContentItemMetadataContext context) {
var widget = context.ContentItem.As<WidgetPart>();
if (widget == null)
return;
// create needs to go through the add widget flow (index -> [select layer -> ] add [widget type] to layer)
context.Metadata.CreateRouteValues = new RouteValueDictionary {
{"Area", "Orchard.Widgets"},
{"Controller", "Admin"},
{"Action", "Index"}
};
context.Metadata.EditorRouteValues = new RouteValueDictionary {
{"Area", "Orchard.Widgets"},
{"Controller", "Admin"},
{"Action", "EditWidget"},
{"Id", context.ContentItem.Id}
};
// remove goes through edit widget...
context.Metadata.RemoveRouteValues = new RouteValueDictionary {
{"Area", "Orchard.Widgets"},
{"Controller", "Admin"},
{"Action", "EditWidget"},
{"Id", context.ContentItem.Id}
};
}
}
}