/// <summary> /// Loads data of specific e-mail from DB. /// </summary> protected void LoadData() { if (mEmailId <= 0) { return; } // Get specific e-mail EmailInfo ei = EmailInfoProvider.GetEmailInfo(mEmailId); if (ei == null) { plcDetails.Visible = false; ShowInformation(GetString("emailqueue.details.emailalreadysent")); return; } EditedObject = ei; lblFromValue.Text = HTMLHelper.HTMLEncode(ei.EmailFrom); lblToValue.Text = !ei.EmailIsMass ? HTMLHelper.HTMLEncode(ei.EmailTo) : GetString("emailqueue.detail.multiplerecipients"); lblCcValue.Text = HTMLHelper.HTMLEncode(ei.EmailCc); lblBccValue.Text = HTMLHelper.HTMLEncode(ei.EmailBcc); lblReplyToValue.Text = HTMLHelper.HTMLEncode(ei.EmailReplyTo); lblSubjectValue.Text = HTMLHelper.HTMLEncode(ei.EmailSubject); lblErrorMessageValue.Text = HTMLHelper.HTMLEncodeLineBreaks(ei.EmailLastSendResult); if (UserIsAdmin) { LoadHTMLBody(ei); LoadPlainTextBody(ei); GetAttachments(); } }
/// <summary> /// Returns HTML encoded comment text. /// </summary> private static string GetHTMLEncodedCommentText(BlogCommentInfo bci) { if (bci != null) { string comment = HTMLHelper.HTMLEncodeLineBreaks(bci.CommentText); // Trackback comment if (bci.CommentIsTrackback) { string from = ""; if (string.IsNullOrEmpty(bci.CommentUserName)) { // Use blog post URL from = bci.CommentUrl; } else { // Use user name from = bci.CommentUserName; } return(HTMLHelper.HTMLEncode(string.Format(ResHelper.GetString("blog.comments.pingbackfrom"), from)) + "<br />" + comment); } // Normal comment else { return(comment); } } return(""); }
private object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName.ToLowerCSafe()) { case "userid": // Get user friendly name instead of id UserInfo ui = UserInfoProvider.GetUserInfo(ValidationHelper.GetInteger(parameter, 0)); if (ui != null) { return(HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(ui.UserName) + " (" + ui.Email + ")")); } else { return(GetString("general.na")); } case "result": return(TextHelper.LimitLength(parameter.ToString(), 50)); case "resulttooltip": return(HTMLHelper.HTMLEncodeLineBreaks(parameter.ToString())); case "status": return(GetEmailStatus(parameter)); } return(null); }
protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName.ToLowerCSafe()) { case "messageapproved": return(UniGridFunctions.ColoredSpanYesNo(parameter)); case "messageisspam": return(UniGridFunctions.ColoredSpanYesNoReversed(parameter)); case "messagetext": string text = parameter.ToString(); if (text.Length > 30) { text = text.Substring(0, 30) + "..."; } return(HTMLHelper.HTMLEncode(text)); case "messagetooltip": return(HTMLHelper.HTMLEncodeLineBreaks(parameter.ToString())); case "edit": CMSGridActionButton editButton = ((CMSGridActionButton)sender); int boardID = ValidationHelper.GetInteger(((DataRowView)((GridViewRow)parameter).DataItem).Row["BoardID"], 0); string url = "~/CMSModules/MessageBoards/Tools/Messages/Message_Edit.aspx"; if (IsLiveSite) { url = "~/CMSModules/MessageBoards/CMSPages/Message_Edit.aspx"; } editButton.OnClientClick = "modalDialog('" + AuthenticationHelper.ResolveDialogUrl(((EditPageUrl == "") ? url : EditPageUrl)) + "?messageboardid=" + boardID + "&messageId=" + editButton.CommandArgument + "', 'MessageEdit', 800, 535); return false;"; break; case "approve": bool approve = ValidationHelper.GetBoolean(((DataRowView)((GridViewRow)parameter).DataItem).Row["MessageApproved"], false); if (!approve) { CMSGridActionButton button = ((CMSGridActionButton)sender); button.IconCssClass = "icon-check-circle"; button.IconStyle = GridIconStyle.Allow; button.ToolTip = GetString("general.approve"); } else { CMSGridActionButton button = ((CMSGridActionButton)sender); button.IconCssClass = "icon-times-circle"; button.IconStyle = GridIconStyle.Critical; button.ToolTip = GetString("general.reject"); } break; case "messageinserted": return(TimeZoneMethods.ConvertDateTime(ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME), this).ToString()); } return(parameter); }
protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter) { bool approve = false; switch (sourceName.ToLower()) { case "messageapproved": return(UniGridFunctions.ColoredSpanYesNo(parameter)); case "messageisspam": return(UniGridFunctions.ColoredSpanYesNoReversed(parameter)); case "messagetext": string text = parameter.ToString(); if (text.Length > 30) { text = text.Substring(0, 30) + "..."; } return(HTMLHelper.HTMLEncode(text)); case "messagetooltip": return(HTMLHelper.HTMLEncodeLineBreaks(parameter.ToString())); case "edit": ImageButton editButton = ((ImageButton)sender); int boardID = ValidationHelper.GetInteger(((DataRowView)((GridViewRow)parameter).DataItem).Row["BoardID"], 0); string url = "~/CMSModules/MessageBoards/Tools/Messages/Message_Edit.aspx"; if (this.IsLiveSite) { url = "~/CMSModules/MessageBoards/CMSPages/Message_Edit.aspx"; } editButton.OnClientClick = "modalDialog('" + CMSContext.ResolveDialogUrl(((this.EditPageUrl == "") ? url : this.EditPageUrl)) + "?messageboardid=" + boardID + "&messageId=" + editButton.CommandArgument + "', 'MessageEdit', 500, 400); return false;"; break; case "approve": approve = ValidationHelper.GetBoolean(((DataRowView)((GridViewRow)parameter).DataItem).Row["MessageApproved"], false); if (!approve) { ImageButton button = ((ImageButton)sender); button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Approve.png"); button.ToolTip = GetString("general.approve"); } else { ImageButton button = ((ImageButton)sender); button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Reject.png"); button.ToolTip = GetString("general.reject"); } break; case "messageinserted": return(CMSContext.ConvertDateTime(ValidationHelper.GetDateTime(parameter, DataHelper.DATETIME_NOT_SELECTED), this).ToString()); } return(parameter); }
private IEnumerable <HtmlTableCell> GetRowCells(MacroExpr expression) { // Expression string exprTag = expression.RuleText ?? HTMLHelper.HTMLEncodeLineBreaks(TextHelper.LimitLength(expression.Expression, 500)); yield return(CreateTableCellWithClass("wrap-normal", $"<span class=\"MacroExpression\" title=\"{HTMLHelper.HTMLEncode(expression.Expression)}\">{exprTag}</span>")); // Syntax valid var errorText = UniGridFunctions.ColoredSpanYesNo(!expression.Error); if (!String.IsNullOrEmpty(expression.ErrorMessage)) { errorText = $"<span title=\"{HTMLHelper.HTMLEncode(expression.ErrorMessage)}\">{errorText}</span>"; } yield return(CreateTableCellWithClass("text-center", errorText)); // Signature valid yield return(new HtmlTableCell { InnerHtml = $"<div class=\"text-center\">{UniGridFunctions.ColoredSpanYesNo(expression.SignatureValid)}</div><div class=\"text-center\">{expression.SignedBy.ToString()}</div>" }); var anyMembersIssue = expression.MembersIssues.Any(); var membersMessage = $"<div class=\"text-center\">{UniGridFunctions.ColoredSpanYesNo(!anyMembersIssue)}</div>"; if (anyMembersIssue) { membersMessage = $"{membersMessage}{String.Join("<br />", expression.MembersIssues.Select(methodIssue => $"<div class=\"text-center\">{FormatMethodIssue(methodIssue)}</div>"))}"; } // Members valid yield return(new HtmlTableCell { InnerHtml = membersMessage }); yield return(new HtmlTableCell { Controls = { new ObjectTransformation(expression.ObjectType, expression.ObjectID) { UseEmptyInfoForObjectLimitedByLicense = true, Transformation = "{% Object.GetFullObjectName(true, true) %}" } } }); // Column yield return(new HtmlTableCell { InnerText = expression.Field }); }
/// <summary> /// Gets post's content with HTML tags. New lines and URLs are replaced by HTML tags. /// </summary> /// <param name="postText">Plain post text.</param> /// <returns>Post text with HTML tags.</returns> private string GetPostTextHTML(string postText) { string result = HTMLHelper.HTMLEncodeLineBreaks(HTMLHelper.HTMLEncode(postText)); URLParser urlParser = new URLParser(); result = urlParser.Replace(result, match => { string href = String.IsNullOrEmpty(match.Protocol) ? URLHelper.AddHTTPToUrl(match.URL) : match.URL; return(String.Format("<a href=\"{0}\" target=\"_blank\">{1}</a>", href, match.URL)); }); return(result); }
/// <summary> /// Prepare the plain text body of the e-mail message for display. /// </summary> /// <param name="ei">The e-mail message object</param> private void LoadPlainTextBody(EmailInfo ei) { DiscussionMacroResolver dmh = new DiscussionMacroResolver { ResolveToPlainText = true }; string body = dmh.ResolveMacros(ei.EmailPlainTextBody); body = HTMLHelper.HTMLEncode(body); lblBodyValue.Visible = true; // Replace line breaks with br tags and modify discussion macros lblBodyValue.Text = DiscussionMacroResolver.RemoveTags(HTMLHelper.HTMLEncodeLineBreaks(body)); }
/// <summary> /// Renders the particular macro expression /// </summary> protected void RenderItem(MacroExpr expression) { var sb = new StringBuilder(); sb.Append("<tr>"); // Expression string exprTag = expression.RuleText ?? HTMLHelper.HTMLEncodeLineBreaks(TextHelper.LimitLength(expression.Expression, 500)); sb.Append("<td class=\"wrap-normal\"><span class=\"MacroExpression\" title=\"", HTMLHelper.HTMLEncode(expression.Expression), "\">", exprTag, "</span></td>"); // Syntax valid var errorText = UniGridFunctions.ColoredSpanYesNo(!expression.Error); if (!String.IsNullOrEmpty(expression.ErrorMessage)) { errorText = String.Format("<span title=\"{0}\">{1}</span>", HTMLHelper.HTMLEncode(expression.ErrorMessage), errorText); } sb.Append("<td class=\"text-center\">", errorText, "</td>"); // Signed by sb.Append("<td>", HTMLHelper.HTMLEncode(expression.SignedBy), "</td>"); // Signature valid sb.Append("<td class=\"text-center\">", UniGridFunctions.ColoredSpanYesNo(expression.SignatureValid), "</td><td>"); sb.Append(); plcRows.Controls.Add(new LiteralControl(sb.ToString())); sb.Clear(); // Object var tr = new ObjectTransformation(expression.ObjectType, expression.ObjectID) { UseEmptyInfoForObjectLimitedByLicense = true, Transformation = "{% Object.GetFullObjectName(true, true) %}" }; plcRows.Controls.Add(tr); // Column //sb.Append(" (", expression.ObjectID, ")"); sb.Append("</td><td>", expression.Field, "</td></tr>"); plcRows.Controls.Add(new LiteralControl(sb.ToString())); sb.Clear(); }
/// <summary> /// Reload data. /// </summary> public void LoadData() { if (Comment == null) { return; } SetUserPicture(); if (!String.IsNullOrEmpty(Comment.CommentUrl)) { lnkName.Text = HTMLHelper.HTMLEncode(Comment.CommentUserName); lnkName.NavigateUrl = Comment.CommentUrl; AddRelAttribute(); lblName.Visible = false; } else { lblName.Text = HTMLHelper.HTMLEncode(Comment.CommentUserName); lnkName.Visible = false; } lblText.Text = HTMLHelper.HTMLEncodeLineBreaks(Comment.CommentText); lblDate.Text = TimeZoneUIMethods.ConvertDateTime(Comment.CommentDate, this).ToString(); string url = "~/CMSModules/Blogs/Controls/Comment_Edit.aspx"; if (IsLiveSite) { url = "~/CMSModules/Blogs/CMSPages/Comment_Edit.aspx"; } lnkEdit.OnClientClick = String.Format("EditComment('{0}?commentID={1}'); return false;", ResolveUrl(url), CommentID); lnkDelete.OnClientClick = String.Format("if(ConfirmDelete()) {{ {0}; }} return false;", GetPostBackEventReference("delete")); lnkApprove.OnClientClick = String.Format("{0}; return false;", GetPostBackEventReference("approve")); lnkReject.OnClientClick = String.Format("{0}; return false;", GetPostBackEventReference("reject")); // Initialize report abuse ucInlineAbuseReport.ReportTitle = ResHelper.GetString("BlogCommentDetail.AbuseReport", CultureHelper.GetDefaultCultureCode(SiteContext.CurrentSiteName)) + Comment.CommentText; ucInlineAbuseReport.ReportObjectID = CommentID; ucInlineAbuseReport.CMSPanel.Roles = AbuseReportRoles; ucInlineAbuseReport.CMSPanel.SecurityAccess = AbuseReportSecurityAccess; ucInlineAbuseReport.CMSPanel.OwnerID = AbuseReportOwnerID; }
/// <summary> /// Prepare the plain text body of the e-mail message for display. /// </summary> /// <param name="ei">The e-mail message object</param> private void LoadPlainTextBody(EmailInfo ei) { if (string.IsNullOrEmpty(ei.EmailPlainTextBody)) { lblPlainTextValue.Text = GetString("emailqueue.detail.valuenotentered"); return; } DiscussionMacroResolver dmh = new DiscussionMacroResolver { ResolveToPlainText = true }; string body = dmh.ResolveMacros(ei.EmailPlainTextBody); body = HTMLHelper.HTMLEncode(body); // Replace line breaks with br tags and modify discussion macros lblPlainTextValue.Text = DiscussionMacroResolver.RemoveTags(HTMLHelper.HTMLEncodeLineBreaks(body)); }
private IEnumerable <HtmlTableCell> GetRowCells(MacroExpr expression) { // Expression string exprTag = expression.RuleText ?? HTMLHelper.HTMLEncodeLineBreaks(TextHelper.LimitLength(expression.Expression, 500)); yield return(CreateTableCellWithClass("wrap-normal", $"<span class=\"MacroExpression\" title=\"{HTMLHelper.HTMLEncode(expression.Expression)}\">{exprTag}</span>")); // Syntax valid var errorText = UniGridFunctions.ColoredSpanYesNo(!expression.Error); if (!String.IsNullOrEmpty(expression.ErrorMessage)) { errorText = $"<span title=\"{HTMLHelper.HTMLEncode(expression.ErrorMessage)}\">{errorText}</span>"; } yield return(CreateTableCellWithClass("text-center", errorText)); // Signed by yield return(new HtmlTableCell { InnerText = expression.SignedBy.ToString() }); // Signature valid yield return(CreateTableCellWithClass("text-center", UniGridFunctions.ColoredSpanYesNo(expression.SignatureValid))); yield return(new HtmlTableCell { Controls = { new ObjectTransformation(expression.ObjectType, expression.ObjectID) { UseEmptyInfoForObjectLimitedByLicense = true, Transformation = "{% Object.GetFullObjectName(true, true) %}" } } }); // Column yield return(new HtmlTableCell { InnerText = expression.Field }); }
/// <summary> /// Reload data. /// </summary> public void LoadData() { if (Comment == null) { return; } // Set user picture if (BlogProperties.EnableUserPictures) { userPict.UserID = Comment.CommentUserID; userPict.Width = BlogProperties.UserPictureMaxWidth; userPict.Height = BlogProperties.UserPictureMaxHeight; userPict.Visible = true; userPict.RenderOuterDiv = true; userPict.OuterDivCSSClass = "CommentUserPicture"; // Gravatar support string avType = SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSAvatarType"); if (avType == AvatarInfoProvider.USERCHOICE) { UserInfo ui = UserInfoProvider.GetUserInfo(Comment.CommentUserID); avType = ui != null ? ui.UserSettings.UserAvatarType : AvatarInfoProvider.GRAVATAR; } userPict.UserEmail = Comment.CommentEmail; userPict.UserAvatarType = avType; } else { userPict.Visible = false; } if (!String.IsNullOrEmpty(Comment.CommentUrl)) { lnkName.Text = HTMLHelper.HTMLEncode(Comment.CommentUserName); lnkName.NavigateUrl = Comment.CommentUrl; // Add no follow attribute if it is required if (HTMLHelper.UseNoFollowForUsersLinks(SiteContext.CurrentSiteName)) { lnkName.Attributes.Add("rel", "nofollow"); } lblName.Visible = false; } else { lblName.Text = HTMLHelper.HTMLEncode(Comment.CommentUserName); lnkName.Visible = false; } lblText.Text = HTMLHelper.HTMLEncodeLineBreaks(Comment.CommentText); lblDate.Text = TimeZoneMethods.ConvertDateTime(Comment.CommentDate, this).ToString(); string url = "~/CMSModules/Blogs/Controls/Comment_Edit.aspx"; if (IsLiveSite) { url = "~/CMSModules/Blogs/CMSPages/Comment_Edit.aspx"; } lnkEdit.OnClientClick = string.Format("EditComment('{0}?commentID={1}'); return false;", ResolveUrl(url), CommentID); lnkDelete.OnClientClick = string.Format("if(ConfirmDelete()) {{ {0}; }} return false;", GetPostBackEventReference("delete")); lnkApprove.OnClientClick = string.Format("{0}; return false;", GetPostBackEventReference("approve")); lnkReject.OnClientClick = string.Format("{0}; return false;", GetPostBackEventReference("reject")); // Initialize report abuse ucInlineAbuseReport.ReportTitle = ResHelper.GetString("BlogCommentDetail.AbuseReport", SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSDefaultCulture")) + Comment.CommentText; ucInlineAbuseReport.ReportObjectID = CommentID; ucInlineAbuseReport.CMSPanel.Roles = AbuseReportRoles; ucInlineAbuseReport.CMSPanel.SecurityAccess = AbuseReportSecurityAccess; ucInlineAbuseReport.CMSPanel.OwnerID = AbuseReportOwnerID; }
public void ReloadData() { if (StopProcessing) { // Do nothing ucMessageUserButtons.StopProcessing = true; ucUserPicture.StopProcessing = true; } else { ucMessageUserButtons.StopProcessing = false; ucUserPicture.StopProcessing = false; if (Message != null) { // Get current user info currentUserInfo = CMSContext.CurrentUser; // Get message user info if (MessageMode == MessageModeEnum.Inbox) { messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageSenderUserID); } else { messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageRecipientUserID); } // Display only to authorized user if ((currentUserInfo.UserID == Message.MessageRecipientUserID) || (currentUserInfo.UserID == Message.MessageSenderUserID) || currentUserInfo.IsGlobalAdministrator) { pnlViewMessage.Visible = true; lblDateCaption.Text = GetString("Messaging.Date"); lblSubjectCaption.Text = GetString("general.subject"); lblFromCaption.Text = (MessageMode == MessageModeEnum.Inbox) ? GetString("Messaging.From") : GetString("Messaging.To"); // Sender exists if (messageUserInfo != null) { ucUserPicture.Visible = true; ucUserPicture.UserID = messageUserInfo.UserID; // Disable message user buttons on live site for hidden or disabled users if (IsLiveSite && !currentUserInfo.IsGlobalAdministrator && (!messageUserInfo.Enabled || messageUserInfo.UserIsHidden)) { ucMessageUserButtons.RelatedUserId = 0; } else { ucMessageUserButtons.RelatedUserId = messageUserInfo.UserID; } lblFrom.Text = HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(messageUserInfo.UserName, messageUserInfo.FullName, messageUserInfo.UserNickName, IsLiveSite)); } else { ucMessageUserButtons.RelatedUserId = 0; lblFrom.Text = HTMLHelper.HTMLEncode(Message.MessageSenderNickName); } string body = Message.MessageBody; // Resolve macros DiscussionMacroHelper dmh = new DiscussionMacroHelper(); body = dmh.ResolveMacros(body); lblSubject.Text = HTMLHelper.HTMLEncodeLineBreaks(Message.MessageSubject); if (IsLiveSite) { lblDate.Text = CMSContext.ConvertDateTime(Message.MessageSent, this).ToString(); } else { lblDate.Text = TimeZoneHelper.GetCurrentTimeZoneDateTimeString(Message.MessageSent, currentUserInfo, CMSContext.CurrentSite, out usedTimeZone); } lblBody.Text = body; } } else { lblError.Text = GetString("Messaging.MessageDoesntExist"); lblError.Visible = true; } } }
public void ReloadData() { if (StopProcessing) { // Do nothing MessageUserButtonsControl.StopProcessing = true; UserPictureControl.StopProcessing = true; } else { MessageUserButtonsControl.StopProcessing = false; UserPictureControl.StopProcessing = false; if (Message != null) { // Get current user info currentUserInfo = MembershipContext.AuthenticatedUser; // Get message user info if (MessageMode == MessageModeEnum.Inbox) { messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageSenderUserID); } else { messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageRecipientUserID); } // Display only to authorized user if ((currentUserInfo.UserID == Message.MessageRecipientUserID) || (currentUserInfo.UserID == Message.MessageSenderUserID) || currentUserInfo.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin)) { pnlViewMessage.Visible = true; lblDateCaption.Text = GetString("Messaging.Date"); lblSubjectCaption.Text = GetString("general.subject"); lblFromCaption.Text = (MessageMode == MessageModeEnum.Inbox) ? GetString("Messaging.From") : GetString("Messaging.To"); // Sender exists if (messageUserInfo != null) { UserPictureControl.Visible = true; UserPictureControl.UserID = messageUserInfo.UserID; // Gravatar support string avType = SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSAvatarType"); if (avType == AvatarInfoProvider.USERCHOICE) { avType = messageUserInfo.UserSettings.UserAvatarType; } UserPictureControl.UserAvatarType = avType; // Disable message user buttons on live site for hidden or disabled users if (IsLiveSite && !currentUserInfo.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) && (messageUserInfo.UserIsDisabledManually || messageUserInfo.UserIsHidden)) { MessageUserButtonsControl.RelatedUserId = 0; } else { MessageUserButtonsControl.RelatedUserId = messageUserInfo.UserID; } lblFrom.Text = HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(messageUserInfo.UserName, messageUserInfo.FullName, messageUserInfo.UserNickName, IsLiveSite)); } else { MessageUserButtonsControl.RelatedUserId = 0; lblFrom.Text = HTMLHelper.HTMLEncode(Message.MessageSenderNickName); } string body = Message.MessageBody; // Resolve macros DiscussionMacroResolver dmh = new DiscussionMacroResolver(); body = dmh.ResolveMacros(body); lblSubject.Text = HTMLHelper.HTMLEncodeLineBreaks(Message.MessageSubject); if (IsLiveSite) { lblDate.Text = TimeZoneUIMethods.ConvertDateTime(Message.MessageSent, this).ToString(); } else { lblDate.Text = TimeZoneHelper.ConvertToUserTimeZone(Message.MessageSent, true, currentUserInfo, SiteContext.CurrentSite); } lblBody.Text = body; } } else { ShowError(GetString("Messaging.MessageDoesntExist")); } } }
/// <summary> /// Displays data in table. /// </summary> /// <param name="ds">Dataset with data</param> protected void DisplayData(DataSet ds) { if (!DataHelper.DataSourceIsEmpty(ds)) { // Prepare list of tables SortedDictionary <string, DataTable> tables = new SortedDictionary <string, DataTable>(); foreach (DataTable dt in ds.Tables) { if (!DataHelper.DataSourceIsEmpty(dt)) { tables.Add(GetString("ObjectType." + dt.TableName), dt); } } // Generate the tables foreach (DataTable dt in tables.Values) { pnlContent.Controls.Add(new LiteralControl("<h3>" + GetString("ObjectType." + dt.TableName) + "</h3>")); if (dt.Columns.Count >= 6) { StringBuilder sb; // Write all rows foreach (DataRow dr in dt.Rows) { sb = new StringBuilder(); sb.Append("<table class=\"table table-hover\">"); // Add header sb.AppendFormat("<thead><tr class=\"unigrid-head\"><th>{0}</th><th class=\"main-column-100\">{1}</th></tr></thead><tbody>", GetString("General.FieldName"), GetString("General.Value")); // Add values foreach (DataColumn dc in dt.Columns) { sb.AppendFormat("<tr><td><strong>{0}</strong></td><td class=\"wrap-normal\">", dc.ColumnName); string content = null; // Binary columns if ((dc.DataType == typeof(byte[])) && (dr[dc.ColumnName] != DBNull.Value)) { content = "<binary data>"; } else { content = ValidationHelper.GetString(dr[dc.ColumnName], String.Empty); } bool standard = true; switch (dc.ColumnName.ToLowerCSafe()) { // Document content case "documentcontent": EditableItems items = new EditableItems(); items.LoadContentXml(ValidationHelper.GetString(dr[dc.ColumnName], String.Empty)); // Add regions foreach (DictionaryEntry region in items.EditableRegions) { sb.Append("<span class=\"VersionEditableRegionTitle\">" + (string)region.Key + "</span>"); string regionContent = HTMLHelper.ResolveUrls((string)region.Value, SystemContext.ApplicationPath); sb.Append("<span class=\"VersionEditableRegionText\">" + regionContent + "</span>"); } // Add web parts foreach (DictionaryEntry part in items.EditableWebParts) { sb.Append("<span class=\"VersionEditableWebPartTitle\">" + (string)part.Key + "</span>"); string regionContent = HTMLHelper.ResolveUrls((string)part.Value, SystemContext.ApplicationPath); sb.Append("<span class=\"VersionEditableWebPartText\">" + regionContent + "</span>"); } standard = false; break; // XML columns case "pagetemplatewebparts": case "webpartproperties": case "reportparameters": case "classformdefinition": case "classxmlschema": case "classformlayout": content = HTMLHelper.ReformatHTML(content); break; } // Standard rendering if (standard) { content = HTMLHelper.HTMLEncodeLineBreaks(content); content = content.Replace("\t", " "); sb.Append("<div style=\"max-height: 300px; overflow: auto;\">" + content + "</div>"); } sb.Append("</td></tr>"); } sb.Append("</tbody></table><br />\n"); pnlContent.Controls.Add(new LiteralControl(sb.ToString())); } } else { GridView newGrid = new GridView(); newGrid.ID = "grid" + dt.TableName; newGrid.EnableViewState = false; newGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Left; newGrid.CellPadding = 3; newGrid.GridLines = GridLines.Horizontal; pnlContent.Controls.Add(newGrid); newGrid.DataSource = ds; newGrid.DataMember = dt.TableName; newGrid.DataBind(); } } } }
/// <summary> /// Preview button click handler. /// </summary> protected void btnPreview_Click(object sender, EventArgs e) { // If external preview is enabled fire OnPreview event if (UseExternalPreview) { #region "Forum properties" // Get forum post info with dependence on current state ForumPostInfo fp = ForumContext.CurrentState == ForumStateEnum.EditPost ? ForumContext.CurrentPost : new ForumPostInfo(); // Post forum fp.PostForumID = ForumContext.CurrentForum.ForumID; // Post time fp.PostTime = DateTime.Now; // Post subject fp.PostSubject = txtSubject.Text; // Post user email fp.PostUserMail = txtEmail.Text; // Post signature fp.PostUserSignature = txtSignature.Text; // Post user id if (!MembershipContext.AuthenticatedUser.IsPublic()) { fp.PostUserID = MembershipContext.AuthenticatedUser.UserID; } // Post user name if (ForumContext.CurrentForum.ForumAllowChangeName || MembershipContext.AuthenticatedUser.IsPublic() || (ForumContext.UserIsModerator(ForumContext.CurrentForum.ForumID, ForumContext.CommunityGroupID))) { fp.PostUserName = TextHelper.LimitLength(txtUserName.Text, POST_USERNAME_LENGTH, ""); } else { fp.PostUserName = UserName; } // Post parent id -> reply to if (ForumContext.CurrentReplyThread != null) { fp.PostParentID = ForumContext.CurrentReplyThread.PostId; } // Get post text from HTML editor if is enabled fp.PostText = ForumContext.CurrentForum.ForumHTMLEditor ? htmlTemplateBody.ResolvedValue : ucBBEditor.Text; #endregion if (OnPreview != null) { OnPreview(fp, null); } } else { pnlReplyPost.Visible = true; lblSubjectPreview.Text = HTMLHelper.HTMLEncode(txtSubject.Text); // Get forum text from HTML editor or text area if (ForumContext.CurrentForum.ForumHTMLEditor) { lblTextPreview.Text = htmlTemplateBody.ResolvedValue; } else { lblTextPreview.Text = HTMLHelper.HTMLEncodeLineBreaks(ucBBEditor.Text); } } }