From 9ca4349218623924df297cb7b86eaf7016e34b23 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Tue, 20 Aug 2013 17:08:02 -0700 Subject: [PATCH] Fixing custom forms event --- .../Activities/FormSubmittedActivity.cs | 14 +++++++++----- .../Activities/SelectCustomForm.cs | 4 ++-- .../Controllers/ItemController.cs | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/FormSubmittedActivity.cs b/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/FormSubmittedActivity.cs index f56f785c2..d0011a848 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/FormSubmittedActivity.cs +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/FormSubmittedActivity.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Orchard.ContentManagement; using Orchard.Localization; using Orchard.Workflows.Models; using Orchard.Workflows.Services; @@ -19,22 +20,25 @@ namespace Orchard.CustomForms.Activities { public override bool CanExecute(WorkflowContext workflowContext, ActivityContext activityContext) { try { - var contentTypesState = activityContext.GetState("ContentTypes"); + var state = activityContext.GetState("CustomForms"); // "" means 'any' - if (String.IsNullOrEmpty(contentTypesState)) { + if (String.IsNullOrEmpty(state)) { return true; } - string[] contentTypes = contentTypesState.Split(','); - var content = workflowContext.Content; if (content == null) { return false; } - return contentTypes.Any(contentType => content.ContentItem.TypeDefinition.Name == contentType); + var contentManager = content.ContentItem.ContentManager; + var identities = state.Split(',').Select(x => new ContentIdentity(x)); + var customForms = identities.Select(contentManager.ResolveIdentity); + + return customForms.Any(x => x == content); + } catch { return false; diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/SelectCustomForm.cs b/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/SelectCustomForm.cs index c68af05e0..f4f8bf1de 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/SelectCustomForm.cs +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Activities/SelectCustomForm.cs @@ -26,8 +26,8 @@ namespace Orchard.CustomForms.Activities { Id: "AnyOfCustomForms", _Parts: Shape.SelectList( Id: "customforms", Name: "CustomForms", - Title: T("Content types"), - Description: T("Select some content types."), + Title: T("Custom Forms"), + Description: T("Select some custom forms."), Size: 10, Multiple: true ) diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs b/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs index 4c1b6484f..45a9c276d 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Controllers/ItemController.cs @@ -157,7 +157,7 @@ namespace Orchard.CustomForms.Controllers { () => new Dictionary { { "Content", contentItem } }); // trigger any workflow - _workflowManager.TriggerEvent(FormSubmittedActivity.EventName, contentItem, + _workflowManager.TriggerEvent(FormSubmittedActivity.EventName, customForm.ContentItem, () => new Dictionary { { "Content", contentItem } }); if (customForm.Redirect) {