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)); }
public override IEnumerable <TemplateViewModel> TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) { if (builder.Name != "ContainerPart") { yield break; } var viewModel = new ContainerTypePartSettingsViewModel { AvailableItemContentTypes = _containerService.GetContainableTypes().ToList() }; updateModel.TryUpdateModel(viewModel, "ContainerTypePartSettingsViewModel", null, new[] { "AvailableItemContentTypes" }); builder.WithSetting("ContainerTypePartSettings.PageSizeDefault", viewModel.PageSizeDefault.ToString()); builder.WithSetting("ContainerTypePartSettings.PaginatedDefault", viewModel.PaginatedDefault.ToString()); builder.WithSetting("ContainerTypePartSettings.RestrictedItemContentTypes", viewModel.RestrictedItemContentTypes != null ? string.Join(",", viewModel.RestrictedItemContentTypes) : ""); builder.WithSetting("ContainerTypePartSettings.RestrictItemContentTypes", viewModel.RestrictItemContentTypes.ToString()); builder.WithSetting("ContainerTypePartSettings.EnablePositioning", viewModel.EnablePositioning.ToString()); builder.WithSetting("ContainerTypePartSettings.AdminListViewName", viewModel.AdminListViewName); yield return(DefinitionTemplate(viewModel)); }