diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj index ae0d9df84..4210fb3de 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj @@ -117,13 +117,13 @@ - + - + diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs index 750c10a2b..07fe403c4 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Shapes.cs @@ -4,33 +4,25 @@ using Orchard.Widgets.Models; namespace Orchard.Widgets { public class Shapes : IShapeTableProvider { - private readonly IOrchardServices _orchardServices; - - public Shapes(IOrchardServices orchardServices) { - _orchardServices = orchardServices; - } - public void Discover(ShapeTableBuilder builder) { builder.Describe("Items_Widget") .Configure(descriptor => { // todo: have "alternates" for chrome - if (_orchardServices.Authorizer.Authorize(Permissions.ManageWidgets)) - descriptor.Wrappers.Add("Widget_Manage"); - else - descriptor.Wrappers.Add("Widget"); + descriptor.Wrappers.Add("Widget_Wrapper"); + descriptor.Wrappers.Add("Widget_ControlWrapper"); }) .OnCreated(created => { var widget = created.Shape; widget.Main.Add(created.New.PlaceChildContent(Source: widget)); }) .OnDisplaying(displaying => { - ContentItem contentItem = displaying.Shape.ContentItem; + var widget = displaying.Shape; + widget.Classes.Add("widget"); + ContentItem contentItem = widget.ContentItem; if (contentItem != null) { var zoneName = contentItem.As().Zone; displaying.ShapeMetadata.Alternates.Add("Items_Widget__" + contentItem.ContentType); displaying.ShapeMetadata.Alternates.Add("Items_Widget__" + zoneName); - //...would like...if '__' was collapsible - //displaying.ShapeMetadata.Alternates.Add("Items_Widget__" + zoneName + "__" + contentItem.ContentType); } }); } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml new file mode 100644 index 000000000..ed761ea4e --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml @@ -0,0 +1,14 @@ +@using Orchard.ContentManagement; +@using Orchard.Widgets; +@{ + if (AuthorizedFor(Permissions.ManageWidgets)) { + Model.Classes.Add("widget-manage"); + } + var tag = Tag(Model, "div"); +} +@tag.StartElement + @if (AuthorizedFor(Permissions.ManageWidgets)) { +
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, (ContentItem)Model.ContentItem)
+ } + @Display(Model.Main) +@tag.EndElement \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Manage.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Manage.cshtml deleted file mode 100644 index 60d620f0d..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Manage.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@using Orchard.ContentManagement; -
-
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, (ContentItem)Model.ContentItem)
-@Display(Model.Main) -
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Wrapper.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Wrapper.cshtml new file mode 100644 index 000000000..ed761ea4e --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.Wrapper.cshtml @@ -0,0 +1,14 @@ +@using Orchard.ContentManagement; +@using Orchard.Widgets; +@{ + if (AuthorizedFor(Permissions.ManageWidgets)) { + Model.Classes.Add("widget-manage"); + } + var tag = Tag(Model, "div"); +} +@tag.StartElement + @if (AuthorizedFor(Permissions.ManageWidgets)) { +
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, (ContentItem)Model.ContentItem)
+ } + @Display(Model.Main) +@tag.EndElement \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.cshtml deleted file mode 100644 index d2b414465..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.cshtml +++ /dev/null @@ -1 +0,0 @@ -@Display(Model.Main) \ No newline at end of file