private static void RenderAreaItem( HtmlHelper html, ContentAreaItem contentAreaItem, BootstrapAwareContentAreaRenderer renderer, IFormElement element) { if (contentAreaItem != null) { var cssClasses = renderer.GetItemCssClass(html, contentAreaItem); html.ViewContext.Writer.Write($"<div class=\"{cssClasses}\">"); } var sourceContent = element.SourceContent; if (sourceContent != null && !sourceContent.IsDeleted) { if (sourceContent is ISubmissionAwareElement) { var contentData = (sourceContent as IReadOnly).CreateWritableClone() as IContent; (contentData as ISubmissionAwareElement).FormSubmissionId = (string)html.ViewBag.FormSubmissionId; html.RenderContentData(contentData, false); } else { html.RenderContentData(sourceContent, false); } } if (contentAreaItem != null) { html.ViewContext.Writer.Write("</div>"); } }
public static void RenderFormElements(this HtmlHelper html, int currentStepIndex, IEnumerable<IFormElement> elements, FormContainerBlock model) { // TODO: this is pretty scary - another approach would be to ask from container and then try to cast to this type.. var renderer = new BootstrapAwareContentAreaRenderer(); foreach (var element in elements) { var areaItem = model.ElementsArea.Items.FirstOrDefault(i => i.ContentLink == element.SourceContent.ContentLink); if(areaItem != null) { var cssClasses = renderer.GetItemCssClass(html, areaItem); html.ViewContext.Writer.Write($"<div class=\"{cssClasses}\">"); } var sourceContent = element.SourceContent; if((sourceContent != null) && !sourceContent.IsDeleted) { if(sourceContent is ISubmissionAwareElement) { var content2 = (sourceContent as IReadOnly).CreateWritableClone() as IContent; (content2 as ISubmissionAwareElement).FormSubmissionId = (string) html.ViewBag.FormSubmissionId; html.RenderContentData(content2, false); } else { html.RenderContentData(sourceContent, false); } } if(areaItem != null) html.ViewContext.Writer.Write("</div>"); } }
private static void RenderItems( HtmlHelper html, IEnumerable <ContentAreaItem> contentAreaItems, BootstrapAwareContentAreaRenderer bootstrapAwareContentAreaRenderer, IEnumerable <IFormElement> formElements) { foreach (var item in contentAreaItems) { var formElement = formElements.FirstOrDefault(fe => fe.SourceContent.ContentLink == item.ContentLink); RenderAreaItem(html, item, bootstrapAwareContentAreaRenderer, formElement); } }
public void TestCssClassGenerationForItem_DisplayOptionsWithPatterns(int lgSize, string lgPattern, int mdSize, string mdPattern, int smSize, string smPattern, int xsSize, string xsPattern, string expected) { var displayOption = new DisplayModeFallback { LargeScreenWidth = lgSize, LargeScreenCssClassPattern = lgPattern, MediumScreenWidth = mdSize, MediumScreenCssClassPattern = mdPattern, SmallScreenWidth = smSize, SmallScreenCssClassPattern = smPattern, ExtraSmallScreenWidth = xsSize, ExtraSmallScreenCssClassPattern = xsPattern }; var result = BootstrapAwareContentAreaRenderer.GetCssClassesForItem(displayOption); Assert.Equal(expected, result); }
public static void RenderFormElements(this HtmlHelper html, int currentStepIndex, IEnumerable <IFormElement> elements, FormContainerBlock model) { // TODO: this is pretty scary - another approach would be to ask from container and then try to cast to this type.. var renderer = new BootstrapAwareContentAreaRenderer(); foreach (var element in elements) { var areaItem = model.ElementsArea.Items.FirstOrDefault(i => i.ContentLink == element.SourceContent.ContentLink); if (areaItem != null) { var cssClasses = renderer.GetItemCssClass(html, areaItem); html.ViewContext.Writer.Write($"<div class=\"{cssClasses}\">"); } var sourceContent = element.SourceContent; if ((sourceContent != null) && !sourceContent.IsDeleted) { if (sourceContent is ISubmissionAwareElement) { var content2 = (sourceContent as IReadOnly).CreateWritableClone() as IContent; (content2 as ISubmissionAwareElement).FormSubmissionId = (string)html.ViewBag.FormSubmissionId; html.RenderContentData(content2, false); } else { html.RenderContentData(sourceContent, false); } } if (areaItem != null) { html.ViewContext.Writer.Write("</div>"); } } }