From 0f89931ddda1cc7e8f1eef85859de58665d4b79b Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Tue, 19 Oct 2010 16:26:22 -0700 Subject: [PATCH] Position and layer editing fields. --HG-- branch : dev --- .../Orchard.Widgets/Controllers/AdminController.cs | 7 ++++--- .../Orchard.Widgets/Drivers/WidgetPartDriver.cs | 4 +++- .../Modules/Orchard.Widgets/Models/WidgetPart.cs | 13 +++++++++++++ .../EditorTemplates/Parts/Widgets.WidgetPart.cshtml | 10 ++++++++++ 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs index bc382e3d2..5c9750a0d 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Controllers/AdminController.cs @@ -111,6 +111,7 @@ namespace Orchard.Widgets.Controllers { if (widgetPart == null) return HttpNotFound(); + widgetPart.LayerPart = _widgetsService.GetLayer(layerId); dynamic model = Services.ContentManager.BuildEditor(widgetPart); return View(model); } @@ -126,8 +127,7 @@ namespace Orchard.Widgets.Controllers { return new HttpUnauthorizedResult(); try { - int widgetPosition = _widgetsService.GetWidgets(layerId).Count() + 1; - WidgetPart widgetPart = _widgetsService.CreateWidget(layerId, widgetType, "", widgetPosition.ToString(), ""); + WidgetPart widgetPart = _widgetsService.CreateWidget(layerId, widgetType, "", "", ""); if (widgetPart == null) return HttpNotFound(); @@ -284,7 +284,7 @@ namespace Orchard.Widgets.Controllers { [HttpPost, ActionName("EditWidget")] [FormValueRequired("submit.Save")] - public ActionResult EditWidgetSavePOST(int id) { + public ActionResult EditWidgetSavePOST(int id, int layerId) { if (!Services.Authorizer.Authorize(Permissions.ManageWidgets, T(NotAuthorizedManageWidgetsLabel))) return new HttpUnauthorizedResult(); @@ -294,6 +294,7 @@ namespace Orchard.Widgets.Controllers { if (widgetPart == null) return HttpNotFound(); + widgetPart.LayerPart = _widgetsService.GetLayer(layerId); var model = Services.ContentManager.UpdateEditor(widgetPart, this); if (!ModelState.IsValid) { Services.TransactionManager.Cancel(); diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs index 48ff5d6ad..3559a1a8c 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/WidgetPartDriver.cs @@ -1,4 +1,5 @@ -using JetBrains.Annotations; +using System.Web.Mvc; +using JetBrains.Annotations; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.Widgets.Models; @@ -16,6 +17,7 @@ namespace Orchard.Widgets.Drivers { protected override DriverResult Editor(WidgetPart widgetPart, dynamic shapeHelper) { widgetPart.AvailableZones = _widgetsService.GetZones(); + widgetPart.AvailableLayers = _widgetsService.GetLayers(); return ContentShape("Parts_Widgets_WidgetPart", () => shapeHelper.EditorTemplate(TemplateName: "Parts/Widgets.WidgetPart", Model: widgetPart)); diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs index 96f224fe6..1bd50c566 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs @@ -43,10 +43,23 @@ namespace Orchard.Widgets.Models { set { this.As().Container = value; } } + /// + /// The layerPart identifier. + /// + public int LayerId { + get { return this.As().Container.As().Id; } + } + /// /// The available page zones. /// [HiddenInput(DisplayValue = false)] public IEnumerable AvailableZones { get; set; } + + /// + /// The available layers. + /// + [HiddenInput(DisplayValue = false)] + public IEnumerable AvailableLayers { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts/Widgets.WidgetPart.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts/Widgets.WidgetPart.cshtml index c419a0e5e..a1fc3f1c7 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts/Widgets.WidgetPart.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts/Widgets.WidgetPart.cshtml @@ -5,7 +5,17 @@ @Html.DropDownListFor(widget => widget.Zone, new SelectList(Model.AvailableZones)) +
+ @Html.LabelFor(widget => widget.LayerId, T("Layer")) + @Html.DropDownListFor(widget => widget.LayerId, new SelectList(Model.AvailableLayers, "Id", "Name")) +
+
@Html.LabelFor(widget => widget.Title, T("Title")) @Html.TextBoxFor(widget => widget.Title) +
+ +
+ @Html.LabelFor(widget => widget.Position, T("Position")) + @Html.TextBoxFor(widget => widget.Position)
\ No newline at end of file