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.CMSHelper;
using CMS.ExtendedControls;
using CMS.Forums;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.UIControls;
public partial class CMSModules_Forums_Controls_Posts_PostView : CMSAdminEditControl
{
#region "Private fields"
private int mPostId = 0;
private int mForumId = 0;
private int mReply = 0;
private string mListingPost = null;
private ForumViewer ThreadMove1 = null;
private ForumPostInfo mPostInfo = null;
private string listingParameter = null;
#endregion
#region "Public properties"
///
/// Messages placeholder
///
public override MessagesPlaceHolder MessagesPlaceHolder
{
get
{
return plcMess;
}
}
///
/// Indicates if control is used on live site.
///
public override bool IsLiveSite
{
get
{
return base.IsLiveSite;
}
set
{
plcMess.IsLiveSite = value;
base.IsLiveSite = value;
}
}
///
/// ID of the currently processed post.
///
public int PostID
{
get
{
return mPostId;
}
set
{
mPostId = value;
}
}
///
/// ID of the currently processed forum.
///
public int ForumID
{
get
{
return mForumId;
}
set
{
mForumId = value;
}
}
///
/// Gets or sets the post id which leads to forum post listing
/// Note: Value is combined as postid;forumid
///
public string ListingPost
{
get
{
return mListingPost;
}
set
{
mListingPost = value;
}
}
///
/// ID of the reply for some post.
///
public int Reply
{
get
{
return mReply;
}
set
{
mReply = value;
}
}
///
/// Gets the post info according to PostID property.
///
private ForumPostInfo PostInfo
{
get
{
if ((mPostInfo == null) && (PostID > 0))
{
mPostInfo = ForumPostInfoProvider.GetForumPostInfo(PostID);
}
return mPostInfo;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
// Show back link if is opened from listing
if (!String.IsNullOrEmpty(ListingPost) && (PostInfo != null))
{
listingParameter = "&listingpost=" + HTMLHelper.HTMLEncode(ListingPost);
lnkBackListing.Text = GetString("Forums.BackToListing");
lnkBackListing.NavigateUrl = "javascript:BackToListing();";
pnlListing.Visible = true;
pnlListing.Attributes.Add("style", "border-bottom:1px solid #CCCCCC;font-size:12px; padding:5px 10px;");
}
ThreadMove1 = Page.LoadUserControl("~/CMSModules/Forums/Controls/ThreadMove.ascx") as ForumViewer;
ThreadMove1.ID = "ctrlThreadMove";
ThreadMove1.IsLiveSite = IsLiveSite;
plcThreadMove.Controls.Add(ThreadMove1);
if (!Visible)
{
EnableViewState = false;
}
PostEdit1.OnCancelClick += new EventHandler(ForumNewPost1_OnCancelClick);
PostEdit1.OnCheckPermissions += new CheckPermissionsEventHandler(PostEdit1_OnCheckPermissions);
PostEdit1.IsLiveSite = false;
if (Reply != 0)
{
NewThreadTitle.TitleText = GetString("ForumPost_View.PostTitleText");
NewThreadTitle.TitleImage = GetImageUrl("CMSModules/CMS_Forums/newthread.png");
pnlBody.Visible = false;
PanelNewThread.Visible = true;
PostEdit1.ReplyToPostID = PostID;
PostEdit1.ForumID = ForumID;
PostEdit1.OnInsertPost += new EventHandler(ForumNewPost1_OnInsertPost);
}
else
{
//New thread
if (ForumID != 0)
{
NewThreadTitle.TitleText = GetString("ForumPost_View.NewThreadHeaderCaption");
NewThreadTitle.TitleImage = GetImageUrl("CMSModules/CMS_Forums/newthread.png");
pnlBody.Visible = false;
PanelNewThread.Visible = true;
PostEdit1.ForumID = ForumID;
PostEdit1.OnInsertPost += new EventHandler(ForumNewPost1_OnInsertPost);
}
else
{
// Selected post
PostTitle.TitleText = GetString("ForumPost_View.PostTitleText");
PostTitle.TitleImage = GetImageUrl("Objects/Forums_ForumPost/object.png");
PostAttachmentTitle.TitleText = GetString("ForumPost_View.PostAttachmentTitle");
PostAttachmentTitle.TitleImage = GetImageUrl("CMSModules/CMS_Forums/attachments.png");
if (BrowserHelper.IsIE())
{
upload.Style.Add("height", "24px;");
}
if (PostInfo == null)
{
pnlMenu.Visible = false;
return;
}
ForumInfo fi = ForumInfoProvider.GetForumInfo(PostInfo.PostForumID);
if (fi != null)
{
ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ForumScripts",
ScriptHelper.GetScript(" function ReplyToPost(postId)\n" +
"{ if (postId != 0){\n" +
"location.href='ForumPost_View.aspx?postid=' + postId + '&reply=1&forumId=" + fi.ForumID + listingParameter + "' }}\n"));
}
//Create menu using inserted skmMenu control
InitializeMenu();
ltlScript.Text += ScriptHelper.GetScript(
"function DeletePost(postId) { if (confirm(" + ScriptHelper.GetString(GetString("ForumPost_View.DeleteConfirmation")) + ")) { " + Page.ClientScript.GetPostBackEventReference(btnDelete, null) + "; } } \n" +
"function ApprovePost(postId) { " + Page.ClientScript.GetPostBackEventReference(btnApprove, null) + "; } \n" +
"function ApproveSubTree(postId) { " + Page.ClientScript.GetPostBackEventReference(btnApproveSubTree, null) + "; } \n" +
"function RejectSubTree(postId) { " + Page.ClientScript.GetPostBackEventReference(btnRejectSubTree, null) + "; } \n" +
"function StickThread(postId) { " + Page.ClientScript.GetPostBackEventReference(btnStickThread, null) + "; } \n" +
"function SplitThread(postId) { " + Page.ClientScript.GetPostBackEventReference(btnSplitThread, null) + "; } \n" +
"function LockThread(postId) { " + Page.ClientScript.GetPostBackEventReference(btnLockThread, null) + "; } \n"
);
ForumPost1.ForumID = ForumID;
ForumPost1.PostID = PostID;
ForumPost1.DisplayOnly = true;
if ((PostInfo != null) && (PostInfo.PostAttachmentCount > 0))
{
ReloadAttachmentData(PostID);
}
}
}
}
private void ReloadAttachmentData(int PostId)
{
string where = "(AttachmentPostID = " + PostId + ")";
// Load unigrid
UniGrid.IsLiveSite = IsLiveSite;
UniGrid.ObjectType = "Forums.ForumAttachment";
UniGrid.Columns = "AttachmentID,AttachmentFileName,AttachmentFileSize,AttachmentGUID";
UniGrid.WhereCondition = where;
UniGrid.OnAction += UniGrid_OnAction;
UniGrid.OnExternalDataBound += UniGrid_OnExternalDataBound;
UniGrid.Visible = true;
Panel pnlUniGrid = ControlsHelper.GetChildControl(UniGrid, typeof(Panel), "pnlContent") as Panel;
if (pnlUniGrid != null)
{
pnlUniGrid.Style.Add("margin-bottom", "15px");
}
}
private void PostEdit1_OnCheckPermissions(string permissionType, CMSAdminControl sender)
{
if (!CheckPermissions("cms.forums", permissionType))
{
sender.StopProcessing = true;
}
}
///
/// Unigrid External bound event handler.
///
private object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter)
{
// Display link instead of title
switch (sourceName.ToLowerCSafe())
{
case "title":
if (parameter != DBNull.Value)
{
DataRowView row = (DataRowView)parameter;
// Get info
Guid attachmentGuid = ValidationHelper.GetGuid(row["AttachmentGUID"], Guid.Empty);
if (attachmentGuid != Guid.Empty)
{
string url = URLHelper.GetAbsoluteUrl("~/CMSModules/Forums/CMSPages/GetForumAttachment.aspx?fileguid=" + attachmentGuid);
string title = ValidationHelper.GetString(row["AttachmentFileName"], "");
// Create link to post attachment
HyperLink link = new HyperLink();
link.NavigateUrl = url;
link.Target = "_blank";
link.Text = HTMLHelper.HTMLEncode(title);
link.ToolTip = url;
return link;
}
}
break;
case "filesize":
return DataHelper.GetSizeString(ValidationHelper.GetLong(parameter, 0));
}
return parameter.ToString();
}
///
/// Unigrid Action event handler.
///
private void UniGrid_OnAction(string actionName, object actionArgument)
{
if (actionName == "delete")
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
ForumAttachmentInfoProvider.DeleteForumAttachmentInfo(ValidationHelper.GetInteger(actionArgument, 0));
}
}
protected void ForumNewPost1_OnCancelClick(object sender, EventArgs e)
{
URLHelper.Redirect("ForumPost_View.aspx?postid=" + PostID + listingParameter);
}
///
/// On insert.
///
private void ForumNewPost1_OnInsertPost(object sender, EventArgs e)
{
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostEdit1.EditPostID + "&forumid=" + ForumID.ToString() + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostEdit1.EditPostID + listingParameter + "';");
}
protected void InitializeMenu()
{
// Check if maximum post level is not exceeded
bool maxLevelExceeded = (PostInfo != null) && (PostInfo.PostLevel >= ForumPostInfoProvider.MaxPostLevel);
// Edit
lnkEdit.Text = GetString("general.edit");
lnkEdit.ToolTip = GetString("ForumPost_View.EditToolTip");
lnkEdit.NavigateUrl = "#";
lnkEdit.Attributes.Add("onclick", "EditPost(" + PostID.ToString() + "); return false;");
lnkEdit.Style.Add("color", "#000000;");
lnkEditImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/edit.png");
lnkEditImg.ToolTip = GetString("ForumPost_View.EditToolTip");
lnkEditImg.NavigateUrl = "#";
lnkEditImg.Attributes.Add("onclick", "EditPost(" + PostID.ToString() + "); return false;");
// Delete
lnkDelete.Text = GetString("general.delete");
lnkDelete.ToolTip = GetString("ForumPost_View.DeleteToolTip");
lnkDelete.NavigateUrl = "#";
lnkDelete.Attributes.Add("onclick", "DeletePost(" + PostID.ToString() + "); return false;");
lnkDelete.Style.Add("color", "#000000;");
lnkDeleteImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/delete.png");
lnkDeleteImg.ToolTip = GetString("ForumPost_View.DeleteToolTip");
lnkDeleteImg.NavigateUrl = "#";
lnkDeleteImg.Attributes.Add("onclick", "DeletePost(" + PostID.ToString() + "); return false;");
// Reply
lnkReply.Text = GetString("ForumPost_View.IconReply");
lnkReply.ToolTip = GetString("ForumPost_View.ReplyToolTip");
lnkReply.NavigateUrl = "#";
lnkReply.Style.Add("color", "#000000;");
if (maxLevelExceeded)
{
lnkReply.Enabled = false;
}
else
{
lnkReply.Attributes.Add("onclick", "ReplyToPost(" + PostID.ToString() + "); return false;");
}
lnkReplyImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/reply.png");
lnkReplyImg.ToolTip = GetString("ForumPost_View.ReplyToolTip");
lnkReplyImg.NavigateUrl = "#";
if (maxLevelExceeded)
{
lnkReplyImg.Enabled = false;
}
else
{
lnkReplyImg.Attributes.Add("onclick", "ReplyToPost(" + PostID.ToString() + "); return false;");
}
// Stick thread
if (PostInfo.PostLevel == 0)
{
ThreadMove1.SetValue("AdminMode", true);
ThreadMove1.SetValue("SelectedThreadID", PostInfo.PostId);
lnkMoveThread.Text = GetString("ForumPost_View.IconMove");
lnkMoveThread.ToolTip = GetString("ForumPost_View.MoveToolTip");
lnkMoveThread.NavigateUrl = "#";
lnkMoveThread.Attributes.Add("onclick", ControlsHelper.GetPostBackEventReference(btnMoveThread, null) + "; return false;");
lnkMoveThread.Style.Add("color", "#000000;");
lnkMoveThreadImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/move.png");
lnkMoveThreadImg.ToolTip = GetString("ForumPost_View.MoveToolTip");
lnkMoveThreadImg.NavigateUrl = "#";
lnkMoveThreadImg.Attributes.Add("onclick", ControlsHelper.GetPostBackEventReference(btnMoveThread, null) + "; return false;");
plcSplit.Visible = false;
if (PostInfo.PostStickOrder > 0)
{
lnkStick.Text = GetString("ForumPost_View.IconUnStick");
lnkStick.ToolTip = GetString("ForumPost_View.UnStickToolTip");
lnkStickImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/unstick.png");
lnkStickImg.ToolTip = GetString("ForumPost_View.UnStickToolTip");
}
else
{
lnkStick.Text = GetString("ForumPost_View.IconStick");
lnkStick.ToolTip = GetString("ForumPost_View.StickToolTip");
lnkStickImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/stick.png");
lnkStickImg.ToolTip = GetString("ForumPost_View.StickToolTip");
}
lnkStick.Attributes.Add("onclick", "StickThread(" + PostID.ToString() + "); return false;");
lnkStick.Style.Add("color", "#000000;");
lnkStick.NavigateUrl = "#";
lnkStickImg.NavigateUrl = "#";
lnkStickImg.Attributes.Add("onclick", "StickThread(" + PostID.ToString() + "); return false;");
// Lock thread
if (PostInfo.PostIsLocked)
{
lnkLock.Text = GetString("ForumPost_View.IconUnLock");
lnkLock.ToolTip = GetString("ForumPost_View.UnLockToolTip");
lnkLockImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/unstick.png");
lnkLockImg.ToolTip = GetString("ForumPost_View.UnLockToolTip");
}
else
{
lnkLock.Text = GetString("ForumPost_View.IconLock");
lnkLock.ToolTip = GetString("ForumPost_View.LockToolTip");
lnkLockImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/lock.png");
lnkLockImg.ToolTip = GetString("ForumPost_View.LockToolTip");
}
lnkLock.Attributes.Add("onclick", "LockThread(" + PostID.ToString() + "); return false;");
lnkLock.Style.Add("color", "#000000;");
lnkLock.NavigateUrl = "#";
lnkLockImg.NavigateUrl = "#";
lnkLockImg.Attributes.Add("onclick", "LockThread(" + PostID.ToString() + "); return false;");
}
else
{
// Hide lock and stick for posts which are not root of thread
plcRoot.Visible = false;
// Split
lnkSplit.Text = GetString("ForumPost_View.IconSplit");
lnkSplit.ToolTip = GetString("ForumPost_View.SplitToolTip");
lnkSplit.NavigateUrl = "#";
lnkSplit.Attributes.Add("onclick", "ForumSplitConfirm();return false;");
lnkSplit.Style.Add("color", "#000000;");
lnkSplitImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/split.png");
lnkSplitImg.ToolTip = GetString("ForumPost_View.SplitToolTip");
lnkSplitImg.NavigateUrl = "#";
lnkSplitImg.Attributes.Add("onclick", "SplitThread(" + PostID.ToString() + "); return false;");
//Register split confirmation script
ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ForumSplitConfirm",
ScriptHelper.GetScript(" function ForumSplitConfirm() {\n" +
"if (confirm(" + ScriptHelper.GetString(GetString("ForumPost_View.SplitConfirmation")) + ")) { \n ;SplitThread(" + PostID.ToString() + "); return false; \n}else{ return false; }\n}"
));
}
if (!PostInfo.PostApproved)
{
lnkApproveReject.Text = GetString("general.approve");
lnkApproveReject.ToolTip = GetString("ForumPost_View.ApproveToolTip");
lnkApproveRejectImg.ToolTip = GetString("ForumPost_View.ApproveToolTip");
lnkApproveRejectImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/approve.png");
}
else
{
lnkApproveReject.Text = GetString("general.reject");
lnkApproveReject.ToolTip = GetString("ForumPost_View.RejectToolTip");
lnkApproveRejectImg.ToolTip = GetString("ForumPost_View.RejectToolTip");
lnkApproveRejectImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/reject.png");
}
lnkApproveReject.NavigateUrl = "#";
lnkApproveRejectImg.NavigateUrl = "#";
lnkApproveReject.Attributes.Add("onclick", "ApprovePost(" + PostID.ToString() + "); return false;");
lnkApproveReject.Style.Add("color", "#000000;");
lnkApproveRejectImg.Attributes.Add("onclick", "ApprovePost(" + PostID.ToString() + "); return false;");
if (!PostInfo.PostApproved)
{
lnkApproveSub.Text = GetString("ForumPost_View.IconApproveSubTree");
lnkApproveSub.ToolTip = GetString("ForumPost_View.ApproveSubTreeToolTip");
lnkApproveSub.NavigateUrl = "#";
lnkApproveSub.Attributes.Add("onclick", "ApproveSubTree(" + PostID.ToString() + "); return false;");
lnkApproveSub.Style.Add("color", "#000000;");
lnkApproveSubImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/approve.png");
lnkApproveSubImg.ToolTip = GetString("ForumPost_View.ApproveSubTreeToolTip");
lnkApproveSubImg.NavigateUrl = "#";
lnkApproveSubImg.Attributes.Add("onclick", "ApproveSubTree(" + PostID.ToString() + "); return false;");
}
else
{
lnkApproveSub.Text = GetString("ForumPost_View.IconRejectSubTree");
lnkApproveSub.ToolTip = GetString("ForumPost_View.RejectSubTreeToolTip");
lnkApproveSub.NavigateUrl = "#";
lnkApproveSub.Attributes.Add("onclick", "RejectSubTree(" + PostID.ToString() + "); return false;");
lnkApproveSub.Style.Add("color", "#000000;");
lnkApproveSubImg.ImageUrl = GetImageUrl("CMSModules/CMS_Forums/reject.png");
lnkApproveSubImg.ToolTip = GetString("ForumPost_View.RejectSubTreeToolTip");
lnkApproveSubImg.NavigateUrl = "#";
lnkApproveSubImg.Attributes.Add("onclick", "RejectSubTree(" + PostID.ToString() + "); return false;");
}
}
///
/// OnPrerender override.
///
/// EventArgs
protected override void OnPreRender(EventArgs e)
{
if (ValidationHelper.GetBoolean(ThreadMove1.GetValue("TopicMoved"), false))
{
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?forumid=" + PostInfo.PostForumID + "';");
pnlContent.Visible = false;
pnlAttachmentContent.Visible = false;
pnlAttachmentTitle.Visible = false;
pnlMenu.Visible = false;
}
base.OnPreRender(e);
}
///
/// Stick thread event handler.
///
protected void btnSplitThread_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if (PostInfo != null)
{
ForumPostInfoProvider.SplitThread(PostInfo);
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
}
///
/// Stick thread event handler.
///
protected void btnStickThread_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if (PostInfo != null)
{
if (PostInfo.PostStickOrder > 0)
{
ForumPostInfoProvider.UnstickThread(PostInfo);
}
else
{
ForumPostInfoProvider.StickThread(PostInfo);
}
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
}
///
/// Lock thread event handler.
///
protected void btnLockThread_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if (PostInfo != null)
{
PostInfo.PostIsLocked = !PostInfo.PostIsLocked;
ForumPostInfoProvider.SetForumPostInfo(PostInfo);
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
}
///
/// This function is executed by callback initiated by 'Delete' button in menu.
///
protected void btnDelete_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
ForumPostInfoProvider.DeleteForumPostInfo(PostID);
if (PostInfo.PostParentID == 0)
{
//reload post edit frames with actual data
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?forumid=" + PostInfo.PostForumID + listingParameter + "';");
}
else
{
//reload post edit frames with actual data
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostParentID + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostInfo.PostParentID + listingParameter + "';");
}
}
///
/// This function is executed by callback initiated by 'Approve' button in menu.
/// It can be either Approve or Reject.
///
protected void btnApprove_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
// if post is approved
if (PostInfo.PostApproved)
{
//reject post
PostInfo.Reject();
}
else
{
PostInfo.Approve();
}
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
///
/// Reject post and all child posts.
///
protected void btnRejectSubTree_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if (PostInfo != null)
{
// Reject with sub-posts
PostInfo.Reject(true);
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
}
///
/// Approve post and all child posts.
///
protected void btnApproveSubTree_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if ((PostInfo != null) && (CMSContext.CurrentUser != null))
{
// Approve with subtree
PostInfo.Approve(CMSContext.CurrentUser.UserID, true);
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_tree'].location.href = 'ForumPost_Tree.aspx?postid=" + PostInfo.PostId + "&forumid=" + PostInfo.PostForumID + "';");
ltlScript.Text += ScriptHelper.GetScript("parent.frames['posts_edit'].location.href = 'ForumPost_View.aspx?postid=" + PostID + listingParameter + "';");
}
}
///
/// Upload click handler.
///
protected void btnUpload_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
if ((upload.HasFile) && (PostInfo != null))
{
// Check attachment extension
if (!ForumAttachmentInfoProvider.IsExtensionAllowed(upload.FileName, CMSContext.CurrentSiteName))
{
ShowError(GetString("ForumAttachment.AttachmentIsNotAllowed"));
return;
}
ForumInfo fi = ForumInfoProvider.GetForumInfo(PostInfo.PostForumID);
if (fi != null)
{
ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
if (fgi != null)
{
ForumAttachmentInfo fai = new ForumAttachmentInfo(upload.PostedFile, 0, 0, fi.ForumImageMaxSideSize);
fai.AttachmentPostID = PostInfo.PostId;
fai.AttachmentSiteID = fgi.GroupSiteID;
ForumAttachmentInfoProvider.SetForumAttachmentInfo(fai);
ReloadAttachmentData(PostInfo.PostId);
UniGrid.ReloadData();
}
}
}
}
///
/// Moves thread click handler.
///
protected void btnMoveThread_Click(object sender, EventArgs e)
{
if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
{
return;
}
pnlMove.Visible = !pnlMove.Visible;
}
}