diff --git a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.MenuWidget.Edit.cshtml b/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.MenuWidget.Edit.cshtml
index 80d6afe6c..8e49145e9 100644
--- a/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.MenuWidget.Edit.cshtml
+++ b/src/Orchard.Web/Core/Navigation/Views/EditorTemplates/Parts.MenuWidget.Edit.cshtml
@@ -1,51 +1,51 @@
@model Orchard.Core.Navigation.ViewModels.MenuWidgetViewModel
+
@using Orchard.ContentManagement
-@using Orchard.Core.Navigation.Models;
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/TaxonomyElementDriver.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/TaxonomyElementDriver.cs
index 7a137ae8d..47b64dadf 100644
--- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/TaxonomyElementDriver.cs
+++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/TaxonomyElementDriver.cs
@@ -3,12 +3,14 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web.Mvc;
+using Orchard.ContentManagement;
using Orchard.DynamicForms.Elements;
using Orchard.Environment.Extensions;
using Orchard.Layouts.Framework.Display;
using Orchard.Layouts.Framework.Drivers;
using Orchard.Layouts.Helpers;
using Orchard.Layouts.Services;
+using Orchard.Taxonomies.Models;
using Orchard.Taxonomies.Services;
using Orchard.Tokens;
using DescribeContext = Orchard.Forms.Services.DescribeContext;
@@ -18,11 +20,17 @@ namespace Orchard.DynamicForms.Drivers {
public class TaxonomyElementDriver : FormsElementDriver {
private readonly ITaxonomyService _taxonomyService;
private readonly ITokenizer _tokenizer;
+ private readonly IContentManager _contentManager;
- public TaxonomyElementDriver(IFormsBasedElementServices formsServices, ITaxonomyService taxonomyService, ITokenizer tokenizer)
+ public TaxonomyElementDriver(
+ IFormsBasedElementServices formsServices,
+ ITaxonomyService taxonomyService,
+ ITokenizer tokenizer,
+ IContentManager contentManager)
: base(formsServices) {
_taxonomyService = taxonomyService;
_tokenizer = tokenizer;
+ _contentManager = contentManager;
}
protected override EditorResult OnBuildEditor(Taxonomy element, ElementEditorContext context) {
@@ -146,6 +154,24 @@ namespace Orchard.DynamicForms.Drivers {
context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
}
+ protected override void OnExporting(Taxonomy element, ExportElementContext context) {
+ var taxonomy = _contentManager.Get(element.TaxonomyId ?? 0);
+
+ if (taxonomy == null) return;
+
+ var taxonomyIdentity = _contentManager.GetItemMetadata(taxonomy)?.Identity?.ToString();
+
+ if (string.IsNullOrEmpty(taxonomyIdentity)) context.ExportableData["TaxonomyId"] = taxonomyIdentity;
+ }
+
+ protected override void OnImportCompleted(Taxonomy element, ImportElementContext context) {
+ var taxonomyIdentity = context.ExportableData.Get("TaxonomyId");
+
+ var taxonomy = string.IsNullOrEmpty(taxonomyIdentity) ? context.Session.GetItemFromSession(taxonomyIdentity) : null;
+
+ if (taxonomy != null) element.TaxonomyId = taxonomy.Id;
+ }
+
private IEnumerable GetTermOptions(Taxonomy element, string displayType, int? taxonomyId, IDictionary tokenData) {
var optionLabel = element.OptionLabel;
var runtimeValues = GetRuntimeValues(element);
diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/ValidationElementDriver.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/ValidationElementDriver.cs
deleted file mode 100644
index eb203b84e..000000000
--- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/ValidationElementDriver.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using Orchard.DynamicForms.Elements;
-//using Orchard.DynamicForms.Helpers;
-//using Orchard.DynamicForms.Services;
-//using Orchard.DynamicForms.Services.Models;
-//using Orchard.DynamicForms.ViewModels;
-//using Orchard.Forms.Services;
-//using Orchard.Layouts.Framework.Display;
-//using Orchard.Layouts.Framework.Drivers;
-//using Orchard.Layouts.Helpers;
-
-//namespace Orchard.DynamicForms.Drivers {
-// public class ValidationElementDriver : ElementDriver {
-// private readonly IValidationManager _validationManager;
-// private readonly IFormManager _formManager;
-
-// public ValidationElementDriver(IValidationManager validationManager, IFormManager formManager) {
-// _validationManager = validationManager;
-// _formManager = formManager;
-// }
-
-// protected override EditorResult OnBuildEditor(FormElement element, ElementEditorContext context) {
-// var validatorNames = element.ValidatorNames.ToArray();
-
-// var validators = new FieldValidationSettingsViewModel {
-// Validators = _validationManager.GetValidatorsByNames(validatorNames).Select(x => new FieldValidationSettingViewModel() {
-// Name = x.Name,
-// SettingsEditor = BuildSettingsEditor(context, x)
-// }).ToList()
-// };
-
-// if (context.Updater != null) {
-// var viewModel = new FieldValidationSettingsViewModel();
-// if (context.Updater.TryUpdateModel(viewModel, null, null, null)) {
-// if (viewModel.Validators != null) {
-// foreach (var validatorModel in viewModel.Validators) {
-// var validator = validators.Validators.SingleOrDefault(x => x.Name == validatorModel.Name);
-
-// if (validator == null)
-// continue;
-
-// validator.Enabled = validatorModel.Enabled;
-// validator.CustomValidationMessage = validatorModel.CustomValidationMessage;
-// }
-// }
-// validators.ShowValidationMessage = viewModel.ShowValidationMessage;
-// }
-// }
-
-// // Fetch validation descriptors.
-// foreach (var validator in validators.Validators) {
-// validator.Descriptor = _validationManager.GetValidatorByName(validator.Name);
-// }
-
-// var validatorsEditor = context.ShapeFactory.EditorTemplate(TemplateName: "Validators", Model: validators);
-// validatorsEditor.Metadata.Position = "Validation:10";
-
-// return Editor(context, validatorsEditor);
-// }
-
-// protected override void OnDisplaying(FormElement element, ElementDisplayingContext context) {
-// if (context.DisplayType == "Design" || element.Form == null)
-// return;
-
-// if (element.Form.EnableClientValidation != true) {
-// context.ElementShape.ClientValidationAttributes = new Dictionary();
-// return;
-// }
-
-// var clientAttributes = new Dictionary {
-// {"data-val", "true"}
-// };
-
-// foreach (var validatorSetting in element.ValidationSettings.Validators.Enabled()) {
-// var validatorDescriptor = _validationManager.GetValidatorByName(validatorSetting.Name);
-// var clientValidationRegistrationContext = new ClientValidationRegistrationContext(element, validatorSetting, validatorDescriptor);
-
-// validatorDescriptor.ClientAttributes(clientValidationRegistrationContext);
-// clientAttributes.Combine(clientValidationRegistrationContext.ClientAttributes);
-// }
-
-// context.ElementShape.ClientValidationAttributes = clientAttributes;
-// }
-
-// private dynamic BuildSettingsEditor(ElementEditorContext context, ValidatorDescriptor validatorDescriptor) {
-// if (String.IsNullOrWhiteSpace(validatorDescriptor.SettingsFormName))
-// return null;
-
-// return _formManager.Bind(_formManager.Build(validatorDescriptor.SettingsFormName), context.ValueProvider);
-// }
-// }
-//}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj
index d4888dc0d..83ce803b7 100644
--- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj
+++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj
@@ -273,7 +273,6 @@
-
diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Tokens/FormTokens.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Tokens/FormTokens.cs
index 9da02aa62..df2f3f50e 100644
--- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Tokens/FormTokens.cs
+++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Tokens/FormTokens.cs
@@ -10,7 +10,7 @@ namespace Orchard.DynamicForms.Tokens {
.Token("Field:*", T("Field:"), T("The posted field value to access."), "Text")
.Token("IsValid:*", T("IsValid:"), T("The posted field validation status."))
.Token("CreatedContent", T("CreatedContent"), T("Id of the Content Item created by the form."))
- ;
+ .Token("FormName", T("FormName"), T("The name of the form posted."));
}
public void Evaluate(EvaluateContext context) {
@@ -19,7 +19,8 @@ namespace Orchard.DynamicForms.Tokens {
.Chain(FilterChainParam, "Text", GetFieldValue)
.Token(token => token.StartsWith("IsValid:", StringComparison.OrdinalIgnoreCase) ? token.Substring("IsValid:".Length) : null, GetFieldValidationStatus)
.Token("CreatedContent", GetCreatedContent)
- .Chain("CreatedContent", "Content", GetCreatedContent);
+ .Chain("CreatedContent", "Content", GetCreatedContent)
+ .Token("FormName", GetFormName);
}
private static Tuple FilterChainParam(string token) {
@@ -39,9 +40,12 @@ namespace Orchard.DynamicForms.Tokens {
return context.ModelState.IsValidField(fieldName);
}
- private object GetCreatedContent(FormSubmissionTokenContext context)
- {
+ private object GetCreatedContent(FormSubmissionTokenContext context) {
return context.CreatedContent;
}
+
+ private string GetFormName(FormSubmissionTokenContext context) {
+ return context.Form.Name;
+ }
}
}
diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.Menu.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.Menu.cshtml
index 47c31b4c3..b7fc135ff 100644
--- a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.Menu.cshtml
+++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.Menu.cshtml
@@ -1,7 +1,9 @@
@model Orchard.Layouts.ViewModels.MenuEditorViewModel
+
@{
var menuOptions = Model.Menus.Select(x => new SelectListItem {Text = Html.ItemDisplayText(x).ToString(), Value = x.Id.ToString(), Selected = x.Id == Model.CurrentMenuId});
}
+