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
}