protected override DriverResult Editor(ContentPart part, Fields.ContentPickerField field, IUpdateModel updater, dynamic shapeHelper) { var model = new ContentPickerFieldViewModel { SelectedIds = string.Join(",", field.Ids) }; updater.TryUpdateModel(model, GetPrefix(field, part), null, null); var settings = field.PartFieldDefinition.Settings.GetModel <ContentPickerFieldSettings>(); if (String.IsNullOrEmpty(model.SelectedIds)) { field.Ids = new int[0]; } else { field.Ids = model.SelectedIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); } if (settings.Required && field.Ids.Length == 0) { updater.AddModelError("Id", T("The field {0} is mandatory", field.Name.CamelFriendly())); } return(Editor(part, field, shapeHelper)); }
protected override DriverResult Editor(ContentPart part, Fields.ContentPickerField field, dynamic shapeHelper) { return(ContentShape("Fields_ContentPicker_Edit", GetDifferentiator(field, part), () => { var model = new ContentPickerFieldViewModel { Field = field, ContentItems = _contentManager.GetMany <ContentItem>(field.Ids, VersionOptions.Published, QueryHints.Empty).ToList(), }; model.SelectedIds = string.Concat(",", field.Ids); return shapeHelper.EditorTemplate(TemplateName: "Fields/ContentPicker.Edit", Model: model, Prefix: GetPrefix(field, part)); })); }
protected override DriverResult Editor(ContentPart part, ContentPickerField field, IUpdateModel updater, dynamic shapeHelper) { var model = new ContentPickerFieldViewModel { SelectedIds = ContentItemElement.Serialize(field.Ids) }; updater.TryUpdateModel(model, GetPrefix(field, part), null, null); var settings = field.PartFieldDefinition.Settings.GetModel <ContentPickerFieldSettings>(); var ids = ContentItemElement.Deserialize(model.SelectedIds).ToArray(); if (!settings.Required || ids.Length > 0) { mRelationshipService.SetRelationships(part.Id, field.Name, ids); } return(null); }