This commit is contained in:
Virtuworks 2014-08-17 12:52:15 -04:00
commit 2f86a34398
35 changed files with 6137 additions and 26 deletions

View file

@ -4464,6 +4464,13 @@ UPDATE [dbo].[ServiceItemTypes] SET [Suspendable] = 1 WHERE [ItemTypeID] = 38 AN
END
GO
/* ICE Warp */
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'IceWarp')
BEGIN
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (160, 4, N'IceWarp', N'IceWarp Mail Server', N'WebsitePanel.Providers.Mail.IceWarp, WebsitePanel.Providers.Mail.IceWarp', N'IceWarp', NULL)
END
GO
/* SQL 2014 Provider */
IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'MsSQL2014')
BEGIN

View file

@ -199,5 +199,31 @@ namespace WebsitePanel.Providers.Mail
public string ResponderExpirationDate { get; set; }
#endregion
}
#region IceWarp
public int IceWarpAccountType { get; set; }
public int IceWarpAccountState { get; set; }
public int IceWarpRespondType { get; set; }
public bool RespondOnlyBetweenDates { get; set; } // Added this because Calendar Control used did not allow null values
public DateTime RespondFrom { get; set; }
public DateTime RespondTo { get; set; }
public string RespondWithReplyFrom { get; set; }
public int RespondPeriodInDays { get; set; }
public bool DeleteOlder { get; set; }
public int DeleteOlderDays { get; set; }
public bool ForwardOlder { get; set; }
public int ForwardOlderDays { get; set; }
public string ForwardOlderTo { get; set; }
public int MaxMessageSizeMegaByte { get; set; }
public int MegaByteSendLimit { get; set; }
public int NumberSendLimit { get; set; }
public string FullName { get; set; }
#endregion
}
}

View file

@ -365,5 +365,17 @@ namespace WebsitePanel.Providers.Mail
#endregion
}
#region IceWarp
public int MegaByteSendLimit { get; set; }
public int NumberSendLimit { get; set; }
public int DefaultUserQuotaInMB { get; set; }
public int DefaultUserMaxMessageSizeMegaByte { get; set; }
public int DefaultUserMegaByteSendLimit { get; set; }
public int DefaultUserNumberSendLimit { get; set; }
#endregion
}
}

View file

@ -67,4 +67,42 @@ namespace WebsitePanel.Providers.Mail
#endregion
#region IceWarp
public enum IceWarpListMembersSource
{
MembersInFile = 0,
AllDomainUsers = 1,
AllDomainAdmins = 3
}
public enum IceWarpListFromAndReplyToHeader
{
NoChange = 0,
SetToSender = 1,
SetToValue = 2
}
public enum IceWarpListOriginator
{
Blank = 0,
Sender = 1,
Owner = 2
}
[Flags]
public enum IceWarpListDefaultRights
{
Receive = 1,
Post = 2,
Digest = 4
}
public enum IceWarpListConfirmSubscription
{
None = 0,
User = 1,
Owner = 2
}
#endregion
}

View file

@ -280,5 +280,26 @@ namespace WebsitePanel.Providers.Mail
set { requireSmtpAuthentication = value; }
}
#endregion
#region IceWarp
public IceWarpListMembersSource MembersSource { get; set; }
public IceWarpListFromAndReplyToHeader FromHeader { get; set; }
public IceWarpListFromAndReplyToHeader ReplyToHeader { get; set; }
public bool SetReceipientsToToHeader { get; set; }
public IceWarpListOriginator Originator { get; set; }
public IceWarpListDefaultRights DefaultRights { get; set; }
public int MaxMembers { get; set; }
public bool SendToSender { get; set; }
public int MaxMessagesPerMinute { get; set; }
public IceWarpListConfirmSubscription ConfirmSubscription { get; set; }
public bool CommandsInSubject { get; set; }
public bool DisableWhichCommand { get; set; }
public bool DisableReviewCommand { get; set; }
public bool DisableVacationCommand { get; set; }
public string CommandPassword { get; set; }
public bool SuppressCommandResponses { get; set; }
#endregion
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WebsitePanel.Providers.Mail.IceWarp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebsitePanel.Providers.Mail.IceWarp")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a1d6862c-a090-4043-9db3-591ca690da83")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{95EA2D6E-278C-4A74-97DB-946362C4DEEA}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WebsitePanel.Providers.Mail.IceWarp</RootNamespace>
<AssemblyName>WebsitePanel.Providers.Mail.IceWarp</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="IceWarp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WebsitePanel.Providers.Base\WebsitePanel.Providers.Base.csproj">
<Project>{684C932A-6C75-46AC-A327-F3689D89EB42}</Project>
<Name>WebsitePanel.Providers.Base</Name>
</ProjectReference>
<ProjectReference Include="..\WebsitePanel.Server.Utils\WebsitePanel.Server.Utils.csproj">
<Project>{E91E52F3-9555-4D00-B577-2B1DBDD87CA7}</Project>
<Name>WebsitePanel.Server.Utils</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2010
# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Caching Application Block", "Caching Application Block", "{C8E6F2E4-A5B8-486A-A56E-92D864524682}"
ProjectSection(SolutionItems) = preProject
Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll = Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll
@ -150,6 +150,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.DNS.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.HostedSolution.Crm2013", "WebsitePanel.Providers.HostedSolution.Crm2013\WebsitePanel.Providers.HostedSolution.Crm2013.csproj", "{1EF935C9-6DB9-47A1-B261-CB56512DF980}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.IceWarp", "WebsitePanel.Providers.Mail.IceWarp\WebsitePanel.Providers.Mail.IceWarp.csproj", "{95EA2D6E-278C-4A74-97DB-946362C4DEEA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -760,6 +762,16 @@ Global
{1EF935C9-6DB9-47A1-B261-CB56512DF980}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1EF935C9-6DB9-47A1-B261-CB56512DF980}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1EF935C9-6DB9-47A1-B261-CB56512DF980}.Release|x86.ActiveCfg = Release|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Debug|x86.ActiveCfg = Debug|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Release|Any CPU.Build.0 = Release|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{95EA2D6E-278C-4A74-97DB-946362C4DEEA}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View file

@ -17,7 +17,7 @@
<OldToolsVersion>4.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile />
<UseIISExpress>false</UseIISExpress>
<IISExpressSSLPort />
@ -79,6 +79,7 @@
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Web" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.Extensions" />

View file

@ -188,36 +188,40 @@ namespace WebsitePanel.Portal
item.Password = passwordControl.Password;
item.MaxMailboxSize = Utils.ParseInt(txtMailBoxSizeLimit.Text);
//checking if account name is different from existing e-mail lists
MailList[] lists = ES.Services.MailServers.GetMailLists(PanelSecurity.PackageId, true);
foreach (MailList list in lists)
// Only check for conflicting names if creating new item
if (PanelRequest.ItemID == 0)
{
if (item.Name == list.Name)
//checking if account name is different from existing e-mail lists
MailList[] lists = ES.Services.MailServers.GetMailLists(PanelSecurity.PackageId, true);
foreach (MailList list in lists)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
if (item.Name == list.Name)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
}
}
}
//checking if account name is different from existing e-mail groups
MailGroup[] mailgroups = ES.Services.MailServers.GetMailGroups(PanelSecurity.PackageId, true);
foreach (MailGroup group in mailgroups)
{
if (item.Name == group.Name)
//checking if account name is different from existing e-mail groups
MailGroup[] mailgroups = ES.Services.MailServers.GetMailGroups(PanelSecurity.PackageId, true);
foreach (MailGroup group in mailgroups)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
if (item.Name == group.Name)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
}
}
}
//checking if account name is different from existing forwardings
MailAlias[] forwardings = ES.Services.MailServers.GetMailForwardings(PanelSecurity.PackageId, true);
foreach (MailAlias forwarding in forwardings)
{
if (item.Name == forwarding.Name)
//checking if account name is different from existing forwardings
MailAlias[] forwardings = ES.Services.MailServers.GetMailForwardings(PanelSecurity.PackageId, true);
foreach (MailAlias forwarding in forwardings)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
if (item.Name == forwarding.Name)
{
ShowWarningMessage("MAIL_ACCOUNT_NAME");
return;
}
}
}

View file

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cbChangePassword.Text" xml:space="preserve">
<value>Change password</value>
</data>
<data name="cbChangePassword.ToolTip" xml:space="preserve">
<value />
</data>
<data name="cbDeleteOlder.Text" xml:space="preserve">
<value>Enable delete of older messages</value>
</data>
<data name="cbDeleteOlder.ToolTip" xml:space="preserve">
<value />
</data>
<data name="cbDeleteOnForward.Text" xml:space="preserve">
<value>Delete Message on Forward</value>
</data>
<data name="cbDeleteOnForward.ToolTip" xml:space="preserve">
<value />
</data>
<data name="cbDomainAdmin.Text" xml:space="preserve">
<value>Domain Administrator</value>
</data>
<data name="cbDomainAdmin.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkRespondOnlyBetweenDates.Text" xml:space="preserve">
<value>Only respond between these dates</value>
</data>
<data name="chkRespondOnlyBetweenDates.ToolTip" xml:space="preserve">
<value />
</data>
<data name="ddlAccountStateDisabledLogin.Text" xml:space="preserve">
<value>Disabled (Login)</value>
</data>
<data name="ddlAccountStateDisabledLoginReceive.Text" xml:space="preserve">
<value>Disabled (Login, Receive)</value>
</data>
<data name="ddlAccountStateDisabledTarpitting.Text" xml:space="preserve">
<value>Disabled (Tarpitting)</value>
</data>
<data name="ddlAccountStateEnabled.Text" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="ddlRespondAlways.Text" xml:space="preserve">
<value>Respond always (can cause loop)</value>
</data>
<data name="ddlRespondDisabled.Text" xml:space="preserve">
<value>Disabled</value>
</data>
<data name="ddlRespondOnce.Text" xml:space="preserve">
<value>Respond once</value>
</data>
<data name="ddlRespondOnceInPeriod.Text" xml:space="preserve">
<value>Respond once in period</value>
</data>
<data name="lblAccountState.Text" xml:space="preserve">
<value>Account state:</value>
</data>
<data name="lblAccountState.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblAccountType.Text" xml:space="preserve">
<value>Account type:</value>
</data>
<data name="lblAccountType.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblDeleteOlderDays.Text" xml:space="preserve">
<value>Delete older than (days):</value>
</data>
<data name="lblDeleteOlderDays.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblForwardOlderDays.Text" xml:space="preserve">
<value>Forward older than (days):</value>
</data>
<data name="lblForwardOlderDays.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblForwardOlderTo.Text" xml:space="preserve">
<value>Forward to:</value>
</data>
<data name="lblForwardOlderTo.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblForwardTo.Text" xml:space="preserve">
<value>Forward mail to address:</value>
</data>
<data name="lblForwardTo.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblFullName.Text" xml:space="preserve">
<value>Full Name:</value>
</data>
<data name="lblFullName.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMessage.Text" xml:space="preserve">
<value>Message:</value>
</data>
<data name="lblMessage.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblResponderEnabled.Text" xml:space="preserve">
<value>Responder type:</value>
</data>
<data name="lblResponderEnabled.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblRespondPeriodInDays.Text" xml:space="preserve">
<value>Respond period in days:</value>
</data>
<data name="lblRespondPeriodInDays.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblRespondWithReplyFrom.Text" xml:space="preserve">
<value>Respond with reply from:</value>
</data>
<data name="lblRespondWithReplyFrom.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblSubject.Text" xml:space="preserve">
<value>Subject:</value>
</data>
<data name="lblSubject.ToolTip" xml:space="preserve">
<value />
</data>
<data name="RespondPeriodInDaysValidator.ErrorMessage" xml:space="preserve">
<value>Respond days must be between 0 and 63 days</value>
</data>
<data name="RespondPeriodInDaysValidator.Text" xml:space="preserve">
<value />
</data>
<data name="RespondPeriodInDaysValidator.ToolTip" xml:space="preserve">
<value />
</data>
<data name="Autoresponder.Text" xml:space="preserve">
<value>Autoresponder</value>
</data>
<data name="Forwarding.Text" xml:space="preserve">
<value>Mail Forwarding</value>
</data>
<data name="lblRespondFrom.Text" xml:space="preserve">
<value>Respond from:</value>
</data>
<data name="lblRespondTo.Text" xml:space="preserve">
<value>Respond To:</value>
</data>
<data name="lblZeroIsUnlimited.Text" xml:space="preserve">
<value>0 means unlimited</value>
</data>
<data name="OlderMails.Text" xml:space="preserve">
<value>Handle older mails</value>
</data>
</root>

View file

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblCatchAll.Text" xml:space="preserve">
<value>Catch-All Account:</value>
</data>
<data name="lblCatchAll.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblLimitNumber.Text" xml:space="preserve">
<value>Send out messages limit (#/Day):</value>
</data>
<data name="lblLimitNumber.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblLimitVolume.Text" xml:space="preserve">
<value>Send out data limit per day, MB:</value>
</data>
<data name="lblLimitVolume.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMaxDomainDiskSpace.Text" xml:space="preserve">
<value>Domain Disk Space, MB:</value>
</data>
<data name="lblMaxDomainDiskSpace.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMaxDomainUsers.Text" xml:space="preserve">
<value>Max users:</value>
</data>
<data name="lblMaxDomainUsers.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblPostMaster.Text" xml:space="preserve">
<value>Postmaster Account:</value>
</data>
<data name="lblPostMaster.ToolTip" xml:space="preserve">
<value />
</data>
<data name="liNotSelected.Text" xml:space="preserve">
<value>&lt;Not Selected&gt;</value>
</data>
<data name="liNotSelected.Value" xml:space="preserve">
<value />
</data>
<data name="liRejectUnknown.Text" xml:space="preserve">
<value>None, reject mail for unknown users</value>
</data>
<data name="liRejectUnknown.Value" xml:space="preserve">
<value />
</data>
<data name="lblZeroIsUnlimited.Text" xml:space="preserve">
<value>0 means unlimited</value>
</data>
<data name="lblDefaultUserMaxMessageSizeMegaByte.Text" xml:space="preserve">
<value>Default user max message size, MB:</value>
</data>
<data name="lblDefaultUserMegaByteSendLimit.Text" xml:space="preserve">
<value>Default user send out data limit per day, MB:</value>
</data>
<data name="lblDefaultUserNumberSendLimit.Text" xml:space="preserve">
<value>Default user send out messages limit (#/Day):</value>
</data>
<data name="lblDefaultUserQuotaInMB.Text" xml:space="preserve">
<value>Default user quota, MB:</value>
</data>
<data name="Limits.Text" xml:space="preserve">
<value>Limits</value>
</data>
<data name="ValueMustBeZeroOrGreater.ErrorMessage" xml:space="preserve">
<value>Value must be zero or greater</value>
</data>
</root>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblGroupMembers.Text" xml:space="preserve">
<value>Group e-mails:</value>
</data>
<data name="lblGroupMembers.ToolTip" xml:space="preserve">
<value />
</data>
</root>

View file

@ -0,0 +1,478 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AdditionalOptions.Text" xml:space="preserve">
<value>List Additional Options</value>
</data>
<data name="chkCommandInSubject.Text" xml:space="preserve">
<value>Allow command in subject</value>
</data>
<data name="chkCommandInSubject.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkDigestMailingList.Text" xml:space="preserve">
<value>DigestMailingList</value>
</data>
<data name="chkDigestMailingList.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableLists.Text" xml:space="preserve">
<value>Enable Lists command</value>
</data>
<data name="chkEnableLists.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableReview.Text" xml:space="preserve">
<value>Enable Review command</value>
</data>
<data name="chkEnableReview.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableSubscribe.Text" xml:space="preserve">
<value>Enable join (subscribe) command</value>
</data>
<data name="chkEnableSubscribe.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableUnsubscribe.Text" xml:space="preserve">
<value>Enable leave (unsubscribe) command</value>
</data>
<data name="chkEnableUnsubscribe.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableVacation.Text" xml:space="preserve">
<value>Enable Vacation/No vacation command</value>
</data>
<data name="chkEnableVacation.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkEnableWhich.Text" xml:space="preserve">
<value>Enable Which command</value>
</data>
<data name="chkEnableWhich.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkModerated.Text" xml:space="preserve">
<value>Moderated listserver</value>
</data>
<data name="chkModerated.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkPasswordEnabled.Text" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="chkReplyToList.Text" xml:space="preserve">
<value>Reply To List</value>
</data>
<data name="chkSendSubscribe.Text" xml:space="preserve">
<value>Notify owner of join</value>
</data>
<data name="chkSendSubscribe.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkSendToSender.Text" xml:space="preserve">
<value>Send to sender</value>
</data>
<data name="chkSendToSender.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkSendUnSubscribe.Text" xml:space="preserve">
<value>Notify owner of leave</value>
</data>
<data name="chkSendUnSubscribe.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkSetRecipientToToHeader.Text" xml:space="preserve">
<value>Set recipient to To header</value>
</data>
<data name="chkSetRecipientToToHeader.ToolTip" xml:space="preserve">
<value />
</data>
<data name="chkSubjectPrefixEnabled.Text" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="chkSuppressCommandResponses.Text" xml:space="preserve">
<value>Suppress command responses</value>
</data>
<data name="chkSuppressCommandResponses.ToolTip" xml:space="preserve">
<value />
</data>
<data name="ConfirmSubscriptionNone.Text" xml:space="preserve">
<value>No confirmation</value>
</data>
<data name="ConfirmSubscriptionOwner.Text" xml:space="preserve">
<value>Owner confirmed</value>
</data>
<data name="ConfirmSubscriptionUser.Text" xml:space="preserve">
<value>User confirmed</value>
</data>
<data name="ctxValDomain.Text" xml:space="preserve">
<value>Moderator should be within mail domain where Mail List is located</value>
</data>
<data name="ddlDefaultRights.ToolTip" xml:space="preserve">
<value />
</data>
<data name="ddllblOriginator.ToolTip" xml:space="preserve">
<value />
</data>
<data name="ddlPostingModeAnyone.Text" xml:space="preserve">
<value>Anyone</value>
</data>
<data name="ddlPostingModeMembers.Text" xml:space="preserve">
<value>Members Only</value>
</data>
<data name="ddlReplyToHeaderAction.ToolTip" xml:space="preserve">
<value />
</data>
<data name="ddlReplyToItem.List" xml:space="preserve">
<value>List</value>
</data>
<data name="ddlReplyToItem.Moderator" xml:space="preserve">
<value>Moderator</value>
</data>
<data name="ddlReplyToItem.Sender" xml:space="preserve">
<value>Sender</value>
</data>
<data name="DefaultRightsDigestReceive.Text" xml:space="preserve">
<value>Digest and receive</value>
</data>
<data name="DefaultRightsDigestReceivePost.Text" xml:space="preserve">
<value>Digest, receive and post</value>
</data>
<data name="DefaultRightsPost.Text" xml:space="preserve">
<value>Post only</value>
</data>
<data name="DefaultRightsReceive.Text" xml:space="preserve">
<value>Receive only</value>
</data>
<data name="DefaultRightsReceivePost.Text" xml:space="preserve">
<value>Receive and post</value>
</data>
<data name="HeaderActionNoChange.Text" xml:space="preserve">
<value>No change</value>
</data>
<data name="HeaderActionSetToSender.Text" xml:space="preserve">
<value>Set to sender</value>
</data>
<data name="HeaderActionSetToValue.Text" xml:space="preserve">
<value>Set to value</value>
</data>
<data name="lbAllowUnsubscribe.Text" xml:space="preserve">
<value>Enable Unsubscribe from Subject:</value>
</data>
<data name="lbDigestMode.Text" xml:space="preserve">
<value>Enable Digest Mode:</value>
</data>
<data name="lbDisableListcommand.Text" xml:space="preserve">
<value>Enable LIST Command:</value>
</data>
<data name="lbDisableSubscribecommand.Text" xml:space="preserve">
<value>Enable SUBSCRIBE Command:</value>
</data>
<data name="lblCommandPassword.Text" xml:space="preserve">
<value>Command password:</value>
</data>
<data name="lblCommandPassword.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblConfirmSubscription.Text" xml:space="preserve">
<value>Subscription:</value>
</data>
<data name="lblConfirmSubscription.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblDefaultRights.Text" xml:space="preserve">
<value>Default Rights:</value>
</data>
<data name="lblDefaultRights.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblDescription.Text" xml:space="preserve">
<value>List Description:</value>
</data>
<data name="lblDescription.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblFromHeader.Text" xml:space="preserve">
<value>From Header:</value>
</data>
<data name="lblFromHeader.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblFromHeaderValue.Text" xml:space="preserve">
<value>From Header Value:</value>
</data>
<data name="lblFromHeaderValue.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblListFromAddress.Text" xml:space="preserve">
<value>List From Address:</value>
</data>
<data name="lblListOptions.Text" xml:space="preserve">
<value>List Options:</value>
</data>
<data name="lblListReplyToAddress.Text" xml:space="preserve">
<value>List Reply To Address:</value>
</data>
<data name="lblListToAddress.Text" xml:space="preserve">
<value>List To Address:</value>
</data>
<data name="lblMaxMembers.Text" xml:space="preserve">
<value>Max members count:</value>
</data>
<data name="lblMaxMembers.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMaxMessageSize.Text" xml:space="preserve">
<value>Max Message Size, kB:</value>
</data>
<data name="lblMaxMessageSize.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMaxMessagesPerMinute.Text" xml:space="preserve">
<value>Max # of messages to send out in 1 minute:</value>
</data>
<data name="lblMaxMessagesPerMinute.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblMaxRecipients.Text" xml:space="preserve">
<value>Max Recipients per Message:</value>
</data>
<data name="lblMembers.Text" xml:space="preserve">
<value>Mailing List Members:</value>
</data>
<data name="lblMembersSource.Text" xml:space="preserve">
<value>Members Source:</value>
</data>
<data name="lblMembersSource.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblModerationEnabled.Text" xml:space="preserve">
<value>Moderation is Enabled:</value>
</data>
<data name="lblModeratorAddress.Text" xml:space="preserve">
<value>List Moderator:</value>
</data>
<data name="lblModeratorAddress.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblOriginator.Text" xml:space="preserve">
<value>Originator:</value>
</data>
<data name="lblOriginator.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblPasswordProtection.Text" xml:space="preserve">
<value>Password Protection:</value>
</data>
<data name="lblPasswordProtection.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblPostingMode.Text" xml:space="preserve">
<value>Posting mode:</value>
</data>
<data name="lblPostingMode.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblPostingPassword.Text" xml:space="preserve">
<value>Posting password:</value>
</data>
<data name="lblPostingPassword.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblReplyTo.Text" xml:space="preserve">
<value>Subscribers Reply To:</value>
</data>
<data name="lblReplyToHeader.Text" xml:space="preserve">
<value>Reply-To Header:</value>
</data>
<data name="lblReplyToHeader.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblReplyToHeaderValue.Text" xml:space="preserve">
<value>Reply-To Header Value:</value>
</data>
<data name="lblReplyToHeaderValue.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblSubjectPrefix.Text" xml:space="preserve">
<value>Subject Prefix:</value>
</data>
<data name="lblSubjectPrefix.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lbSendSubscribe.Text" xml:space="preserve">
<value>Send Subscribe Email:</value>
</data>
<data name="lbSendUnsubscribe.Text" xml:space="preserve">
<value>Send Unsubscribe Email:</value>
</data>
<data name="OriginatorBlank.Text" xml:space="preserve">
<value>Blank</value>
</data>
<data name="OriginatorOwner.Text" xml:space="preserve">
<value>Owner</value>
</data>
<data name="OriginatorSender.Text" xml:space="preserve">
<value>Sender</value>
</data>
<data name="PasswordProtectionClientModerated.Text" xml:space="preserve">
<value>Client Moderated</value>
</data>
<data name="PasswordProtectionNoProtection.Text" xml:space="preserve">
<value>Not password protected</value>
</data>
<data name="PasswordProtectionServerModerated.Text" xml:space="preserve">
<value>Server Moderated</value>
</data>
<data name="Text.SelectModerator" xml:space="preserve">
<value>&lt;Choose a moderator&gt;</value>
</data>
<data name="ddlMembersSourceAllDomainAdmins.Text" xml:space="preserve">
<value>All Domain Admins</value>
</data>
<data name="ddlMembersSourceAllDomainUsers.Text" xml:space="preserve">
<value>All Domain Users</value>
</data>
<data name="ddlMembersSourceInFile.Text" xml:space="preserve">
<value>From members list on this page</value>
</data>
<data name="lblZeroIsUnlimited.Text" xml:space="preserve">
<value>0 means unlimited</value>
</data>
<data name="Message.Text" xml:space="preserve">
<value>Message</value>
</data>
<data name="Options.Text" xml:space="preserve">
<value>Options</value>
</data>
<data name="Security.Text" xml:space="preserve">
<value>Security</value>
</data>
<data name="txtMaxMembersValidator.ErrorMessage" xml:space="preserve">
<value>Value must be zero or greater</value>
<comment>.</comment>
</data>
<data name="txtMaxMessageSizeValidator.ErrorMessage" xml:space="preserve">
<value>Value must be zero or greater</value>
</data>
<data name="txtMaxMessagesPerMinuteValidator.ErrorMessage" xml:space="preserve">
<value>Value must be zero or greater</value>
</data>
</root>

View file

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblDomainTemplateNameResource1.Text" xml:space="preserve">
<value>Domain Template Name:</value>
</data>
<data name="lblDomainTemplateNameResource1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="lblPublicIPResource1.Text" xml:space="preserve">
<value>Public IP Address:</value>
</data>
<data name="lblPublicIPResource1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="txtDomainTemplateNameResource1.Text" xml:space="preserve">
<value />
</data>
<data name="txtDomainTemplateNameResource1.ToolTip" xml:space="preserve">
<value />
</data>
</root>

View file

@ -0,0 +1,208 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_EditAccount.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_EditAccount" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<%@ Register TagPrefix="wsp" TagName="Calendar" Src="../UserControls/CalendarControl.ascx" %>
<table width="100%">
<tr runat="server" id="passwordRow">
<td colspan="2">
<asp:CheckBox runat="server" meta:resourcekey="cbChangePassword" ID="cbChangePassword" Text="Change password" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox runat="server" meta:resourcekey="cbDomainAdmin" ID="cbDomainAdmin" Text="Domain Administrator" />
</td>
</tr>
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblAccountType" runat="server" meta:resourcekey="lblAccountType" Text="Account type:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlAccountType" runat="server">
<asp:ListItem Text="POP3" Value="0" />
<asp:ListItem Text="POP3 & IMAP" Value="1" />
<asp:ListItem Text="IMAP" Value="2" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblAccountState" runat="server" meta:resourcekey="lblAccountState" Text="Account state:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlAccountState" runat="server">
<asp:ListItem Text="Enabled" meta:resourcekey="ddlAccountStateEnabled" Value="0" />
<asp:ListItem Text="Disabled (Login)" meta:resourcekey="ddlAccountStateDisabledLogin" Value="1" />
<asp:ListItem Text="Disabled (Login, Receive)" meta:resourcekey="ddlAccountStateDisabledLoginReceive" Value="2" />
<asp:ListItem Text="Disabled (Tarpitting)" meta:resourcekey="ddlAccountStateDisabledTarpitting" Value="3" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblFullName" runat="server" meta:resourcekey="lblFullName" Text="Full Name:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtFullName" runat="server" CssClass="TextBox400"></asp:TextBox>
</td>
</tr>
</table>
<wsp:CollapsiblePanel id="secAutoresponder" runat="server" TargetControlID="AutoresponderPanel"
meta:resourcekey="Autoresponder" Text="Autoresponder">
</wsp:CollapsiblePanel>
<asp:Panel ID="AutoresponderPanel" runat="server">
<asp:UpdatePanel ID="AutoresponderUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblResponderEnabled" runat="server" meta:resourcekey="lblResponderEnabled" Text="Responder type:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlRespondType" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlRespondType_SelectedIndexChanged">
<asp:ListItem Text="Disabled" meta:resourcekey="ddlRespondDisabled" Value="0" />
<asp:ListItem Text="Respond always (can cause loop)" meta:resourcekey="ddlRespondAlways" Value="1" />
<asp:ListItem Text="Respond once" meta:resourcekey="ddlRespondOnce" Value="2" />
<asp:ListItem Text="Respond once in period" meta:resourcekey="ddlRespondOnceInPeriod" Value="3" />
</asp:DropDownList>
</td>
</tr>
<tbody runat="server" ID="RespondPeriod">
<tr>
<td class="SubHead">
<asp:Label ID="lblRespondPeriodInDays" runat="server" meta:resourcekey="lblRespondPeriodInDays" Text="Respond period in days:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtRespondPeriodInDays" runat="server" CssClass="NormalTextBox"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtRespondPeriodInDays" ErrorMessage="*"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RespondPeriodInDaysValidator" runat="server" ControlToValidate="txtRespondPeriodInDays" MinimumValue="0" MaximumValue="63" Type="Integer" ErrorMessage="Respond days must be between 0 and 63 days" meta:resourcekey="RespondPeriodInDaysValidator"></asp:RangeValidator>
</td>
</tr>
</tbody>
<tbody runat="server" ID="RespondEnabled">
<tr>
<td colspan="2">
<asp:CheckBox Text="Only respond between these dates" ID="chkRespondOnlyBetweenDates" meta:resourcekey="chkRespondOnlyBetweenDates" runat="server" AutoPostBack="True" OnCheckedChanged="chkRespondOnlyBetweenDates_CheckedChanged" />
</td>
</tr>
<tr runat="server" ID="RespondFrom">
<td class="SubHead">
<asp:Label ID="lblRespondFrom" runat="server" meta:resourcekey="lblRespondFrom" Text="Respond from:"></asp:Label></td>
<td class="Normal">
<wsp:Calendar ID="calRespondFrom" runat="server"></wsp:Calendar>
</td>
</tr>
<tr runat="server" ID="RespondTo">
<td class="SubHead">
<asp:Label ID="lblRespondTo" runat="server" meta:resourcekey="lblRespondTo" Text="Respond to:"></asp:Label></td>
<td class="Normal">
<wsp:Calendar ID="calRespondTo" runat="server"></wsp:Calendar>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtSubject" runat="server" CssClass="TextBox400"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblRespondWithReplyFrom" runat="server" meta:resourcekey="lblRespondWithReplyFrom" Text="Respond with reply from:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtRespondWithReplyFrom" runat="server" CssClass="TextBox400"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblMessage" runat="server" meta:resourcekey="lblMessage" Text="Message:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtMessage" runat="server" TextMode="MultiLine" Rows="5" CssClass="TextBox400"></asp:TextBox>
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<wsp:CollapsiblePanel id="secForwarding" runat="server" TargetControlID="ForwardingPanel" meta:resourcekey="Forwarding" Text="Mail Forwarding">
</wsp:CollapsiblePanel>
<asp:Panel ID="ForwardingPanel" runat="server">
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblForwardTo" runat="server" meta:resourcekey="lblForwardTo" Text="Forward mail to address:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtForward" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="cbDeleteOnForward" runat="server" meta:resourcekey="cbDeleteOnForward" Text="Delete Message on Forward"></asp:CheckBox>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secOlderMails" runat="server" TargetControlID="OlderMailsPanel"
meta:resourcekey="OlderMails" Text="Handle older mails">
</wsp:CollapsiblePanel>
<asp:Panel ID="OlderMailsPanel" runat="server">
<asp:UpdatePanel ID="DeleteOlderUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td colspan="2">
<asp:CheckBox ID="cbDeleteOlder" runat="server" meta:resourcekey="cbDeleteOlder" AutoPostBack="True" OnCheckedChanged="cbDeleteOlder_CheckedChanged"
Text="Enable delete of older messages"></asp:CheckBox>
</td>
</tr>
<tbody runat="server" id="DeleteOlderEnabled">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblDeleteOlderDays" runat="server" meta:resourcekey="lblDeleteOlderDays" Text="Delete older than (days):"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtDeleteOlderDays" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="ForwardOlderUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td colspan="2">
<asp:CheckBox ID="cbForwardOlder" runat="server" meta:resourcekey="cbDeleteOlder" AutoPostBack="True" OnCheckedChanged="cbForwardOlder_CheckedChanged"
Text="Enable forwarding of older messages"></asp:CheckBox>
</td>
</tr>
<tbody runat="server" id="ForwardOlderEnabled">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblForwardOlderDays" runat="server" meta:resourcekey="lblForwardOlderDays" Text="Forward older than (days):"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtForwardOlderDays" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblForwardOlderTo" runat="server" meta:resourcekey="lblForwardOlderTo" Text="Forward to:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtForwardOlderTo" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>

View file

@ -0,0 +1,141 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_EditAccount : WebsitePanelControlBase, IMailEditAccountControl
{
protected void Page_Load(object sender, EventArgs e)
{
// Hide some form items when creating a new account
passwordRow.Visible = (PanelRequest.ItemID > 0);
secAutoresponder.Visible = (PanelRequest.ItemID > 0);
secForwarding.Visible = (PanelRequest.ItemID > 0);
secOlderMails.Visible = (PanelRequest.ItemID > 0);
}
public void BindItem(MailAccount item)
{
txtFullName.Text = item.FullName;
Utils.SelectListItem(ddlAccountType, item.IceWarpAccountType);
Utils.SelectListItem(ddlAccountState, item.IceWarpAccountState);
Utils.SelectListItem(ddlRespondType, item.IceWarpRespondType);
chkRespondOnlyBetweenDates.Checked = item.RespondOnlyBetweenDates;
// Set respond dates to something useful if they are null in IceWarp
if (item.RespondFrom == DateTime.MinValue)
{
item.RespondFrom = DateTime.Today;
}
if (item.RespondTo == DateTime.MinValue)
{
item.RespondTo = DateTime.Today.AddDays(21);
}
calRespondFrom.SelectedDate = item.RespondFrom;
calRespondTo.SelectedDate = item.RespondTo;
chkRespondOnlyBetweenDates_CheckedChanged(this, null);
txtRespondPeriodInDays.Text = item.RespondPeriodInDays.ToString();
txtRespondWithReplyFrom.Text = item.RespondWithReplyFrom;
txtSubject.Text = item.ResponderSubject;
txtMessage.Text = item.ResponderMessage;
txtForward.Text = item.ForwardingAddresses != null ? String.Join("; ", item.ForwardingAddresses) : "";
cbDeleteOnForward.Checked = item.DeleteOnForward;
cbDomainAdmin.Visible = item.IsDomainAdminEnabled;
cbDomainAdmin.Checked = item.IsDomainAdmin;
ddlRespondType_SelectedIndexChanged(this, null);
cbForwardOlder.Checked = item.ForwardOlder;
txtForwardOlderDays.Text = item.ForwardOlderDays.ToString();
txtForwardOlderTo.Text = item.ForwardOlderTo;
cbForwardOlder_CheckedChanged(this, null);
cbDeleteOlder.Checked = item.DeleteOlder;
txtDeleteOlderDays.Text = item.DeleteOlderDays.ToString();
cbDeleteOlder_CheckedChanged(this, null);
}
public void SaveItem(MailAccount item)
{
item.FullName = txtFullName.Text;
item.IceWarpAccountType = Convert.ToInt32(ddlAccountType.SelectedValue);
item.IceWarpAccountState = Convert.ToInt32(ddlAccountState.SelectedValue);
item.IceWarpRespondType = Convert.ToInt32(ddlRespondType.SelectedValue);
if (!string.IsNullOrWhiteSpace(txtRespondPeriodInDays.Text))
{
item.RespondPeriodInDays = Convert.ToInt32(txtRespondPeriodInDays.Text);
}
item.RespondOnlyBetweenDates = chkRespondOnlyBetweenDates.Checked;
item.RespondFrom = calRespondFrom.SelectedDate;
item.RespondTo = calRespondTo.SelectedDate;
item.RespondWithReplyFrom = txtRespondWithReplyFrom.Text;
item.ResponderSubject = txtSubject.Text;
item.ResponderMessage = txtMessage.Text;
item.ForwardingEnabled = !string.IsNullOrWhiteSpace(txtForward.Text);
item.ForwardingAddresses = Utils.ParseDelimitedString(txtForward.Text, ';', ' ', ',');
item.DeleteOnForward = cbDeleteOnForward.Checked;
item.ChangePassword = cbChangePassword.Checked;
item.ChangePassword = cbChangePassword.Checked;
item.IsDomainAdmin = cbDomainAdmin.Checked;
item.DeleteOlder = cbDeleteOlder.Checked;
item.DeleteOlderDays = Convert.ToInt32(txtDeleteOlderDays.Text);
item.ForwardOlder = cbForwardOlder.Checked;
item.ForwardOlderDays = Convert.ToInt32(txtForwardOlderDays.Text);
item.ForwardOlderTo = txtForwardOlderTo.Text;
}
protected void ddlRespondType_SelectedIndexChanged(object sender, EventArgs e)
{
RespondPeriod.Visible = ddlRespondType.SelectedValue == "3";
RespondEnabled.Visible = Convert.ToInt32(ddlRespondType.SelectedValue) > 0;
}
protected void cbForwardOlder_CheckedChanged(object sender, EventArgs e)
{
ForwardOlderEnabled.Visible = cbForwardOlder.Checked;
}
protected void cbDeleteOlder_CheckedChanged(object sender, EventArgs e)
{
DeleteOlderEnabled.Visible = cbDeleteOlder.Checked;
}
protected void chkRespondOnlyBetweenDates_CheckedChanged(object sender, EventArgs e)
{
RespondFrom.Visible = chkRespondOnlyBetweenDates.Checked;
RespondTo.Visible = chkRespondOnlyBetweenDates.Checked;
}
}
}

View file

@ -0,0 +1,474 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_EditAccount {
/// <summary>
/// passwordRow control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow passwordRow;
/// <summary>
/// cbChangePassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbChangePassword;
/// <summary>
/// cbDomainAdmin control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbDomainAdmin;
/// <summary>
/// lblAccountType control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblAccountType;
/// <summary>
/// ddlAccountType control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlAccountType;
/// <summary>
/// lblAccountState control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblAccountState;
/// <summary>
/// ddlAccountState control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlAccountState;
/// <summary>
/// lblFullName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFullName;
/// <summary>
/// txtFullName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtFullName;
/// <summary>
/// secAutoresponder control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secAutoresponder;
/// <summary>
/// AutoresponderPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel AutoresponderPanel;
/// <summary>
/// AutoresponderUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel AutoresponderUpdatePanel;
/// <summary>
/// lblResponderEnabled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblResponderEnabled;
/// <summary>
/// ddlRespondType control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlRespondType;
/// <summary>
/// RespondPeriod control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl RespondPeriod;
/// <summary>
/// lblRespondPeriodInDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRespondPeriodInDays;
/// <summary>
/// txtRespondPeriodInDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtRespondPeriodInDays;
/// <summary>
/// RespondPeriodInDaysValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator RespondPeriodInDaysValidator;
/// <summary>
/// RespondEnabled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl RespondEnabled;
/// <summary>
/// chkRespondOnlyBetweenDates control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkRespondOnlyBetweenDates;
/// <summary>
/// RespondFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow RespondFrom;
/// <summary>
/// lblRespondFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRespondFrom;
/// <summary>
/// calRespondFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CalendarControl calRespondFrom;
/// <summary>
/// RespondTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow RespondTo;
/// <summary>
/// lblRespondTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRespondTo;
/// <summary>
/// calRespondTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CalendarControl calRespondTo;
/// <summary>
/// lblSubject control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSubject;
/// <summary>
/// txtSubject control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtSubject;
/// <summary>
/// lblRespondWithReplyFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRespondWithReplyFrom;
/// <summary>
/// txtRespondWithReplyFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtRespondWithReplyFrom;
/// <summary>
/// lblMessage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMessage;
/// <summary>
/// txtMessage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMessage;
/// <summary>
/// secForwarding control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secForwarding;
/// <summary>
/// ForwardingPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel ForwardingPanel;
/// <summary>
/// lblForwardTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblForwardTo;
/// <summary>
/// txtForward control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtForward;
/// <summary>
/// cbDeleteOnForward control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbDeleteOnForward;
/// <summary>
/// secOlderMails control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secOlderMails;
/// <summary>
/// OlderMailsPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel OlderMailsPanel;
/// <summary>
/// DeleteOlderUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel DeleteOlderUpdatePanel;
/// <summary>
/// cbDeleteOlder control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbDeleteOlder;
/// <summary>
/// DeleteOlderEnabled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DeleteOlderEnabled;
/// <summary>
/// lblDeleteOlderDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDeleteOlderDays;
/// <summary>
/// txtDeleteOlderDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDeleteOlderDays;
/// <summary>
/// ForwardOlderUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel ForwardOlderUpdatePanel;
/// <summary>
/// cbForwardOlder control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbForwardOlder;
/// <summary>
/// ForwardOlderEnabled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl ForwardOlderEnabled;
/// <summary>
/// lblForwardOlderDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblForwardOlderDays;
/// <summary>
/// txtForwardOlderDays control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtForwardOlderDays;
/// <summary>
/// lblForwardOlderTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblForwardOlderTo;
/// <summary>
/// txtForwardOlderTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtForwardOlderTo;
}
}

View file

@ -0,0 +1,133 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_EditDomain.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_EditDomain" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblPostMaster" runat="server" meta:resourcekey="lblPostMaster" Text="Postmaster Account:"></asp:Label></td>
<td class="Normal">
<asp:DropDownList ID="ddlPostMasterAccount" runat="server" DataTextField="Name" AppendDataBoundItems="True">
<asp:ListItem Value="" Text="<Not Selected>" meta:resourcekey="liNotSelected"></asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblCatchAll" runat="server" meta:resourcekey="lblCatchAll" Text="Catch-All Account:"></asp:Label></td>
<td class="Normal">
<asp:DropDownList ID="ddlCatchAllAccount" runat="server" DataTextField="Name" AppendDataBoundItems="True">
<asp:ListItem Value="" Text="None, reject mail for unknown users" meta:resourcekey="liRejectUnknown"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
<asp:Panel runat="server" ID="AdvancedSettingsPanel">
<wsp:CollapsiblePanel id="secLimits" runat="server" targetcontrolid="LimitsPanel"
meta:resourcekey="Limits" text="Limits"></wsp:CollapsiblePanel>
<asp:Panel runat="server" ID="LimitsPanel">
<table width="100%">
<tr runat="server" ID="rowMaxDomainDiskSpace">
<td class="SubHead" width="150">
<asp:Label ID="lblMaxDomainDiskSpace" runat="server" meta:resourcekey="lblMaxDomainDiskSpace" Text="Domain Disk Space, MB:"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtMaxDomainDiskSpace" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="MaxDomainDiskSpaceValidator" MinimumValue="0" runat="server" ControlToValidate="txtMaxDomainDiskSpace"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="MaxDomainDiskSpaceRequiredValidator" ControlToValidate="txtMaxDomainDiskSpace"
Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblMaxDomainUsers" runat="server" meta:resourcekey="lblMaxDomainUsers" Text="Max users:"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtMaxDomainUsers" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="MaxDomainUsersValidator" MinimumValue="0" runat="server" ControlToValidate="txtMaxDomainUsers"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="MaxDomainUsersRequiredValidator" ControlToValidate="txtMaxDomainUsers" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tbody runat="server" ID="rowDomainLimits">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblLimitVolume" runat="server" meta:resourcekey="lblLimitVolume" Text="Send out data limit per day, MB:"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtLimitVolume" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtLimitVolumeValidator" MinimumValue="0" runat="server" ControlToValidate="txtLimitVolume"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtLimitVolumeRequiredValidator" ControlToValidate="txtLimitVolume"
Display="Dynamic" ErrorMessage="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblLimitNumber" runat="server" meta:resourcekey="lblLimitNumber" Text="Send out messages limit (#/Day):"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtLimitNumber" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtLimitNumberValidator" MinimumValue="0" runat="server" ControlToValidate="txtLimitNumber"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtLimitNumberRequiredValidator" ControlToValidate="txtLimitNumber" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
</tbody>
<tbody runat="server" ID="rowUserLimits">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblDefaultUserQuotaInMB" runat="server" meta:resourcekey="lblDefaultUserQuotaInMB" Text="Default user quota, MB:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtDefaultUserQuotaInMB" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtDefaultUserQuotaInMBValidator" MinimumValue="0" runat="server" ControlToValidate="txtDefaultUserQuotaInMB"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtDefaultUserQuotaInMBRequiredValidator" ControlToValidate="txtDefaultUserQuotaInMB"
Display="Dynamic" ErrorMessage="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDefaultUserMaxMessageSizeMegaByte" runat="server" meta:resourcekey="lblDefaultUserMaxMessageSizeMegaByte" Text="Default user max message size, MB:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtDefaultUserMaxMessageSizeMegaByte" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtDefaultUserMaxMessageSizeMegaByteValidator" MinimumValue="0" runat="server" ControlToValidate="txtDefaultUserMaxMessageSizeMegaByte"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtDefaultUserMaxMessageSizeMegaByteRequiredValidator" ControlToValidate="txtDefaultUserMaxMessageSizeMegaByte"
Display="Dynamic" ErrorMessage="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDefaultUserMegaByteSendLimit" runat="server" meta:resourcekey="lblDefaultUserMegaByteSendLimit" Text="Default user send out data limit per day, MB:"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtDefaultUserMegaByteSendLimit" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtDefaultUserMegaByteSendLimitValidator" MinimumValue="0" runat="server" ControlToValidate="txtDefaultUserMegaByteSendLimit"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtDefaultUserMegaByteSendLimitRequiredValidator" ControlToValidate="txtDefaultUserMegaByteSendLimit"
Display="Dynamic" ErrorMessage="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDefaultUserNumberSendLimit" runat="server" meta:resourcekey="lblDefaultUserNumberSendLimit" Text="Default user send out messages limit (#/Day):"></asp:Label></td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtDefaultUserNumberSendLimit" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="txtDefaultUserNumberSendLimitValidator" MinimumValue="0" runat="server" ControlToValidate="txtDefaultUserNumberSendLimit"
Display="Dynamic" meta:resourcekey="ValueMustBeZeroOrGreater" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtDefaultUserNumberSendLimitRequiredValidator" ControlToValidate="txtDefaultUserNumberSendLimit" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
</tbody>
</table>
</asp:Panel>
</asp:Panel>

View file

@ -0,0 +1,121 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_EditDomain : WebsitePanelControlBase, IMailEditDomainControl
{
private StringDictionary _serviceSettings;
private StringDictionary ServiceSettings
{
get
{
if (_serviceSettings != null)
return _serviceSettings;
_serviceSettings = new StringDictionary();
var domain = ES.Services.MailServers.GetMailDomain(PanelRequest.ItemID);
var settings = ES.Services.Servers.GetServiceSettings(domain.ServiceId);
foreach (var settingPair in settings.Select(setting => setting.Split('=')))
{
_serviceSettings.Add(settingPair[0], settingPair[1]);
}
return _serviceSettings;
}
}
protected void Page_Load(object sender, EventArgs e)
{
AdvancedSettingsPanel.Visible = PanelSecurity.EffectiveUser.Role == UserRole.Administrator;
MaxDomainDiskSpaceValidator.MaximumValue = int.MaxValue.ToString();
MaxDomainUsersValidator.MaximumValue = int.MaxValue.ToString();
txtLimitNumberValidator.MaximumValue = int.MaxValue.ToString();
txtLimitVolumeValidator.MaximumValue = int.MaxValue.ToString();
txtDefaultUserMaxMessageSizeMegaByteValidator.MaximumValue = int.MaxValue.ToString();
txtDefaultUserMegaByteSendLimitValidator.MaximumValue = int.MaxValue.ToString();
txtDefaultUserQuotaInMBValidator.MaximumValue = int.MaxValue.ToString();
txtDefaultUserNumberSendLimitValidator.MaximumValue = int.MaxValue.ToString();
}
public void BindItem(MailDomain item)
{
// Hide/show controls when not enabled on service level
rowMaxDomainDiskSpace.Visible = ServiceSettings.ContainsKey("UseDomainDiskQuota") && Convert.ToBoolean(ServiceSettings["UseDomainDiskQuota"]);
rowDomainLimits.Visible = ServiceSettings.ContainsKey("UseDomainLimits") && Convert.ToBoolean(ServiceSettings["UseDomainLimits"]);
rowUserLimits.Visible = ServiceSettings.ContainsKey("UseUserLimits") && Convert.ToBoolean(ServiceSettings["UseUserLimits"]);
txtMaxDomainDiskSpace.Text = item.MaxDomainSizeInMB.ToString();
txtMaxDomainUsers.Text = item.MaxDomainUsers.ToString();
txtLimitVolume.Text = item.MegaByteSendLimit.ToString();
txtLimitNumber.Text = item.NumberSendLimit.ToString();
txtDefaultUserQuotaInMB.Text = item.DefaultUserQuotaInMB.ToString();
txtDefaultUserMaxMessageSizeMegaByte.Text = item.DefaultUserMaxMessageSizeMegaByte.ToString();
txtDefaultUserMegaByteSendLimit.Text = item.DefaultUserMegaByteSendLimit.ToString();
txtDefaultUserNumberSendLimit.Text = item.DefaultUserNumberSendLimit.ToString();
if (!IsPostBack)
{
var accounts = ES.Services.MailServers.GetMailAccounts(item.PackageId, false);
ddlCatchAllAccount.DataSource = accounts;
ddlCatchAllAccount.DataBind();
ddlPostMasterAccount.DataSource = accounts;
ddlPostMasterAccount.DataBind();
}
Utils.SelectListItem(ddlCatchAllAccount, item.CatchAllAccount);
Utils.SelectListItem(ddlPostMasterAccount, item.PostmasterAccount);
}
public void SaveItem(MailDomain item)
{
item.CatchAllAccount = ddlCatchAllAccount.SelectedValue;
item.PostmasterAccount = ddlPostMasterAccount.SelectedValue;
item.MaxDomainSizeInMB = Convert.ToInt32(txtMaxDomainDiskSpace.Text);
item.MaxDomainUsers = Convert.ToInt32(txtMaxDomainUsers.Text);
item.NumberSendLimit = Convert.ToInt32(txtLimitNumber.Text);
item.MegaByteSendLimit = Convert.ToInt32(txtLimitVolume.Text);
item.DefaultUserQuotaInMB = Convert.ToInt32(txtDefaultUserQuotaInMB.Text);
item.DefaultUserMaxMessageSizeMegaByte = Convert.ToInt32(txtDefaultUserMaxMessageSizeMegaByte.Text);
item.DefaultUserMegaByteSendLimit = Convert.ToInt32(txtDefaultUserMegaByteSendLimit.Text);
item.DefaultUserNumberSendLimit = Convert.ToInt32(txtDefaultUserNumberSendLimit.Text);
}
}
}

View file

@ -0,0 +1,393 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_EditDomain {
/// <summary>
/// lblPostMaster control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPostMaster;
/// <summary>
/// ddlPostMasterAccount control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlPostMasterAccount;
/// <summary>
/// lblCatchAll control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblCatchAll;
/// <summary>
/// ddlCatchAllAccount control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlCatchAllAccount;
/// <summary>
/// AdvancedSettingsPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel AdvancedSettingsPanel;
/// <summary>
/// secLimits control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secLimits;
/// <summary>
/// LimitsPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel LimitsPanel;
/// <summary>
/// rowMaxDomainDiskSpace control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowMaxDomainDiskSpace;
/// <summary>
/// lblMaxDomainDiskSpace control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxDomainDiskSpace;
/// <summary>
/// txtMaxDomainDiskSpace control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxDomainDiskSpace;
/// <summary>
/// MaxDomainDiskSpaceValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator MaxDomainDiskSpaceValidator;
/// <summary>
/// MaxDomainDiskSpaceRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator MaxDomainDiskSpaceRequiredValidator;
/// <summary>
/// lblMaxDomainUsers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxDomainUsers;
/// <summary>
/// txtMaxDomainUsers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxDomainUsers;
/// <summary>
/// MaxDomainUsersValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator MaxDomainUsersValidator;
/// <summary>
/// MaxDomainUsersRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator MaxDomainUsersRequiredValidator;
/// <summary>
/// rowDomainLimits control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl rowDomainLimits;
/// <summary>
/// lblLimitVolume control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblLimitVolume;
/// <summary>
/// txtLimitVolume control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtLimitVolume;
/// <summary>
/// txtLimitVolumeValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtLimitVolumeValidator;
/// <summary>
/// txtLimitVolumeRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtLimitVolumeRequiredValidator;
/// <summary>
/// lblLimitNumber control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblLimitNumber;
/// <summary>
/// txtLimitNumber control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtLimitNumber;
/// <summary>
/// txtLimitNumberValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtLimitNumberValidator;
/// <summary>
/// txtLimitNumberRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtLimitNumberRequiredValidator;
/// <summary>
/// rowUserLimits control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl rowUserLimits;
/// <summary>
/// lblDefaultUserQuotaInMB control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDefaultUserQuotaInMB;
/// <summary>
/// txtDefaultUserQuotaInMB control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDefaultUserQuotaInMB;
/// <summary>
/// txtDefaultUserQuotaInMBValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtDefaultUserQuotaInMBValidator;
/// <summary>
/// txtDefaultUserQuotaInMBRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtDefaultUserQuotaInMBRequiredValidator;
/// <summary>
/// lblDefaultUserMaxMessageSizeMegaByte control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDefaultUserMaxMessageSizeMegaByte;
/// <summary>
/// txtDefaultUserMaxMessageSizeMegaByte control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDefaultUserMaxMessageSizeMegaByte;
/// <summary>
/// txtDefaultUserMaxMessageSizeMegaByteValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtDefaultUserMaxMessageSizeMegaByteValidator;
/// <summary>
/// txtDefaultUserMaxMessageSizeMegaByteRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtDefaultUserMaxMessageSizeMegaByteRequiredValidator;
/// <summary>
/// lblDefaultUserMegaByteSendLimit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDefaultUserMegaByteSendLimit;
/// <summary>
/// txtDefaultUserMegaByteSendLimit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDefaultUserMegaByteSendLimit;
/// <summary>
/// txtDefaultUserMegaByteSendLimitValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtDefaultUserMegaByteSendLimitValidator;
/// <summary>
/// txtDefaultUserMegaByteSendLimitRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtDefaultUserMegaByteSendLimitRequiredValidator;
/// <summary>
/// lblDefaultUserNumberSendLimit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDefaultUserNumberSendLimit;
/// <summary>
/// txtDefaultUserNumberSendLimit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDefaultUserNumberSendLimit;
/// <summary>
/// txtDefaultUserNumberSendLimitValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtDefaultUserNumberSendLimitValidator;
/// <summary>
/// txtDefaultUserNumberSendLimitRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtDefaultUserNumberSendLimitRequiredValidator;
}
}

View file

@ -0,0 +1 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_EditForwarding.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_EditForwarding" %>

View file

@ -0,0 +1,51 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_EditForwarding : WebsitePanelControlBase, IMailEditForwardingControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindItem(MailAlias item)
{
}
public void SaveItem(MailAlias item)
{
}
}
}

View file

@ -0,0 +1,15 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_EditForwarding {
}
}

View file

@ -0,0 +1,12 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_EditGroup.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_EditGroup" %>
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
<table cellSpacing="0" cellPadding="3" width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblGroupMembers" runat="server" meta:resourcekey="lblGroupMembers" Text="Group e-mails:"></asp:Label>
</td>
<td class="Normal">
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
</td>
</tr>
</table>

View file

@ -0,0 +1,51 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_EditGroup : WebsitePanelControlBase, IMailEditGroupControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindItem(MailGroup item)
{
mailEditItems.Items = item.Members;
}
public void SaveItem(MailGroup item)
{
item.Members = mailEditItems.Items;
}
}
}

View file

@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_EditGroup {
/// <summary>
/// lblGroupMembers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblGroupMembers;
/// <summary>
/// mailEditItems control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
}
}

View file

@ -0,0 +1,319 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_EditList.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_EditList" %>
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<asp:Panel runat="server" ID="MainPanel">
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="List Description:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox ID="txtDescription" runat="server" TextMode="MultiLine" Rows="3" Width="300px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblModeratorAddress" runat="server" meta:resourcekey="lblModeratorAddress" Text="List Moderator:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlListModerators" DataTextField="Name" runat="server"></asp:DropDownList>
<asp:RequiredFieldValidator ID="reqValModerator" runat="server" ControlToValidate="ddlListModerators" Display="Dynamic" ErrorMessage = "*" />
</td>
</tr>
</table>
<asp:UpdatePanel ID="MembersUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblMembersSource" runat="server" meta:resourcekey="lblMembersSource" Text="Members Source:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlMembersSource" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlMembersSource_SelectedIndexChanged">
<asp:ListItem Value="MembersInFile" Text="From members list on this page" meta:resourcekey="ddlMembersSourceInFile" />
<asp:ListItem Value="AllDomainUsers" Text="All Domains Users" meta:resourcekey="ddlMembersSourceAllDomainUsers" />
<asp:ListItem Value="AllDomainAdmins" Text="All Domains Admins" meta:resourcekey="ddlMembersSourceAllDomainAdmins" />
</asp:DropDownList>
</td>
</tr>
<tr id="MembersRow" runat="server">
<td class="SubHead">
<asp:Label ID="lblMembers" runat="server" meta:resourcekey="lblMembers" Text="Mailing list members:"></asp:Label>
</td>
<td class="Normal">
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<wsp:CollapsiblePanel id="Message" runat="server" targetcontrolid="MessagePanel" meta:resourcekey="Message" Text="Message"></wsp:CollapsiblePanel>
<asp:Panel runat="server" ID="MessagePanel">
<asp:UpdatePanel ID="FromHeaderUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblFromHeader" runat="server" meta:resourcekey="lblFromHeader" Text="From Header:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlFromHeaderAction" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlFromHeaderAction_SelectedIndexChanged">
<asp:ListItem Value="NoChange" Text="No change" meta:resourcekey="HeaderActionNoChange"></asp:ListItem>
<asp:ListItem Value="SetToSender" Text="Set to sender" meta:resourcekey="HeaderActionSetToSender"></asp:ListItem>
<asp:ListItem Value="SetToValue" Text="Set to value" meta:resourcekey="HeaderActionSetToValue"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr runat="server" ID="rowFromHeaderValue" Visible="False">
<td class="SubHead">
<asp:Label ID="lblFromHeaderValue" runat="server" meta:resourcekey="lblFromHeaderValue" Text="From Header Value:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtFromHeaderValue" runat="server" CssClass="NormalTextBox"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqValFromHeaderValue" runat="server" ControlToValidate="txtFromHeaderValue" Display="Dynamic" ErrorMessage = "*" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="ReplyToHeaderUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblReplyToHeader" runat="server" meta:resourcekey="lblReplyToHeader" Text="Reply-To Header:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlReplyToHeaderAction" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlReplyToHeaderAction_SelectedIndexChanged">
<asp:ListItem Value="NoChange" Text="No change" meta:resourcekey="HeaderActionNoChange"></asp:ListItem>
<asp:ListItem Value="SetToSender" Text="Set to sender" meta:resourcekey="HeaderActionSetToSender"></asp:ListItem>
<asp:ListItem Value="SetToValue" Text="Set to value" meta:resourcekey="HeaderActionSetToValue"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr runat="server" ID="rowReplyToHeaderValue" Visible="False">
<td class="SubHead">
<asp:Label ID="lblReplyToHeaderValue" runat="server" meta:resourcekey="lblReplyToHeaderValue" Text="Reply-To Header Value:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtReplyToHeaderValue" runat="server" CssClass="NormalTextBox"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqValReplyToHeaderValue" runat="server" ControlToValidate="txtReplyToHeaderValue" Display="Dynamic" Text="*" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<table width="100%">
<tr>
<td colspan="2">
<asp:CheckBox ID="chkSetRecipientToToHeader" runat="server" meta:resourcekey="chkSetRecipientToToHeader" Text="Set recipient to To header" />
</td>
</tr>
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblSubjectPrefix" runat="server" meta:resourcekey="lblSubjectPrefix" Text="Subject Prefix:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtSubjectPrefix" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblOriginator" runat="server" meta:resourcekey="lblOriginator" Text="Originator:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddllblOriginator" runat="server">
<asp:ListItem Value="Blank" Text="Blank" meta:resourcekey="OriginatorBlank"></asp:ListItem>
<asp:ListItem Value="Sender" Text="Sender" meta:resourcekey="OriginatorSender"></asp:ListItem>
<asp:ListItem Value="Owner" Text="Owner" Selected="True" meta:resourcekey="OriginatorOwner"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="Security" runat="server" targetcontrolid="SecurityPanel" meta:resourcekey="Security" Text="Security"></wsp:CollapsiblePanel>
<asp:Panel runat="server" ID="SecurityPanel">
<table width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblPostingMode" runat="server" meta:resourcekey="lblPostingMode" Text="Posting mode:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlPostingMode" runat="server">
<asp:ListItem Value="AnyoneCanPost" meta:resourcekey="ddlPostingModeAnyone">Anyone</asp:ListItem>
<asp:ListItem Value="MembersCanPost" meta:resourcekey="ddlPostingModeMembers">MembersOnly</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblPasswordProtection" runat="server" meta:resourcekey="lblPasswordProtection" Text="Password Protection:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlPasswordProtection" runat="server" resourcekey="ddlPasswordProtection" AutoPostBack="True" OnSelectedIndexChanged="ddlPasswordProtection_SelectedIndexChanged">
<asp:ListItem Value="NoProtection" Text="Not password protected" meta:resourcekey="PasswordProtectionNoProtection"></asp:ListItem>
<asp:ListItem Value="ServerModerated" Text="Server Moderated" meta:resourcekey="PasswordProtectionServerModerated"></asp:ListItem>
<asp:ListItem Value="ClientModerated" Text="Client Moderated" meta:resourcekey="PasswordProtectionClientModerated"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr runat="server" ID="rowPostingPassword" Visible="False">
<td class="SubHead">
<asp:Label ID="lblPostingPassword" runat="server" meta:resourcekey="lblPostingPassword" Text="Posting password:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtPassword" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<asp:UpdatePanel ID="ModeratedUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkModerated" runat="server" meta:resourcekey="chkModerated" Text="Moderated listserver" AutoPostBack="True" OnCheckedChanged="chkModerated_CheckedChanged"></asp:CheckBox>
</td>
</tr>
<tr runat="server" ID="rowCommandPassword" Visible="False">
<td class="SubHead">
<asp:Label ID="lblCommandPassword" runat="server" meta:resourcekey="lblCommandPassword" Text="Command password:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtCommandPassword" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
</ContentTemplate>
</asp:UpdatePanel>
<tr>
<td class="SubHead">
<asp:Label ID="lblDefaultRights" runat="server" meta:resourcekey="lblDefaultRights" Text="Default Rights:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlDefaultRights" runat="server" meta:resourcekey="ddlDefaultRights">
<asp:ListItem Value="0" Text="Receive and post" meta:resourcekey="DefaultRightsReceivePost"></asp:ListItem>
<asp:ListItem Value="7" Text="Digest, receive and post" meta:resourcekey="DefaultRightsDigestReceivePost"></asp:ListItem>
<asp:ListItem Value="1" Text="Receive only" meta:resourcekey="DefaultRightsReceive"></asp:ListItem>
<asp:ListItem Value="5" Text="Digest and receive" meta:resourcekey="DefaultRightsDigestReceive"></asp:ListItem>
<asp:ListItem Value="2" Text="Post only" meta:resourcekey="DefaultRightsPost"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblMaxMessageSize" runat="server" meta:resourcekey="lblMaxMessageSize" Text="Max Message Size, kB:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtMaxMessageSize" runat="server" CssClass="NormalTextBox" Text="0"></asp:TextBox>
<asp:RangeValidator Type="Integer" ID="txtMaxMessageSizeValidator" MinimumValue="0" runat="server" ControlToValidate="txtMaxMessageSize"
Display="Dynamic" meta:resourcekey="txtMaxMessageSizeValidator" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtMaxMessageSizeRequiredValidator" ControlToValidate="txtMaxMessageSize" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblMaxMembers" runat="server" meta:resourcekey="lblMaxMembers" Text="Max members count:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtMaxMembers" runat="server" CssClass="NormalTextBox" Text="0"></asp:TextBox>
<asp:RangeValidator Type="Integer" ID="txtMaxMembersValidator" MinimumValue="0" runat="server" ControlToValidate="txtMaxMembers"
Display="Dynamic" meta:resourcekey="txtMaxMembersValidator" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtMaxMembersRequiredValidator" ControlToValidate="txtMaxMembers" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="Options" runat="server" targetcontrolid="OptionsPanel" meta:resourcekey="Options" Text="Options"></wsp:CollapsiblePanel>
<asp:Panel runat="server" ID="OptionsPanel">
<table width="100%">
<tr>
<td colspan="2">
<asp:CheckBox ID="chkSendToSender" runat="server" meta:resourcekey="chkSendToSender" Text="Send to sender" Checked="True"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkDigestMailingList" runat="server" meta:resourcekey="chkDigestMailingList" Text="DigestMailingList"></asp:CheckBox>
</td>
</tr>
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblMaxMessagesPerMinute" runat="server" meta:resourcekey="lblMaxMessagesPerMinute" Text="Max # of messages to send out in 1 minute:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtMaxMessagesPerMinute" runat="server" CssClass="NormalTextBox" Text="0"></asp:TextBox>
<asp:RangeValidator Type="Integer" ID="txtMaxMessagesPerMinuteValidator" MinimumValue="0" runat="server" ControlToValidate="txtMaxMessagesPerMinute"
Display="Dynamic" meta:resourcekey="txtMaxMessagesPerMinuteValidator" ErrorMessage="Value must be zero or greater" />
<asp:RequiredFieldValidator runat="server" ID="txtMaxMessagesPerMinuteRequiredValidator" ControlToValidate="txtMaxMessagesPerMinute" Display="Dynamic" Text="*" />
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkSendSubscribe" runat="server" meta:resourcekey="chkSendSubscribe" Text="Notify owner of join"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkSendUnSubscribe" runat="server" meta:resourcekey="chkSendUnSubscribe" Text="Notify owner of leave"></asp:CheckBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblConfirmSubscription" runat="server" meta:resourcekey="lblConfirmSubscription" Text="Subscription:"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList id="ddlConfirmSubscription" runat="server">
<asp:ListItem Value="None" Text="No confirmation" meta:resourcekey="ConfirmSubscriptionNone"></asp:ListItem>
<asp:ListItem Value="User" Text="User confirmed" meta:resourcekey="ConfirmSubscriptionUser"></asp:ListItem>
<asp:ListItem Value="Owner" Text="Owner confirmed" meta:resourcekey="ConfirmSubscriptionOwner"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkCommandInSubject" runat="server" meta:resourcekey="chkCommandInSubject" Text="Allow command in subject"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableSubscribe" runat="server" meta:resourcekey="chkEnableSubscribe" Text="Enable join (subscribe) command" Checked="True"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableUnsubscribe" runat="server" meta:resourcekey="chkEnableUnsubscribe" Text="Enable leave (unsubscribe) command" Checked="True"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableLists" runat="server" meta:resourcekey="chkEnableLists" Text="Enable Lists command" Checked="True"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableWhich" runat="server" meta:resourcekey="chkEnableWhich" Text="Enable Which command"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableReview" runat="server" meta:resourcekey="chkEnableReview" Text="Enable Review command"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkEnableVacation" runat="server" meta:resourcekey="chkEnableVacation" Text="Enable Vacation/No vacation command" Checked="True"></asp:CheckBox>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox ID="chkSuppressCommandResponses" runat="server" meta:resourcekey="chkSuppressCommandResponses" Text="Suppress command responses"></asp:CheckBox>
</td>
</tr>
</table>
</asp:Panel>

View file

@ -0,0 +1,162 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_EditList : WebsitePanelControlBase, IMailEditListControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
ddlListModerators.DataSource = moderators;
ddlListModerators.DataBind();
}
txtMaxMembersValidator.MaximumValue = int.MaxValue.ToString();
txtMaxMessageSizeValidator.MaximumValue = int.MaxValue.ToString();
txtMaxMessagesPerMinuteValidator.MaximumValue = int.MaxValue.ToString();
}
public void BindItem(MailList item)
{
txtDescription.Text = item.Description;
if (!String.IsNullOrEmpty(item.ModeratorAddress))
{
ddlListModerators.SelectedValue = item.ModeratorAddress;
}
ddlMembersSource.SelectedValue = item.MembersSource.ToString();
mailEditItems.Items = item.Members;
ddlFromHeaderAction.SelectedValue = item.FromHeader.ToString();
ddlReplyToHeaderAction.SelectedValue = item.ReplyToHeader.ToString();
txtFromHeaderValue.Text = item.ListFromAddress;
txtReplyToHeaderValue.Text = item.ListReplyToAddress;
txtSubjectPrefix.Text = item.SubjectPrefix;
ddllblOriginator.SelectedValue = item.Originator.ToString();
ddlPostingMode.SelectedValue = item.PostingMode.ToString();
ddlPasswordProtection.SelectedValue = item.PasswordProtection.ToString();
txtPassword.Text = item.Password;
ddlDefaultRights.SelectedValue = ((int) item.DefaultRights).ToString();
txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
txtMaxMembers.Text = item.MaxMembers.ToString();
chkSendToSender.Checked = item.SendToSender;
chkDigestMailingList.Checked = item.DigestMode;
txtMaxMessagesPerMinute.Text = item.MaxMessagesPerMinute.ToString();
chkSendSubscribe.Checked = item.SendSubscribe;
chkSendUnSubscribe.Checked = item.SendUnsubscribe;
ddlConfirmSubscription.SelectedValue = item.ConfirmSubscription.ToString();
chkCommandInSubject.Checked = item.CommandsInSubject;
chkEnableSubscribe.Checked = !item.DisableSubscribecommand;
chkEnableUnsubscribe.Checked = item.AllowUnsubscribe;
chkEnableLists.Checked = !item.DisableListcommand;
chkEnableWhich.Checked = !item.DisableWhichCommand;
chkEnableReview.Checked = !item.DisableReviewCommand;
chkEnableVacation.Checked = !item.DisableVacationCommand;
chkModerated.Checked = item.Moderated;
txtCommandPassword.Text = item.CommandPassword;
chkSuppressCommandResponses.Checked = item.SuppressCommandResponses;
ddlMembersSource_SelectedIndexChanged(this, null);
ddlFromHeaderAction_SelectedIndexChanged(this, null);
ddlReplyToHeaderAction_SelectedIndexChanged(this, null);
chkModerated_CheckedChanged(this, null);
ddlPasswordProtection_SelectedIndexChanged(this, null);
}
public void SaveItem(MailList item)
{
item.Description = txtDescription.Text;
item.ModeratorAddress = ddlListModerators.SelectedValue;
item.MembersSource = (IceWarpListMembersSource)Enum.Parse(typeof (IceWarpListMembersSource), ddlMembersSource.SelectedValue);
item.Members = mailEditItems.Items;
item.FromHeader = (IceWarpListFromAndReplyToHeader)Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlFromHeaderAction.SelectedValue);
item.ReplyToHeader = (IceWarpListFromAndReplyToHeader)Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlReplyToHeaderAction.SelectedValue);
item.ListFromAddress = txtFromHeaderValue.Text;
item.ListReplyToAddress = txtReplyToHeaderValue.Text;
item.SubjectPrefix = txtSubjectPrefix.Text;
item.Originator = (IceWarpListOriginator)Enum.Parse(typeof (IceWarpListOriginator), ddllblOriginator.SelectedValue);
item.PostingMode = (PostingMode)Enum.Parse(typeof (PostingMode), ddlPostingMode.SelectedValue);
item.PasswordProtection = (PasswordProtection)Enum.Parse(typeof (PasswordProtection), ddlPasswordProtection.SelectedValue);
item.Password = txtPassword.Text;
item.DefaultRights = (IceWarpListDefaultRights)Enum.Parse(typeof (IceWarpListDefaultRights), ddlDefaultRights.SelectedValue);
item.MaxMessageSize = Convert.ToInt32(txtMaxMessageSize.Text);
item.MaxMembers = Convert.ToInt32(txtMaxMembers.Text);
item.SendToSender = chkSendToSender.Checked;
item.DigestMode = chkDigestMailingList.Checked;
item.MaxMessagesPerMinute = Convert.ToInt32(txtMaxMessagesPerMinute.Text);
item.SendSubscribe = chkSendSubscribe.Checked;
item.SendUnsubscribe = chkSendUnSubscribe.Checked;
item.ConfirmSubscription = (IceWarpListConfirmSubscription)Enum.Parse(typeof (IceWarpListConfirmSubscription), ddlConfirmSubscription.SelectedValue);
item.CommandsInSubject = chkCommandInSubject.Checked;
item.DisableSubscribecommand = !chkEnableSubscribe.Checked;
item.AllowUnsubscribe = chkEnableUnsubscribe.Checked;
item.DisableListcommand = !chkEnableLists.Checked;
item.DisableWhichCommand = !chkEnableWhich.Checked;
item.DisableReviewCommand = !chkEnableReview.Checked;
item.DisableVacationCommand = !chkEnableVacation.Checked;
item.Moderated = chkModerated.Checked;
item.CommandPassword = txtCommandPassword.Text;
item.SuppressCommandResponses = chkSuppressCommandResponses.Checked;
}
protected void ddlMembersSource_SelectedIndexChanged(object sender, EventArgs e)
{
MembersRow.Visible = (IceWarpListMembersSource) Enum.Parse(typeof (IceWarpListMembersSource), ddlMembersSource.SelectedValue) == IceWarpListMembersSource.MembersInFile;
}
protected void ddlFromHeaderAction_SelectedIndexChanged(object sender, EventArgs e)
{
var setToValueChoosen = (IceWarpListFromAndReplyToHeader) Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlFromHeaderAction.SelectedValue) == IceWarpListFromAndReplyToHeader.SetToValue;
rowFromHeaderValue.Visible = setToValueChoosen;
//reqValFromHeaderValue.Enabled = setToValueChoosen;
}
protected void ddlReplyToHeaderAction_SelectedIndexChanged(object sender, EventArgs e)
{
var setToValueChoosen = (IceWarpListFromAndReplyToHeader) Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlReplyToHeaderAction.SelectedValue) == IceWarpListFromAndReplyToHeader.SetToValue;
rowReplyToHeaderValue.Visible = setToValueChoosen;
//reqValReplyToHeaderValue.Enabled = setToValueChoosen;
}
protected void chkModerated_CheckedChanged(object sender, EventArgs e)
{
rowCommandPassword.Visible = chkModerated.Checked;
}
protected void ddlPasswordProtection_SelectedIndexChanged(object sender, EventArgs e)
{
rowPostingPassword.Visible = ddlPasswordProtection.SelectedValue == "NoProtection";
}
}
}

View file

@ -0,0 +1,708 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_EditList {
/// <summary>
/// MainPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel MainPanel;
/// <summary>
/// lblDescription control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDescription;
/// <summary>
/// txtDescription control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtDescription;
/// <summary>
/// lblModeratorAddress control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblModeratorAddress;
/// <summary>
/// ddlListModerators control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlListModerators;
/// <summary>
/// reqValModerator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValModerator;
/// <summary>
/// MembersUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel MembersUpdatePanel;
/// <summary>
/// lblMembersSource control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMembersSource;
/// <summary>
/// ddlMembersSource control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlMembersSource;
/// <summary>
/// MembersRow control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow MembersRow;
/// <summary>
/// lblMembers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMembers;
/// <summary>
/// mailEditItems control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
/// <summary>
/// Message control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel Message;
/// <summary>
/// MessagePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel MessagePanel;
/// <summary>
/// FromHeaderUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel FromHeaderUpdatePanel;
/// <summary>
/// lblFromHeader control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFromHeader;
/// <summary>
/// ddlFromHeaderAction control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlFromHeaderAction;
/// <summary>
/// rowFromHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowFromHeaderValue;
/// <summary>
/// lblFromHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFromHeaderValue;
/// <summary>
/// txtFromHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtFromHeaderValue;
/// <summary>
/// reqValFromHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValFromHeaderValue;
/// <summary>
/// ReplyToHeaderUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel ReplyToHeaderUpdatePanel;
/// <summary>
/// lblReplyToHeader control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblReplyToHeader;
/// <summary>
/// ddlReplyToHeaderAction control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlReplyToHeaderAction;
/// <summary>
/// rowReplyToHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowReplyToHeaderValue;
/// <summary>
/// lblReplyToHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblReplyToHeaderValue;
/// <summary>
/// txtReplyToHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtReplyToHeaderValue;
/// <summary>
/// reqValReplyToHeaderValue control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValReplyToHeaderValue;
/// <summary>
/// chkSetRecipientToToHeader control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSetRecipientToToHeader;
/// <summary>
/// lblSubjectPrefix control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSubjectPrefix;
/// <summary>
/// txtSubjectPrefix control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtSubjectPrefix;
/// <summary>
/// lblOriginator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblOriginator;
/// <summary>
/// ddllblOriginator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddllblOriginator;
/// <summary>
/// Security control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel Security;
/// <summary>
/// SecurityPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel SecurityPanel;
/// <summary>
/// lblPostingMode control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPostingMode;
/// <summary>
/// ddlPostingMode control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlPostingMode;
/// <summary>
/// lblPasswordProtection control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPasswordProtection;
/// <summary>
/// ddlPasswordProtection control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlPasswordProtection;
/// <summary>
/// rowPostingPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowPostingPassword;
/// <summary>
/// lblPostingPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPostingPassword;
/// <summary>
/// txtPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtPassword;
/// <summary>
/// ModeratedUpdatePanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel ModeratedUpdatePanel;
/// <summary>
/// chkModerated control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkModerated;
/// <summary>
/// rowCommandPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowCommandPassword;
/// <summary>
/// lblCommandPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblCommandPassword;
/// <summary>
/// txtCommandPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtCommandPassword;
/// <summary>
/// lblDefaultRights control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblDefaultRights;
/// <summary>
/// ddlDefaultRights control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlDefaultRights;
/// <summary>
/// lblMaxMessageSize control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxMessageSize;
/// <summary>
/// txtMaxMessageSize control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSize;
/// <summary>
/// txtMaxMessageSizeValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtMaxMessageSizeValidator;
/// <summary>
/// txtMaxMessageSizeRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtMaxMessageSizeRequiredValidator;
/// <summary>
/// lblMaxMembers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxMembers;
/// <summary>
/// txtMaxMembers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxMembers;
/// <summary>
/// txtMaxMembersValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtMaxMembersValidator;
/// <summary>
/// txtMaxMembersRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtMaxMembersRequiredValidator;
/// <summary>
/// Options control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel Options;
/// <summary>
/// OptionsPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel OptionsPanel;
/// <summary>
/// chkSendToSender control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSendToSender;
/// <summary>
/// chkDigestMailingList control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkDigestMailingList;
/// <summary>
/// lblMaxMessagesPerMinute control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxMessagesPerMinute;
/// <summary>
/// txtMaxMessagesPerMinute control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxMessagesPerMinute;
/// <summary>
/// txtMaxMessagesPerMinuteValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator txtMaxMessagesPerMinuteValidator;
/// <summary>
/// txtMaxMessagesPerMinuteRequiredValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtMaxMessagesPerMinuteRequiredValidator;
/// <summary>
/// chkSendSubscribe control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSendSubscribe;
/// <summary>
/// chkSendUnSubscribe control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSendUnSubscribe;
/// <summary>
/// lblConfirmSubscription control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblConfirmSubscription;
/// <summary>
/// ddlConfirmSubscription control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlConfirmSubscription;
/// <summary>
/// chkCommandInSubject control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkCommandInSubject;
/// <summary>
/// chkEnableSubscribe control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableSubscribe;
/// <summary>
/// chkEnableUnsubscribe control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableUnsubscribe;
/// <summary>
/// chkEnableLists control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableLists;
/// <summary>
/// chkEnableWhich control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableWhich;
/// <summary>
/// chkEnableReview control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableReview;
/// <summary>
/// chkEnableVacation control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableVacation;
/// <summary>
/// chkSuppressCommandResponses control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSuppressCommandResponses;
}
}

View file

@ -0,0 +1,61 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_Settings" %>
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
<table cellpadding="7" cellspacing="0" width="100%">
<tr>
<td class="SubHead" width="150">
<asp:Label ID="lblPublicIP" runat="server" Text="Public IP Address:" meta:resourcekey="lblPublicIP"></asp:Label>
</td>
<td>
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label runat="server" ID="lblMaxMessageSizeInMB" Text="Global max message size:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtMaxMessageSizeInMB" Text="0"></asp:TextBox>
<asp:Label ID="Label1" runat="server" meta:resourcekey="MaxMessageSizeInMB" Text="Can be overridden on domain level if you check 'Override global limits'"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox runat="server" ID="cbUseDomainDiskQuota" Text="Use domain disk quota" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox runat="server" ID="cbUseDomainLimits" Text="Use domain limits" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox runat="server" ID="cbUseUserLimits" Text="Use user limits" />
</td>
</tr>
<tr>
<td colspan="2">
<asp:CheckBox runat="server" ID="cbOverrideGlobal" Text="Override global limits" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label runat="server" ID="lblWarnDomainSize" Text="Warn domain administrator when domain size exceeds quota (%)"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtWarnDomainSize" Text="0"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" Text="*" ControlToValidate="txtWarnDomainSize"></asp:RequiredFieldValidator>
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnDomainSizeValidator" ControlToValidate="txtWarnDomainSize" runat="server" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label runat="server" ID="lblWarnMailboxUsage" Text="Warn user when mailbox size exceeds quota (%)"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox runat="server" ID="txtWarnMailboxUsage" Text="0"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Text="*" ControlToValidate="txtWarnMailboxUsage"></asp:RequiredFieldValidator>
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnMailboxUsageValidator" ControlToValidate="txtWarnMailboxUsage" runat="server" />
</td>
</tr>
</table>

View file

@ -0,0 +1,71 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class IceWarp_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
{
public void BindSettings(StringDictionary settings)
{
ipAddress.AddressId = (settings["ServerIpAddress"] != null) ? Utils.ParseInt(settings["ServerIpAddress"], 0) : 0;
cbUseDomainDiskQuota.Checked = Convert.ToBoolean(settings["UseDomainDiskQuota"]);
cbUseDomainLimits.Checked = Convert.ToBoolean(settings["UseDomainLimits"]);
cbUseUserLimits.Checked = Convert.ToBoolean(settings["UseUserLimits"]);
cbOverrideGlobal.Checked = Convert.ToBoolean(settings["OverrideGlobal"]);
txtWarnMailboxUsage.Text = settings["WarnMailboxUsage"];
txtWarnDomainSize.Text = settings["WarnDomainSize"];
txtMaxMessageSizeInMB.Text = settings["MaxMessageSize"];
}
public void SaveSettings(StringDictionary settings)
{
settings["ServerIpAddress"] = ipAddress.AddressId.ToString();
settings["UseDomainDiskQuota"] = cbUseDomainDiskQuota.Checked.ToString();
settings["UseDomainLimits"] = cbUseDomainLimits.Checked.ToString();
settings["UseUserLimits"] = cbUseUserLimits.Checked.ToString();
settings["OverrideGlobal"] = cbOverrideGlobal.Checked.ToString();
settings["WarnMailboxUsage"] = txtWarnMailboxUsage.Text;
settings["WarnDomainSize"] = txtWarnDomainSize.Text;
settings["MaxMessageSize"] = txtMaxMessageSizeInMB.Text;
}
}
}

View file

@ -0,0 +1,141 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.ProviderControls {
public partial class IceWarp_Settings {
/// <summary>
/// lblPublicIP control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPublicIP;
/// <summary>
/// ipAddress control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
/// <summary>
/// lblMaxMessageSizeInMB control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMaxMessageSizeInMB;
/// <summary>
/// txtMaxMessageSizeInMB control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSizeInMB;
/// <summary>
/// Label1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// cbUseDomainDiskQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbUseDomainDiskQuota;
/// <summary>
/// cbUseDomainLimits control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbUseDomainLimits;
/// <summary>
/// cbUseUserLimits control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbUseUserLimits;
/// <summary>
/// cbOverrideGlobal control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox cbOverrideGlobal;
/// <summary>
/// lblWarnDomainSize control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblWarnDomainSize;
/// <summary>
/// txtWarnDomainSize control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtWarnDomainSize;
/// <summary>
/// lblWarnMailboxUsage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblWarnMailboxUsage;
/// <summary>
/// txtWarnMailboxUsage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtWarnMailboxUsage;
/// <summary>
/// RequiredFieldValidator1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
}
}

View file

@ -539,6 +539,48 @@
<Compile Include="ProviderControls\hMailServer5_Settings.ascx.designer.cs">
<DependentUpon>hMailServer5_Settings.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditAccount.ascx.cs">
<DependentUpon>IceWarp_EditAccount.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditAccount.ascx.designer.cs">
<DependentUpon>IceWarp_EditAccount.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditDomain.ascx.cs">
<DependentUpon>IceWarp_EditDomain.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditDomain.ascx.designer.cs">
<DependentUpon>IceWarp_EditDomain.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditForwarding.ascx.cs">
<DependentUpon>IceWarp_EditForwarding.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditForwarding.ascx.designer.cs">
<DependentUpon>IceWarp_EditForwarding.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditGroup.ascx.cs">
<DependentUpon>IceWarp_EditGroup.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditGroup.ascx.designer.cs">
<DependentUpon>IceWarp_EditGroup.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditList.ascx.cs">
<DependentUpon>IceWarp_EditList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_EditList.ascx.designer.cs">
<DependentUpon>IceWarp_EditList.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\IceWarp_Settings.ascx.cs">
<DependentUpon>IceWarp_Settings.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\IceWarp_Settings.ascx.designer.cs">
<DependentUpon>IceWarp_Settings.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\Lync_Settings.ascx.cs">
<DependentUpon>Lync_Settings.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -4125,6 +4167,12 @@
<Content Include="ProviderControls\CRM2011_Settings.ascx" />
<Content Include="ProviderControls\EnterpriseStorage_Settings.ascx" />
<Content Include="ProviderControls\HeliconZoo_Settings.ascx" />
<Content Include="ProviderControls\IceWarp_EditAccount.ascx" />
<Content Include="ProviderControls\IceWarp_EditDomain.ascx" />
<Content Include="ProviderControls\IceWarp_EditForwarding.ascx" />
<Content Include="ProviderControls\IceWarp_EditGroup.ascx" />
<Content Include="ProviderControls\IceWarp_EditList.ascx" />
<Content Include="ProviderControls\IceWarp_Settings.ascx" />
<Content Include="ProviderControls\RDS_Settings.ascx" />
<Content Include="ServersEditWebPlatformInstaller.ascx" />
<Content Include="ExchangeServer\ExchangeMailboxPlans.ascx" />
@ -5368,6 +5416,11 @@
<Content Include="App_LocalResources\UserOrganization.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\IceWarp_EditAccount.ascx.resx" />
<Content Include="ProviderControls\App_LocalResources\IceWarp_EditDomain.ascx.resx" />
<Content Include="ProviderControls\App_LocalResources\IceWarp_EditGroup.ascx.resx" />
<Content Include="ProviderControls\App_LocalResources\IceWarp_EditList.ascx.resx" />
<Content Include="ProviderControls\App_LocalResources\IceWarp_Settings.ascx.resx" />
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
<SubType>Designer</SubType>
</EmbeddedResource>