using System; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.PortalEngine; using CMS.UIControls; using CMS.URLRewritingEngine; public partial class CMSModules_Messaging_Controls_MyMessages : CMSAdminControl { #region "Private variables" private bool mDisplayInbox = true; private bool mDisplayOutbox = true; private bool mDisplayIgnoreList = true; private bool mDisplayContactList = true; private string mParameterName = "subpage"; private CMSAdminControls_UI_PageElements_PageTitle title = null; private string mNotAuthenticatedMessage = String.Empty; #endregion #region "Constants" private const string TAB_INBOX = "inbox"; private const string TAB_OUTBOX = "outbox"; private const string TAB_IGNORE = "ignor"; private const string TAB_CONTACT = "contact"; #endregion #region "Public properties" /// /// Gets or sets the message which should be displayed for public users. /// public string NotAuthenticatedMessage { get { return mNotAuthenticatedMessage; } set { mNotAuthenticatedMessage = value; } } /// /// Gets or sets the value that indicates whether 'inbox' is displayed. /// public bool DisplayInbox { get { return mDisplayInbox; } set { mDisplayInbox = value; } } /// /// Gets or sets the value that indicates whether 'outbox' is displayed. /// public bool DisplayOutbox { get { return mDisplayOutbox; } set { mDisplayOutbox = value; } } /// /// Gets or sets the value that indicates whether 'contact list' is displayed. /// public bool DisplayContactList { get { return mDisplayContactList; } set { mDisplayContactList = value; } } /// /// Gets or sets the value that indicates whether 'ignore list' is displayed. /// public bool DisplayIgnoreList { get { return mDisplayIgnoreList; } set { mDisplayIgnoreList = value; } } /// /// Gets or sets the WebPart CSS class value. /// public string CssClass { get { return pnlBody.CssClass; } set { pnlBody.CssClass = value; } } /// /// Gets or sets the query string parameter name. /// public string ParameterName { get { return mParameterName; } set { mParameterName = value; } } #endregion #region "Page events" /// /// Page load. /// /// Sender /// Event arguments protected void Page_Load(object sender, EventArgs e) { ucContactList.IsLiveSite = IsLiveSite; ucIgnoreList.IsLiveSite = IsLiveSite; ucInbox.IsLiveSite = IsLiveSite; ucOutbox.IsLiveSite = IsLiveSite; title = (CMSAdminControls_UI_PageElements_PageTitle)Page.FindControl("titleElem"); ReloadData(); } #endregion #region "Overridden methods" /// /// Reload data. /// public override void ReloadData() { if (StopProcessing) { // Do nothing ucContactList.StopProcessing = true; ucIgnoreList.StopProcessing = true; ucInbox.StopProcessing = true; ucOutbox.StopProcessing = true; } else { // Show content only for authenticated users if (CMSContext.CurrentUser.IsAuthenticated()) { // Remove 'saved' parameter from querystring string absoluteUri = URLHelper.RemoveParameterFromUrl(URLRewriter.CurrentURL, "saved"); // Selected page url string selectedPage = string.Empty; // Menu initialization tabMenu.TabControlIdPrefix = "MyMessages"; tabMenu.UrlTarget = "_self"; int tabCount = Convert.ToInt32(DisplayOutbox) + Convert.ToInt32(DisplayContactList) + Convert.ToInt32(DisplayIgnoreList) + Convert.ToInt32(DisplayInbox); tabMenu.Tabs = new string[tabCount,5]; int tabIndex = 0; int inboxTabIndex = 0; int outboxTabIndex = 0; int contactTabIndex = 0; int ignoreTabIndex = 0; if (DisplayInbox) { tabMenu.Tabs[tabIndex, 0] = GetString("MyMessages.Inbox"); tabMenu.Tabs[tabIndex, 2] = HTMLHelper.HTMLEncode(URLHelper.AddParameterToUrl(absoluteUri, ParameterName, TAB_INBOX)); inboxTabIndex = tabIndex; tabIndex++; selectedPage = string.IsNullOrEmpty(selectedPage) ? TAB_INBOX : selectedPage; } if (DisplayOutbox) { tabMenu.Tabs[tabIndex, 0] = GetString("MyMessages.Outbox"); tabMenu.Tabs[tabIndex, 2] = HTMLHelper.HTMLEncode(URLHelper.AddParameterToUrl(absoluteUri, ParameterName, TAB_OUTBOX)); outboxTabIndex = tabIndex; tabIndex++; selectedPage = string.IsNullOrEmpty(selectedPage) ? TAB_OUTBOX : selectedPage; } if (DisplayContactList) { tabMenu.Tabs[tabIndex, 0] = GetString("MyMessages.ContactList"); tabMenu.Tabs[tabIndex, 2] = HTMLHelper.HTMLEncode(URLHelper.AddParameterToUrl(absoluteUri, ParameterName, TAB_CONTACT)); contactTabIndex = tabIndex; tabIndex++; selectedPage = string.IsNullOrEmpty(selectedPage) ? TAB_CONTACT : selectedPage; } if (DisplayIgnoreList) { tabMenu.Tabs[tabIndex, 0] = GetString("MyMessages.IgnoreList"); tabMenu.Tabs[tabIndex, 2] = HTMLHelper.HTMLEncode(URLHelper.AddParameterToUrl(absoluteUri, ParameterName, TAB_IGNORE)); ignoreTabIndex = tabIndex; selectedPage = string.IsNullOrEmpty(selectedPage) ? TAB_IGNORE : selectedPage; } // Set css class pnlBody.CssClass = CssClass; // Change tabs header css class in dashboard if (PortalContext.GetViewMode() == ViewModeEnum.DashboardWidgets) { pnlHeader.CssClass = "TabsHeader LightTabs"; } // Get page url selectedPage = QueryHelper.GetText(ParameterName, selectedPage); // Set controls visibility ucInbox.Visible = false; ucInbox.StopProcessing = true; ucInbox.EnableViewState = false; ucOutbox.Visible = false; ucOutbox.StopProcessing = true; ucOutbox.EnableViewState = false; ucIgnoreList.Visible = false; ucIgnoreList.StopProcessing = true; ucIgnoreList.EnableViewState = false; ucContactList.Visible = false; ucContactList.StopProcessing = true; ucContactList.EnableViewState = false; // Select current page switch (selectedPage) { default: case TAB_INBOX: tabMenu.SelectedTab = inboxTabIndex; ucInbox.Visible = true; ucInbox.StopProcessing = false; ucInbox.EnableViewState = true; if (title != null) { title.HelpName = "helpTopic"; title.HelpTopicName = "my_messages_inbox"; } break; case TAB_OUTBOX: tabMenu.SelectedTab = outboxTabIndex; ucOutbox.Visible = true; ucOutbox.StopProcessing = false; ucOutbox.EnableViewState = true; if (title != null) { title.HelpName = "helpTopic"; title.HelpTopicName = "my_messages_outbox"; } break; case TAB_CONTACT: tabMenu.SelectedTab = contactTabIndex; ucContactList.Visible = true; ucContactList.StopProcessing = false; ucContactList.EnableViewState = true; if (title != null) { title.HelpName = "helpTopic"; title.HelpTopicName = "my_messages_contact_list"; } break; case TAB_IGNORE: tabMenu.SelectedTab = ignoreTabIndex; ucIgnoreList.Visible = true; ucIgnoreList.StopProcessing = false; ucIgnoreList.EnableViewState = true; if (title != null) { title.HelpName = "helpTopic"; title.HelpTopicName = "my_messages_ignore_list"; } break; } } else { if (!String.IsNullOrEmpty(NotAuthenticatedMessage)) { litMessage.Text = NotAuthenticatedMessage; litMessage.Visible = true; pnlBody.Visible = false; } else { Visible = false; } ucContactList.StopProcessing = true; ucIgnoreList.StopProcessing = true; ucInbox.StopProcessing = true; ucOutbox.StopProcessing = true; } } } #endregion }