using System;
using System.Web.UI.WebControls;
using SiberTek.Xenta.Enums;
using SiberTek.Xenta.Presentation;
using SiberTek.Xenta.Presentation.Utils;
using SiberTek.Xenta.Presentation.Resources;
using SiberTek.Xenta.Web.Pages;
using SiberTek.Xenta.Web.Utils;
namespace SiberTek.Xenta.Web.Admin.Pages
{
public partial class PublicationDetailsPage : AdminPageBase
{
#region Properties
private int? QParamPublication
{
get
{
return HttpHelper.GetQueryParam<Int32?>("Publication");
}
}
public override bool IsAccessAllowed
{
get
{
return base.IsAccessAllowed && UserContext.Current.HasPermission((int)ContentPermission.PublicationManagment);
}
}
#endregion
#region Methods
public override void ShowMessage(string s)
{
lstMessageList.Items.Add(new ListItem(s));
}
#endregion
#region Handlers
protected override void OnInit(EventArgs e)
{
if(!IsPostBack)
{
grdTagGrid.SetColumnVisibility(0, false);
grdTagGrid.SetColumnVisibility(5, false);
tabTags.Visible = QParamPublication.HasValue;
pnlTags.Visible = QParamPublication.HasValue;
btnSave.CommandName = QParamPublication.HasValue ? "Update" : "Create";
btnDelete.CommandName = "Delete";
btnAddTag.CommandName = "AddTag";
btnRemoveTag.CommandName = "RemoveTag";
btnDelete.Enabled = QParamPublication.HasValue;
btnDelete.Attributes.Add("onClick", String.Format("return confirm(\'{0}\');", StringManager.GetString("Admin.Common.AreYouSure")));
lnkBack.NavigateUrl = UrlHelper.GetUrl("admin", "content/publications.aspx");
lnkHome.NavigateUrl = UrlHelper.GetUrl("admin", "home.aspx");
lblContentTitle.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblContentTitle.Text");
lblBack.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblBack.Text");
lblHome.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblHome.Text");
lblSave.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblSave.Text");
lblDelete.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblDelete.Text");
lblTabMain.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblTabMain.Text");
lblTabTags.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblTabTags.Text");
lblAddRemoveTag.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblAddRemoveTag.Text");
lblSelectTag.Text = StringManager.GetString("Admin.PublicationDetailsPage.lblSelectTag.Text");
btnRemoveTag.Text = StringManager.GetString("Admin.PublicationDetailsPage.btnRemoveTag.Text");
btnAddTag.Text = StringManager.GetString("Admin.PublicationDetailsPage.btnAddTag.Text");
lnkBack.ToolTip = StringManager.GetString("Admin.PublicationDetailsPage.lnkBack.ToolTip");
lnkHome.ToolTip = StringManager.GetString("Admin.PublicationDetailsPage.lnkHome.ToolTip");
btnSave.ToolTip = StringManager.GetString("Admin.PublicationDetailsPage.btnSave.ToolTip");
btnDelete.ToolTip = StringManager.GetString("Admin.PublicationDetailsPage.btnDelete.ToolTip");
}
btnSave.Command += frmPublicationForm.OnCommand;
btnDelete.Command += frmPublicationForm.OnCommand;
btnSave.Command += OnCommand;
btnDelete.Command += OnCommand;
btnAddTag.Command += OnCommand;
btnRemoveTag.Command += OnCommand;
base.OnInit(e);
}
protected override void OnLoad(EventArgs e)
{
if(!IsPostBack)
{
lstTagList.BindData();
}
base.OnLoad(e);
}
protected override void OnLoadComplete(EventArgs e)
{
if(!IsPostBack)
{
frmPublicationForm.PublicationID = QParamPublication;
frmPublicationForm.BindData();
if(QParamPublication.HasValue)
{
if(frmPublicationForm.DataContainer["Publication"] == null)
{
Response.Redirect(UrlHelper.GetUrl("home", "not-found.aspx"));
}
grdTagGrid.PublicationID = QParamPublication.Value;
grdTagGrid.BindData();
}
}
base.OnLoadComplete(e);
}
protected override void OnPreRender(EventArgs e)
{
lstMessageList.DataBind();
base.OnPreRender(e);
}
protected void OnCommand(object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "Create":
{
if(frmPublicationForm.PublicationID.HasValue)
{
Response.Redirect(UrlHelper.FormatUrl("admin", "content/publications/{0}.aspx", frmPublicationForm.PublicationID));
}
}
break;
case "Update":
{
frmPublicationForm.BindData();
}
break;
case "Delete":
{
Response.Redirect(UrlHelper.GetUrl("admin", "content/publications.aspx"));
}
break;
case "AddTag":
{
try
{
ContentHelper.AssignTagToPublication(lstTagList.SelectedValue.Value, QParamPublication.Value);
}
catch(Exception ex)
{
ShowMessage(ex.Message);
}
grdTagGrid.BindData();
}
break;
case "RemoveTag":
{
try
{
ContentHelper.UnassignTagFromPublication(lstTagList.SelectedValue.Value, QParamPublication.Value);
}
catch(Exception ex)
{
ShowMessage(ex.Message);
}
grdTagGrid.BindData();
}
break;
}
}
#endregion
}
}