private bool DeleteTab(int deleteTabId) { var bDeleted = Null.NullBoolean; if (TabPermissionController.CanDeletePage()) { var tabController = new TabController(); bDeleted = tabController.SoftDeleteTab(deleteTabId, PortalSettings); if (!bDeleted) { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("DeleteSpecialPage", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } } else { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("DeletePermissionError", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } return bDeleted; }
protected void CtlPagesContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e) { SelectedNode = e.Node.Value; var tabController = new TabController(); var portalId = rblMode.SelectedValue == "H" ? Null.NullInteger : PortalId; var objTab = tabController.GetTab(int.Parse(e.Node.Value), portalId, false); switch (e.MenuItem.Value.ToLower()) { case "makehome": if (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName)) { var portalController = new PortalController(); PortalInfo portalInfo = portalController.GetPortal(PortalId); portalInfo.HomeTabId = objTab.TabID; PortalSettings.HomeTabId = objTab.TabID; portalController.UpdatePortalInfo(portalInfo); DataCache.ClearPortalCache(PortalId, false); BindTreeAndShowTab(objTab.TabID); ShowSuccessMessage(string.Format(Localization.GetString("TabMadeHome", LocalResourceFile), objTab.TabName)); } break; case "view": Response.Redirect(objTab.FullUrl); break; case "edit": if (TabPermissionController.CanManagePage(objTab)) { var editUrl = Globals.NavigateURL(objTab.TabID, "Tab", "action=edit", "returntabid=" + TabId); // Prevent PageSettings of the current page in a popup if SSL is enabled and enforced, which causes redirection/javascript broswer security issues. if (PortalSettings.EnablePopUps && !(objTab.TabID == TabId && (PortalSettings.SSLEnabled && PortalSettings.SSLEnforced))) { editUrl = UrlUtils.PopUpUrl(editUrl, this, PortalSettings, true, false); var script = string.Format("<script type=\"text/javascript\">{0}</script>", editUrl); ClientAPI.RegisterStartUpScript(Page, "EditInPopup", script); } else { Response.Redirect(editUrl, true); } } break; case "delete": if (TabPermissionController.CanDeletePage(objTab)) { tabController.SoftDeleteTab(objTab.TabID, PortalSettings); BindTree(); //keep the parent tab selected if (objTab.ParentId != Null.NullInteger) { SelectedNode = objTab.ParentId.ToString(CultureInfo.InvariantCulture); ctlPages.FindNodeByValue(SelectedNode).Selected = true; ctlPages.FindNodeByValue(SelectedNode).ExpandParentNodes(); BindTab(objTab.ParentId); } else { pnlDetails.Visible = false; } ShowSuccessMessage(string.Format(Localization.GetString("TabDeleted", LocalResourceFile), objTab.TabName)); } break; case "add": if ((objTab!= null && TabPermissionController.CanAddPage(objTab)) || (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName))) { pnlBulk.Visible = true; btnBulkCreate.CommandArgument = e.Node.Value; ctlPages.FindNodeByValue(e.Node.Value).Selected = true; txtBulk.Focus(); pnlDetails.Visible = false; //Response.Redirect(NavigateURL(objTab.TabID, "Tab", "action=add", "returntabid=" & TabId.ToString), True) } break; case "hide": if (TabPermissionController.CanManagePage(objTab)) { objTab.IsVisible = false; tabController.UpdateTab(objTab); BindTreeAndShowTab(objTab.TabID); ShowSuccessMessage(string.Format(Localization.GetString("TabHidden", LocalResourceFile), objTab.TabName)); } break; case "show": if (TabPermissionController.CanManagePage(objTab)) { objTab.IsVisible = true; tabController.UpdateTab(objTab); BindTreeAndShowTab(objTab.TabID); ShowSuccessMessage(string.Format(Localization.GetString("TabShown", LocalResourceFile), objTab.TabName)); } break; case "disable": if (TabPermissionController.CanManagePage(objTab)) { objTab.DisableLink = true; tabController.UpdateTab(objTab); BindTreeAndShowTab(objTab.TabID); ShowSuccessMessage(string.Format(Localization.GetString("TabDisabled", LocalResourceFile), objTab.TabName)); } break; case "enable": if (TabPermissionController.CanManagePage(objTab)) { objTab.DisableLink = false; tabController.UpdateTab(objTab); BindTreeAndShowTab(objTab.TabID); ShowSuccessMessage(string.Format(Localization.GetString("TabEnabled", LocalResourceFile), objTab.TabName)); } break; } }
protected void enabledCheckbox_CheckChanged(object sender, EventArgs e) { try { if ((sender) is DnnCheckBox) { var enabledCheckbox = (DnnCheckBox) sender; int languageId = int.Parse(enabledCheckbox.CommandArgument); Locale locale = LocaleController.Instance.GetLocale(languageId); Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalId); Dictionary<string, Locale> enabledLanguages = LocaleController.Instance.GetLocales(PortalId); var tabController = new TabController(); var localizedTabs = PortalSettings.ContentLocalizationEnabled ? tabController.GetTabsByPortal(PortalId).WithCulture(locale.Code, false).AsList() : new List<TabInfo>(); var redirectUrl = string.Empty; if (enabledCheckbox.Enabled) { // do not touch default language if (enabledCheckbox.Checked) { if (!enabledLanguages.ContainsKey(locale.Code)) { //Add language to portal Localization.AddLanguageToPortal(PortalId, languageId, true); } //restore the tabs and modules var moduleController = new ModuleController(); foreach (var tab in localizedTabs) { tabController.RestoreTab(tab, PortalSettings); moduleController.GetTabModules(tab.TabID).Values.ToList().ForEach(moduleController.RestoreModule); } } else { //remove language from portal Localization.RemoveLanguageFromPortal(PortalId, languageId); //if the disable language is current language, should redirect to default language. if(locale.Code.Equals(Thread.CurrentThread.CurrentUICulture.ToString(), StringComparison.InvariantCultureIgnoreCase)) { redirectUrl = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, PortalSettings.ActiveTab.IsSuperTab, PortalSettings, "", defaultLocale.Code); } //delete the tabs in this language foreach (var tab in localizedTabs) { tab.DefaultLanguageGuid = Guid.Empty; tabController.SoftDeleteTab(tab.TabID, PortalSettings); } } } //Redirect to refresh page (and skinobjects) if (string.IsNullOrEmpty(redirectUrl)) { redirectUrl = Globals.NavigateURL(); } Response.Redirect(redirectUrl, true); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }