//********************************************************************* // // PortalSettings Constructor // // The PortalSettings Constructor encapsulates all of the logic // necessary to obtain configuration settings necessary to render // a Portal Tab view for a given request. // // These Portal Settings are stored within PortalCFG.xml, and are // fetched below by calling config.GetSiteSettings(). // The method config.GetSiteSettings() fills the SiteConfiguration // class, derived from a DataSet, which PortalSettings accesses. // //********************************************************************* public PortalSettings(int tabIndex, int tabId) { // Get the configuration data SiteConfiguration siteSettings = Configuration.GetSiteSettings(); // Read the Desktop Tab Information, and sort by Tab Order foreach (SiteConfiguration.TabRow tRow in siteSettings.Tab.Select("", "TabOrder")) { TabStripDetails tabDetails = new TabStripDetails(); tabDetails.TabId = tRow.TabId; tabDetails.TabName = tRow.TabName; tabDetails.TabOrder = tRow.TabOrder; tabDetails.AuthorizedRoles = tRow.AccessRoles; this.DesktopTabs.Add(tabDetails); } // If the PortalSettings.ActiveTab property is set to 0, change it to // the TabID of the first tab in the DesktopTabs collection if (this.ActiveTab.TabId == 0) { this.ActiveTab.TabId = ((TabStripDetails)this.DesktopTabs[0]).TabId; } // Read the Mobile Tab Information, and sort by Tab Order foreach (SiteConfiguration.TabRow mRow in siteSettings.Tab.Select("ShowMobile='true'", "TabOrder")) { TabStripDetails tabDetails = new TabStripDetails(); tabDetails.TabId = mRow.TabId; tabDetails.TabName = mRow.MobileTabName; tabDetails.AuthorizedRoles = mRow.AccessRoles; this.MobileTabs.Add(tabDetails); } // Read the Module Information for the current (Active) tab SiteConfiguration.TabRow activeTab = siteSettings.Tab.FindByTabId(tabId); // Get Modules for this Tab based on the Data Relation foreach (SiteConfiguration.ModuleRow moduleRow in activeTab.GetModuleRows()) { ModuleSettings moduleSettings = new ModuleSettings(); moduleSettings.ModuleTitle = moduleRow.ModuleTitle; moduleSettings.ModuleId = moduleRow.ModuleId; moduleSettings.ModuleDefId = moduleRow.ModuleDefId; moduleSettings.ModuleOrder = moduleRow.ModuleOrder; moduleSettings.TabId = tabId; moduleSettings.PaneName = moduleRow.PaneName; moduleSettings.AuthorizedEditRoles = moduleRow.EditRoles; moduleSettings.CacheTime = moduleRow.CacheTimeout; moduleSettings.ShowMobile = moduleRow.ShowMobile; // ModuleDefinition data SiteConfiguration.ModuleDefinitionRow modDefRow = siteSettings.ModuleDefinition.FindByModuleDefId(moduleSettings.ModuleDefId); moduleSettings.DesktopSrc = modDefRow.DesktopSourceFile; moduleSettings.MobileSrc = modDefRow.MobileSourceFile; this.ActiveTab.Modules.Add(moduleSettings); } // Sort the modules in order of ModuleOrder this.ActiveTab.Modules.Sort(); // Get the first row in the Global table SiteConfiguration.GlobalRow globalSettings = (SiteConfiguration.GlobalRow)siteSettings.Global.Rows[0]; // Read Portal global settings this.PortalId = globalSettings.PortalId; this.PortalName = globalSettings.PortalName; this.AlwaysShowEditButton = globalSettings.AlwaysShowEditButton; this.ActiveTab.TabIndex = tabIndex; this.ActiveTab.TabId = tabId; this.ActiveTab.TabOrder = activeTab.TabOrder; this.ActiveTab.MobileTabName = activeTab.MobileTabName; this.ActiveTab.AuthorizedRoles = activeTab.AccessRoles; this.ActiveTab.TabName = activeTab.TabName; this.ActiveTab.ShowMobile = activeTab.ShowMobile; }
//******************************************************* // // The ApplyChanges_Click server event handler on this page is used // to save the module settings into the portal configuration system // //******************************************************* private void ApplyChanges_Click(Object Sender, EventArgs e) { // Obtain PortalSettings from Current Context PortalSettings portalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"]; object value = GetModule(); if (value != null) { ModuleSettings m = (ModuleSettings)value; // Construct Authorized User Roles String String editRoles = ""; foreach (ListItem item in authEditRoles.Items) { if (item.Selected == true) { editRoles = editRoles + item.Text + ";"; } } // update module Configuration config = new Configuration(); config.UpdateModule(moduleId, m.ModuleOrder, m.PaneName, moduleTitle.Text, Int32.Parse(cacheTime.Text), editRoles, showMobile.Checked); // Update Textbox Settings moduleTitle.Text = m.ModuleTitle; cacheTime.Text = m.CacheTime.ToString(); // Populate checkbox list with all security roles for this portal // and "check" the ones already configured for this module RolesDB rolesObj = new RolesDB(); SqlDataReader roles = rolesObj.GetPortalRoles(portalSettings.PortalId); // Clear existing items in checkboxlist authEditRoles.Items.Clear(); ListItem allItem = new ListItem(); allItem.Text = "All Users"; if (m.AuthorizedEditRoles.LastIndexOf("All Users") > -1) { allItem.Selected = true; } authEditRoles.Items.Add(allItem); while (roles.Read()) { ListItem item = new ListItem(); item.Text = (String)roles["RoleName"]; item.Value = roles["RoleID"].ToString(); if ((m.AuthorizedEditRoles.LastIndexOf(item.Text)) > -1) { item.Selected = true; } authEditRoles.Items.Add(item); } } // Navigate back to admin page Response.Redirect("TabLayout.aspx?tabid=" + tabId); }