/// <summary>
/// Prints the history.
/// </summary>
public void PrintHistory()
{
if (page == null)
{
return;
}
StringBuilder sb = new StringBuilder();
if (Request["Revision"] == null)
{
// Show version list
List <int> revisions = Pages.GetBackups(page);
revisions.Reverse();
List <RevisionRow> result = new List <RevisionRow>(revisions.Count + 1);
result.Add(new RevisionRow(-1, Content.GetPageContent(page, false), false));
foreach (int rev in revisions)
{
PageContent content = Pages.GetBackupContent(page, rev);
result.Add(new RevisionRow(rev, content, canRollback));
}
rptHistory.DataSource = result;
rptHistory.DataBind();
}
else
{
int rev = -1;
if (!int.TryParse(Request["Revision"], out rev))
{
UrlTools.Redirect(page.FullName + Settings.PageExtension);
}
List <int> backups = Pages.GetBackups(page);
if (!backups.Contains(rev))
{
UrlTools.Redirect(page.FullName + Settings.PageExtension);
return;
}
PageContent revision = Pages.GetBackupContent(page, rev);
sb.Append(@"<table class=""box"" cellpadding=""0"" cellspacing=""0""><tr><td>");
sb.Append(@"<p style=""text-align: center;""><b>");
if (rev > 0)
{
sb.Append(@"<a href=""");
UrlTools.BuildUrl(sb, "History.aspx?Page=", Tools.UrlEncode(page.FullName),
"&Revision=", Tools.GetVersionString((int)(rev - 1)));
sb.Append(@""">« ");
sb.Append(Properties.Messages.OlderRevision);
sb.Append("</a>");
}
else
{
sb.Append("« ");
sb.Append(Properties.Messages.OlderRevision);
}
sb.Append(@" - <a href=""");
UrlTools.BuildUrl(sb, "History.aspx?Page=", Tools.UrlEncode(page.FullName));
sb.Append(@""">");
sb.Append(Properties.Messages.BackToHistory);
sb.Append("</a> - ");
if (rev < backups.Count - 1)
{
sb.Append(@"<a href=""");
UrlTools.BuildUrl(sb, "History.aspx?Page=", Tools.UrlEncode(page.FullName),
"&Revision=", Tools.GetVersionString((int)(rev + 1)));
sb.Append(@""">");
sb.Append(Properties.Messages.NewerRevision);
sb.Append(" »</a>");
}
else
{
sb.Append(@"<a href=""");
UrlTools.BuildUrl(sb, Tools.UrlEncode(page.FullName), Settings.PageExtension);
sb.Append(@""">");
sb.Append(Properties.Messages.CurrentRevision);
sb.Append("</a>");
}
sb.Append("</b></p></td></tr></table><br />");
sb.Append(@"<h3 class=""separator"">");
sb.Append(Properties.Messages.PageRevision);
sb.Append(": ");
sb.Append(Preferences.AlignWithTimezone(revision.LastModified).ToString(Settings.DateTimeFormat));
sb.Append("</h3><br />");
sb.Append(FormattingPipeline.FormatWithPhase3(FormattingPipeline.FormatWithPhase1And2(revision.Content,
false, FormattingContext.PageContent, page).Replace(Formatter.EditSectionPlaceHolder, ""), FormattingContext.PageContent, page));
}
lblHistory.Text = sb.ToString();
}