Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        public IEnumerable <ModuleInfo> GetModules(int pageId)
        {
            var tabModules = _moduleController.GetTabModules(pageId);

            return(tabModules.Values.Where(m => !m.IsDeleted && !m.AllTabs));
        }