public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (!String.Equals(nameof(ListPart), contentTypePartDefinition.PartDefinition.Name))
            {
                return(null);
            }
            var settings = contentTypePartDefinition.GetSettings <ListPartSettings>();

            var model = new ListPartSettingsViewModel();

            await context.Updater.TryUpdateModelAsync(model, Prefix, m => m.ContainedContentTypes, m => m.PageSize, m => m.EnableOrdering);

            if (model.ContainedContentTypes == null || model.ContainedContentTypes.Length == 0)
            {
                context.Updater.ModelState.AddModelError(nameof(model.ContainedContentTypes), S["At least one content type must be selected."]);
            }
            else
            {
                context.Builder.WithSettings(new ListPartSettings
                {
                    PageSize              = model.PageSize,
                    EnableOrdering        = model.EnableOrdering,
                    ContainedContentTypes = model.ContainedContentTypes
                });

                // Update order of existing content if enable ordering has been turned on
                if (settings.EnableOrdering != model.EnableOrdering && model.EnableOrdering == true)
                {
                    await _containerService.SetInitialOrder(contentTypePartDefinition.ContentTypeDefinition.Name);
                }
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }
        public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (!String.Equals(nameof(ListPart), contentTypePartDefinition.PartDefinition.Name, StringComparison.Ordinal))
            {
                return(null);
            }

            var model = new ListPartSettingsViewModel();

            await context.Updater.TryUpdateModelAsync(model, Prefix, m => m.ContainedContentTypes, m => m.PageSize);

            if (model.ContainedContentTypes == null || model.ContainedContentTypes.Length == 0)
            {
                context.Updater.ModelState.AddModelError(nameof(model.ContainedContentTypes), TS["At least one content type must be selected."]);
            }
            else
            {
                context.Builder.WithSettings(new ListPartSettings
                {
                    PageSize = model.PageSize,
                    ContainedContentTypes = model.ContainedContentTypes
                });
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }
Exemplo n.º 3
0
        public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (!String.Equals("ListPart", contentTypePartDefinition.PartDefinition.Name, StringComparison.Ordinal))
            {
                return(null);
            }

            var model = new ListPartSettingsViewModel();

            await context.Updater.TryUpdateModelAsync(model, Prefix, m => m.ContainedContentType);

            if (_contentDefinitionManager.GetTypeDefinition(model.ContainedContentType) == null)
            {
                context.Updater.ModelState.AddModelError(nameof(model.ContainedContentType), TS["The content type could not be found"]);
            }
            else
            {
                context.Builder.ContainedContentType(model.ContainedContentType);
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }
        public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (!String.Equals(nameof(ListPart), contentTypePartDefinition.PartDefinition.Name))
            {
                return(null);
            }
            var settings = contentTypePartDefinition.GetSettings <ListPartSettings>();

            var model = new ListPartSettingsViewModel();

            await context.Updater.TryUpdateModelAsync(model, Prefix, m => m.ContainedContentTypes, m => m.PageSize, m => m.DataFillMode, m => m.SelectedWorkMapContentItemIds,
                                                      m => m.EnableOrdering, m => m.EnableDetaching, m => m.EnableMoving, m => m.EnableAttaching,
                                                      m => m.AllowUserToSwitchListViews, m => m.AllowUserToAddChildItems, m => m.ShowLatestVersion, m => m.AdminListViewName, m => m.FrontEndListViewName, m => m.AllowUserToSwitchListViewsFrontEnd, m => m.FrontEndListViews, m => m.AllowOverrideDataFillModePerInstance, m => m.UseTemplatesOnCreatingNewListItem, m => m.ShowSearchAndFilterOptions
                                                      , m => m.UseInfiniteScroll
                                                      , m => m.Container
                                                      , m => m.ScrollContainer
                                                      , m => m.Item
                                                      , m => m.Loader
                                                      , m => m.Pagination
                                                      , m => m.NextAnchor
                                                      , m => m.UseHistory
                                                      , m => m.RenderItemsInFrontEnd
                                                      , m => m.RenderItemsInBackEnd

                                                      );

            if (model.ContainedContentTypes == null || model.ContainedContentTypes.Length == 0)
            {
                context.Updater.ModelState.AddModelError(nameof(model.ContainedContentTypes), S["At least one content type must be selected."]);
            }
            else
            {
                context.Builder.WithSettings(new ListPartSettings
                {
                    PageSize              = model.PageSize,
                    EnableOrdering        = model.EnableOrdering,
                    EnableDetaching       = model.EnableDetaching,
                    EnableMoving          = model.EnableMoving,
                    EnableAttaching       = model.EnableAttaching,
                    ContainedContentTypes = model.ContainedContentTypes,
                    //PagerSlimDisabled = model.PagerSlimDisabled,
                    DataFillMode = model.DataFillMode,
                    SelectedWorkMapContentItemIds        = model.SelectedWorkMapContentItemIds,
                    AllowUserToSwitchListViews           = model.AllowUserToSwitchListViews,
                    AllowUserToSwitchListViewsFrontEnd   = model.AllowUserToSwitchListViewsFrontEnd,
                    AllowOverrideDataFillModePerInstance = model.AllowOverrideDataFillModePerInstance,
                    UseTemplatesOnCreatingNewListItem    = model.UseTemplatesOnCreatingNewListItem,
                    ShowSearchAndFilterOptions           = model.ShowSearchAndFilterOptions,
                    AllowUserToAddChildItems             = model.AllowUserToAddChildItems,
                    ShowLatestVersion                = model.ShowLatestVersion,
                    AdminListViewName                = model.AdminListViewName,
                    FrontEndListViewName             = model.FrontEndListViewName,
                    FrontEndListViews                = model.FrontEndListViews?.Trim()
                    , UseInfiniteScroll              = model.UseInfiniteScroll
                    , InfiniteAjaxScrollPartSettings = new InfiniteAjaxScrollPartSettings()
                    {
                        Container       = model.Container,
                        ScrollContainer = model.ScrollContainer,
                        UseHistory      = model.UseHistory,
                        Item            = model.Item,
                        Pagination      = model.Pagination,
                        NextAnchor      = model.NextAnchor,
                        Loader          = model.Loader,
                    }
                    , RenderItemsInFrontEnd = model.RenderItemsInFrontEnd
                    , RenderItemsInBackEnd  = model.RenderItemsInBackEnd
                });

                // Update order of existing content if enable ordering has been turned on
                if (settings.EnableOrdering != model.EnableOrdering && model.EnableOrdering == true)
                {
                    _containerService.SetInitialOrder(contentTypePartDefinition.ContentTypeDefinition.Name).GetAwaiter().GetResult();
                }
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }