public ActionResult EditPlacement(string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            var grouped = _placementService.GetEditorPlacement(id)
                          .OrderBy(x => x.PlacementInfo.GetPosition(), new FlatPositionComparer())
                          .ThenBy(x => x.PlacementSettings.ShapeType)
                          .Where(e => e.PlacementSettings.Zone == "Content")
                          .GroupBy(x => x.PlacementInfo.GetTab())
                          .ToDictionary(x => x.Key, y => y.ToList());

            var content        = grouped.ContainsKey("") ? grouped[""] : new List <DriverResultPlacement>();
            var listPlacements = grouped.Values.SelectMany(e => e).ToList();

            grouped.Remove("");
            var placementModel = new EditPlacementViewModel {
                Content               = content,
                AllPlacements         = listPlacements,
                Tabs                  = grouped,
                ContentTypeDefinition = contentTypeDefinition,
            };

            return(View(placementModel));
        }
        public ActionResult EditPlacementPost(string id, EditPlacementViewModel viewModel)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            contentTypeDefinition.ResetPlacement(PlacementType.Editor);

            foreach (var placement in viewModel.AllPlacements)
            {
                var placementSetting = placement.PlacementSettings;
                contentTypeDefinition.Placement(PlacementType.Editor,
                                                placementSetting.ShapeType,
                                                placementSetting.Differentiator,
                                                placementSetting.Zone,
                                                placementSetting.Position);
            }

            // persist changes
            _contentDefinitionManager.StoreTypeDefinition(contentTypeDefinition);

            _settingsManagerEventHandlers.Value.Invoke(x => x.Saved(_settings), Logger);

            return(RedirectToAction("EditPlacement", new { id }));
        }
Example #3
0
        public ActionResult EditPlacement(string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            var content = Services.ContentManager.New(id);
            var shape   = Services.ContentManager.BuildEditor(content);

            var placementModel = new EditPlacementViewModel {
                PlacementSettings     = contentTypeDefinition.GetPlacement(PlacementType.Editor),
                AllPlacements         = _placementService.GetEditorPlacement(id).OrderBy(x => x.PlacementSettings.Position, new FlatPositionComparer()).ThenBy(x => x.PlacementSettings.ShapeType).ToList(),
                ContentTypeDefinition = contentTypeDefinition,
            };

            return(View(placementModel));
        }
Example #4
0
        public ActionResult EditPlacementPost(string id, EditPlacementViewModel viewModel)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            var allPlacements = _placementService.GetEditorPlacement(id).ToList();
            var result        = new List <PlacementSettings>(contentTypeDefinition.GetPlacement(PlacementType.Editor));

            contentTypeDefinition.ResetPlacement(PlacementType.Editor);

            foreach (var driverPlacement in viewModel.AllPlacements)
            {
                // if the placement has changed, persist it
                if (!allPlacements.Any(x => x.PlacementSettings.Equals(driverPlacement.PlacementSettings)))
                {
                    result = result.Where(x => !x.IsSameAs(driverPlacement.PlacementSettings)).ToList();
                    result.Add(driverPlacement.PlacementSettings);
                }
            }

            foreach (var placementSetting in result)
            {
                contentTypeDefinition.Placement(PlacementType.Editor,
                                                placementSetting.ShapeType,
                                                placementSetting.Differentiator,
                                                placementSetting.Zone,
                                                placementSetting.Position);
            }

            // persist changes
            _contentDefinitionManager.StoreTypeDefinition(contentTypeDefinition);

            _settingsManagerEventHandlers.Value.Invoke(x => x.Saved(_settings), Logger);

            return(RedirectToAction("EditPlacement", new { id }));
        }
Example #5
0
        public ActionResult EditPlacementRestorePost(string id, EditPlacementViewModel viewModel)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("无权限.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            contentTypeDefinition.ResetPlacement(PlacementType.Editor);

            // persist changes
            _contentDefinitionManager.StoreTypeDefinition(contentTypeDefinition);

            _settingsManagerEventHandlers.Value.Invoke(x => x.Saved(_settings), Logger);

            return(RedirectToAction("EditPlacement", new { id }));
        }