protected override void OnDisplaying(ContentPart element, ElementDisplayingContext context)
        {
            // Content is optional context, so if it's null, we can't render the part element.
            // This typically only happens when the layout editor is used outside the context of
            // a content item and still renders the various content part elements as part of the toolbox.
            if (context.Content == null)
            {
                return;
            }

            var contentItem     = context.Content.ContentItem;
            var contentPartName = (string)element.Descriptor.StateBag["ElementTypeName"];
            var contentPart     = contentItem.Parts.FirstOrDefault(x => x.PartDefinition.Name == contentPartName);

            if ((contentItem.Id == 0 || context.DisplayType == "Design") && context.Updater != null)
            {
                // The content item hasn't been stored yet, so bind form values with the content part to represent actual state.
                var controller       = (Controller)context.Updater;
                var oldValueProvider = controller.ValueProvider;

                controller.ValueProvider = context.Element.Data.ToValueProvider(_cultureAccessor.CurrentCulture);
                _contentPartDisplay.UpdateEditor(contentPart, context.Updater);
                _transactionManager.Cancel();
                controller.ValueProvider = oldValueProvider;
            }

            var contentPartShape = _contentPartDisplay.BuildDisplay(contentPart, displayType: "Layout");

            context.ElementShape.ContentPart = contentPart;
            context.ElementShape.Content     = contentPartShape;
        }
Ejemplo n.º 2
0
        private void Displaying(ElementDisplayingContext context, ShapeDescriptor shapeDescriptor)
        {
            var shapeType = shapeDescriptor.ShapeType;
            var shape     = _shapeFactory.Value.Create(shapeType);

            context.ElementShape.Snippet = shape;
        }
 protected override void OnDisplaying(Button element, ElementDisplayingContext context)
 {
     context.ElementShape.ProcessedName = _tokenizer.Replace(element.Name, context.GetTokenData());
     context.ElementShape.ProcessedText = _tokenizer.Replace(element.Text, context.GetTokenData(), new ReplaceOptions {
         Encoding = ReplaceOptions.NoEncode
     });
 }
Ejemplo n.º 4
0
        protected override void OnDisplaying(Elements.SmartGrid element, ElementDisplayingContext context)
        {
            var versionOptions = context.DisplayType == "Design"
                ? VersionOptions.Latest : VersionOptions.Published;

            context.ElementShape.BackgroundImage = GetBackgroundImage(element, versionOptions);
        }
Ejemplo n.º 5
0
        protected override void OnDisplaying(Image element, ElementDisplayingContext context)
        {
            var imageId = element.MediaId;
            var image   = imageId != null?GetImage(imageId.Value) : default(ImagePart);

            context.ElementShape.ImagePart = image;
        }
Ejemplo n.º 6
0
 protected override void OnDisplaying(PasswordField element, ElementDisplayingContext context)
 {
     context.ElementShape.ProcessedName  = _tokenizer.Replace(element.Name, context.GetTokenData());
     context.ElementShape.ProcessedLabel = _tokenizer.Replace(element.Label, context.GetTokenData(), new ReplaceOptions {
         Encoding = ReplaceOptions.NoEncode
     });
 }
Ejemplo n.º 7
0
        protected override void OnDisplaying(Taxonomy element, ElementDisplayingContext context)
        {
            var taxonomyId  = element.TaxonomyId;
            var typeName    = element.GetType().Name;
            var displayType = context.DisplayType;
            var tokenData   = context.GetTokenData();

            // Allow the initially selected value to be tokenized.
            // If a value was posted, use that value instead (without tokenizing it).
            if (element.PostedValue == null)
            {
                var defaultValue = _tokenizer.Replace(element.DefaultValue, tokenData, new ReplaceOptions {
                    Encoding = ReplaceOptions.NoEncode
                });
                element.RuntimeValue = defaultValue;
            }

            context.ElementShape.ProcessedName  = _tokenizer.Replace(element.Name, tokenData);
            context.ElementShape.ProcessedLabel = _tokenizer.Replace(element.Label, tokenData, new ReplaceOptions {
                Encoding = ReplaceOptions.NoEncode
            });
            context.ElementShape.TermOptions = GetTermOptions(element, context.DisplayType, taxonomyId, tokenData).ToArray();
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}__{1}", typeName, element.InputType));
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
        }
        protected override void OnDisplaying(VectorImage element, ElementDisplayingContext context)
        {
            var mediaId     = element.MediaId;
            var vectorImage = mediaId != null?GetVectorImage(mediaId.Value) : default(VectorImagePart);

            context.ElementShape.VectorImagePart = vectorImage;
        }
        void IElementEventHandler.Displaying(ElementDisplayingContext context)
        {
            if (context.DisplayType == "Design")
            {
                return;
            }

            var element = context.Element as FormElement;

            if (element == null)
            {
                return;
            }

            var registrationContext = new RegisterClientValidationAttributesContext {
                FieldName = element.Name
            };

            if (element.Form != null && element.Form.EnableClientValidation == true)
            {
                _formService.RegisterClientValidationAttributes(element, registrationContext);

                if (registrationContext.ClientAttributes.Any())
                {
                    registrationContext.ClientAttributes["data-val"] = "true";
                }
            }

            context.ElementShape.ClientValidationAttributes = registrationContext.ClientAttributes;
        }
Ejemplo n.º 10
0
        protected override void OnDisplaying(Form element, ElementDisplayingContext context)
        {
            var controller = _currentControllerAccessor.CurrentController;
            var modelState = controller != null?controller.FetchModelState(element) : default(ModelStateDictionary);

            if (modelState != null && !modelState.IsValid)
            {
                // Read any posted values from the previous request.
                var values = controller.FetchPostedValues(element);
                _formService.ReadElementValues(element, new NameValueCollectionValueProvider(values, _cultureAccessor.CurrentCulture));

                // Add any model validation errors from the previous request.
                controller.ApplyAnyModelErrors(element, modelState);
            }

            // Assign the binding content type to each element within the form element.
            foreach (var child in element.Elements.Flatten().Where(x => x is FormElement).Cast <FormElement>())
            {
                child.FormBindingContentType = element.CreateContent == true ? element.FormBindingContentType : default(string);
            }

            // Set tokenized properties.
            var tokenData = context.GetTokenData();

            context.ElementShape.ProcessedAction = _tokenizer.Replace(element.Action, tokenData);
        }
        protected override void OnDisplaying(Carousel element, ElementDisplayingContext context)
        {
            var contentItemIds = RemoveCurrentContentItemId(element.MediaItemIds, context.Content.Id);

            var contentItems = GetContentItems(contentItemIds).Select(x => x.As <MediaPart>().MediaUrl).ToArray();

            context.ElementShape.ContentItems = contentItems;
        }
 protected override void OnDisplaying(TextArea element, ElementDisplayingContext context)
 {
     context.ElementShape.ProcessedName  = _tokenizer.Replace(element.Name, context.GetTokenData());
     context.ElementShape.ProcessedLabel = _tokenizer.Replace(element.Label, context.GetTokenData(), new ReplaceOptions {
         Encoding = ReplaceOptions.NoEncode
     });
     context.ElementShape.ProcessedValue = element.RuntimeValue;
 }
        protected override void OnDisplaying(Notifications element, ElementDisplayingContext context)
        {
            var httpContext    = _httpContextAccessor.Current();
            var messageEntries = httpContext.Items[NotifyFilter.TempDataMessages] as IList <NotifyEntry> ?? new List <NotifyEntry>();
            var shapes         = messageEntries.Select(x => New.Message(x)).ToList();

            context.ElementShape.Messages = shapes;
        }
Ejemplo n.º 14
0
        protected override void OnDisplaying(Paragraph element, ElementDisplayingContext context)
        {
            var text          = element.Content;
            var flavor        = "html";
            var processedText = ApplyHtmlFilters(text, flavor);

            context.ElementShape.ProcessedText = processedText;
        }
Ejemplo n.º 15
0
        private void Displaying(ElementDisplayingContext context, Element element)
        {
            var drivers = _elementManager.Value.GetDrivers(element);

            foreach (var driver in drivers)
            {
                driver.Displaying(context);
            }
        }
        protected override void OnDisplaying(MediaItem element, ElementDisplayingContext context)
        {
            var contentItemIds    = RemoveCurrentContentItemId(element.MediaItemIds, context.Content.Id);
            var displayType       = context.DisplayType != "Design" ? element.DisplayType : "Thumbnail";
            var contentItems      = GetContentItems(contentItemIds).ToArray();
            var contentItemShapes = contentItems.Select(x => _contentManager.BuildDisplay(x, displayType)).ToArray();

            context.ElementShape.ContentItems = contentItemShapes;
        }
Ejemplo n.º 17
0
        private void Displaying(ElementDisplayingContext context, ShapeDescriptor shapeDescriptor)
        {
            var shapeType = shapeDescriptor.ShapeType;
            var shape     = (dynamic)_shapeFactory.Value.Create(shapeType);

            shape.Element = context.Element;

            ElementShapes.AddTokenizers(shape, _tokenizer.Value);
            context.ElementShape.Snippet = shape;
        }
Ejemplo n.º 18
0
        protected override void OnDisplaying(Taxonomy element, ElementDisplayingContext context)
        {
            var taxonomyId  = element.TaxonomyId;
            var typeName    = element.GetType().Name;
            var displayType = context.DisplayType;

            context.ElementShape.TermOptions = GetTermOptions(element, taxonomyId).ToArray();
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}__{1}", typeName, element.InputType));
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
        }
Ejemplo n.º 19
0
        protected override void OnDisplaying(ContentItem element, ElementDisplayingContext context)
        {
            var contentItemIds = context.Content != null?RemoveCurrentContentItemId(element.ContentItemIds, context.Content.Id) : element.ContentItemIds;

            var displayType       = element.DisplayType;
            var contentItems      = GetContentItems(contentItemIds).ToArray();
            var contentItemShapes = contentItems.Select(x => _contentManager.BuildDisplay(x, displayType)).ToArray();

            context.ElementShape.ContentItems = contentItemShapes;
        }
Ejemplo n.º 20
0
        protected override void OnDisplaying(Enumeration element, ElementDisplayingContext context)
        {
            var tokenizedOptions = _tokenizer.Replace(element.Options).ToArray();
            var typeName         = element.GetType().Name;
            var displayType      = context.DisplayType;

            context.ElementShape.TokenizedOptions = tokenizedOptions;
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}__{1}", typeName, element.InputType));
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
        }
Ejemplo n.º 21
0
        protected override void OnDisplaying(Shape element, ElementDisplayingContext context)
        {
            if (String.IsNullOrWhiteSpace(element.ShapeType))
            {
                return;
            }

            var shape = _shapeFactory.Create(element.ShapeType);

            context.ElementShape.Shape = shape;
        }
Ejemplo n.º 22
0
        protected override void OnDisplaying(Query element, ElementDisplayingContext context)
        {
            var queryId     = element.QueryId;
            var typeName    = element.GetType().Name;
            var category    = element.Category.ToSafeName();
            var displayType = context.DisplayType;

            context.ElementShape.Options = GetOptions(element, queryId).ToArray();
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}__{1}", typeName, element.InputType));
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
        }
Ejemplo n.º 23
0
        protected override void OnDisplaying(Elements.ImageResizer element, ElementDisplayingContext context)
        {
            var imageId = element.MediaId;
            var image   = imageId != null?GetImage(imageId.Value) : default(ImagePart);

            context.ElementShape.ImagePart  = image;
            context.ElementShape.Width      = element.Width;
            context.ElementShape.Height     = element.Height;
            context.ElementShape.Etc        = element.Etc;
            context.ElementShape.Responsive = element.Responsive;
        }
        public static IDictionary <string, object> GetTokenData(this ElementDisplayingContext context)
        {
            var data = new Dictionary <string, object>();

            if (context.Content != null)
            {
                data["Content"] = context.Content.ContentItem;
            }

            return(data);
        }
Ejemplo n.º 25
0
        protected override void OnDisplaying(HiddenField element, ElementDisplayingContext context)
        {
            var tokenData = context.GetTokenData();

            context.ElementShape.ProcessedName = _tokenizer.Replace(element.Name, tokenData);

            // Allow the initial value to be tokenized.
            // If a value was posted, use that value instead (without tokenizing it).
            context.ElementShape.ProcessedValue = element.PostedValue != null ? element.PostedValue : _tokenizer.Replace(element.RuntimeValue, tokenData, new ReplaceOptions {
                Encoding = ReplaceOptions.NoEncode
            });
        }
Ejemplo n.º 26
0
        protected override void OnDisplaying(ReCaptcha element, ElementDisplayingContext context)
        {
            var workContext = _services.WorkContext;
            var currentSite = workContext.CurrentSite;
            var settings    = currentSite.As <ReCaptchaSettingsPart>();

            if (settings.TrustAuthenticatedUsers && workContext.CurrentUser != null)
            {
                return;
            }

            context.ElementShape.PublicKey = settings.PublicKey;
        }
Ejemplo n.º 27
0
        protected override void OnDisplaying(Query element, ElementDisplayingContext context)
        {
            var queryId     = element.QueryId;
            var typeName    = element.GetType().Name;
            var displayType = context.DisplayType;
            var tokenData   = context.GetTokenData();

            context.ElementShape.ProcessedName  = _tokenizer.Replace(element.Name, tokenData);
            context.ElementShape.ProcessedLabel = _tokenizer.Replace(element.Label, tokenData);
            context.ElementShape.Options        = GetOptions(element, context.DisplayType, queryId, tokenData).ToArray();
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}__{1}", typeName, element.InputType));
            context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
        }
        protected override void OnDisplaying(BootstrapContentItem element, ElementDisplayingContext context)
        {
            var contentItemIds = context.Content != null?RemoveCurrentContentItemId(element.ContentItemIds, context.Content.Id) : element.ContentItemIds;

            var displayType           = element.DisplayType;
            var contentItems          = GetContentItems(contentItemIds).ToArray();
            var contentItemViewModels = contentItems.Select(x => new ContentItemViewModel {
                ContentShape = _contentManager.BuildDisplay(x, displayType),
                Title        = x.As <TitlePart>() != null ? x.As <TitlePart>().Title : string.Empty
            }).ToList();

            context.ElementShape.ContentItems = contentItemViewModels;
        }
        protected override void OnDisplaying(SlickSlider element, ElementDisplayingContext context)
        {
            var viewModel      = new SlickSliderElementViewModel();
            var contentItemIds = RemoveCurrentContentItemId(element.MediaItemIds, context.Content.Id);
            var contentItems   = GetContentItems(contentItemIds).ToArray();

            viewModel.ContentItems = contentItems;
            viewModel.SliderId     = element.SliderId;

            viewModel.Config = GetConfigObjectFromString(element.Config);

            context.ElementShape.ViewModel = viewModel;
        }
Ejemplo n.º 30
0
        protected override void OnDisplaying(ReCaptcha element, ElementDisplayingContext context)
        {
            var workContext = _services.WorkContext;
            var currentSite = workContext.CurrentSite;
            var settings    = currentSite.As <ReCaptchaSettingsPart>();

            if (settings.TrustAuthenticatedUsers && workContext.CurrentUser != null)
            {
                return;
            }

            context.ElementShape.ProcessedName = _tokenizer.Replace(element.Name, context.GetTokenData());
            context.ElementShape.PublicKey     = settings.PublicKey;
        }