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)); }
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"); })); }