/// <summary>
/// Verifies for editing collisions, and if no collision is found, "locks" the page
/// </summary>
private void ManageEditingCollisions()
{
if (currentPage == null)
{
return;
}
lblRefreshLink.Text = @"<a href=""" +
UrlTools.BuildUrl(currentWiki, "Edit.aspx?Page=", Tools.UrlEncode(currentPage.FullName), (Request["Section"] != null ? "&Section=" + currentSection.ToString() : "")) +
@""">" + Properties.Messages.Refresh + " »</a>";
string username = Request.UserHostAddress;
if (SessionFacade.LoginKey != null)
{
username = SessionFacade.CurrentUsername;
}
if (Collisions.IsPageBeingEdited(currentPage, username))
{
pnlCollisions.Visible = true;
lblConcurrentEditingUsername.Text = "(" + Users.UserLink(currentWiki, Collisions.WhosEditing(currentPage)) + ")";
if (Settings.GetDisableConcurrentEditing(currentWiki))
{
lblSaveDisabled.Visible = true;
lblSaveDangerous.Visible = false;
btnSave.Enabled = false;
btnSaveAndContinue.Enabled = false;
}
else
{
lblSaveDisabled.Visible = false;
lblSaveDangerous.Visible = true;
btnSave.Enabled = true;
btnSaveAndContinue.Enabled = true;
}
}
else
{
pnlCollisions.Visible = false;
btnSave.Enabled = true;
btnSaveAndContinue.Enabled = true;
Collisions.RenewEditingSession(currentPage, username);
}
}