using System; using System.Web.UI.WebControls; using CMS.Controls; using CMS.GlobalHelper; public partial class CMSModules_Newsletters_Controls_SubscriptionStatusFilter : CMSAbstractBaseFilterControl { #region "Properties" private const string ALL = "all"; private const string APPROVED = "approved"; private const string WAITING = "waiting"; private const string UNSUBSCRIBED = "unsubscribed"; /// /// Gets or sets the where condition. /// public override string WhereCondition { get { base.WhereCondition = GenerateWhereCondition(); return base.WhereCondition; } set { base.WhereCondition = value; } } #endregion #region "Methods" protected override void OnInit(EventArgs e) { base.OnInit(e); if (!RequestHelper.IsPostBack()) { ReloadItems(); } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); LoadStyles(); } /// /// Reloads control. /// protected void ReloadItems() { ddlStatusFilter.Items.Clear(); ddlStatusFilter.Items.Add(new ListItem(ResHelper.GetString("general.selectall"), ALL)); ddlStatusFilter.Items.Add(new ListItem(ResHelper.GetString("general.approved"), APPROVED)); ddlStatusFilter.Items.Add(new ListItem(ResHelper.GetString("administration.users_header.myapproval"), WAITING)); ddlStatusFilter.Items.Add(new ListItem(ResHelper.GetString("newsletterview.headerunsubscribed"), UNSUBSCRIBED)); } /// /// Loads CSS styles /// private void LoadStyles() { ddlStatusFilter.Items[1].Attributes.Add("Class", "StatusGreen"); ddlStatusFilter.Items[2].Attributes.Add("Class", "StatusOrange"); ddlStatusFilter.Items[3].Attributes.Add("Class", "StatusRed"); } /// /// Generates WHERE condition. /// private string GenerateWhereCondition() { switch (ddlStatusFilter.SelectedValue) { case APPROVED: return "(SubscriptionApproved = 1 OR SubscriptionApproved IS NULL) AND (SubscriptionEnabled = 1 OR SubscriptionEnabled IS NULL)"; case WAITING: return "SubscriptionApproved = 0 AND SubscriptionEnabled = 1"; case UNSUBSCRIBED: return "SubscriptionEnabled = 0"; default: return null; } } /// /// Resets the filter settings. /// public override void ResetFilter() { ddlStatusFilter.SelectedIndex = 0; } #endregion }