public override IEnumerable <TemplateViewModel> TypePartEditor(ContentTypePartDefinition definition)
        {
            if (definition.PartDefinition.Name != "ContainerPart")
            {
                yield break;
            }

            var model     = definition.Settings.GetModel <ContainerTypePartSettings>();
            var partModel = definition.PartDefinition.Settings.GetModel <ContainerPartSettings>();

            if (model.PageSizeDefault == null)
            {
                model.PageSizeDefault = partModel.PageSizeDefault;
            }

            if (model.PaginatedDefault == null)
            {
                model.PaginatedDefault = partModel.PaginatedDefault;
            }

            var viewModel = new ContainerTypePartSettingsViewModel {
                PageSizeDefault            = model.PageSizeDefault,
                PaginatedDefault           = model.PaginatedDefault,
                RestrictedItemContentTypes = _contentDefinitionManager.ParseContentTypeDefinitions(model.RestrictedItemContentTypes).Select(x => x.Name).ToList(),
                RestrictItemContentTypes   = model.RestrictItemContentTypes,
                EnablePositioning          = model.EnablePositioning,
                AdminListViewName          = model.AdminListViewName,
                AvailableItemContentTypes  = _containerService.GetContainableTypes().ToList(),
                ListViewProviders          = _listViewService.Providers.ToList()
            };

            yield return(DefinitionTemplate(viewModel));
        }
Пример #2
0
        protected override DriverResult Editor(ContainerPart part, IUpdateModel updater, dynamic shapeHelper)
        {
            return(ContentShape("Parts_Container_Edit", () => {
                if (!part.ContainerSettings.DisplayContainerEditor)
                {
                    return null;
                }

                var containables = !part.ContainerSettings.RestrictItemContentTypes ? _containerService.GetContainableTypes().ToList() : new List <ContentTypeDefinition>(0);
                var model = new ContainerViewModel {
                    AdminMenuPosition = part.AdminMenuPosition,
                    AdminMenuText = part.AdminMenuText,
                    AdminMenuImageSet = part.AdminMenuImageSet,
                    ItemsShown = part.ItemsShown,
                    PageSize = part.PageSize,
                    Paginated = part.Paginated,
                    SelectedItemContentTypes = part.ItemContentTypes.Select(x => x.Name).ToList(),
                    ShowOnAdminMenu = part.ShowOnAdminMenu,
                    AvailableItemContentTypes = containables,
                    RestrictItemContentTypes = part.ContainerSettings.RestrictItemContentTypes,
                    EnablePositioning = part.Record.EnablePositioning,
                    OverrideEnablePositioning = part.ContainerSettings.EnablePositioning == null
                };

                if (updater != null)
                {
                    if (updater.TryUpdateModel(model, "Container", null, new[] { "OverrideEnablePositioning" }))
                    {
                        part.AdminMenuPosition = model.AdminMenuPosition;
                        part.AdminMenuText = model.AdminMenuText;
                        part.AdminMenuImageSet = model.AdminMenuImageSet;
                        part.ItemsShown = model.ItemsShown;
                        part.PageSize = model.PageSize;
                        part.Paginated = model.Paginated;
                        part.ShowOnAdminMenu = model.ShowOnAdminMenu;

                        if (!part.ContainerSettings.RestrictItemContentTypes)
                        {
                            part.ItemContentTypes = _contentDefinitionManager.ListTypeDefinitions().Where(x => model.SelectedItemContentTypes.Contains(x.Name));
                        }

                        if (model.OverrideEnablePositioning)
                        {
                            part.Record.EnablePositioning = model.EnablePositioning;
                        }
                    }
                }

                return shapeHelper.EditorTemplate(TemplateName: "Container", Model: model, Prefix: "Container");
            }));
        }