From 57c9ed5d8cec2230270320ab297061826e94edef Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 28 Sep 2012 14:08:26 -0700 Subject: [PATCH] #18822: Fixing custom forms widgets on invalid entry Work Item: 18822 --HG-- branch : 1.x --- .../Orchard.CustomForms/Controllers/ItemController.cs | 10 +++++++++- .../Orchard.CustomForms/Views/Item/Create.cshtml | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs b/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs index e6c3abb45..ad94a6a3f 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Web.Mvc; using Orchard.ContentManagement; @@ -126,7 +127,14 @@ namespace Orchard.CustomForms.Controllers { _transactionManager.Cancel(); // if custom form is inside a widget, we display the form itself - if (form.ContentType == "CustomFormWidget") {} + if (form.ContentType == "CustomFormWidget") { + foreach (var error in ModelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage)) { + Services.Notifier.Error(T(error)); + } + if (returnUrl != null) { + return Redirect(returnUrl); + } + } // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. return View((object)model); diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Views/Item/Create.cshtml b/src/Orchard.Web/Modules/Orchard.CustomForms/Views/Item/Create.cshtml index f917b46bd..68fde09c2 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Views/Item/Create.cshtml +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Views/Item/Create.cshtml @@ -2,13 +2,12 @@ @{ ContentItem customForm = Model.ContentItem; string returnUrl = Model.ReturnUrl; - var titlePart = customForm.As(); // remove default Save/Publish buttons Model.Zones["Sidebar"].Items.Clear(); } -@Display(New.Parts_Title().ContentPart(titlePart).Title(titlePart.Title)) +@Display(New.Parts_Title().Title(Html.ItemDisplayText(customForm))) @using (Html.BeginFormAntiForgeryPost(returnUrl)) { @Html.ValidationSummary()