protected void grdEntities_RowDrop(object sender, GridDragDropEventArgs e) { if (e.DestDataItem != null) { var UncachedSexyContent = SexyUncached; ContentGroupItem DestItem = UncachedSexyContent.TemplateContext.GetContentGroupItem(((int)e.DestDataItem.GetDataKeyValue("ID"))); ContentGroupItem Item = UncachedSexyContent.TemplateContext.GetContentGroupItem(((int)e.DraggedItems[0].GetDataKeyValue("ID"))); int DestinationSortOrder = DestItem.SortOrder; if (e.DropPosition == GridItemDropPosition.Below) { DestinationSortOrder++; } if (Item.SortOrder < DestinationSortOrder) { DestinationSortOrder--; } UncachedSexyContent.TemplateContext.ReorderContentGroupItem(Item, DestinationSortOrder, true); grdEntities.Rebind(); grdEntities.Items[DestinationSortOrder].Selected = true; } }
public ContentGroupItem AddContentGroupItem(ContentGroupItem Item) { base.ContentGroupItems.AddObject(Item); SaveChanges(); return(Item); }
protected void UpdateModuleTitleIfNecessary(ToSic.Eav.Entity entity, ContentGroupItem groupItem) { // Creating new Context, because EntityTitle gets not refreshed otherwise var sexyContext = new SexyContent(ZoneId, AppId, true); // Get ContentGroup var listContentGroupItem = sexyContext.TemplateContext.GetListContentGroupItem(groupItem.ContentGroupID, UserId); var entityModel = sexyContext.ContentContext.GetEntityModel(entity.EntityID); // If this is the list title, or no list-title exists, set module title if (groupItem.ItemType == ContentGroupItemType.ListContent || (listContentGroupItem == null && groupItem.ItemType == ContentGroupItemType.Content && groupItem.SortOrder == 0) && entityModel.IsPublished) { var languages = Sexy.ContentContext.GetLanguages(); // Find Module for default language var moduleController = new ModuleController(); var originalModule = moduleController.GetModule(ModuleID); // Update Original Module if no languages active if (languages.Count == 0) { // Get Title value of Entitiy in current language string titleValue = entityModel.Title[0].ToString(); originalModule.ModuleTitle = titleValue; moduleController.UpdateModule(originalModule); } foreach (var dimension in languages) { // Get Title value of Entitiy in current language string titleValue = entityModel.Title[dimension.DimensionID].ToString(); if (!originalModule.IsDefaultLanguage) { originalModule = originalModule.DefaultLanguageModule; } // Break if default language module is null if (originalModule == null) { return; } // Find module for given Culture var moduleByCulture = moduleController.GetModuleByCulture(originalModule.ModuleID, originalModule.TabID, PortalId, LocaleController.Instance.GetLocale(dimension.ExternalKey)); // Break if no module found if (moduleByCulture == null) { return; } moduleByCulture.ModuleTitle = titleValue; moduleController.UpdateModule(moduleByCulture); } } }
protected void ProcessView() { List <ContentGroupItemType> EditableItemsTypes = new List <ContentGroupItemType>(); if (CurrentlyEditedItems.Any() && CurrentlyEditedItems.Any(c => c.ItemType == ContentGroupItemType.Content)) { EditableItemsTypes.Add(ContentGroupItemType.Content); EditableItemsTypes.Add(ContentGroupItemType.Presentation); } if (SortOrder == -1 || CurrentlyEditedItems.Any(c => c.ItemType == ContentGroupItemType.ListContent)) { EditableItemsTypes.Add(ContentGroupItemType.ListContent); EditableItemsTypes.Add(ContentGroupItemType.ListPresentation); } if (Items.Any() && Items.First().TemplateID.HasValue) { foreach (var TemplateDefault in Sexy.GetTemplateDefaults(Items.First().TemplateID.Value).Where(c => EditableItemsTypes.Contains(c.ItemType))) { if (TemplateDefault.ContentTypeID.HasValue && TemplateDefault.ContentTypeID.Value > 0) { ContentGroupItem ContentGroupItem = null; if (CurrentlyEditedItems.Any() && CurrentlyEditedItems.First().ContentGroupItemID != 0) { ContentGroupItem = CurrentlyEditedItems.FirstOrDefault(p => p.ItemType == TemplateDefault.ItemType); } var editControl = (EditContentGroupItem)LoadControl(System.IO.Path.Combine(TemplateSourceDirectory, "EditContentGroupItem.ascx")); editControl.ContentGroupItemID = ContentGroupItem != null && ContentGroupItem.ContentGroupID != 0 ? ContentGroupItem.ContentGroupItemID : new int?(); editControl.ContentGroupID = ContentGroupID.Value; editControl.AppId = AppId.Value; editControl.ZoneId = ZoneId.Value; editControl.ItemType = TemplateDefault.ItemType; editControl.TemplateID = Items.First().TemplateID.Value; editControl.SortOrder = CurrentlyEditedItems.Any() || SortOrder == -1 ? SortOrder : new int?(); editControl.ModuleID = ModuleId; editControl.TabID = TabId; editControl.AttributeSetID = TemplateDefault.ContentTypeID.Value; phNewOrEditControls.Controls.Add(editControl); } } } // Directly edit entity Id if ((!SortOrder.HasValue && EntityId.HasValue) || (!SortOrder.HasValue && AttributeSetId.HasValue && NewMode)) { var editControl = (EditEntity)LoadControl(System.IO.Path.Combine(TemplateSourceDirectory, "EditEntity.ascx")); editControl.AppId = AppId.Value; editControl.ZoneId = ZoneId.Value; editControl.ModuleID = ModuleId; editControl.TabID = TabId; editControl.AttributeSetID = AttributeSetId.HasValue ? AttributeSetId.Value : Sexy.ContentContext.GetEntity(EntityId.Value).AttributeSetID; editControl.EntityId = EntityId; phNewOrEditControls.Controls.Add(editControl); } }
/// <summary> /// Create a new ContentGroupItem object. /// </summary> /// <param name="contentGroupItemID">Initial value of the ContentGroupItemID property.</param> /// <param name="contentGroupID">Initial value of the ContentGroupID property.</param> /// <param name="sortOrder">Initial value of the SortOrder property.</param> /// <param name="type">Initial value of the Type property.</param> /// <param name="sysCreated">Initial value of the SysCreated property.</param> /// <param name="sysCreatedBy">Initial value of the SysCreatedBy property.</param> /// <param name="sysModified">Initial value of the SysModified property.</param> /// <param name="sysModifiedBy">Initial value of the SysModifiedBy property.</param> public static ContentGroupItem CreateContentGroupItem(global::System.Int32 contentGroupItemID, global::System.Int32 contentGroupID, global::System.Int32 sortOrder, global::System.String type, global::System.DateTime sysCreated, global::System.Int32 sysCreatedBy, global::System.DateTime sysModified, global::System.Int32 sysModifiedBy) { ContentGroupItem contentGroupItem = new ContentGroupItem(); contentGroupItem.ContentGroupItemID = contentGroupItemID; contentGroupItem.ContentGroupID = contentGroupID; contentGroupItem.SortOrder = sortOrder; contentGroupItem.Type = type; contentGroupItem.SysCreated = sysCreated; contentGroupItem.SysCreatedBy = sysCreatedBy; contentGroupItem.SysModified = sysModified; contentGroupItem.SysModifiedBy = sysModifiedBy; return(contentGroupItem); }
/// <summary> /// Reorders ContentGroupItems in the group /// </summary> /// <param name="Item"></param> /// <param name="DestinationSortOrder"></param> /// <param name="UserId"></param> /// <param name="AutoSave"></param> public void ReorderContentGroupItem(ContentGroupItem Item, int DestinationSortOrder, bool AutoSave) { // If Destination is more than the highest sortorder, reset to max var maxSortOrder = GetContentGroupItems(Item.ContentGroupID).Max(p => p.SortOrder); if (DestinationSortOrder > maxSortOrder) { DestinationSortOrder = maxSortOrder; } // Return if the Item is already at that position if (Item.SortOrder == DestinationSortOrder) { return; } List <ContentGroupItem> Items; List <ContentGroupItem> RelatedItems = GetContentGroupItems(Item.ContentGroupID).Where(p => p.SortOrder == Item.SortOrder).ToList(); // Item moved up if (Item.SortOrder > DestinationSortOrder) { Items = GetContentGroupItems(Item.ContentGroupID).Where(p => p.SortOrder >= DestinationSortOrder && p.SortOrder < Item.SortOrder).ToList(); // Set new SortOrder on Items that have to move Items.ForEach(p => p.SortOrder = p.SortOrder + 1); } else // Item moved down { Items = GetContentGroupItems(Item.ContentGroupID).Where(p => p.SortOrder > Item.SortOrder && p.SortOrder <= DestinationSortOrder).ToList(); // Set new SortOrder on Items that have to move Items.ForEach(p => p.SortOrder = p.SortOrder - 1); } // Set SortOrder of items with the same SortOrder (for example, presentation) RelatedItems.ForEach(p => p.SortOrder = DestinationSortOrder); if (AutoSave) { SaveChanges(); } }
/// <summary> /// Deprecated Method for adding a new object to the ContentGroupItems EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToContentGroupItems(ContentGroupItem contentGroupItem) { base.AddObject("ContentGroupItems", contentGroupItem); }
public ContentGroupItem UpdateContentGroupItem(ContentGroupItem Item) { SaveChanges(); return(Item); }