private void HardDeleteTab(TabInfo tab, bool deleteDescendants) { //get tab modules before deleting page var tabModules = _moduleController.GetTabModules(tab.TabID); //hard delete the tab _tabController.DeleteTab(tab.TabID, tab.PortalID, deleteDescendants); //delete modules that do not have other instances foreach (var kvp in tabModules) { //check if all modules instances have been deleted var delModule = _moduleController.GetModule(kvp.Value.ModuleID, Null.NullInteger, false); if (delModule == null || delModule.TabID == Null.NullInteger) { try { _moduleController.DeleteModule(kvp.Value.ModuleID); } catch (Exception exc) { Logger.Error(exc); } } } }
/// <summary> /// Renders the tab node. /// </summary> /// <param name="parentNode">The parent node.</param> /// <param name="tabInfo">The tab info.</param> /// <param name="moduleController">The module controller.</param> /// <param name="editorHostSettings">The editor host settings.</param> private void RenderTabNode( TreeNode parentNode, TabInfo tabInfo, IModuleController moduleController, List <EditorHostSetting> editorHostSettings) { var tabKey = $"DNNCKT#{tabInfo.TabID}#"; var tabSettingsExists = SettingsUtil.CheckExistsPortalOrPageSettings(editorHostSettings, tabKey); // Tabs var tabNode = new TreeNode { Text = tabInfo.TabName, Value = $"t{tabInfo.TabID}", ImageUrl = tabSettingsExists ? "../images/PageHasSetting.png" : "../images/PageNoSetting.png" }; if (tabInfo.HasChildren) { foreach (var childTab in TabController.GetTabsByParent(tabInfo.TabID, tabInfo.PortalID)) { this.RenderTabNode(tabNode, childTab, moduleController, editorHostSettings); } } var modules = moduleController.GetTabModules(tabInfo.TabID).Values; foreach (var moduleNode in from moduleInfo in modules let moduleKey = $"DNNCKMI#{moduleInfo.ModuleID}#INS#" let moduleSettingsExists = SettingsUtil.CheckExistsModuleSettings(moduleKey, moduleInfo.ModuleID) select new TreeNode { Text = moduleInfo.ModuleTitle, ImageUrl = moduleSettingsExists ? "../images/ModuleHasSetting.png" : "../images/ModuleNoSetting.png", Value = $"m{moduleInfo.ModuleID}" }) { tabNode.ChildNodes.Add(moduleNode); } parentNode.ChildNodes.Add(tabNode); }
private void HardDeleteTab(TabInfo tab, bool deleteDescendants, StringBuilder errors) { if (TabPermissionController.CanDeletePage(tab) && tab.IsDeleted) { if (tab.HasChildren && !deleteDescendants) { errors.Append(string.Format(LocalizeString("Service_RemoveTabWithChildError"), tab.TabName)); return; } //get tab modules before deleting page var tabModules = _moduleController.GetTabModules(tab.TabID); //hard delete the tab _tabController.DeleteTab(tab.TabID, tab.PortalID, deleteDescendants); //delete modules that do not have other instances foreach (var kvp in tabModules) { //check if all modules instances have been deleted var delModule = _moduleController.GetModule(kvp.Value.ModuleID, Null.NullInteger, false); if (delModule == null || delModule.TabID == Null.NullInteger) { try { _moduleController.DeleteModule(kvp.Value.ModuleID); } catch (Exception exc) { Logger.Error(exc); } } } } else { errors.AppendFormat(!tab.IsDeleted ? LocalizeString("TabNotSoftDeleted") : LocalizeString("CanNotDeleteTab"), tab.TabID); } }
public void SetupFirstVersionForExistingTab(int portalId, int tabId) { if (!_tabVersionSettings.IsVersioningEnabled(portalId, tabId)) { return; } // Check if already exist at least one version for the tab if (_tabVersionController.GetTabVersions(tabId).Any()) { return; } var tab = _tabController.GetTab(tabId, portalId); var modules = _moduleController.GetTabModules(tabId).Where(m => m.Value.IsDeleted == false).Select(m => m.Value).ToArray(); // Check if the page has modules if (!modules.Any()) { return; } CreateFirstTabVersion(tabId, tab, modules); }
public IEnumerable <ModuleInfo> GetModules(int pageId) { var tabModules = _moduleController.GetTabModules(pageId); return(tabModules.Values.Where(m => !m.IsDeleted && !m.AllTabs)); }