Fixed help files.
This commit is contained in:
commit
b8f912cc79
1543 changed files with 395123 additions and 0 deletions
529
WebApplication/AdminConfig.aspx.cs
Normal file
529
WebApplication/AdminConfig.aspx.cs
Normal file
|
@ -0,0 +1,529 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using ScrewTurn.Wiki.PluginFramework;
|
||||
|
||||
namespace ScrewTurn.Wiki {
|
||||
|
||||
public partial class AdminConfig : BasePage {
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e) {
|
||||
AdminMaster.RedirectToLoginIfNeeded();
|
||||
|
||||
if(!AdminMaster.CanManageConfiguration(SessionFacade.GetCurrentUsername(), SessionFacade.GetCurrentGroupNames())) UrlTools.Redirect("AccessDenied.aspx");
|
||||
|
||||
StringBuilder sb = new StringBuilder(200);
|
||||
sb.Append("<script type=\"text/javascript\">\r\n<!--\r\n");
|
||||
sb.AppendFormat("\tvar __DateTimeFormatTextBox = '{0}';\r\n", txtDateTimeFormat.ClientID);
|
||||
sb.Append("// -->\r\n</script>");
|
||||
lblStrings.Text = sb.ToString();
|
||||
|
||||
if(!Page.IsPostBack) {
|
||||
// Setup validation regular expressions
|
||||
revMainUrl.ValidationExpression = Settings.MainUrlRegex;
|
||||
revWikiTitle.ValidationExpression = Settings.WikiTitleRegex;
|
||||
revContactEmail.ValidationExpression = Settings.EmailRegex;
|
||||
revSenderEmail.ValidationExpression = Settings.EmailRegex;
|
||||
revSmtpServer.ValidationExpression = Settings.SmtpServerRegex;
|
||||
|
||||
// Load current values
|
||||
LoadGeneralConfig();
|
||||
LoadContentConfig();
|
||||
LoadSecurityConfig();
|
||||
LoadAdvancedConfig();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads the general configuration.
|
||||
/// </summary>
|
||||
private void LoadGeneralConfig() {
|
||||
txtWikiTitle.Text = Settings.WikiTitle;
|
||||
txtMainUrl.Text = Settings.MainUrl;
|
||||
txtContactEmail.Text = Settings.ContactEmail;
|
||||
txtSenderEmail.Text = Settings.SenderEmail;
|
||||
txtErrorsEmails.Text = string.Join(", ", Settings.ErrorsEmails);
|
||||
txtSmtpServer.Text = Settings.SmtpServer;
|
||||
int port = Settings.SmtpPort;
|
||||
txtSmtpPort.Text = port != -1 ? port.ToString() : "";
|
||||
txtUsername.Text = Settings.SmtpUsername;
|
||||
txtPassword.Attributes.Add("value", Settings.SmtpPassword);
|
||||
chkEnableSslForSmtp.Checked = Settings.SmtpSsl;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the Themes list selecting the current one.
|
||||
/// </summary>
|
||||
/// <param name="current">The current theme.</param>
|
||||
private void PopulateThemes(string current) {
|
||||
current = current.ToLowerInvariant();
|
||||
|
||||
string[] themes = Tools.AvailableThemes;
|
||||
lstRootTheme.Items.Clear();
|
||||
foreach(string theme in themes) {
|
||||
lstRootTheme.Items.Add(new ListItem(theme, theme));
|
||||
if(theme.ToLowerInvariant() == current) lstRootTheme.Items[lstRootTheme.Items.Count - 1].Selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the main pages list selecting the current one.
|
||||
/// </summary>
|
||||
/// <param name="current">The current page.</param>
|
||||
private void PopulateMainPages(string current) {
|
||||
current = current.ToLowerInvariant();
|
||||
|
||||
List<PageInfo> pages = Pages.GetPages(null);
|
||||
lstMainPage.Items.Clear();
|
||||
foreach(PageInfo page in pages) {
|
||||
lstMainPage.Items.Add(new ListItem(page.FullName, page.FullName));
|
||||
if(page.FullName.ToLowerInvariant() == current) {
|
||||
lstMainPage.SelectedIndex = -1;
|
||||
lstMainPage.Items[lstMainPage.Items.Count - 1].Selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the languages list selecting the current one.
|
||||
/// </summary>
|
||||
/// <param name="current">The current language.</param>
|
||||
private void PopulateLanguages(string current) {
|
||||
current = current.ToLowerInvariant();
|
||||
|
||||
string[] langs = Tools.AvailableCultures;
|
||||
lstDefaultLanguage.Items.Clear();
|
||||
foreach(string lang in langs) {
|
||||
string[] fields = lang.Split('|');
|
||||
lstDefaultLanguage.Items.Add(new ListItem(fields[1], fields[0]));
|
||||
if(fields[0].ToLowerInvariant() == current) lstDefaultLanguage.Items[lstDefaultLanguage.Items.Count - 1].Selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the time zones list selecting the current one.
|
||||
/// </summary>
|
||||
/// <param name="current">The current time zone.</param>
|
||||
private void PopulateTimeZones(string current) {
|
||||
for(int i = 0; i < lstDefaultTimeZone.Items.Count; i++) {
|
||||
if(lstDefaultTimeZone.Items[i].Value == current) lstDefaultTimeZone.Items[i].Selected = true;
|
||||
else lstDefaultTimeZone.Items[i].Selected = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the date/time format templates list.
|
||||
/// </summary>
|
||||
private void PopulateDateTimeFormats() {
|
||||
StringBuilder sb = new StringBuilder(500);
|
||||
DateTime test = DateTime.Now;
|
||||
sb.Append(@"<option value=""ddd', 'dd' 'MMM' 'yyyy' 'HH':'mm"">" + test.ToString("ddd, dd MMM yyyy HH':'mm") + "</option>");
|
||||
sb.Append(@"<option value=""dddd', 'dd' 'MMMM' 'yyyy' 'HH':'mm"">" + test.ToString("dddd, dd MMMM yyyy HH':'mm") + "</option>");
|
||||
sb.Append(@"<option value=""yyyy'/'MM'/'dd' 'HH':'mm"">" + test.ToString("yyyy'/'MM'/'dd' 'HH':'mm") + "</option>");
|
||||
sb.Append(@"<option value=""MM'/'dd'/'yyyy' 'HH':'mm"">" + test.ToString("MM'/'dd'/'yyyy' 'HH':'mm") + "</option>");
|
||||
sb.Append(@"<option value=""dd'/'MM'/'yyyy' 'HH':'mm"">" + test.ToString("dd'/'MM'/'yyyy' 'HH':'mm") + "</option>");
|
||||
|
||||
sb.Append(@"<option value=""ddd', 'dd' 'MMM' 'yyyy' 'hh':'mm' 'tt"">" + test.ToString("ddd, dd MMM yyyy hh':'mm' 'tt") + "</option>");
|
||||
sb.Append(@"<option value=""dddd', 'dd' 'MMMM' 'yyyy' 'hh':'mm' 'tt"">" + test.ToString("dddd, dd MMMM yyyy hh':'mm' 'tt") + "</option>");
|
||||
sb.Append(@"<option value=""yyyy'/'MM'/'dd' 'hh':'mm' 'tt"">" + test.ToString("yyyy'/'MM'/'dd' 'hh':'mm' 'tt") + "</option>");
|
||||
sb.Append(@"<option value=""MM'/'dd'/'yyyy' 'hh':'mm' 'tt"">" + test.ToString("MM'/'dd'/'yyyy' 'hh':'mm' 'tt") + "</option>");
|
||||
sb.Append(@"<option value=""dd'/'MM'/'yyyy' 'hh':'mm' 'tt"">" + test.ToString("dd'/'MM'/'yyyy' 'hh':'mm' 'tt") + "</option>");
|
||||
|
||||
lblDateTimeFormatTemplates.Text = sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads the content configuration.
|
||||
/// </summary>
|
||||
private void LoadContentConfig() {
|
||||
PopulateThemes(Settings.GetTheme(null));
|
||||
PopulateMainPages(Settings.DefaultPage);
|
||||
txtDateTimeFormat.Text = Settings.DateTimeFormat;
|
||||
PopulateDateTimeFormats();
|
||||
PopulateLanguages(Settings.DefaultLanguage);
|
||||
PopulateTimeZones(Settings.DefaultTimezone.ToString());
|
||||
txtMaxRecentChangesToDisplay.Text = Settings.MaxRecentChangesToDisplay.ToString();
|
||||
|
||||
lstRssFeedsMode.SelectedIndex = -1;
|
||||
switch(Settings.RssFeedsMode) {
|
||||
case RssFeedsMode.FullText:
|
||||
lstRssFeedsMode.SelectedIndex = 0;
|
||||
break;
|
||||
case RssFeedsMode.Summary:
|
||||
lstRssFeedsMode.SelectedIndex = 1;
|
||||
break;
|
||||
case RssFeedsMode.Disabled:
|
||||
lstRssFeedsMode.SelectedIndex = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
chkEnableDoubleClickEditing.Checked = Settings.EnableDoubleClickEditing;
|
||||
chkEnableSectionEditing.Checked = Settings.EnableSectionEditing;
|
||||
chkEnablePageToolbar.Checked = Settings.EnablePageToolbar;
|
||||
chkEnableViewPageCode.Checked = Settings.EnableViewPageCodeFeature;
|
||||
chkEnablePageInfoDiv.Checked = Settings.EnablePageInfoDiv;
|
||||
chkEnableBreadcrumbsTrail.Checked = !Settings.DisableBreadcrumbsTrail;
|
||||
chkAutoGeneratePageNames.Checked = Settings.AutoGeneratePageNames;
|
||||
chkProcessSingleLineBreaks.Checked = Settings.ProcessSingleLineBreaks;
|
||||
chkUseVisualEditorAsDefault.Checked = Settings.UseVisualEditorAsDefault;
|
||||
if(Settings.KeptBackupNumber == -1) txtKeptBackupNumber.Text = "";
|
||||
else txtKeptBackupNumber.Text = Settings.KeptBackupNumber.ToString();
|
||||
chkDisplayGravatars.Checked = Settings.DisplayGravatars;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the activation mode list selecting the current one.
|
||||
/// </summary>
|
||||
/// <param name="current">The current account activation mode.</param>
|
||||
private void PopulateAccountActivationMode(AccountActivationMode current) {
|
||||
if(current == AccountActivationMode.Email) lstAccountActivationMode.SelectedIndex = 0;
|
||||
else if(current == AccountActivationMode.Administrator) lstAccountActivationMode.SelectedIndex = 1;
|
||||
else lstAccountActivationMode.SelectedIndex = 2;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Populates the default groups lists, selecting the current ones.
|
||||
/// </summary>
|
||||
/// <param name="users">The current default users group.</param>
|
||||
/// <param name="admins">The current default administrators group.</param>
|
||||
/// <param name="anonymous">The current default anonymous users group.</param>
|
||||
private void PopulateDefaultGroups(string users, string admins, string anonymous) {
|
||||
users = users.ToLowerInvariant();
|
||||
admins = admins.ToLowerInvariant();
|
||||
anonymous = anonymous.ToLowerInvariant();
|
||||
|
||||
lstDefaultUsersGroup.Items.Clear();
|
||||
lstDefaultAdministratorsGroup.Items.Clear();
|
||||
lstDefaultAnonymousGroup.Items.Clear();
|
||||
foreach(UserGroup group in Users.GetUserGroups()) {
|
||||
string lowerName = group.Name.ToLowerInvariant();
|
||||
|
||||
lstDefaultUsersGroup.Items.Add(new ListItem(group.Name, group.Name));
|
||||
if(lowerName == users) {
|
||||
lstDefaultUsersGroup.SelectedIndex = -1;
|
||||
lstDefaultUsersGroup.Items[lstDefaultUsersGroup.Items.Count - 1].Selected = true;
|
||||
}
|
||||
|
||||
lstDefaultAdministratorsGroup.Items.Add(new ListItem(group.Name, group.Name));
|
||||
if(lowerName == admins) {
|
||||
lstDefaultAdministratorsGroup.SelectedIndex = -1;
|
||||
lstDefaultAdministratorsGroup.Items[lstDefaultAdministratorsGroup.Items.Count - 1].Selected = true;
|
||||
}
|
||||
|
||||
lstDefaultAnonymousGroup.Items.Add(new ListItem(group.Name, group.Name));
|
||||
if(lowerName == anonymous) {
|
||||
lstDefaultAnonymousGroup.SelectedIndex = -1;
|
||||
lstDefaultAnonymousGroup.Items[lstDefaultAnonymousGroup.Items.Count - 1].Selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads the security configuration.
|
||||
/// </summary>
|
||||
private void LoadSecurityConfig() {
|
||||
chkAllowUsersToRegister.Checked = Settings.UsersCanRegister;
|
||||
txtPasswordRegEx.Text = Settings.PasswordRegex;
|
||||
txtUsernameRegEx.Text = Settings.UsernameRegex;
|
||||
PopulateAccountActivationMode(Settings.AccountActivationMode);
|
||||
PopulateDefaultGroups(Settings.UsersGroup,
|
||||
Settings.AdministratorsGroup,
|
||||
Settings.AnonymousGroup);
|
||||
chkEnableCaptchaControl.Checked = !Settings.DisableCaptchaControl;
|
||||
chkPreventConcurrentEditing.Checked = Settings.DisableConcurrentEditing;
|
||||
|
||||
switch(Settings.ChangeModerationMode) {
|
||||
case ChangeModerationMode.None:
|
||||
rdoNoModeration.Checked = true;
|
||||
break;
|
||||
case ChangeModerationMode.RequirePageViewingPermissions:
|
||||
rdoRequirePageViewingPermissions.Checked = true;
|
||||
break;
|
||||
case ChangeModerationMode.RequirePageEditingPermissions:
|
||||
rdoRequirePageEditingPermissions.Checked = true;
|
||||
break;
|
||||
}
|
||||
|
||||
txtExtensionsAllowed.Text = string.Join(", ", Settings.AllowedFileTypes);
|
||||
|
||||
lstFileDownloadCountFilterMode.SelectedIndex = -1;
|
||||
switch(Settings.FileDownloadCountFilterMode) {
|
||||
case FileDownloadCountFilterMode.CountAll:
|
||||
lstFileDownloadCountFilterMode.SelectedIndex = 0;
|
||||
txtFileDownloadCountFilter.Enabled = false;
|
||||
break;
|
||||
case FileDownloadCountFilterMode.CountSpecifiedExtensions:
|
||||
lstFileDownloadCountFilterMode.SelectedIndex = 1;
|
||||
txtFileDownloadCountFilter.Enabled = true;
|
||||
txtFileDownloadCountFilter.Text = string.Join(", ", Settings.FileDownloadCountFilter);
|
||||
break;
|
||||
case FileDownloadCountFilterMode.ExcludeSpecifiedExtensions:
|
||||
txtFileDownloadCountFilter.Text = string.Join(", ", Settings.FileDownloadCountFilter);
|
||||
txtFileDownloadCountFilter.Enabled = true;
|
||||
lstFileDownloadCountFilterMode.SelectedIndex = 2;
|
||||
break;
|
||||
default:
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
txtMaxFileSize.Text = Settings.MaxFileSize.ToString();
|
||||
chkAllowScriptTags.Checked = Settings.ScriptTagsAllowed;
|
||||
txtMaxLogSize.Text = Settings.MaxLogSize.ToString();
|
||||
txtIpHostFilter.Text = Settings.IpHostFilter;
|
||||
switch(Settings.LoggingLevel) {
|
||||
case LoggingLevel.DisableLog:
|
||||
rdoDisableLog.Checked = true;
|
||||
break;
|
||||
case LoggingLevel.ErrorsOnly:
|
||||
rdoErrorsOnly.Checked = true;
|
||||
break;
|
||||
case LoggingLevel.WarningsAndErrors:
|
||||
rdoWarningsAndErrors.Checked = true;
|
||||
break;
|
||||
case LoggingLevel.AllMessages:
|
||||
rdoAllMessages.Checked = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads the advanced configuration.
|
||||
/// </summary>
|
||||
private void LoadAdvancedConfig() {
|
||||
chkEnableAutomaticUpdateChecks.Checked = !Settings.DisableAutomaticVersionCheck;
|
||||
chkDisableCache.Checked = Settings.DisableCache;
|
||||
txtCacheSize.Text = Settings.CacheSize.ToString();
|
||||
txtCacheCutSize.Text = Settings.CacheCutSize.ToString();
|
||||
chkEnableViewStateCompression.Checked = Settings.EnableViewStateCompression;
|
||||
chkEnableHttpCompression.Checked = Settings.EnableHttpCompression;
|
||||
}
|
||||
|
||||
protected void btnAutoWikiUrl_Click(object sender, EventArgs e) {
|
||||
string url = Request.Url.ToString();
|
||||
// Assume the URL contains AdminConfig.aspx
|
||||
url = url.Substring(0, url.ToLowerInvariant().IndexOf("adminconfig.aspx"));
|
||||
txtMainUrl.Text = url;
|
||||
}
|
||||
|
||||
protected void cvUsername_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
e.IsValid = txtUsername.Text.Length == 0 ||
|
||||
(txtUsername.Text.Length > 0 && txtPassword.Text.Length > 0);
|
||||
}
|
||||
|
||||
protected void cvPassword_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
e.IsValid = txtPassword.Text.Length == 0 ||
|
||||
(txtUsername.Text.Length > 0 && txtPassword.Text.Length > 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the errors emails, properly trimmed.
|
||||
/// </summary>
|
||||
/// <returns>The emails.</returns>
|
||||
private string[] GetErrorsEmails() {
|
||||
string[] emails = txtErrorsEmails.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
for(int i = 0; i < emails.Length; i++) {
|
||||
emails[i] = emails[i].Trim();
|
||||
}
|
||||
|
||||
return emails;
|
||||
}
|
||||
|
||||
protected void cvErrorsEmails_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
string[] emails = GetErrorsEmails();
|
||||
|
||||
Regex regex = new Regex(Settings.EmailRegex, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
|
||||
|
||||
foreach(string email in emails) {
|
||||
if(!regex.Match(email).Success) {
|
||||
e.IsValid = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
e.IsValid = true;
|
||||
}
|
||||
|
||||
protected void cvUsernameRegEx_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
try {
|
||||
var r = new Regex(txtUsernameRegEx.Text);
|
||||
r.IsMatch("Test String to validate Regular Expression");
|
||||
e.IsValid = true;
|
||||
}
|
||||
catch {
|
||||
e.IsValid = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected void cvPasswordRegEx_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
try {
|
||||
var r = new Regex(txtPasswordRegEx.Text);
|
||||
r.IsMatch("Test String to validate Regular Expression");
|
||||
e.IsValid = true;
|
||||
}
|
||||
catch {
|
||||
e.IsValid = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected void cvDateTimeFormat_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
try {
|
||||
DateTime.Now.ToString(txtDateTimeFormat.Text);
|
||||
e.IsValid = true;
|
||||
}
|
||||
catch {
|
||||
e.IsValid = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the extensions allowed for upload from the input control.
|
||||
/// </summary>
|
||||
/// <returns>The extensions.</returns>
|
||||
private string[] GetAllowedFileExtensions() {
|
||||
return txtExtensionsAllowed.Text.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
}
|
||||
|
||||
protected void cvExtensionsAllowed_ServerValidate(object sender, ServerValidateEventArgs e) {
|
||||
string[] allowed = GetAllowedFileExtensions();
|
||||
|
||||
bool wildcardFound =
|
||||
(from s in allowed
|
||||
where s == "*"
|
||||
select s).Any();
|
||||
|
||||
e.IsValid = allowed.Length <= 1 || allowed.Length > 1 && !wildcardFound;
|
||||
}
|
||||
|
||||
protected void lstFileDownloadCountFilterMode_SelectedIndexChanged(object sender, EventArgs e) {
|
||||
if(lstFileDownloadCountFilterMode.SelectedValue == FileDownloadCountFilterMode.CountAll.ToString()) {
|
||||
txtFileDownloadCountFilter.Enabled = false;
|
||||
}
|
||||
else {
|
||||
txtFileDownloadCountFilter.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnSave_Click(object sender, EventArgs e) {
|
||||
lblResult.CssClass = "";
|
||||
lblResult.Text = "";
|
||||
|
||||
Page.Validate();
|
||||
|
||||
if(!Page.IsValid) return;
|
||||
|
||||
Log.LogEntry("Wiki Configuration change requested", EntryType.General, SessionFacade.CurrentUsername);
|
||||
|
||||
Settings.BeginBulkUpdate();
|
||||
|
||||
// Save general configuration
|
||||
Settings.WikiTitle = txtWikiTitle.Text;
|
||||
Settings.MainUrl = txtMainUrl.Text;
|
||||
Settings.ContactEmail = txtContactEmail.Text;
|
||||
Settings.SenderEmail = txtSenderEmail.Text;
|
||||
Settings.ErrorsEmails = GetErrorsEmails();
|
||||
Settings.SmtpServer = txtSmtpServer.Text;
|
||||
|
||||
txtSmtpPort.Text = txtSmtpPort.Text.Trim();
|
||||
if(txtSmtpPort.Text.Length > 0) Settings.SmtpPort = int.Parse(txtSmtpPort.Text);
|
||||
else Settings.SmtpPort = -1;
|
||||
if(txtUsername.Text.Length > 0) {
|
||||
Settings.SmtpUsername = txtUsername.Text;
|
||||
Settings.SmtpPassword = txtPassword.Text;
|
||||
}
|
||||
else {
|
||||
Settings.SmtpUsername = "";
|
||||
Settings.SmtpPassword = "";
|
||||
}
|
||||
Settings.SmtpSsl = chkEnableSslForSmtp.Checked;
|
||||
|
||||
// Save content configuration
|
||||
Settings.SetTheme(null, lstRootTheme.SelectedValue);
|
||||
Settings.DefaultPage = lstMainPage.SelectedValue;
|
||||
Settings.DateTimeFormat = txtDateTimeFormat.Text;
|
||||
Settings.DefaultLanguage = lstDefaultLanguage.SelectedValue;
|
||||
Settings.DefaultTimezone = int.Parse(lstDefaultTimeZone.SelectedValue);
|
||||
Settings.MaxRecentChangesToDisplay = int.Parse(txtMaxRecentChangesToDisplay.Text);
|
||||
Settings.RssFeedsMode = (RssFeedsMode)Enum.Parse(typeof(RssFeedsMode), lstRssFeedsMode.SelectedValue);
|
||||
Settings.EnableDoubleClickEditing = chkEnableDoubleClickEditing.Checked;
|
||||
Settings.EnableSectionEditing = chkEnableSectionEditing.Checked;
|
||||
Settings.EnablePageToolbar = chkEnablePageToolbar.Checked;
|
||||
Settings.EnableViewPageCodeFeature = chkEnableViewPageCode.Checked;
|
||||
Settings.EnablePageInfoDiv = chkEnablePageInfoDiv.Checked;
|
||||
Settings.DisableBreadcrumbsTrail = !chkEnableBreadcrumbsTrail.Checked;
|
||||
Settings.AutoGeneratePageNames = chkAutoGeneratePageNames.Checked;
|
||||
Settings.ProcessSingleLineBreaks = chkProcessSingleLineBreaks.Checked;
|
||||
Settings.UseVisualEditorAsDefault = chkUseVisualEditorAsDefault.Checked;
|
||||
if(txtKeptBackupNumber.Text == "") Settings.KeptBackupNumber = -1;
|
||||
else Settings.KeptBackupNumber = int.Parse(txtKeptBackupNumber.Text);
|
||||
Settings.DisplayGravatars = chkDisplayGravatars.Checked;
|
||||
|
||||
// Save security configuration
|
||||
Settings.UsersCanRegister = chkAllowUsersToRegister.Checked;
|
||||
Settings.UsernameRegex = txtUsernameRegEx.Text;
|
||||
Settings.PasswordRegex = txtPasswordRegEx.Text;
|
||||
AccountActivationMode mode = AccountActivationMode.Email;
|
||||
switch(lstAccountActivationMode.SelectedValue.ToLowerInvariant()) {
|
||||
case "email":
|
||||
mode = AccountActivationMode.Email;
|
||||
break;
|
||||
case "admin":
|
||||
mode = AccountActivationMode.Administrator;
|
||||
break;
|
||||
case "auto":
|
||||
mode = AccountActivationMode.Auto;
|
||||
break;
|
||||
}
|
||||
Settings.AccountActivationMode = mode;
|
||||
Settings.UsersGroup = lstDefaultUsersGroup.SelectedValue;
|
||||
Settings.AdministratorsGroup = lstDefaultAdministratorsGroup.SelectedValue;
|
||||
Settings.AnonymousGroup = lstDefaultAnonymousGroup.SelectedValue;
|
||||
Settings.DisableCaptchaControl = !chkEnableCaptchaControl.Checked;
|
||||
Settings.DisableConcurrentEditing = chkPreventConcurrentEditing.Checked;
|
||||
|
||||
if(rdoNoModeration.Checked) Settings.ChangeModerationMode = ChangeModerationMode.None;
|
||||
else if(rdoRequirePageViewingPermissions.Checked) Settings.ChangeModerationMode = ChangeModerationMode.RequirePageViewingPermissions;
|
||||
else if(rdoRequirePageEditingPermissions.Checked) Settings.ChangeModerationMode = ChangeModerationMode.RequirePageEditingPermissions;
|
||||
|
||||
Settings.AllowedFileTypes = GetAllowedFileExtensions();
|
||||
|
||||
Settings.FileDownloadCountFilterMode = (FileDownloadCountFilterMode)Enum.Parse(typeof(FileDownloadCountFilterMode), lstFileDownloadCountFilterMode.SelectedValue);
|
||||
Settings.FileDownloadCountFilter = txtFileDownloadCountFilter.Text.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
Settings.MaxFileSize = int.Parse(txtMaxFileSize.Text);
|
||||
Settings.ScriptTagsAllowed = chkAllowScriptTags.Checked;
|
||||
LoggingLevel level = LoggingLevel.AllMessages;
|
||||
if(rdoAllMessages.Checked) level = LoggingLevel.AllMessages;
|
||||
else if(rdoWarningsAndErrors.Checked) level = LoggingLevel.WarningsAndErrors;
|
||||
else if(rdoErrorsOnly.Checked) level = LoggingLevel.ErrorsOnly;
|
||||
else level = LoggingLevel.DisableLog;
|
||||
Settings.LoggingLevel = level;
|
||||
Settings.MaxLogSize = int.Parse(txtMaxLogSize.Text);
|
||||
Settings.IpHostFilter = txtIpHostFilter.Text;
|
||||
|
||||
// Save advanced configuration
|
||||
Settings.DisableAutomaticVersionCheck = !chkEnableAutomaticUpdateChecks.Checked;
|
||||
Settings.DisableCache = chkDisableCache.Checked;
|
||||
Settings.CacheSize = int.Parse(txtCacheSize.Text);
|
||||
Settings.CacheCutSize = int.Parse(txtCacheCutSize.Text);
|
||||
Settings.EnableViewStateCompression = chkEnableViewStateCompression.Checked;
|
||||
Settings.EnableHttpCompression = chkEnableHttpCompression.Checked;
|
||||
|
||||
Settings.EndBulkUpdate();
|
||||
|
||||
Content.InvalidateAllPages();
|
||||
Content.ClearPseudoCache();
|
||||
|
||||
lblResult.CssClass = "resultok";
|
||||
lblResult.Text = Properties.Messages.ConfigSaved;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue