using System; using System.Text; using CMS.GlobalHelper; using CMS.OnlineMarketing; using CMS.UIControls; using CMS.Controls.Configuration; public partial class CMSModules_ContactManagement_Pages_Tools_Header : CMSContactManagementPage { #region "Variables" private int selectedTab; #endregion #region "Properties" /// /// Gets SiteID. /// public override int SiteID { get { if (IsSiteManager) { // Site selector has '0' as 'none' or 'global' record. Return '-4' as 'global' record instead. if (siteSelector.SiteID == UniSelector.US_NONE_RECORD) { return UniSelector.US_GLOBAL_RECORD; } return siteSelector.SiteID; } else { return base.SiteID; } } } #endregion #region "Methods" protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); } protected void Page_Load(object sender, EventArgs e) { if (!RequestHelper.IsPostBack()) { selectedTab = QueryHelper.GetInteger("selectedTab", 0); } // CMSDesk if (!IsSiteManager) { pnlActions.Visible = false; } // Site manager else { // Set site selector siteSelector.OnlyRunningSites = false; siteSelector.AllowEmpty = false; siteSelector.AllowAll = true; siteSelector.AllowGlobal = true; siteSelector.DropDownSingleSelect.AutoPostBack = true; siteSelector.UniSelector.SpecialFields = new string[1,2] { { GetString("general.global"), "0" } }; siteSelector.UniSelector.OnSelectionChanged += UniSelector_OnSelectionChanged; siteSelector.Reload(true); } string append = null; if (IsSiteManager) { ScriptHelper.RegisterStartupScript(this, GetType(), "selectedSiteId", ScriptHelper.GetScript(string.Format("var selectedSiteId = {0};", SiteID))); append = "?siteid=' + selectedSiteId+'&issitemanager=1"; } if (IsSiteManager) { // Activities tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.activities"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_activities'); return false;", RedirectUrl = "Activities/Frameset.aspx" + append }); } // Contacts tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.contact.list"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_contact_list'); return false;", RedirectUrl = "Contact/List.aspx" + append }); // Pending contacts tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.ui.pendingcontacts"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_pendingcontact_list'); return false;", RedirectUrl = "PendingContacts/List.aspx" + append }); // Accounts tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.account.list"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_account_list'); return false;", RedirectUrl = "Account/List.aspx" + append }); // Contact groups tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.contactgroup.list"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_contactgroup_list'); return false;", RedirectUrl = "ContactGroup/List.aspx" + append }); // Configuration tab BasicTabControlMenu.AddTab(new TabItem() { Text = GetString("om.configuration"), OnClientClick = "SetHelpTopic('helpTopic', 'onlinemarketing_configuration'); return false;", RedirectUrl = "Configuration/Frameset.aspx" + append }); BasicTabControlMenu.UrlTarget = "contactManagementContent"; BasicTabControlMenu.SelectedTab = selectedTab; titleElem.TitleText = GetString("om.contactmanagement"); titleElem.TitleImage = GetImageUrl("Objects/OM_ContactManagement/object.png"); titleElem.HelpTopicName = "contactmanagement_general"; titleElem.HelpName = "helpTopic"; } /// /// Handles site selection change event. /// protected void UniSelector_OnSelectionChanged(object sender, EventArgs e) { StringBuilder script = new StringBuilder(); script.Append(@" function OnSelectedIndex() { selectedTab = document.getElementById('TabControlSelItemNo'); if ((selectedTab != null) && (typeof(selectedSiteId) != 'undefined')) { "); int tabIndex = 0; // Activities tab is for site manager only if (IsSiteManager) { script.Append(@"if (selectedTab.value == '", tabIndex++, @"') { parent.frames['contactManagementContent'].location = 'Activities/Frameset.aspx?siteid=' + selectedSiteId + '&issitemanager=1'; } else "); } // Other tabs are in CMSDesk as well string sm = "issitemanager=" + (IsSiteManager ? 1 : 0); script.Append(@"if (selectedTab.value == '", tabIndex++, @"') { parent.frames['contactManagementContent'].location = 'Contact/List.aspx?siteid=' + selectedSiteId + '&", sm, @"'; } else if (selectedTab.value == '", tabIndex++, @"') { parent.frames['contactManagementContent'].location = 'PendingContacts/List.aspx?siteid=' + selectedSiteId + '&", sm, @"'; } else if (selectedTab.value == '", tabIndex++, @"') { parent.frames['contactManagementContent'].location = 'Account/List.aspx?siteid=' + selectedSiteId + '&", sm, @"'; } else if (selectedTab.value == '", tabIndex++, @"') { parent.frames['contactManagementContent'].location = 'ContactGroup/List.aspx?siteid=' + selectedSiteId + '&", sm, @"'; } else { parent.frames['contactManagementContent'].location = 'Configuration/Frameset.aspx?siteid=' + selectedSiteId + '&", sm, @"'; } }} OnSelectedIndex();"); ScriptHelper.RegisterStartupScript(this, GetType(), "OnSelectedIndex", ScriptHelper.GetScript(script.ToString())); } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); // Set panel menu breadcrumbs if (!IsSiteManager) { string[,] breadcrumbs; // Create new breadcrumbs if (titleElem.Breadcrumbs == null) { breadcrumbs = new string[2,4]; breadcrumbs[0, 0] = "Tools"; breadcrumbs[0, 1] = "~/CMSDesk/Tools/Menu.aspx"; breadcrumbs[0, 2] = "toolscontent"; if (!String.IsNullOrEmpty(titleElem.TitleText)) { breadcrumbs[1, 0] = titleElem.TitleText; breadcrumbs[1, 1] = ""; breadcrumbs[1, 2] = ""; } // Register frame height correction script string resizeScript = @" var frames = window.parent.frames; var rows = window.parent.document.body.rows.replace(' ', '').split(','); for (var i = 0; i < frames.length; i++) { if ((frames[i].name == window.name) && (rows[i] != '*')) { rows[i] = parseInt(rows[i], 10) + 30; window.parent.document.body.rows = rows.join(','); break; } }"; ScriptHelper.RegisterClientScriptBlock(this, typeof(String), "FrameHeightCorrection", ScriptHelper.GetScript(resizeScript)); titleElem.Breadcrumbs = breadcrumbs; } } } #endregion }