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 ContainerPartHandler( IRepository<ContainerPartRecord> repository, IContentDefinitionManager contentDefinitionManager, IListViewService listViewService, IContainerService containerService) { _contentDefinitionManager = contentDefinitionManager; _listViewService = listViewService; _containerService = containerService; Filters.Add(StorageFilter.For(repository)); OnInitializing<ContainerPart>((context, part) => { part.Record.ItemsShown = part.Settings.GetModel<ContainerTypePartSettings>().ItemsShownDefault ?? part.PartDefinition.Settings.GetModel<ContainerPartSettings>().ItemsShownDefault; part.Record.PageSize = part.Settings.GetModel<ContainerTypePartSettings>().PageSizeDefault ?? part.PartDefinition.Settings.GetModel<ContainerPartSettings>().PageSizeDefault; part.Record.Paginated = part.Settings.GetModel<ContainerTypePartSettings>().PaginatedDefault ?? part.PartDefinition.Settings.GetModel<ContainerPartSettings>().PaginatedDefault; }); OnGetContentItemMetadata<ContainerPart>((context, part) => { context.Metadata.DisplayRouteValues = new RouteValueDictionary { {"Area", "Containers"}, {"Controller", "Item"}, {"Action", "Display"}, {"id", context.ContentItem.Id} }; }); OnActivated<ContainerPart>((context, part) => { part.ContainerSettingsField.Loader(() => part.Settings.GetModel<ContainerTypePartSettings>()); part.ItemContentTypesField.Loader(() => { var settings = part.ContainerSettings; var types = settings.RestrictItemContentTypes ? settings.RestrictedItemContentTypes : part.Record.ItemContentTypes; return _contentDefinitionManager.ParseContentTypeDefinitions(types); }); part.ItemContentTypesField.Setter(value => { part.Record.ItemContentTypes = _contentDefinitionManager.JoinContentTypeDefinitions(value); return value; }); part.AdminListViewField.Loader(() => { var providers = _listViewService.Providers.ToList(); var listViewProviderName = !String.IsNullOrWhiteSpace(part.Record.AdminListViewName) ? part.Record.AdminListViewName : !String.IsNullOrWhiteSpace(part.ContainerSettings.AdminListViewName) ? part.ContainerSettings.AdminListViewName : providers.Any() ? providers.First().Name : null; return _listViewService.GetProvider(listViewProviderName) ?? _listViewService.GetDefaultProvider(); }); }); OnPublished<ContainerPart>((context, part) => _containerService.UpdateItemCount(part)); }
public ContainerPartHandler( IRepository <ContainerPartRecord> repository, IContentDefinitionManager contentDefinitionManager, IListViewService listViewService, IContainerService containerService) { _contentDefinitionManager = contentDefinitionManager; _listViewService = listViewService; _containerService = containerService; Filters.Add(StorageFilter.For(repository)); OnInitializing <ContainerPart>((context, part) => { part.Record.ItemsShown = part.Settings.GetModel <ContainerTypePartSettings>().ItemsShownDefault ?? part.PartDefinition.Settings.GetModel <ContainerPartSettings>().ItemsShownDefault; part.Record.PageSize = part.Settings.GetModel <ContainerTypePartSettings>().PageSizeDefault ?? part.PartDefinition.Settings.GetModel <ContainerPartSettings>().PageSizeDefault; part.Record.Paginated = part.Settings.GetModel <ContainerTypePartSettings>().PaginatedDefault ?? part.PartDefinition.Settings.GetModel <ContainerPartSettings>().PaginatedDefault; }); OnGetContentItemMetadata <ContainerPart>((context, part) => { context.Metadata.DisplayRouteValues = new RouteValueDictionary { { "Area", "Containers" }, { "Controller", "Item" }, { "Action", "Display" }, { "id", context.ContentItem.Id } }; }); OnActivated <ContainerPart>((context, part) => { part.ContainerSettingsField.Loader(() => part.Settings.GetModel <ContainerTypePartSettings>()); part.ItemContentTypesField.Loader(() => { var settings = part.ContainerSettings; var types = settings.RestrictItemContentTypes ? settings.RestrictedItemContentTypes : part.Record.ItemContentTypes; return(_contentDefinitionManager.ParseContentTypeDefinitions(types)); }); part.ItemContentTypesField.Setter(value => { part.Record.ItemContentTypes = _contentDefinitionManager.JoinContentTypeDefinitions(value); return(value); }); part.AdminListViewField.Loader(() => { var providers = _listViewService.Providers.ToList(); var listViewProviderName = !String.IsNullOrWhiteSpace(part.Record.AdminListViewName) ? part.Record.AdminListViewName : !String.IsNullOrWhiteSpace(part.ContainerSettings.AdminListViewName) ? part.ContainerSettings.AdminListViewName : providers.Any() ? providers.First().Name : null; return(_listViewService.GetProvider(listViewProviderName) ?? _listViewService.GetDefaultProvider()); }); }); OnPublished <ContainerPart>((context, part) => _containerService.UpdateItemCount(part)); }
public override IEnumerable <TemplateViewModel> TypePartEditor(ContentTypePartDefinition definition) { if (definition.PartDefinition.Name != "RelatedContentPart") { yield break; } var model = definition.Settings.GetModel <RelatedContentTypeSettings>(); var viewModel = new RelatedContentTypePartSettingsViewModel { CollectionDisplayShape = model.CollectionDisplayShape, RestrictedItemContentTypes = _contentDefinitionManager.ParseContentTypeDefinitions(model.RestrictedItemContentTypes).Select(x => x.Name).ToList(), RestrictItemContentTypes = model.RestrictItemContentTypes, AvailableItemContentTypes = GetRelatableTypes() }; yield return(DefinitionTemplate(viewModel)); }