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