using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CMS.Forums;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.UIControls;
using CMS.ExtendedControls;
public partial class CMSModules_Forums_Controls_LiveControls_Subscription : CMSAdminItemsControl
{
#region "Variables"
private int mForumId = 0;
private const string breadCrumbsSeparator = " ";
private bool displayControlPerformed = false;
private bool listVisible = false;
#endregion
#region "Public properties"
///
/// Gets or sets the Forum ID.
///
public int ForumID
{
get
{
return mForumId;
}
set
{
mForumId = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!Visible || StopProcessing)
{
EnableViewState = false;
}
listVisible = plcList.Visible;
plcList.Visible = true;
subscriptionList.Visible = true;
#region "Security"
subscriptionList.OnCheckPermissions += new CheckPermissionsEventHandler(subscriptionList_OnCheckPermissions);
subscriptionEdit.OnCheckPermissions += new CheckPermissionsEventHandler(subscriptionEdit_OnCheckPermissions);
subscriptionNew.OnCheckPermissions += new CheckPermissionsEventHandler(subscriptionNew_OnCheckPermissions);
#endregion
subscriptionNew.ForumID = mForumId;
subscriptionEdit.ForumID = mForumId;
subscriptionList.ForumID = mForumId;
subscriptionList.OnAction += new CommandEventHandler(subscriptionList_OnAction);
int subscriptionId = ValidationHelper.GetInteger(ViewState["SubscriptionID"], 0);
subscriptionEdit.SubscriptionID = subscriptionId;
// New item link
string[,] actions = new string[1,7];
actions[0, 0] = HeaderActions.TYPE_LINKBUTTON;
actions[0, 1] = GetString("ForumSubscription_List.NewItemCaption");
actions[0, 5] = GetImageUrl("Objects/Forums_ForumSubscription/add.png");
actions[0, 6] = "newsubscription";
actionsElem.Actions = actions;
actionsElem.ActionPerformed += new CommandEventHandler(actionsElem_ActionPerformed);
subscriptionNew.OnSaved += new EventHandler(subscriptionNew_OnSaved);
InitializeBreadcrumbs();
// Default show listing
if (!RequestHelper.IsPostBack())
{
DisplayControl("list");
}
}
#region "Security handlers"
private void subscriptionList_OnCheckPermissions(string permissionType, CMSAdminControl sender)
{
RaiseOnCheckPermissions(permissionType, sender);
}
private void subscriptionNew_OnCheckPermissions(string permissionType, CMSAdminControl sender)
{
RaiseOnCheckPermissions(permissionType, sender);
}
private void subscriptionEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender)
{
RaiseOnCheckPermissions(permissionType, sender);
}
#endregion
protected void subscriptionNew_OnSaved(object sender, EventArgs e)
{
int subscriptionId = subscriptionNew.SubscriptionID;
ViewState["SubscriptionID"] = subscriptionId;
ForumSubscriptionInfo fsi = ForumSubscriptionInfoProvider.GetForumSubscriptionInfo(subscriptionId);
if (fsi != null)
{
lblEditBack.Text = breadCrumbsSeparator + HTMLHelper.HTMLEncode(fsi.SubscriptionEmail);
}
subscriptionEdit.SubscriptionID = subscriptionId;
DisplayControl("edit");
}
///
/// New subscription link handler.
///
protected void actionsElem_ActionPerformed(object sender, CommandEventArgs e)
{
switch (e.CommandName.ToLowerCSafe())
{
case "newsubscription":
DisplayControl("new");
break;
}
}
///
/// Edit subscription handler.
///
protected void subscriptionList_OnAction(object sender, CommandEventArgs e)
{
switch (e.CommandName.ToLowerCSafe())
{
case "edit":
int subscriptionId = ValidationHelper.GetInteger(e.CommandArgument, 0);
subscriptionEdit.SubscriptionID = subscriptionId;
ViewState["SubscriptionID"] = subscriptionId;
ForumSubscriptionInfo fsi = ForumSubscriptionInfoProvider.GetForumSubscriptionInfo(subscriptionId);
if (fsi != null)
{
lblEditBack.Text = breadCrumbsSeparator + HTMLHelper.HTMLEncode(fsi.SubscriptionEmail);
}
DisplayControl("edit");
break;
}
}
///
/// Reloads the form data.
///
public override void ReloadData()
{
subscriptionNew.ForumID = mForumId;
subscriptionEdit.ForumID = mForumId;
subscriptionList.ForumID = mForumId;
DisplayControl("list");
}
///
/// Initializes the breadcrumbs.
///
private void InitializeBreadcrumbs()
{
lblNewBack.Text = breadCrumbsSeparator + GetString("forum_list.subscription.newsubscription");
lnkEditBack.Text = GetString("forum_list.subscription.headeractions");
lnkNewBack.Text = GetString("forum_list.subscription.headeractions");
lnkEditBack.Click += new EventHandler(lnkEditBack_Click);
lnkNewBack.Click += new EventHandler(lnkNewBack_Click);
}
protected void lnkNewBack_Click(object sender, EventArgs e)
{
DisplayControl("list");
}
protected void lnkEditBack_Click(object sender, EventArgs e)
{
DisplayControl("list");
}
private void DisplayControl(string selectedControl)
{
// Hide all controls
plcList.Visible = false;
plcEdit.Visible = false;
plcNew.Visible = false;
displayControlPerformed = true;
switch (selectedControl.ToLowerCSafe())
{
// Show edit control
case "edit":
plcEdit.Visible = true;
subscriptionEdit.Visible = true;
subscriptionEdit.ReloadData();
break;
// Show new control
case "new":
plcNew.Visible = true;
subscriptionNew.Visible = true;
subscriptionNew.ReloadData();
break;
// Show list control
default:
plcList.Visible = true;
subscriptionList.Visible = true;
subscriptionList.ReloadData();
break;
}
}
protected override void OnPreRender(EventArgs e)
{
if (!displayControlPerformed)
{
plcList.Visible = listVisible;
subscriptionList.Visible = listVisible;
if (listVisible)
{
subscriptionList.ReloadData();
}
}
base.OnPreRender(e);
}
}