diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs index 23d7f939d..edacf6f91 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs @@ -12,7 +12,6 @@ using Orchard.Layouts.Services; using Orchard.Layouts.ViewModels; using Orchard.Localization; using Orchard.UI.Admin; -using Orchard.Utility.Extensions; namespace Orchard.Layouts.Controllers { [Admin] @@ -21,7 +20,6 @@ namespace Orchard.Layouts.Controllers { private readonly IElementManager _elementManager; private readonly IShapeFactory _shapeFactory; private readonly ITransactionManager _transactionManager; - private readonly ICultureAccessor _cultureAccessor; private readonly IContentManager _contentManager; private readonly IObjectStore _objectStore; private readonly IShapeDisplay _shapeDisplay; @@ -32,7 +30,6 @@ namespace Orchard.Layouts.Controllers { IElementManager elementManager, IShapeFactory shapeFactory, ITransactionManager transactionManager, - ICultureAccessor cultureAccessor, IContentManager contentManager, IObjectStore objectStore, IShapeDisplay shapeDisplay, @@ -42,92 +39,12 @@ namespace Orchard.Layouts.Controllers { _elementManager = elementManager; _shapeFactory = shapeFactory; _transactionManager = transactionManager; - _cultureAccessor = cultureAccessor; _contentManager = contentManager; _objectStore = objectStore; _shapeDisplay = shapeDisplay; _mapper = mapper; } - [HttpPost] - public JsonResult CreateDirect(string typeName, int? contentId = null, string contentType = null) { - var describeContext = CreateDescribeContext(contentId, contentType); - var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, typeName); - var element = _elementManager.ActivateElement(descriptor); - - var dto = new { - typeName = typeName, - typeLabel = descriptor.DisplayText.Text, - typeClass = descriptor.DisplayText.Text.HtmlClassify(), - data = element.Data.Serialize(), - html = RenderElement(element, describeContext) - }; - - return Json(dto); - } - - public ViewResult Create(string id, string session, int? contentId = null, string contentType = null) { - var sessionState = new ElementSessionState { - TypeName = id, - ElementData = null, - ContentId = contentId, - ContentType = contentType - }; - - _objectStore.Set(session, sessionState); - - var describeContext = CreateDescribeContext(contentId, contentType); - var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, id); - var element = _elementManager.ActivateElement(descriptor); - var context = CreateEditorContext(session, describeContext.Content, element); - var editorResult = _elementManager.BuildEditor(context); - var viewModel = new EditElementViewModel { - SessionKey = session, - Layout = describeContext.Content.As(), - EditorResult = editorResult, - TypeName = id, - DisplayText = descriptor.DisplayText, - ElementData = element.Data.Serialize(), - Submitted = !descriptor.EnableEditorDialog, - ElementHtml = RenderElement(element, describeContext), - Tabs = editorResult.CollectTabs().ToArray() - }; - - return View(viewModel); - } - - [HttpPost] - [ValidateInput(false)] - public ViewResult Create(ElementDataViewModel model, string session) { - var sessionState = _objectStore.Get(session); - var contentId = sessionState.ContentId; - var contentType = sessionState.ContentType; - var describeContext = CreateDescribeContext(contentId, contentType); - var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, model.TypeName); - var data = Request.Form.ToDictionary(); - var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); - var context = CreateEditorContext(session, describeContext.Content, element, postedElementData: data, updater: this); - var editorResult = _elementManager.UpdateEditor(context); - var viewModel = new EditElementViewModel { - SessionKey = session, - Layout = describeContext.Content.As(), - EditorResult = editorResult, - TypeName = model.TypeName, - DisplayText = descriptor.DisplayText, - ElementData = element.Data.Serialize(), - Tabs = editorResult.CollectTabs().ToArray(), - }; - - if (!ModelState.IsValid) { - _transactionManager.Cancel(); - } - else { - viewModel.Submitted = true; - viewModel.ElementEditorModel = _mapper.ToEditorModel(element, describeContext); - } - return View(viewModel); - } - [HttpPost] [ValidateInput(false)] public RedirectToRouteResult Edit(string session, string typeName, string elementData, string elementEditorData, int? contentId = null, string contentType = null) { @@ -140,7 +57,7 @@ namespace Orchard.Layouts.Controllers { }; _objectStore.Set(session, state); - return RedirectToAction("Edit", new {session = session}); + return RedirectToAction("Edit", new {session}); } public ViewResult Edit(string session) { @@ -153,7 +70,7 @@ namespace Orchard.Layouts.Controllers { var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, typeName); var data = elementData.Combine(ElementDataHelper.Deserialize(sessionState.ElementEditorData)); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); - var context = CreateEditorContext(session, describeContext.Content, element, postedElementData: data, elementData: elementData); + var context = CreateEditorContext(session, describeContext.Content, element, elementData); var editorResult = _elementManager.BuildEditor(context); var viewModel = new EditElementViewModel { @@ -172,21 +89,23 @@ namespace Orchard.Layouts.Controllers { [HttpPost] [ValidateInput(false)] - public ViewResult Update(ElementDataViewModel model, string session) { + public ViewResult Update(string session) { var sessionState = _objectStore.Get(session); var contentId = sessionState.ContentId; var contentType = sessionState.ContentType; - var describeContext = CreateDescribeContext(contentId, contentType); - var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, model.TypeName); + var typeName = sessionState.TypeName; var elementData = ElementDataHelper.Deserialize(sessionState.ElementData); - var data = Request.Form.ToDictionary(); + var describeContext = CreateDescribeContext(contentId, contentType); + var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, typeName); + var data = elementData.Combine(ElementDataHelper.Deserialize(sessionState.ElementEditorData)); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); - var context = CreateEditorContext(session, describeContext.Content, element, postedElementData: data, elementData: elementData, updater: this); + var context = CreateEditorContext(session, describeContext.Content, element, elementData, this); var editorResult = _elementManager.UpdateEditor(context); + var viewModel = new EditElementViewModel { Layout = describeContext.Content.As(), EditorResult = editorResult, - TypeName = model.TypeName, + TypeName = typeName, DisplayText = descriptor.DisplayText, ElementData = element.Data.Serialize(), Tabs = editorResult.CollectTabs().ToArray(), @@ -214,22 +133,17 @@ namespace Orchard.Layouts.Controllers { IContent content, Element element, ElementDataDictionary elementData = null, - ElementDataDictionary postedElementData = null, IUpdateModel updater = null) { - postedElementData = postedElementData ?? new ElementDataDictionary(); - var valueProviderCollection = (ValueProviderCollection) ValueProvider; - valueProviderCollection.Add(postedElementData.ToValueProvider(_cultureAccessor.CurrentCulture)); var context = new ElementEditorContext { Session = session, Content = content, Element = element, Updater = updater, ElementData = elementData ?? new ElementDataDictionary(), - ValueProvider = valueProviderCollection, + ValueProvider = ValueProvider, ShapeFactory = _shapeFactory }; - ValueProvider = context.ValueProvider; return context; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js index 2bfab9854..b4a68a445 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js @@ -12,10 +12,6 @@ displayType: self.element.data("display-type"), endpoints: { edit: self.element.data("edit-url"), - add: self.element.data("add-url"), - addDirect: self.element.data("add-direct-url"), - settings: self.element.data("settings-url"), - browse: self.element.data("element-browser-url"), applyTemplate: self.element.data("apply-template-url") }, domOperations: { diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml index e960a03b3..728150bc7 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml @@ -56,10 +56,8 @@
m.TypeName) - @Html.HiddenFor(m => m.ElementData) foreach (var tab in Model.Tabs) { var id = String.Format("element-{0}", tab.ToLowerInvariant());