예제 #1
0
        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));
            }));
        }
예제 #3
0
        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);
        }