protected override EditorResult OnBuildEditor(Elements.ImageResizer element, ElementEditorContext context) { var viewModel = new ImageResizerEditorViewModel(); var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.ImageResizer", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.MediaId = ParseImageId(viewModel.ImageId); element.Width = viewModel.Width; element.Height = viewModel.Height; element.Etc = viewModel.Etc; element.Responsive = viewModel.Responsive; } var imageId = element.MediaId; if (imageId == null) { viewModel.CurrentImage = default(ImagePart); viewModel.Responsive = true; } else { viewModel.CurrentImage = GetImage(imageId.Value); } viewModel.Width = element.Width; viewModel.Height = element.Height; viewModel.Etc = element.Etc; viewModel.Responsive = element.Responsive; return(Editor(context, editor)); }
private void UpdateEditor(ElementEditorContext context) { var contentTypeName = (string)context.Element.Descriptor.StateBag["ContentTypeName"]; var element = (PlaceableContentItem)context.Element; var elementViewModel = new PlaceableContentItemViewModel { ContentItemId = element.ContentItemId }; if (context.Updater != null) { context.Updater.TryUpdateModel(elementViewModel, context.Prefix, null, null); } var contentItemId = elementViewModel.ContentItemId; var contentItem = contentItemId != null ? _contentManager.Value.Get(contentItemId.Value, VersionOptions.Latest) : _contentManager.Value.New(contentTypeName); dynamic contentEditorShape; if (context.Updater != null) { if (contentItem.Id == 0) { _contentManager.Value.Create(contentItem, VersionOptions.Draft); } else { var isDraftable = contentItem.TypeDefinition.Settings.GetModel <ContentTypeSettings>().Draftable; var versionOptions = isDraftable ? VersionOptions.DraftRequired : VersionOptions.Latest; contentItem = _contentManager.Value.Get(contentItem.Id, versionOptions); } element.ContentItemId = contentItem.Id; // If the placed content item has the CommonPart attached, set its Container property to the Content (if any). // This helps preventing widget types from appearing as orphans. var commonPart = contentItem.As <ICommonPart>(); if (commonPart != null) { commonPart.Container = context.Content; } contentItem.IsPlaceableContent(true); contentEditorShape = _contentManager.Value.UpdateEditor(contentItem, context.Updater); _contentManager.Value.Publish(contentItem); } else { contentEditorShape = _contentManager.Value.BuildEditor(contentItem); } var elementEditorShape = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.PlaceableContentItem", Model: elementViewModel, Prefix: context.Prefix); elementEditorShape.Metadata.Position = "Properties:0"; contentEditorShape.Metadata.Position = "Properties:0"; context.EditorResult.Add(elementEditorShape); context.EditorResult.Add(contentEditorShape); }
protected override EditorResult OnBuildEditor(FormElement element, ElementEditorContext context) { var contentType = element.FormBindingContentType; var contentTypeDefinition = !String.IsNullOrWhiteSpace(contentType) ? _contentDefinitionManager.GetTypeDefinition(contentType) : default(ContentTypeDefinition); if (contentTypeDefinition == null) { return(null); } var viewModel = element.Data.GetModel <FormBindingSettings>() ?? new FormBindingSettings(); viewModel.AvailableBindings = _bindingManager.DescribeBindingsFor(contentTypeDefinition).ToArray(); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, null, null, new[] { "AvailableBindings" }); viewModel.Store(element.Data); } var bindingsEditor = context.ShapeFactory.EditorTemplate(TemplateName: "FormBindings", Model: viewModel); bindingsEditor.Metadata.Position = "Bindings:20"; return(Editor(context, bindingsEditor)); }
protected override EditorResult OnBuildEditor(Elements.SmartGrid element, ElementEditorContext context) { var viewModel = new SmartGridViewModel { BackgroundImageId = element.BackgroundImageId != null?element.BackgroundImageId.ToString() : null, BackgroundSize = element.BackgroundSize, CustomClass = element.CustomClass }; // If an Updater is specified, // it means the element editor form is being submitted // and we need to read and store the submitted data. if (context.Updater != null) { if (context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null)) { element.BackgroundImageId = Orchard.Layouts.Elements.ContentItem.Deserialize(viewModel.BackgroundImageId).FirstOrDefault(); element.BackgroundSize = viewModel.BackgroundSize != null?viewModel.BackgroundSize.Trim() : null; element.CustomClass = viewModel.CustomClass != null?viewModel.CustomClass.Trim() : null; } } viewModel.BackgroundImage = GetBackgroundImage(element, VersionOptions.Latest); var editorTemplate = context.ShapeFactory.EditorTemplate( TemplateName: "Elements/SmartGrid", Model: viewModel, Prefix: context.Prefix); return(Editor(context, editorTemplate)); }
protected override EditorResult OnBuildEditor(PasswordField element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel", "Properties:1"); var passwordFieldValidation = BuildForm(context, "PasswordFieldValidation", "Validation:10"); return(Editor(context, autoLabelEditor, passwordFieldValidation)); }
protected override EditorResult OnBuildEditor(Breadcrumbs element, ElementEditorContext context) { var viewModel = new BreadcrumbsEditorViewModel { CurrentMenuId = element.MenuContentItemId, StartLevel = element.StartLevel, StopLevel = element.Levels, AddCurrentPage = element.AddCurrentPage, AddHomePage = element.AddHomePage, Menus = _menuService.GetMenus(), }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Breadcrumbs", Model: viewModel); if (context.Updater != null) { if (context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null)) { element.StartLevel = viewModel.StartLevel; element.Levels = viewModel.StopLevel; element.AddCurrentPage = viewModel.AddCurrentPage; element.AddHomePage = viewModel.AddHomePage; element.MenuContentItemId = viewModel.CurrentMenuId; } } return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(CheckBox element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel"); var checkBoxEditor = BuildForm(context, "CheckBox"); var checkBoxValidation = BuildForm(context, "CheckBoxValidation", "Validation:10"); return(Editor(context, autoLabelEditor, checkBoxEditor, checkBoxValidation)); }
protected override EditorResult OnBuildEditor(Taxonomy element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel"); var enumerationEditor = BuildForm(context, "TaxonomyForm"); var checkBoxValidation = BuildForm(context, "TaxonomyValidation", "Validation:10"); return(Editor(context, autoLabelEditor, enumerationEditor, checkBoxValidation)); }
protected override EditorResult OnBuildEditor(Query element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel", "Properties:1"); var enumerationEditor = BuildForm(context, "QueryForm", "Properties:15"); var checkBoxValidation = BuildForm(context, "QueryValidation", "Validation:10"); return(Editor(context, autoLabelEditor, enumerationEditor, checkBoxValidation)); }
protected override EditorResult OnBuildEditor(UrlField element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel", "Properties:1"); var webAddressFieldEditor = BuildForm(context, "UrlField", "Properties:15"); var webAddressFieldValidation = BuildForm(context, "UrlFieldValidation", "Validation:10"); return(Editor(context, autoLabelEditor, webAddressFieldEditor, webAddressFieldValidation)); }
protected override EditorResult OnBuildEditor(TextArea element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel"); var textAreaEditor = BuildForm(context, "TextArea"); var textAreaValidation = BuildForm(context, "TextAreaValidation", "Validation:10"); return(Editor(context, autoLabelEditor, textAreaEditor, textAreaValidation)); }
protected override EditorResult OnBuildEditor(EmailField element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel"); var emailFieldEditor = BuildForm(context, "EmailField"); var emailFieldValidation = BuildForm(context, "EmailFieldValidation", "Validation:10"); return(Editor(context, autoLabelEditor, emailFieldEditor, emailFieldValidation)); }
protected override EditorResult OnBuildEditor(TextArea element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel", "Properties:1"); var placeholderEditor = BuildForm(context, "Placeholder", "Properties:10"); var textAreaEditor = BuildForm(context, "TextArea", "Properties:15"); var textAreaValidation = BuildForm(context, "TextAreaValidation", "Validation:10"); return(Editor(context, autoLabelEditor, placeholderEditor, textAreaEditor, textAreaValidation)); }
protected override EditorResult OnBuildEditor(EmailField element, ElementEditorContext context) { var autoLabelEditor = BuildForm(context, "AutoLabel", "Properties:1"); var placeholderEditor = BuildForm(context, "Placeholder", "Properties:10"); var emailFieldEditor = BuildForm(context, "EmailField", "Properties:15"); var emailFieldValidation = BuildForm(context, "EmailFieldValidation", "Validation:10"); return(Editor(context, autoLabelEditor, placeholderEditor, emailFieldEditor, emailFieldValidation)); }
protected override EditorResult OnBuildEditor(Section element, ElementEditorContext context) { var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Section", Model: element); if (context.Updater != null) { context.Updater.TryUpdateModel(element, context.Prefix, null, null); } return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(Paragraph element, ElementEditorContext context) { var viewModel = new ParagraphEditorViewModel { Text = element.Content }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Paragraph", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.Content = viewModel.Text; } return Editor(context, editor); }
protected override EditorResult OnBuildEditor(ButtonPopover element, ElementEditorContext context) { var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.ButtonPopover", Model: element); if (context.Updater == null) { return(Editor(context, editor)); } context.Updater.TryUpdateModel(element, context.Prefix, null, null); return(Editor(context, editor)); }
private ElementEditorContext CreateEditorContext(Element element, ElementDataDictionary elementData = null) { elementData = elementData ?? new ElementDataDictionary(); var context = new ElementEditorContext { Element = element, Updater = this, ValueProvider = elementData.ToValueProvider(_cultureAccessor.CurrentCulture), ShapeFactory = _shapeFactory }; ValueProvider = context.ValueProvider; return(context); }
private ElementEditorContext CreateEditorContext(IContent content, Element element, ElementDataDictionary elementData, IUpdateModel updater, dynamic shapeFactory) { var context = new ElementEditorContext { Content = content, Element = element, Updater = updater, ValueProvider = elementData.ToValueProvider(_cultureAccessor.CurrentCulture), ElementData = elementData, ShapeFactory = shapeFactory, Prefix = Prefix }; return(context); }
protected override EditorResult OnBuildEditor(HtmlBlockElement element, ElementEditorContext context) { var viewModel = new Orchard.Layouts.ViewModels.MarkdownEditorViewModel { Text = element.Content }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.HtmlBlockElement", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.Content = viewModel.Text; } return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(Heading element, ElementEditorContext context) { var viewModel = new HeadingEditorViewModel { Text = element.Content, Level = element.Level }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Heading", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.Content = viewModel.Text; element.Level = viewModel.Level; } return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(Image element, ElementEditorContext context) { var viewModel = new ImageEditorViewModel(); var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Image", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.MediaId = ParseImageId(viewModel.ImageId); } var imageId = element.MediaId; viewModel.CurrentImage = imageId != null?GetImage(imageId.Value) : default(ImagePart); return(Editor(context, editor)); }
private ElementEditorContext CreateEditorContext( string session, IContent content, Element element, ElementDataDictionary elementData = null, IUpdateModel updater = null) { var context = new ElementEditorContext { Session = session, Content = content, Element = element, Updater = updater, ElementData = elementData ?? new ElementDataDictionary(), ValueProvider = ValueProvider, ShapeFactory = _shapeFactory }; return(context); }
protected override EditorResult OnBuildEditor(Element element, ElementEditorContext context) { var viewModel = new NamedElementViewModel { Name = element.GetName(), Alternate = element.GetAlternate() }; if (context.Updater != null && context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null)) { element.SetName(viewModel.Name?.Trim()); element.SetAlternate(viewModel.Alternate?.Trim()); } var editorShape = context.ShapeFactory.EditorTemplate(TemplateName: "Elements/NamedElement", Model: viewModel, Prefix: context.Prefix); editorShape.Metadata.Position = "Meta:5"; return(Editor(context, editorShape)); }
protected override EditorResult OnBuildEditor(Reddit element, ElementEditorContext context) { var viewModel = new RedditEditorViewModel { Subreddit = element.Subreddit, CacheMinutes = element.CacheMinutes }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Reddit", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.Subreddit = viewModel.Subreddit; element.CacheMinutes = viewModel.CacheMinutes; } return(Editor(context, editor)); }
private ElementEditorContext CreateEditorContext( string session, IContent content, Element element, ElementDataDictionary elementData = null, ElementDataDictionary postedElementData = null, IUpdateModel updater = null) { postedElementData = postedElementData ?? new ElementDataDictionary(); var context = new ElementEditorContext { Session = session, Content = content, Element = element, Updater = updater, ElementData = elementData ?? new ElementDataDictionary(), ValueProvider = postedElementData.ToValueProvider(_cultureAccessor.CurrentCulture), ShapeFactory = _shapeFactory }; ValueProvider = context.ValueProvider; return(context); }
private void UpdateEditor(SnippetDescriptor descriptor, ElementEditorContext context) { var viewModel = new SnippetViewModel { Descriptor = descriptor }; if (context.Updater != null) { foreach (var fieldDescriptor in descriptor.Fields) { var name = fieldDescriptor.Name; var result = context.ValueProvider.GetValue(name); if (result == null) { continue; } context.Element.Data[name] = result.AttemptedValue; } } viewModel.FieldEditors = descriptor.Fields.Select(x => { var fieldEditorTemplateName = $"Elements.Snippet.Field.{x.Type ?? "Text"}"; var fieldDescriptorViewModel = new SnippetFieldViewModel { Descriptor = x, Value = context.Element.Data.Get(x.Name) }; var fieldEditor = context.ShapeFactory.EditorTemplate(TemplateName: fieldEditorTemplateName, Model: fieldDescriptorViewModel, Prefix: context.Prefix); return(fieldEditor); }).ToList(); var snippetEditorShape = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Snippet", Model: viewModel, Prefix: context.Prefix); snippetEditorShape.Metadata.Position = "Fields:0"; context.EditorResult.Add(snippetEditorShape); }
protected override EditorResult OnBuildEditor(ContentItem element, ElementEditorContext context) { var layoutPart = context.Content; var viewModel = new ContentItemEditorViewModel(); var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.ContentItem", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.ContentItemIds = ContentItem.Deserialize(viewModel.ContentItemIds); element.DisplayType = viewModel.DisplayType; } var contentItemIds = element.ContentItemIds; var displayType = element.DisplayType; var layoutContentId = layoutPart != null ? layoutPart.Id : 0; viewModel.ContentItems = GetContentItems(RemoveCurrentContentItemId(contentItemIds, layoutContentId)).ToArray(); viewModel.DisplayType = displayType; return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(SlickSlider element, ElementEditorContext context) { var viewModel = new SlickSliderEditorViewModel(); var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.SlickSlider", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.MediaItemIds = ContentItem.Deserialize(viewModel.ContentItemIds); element.SliderId = viewModel.SliderId; element.Config = XmlHelper.Serialize(viewModel.Config); } var contentItemIds = element.MediaItemIds; var layoutPart = context.Content; var layoutId = layoutPart != null ? layoutPart.Id : 0; viewModel.ContentItems = GetContentItems(RemoveCurrentContentItemId(contentItemIds, layoutId)).ToArray(); viewModel.SliderId = element.SliderId; viewModel.Config = GetConfigObjectFromString(element.Config); return(Editor(context, editor)); }
protected override EditorResult OnBuildEditor(VectorImage element, ElementEditorContext context) { var viewModel = new VectorImageEditorViewModel { VectorImageId = element.MediaId.ToString(), Width = element.Width, Height = element.Height }; var editor = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.VectorImage", Model: viewModel); if (context.Updater != null) { context.Updater.TryUpdateModel(viewModel, context.Prefix, null, null); element.MediaId = ParseVectorImageId(viewModel.VectorImageId); element.Width = viewModel.Width; element.Height = viewModel.Height; } var mediaId = element.MediaId; viewModel.CurrentVectorImage = mediaId != null?GetVectorImage(mediaId.Value) : default(VectorImagePart); return(Editor(context, editor)); }