/Wiki/ScrewTurnWiki/Admin.aspx.cs
C# | 2522 lines | 2244 code | 251 blank | 27 comment | 330 complexity | 23e56a38e07dfa8449dd940f0fd5e442 MD5 | raw file
Possible License(s): GPL-2.0
Large files files are truncated, but you can click here to view the full file
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Collections.Generic;
- using System.Globalization;
- using System.IO;
- using System.Text.RegularExpressions;
- using System.Threading;
- using System.Web;
- using System.Web.Configuration;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Net;
- using ScrewTurn.Wiki.PluginFramework;
- using System.Text;
-
- namespace ScrewTurn.Wiki {
-
- public partial class Admin : BasePage {
-
- #region ViewStateCompression
-
- protected override object LoadPageStateFromPersistenceMedium() {
- if(Settings.EnableViewStateCompression) {
- string viewState = Request.Form["__VSTATE"];
- byte[] bytes = Convert.FromBase64String(viewState);
- bytes = Compressor.Decompress(bytes);
- LosFormatter formatter = new LosFormatter();
- return formatter.Deserialize(Convert.ToBase64String(bytes));
- }
- else {
- return base.LoadPageStateFromPersistenceMedium();
- }
- }
-
- protected override void SavePageStateToPersistenceMedium(object viewState) {
- if(Settings.EnableViewStateCompression) {
- LosFormatter formatter = new LosFormatter();
- StringWriter writer = new StringWriter();
- formatter.Serialize(writer, viewState);
- string viewStateString = writer.ToString();
- byte[] bytes = Convert.FromBase64String(viewStateString);
- bytes = Compressor.Compress(bytes);
- ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(bytes));
- }
- else {
- base.SavePageStateToPersistenceMedium(viewState);
- }
- }
-
- #endregion
-
- #region Initialization
-
- protected void Page_Load(object sender, EventArgs e) {
- Page.Title = Resources.Messages.AdminTitle + " - " + Settings.WikiTitle;
-
- if(!string.IsNullOrEmpty(Request.UserAgent) && Request.UserAgent.ToLowerInvariant().Contains("konqueror") ||
- Request.UserAgent.ToLowerInvariant().Contains("safari")) {
- lblBrowserSupport.Visible = true;
- }
-
- if(SessionFacade.LoginKey == null) {
- Response.Redirect("Login.aspx?Redirect=Admin.aspx" + (Request["ActivationMode"] != null ? Tools.UrlEncode("?ActivationMode=1") : ""));
- }
-
- if(!SessionFacade.Admin) {
- Response.Redirect("AccessDenied.aspx");
- }
-
- if(!SessionFacade.Username.Equals("admin") && !Settings.ConfigVisibleToAdmins) {
- btnSelectConfig.Visible = false;
- }
- else if(!SessionFacade.Username.Equals("admin")) {
- chkConfigVisibleToAdmins.Enabled = false;
- }
-
- if(!Page.IsPostBack) {
- if(SessionFacade.AdminView >= 0) {
- mlvAdmin.ActiveViewIndex = SessionFacade.AdminView;
- }
- else {
- mlvAdmin.ActiveViewIndex = 9;
- SessionFacade.AdminView = mlvAdmin.ActiveViewIndex;
- }
- if(Request["ActivationMode"] != null) {
- mlvAdmin.ActiveViewIndex = 0;
- SessionFacade.AdminView = mlvAdmin.ActiveViewIndex;
- chkViewActive.Checked = false;
- }
- PrintFileEditing();
- PrintSystemStatus();
- PrintDateTimeFormats();
- PrintStrings();
- SetupButtons();
- LoadUsers();
- LoadPages(true);
- LoadConfig();
- LoadSnippets();
- LoadCategories();
- LoadNavPaths();
- LoadProviders();
- LoadDlls();
- LoadRegExp();
- LoadValidationLocalizations();
- }
-
- }
-
- private void LoadUsers() {
- Users users = Users.Instance;
- lstUsers.Items.Clear();
- for(int i = 0; i < users.AllUsers.Count; i++) {
- if(users.AllUsers[i].Admin) {
- if(chkViewAdmins.Checked) {
- if(users.AllUsers[i].Active) {
- if(chkViewActive.Checked) {
- lstUsers.Items.Add(new ListItem(PrintUser(users.AllUsers[i]), users.AllUsers[i].Username));
- }
- }
- else {
- if(chkViewInactive.Checked) {
- lstUsers.Items.Add(new ListItem(PrintUser(users.AllUsers[i]), users.AllUsers[i].Username));
- }
- }
- }
- }
- else {
- if(chkViewUsers.Checked) {
- if(users.AllUsers[i].Active) {
- if(chkViewActive.Checked) {
- lstUsers.Items.Add(new ListItem(PrintUser(users.AllUsers[i]), users.AllUsers[i].Username));
- }
- }
- else {
- if(chkViewInactive.Checked) {
- lstUsers.Items.Add(new ListItem(PrintUser(users.AllUsers[i]), users.AllUsers[i].Username));
- }
- }
- }
- }
- }
- }
-
- private string PrintUser(UserInfo user) {
- string shift = "";
- if(Request.Cookies[Settings.CultureCookieName] != null) shift = Request.Cookies[Settings.CultureCookieName]["T"];
-
- string displayName = user.ToString();
- if(displayName.Contains(user.GetType().ToString()) || string.IsNullOrEmpty(displayName)) displayName = user.Username;
- StringBuilder sb = new StringBuilder(displayName);
- if(displayName != user.Username) sb.AppendFormat(" ({0})", user.Username);
- if(!user.Active) sb.Append(", Inactive");
- if(user.Admin) sb.Append(", Admin");
- sb.AppendFormat(" ({0})", user.Email);
- sb.AppendFormat(" [{0}]", user.Provider.Information.Name);
- sb.AppendFormat(" {0}", Tools.AlignWithPreferences(user.DateTime, shift).ToString(Settings.DateTimeFormat));
- return sb.ToString();
- }
-
- private void LoadPages(bool cleanBackupList) {
- Pages pages = Pages.Instance;
- lstPages.Items.Clear();
- for(int i = 0; i < pages.AllPages.Count; i++) {
- if(pages.AllPages[i].Status == PageStatus.Locked) {
- if(chkViewLocked.Checked) {
- lstPages.Items.Add(new ListItem(pages.AllPages[i].ToString(), pages.AllPages[i].Name));
- }
- }
- else if(pages.AllPages[i].Status == PageStatus.Public) {
- if(chkViewPublic.Checked) {
- lstPages.Items.Add(new ListItem(pages.AllPages[i].ToString(), pages.AllPages[i].Name));
- }
- }
- else {
- if(chkViewNormal.Checked) {
- lstPages.Items.Add(new ListItem(pages.AllPages[i].ToString(), pages.AllPages[i].Name));
- }
- }
- }
- if(cleanBackupList) {
- lstPageBackups.Items.Clear();
- lstPageBackups.Items.Add(new ListItem(" --- ", ""));
- btnDeleteAllBackups.Enabled = false;
- btnDeleteOlderBackups.Enabled = false;
- btnRollback.Enabled = false;
- }
- }
-
- private void LoadConfig() {
- txtWikiTitle.Text = Settings.WikiTitle;
- txtMainUrl.Text = Settings.MainUrl;
-
- string[] themes = Tools.AvailableThemes;
- lstTheme.Items.Clear();
- for(int i = 0; i < themes.Length; i++) {
- lstTheme.Items.Add(new ListItem(themes[i], themes[i]));
- if(lstTheme.Items[i].Value.Equals(Settings.Theme)) {
- lstTheme.Items[i].Selected = true;
- }
- }
-
- txtContactEmail.Text = Settings.ContactEmail;
- txtSenderEmail.Text = Settings.SenderEmail;
- txtSmtpServer.Text = Settings.SmtpServer;
- txtSmtpUsername.Text = Settings.SmtpUsername;
- //txtSmtpPassword.Text = Settings.SmtpPassword; // This is not rendered by ASP.NET, use "value" attribute instead
- txtSmtpPassword.Attributes.Add("value", Settings.SmtpPassword);
- txtSmtpPort.Text = Settings.SmtpPort != -1 ? Settings.SmtpPort.ToString() : "";
- chkSmtpSsl.Checked = Settings.SmtpSsl;
-
- lstDefaultPage.Items.Clear();
- Pages pages = Pages.Instance;
- bool sel = false; // Select only ONE page
- for(int i = 0; i < pages.AllPages.Count; i++) {
- lstDefaultPage.Items.Add(new ListItem(pages.AllPages[i].Name, pages.AllPages[i].Name));
- if(!sel && lstDefaultPage.Items[i].Value.Equals(Settings.DefaultPage)) {
- sel = true;
- lstDefaultPage.Items[i].Selected = true;
- }
- }
-
- chkEnableDoubleClickEditing.Checked = Settings.EnableDoubleClickEditing;
- chkDisableBreadcrumbsTrail.Checked = Settings.DisableBreadcrumbsTrail;
- chkProcessSingleLineBreaks.Checked = Settings.ProcessSingleLineBreaks;
-
- // This feature is currently DISABLED
- //if(Settings.KeptBackupNumber >= 0) txtKeptBackupsNumber.Text = Settings.KeptBackupNumber.ToString();
- //else txtKeptBackupsNumber.Text = "";
-
- txtDateTimeFormat.Text = Settings.DateTimeFormat;
-
- lstDefaultLanguage.Items.Clear();
- lstDefaultLanguage.Items.Add(new ListItem("English", "en-US"));
- for(int i = 0; i < Tools.AvailableCultures.Length; i++) {
- lstDefaultLanguage.Items.Add(new ListItem(Tools.AvailableCultures[i].Split('|')[1], Tools.AvailableCultures[i].Split('|')[0]));
- }
- for(int i = 0; i < lstDefaultLanguage.Items.Count; i++) {
- lstDefaultLanguage.Items[i].Selected = false;
- if(lstDefaultLanguage.Items[i].Value.Equals(Settings.DefaultLanguage)) {
- lstDefaultLanguage.Items[i].Selected = true;
- break;
- }
- }
-
- for(int i = 0; i < lstDefaultTimezone.Items.Count; i++) {
- lstDefaultTimezone.Items[i].Selected = false;
- if(lstDefaultTimezone.Items[i].Value.Equals(Settings.DefaultTimezone)) {
- lstDefaultTimezone.Items[i].Selected = true;
- break;
- }
- }
-
- chkUsersCanRegister.Checked = Settings.UsersCanRegister;
- for(int i = 0; i < lstAccountActivationMode.Items.Count; i++) {
- lstAccountActivationMode.Items[i].Selected = false;
- if(lstAccountActivationMode.Items[i].Value.Equals(Settings.AccountActivationMode)) {
- lstAccountActivationMode.Items[i].Selected = true;
- break;
- }
- }
- chkDisableCaptchaControl.Checked = Settings.DisableCaptchaControl;
-
- for(int i = 0; i < lstDiscussionPermissions.Items.Count; i++) {
- lstDiscussionPermissions.Items[i].Selected = false;
- if(lstDiscussionPermissions.Items[i].Value.ToLowerInvariant().Equals(Settings.DiscussionPermissions.ToLowerInvariant())) {
- lstDiscussionPermissions.Items[i].Selected = true;
- break;
- }
- }
-
- chkUsersCanCreateNewPages.Checked = Settings.UsersCanCreateNewPages;
- chkUsersCanCreateNewCategories.Checked = Settings.UsersCanCreateNewCategories;
- chkUsersCanManagePageCategories.Checked = Settings.UsersCanManagePageCategories;
- chkUsersCanViewFiles.Checked = Settings.UsersCanViewFiles;
- if(Settings.UsersCanViewFiles) {
- chkUsersCanUploadFiles.Checked = Settings.UsersCanUploadFiles;
- chkUsersCanDeleteFiles.Checked = Settings.UsersCanDeleteFiles;
- chkUsersCanUploadFiles.Enabled = true;
- chkUsersCanDeleteFiles.Enabled = true;
- }
- else {
- chkUsersCanUploadFiles.Checked = false;
- chkUsersCanDeleteFiles.Checked = false;
- chkUsersCanUploadFiles.Enabled = false;
- chkUsersCanDeleteFiles.Enabled = false;
- }
- chkPrivateAccess.Checked = Settings.PrivateAccess;
- if(Settings.PrivateAccess) {
- chkPublicAccess.Enabled = false;
- chkPublicAccess.Checked = false;
- chkFileManagementInPublicAccessAllowed.Enabled = false;
- chkFileManagementInPublicAccessAllowed.Checked = false;
- }
- else {
- if(Settings.PublicAccess) {
- chkPrivateAccess.Enabled = false;
- chkPrivateAccess.Checked = false;
- chkPublicAccess.Enabled = true;
- chkPublicAccess.Checked = true;
- chkFileManagementInPublicAccessAllowed.Enabled = true;
- chkFileManagementInPublicAccessAllowed.Checked = Settings.FileManagementInPublicAccessAllowed;
- }
- else {
- chkPrivateAccess.Enabled = true;
- chkPrivateAccess.Checked = false;
- chkPublicAccess.Enabled = true;
- chkPublicAccess.Checked = false;
- chkFileManagementInPublicAccessAllowed.Enabled = false;
- chkFileManagementInPublicAccessAllowed.Checked = false;
- }
- }
-
- chkDisableConcurrentEditing.Checked = Settings.DisableConcurrentEditing;
-
- txtAllowedFileTypes.Text = "";
- string[] aft = Settings.AllowedFileTypes;
- for(int i = 0; i < aft.Length; i++) {
- txtAllowedFileTypes.Text += aft[i];
- if(i != aft.Length - 1) txtAllowedFileTypes.Text += ", ";
- }
-
- chkScriptTagsAllowed.Checked = Settings.ScriptTagsAllowed;
- lstLoggingLevel.SelectedIndex = 3 - Settings.LoggingLevel;
- txtMaxLogSize.Text = Settings.MaxLogSize.ToString();
- chkConfigVisibleToAdmins.Checked = Settings.ConfigVisibleToAdmins;
-
- // Advanced Options
- chkDisableAutomaticVersionCheck.Checked = Settings.DisableAutomaticVersionCheck;
- txtMaxFileSize.Text = Settings.MaxFileSize.ToString();
- txtCacheSize.Text = Settings.CacheSize.ToString();
- txtCacheCutSize.Text = Settings.CacheCutSize.ToString();
- chkDisableCache.Checked = Settings.DisableCache;
- txtCacheSize.Enabled = !Settings.DisableCache;
- txtCacheCutSize.Enabled = !Settings.DisableCache;
- txtFileAccessTries.Text = Settings.FileAccessTries.ToString();
- txtFileAccessTryDelay.Text = Settings.FileAccessTryDelay.ToString();
- chkEnableViewStateCompression.Checked = Settings.EnableViewStateCompression;
- chkEnableHttpCompression.Checked = Settings.EnableHttpCompression;
- txtUsernameRegex.Text = Settings.UsernameRegex;
- txtPasswordRegex.Text = Settings.PasswordRegex;
- }
-
- public void PrintSystemStatus() {
- StringBuilder sb = new StringBuilder();
- sb.Append(Resources.Messages.OnlineUsers + ": <b>" + Users.OnlineUsers.ToString() + "</b><br />" + "\n");
- int inactive = 0;
- for(int i = 0; i < Users.Instance.AllUsers.Count; i++) {
- if(!Users.Instance.AllUsers[i].Active) inactive++;
- }
- sb.Append(Resources.Messages.UserCount + ": <b>" + Users.Instance.AllUsers.Count.ToString() + "</b> (" + inactive.ToString() + " " + Resources.Messages.InactiveUsers + ")<br />" + "\n");
- sb.Append(Resources.Messages.CachedPages + ": <b>" + Content.CacheUsage + "/" + Pages.Instance.AllPages.Count.ToString() + "</b><br />" + "\n");
- sb.Append(Resources.Messages.WikiVersion + ": <b>" + Settings.WikiVersion + "</b>" + "\n");
- if(!Page.IsPostBack) {
- sb.Append(CheckVersion());
- }
- sb.Append("<br />");
- sb.Append(Resources.Messages.ServerUptime + ": <b>" + Tools.TimeSpanToString(Tools.SystemUptime) + "</b> (" + Resources.Messages.MayBeInaccurate + ")");
-
- lblSystemStatusContent.Text = sb.ToString();
- }
-
- private string CheckVersion() {
- if(Settings.DisableAutomaticVersionCheck) return "";
- StringBuilder sb = new StringBuilder();
- sb.Append("(");
- HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.screwturn.eu/Version/Wiki/2.htm");
- try {
- HttpWebResponse res = (HttpWebResponse)req.GetResponse();
- StreamReader sr = new StreamReader(res.GetResponseStream());
- string ver = sr.ReadToEnd();
- sr.Close();
- string[] versions = ver.Split('|');
- bool upToDate = false;
- for(int i = 0; i < versions.Length; i++) {
- ver = versions[i];
- if(versions[i].Equals(Settings.WikiVersion)) {
- if(i == versions.Length - 1) upToDate = true;
- else upToDate = false;
- ver = versions[versions.Length - 1];
- break;
- }
- }
- if(!upToDate) {
- sb.Append(@"<span style=""color: #009900;"">" + Resources.Messages.NewVersionFound + ": <b>" + ver + "</b></span>");
- }
- else {
- sb.Append(@"<span style=""color: #009900;"">" + Resources.Messages.WikiUpToDate + "</span>");
- }
- }
- catch {
- sb.Append(@"<span style=""color: #FF0000;"">" + Resources.Messages.VersionCheckError + "</span>");
- }
- sb.Append(")");
- return sb.ToString();
- }
-
- public void PrintFileEditing() {
- StringBuilder sb = new StringBuilder();
-
- sb.Append("<ul>" + "\n");
-
- // Files that can be edited are specified in Settings.EditableFiles
-
- FileInfo fileInfo;
-
- fileInfo = new FileInfo(Settings.HeaderFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.HeaderFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.SidebarFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.SidebarFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.FooterFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.FooterFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.AccountActivationMessageFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.AccountActivationMessageFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.PasswordResetMessageFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.PasswordResetMessageFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.EditNoticeFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.EditNoticeFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.LoginNoticeFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.LoginNoticeFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>");
-
- fileInfo = new FileInfo(Settings.HtmlHeadFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.HtmlHeadFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>" + "\n");
-
- fileInfo = new FileInfo(Settings.PageHeaderFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.PageHeaderFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>");
-
- fileInfo = new FileInfo(Settings.PageFooterFile);
- sb.Append("<li>");
- sb.Append("<b>" + Resources.Messages.PageFooterFile + "</b> (" + Tools.BytesToString(fileInfo.Length) + @") - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=View"">" + Resources.Messages.View + @"</a> - <a href=""Edit.aspx?File=" + fileInfo.Name + @"&Action=Edit"">" + Resources.Messages.Edit + @"</a>");
- sb.Append("</li>");
-
- sb.Append("</ul>" + "\n");
-
- lblFileEditingContent.Text = sb.ToString();
- }
-
- private void LoadSnippets() {
- lstSnippets.Items.Clear();
- for(int i = 0; i < Snippets.Instance.AllSnippets.Count; i++) {
- lstSnippets.Items.Add(new ListItem(Snippets.Instance.AllSnippets[i].Name + " [" + Snippets.Instance.AllSnippets[i].Provider.Information.Name + "]", Snippets.Instance.AllSnippets[i].Name));
- }
- }
-
- private void LoadCategories() {
- lstCategories.Items.Clear();
- lstMergeCategory.Items.Clear();
- lstMergeCategory.Enabled = false;
- for(int i = 0; i < Pages.Instance.AllCategories.Count; i++) {
- lstCategories.Items.Add(new ListItem(Pages.Instance.AllCategories[i].Name + " (" + Pages.Instance.AllCategories[i].Pages.Length.ToString() + ") [" + Pages.Instance.AllCategories[i].Provider.Information.Name + "]", Pages.Instance.AllCategories[i].Name));
- }
- }
-
- private void LoadNavPaths() {
- lstNavPaths.Items.Clear();
- for(int i = 0; i < NavigationPaths.Instance.Paths.Count; i++) {
- string pages = "";
- for(int k = 0; k < NavigationPaths.Instance.Paths[i].Pages.Count; k++) {
- pages += NavigationPaths.Instance.Paths[i].Pages[k];
- if(k != NavigationPaths.Instance.Paths[i].Pages.Count - 1) pages += ", ";
- }
- lstNavPaths.Items.Add(new ListItem(NavigationPaths.Instance.Paths[i].Name + " - " + pages + " [" + NavigationPaths.Instance.Paths[i].Provider.Information.Name + "]", NavigationPaths.Instance.Paths[i].Name));
- }
- }
-
- private void LoadProviders() {
- lstProviders.Items.Clear();
- lstDefaultPagesProvider.Items.Clear();
- lstCategoryProvider.Items.Clear();
- lstDefaultUsersProvider.Items.Clear();
- lstUserProvider.Items.Clear();
- lstNavPathProvider.Items.Clear();
- lstSnippetProvider.Items.Clear();
- lstPagesProviderFrom.Items.Clear();
- lstUsersProviderFrom.Items.Clear();
-
- string pd = Settings.DefaultPagesProvider;
- string ud = Settings.DefaultUsersProvider;
-
- int count = 0;
-
- lstPagesProviderFrom.Items.Add(new ListItem("", "-"));
- IPagesStorageProvider[] pgs = Collectors.PagesProviderCollector.AllProviders;
- for(int i = 0; i < pgs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[P] " + pgs[i].Information.Name, "[P]" + pgs[i].GetType().ToString()));
- lstPagesProviderFrom.Items.Add(new ListItem(pgs[i].Information.Name, pgs[i].GetType().ToString()));
- if(!pgs[i].ReadOnly) {
- lstDefaultPagesProvider.Items.Add(new ListItem(pgs[i].Information.Name, pgs[i].GetType().ToString()));
- lstCategoryProvider.Items.Add(new ListItem(pgs[i].Information.Name, pgs[i].GetType().ToString()));
- lstNavPathProvider.Items.Add(new ListItem(pgs[i].Information.Name, pgs[i].GetType().ToString()));
- lstSnippetProvider.Items.Add(new ListItem(pgs[i].Information.Name, pgs[i].GetType().ToString()));
- if(pgs[i].GetType().ToString().Equals(pd)) {
- lstDefaultPagesProvider.Items[count].Selected = true;
- lstCategoryProvider.Items[count].Selected = true;
- lstNavPathProvider.Items[count].Selected = true;
- lstSnippetProvider.Items[count].Selected = true;
- }
- count++;
- }
- }
-
- count = 0;
-
- lstUsersProviderFrom.Items.Add(new ListItem("", "-"));
- IUsersStorageProvider[] urs = Collectors.UsersProviderCollector.AllProviders;
- for(int i = 0; i < urs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[U] " + urs[i].Information.Name, "[U]" + urs[i].GetType().ToString()));
- lstUsersProviderFrom.Items.Add(new ListItem(urs[i].Information.Name, urs[i].GetType().ToString()));
- if(!urs[i].ReadOnly) {
- lstDefaultUsersProvider.Items.Add(new ListItem(urs[i].Information.Name, urs[i].GetType().ToString()));
- lstUserProvider.Items.Add(new ListItem(urs[i].Information.Name, urs[i].GetType().ToString()));
- if(urs[i].GetType().ToString().Equals(ud)) {
- lstDefaultUsersProvider.Items[count].Selected = true;
- lstUserProvider.Items[count].Selected = true;
- }
- count++;
- }
- }
-
- IFormatterProvider[] frs = Collectors.FormatterProviderCollector.AllProviders;
- for(int i = 0; i < frs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[F] " + frs[i].Information.Name, "[F]" + frs[i].GetType().ToString()));
- }
-
- pgs = Collectors.DisabledPagesProviderCollector.AllProviders;
- for(int i = 0; i < pgs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[P] " + pgs[i].Information.Name + " - " + Resources.Messages.Disabled, "[P]" + pgs[i].GetType().ToString()));
- }
-
- urs = Collectors.DisabledUsersProviderCollector.AllProviders;
- for(int i = 0; i < urs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[U] " + urs[i].Information.Name + " - " + Resources.Messages.Disabled, "[U]" + urs[i].GetType().ToString()));
- }
-
- frs = Collectors.DisabledFormatterProviderCollector.AllProviders;
- for(int i = 0; i < frs.Length; i++) {
- lstProviders.Items.Add(new ListItem("[F] " + frs[i].Information.Name + " - " + Resources.Messages.Disabled, "[F]" + frs[i].GetType().ToString()));
- }
- }
-
- private void LoadDlls() {
- string[] files = Directory.GetFiles(Settings.PluginsDirectory, "*.dll");
- lstDlls.Items.Clear();
- for(int i = 0; i < files.Length; i++) {
- lstDlls.Items.Add(new ListItem(Path.GetFileName(files[i]), Path.GetFileName(files[i])));
- }
- }
-
- private void LoadRegExp() {
- // Load RegExp's from Web.Config
-
- //User
- rxvEmail.ValidationExpression = Settings.EmailRegex;
- rxvUserName.ValidationExpression = Settings.UsernameRegex;
- rxvPassword1.ValidationExpression = Settings.PasswordRegex;
-
- //Config
- rxvWikiTitle.ValidationExpression = Settings.WikiTitleRegex;
- rxvMainUrl.ValidationExpression = Settings.MainUrlRegex;
- rxvContactEmail.ValidationExpression = Settings.EmailRegex;
- rxvSenderEmail.ValidationExpression = Settings.EmailRegex;
- rxvSmtpServer.ValidationExpression = Settings.SmtpServerRegex;
-
- }
-
- private void LoadValidationLocalizations() {
- string image = @"<img src=""Images/InputError.png"" alt=""Error"" />";
-
- // User validators
- rfvUsername.ErrorMessage = Resources.Messages.RequiredField;
- rfvUsername.ToolTip = Resources.Messages.RequiredField;
- rfvUsername.Text = image;
- rfvEmail.ErrorMessage = Resources.Messages.RequiredField;
- rfvEmail.ToolTip = Resources.Messages.RequiredField;
- rfvEmail.Text = image;
- rfvPassword1.ErrorMessage = Resources.Messages.RequiredField;
- rfvPassword1.ToolTip = Resources.Messages.RequiredField;
- rfvPassword1.Text = image;
- rfvPassword2.ErrorMessage = Resources.Messages.RequiredField;
- rfvPassword2.ToolTip = Resources.Messages.RequiredField;
- rfvPassword2.Text = image;
-
- rxvUserName.ErrorMessage = Resources.Messages.InvalidUsername;
- rxvUserName.ToolTip = Resources.Messages.InvalidUsername;
- rxvUserName.Text = image;
- rxvEmail.ErrorMessage = Resources.Messages.InvalidEmail;
- rxvEmail.ToolTip = Resources.Messages.InvalidEmail;
- rxvEmail.Text = image;
- rxvPassword1.ErrorMessage = Resources.Messages.InvalidPassword;
- rxvPassword1.ToolTip = Resources.Messages.InvalidPassword;
- rxvPassword1.Text = image;
-
- cvUsername.ErrorMessage = Resources.Messages.UsernameAlreadyExists;
- cvUsername.ToolTip = Resources.Messages.UsernameAlreadyExists;
- cvUsername.Text = image;
- cvPassword1.ErrorMessage = Resources.Messages.PasswordsNotEqual;
- cvPassword1.ToolTip = Resources.Messages.PasswordsNotEqual;
- cvPassword1.Text = image;
- cvPassword2.ErrorMessage = Resources.Messages.PasswordsNotEqual;
- cvPassword2.ToolTip = Resources.Messages.PasswordsNotEqual;
- cvPassword2.Text = image;
-
- // Config Validators
- // General
- rfvWikiTitle.ErrorMessage = Resources.Messages.RequiredField;
- rfvWikiTitle.ToolTip = Resources.Messages.RequiredField;
- rfvWikiTitle.Text = image;
- rfvMainUrl.ErrorMessage = Resources.Messages.RequiredField;
- rfvMainUrl.ToolTip = Resources.Messages.RequiredField;
- rfvMainUrl.Text = image;
- rfvContactEmail.ErrorMessage = Resources.Messages.RequiredField;
- rfvContactEmail.ToolTip = Resources.Messages.RequiredField;
- rfvContactEmail.Text = image;
- rfvSenderEmail.ErrorMessage = Resources.Messages.RequiredField;
- rfvSenderEmail.ToolTip = Resources.Messages.RequiredField;
- rfvSenderEmail.Text = image;
- rfvSmtpServer.ErrorMessage = Resources.Messages.RequiredField;
- rfvSmtpServer.ToolTip = Resources.Messages.RequiredField;
- rfvSmtpServer.Text = image;
- cvSmtpAuth.ErrorMessage = Resources.Messages.UsernameIsRequired;
- cvSmtpAuth.ToolTip = Resources.Messages.UsernameIsRequired;
- cvSmtpAuth.Text = image;
- rvSmtpPort.ErrorMessage = Resources.Messages.InvalidPort;
- rvSmtpPort.ToolTip = Resources.Messages.InvalidPort;
- rvSmtpPort.Text = image;
-
- rxvWikiTitle.ErrorMessage = Resources.Messages.InvalidWikiTitle;
- rxvWikiTitle.ToolTip = Resources.Messages.InvalidWikiTitle;
- rxvWikiTitle.Text = image;
- rxvMainUrl.ErrorMessage = Resources.Messages.InvalidMainUrl;
- rxvMainUrl.ToolTip = Resources.Messages.InvalidMainUrl;
- rxvMainUrl.Text = image;
- rxvContactEmail.ErrorMessage = Resources.Messages.InvalidContactEmail;
- rxvContactEmail.ToolTip = Resources.Messages.InvalidContactEmail;
- rxvContactEmail.Text = image;
- rxvSenderEmail.ErrorMessage = Resources.Messages.InvalidSenderEmail;
- rxvSenderEmail.ToolTip = Resources.Messages.InvalidSenderEmail;
- rxvSenderEmail.Text = image;
- rxvSmtpServer.ErrorMessage = Resources.Messages.InvalidSmtpServer;
- rxvSmtpServer.ToolTip = Resources.Messages.InvalidSmtpServer;
- rxvSmtpServer.Text = image;
- //rvKeptBackupsNumber.ErrorMessage = Resources.Messages.InvalidBackupNumber;
- //rvKeptBackupsNumber.ToolTip = Resources.Messages.InvalidBackupNumber;
- //rvKeptBackupsNumber.Text = image;
- rfvDateTimeFormat.ErrorMessage = Resources.Messages.RequiredField;
- rfvDateTimeFormat.ToolTip = Resources.Messages.RequiredField;
- rfvDateTimeFormat.Text = image;
- cvDateTimeFormat.ErrorMessage = Resources.Messages.InvalidDateTimeFormat;
- cvDateTimeFormat.ToolTip = Resources.Messages.InvalidDateTimeFormat;
- cvDateTimeFormat.Text = image;
-
- rfvMaxLogSize.ErrorMessage = Resources.Messages.RequiredField;
- rfvMaxLogSize.ToolTip = Resources.Messages.RequiredField;
- rfvMaxLogSize.Text = image;
- rvMaxLogSize.ErrorMessage = Resources.Messages.InvalidMaxLogSize;
- rvMaxLogSize.ToolTip = Resources.Messages.InvalidMaxLogSize;
- rvMaxLogSize.Text = image;
-
- // Advanced
- rfvMaxFileSize.ErrorMessage = Resources.Messages.RequiredField;
- rfvMaxFileSize.ToolTip = Resources.Messages.RequiredField;
- rfvMaxFileSize.Text = image;
- rfvCacheSize.ErrorMessage = Resources.Messages.RequiredField;
- rfvCacheSize.ToolTip = Resources.Messages.RequiredField;
- rfvCacheSize.Text = image;
- rfvCacheCutSize.ErrorMessage = Resources.Messages.RequiredField;
- rfvCacheCutSize.ToolTip = Resources.Messages.RequiredField;
- rfvCacheCutSize.Text = image;
- rfvFileAccessTries.ErrorMessage = Resources.Messages.RequiredField;
- rfvFileAccessTries.ToolTip = Resources.Messages.RequiredField;
- rfvFileAccessTries.Text = image;
- rfvFileAccessTryDelay.ErrorMessage = Resources.Messages.RequiredField;
- rfvFileAccessTryDelay.ToolTip = Resources.Messages.RequiredField;
- rfvFileAccessTryDelay.Text = image;
-
- rvMaxFileSize.ErrorMessage = Resources.Messages.InvalidMaxFileSize;
- rvMaxFileSize.ToolTip = Resources.Messages.InvalidMaxFileSize;
- rvMaxFileSize.Text = image;
- rvCacheSize.ErrorMessage = Resources.Messages.InvalidCacheSize;
- rvCacheSize.ToolTip = Resources.Messages.InvalidCacheSize;
- rvCacheSize.Text = image;
- rvCacheCutSize.ErrorMessage = Resources.Messages.InvalidCacheCutSize;
- rvCacheCutSize.ToolTip = Resources.Messages.InvalidCacheCutSize;
- rvCacheCutSize.Text = image;
- rvFileAccessTries.ErrorMessage = Resources.Messages.InvalidFileAccessTries;
- rvFileAccessTries.ToolTip = Resources.Messages.InvalidFileAccessTries;
- rvFileAccessTries.Text = image;
- rvFileAccessTryDelay.ErrorMessage = Resources.Messages.InvalidFileAccessTryDelay;
- rvFileAccessTryDelay.ToolTip = Resources.Messages.InvalidFileAccessTryDelay;
- rvFileAccessTryDelay.Text = image;
-
- cmpvCacheCutSize.ErrorMessage = Resources.Messages.InvalidCacheCutSize;
- cmpvCacheCutSize.ToolTip = Resources.Messages.InvalidCacheCutSize;
- cmpvCacheCutSize.Text = image;
- }
-
- #endregion
-
- #region Users
-
- protected void chkViewUsers_CheckedChanged(object sender, EventArgs e) {
- LoadUsers();
- }
-
- protected void chkViewAdmins_CheckedChanged(object sender, EventArgs e) {
- LoadUsers();
- }
-
- protected void chkViewActive_CheckedChanged(object sender, EventArgs e) {
- LoadUsers();
- }
-
- protected void chkViewInactive_CheckedChanged(object sender, EventArgs e) {
- LoadUsers();
- }
-
- protected void btnDeleteUser_Click(object sender, EventArgs e) {
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Log.LogEntry("User removal requested for " + user.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.RemoveUser(user);
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.UserDeleted;
-
- LoadUsers();
- }
-
- protected void btnDeactivateUser_Click(object sender, EventArgs e) {
- int index = lstUsers.SelectedIndex;
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Log.LogEntry("User deactivation requested for " + user.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.SetActivationStatus(user, false);
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.UserDeactivated;
-
- LoadUsers();
- try {
- lstUsers.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnActivateUser_Click(object sender, EventArgs e) {
- int index = lstUsers.SelectedIndex;
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Log.LogEntry("User activation requested for " + user.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.SetActivationStatus(user, true);
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.UserActivated;
-
- LoadUsers();
- try {
- lstUsers.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnPromoteUser_Click(object sender, EventArgs e) {
- int index = lstUsers.SelectedIndex;
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Log.LogEntry("User promotion requested for " + user.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.SetAdministratorStatus(user, true);
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.UserPromoted;
-
- LoadUsers();
- try {
- lstUsers.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnDowngradeUser_Click(object sender, EventArgs e) {
- int index = lstUsers.SelectedIndex;
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Log.LogEntry("User downgrading requested for " + user.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.SetAdministratorStatus(user, false);
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.AdminDowngraded;
-
- LoadUsers();
- try {
- lstUsers.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnSendMessage_Click(object sender, EventArgs e) {
- UserInfo user = Users.Instance.Find(lstUsers.SelectedValue);
- if(user == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- Response.Redirect("Message.aspx?Username=" + Tools.UrlEncode(user.Username));
- }
-
- protected void btnCreateNewAccount_Click(object sender, EventArgs e) {
- txtUsername.Enabled = true;
- mlvUsers.ActiveViewIndex = 1;
- }
-
- protected void btnCreateAccount_Click(object sender, EventArgs e) {
- lblCreateAccountResult.Text = "";
-
- if(!Page.IsValid) return;
-
- // Ready to save the user
- Log.LogEntry("Account creation requested for " + txtUsername.Text, EntryType.General, SessionFacade.Username);
- Users.Instance.AddUser(txtUsername.Text, txtPassword1.Text, txtEmail.Text, true, chkAdmin.Checked, Collectors.UsersProviderCollector.GetProvider(lstUserProvider.SelectedValue));
-
- ClearUserFields();
-
- mlvUsers.ActiveViewIndex = 0;
- LoadUsers();
- }
-
- protected void btnCancelAccountCreation_Click(object sender, EventArgs e) {
- ClearUserFields();
-
- mlvUsers.ActiveViewIndex = 0;
- }
-
- protected void lstUsers_SelectedIndexChanged(object sender, EventArgs e) {
- if(lstUsers.SelectedIndex != -1) {
- btnDeleteUser.Enabled = true;
- btnActivateUser.Enabled = true;
- btnDeactivateUser.Enabled = true;
- btnPromoteUser.Enabled = true;
- btnDowngradeUser.Enabled = true;
- }
- else {
- btnDeleteUser.Enabled = false;
- btnActivateUser.Enabled = false;
- btnDeactivateUser.Enabled = false;
- btnPromoteUser.Enabled = false;
- btnDowngradeUser.Enabled = false;
- }
- }
-
- private void ClearUserFields() {
- txtUsername.Text = "";
- txtPassword1.Text = "";
- txtPassword2.Text = "";
- txtEmail.Text = "";
- chkAdmin.Checked = false;
-
- txtUsername.Enabled = true;
- chkAdmin.Visible = true;
- lblPasswordChange.Visible = false;
- lblUserProvider.Visible = true;
- lstUserProvider.Visible = true;
- btnCreateAccount.Visible = true;
- btnModifyAccount.Visible = false;
- }
-
- protected void btnMassEmail_Click(object sender, EventArgs e) {
- btnSendMassEmail.Visible = true;
- btnCancelMassEmail.Visible = true;
- btnBack.Visible = false;
- lblMassEmailResult.Text = "";
- txtSubject.Text = "";
- txtBody.Text = "";
- mlvUsers.ActiveViewIndex = 2;
- }
-
- protected void btnSendMassEmail_Click(object sender, EventArgs e) {
- if(txtSubject.Text.Length == 0 || txtBody.Text.Length == 0) {
- lblMassEmailResult.CssClass = "resulterror";
- lblMassEmailResult.Text = Resources.Messages.SubjectBodyNeeded;
- return;
- }
-
- List<string> emails = new List<string>();
- bool users = chkSendUsers.Checked, admins = chkSendAdministrator.Checked;
- for(int i = 0; i < Users.Instance.AllUsers.Count; i++) {
- if(Users.Instance.AllUsers[i].Active &&
- ((users && !Users.Instance.AllUsers[i].Admin) || (admins && Users.Instance.AllUsers[i].Admin))) {
- emails.Add(Users.Instance.AllUsers[i].Email);
- }
- }
- UserInfo user = Users.Instance.Find(SessionFacade.Username);
- if(user == null && SessionFacade.Username.Equals("admin")) user = new UserInfo("admin", Settings.ContactEmail, true, DateTime.Now, true, null);
- Log.LogEntry("Sending Mass Email to " + emails.Count.ToString() + " users", EntryType.General, SessionFacade.Username);
- EmailSender.SendMassEmail(emails.ToArray(), user.Email, txtSubject.Text, txtBody.Text, false);
- lblMassEmailResult.CssClass = "resultok";
- lblMassEmailResult.Text = Resources.Messages.MassEmailSent;
- btnSendMassEmail.Visible = false;
- btnCancelMassEmail.Visible = false;
- btnBack.Visible = true;
- }
-
- protected void btnCancelMassEmail_Click(object sender, EventArgs e) {
- mlvUsers.ActiveViewIndex = 0;
- }
-
- protected void btnBack_Click(object sender, EventArgs e) {
- mlvUsers.ActiveViewIndex = 0;
- }
-
- protected void btnEditAccount_Click(object sender, EventArgs e) {
- UserInfo u = Users.Instance.Find(lstUsers.SelectedValue);
- if(u == null) {
- lblUserResult.CssClass = "resulterror";
- lblUserResult.Text = Resources.Messages.UserNotFound;
- return;
- }
- txtUsername.Enabled = false;
- txtUsername.Text = u.Username;
- txtEmail.Text = u.Email;
- chkAdmin.Visible = false;
- lblPasswordChange.Visible = true;
- lblUserProvider.Visible = false;
- lstUserProvider.Visible = false;
- btnCreateAccount.Visible = false;
- btnModifyAccount.Visible = true;
- mlvUsers.ActiveViewIndex = 1;
- }
-
- protected void btnModifyAccount_Click(object sender, EventArgs e) {
- rfvEmail.Validate();
- rxvEmail.Validate();
- if(txtPassword1.Text.Length > 0 || txtPassword2.Text.Length > 0) {
- cvPassword1.Validate();
- cvPassword2.Validate();
- }
- if(!Page.IsValid) return;
-
- UserInfo u = Users.Instance.Find(txtUsername.Text);
- if(!u.Email.Equals(txtEmail.Text)) {
- Log.LogEntry("Email change requested for " + u.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.ChangeEmail(u, txtEmail.Text);
- }
- if(txtPassword1.Text.Length > 0) {
- Log.LogEntry("Password change requested for " + u.Username, EntryType.General, SessionFacade.Username);
- Users.Instance.ChangePassword(u, txtPassword1.Text);
- }
- ClearUserFields();
- lblUserResult.CssClass = "resultok";
- lblUserResult.Text = Resources.Messages.UserAccountSaved;
- LoadUsers();
- mlvUsers.ActiveViewIndex = 0;
- }
-
- #endregion
-
- #region Pages
-
- protected void btnPagesPostback_Click(object sender, EventArgs e) {
- // No code needed
- }
-
- protected void chkViewLocked_CheckedChanged(object sender, EventArgs e) {
- LoadPages(true);
- }
-
- protected void chkViewNormal_CheckedChanged(object sender, EventArgs e) {
- LoadPages(true);
- }
-
- protected void chkViewPublic_CheckedChanged(object sender, EventArgs e) {
- LoadPages(true);
- }
-
- protected void btnGoToPage_Click(object sender, EventArgs e) {
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- Response.Redirect(page.Name + Settings.PageExtension);
- }
-
- protected void btnDeletePage_Click(object sender, EventArgs e) {
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- Log.LogEntry("Page deletion requested for " + page.Name, EntryType.General, SessionFacade.Username);
- Pages.Instance.DeletePage(page);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageDeleted;
-
- txtPageName.Text = "";
-
- LoadPages(true);
- }
-
- protected void btnClearPageDiscussion_Click(object sender, EventArgs e) {
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- Log.LogEntry("Page Discussion deletion requested for " + page.Name, EntryType.General, SessionFacade.Username);
- Message[] messages = Pages.Instance.GetPageMessages(page);
- for(int i = 0; i < messages.Length; i++) {
- Pages.Instance.RemoveMessage(page, messages[i].ID, true);
- }
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageDiscussionCleared;
- }
-
- protected void btnSetPageStatus_Click(object sender, EventArgs e) {
- int index = lstPages.SelectedIndex;
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- switch(lstPageStatus.SelectedValue) {
- case "N":
- Log.LogEntry("Page Status change requested for " + page.Name + " (Normal)", EntryType.General, SessionFacade.Username);
- Pages.Instance.SetPageStatus(page, PageStatus.Normal);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageSetNormal;
- break;
- case "P":
- Log.LogEntry("Page Status change requested for " + page.Name + " (Public)", EntryType.General, SessionFacade.Username);
- Pages.Instance.SetPageStatus(page, PageStatus.Public);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageSetPublic;
- break;
- case "L":
- Log.LogEntry("Page Status change requested for " + page.Name + " (Locked)", EntryType.General, SessionFacade.Username);
- Pages.Instance.SetPageStatus(page, PageStatus.Locked);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageSetLocked;
- break;
- }
-
- LoadPages(false);
- try {
- lstPages.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnDeleteAllBackups_Click(object sender, EventArgs e) {
- int index = lstPages.SelectedIndex;
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- Log.LogEntry("Page Backups (all) deletion requested for " + page.Name, EntryType.General, SessionFacade.Username);
- Pages.Instance.DeleteBackups(page);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageBackupsDeleted;
-
- LoadPages(true);
- try {
- lstPages.SelectedIndex = index;
- }
- catch { }
- }
-
- protected void btnDeleteOlderBackups_Click(object sender, EventArgs e) {
- int index = lstPages.SelectedIndex;
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- string selectedBackup = lstPageBackups.SelectedValue;
- if(selectedBackup == null || selectedBackup.Length == 0 || selectedBackup.Equals(" --- ")) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PleaseSelectValidBackup;
- return;
- }
- int version = int.Parse(selectedBackup);
-
- Log.LogEntry("Page Backups (0-" + version.ToString() + ") deletion requested for " + page.Name, EntryType.General, SessionFacade.Username);
- Pages.Instance.DeleteBackups(page, version);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageBackupsDeleted;
-
- LoadPages(true);
- try {
- lstPages.SelectedIndex = index;
- lstPages_SelectedIndexChanged(this, null); // Reload backups list
- }
- catch { }
- }
-
- protected void btnRollback_Click(object sender, EventArgs e) {
- int index = lstPages.SelectedIndex;
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- string selectedBackup = lstPageBackups.SelectedValue;
- if(selectedBackup == null || selectedBackup.Length == 0 || selectedBackup.Equals(" --- ")) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PleaseSelectValidBackup;
- return;
- }
- int version = int.Parse(selectedBackup);
-
- Log.LogEntry("Rollback to version " + version.ToString() + " requested for " + page.Name, EntryType.General, SessionFacade.Username);
- Pages.Instance.Rollback(page, version);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.RollbackCompleted;
-
- LoadPages(true);
- try {
- lstPages.SelectedIndex = index;
- lstPages_SelectedIndexChanged(this, null);
- }
- catch { }
- }
-
- protected void btnRenamePage_Click(object sender, EventArgs e) {
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- if(!Pages.IsValidName(txtPageName.Text)) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.InvalidPageName;
- return;
- }
- if(Pages.Instance.FindPage(txtPageName.Text) != null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageAlreadyExists;
- return;
- }
- Log.LogEntry("Page Rename requested for " + page.Name + " to " + txtPageName.Text, EntryType.General, SessionFacade.Username);
- Pages.Instance.RenamePage(page, txtPageName.Text);
- lblPageResult.CssClass = "resultok";
- lblPageResult.Text = Resources.Messages.PageRenamed;
-
- LoadPages(true);
-
- for(int i = 0; i < lstPages.Items.Count; i++) {
- if(lstPages.Items[i].Text.StartsWith(txtPageName.Text + ",")) {
- lstPages.SelectedIndex = i;
- break;
- }
- }
-
- txtPageName.Text = "";
- }
-
- protected void lstPages_SelectedIndexChanged(object sender, EventArgs e) {
- PageInfo page = Pages.Instance.FindPage(lstPages.SelectedValue);
- if(page == null) {
- lblPageResult.CssClass = "resulterror";
- lblPageResult.Text = Resources.Messages.PageNotFound;
- return;
- }
- lstPageBackups.Items.Clear();
- List<int> backups = Pages.Instance.GetBackups(page);;
- backups.Reverse();
- for(int i = 0; i < backups.Count; i++) {
- lstPageBackups.Items.Add(
- new ListItem("Rev " + backups[i].ToString() + ", " +
- string.Format("{0:yyyy'/'MM'/'dd' 'HH':'mm':'ss}", Pages.Instance.GetBackupContent(page, backups[i]).LastModified),
- backups[i].ToString()));
- }
- if(lstPageBackups.Items.Count == 0) {
- lstPageBackups.Items.Add(new ListItem(" --- ", ""));
- btnDeleteAllBa…
Large files files are truncated, but you can click here to view the full file