public override IDisplayResult Display(TextField field, BuildFieldDisplayContext context) { return(Initialize <DisplayTextFieldViewModel>("TextField", model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(TaxonomyField field, BuildFieldDisplayContext context) { return(Initialize <DisplayTaxonomyFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Detail", "Content") .Location("Summary", "Content")); }
public override IDisplayResult Display(CodeField field, BuildFieldDisplayContext fieldDisplayContext) { return(Initialize <DisplayCodeFieldViewModel>(GetDisplayShapeType(fieldDisplayContext), model => { model.Field = field; model.Part = fieldDisplayContext.ContentPart; model.PartFieldDefinition = fieldDisplayContext.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(DateTimeField field, BuildFieldDisplayContext context) { return(Initialize <DisplayDateTimeFieldViewModel>(GetDisplayShapeType(context), async model => { model.LocalDateTime = field.Value == null ? (DateTime?)null : (await _localClock.ConvertToLocalAsync(field.Value.Value)).DateTime; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Detail", "Content") .Location("Summary", "Content")); }
public override IDisplayResult Display(UniqueIdentifierField field, BuildFieldDisplayContext context) { return(Initialize <UniqueIdentifierFieldViewModel>("UniqueIdentifierField", model => { model.IdentifierValue = field.IdentifierValue; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(MultiSelectField field, BuildFieldDisplayContext context) { return(Initialize <DisplayMultiSelectFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.SelectedValues = field.SelectedValues; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(ResponsiveMediaField field, BuildFieldDisplayContext context) { return(Initialize <DisplayResponsiveMediaFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Media = ParseMedia(field.Data, context.PartFieldDefinition.Settings.ToObject <ResponsiveMediaFieldSettings>().GetBreakpoints()); }) .Location("Content") .Location("SummaryAdmin", "") .Location("DetailAdmin", "")); }
public override IDisplayResult Display(ListOfItemsField field, BuildFieldDisplayContext context) { return(Initialize <DisplayListOfItemsFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.BuildFieldDisplayContext = context; model.Settings = context.PartFieldDefinition.GetSettings <ListOfItemsFieldSettings>(); model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(MatrixField field, BuildFieldDisplayContext context) { return(Initialize <DisplayMatrixFieldViewModel>(GetDisplayShapeType(context), model => { var fieldSettings = context.PartFieldDefinition.GetSettings <MatrixFieldPredefinedListEditorSettings>(); model.MatrixCells = _matrixTableProvider.BuildMatrixTable(fieldSettings).ToList(); model.Selections = field.Selections; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(MultiTextField field, BuildFieldDisplayContext context) { return(Initialize <DisplayMultiTextFieldViewModel>(GetDisplayShapeType(context), model => { var settings = context.PartFieldDefinition.GetSettings <MultiTextFieldSettings>(); model.Values = settings.Options.Where(o => field.Values?.Contains(o.Value) == true).Select(o => o.Value).ToArray(); model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Detail", "Content") .Location("Summary", "Content")); }
public override IDisplayResult Display(ContentPickerField field, BuildFieldDisplayContext context) { return(Initialize <DisplayContentPickerFieldViewModel>(GetDisplayShapeType(context), async model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Updater = context.Updater; model.SelectedContentItemIds = string.Join(",", field.ContentItemIds); model.ContentItems = await _contentManager.GetAsync(field.ContentItemIds); }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(RenderAliasField field, BuildFieldDisplayContext context) { return(Initialize <DisplayRenderAliasFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Alias = field.Alias; model.DisplayType = field.DisplayType; }) .Location("Content") .Location("SummaryAdmin", "") .Location("DetailAdmin", "")); }
public override IDisplayResult Display(AddressField field, BuildFieldDisplayContext context) { return(Initialize <AddressFieldViewModel>("AddressField", model => { model.Key = field.Key; model.Value = field.Value; model.ExtensionValue = field.ExtensionValue; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(HtmlField field, BuildFieldDisplayContext context) { return(Initialize <DisplayHtmlFieldViewModel>(GetDisplayShapeType(context), async model => { model.Html = field.Html; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Html = await _liquidTemplateManager.RenderAsync(field.Html, _htmlEncoder, model, scope => scope.SetValue("ContentItem", field.ContentItem)); }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(ColorField field, BuildFieldDisplayContext context) => // Same Display method for generating display shapes but this time the Initialize shape helper is being // used. We've seen it in the PersonPartDisplayDriver.Edit method. For this we need a view model object // which will be populated with the field data. The GetDisplayShapeType helper will generate a conventional // shape type for our content field which will be the name the field. Obviously, alternates can also be // used - so if the content item is being displayed with a display type named "Custom" then the // ColorField.Custom.cshtml file will be used, otherwise, the ColorField.cshtml will be active. Initialize <DisplayColorFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "");
public override IDisplayResult Display(ResponsiveMediaField field, BuildFieldDisplayContext context) { var settings = context.PartFieldDefinition.GetSettings <ResponsiveMediaFieldSettings>(); var data = field.HasData ? field.Data : settings.FallbackData; return(Initialize <DisplayResponsiveMediaFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Media = ParseMedia(data, settings.GetBreakpoints()); }) .Location("Content") .Location("SummaryAdmin", "") .Location("DetailAdmin", "")); }
public override IDisplayResult Display(HtmlField field, BuildFieldDisplayContext context) { return(Initialize <DisplayHtmlFieldViewModel>(GetDisplayShapeType(context), async model => { var templateContext = new TemplateContext(); templateContext.SetValue("ContentItem", field.ContentItem); templateContext.MemberAccessStrategy.Register <DisplayHtmlFieldViewModel>(); model.Html = await _liquidTemplatemanager.RenderAsync(field.Html, NullEncoder.Default, templateContext); model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(EventbriteField field, BuildFieldDisplayContext context) { if (field == null || field.Data == null) { return(null); } return(Initialize <DisplayEventbriteFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(MarkdownField field, BuildFieldDisplayContext context) { return(Initialize <MarkdownFieldViewModel>(GetDisplayShapeType(context), async model => { model.Markdown = field.Markdown; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Markdown = await _liquidTemplateManager.RenderAsync(field.Markdown, _htmlEncoder, model, scope => scope.SetValue("ContentItem", field.ContentItem)); model.Html = Markdig.Markdown.ToHtml(model.Markdown ?? ""); }) .Location("Detail", "Content") .Location("Summary", "Content")); }
public override IDisplayResult Display(TaxonomyField field, BuildFieldDisplayContext context) { if (String.Equals(context.PartFieldDefinition.Editor(), "Contained", StringComparison.OrdinalIgnoreCase)) { return(Initialize <DisplayTaxonomyFieldContainedViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Context = context; }) .Location("Content") .Location("SummaryAdmin", "")); } return(null); }
//private static string GetPrefix(ContentRelationField field, BuildFieldEditorContext fieldContext) //{ // //return part.PartDefinition.Name + "." + field.Name; // return fieldContext.PartFieldDefinition.PartDefinition.Name + "." + fieldContext.PartFieldDefinition.Name; //} //private static string GetDifferentiator(Fields.ContentPickerField field, BuildFieldDisplayContext fieldContext) //{ // return fieldContext.PartFieldDefinition.FieldDefinition.Name; //} public override IDisplayResult Display(ContentRelationField field, BuildFieldDisplayContext context) { return(Initialize <ContentRelationFieldViewModel>("ContentRelationField", async model => { var settings = context.PartFieldDefinition.GetSettings <ContentRelationFieldSettings>(); IEnumerable <ContentItem> selectedContentItems = await _contentRelationItemService.Get(context.ContentPart.ContentItem.ContentItemId, settings.ContentRelationRecordUid); model.SelectedContentItems = selectedContentItems; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "") .Location("Summary", "")); }
public override IDisplayResult Display(ProfileGroupField field, BuildFieldDisplayContext context) { if ("None".Equals(context.PartFieldDefinition.DisplayMode(), StringComparison.OrdinalIgnoreCase)) { return(null); } return(Initialize <DisplayProfileGroupFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.ProfileGroups = GetProfileGroupsAsync(field.ProfileGroupContentItemIds).Result; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override async Task <IDisplayResult> DisplayAsync(BlockField field, BuildFieldDisplayContext context) { if (context.DisplayType != "Detail") { return(null); } var blocks = await _blocksParser.RenderAsync(field); return(Initialize <DisplayBlockFieldViewModel>(GetDisplayShapeType(context), model => { model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; model.Html = field.Html; model.Blocks = blocks; }) .Location("Content")); }
Task <IDisplayResult> IContentFieldDisplayDriver.BuildDisplayAsync(ContentPart contentPart, ContentPartFieldDefinition partFieldDefinition, ContentTypePartDefinition typePartDefinition, BuildDisplayContext context) { if (!string.Equals(typeof(TField).Name, partFieldDefinition.FieldDefinition.Name) && !string.Equals(nameof(ContentField), partFieldDefinition.FieldDefinition.Name)) { return(Task.FromResult(default(IDisplayResult))); } var field = contentPart.Get <TField>(partFieldDefinition.Name); if (field != null) { Prefix = typePartDefinition.Name + "." + partFieldDefinition.Name; var fieldDisplayContext = new BuildFieldDisplayContext(contentPart, typePartDefinition, partFieldDefinition, context); return(DisplayAsync(field, fieldDisplayContext)); } return(Task.FromResult(default(IDisplayResult))); }
public override IDisplayResult Display(MarkdownField field, BuildFieldDisplayContext context) { return(Initialize <MarkdownFieldViewModel>(GetDisplayShapeType(context), async model => { var templateContext = new TemplateContext(); templateContext.SetValue("ContentItem", field.ContentItem); templateContext.MemberAccessStrategy.Register <MarkdownFieldViewModel>(); model.Markdown = field.Markdown; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; templateContext.SetValue("Model", model); model.Markdown = await _liquidTemplatemanager.RenderAsync(field.Markdown, _htmlEncoder, templateContext); model.Html = Markdig.Markdown.ToHtml(model.Markdown ?? ""); }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(HtmlField field, BuildFieldDisplayContext context) { return(Shape <DisplayHtmlFieldViewModel>("HtmlField", async model => { var templateContext = new TemplateContext(); templateContext.SetValue("ContentItem", field.ContentItem); templateContext.MemberAccessStrategy.Register <DisplayHtmlFieldViewModel>(); using (var writer = new StringWriter()) { await _liquidTemplatemanager.RenderAsync(field.Html, writer, NullEncoder.Default, templateContext); model.Html = writer.ToString(); } model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; }) .Location("Content") .Location("SummaryAdmin", "")); }
public override IDisplayResult Display(HtmlField field, BuildFieldDisplayContext context) { return(Initialize <DisplayHtmlFieldViewModel>(GetDisplayShapeType(context), async model => { model.Html = field.Html; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; var settings = context.PartFieldDefinition.GetSettings <HtmlFieldSettings>(); if (!settings.SanitizeHtml) { model.Html = await _liquidTemplateManager.RenderAsync(field.Html, _htmlEncoder, model, scope => scope.SetValue("ContentItem", field.ContentItem)); } model.Html = await _shortCodeService.ProcessAsync(model.Html); }) .Location("Detail", "Content") .Location("Summary", "Content")); }
public override IDisplayResult Display(MarkdownField field, BuildFieldDisplayContext context) { return(Initialize <MarkdownFieldViewModel>(GetDisplayShapeType(context), async model => { var settings = context.PartFieldDefinition.GetSettings <MarkdownFieldSettings>(); model.Markdown = field.Markdown; model.Field = field; model.Part = context.ContentPart; model.PartFieldDefinition = context.PartFieldDefinition; // The default Markdown option is to entity escape html // so filters must be run after the markdown has been processed. model.Html = _markdownService.ToHtml(model.Markdown ?? ""); // The liquid rendering is for backwards compatability and can be removed in a future version. if (!settings.SanitizeHtml) { model.Markdown = await _liquidTemplateManager.RenderStringAsync(model.Html, _htmlEncoder, model, new Dictionary <string, FluidValue>() { ["ContentItem"] = new ObjectValue(field.ContentItem) }); } model.Html = await _shortcodeService.ProcessAsync(model.Html, new Context { ["ContentItem"] = field.ContentItem, ["PartFieldDefinition"] = context.PartFieldDefinition }); if (settings.SanitizeHtml) { model.Html = _htmlSanitizerService.Sanitize(model.Html ?? ""); } }) .Location("Detail", "Content") .Location("Summary", "Content")); }
private async ValueTask BuildContentFieldDisplaysAsync( ContentItem contentItem, ContentPart contentPart, ContentTypePartDefinition contentTypePartDefinition, ContentPartFieldDefinition contentPartFieldDefinition, BuildDisplayContext context) { var fieldName = contentPartFieldDefinition.Name; var fieldTypeName = contentPartFieldDefinition.FieldDefinition.Name; var fieldType = _contentFields.FirstOrDefault(x => x.GetType().Name == fieldTypeName)?.GetType(); if (fieldType == null) { return; } if (!(contentPart.Get(fieldType, fieldName) is ContentField field)) { return; } var drivers = _contentFieldDisplayDrivers.Where(x => x.FieldType == fieldType); var fieldDisplayContext = new BuildFieldDisplayContext( contentPart, contentTypePartDefinition, contentPartFieldDefinition, context) { DefaultPosition = contentPartFieldDefinition.GetSettings <ContentPartFieldSettings>().Position }; foreach (var driver in drivers) { var result = await driver.BuildDisplayAsync(field, fieldDisplayContext); await ApplyDisplayResultAsync(result, context); } }
protected override IDisplayResult?BuildDisplay(MarkdownField contentField, BuildFieldDisplayContext context) { return(Shape( nameof(MarkdownField), async model => { var shape = await model.New.MarkdownField(); var markdown = contentField.Markdown ?? ""; var html = _markdownService.ToHtml(markdown); var settings = context.PartFieldDefinition.GetSettings <MarkdownBodyPartSettings>(); if (settings.SanitizeHtml) { html = _htmlSanitizerService.Sanitize(html); } shape.Markdown = markdown; shape.Html = html; shape.ContentItem = contentField.ContentItem; shape.MarkdownBodyPart = contentField; return shape; }) .DefaultLocation("5")); }