wsp-10317 (Update sql) Add enable\disable users ability for smart mail integration + multi-actions

This commit is contained in:
me 2015-02-21 14:01:11 +04:00
parent 1220a131a4
commit 82efa08870
48 changed files with 5110 additions and 12 deletions

View file

@ -41836,7 +41836,7 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL)
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail60', NULL) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL)
GO GO

View file

@ -8691,3 +8691,13 @@ SET
Settings = @Settings Settings = @Settings
WHERE AccountId = @AccountId WHERE AccountId = @AccountId
GO GO
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'SmarterMail 10.x +')
BEGIN
INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
END
ELSE
BEGIN
UPDATE [dbo].[Providers] SET [EditorControl] = 'SmarterMail100' WHERE [DisplayName] = 'SmarterMail 10.x +'
END
GO

View file

@ -137,7 +137,6 @@ namespace WebsitePanel.EnterpriseServer
return domainResult; return domainResult;
// create service item // create service item
item.Enabled = true;
item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item); item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item);
// add service item // add service item
@ -207,7 +206,6 @@ namespace WebsitePanel.EnterpriseServer
MailServer mail = new MailServer(); MailServer mail = new MailServer();
ServiceProviderProxy.Init(mail, origItem.ServiceId); ServiceProviderProxy.Init(mail, origItem.ServiceId);
item.Name = origItem.Name; item.Name = origItem.Name;
item.Enabled = true;
item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item); item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item);

View file

@ -33,7 +33,7 @@ namespace WebsitePanel.Providers.Mail
[Serializable] [Serializable]
public class MailAccount : ServiceProviderItem public class MailAccount : ServiceProviderItem
{ {
private bool enabled; private bool enabled = true;
private string password; private string password;
private string replyTo; private string replyTo;
private bool responderEnabled; private bool responderEnabled;

View file

@ -0,0 +1,168 @@
<?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="cbDomainAdmin.Text" xml:space="preserve">
<value>Domain Administrator</value>
</data>
<data name="cbDomainAdministrator.Text" xml:space="preserve">
<value>Domain Administrator</value>
</data>
<data name="cbEnableAccount.Text" xml:space="preserve">
<value>Account enabled</value>
</data>
<data name="chkDeleteOnForward.Text" xml:space="preserve">
<value>Delete Message on Forward</value>
</data>
<data name="chkResponderEnabled.Text" xml:space="preserve">
<value>Yes</value>
</data>
<data name="lblFirstName.Text" xml:space="preserve">
<value>First Name:</value>
</data>
<data name="lblForwardTo.Text" xml:space="preserve">
<value>Forward Mail to Address:</value>
</data>
<data name="lblLastName.Text" xml:space="preserve">
<value>Last Name:</value>
</data>
<data name="lblMessage.Text" xml:space="preserve">
<value>Message:</value>
</data>
<data name="lblReplyTo.Text" xml:space="preserve">
<value>Reply to Address:</value>
</data>
<data name="lblResponderEnabled.Text" xml:space="preserve">
<value>Enable Autoresponder:</value>
</data>
<data name="lblSignature.Text" xml:space="preserve">
<value>Signature:</value>
</data>
<data name="lblSubject.Text" xml:space="preserve">
<value>Subject:</value>
</data>
<data name="secAutoresponder.Text" xml:space="preserve">
<value>Autoresponder</value>
</data>
<data name="secForwarding.Text" xml:space="preserve">
<value>Mail Forwarding</value>
</data>
</root>

View file

@ -0,0 +1,171 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblAbuse.Text" xml:space="preserve">
<value>Abuse Account:</value>
</data>
<data name="lblCatchAll.Text" xml:space="preserve">
<value>Catch-All Account:</value>
</data>
<data name="lblDomainAliases.Text" xml:space="preserve">
<value>Domain Aliases :</value>
</data>
<data name="lblDomainDiskSpace.Text" xml:space="preserve">
<value>Domain Disk Space, MB :</value>
</data>
<data name="lblMailingListsQuota.Text" xml:space="preserve">
<value>Mailing Lists :</value>
</data>
<data name="lblMessageSizeQuota.Text" xml:space="preserve">
<value>Max Message Size, KB :</value>
</data>
<data name="lblPopRetreivalAccounts.Text" xml:space="preserve">
<value>POP Retrieval Accounts:</value>
</data>
<data name="lblPostmaster.Text" xml:space="preserve">
<value>Postmaster Account:</value>
</data>
<data name="lblRecipientsPerMessageQuota.Text" xml:space="preserve">
<value>Max Recipients per Message :</value>
</data>
<data name="lblUserAliasesQuota.Text" xml:space="preserve">
<value>User Aliases :</value>
</data>
<data name="lblUserQuota.Text" xml:space="preserve">
<value>Users :</value>
</data>
<data name="secFeatures.Text" xml:space="preserve">
<value>Features</value>
</data>
<data name="secLimits.Text" xml:space="preserve">
<value>Limits</value>
</data>
<data name="secSharing.Text" xml:space="preserve">
<value>Sharing</value>
</data>
<data name="secTechnical.Text" xml:space="preserve">
<value>Technical</value>
</data>
<data name="secThrottling.Text" xml:space="preserve">
<value>Throttling</value>
</data>
<data name="Text.NotSelected" xml:space="preserve">
<value>&lt;Not Selected&gt;</value>
</data>
</root>

View file

@ -0,0 +1,168 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lbEnableCatchAlls.Text" xml:space="preserve">
<value>Enable Catch-Alls</value>
</data>
<data name="lbEnableIMAPRetreival.Text" xml:space="preserve">
<value>Enable IMAP Retreival</value>
</data>
<data name="lbEnableMailReports.Text" xml:space="preserve">
<value>Enable Email Reports</value>
</data>
<data name="lbEnableMailSigning.Text" xml:space="preserve">
<value>Enable Mail Signing</value>
</data>
<data name="lbEnablePopRetreival.Text" xml:space="preserve">
<value>Enable POP Retrieval</value>
</data>
<data name="lbEnableSyncML.Text" xml:space="preserve">
<value>Enable SyncML</value>
</data>
<data name="lbPopRetrieval.Text" xml:space="preserve">
<value>Pop Retreival</value>
</data>
<data name="lbShowCalendar.Text" xml:space="preserve">
<value>Calendar</value>
</data>
<data name="lbShowContacts.Text" xml:space="preserve">
<value>Contacts</value>
</data>
<data name="lbShowcontentfilteringmenu.Text" xml:space="preserve">
<value>Domain Content Filtering</value>
</data>
<data name="lbShowdomainaliasmenu.Text" xml:space="preserve">
<value>Domain Aliases</value>
</data>
<data name="lbShowDomainReports.Text" xml:space="preserve">
<value>Domain Reports</value>
</data>
<data name="lbShowlistmenu.Text" xml:space="preserve">
<value>Mailing Lists</value>
</data>
<data name="lbShowNotes.Text" xml:space="preserve">
<value>Notes</value>
</data>
<data name="lbShowspammenu.Text" xml:space="preserve">
<value>Domain Spam Options</value>
</data>
<data name="lbShowTasks.Text" xml:space="preserve">
<value>Tasks</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cbGlobalAddressList.Text" xml:space="preserve">
<value>Global Address List</value>
</data>
<data name="cbSharedCalendars.Text" xml:space="preserve">
<value>Shared Calendars</value>
</data>
<data name="cbSharedContacts.Text" xml:space="preserve">
<value>Shared Contacts</value>
</data>
<data name="cbSharedFolders.Text" xml:space="preserve">
<value>Shared Folders</value>
</data>
<data name="cbSharedNotes.Text" xml:space="preserve">
<value>Shared Notes</value>
</data>
<data name="cbSharedTasks.Text" xml:space="preserve">
<value>Shared Tasks</value>
</data>
</root>

View file

@ -0,0 +1,132 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lbBandwidthPerHour.Text" xml:space="preserve">
<value>Outgoing Bandwidth per Hour, MB:</value>
</data>
<data name="lbBouncesPerHour.Text" xml:space="preserve">
<value>Bounces Received per Hour:</value>
</data>
<data name="lbEnabled.Text" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="lbMessagesPerHour.Text" xml:space="preserve">
<value>Outgoing Messages per Hour:</value>
</data>
</root>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,123 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="lblGroupMembers.Text" xml:space="preserve">
<value>Group E-Mails:</value>
</data>
</root>

View file

@ -0,0 +1,219 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<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="chkSubjectPrefixEnabled.Text" xml:space="preserve">
<value>Enabled</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="ddlPostingModeItem.Anyone" xml:space="preserve">
<value>Anyone</value>
</data>
<data name="ddlPostingModeItem.MembersOnly" xml:space="preserve">
<value>Subscribers Only</value>
</data>
<data name="ddlPostingModeItem.ModeratorOnly" xml:space="preserve">
<value>Moderator Only</value>
</data>
<data name="ddlPostingModeItem.Password" xml:space="preserve">
<value>Password Protected Posting</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="lblDescription.Text" xml:space="preserve">
<value>List Description:</value>
</data>
<data name="lblListOptions.Text" xml:space="preserve">
<value>List Options:</value>
</data>
<data name="lblMaxMessageSize.Text" xml:space="preserve">
<value>Max Message Size, KB:</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="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="lblPostingMode.Text" xml:space="preserve">
<value>Who Can Post:</value>
</data>
<data name="lblPostingPassword.Text" xml:space="preserve">
<value>List Password:</value>
</data>
<data name="lblReplyTo.Text" xml:space="preserve">
<value>Subscribers Reply To:</value>
</data>
<data name="lblSubjectPrefix.Text" xml:space="preserve">
<value>Subject Prefix:</value>
</data>
<data name="Text.SelectModerator" xml:space="preserve">
<value>&lt;Choose a moderator&gt;</value>
</data>
<data name="AdditionalOptions.Text" xml:space="preserve">
<value>List Additional Options</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="lblListFromAddress.Text" xml:space="preserve">
<value>List From Address:</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="lbSendSubscribe.Text" xml:space="preserve">
<value>Send Subscribe Email:</value>
</data>
<data name="lbSendUnsubscribe.Text" xml:space="preserve">
<value>Send Unsubscribe Email:</value>
</data>
</root>

View file

@ -0,0 +1,150 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cbEnableDomainAdmin.Text" xml:space="preserve">
<value>Enable Domain Administrators</value>
</data>
<data name="cbImportDomainAdmin.Text" xml:space="preserve">
<value>Import Domain Admin</value>
</data>
<data name="cbImportSystemAdmin.Text" xml:space="preserve">
<value>Import System Admin</value>
</data>
<data name="cbInheritDefaultLimits.Text" xml:space="preserve">
<value>Inherit Domain Default Limits &amp;nbsp; (Domain Default Limits will be applied for all new created domains)</value>
</data>
<data name="lblAdminLogin.Text" xml:space="preserve">
<value>Admin Login:</value>
</data>
<data name="lblAdminPassword.Text" xml:space="preserve">
<value>Admin Password:</value>
</data>
<data name="lblCurrPassword.Text" xml:space="preserve">
<value>Current Admin Password:</value>
</data>
<data name="lblDomainsPath.Text" xml:space="preserve">
<value>Domains Root Folder:</value>
</data>
<data name="lblPublicIP.Text" xml:space="preserve">
<value>Public IP Address:</value>
</data>
<data name="lblServiceUrl.Text" xml:space="preserve">
<value>SmarterMail Web Services URL:</value>
</data>
</root>

View file

@ -0,0 +1,114 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditAccount.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditAccount" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<table width="100%">
<tr runat="server" id="passwordRow">
<td>
</td>
<td class="SubHead" height="37px">
<asp:CheckBox runat="server" meta:resourcekey="cbChangePassword" ID="cbChangePassword" Text="Change password" />
</td>
</tr>
<tr>
<td>
</td>
<td class="SubHead" height="37px">
<asp:CheckBox runat="server" meta:resourcekey="cbEnableAccount" ID="cbEnableAccount" Text="Account enabled" Checked="True" />
</td>
</tr>
<tr>
<td>
</td>
<td class="SubHead" height="37px">
<asp:CheckBox runat="server" meta:resourcekey="cbDomainAdmin" ID="cbDomainAdmin" Text="Domain Administrator" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap>
<asp:Label ID="lblFirstName" runat="server" meta:resourcekey="lblFirstName" Text="First Name:"></asp:Label>
</td>
<td class="normal" width="100%">
<asp:TextBox ID="txtFirstName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblLastName" runat="server" meta:resourcekey="lblLastName" Text="Last Name:"></asp:Label>
</td>
<td class="normal" valign="top">
<asp:TextBox ID="txtLastName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblReplyTo" runat="server" meta:resourcekey="lblReplyTo" Text="Reply to address:"></asp:Label></td>
<td class="normal">
<asp:TextBox ID="txtReplyTo" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblSignature" runat="server" meta:resourcekey="lblSignature" Text="Signature:"></asp:Label></td>
<td class="normal">
<asp:TextBox ID="txtSignature" runat="server" Width="200px" TextMode="MultiLine"
Rows="4" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
</table>
<wsp:CollapsiblePanel id="secAutoresponder" runat="server" TargetControlID="AutoresponderPanel"
meta:resourcekey="secAutoresponder" Text="Autoresponder">
</wsp:CollapsiblePanel>
<asp:Panel ID="AutoresponderPanel" runat="server" Height="0" Style="overflow: hidden;">
<table width="100%">
<tr>
<td class="SubHead" width="200" nowrap>
<asp:Label ID="lblResponderEnabled" runat="server" meta:resourcekey="lblResponderEnabled"
Text="Enable autoresponder:"></asp:Label></td>
<td class="normal" width="100%">
<asp:CheckBox ID="chkResponderEnabled" runat="server" meta:resourcekey="chkResponderEnabled"
Text="Yes"></asp:CheckBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label></td>
<td class="normal" valign="top">
<asp:TextBox ID="txtSubject" runat="server" Width="400px" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead" valign="top">
<asp:Label ID="lblMessage" runat="server" meta:resourcekey="lblMessage" Text="Message:"></asp:Label></td>
<td class="normal">
<asp:TextBox ID="txtMessage" runat="server" Width="400px" TextMode="MultiLine" Rows="5"
CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secForwarding" runat="server" TargetControlID="ForwardingPanel"
meta:resourcekey="secForwarding" Text="Mail Forwarding">
</wsp:CollapsiblePanel>
<asp:Panel ID="ForwardingPanel" runat="server" Height="0" Style="overflow: hidden;">
<table width="100%">
<tr>
<td class="SubHead" width="200" nowrap>
<asp:Label ID="lblForwardTo" runat="server" meta:resourcekey="lblForwardTo" Text="Forward mail to address:"></asp:Label></td>
<td class="normal" width="100%" valign="top">
<asp:TextBox ID="txtForward" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
</td>
<td class="Normal">
<asp:CheckBox ID="chkDeleteOnForward" runat="server" meta:resourcekey="chkDeleteOnForward"
Text="Delete Message on Forward"></asp:CheckBox>
</td>
</tr>
</table>
</asp:Panel>

View file

@ -0,0 +1,75 @@
// Copyright (c) 2015, 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 SmarterMail100_EditAccount : WebsitePanelControlBase, IMailEditAccountControl
{
protected void Page_Load(object sender, EventArgs e)
{
passwordRow.Visible = (PanelRequest.ItemID > 0);
}
public void BindItem(MailAccount item)
{
txtFirstName.Text = item.FirstName;
txtLastName.Text = item.LastName;
txtSignature.Text = item.Signature;
cbEnableAccount.Checked = item.Enabled;
chkResponderEnabled.Checked = item.ResponderEnabled;
txtReplyTo.Text = item.ReplyTo;
txtSubject.Text = item.ResponderSubject;
txtMessage.Text = item.ResponderMessage;
txtForward.Text = item.ForwardingAddresses != null ? String.Join("; ", item.ForwardingAddresses) : "";
chkDeleteOnForward.Checked = item.DeleteOnForward;
cbDomainAdmin.Visible = item.IsDomainAdminEnabled;
cbDomainAdmin.Checked = item.IsDomainAdmin;
}
public void SaveItem(MailAccount item)
{
item.FirstName = txtFirstName.Text;
item.LastName = txtLastName.Text;
item.Signature = txtSignature.Text;
item.ResponderEnabled = chkResponderEnabled.Checked;
item.Enabled = cbEnableAccount.Checked;
item.ReplyTo = txtReplyTo.Text;
item.ResponderSubject = txtSubject.Text;
item.ResponderMessage = txtMessage.Text;
item.ForwardingAddresses = Utils.ParseDelimitedString(txtForward.Text, ';', ' ', ',');
item.DeleteOnForward = chkDeleteOnForward.Checked;
item.ChangePassword = cbChangePassword.Checked;
item.ChangePassword = cbChangePassword.Checked;
item.IsDomainAdmin = cbDomainAdmin.Checked;
}
}
}

View file

@ -0,0 +1,240 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_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>
/// cbEnableAccount 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 cbEnableAccount;
/// <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>
/// lblFirstName 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 lblFirstName;
/// <summary>
/// txtFirstName 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 txtFirstName;
/// <summary>
/// lblLastName 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 lblLastName;
/// <summary>
/// txtLastName 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 txtLastName;
/// <summary>
/// lblReplyTo 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 lblReplyTo;
/// <summary>
/// txtReplyTo 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 txtReplyTo;
/// <summary>
/// lblSignature 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 lblSignature;
/// <summary>
/// txtSignature 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 txtSignature;
/// <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>
/// 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>
/// chkResponderEnabled 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 chkResponderEnabled;
/// <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>
/// 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>
/// chkDeleteOnForward 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 chkDeleteOnForward;
}
}

View file

@ -0,0 +1,145 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain" %>
<%@ Register Src="SmarterMail60_EditDomain_Features.ascx" TagName="SmarterMail60_EditDomain_Features"
TagPrefix="uc4" %>
<%@ Register Src="SmarterMail60_EditDomain_Sharing.ascx" TagName="SmarterMail60_EditDomain_Sharing"
TagPrefix="uc3" %>
<%@ Register Src="SmarterMail60_EditDomain_Throttling.ascx" TagName="SmarterMail60_EditDomain_Throttling"
TagPrefix="uc5" %>
<%@ Register Src="../UserControls/QuotaEditor.ascx" TagName="QuotaEditor" TagPrefix="uc1" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<table width="100%">
<tr>
<td class="SubHead" width="200" nowrap>
<asp:Label ID="lblCatchAll" runat="server" meta:resourcekey="lblCatchAll" Text="Catch-All Account:"></asp:Label></td>
<td class="Normal" width="100%">
<asp:DropDownList ID="ddlCatchAllAccount" runat="server" CssClass="NormalTextBox">
</asp:DropDownList></td>
</tr>
</table>
<asp:Panel runat="server" ID="AdvancedSettingsPanel">
<wsp:collapsiblepanel id="secFeatures" runat="server" targetcontrolid="FeaturesPanel"
meta:resourcekey="secFeatures" ></wsp:collapsiblepanel>
<asp:Panel runat="server" ID="FeaturesPanel">
<uc4:SmarterMail60_EditDomain_Features id="featuresSection" runat="server"></uc4:SmarterMail60_EditDomain_Features>
</asp:Panel>
<wsp:collapsiblepanel id="secSharing" runat="server" targetcontrolid="SharingPanel"
meta:resourcekey="secSharing" ></wsp:collapsiblepanel>
<asp:Panel runat="server" ID="SharingPanel">
<uc3:SmarterMail60_EditDomain_Sharing id="sharingSection" runat="server"></uc3:SmarterMail60_EditDomain_Sharing>
</asp:Panel>
<wsp:collapsiblepanel id="secThrottling" runat="server" targetcontrolid="ThrottlingPanel"
meta:resourcekey="secThrottling" ></wsp:collapsiblepanel>
<asp:Panel runat="server" ID="ThrottlingPanel">
<uc5:SmarterMail60_EditDomain_Throttling id="throttlingSection" runat="server"></uc5:SmarterMail60_EditDomain_Throttling>
</asp:Panel>
<wsp:collapsiblepanel id="secLimits" runat="server" targetcontrolid="LimitsPanel"
meta:resourcekey="secLimits" text="Limits"></wsp:collapsiblepanel>
<asp:Panel runat="server" ID="LimitsPanel">
<table width="100%">
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblDomainDiskSpace" runat="server" meta:resourcekey="lblDomainDiskSpace"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtSize" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" ID="valDomainDiskSpace" MinimumValue="0" runat="server" ControlToValidate="txtSize"
Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValDiskSpace" runat="server" ControlToValidate="txtSize"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblDomainAliases" runat="server" meta:resourcekey="lblDomainAliases"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtDomainAliases" Text="0" Width="80px" CssClass="NormalTextBox"/>
<asp:RangeValidator Type="Integer" ID="valDomainAliases" MinimumValue="0" runat="server" ControlToValidate="txtDomainAliases"
Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValDomainAliases" runat="server" ControlToValidate="txtDomainAliases"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblUserQuota" runat="server" meta:resourcekey="lblUserQuota"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtUser" Width="80px" CssClass="NormalTextBox"/>
<asp:RangeValidator Type="Integer" MinimumValue="0" ID="valUser" runat="server" ControlToValidate="txtUser"
Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValUser" runat="server" ControlToValidate="txtUser"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblUserAliasesQuota" runat="server" meta:resourcekey="lblUserAliasesQuota"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtUserAliases" Width="80px" CssClass="NormalTextBox"/>
<asp:RangeValidator Type="Integer" runat="server" ID="valUserAliases" ControlToValidate="txtUserAliases"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValUserAliases" runat="server" ControlToValidate="txtUserAliases"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblMailingListsQuota" runat="server" meta:resourcekey="lblMailingListsQuota"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" Width="80px" ID="txtMailingLists" CssClass="NormalTextBox"/>
<asp:RangeValidator Type="Integer" runat="server" ID="valMailingLists" ControlToValidate="txtMailingLists"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValMailingLists" runat="server" ControlToValidate="txtMailingLists"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblPopRetreivalAccounts" runat="server" meta:resourcekey="lblPopRetreivalAccounts"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" Width="80px" ID="txtPopRetreivalAccounts" CssClass="NormalTextBox"/>
<asp:RangeValidator Type="Integer" runat="server" ID="valPopRetreivalAccounts" ControlToValidate="txtPopRetreivalAccounts"
MinimumValue="0" Display="None"/>
<asp:RequiredFieldValidator ID="reqPopRetreivalAccounts" runat="server" ControlToValidate="txtPopRetreivalAccounts"
Display="None"/>
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblMessageSizeQuota" runat="server" meta:resourcekey="lblMessageSizeQuota"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtMessageSize" CssClass="NormalTextBox" Width="80px"/>
<asp:RangeValidator Type="Integer" runat="server" ID="valMessageSize" ControlToValidate="txtMessageSize"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValMessageSize" runat="server" ControlToValidate="txtMessageSize"
Display="Dynamic" />
</td>
</tr>
<tr>
<td class="SubHead" width="200" nowrap align="right">
<asp:Label ID="lblRecipientsPerMessageQuota" runat="server" meta:resourcekey="lblRecipientsPerMessageQuota"></asp:Label></td>
<td width="100%" align="left">
<asp:TextBox runat="server" ID="txtRecipientsPerMessage" CssClass="NormalTextBox" Width="80px"/>
<asp:RangeValidator Type="Integer" runat="server" ID="valRecipientsPerMessage" ControlToValidate="txtRecipientsPerMessage"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValRecipientsPerMessage" runat="server" ControlToValidate="txtRecipientsPerMessage"
Display="Dynamic" />
</td>
</tr>
</table>
</asp:Panel>
</asp:Panel>

View file

@ -0,0 +1,183 @@
// Copyright (c) 2015, 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.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.Mail;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class SmarterMail100_EditDomain : WebsitePanelControlBase, IMailEditDomainControl
{
protected void Page_Load(object sender, EventArgs e)
{
PackageInfo info = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
AdvancedSettingsPanel.Visible = PanelSecurity.EffectiveUser.Role == UserRole.Administrator;
InitValidators();
}
public void BindItem(MailDomain item)
{
BindMailboxes(item);
BindQuotas(item);
featuresSection.BindItem(item);
sharingSection.BindItem(item);
throttlingSection.BindItem(item);
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
{
secSharing.Visible = false;
sharingSection.Visible = false;
secThrottling.Visible = false;
throttlingSection.Visible = false;
}
else
{
sharingSection.BindItem(item);
throttlingSection.BindItem(item);
}
}
public void SaveItem(MailDomain item)
{
item.CatchAllAccount = ddlCatchAllAccount.SelectedValue;
SaveQuotas(item);
featuresSection.SaveItem(item);
sharingSection.SaveItem(item);
throttlingSection.SaveItem(item);
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
{
secSharing.Visible = false;
sharingSection.Visible = false;
secThrottling.Visible = false;
throttlingSection.Visible = false;
}
else
{
sharingSection.SaveItem(item);
throttlingSection.SaveItem(item);
}
}
private void SaveQuotas(MailDomain item)
{
item.MaxDomainSizeInMB = Utils.ParseInt(txtSize.Text);
item.MaxDomainAliases = Utils.ParseInt(txtDomainAliases.Text);
item.MaxDomainUsers = Utils.ParseInt(txtUser.Text);
item.MaxAliases = Utils.ParseInt(txtUserAliases.Text);
item.MaxLists = Utils.ParseInt(txtMailingLists.Text);
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS] = txtPopRetreivalAccounts.Text;
item.MaxRecipients = Utils.ParseInt(txtRecipientsPerMessage.Text);
item.MaxMessageSize = Utils.ParseInt(txtMessageSize.Text);
}
private void BindQuotas(MailDomain item)
{
txtSize.Text = item.MaxDomainSizeInMB.ToString();
txtDomainAliases.Text = item.MaxDomainAliases.ToString();
txtUser.Text = item.MaxDomainUsers.ToString();
txtUserAliases.Text = item.MaxAliases.ToString();
txtMailingLists.Text = item.MaxLists.ToString();
txtPopRetreivalAccounts.Text = item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS];
txtRecipientsPerMessage.Text = item.MaxRecipients.ToString();
txtMessageSize.Text = item.MaxMessageSize.ToString();
}
private void BindMailboxes(MailDomain item)
{
MailAccount[] accounts = ES.Services.MailServers.GetMailAccounts(item.PackageId, false);
MailAlias[] forwardings = ES.Services.MailServers.GetMailForwardings(item.PackageId, false);
BindAccounts(item, ddlCatchAllAccount, accounts);
BindAccounts(item, ddlCatchAllAccount, forwardings);
Utils.SelectListItem(ddlCatchAllAccount, item.CatchAllAccount);
}
private void BindAccounts(MailDomain item, DropDownList ddl, MailAccount[] accounts)
{
if (ddl.Items.Count == 0)
ddl.Items.Add(new ListItem(GetLocalizedString("Text.NotSelected"), ""));
foreach (MailAccount account in accounts)
{
int idx = account.Name.IndexOf("@");
string accountName = account.Name.Substring(0, idx);
string accountDomain = account.Name.Substring(idx + 1);
if (String.Compare(accountDomain, item.Name, true) == 0)
ddl.Items.Add(new ListItem(account.Name, accountName));
}
}
private void InitValidators()
{
string message = "*";
reqValRecipientsPerMessage.ErrorMessage = message;
valRecipientsPerMessage.ErrorMessage = message;
valRecipientsPerMessage.MaximumValue = int.MaxValue.ToString();
reqValMessageSize.ErrorMessage = message;
valMessageSize.ErrorMessage = message;
valMessageSize.MaximumValue = int.MaxValue.ToString();
reqValMailingLists.ErrorMessage = message;
valMailingLists.ErrorMessage = message;
valMailingLists.MaximumValue = int.MaxValue.ToString();
reqPopRetreivalAccounts.ErrorMessage = message;
valPopRetreivalAccounts.ErrorMessage = message;
valPopRetreivalAccounts.MaximumValue = int.MaxValue.ToString();
reqValUser.ErrorMessage = message;
valUser.ErrorMessage = message;
valUser.MaximumValue = int.MaxValue.ToString();
reqValUserAliases.ErrorMessage = message;
valUserAliases.ErrorMessage = message;
valUserAliases.MaximumValue = int.MaxValue.ToString();
reqValDomainAliases.ErrorMessage = message;
valDomainAliases.ErrorMessage = message;
valDomainAliases.MaximumValue = int.MaxValue.ToString();
reqValDiskSpace.ErrorMessage = message;
valDomainDiskSpace.ErrorMessage = message;
valDomainDiskSpace.MaximumValue = int.MaxValue.ToString();
}
}
}

View file

@ -0,0 +1,429 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_EditDomain {
/// <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>
/// secFeatures control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secFeatures;
/// <summary>
/// FeaturesPanel 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 FeaturesPanel;
/// <summary>
/// featuresSection control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Features featuresSection;
/// <summary>
/// secSharing control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secSharing;
/// <summary>
/// SharingPanel 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 SharingPanel;
/// <summary>
/// sharingSection control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Sharing sharingSection;
/// <summary>
/// secThrottling control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secThrottling;
/// <summary>
/// ThrottlingPanel 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 ThrottlingPanel;
/// <summary>
/// throttlingSection control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Throttling throttlingSection;
/// <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>
/// lblDomainDiskSpace 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 lblDomainDiskSpace;
/// <summary>
/// txtSize 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 txtSize;
/// <summary>
/// valDomainDiskSpace 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 valDomainDiskSpace;
/// <summary>
/// reqValDiskSpace 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 reqValDiskSpace;
/// <summary>
/// lblDomainAliases 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 lblDomainAliases;
/// <summary>
/// txtDomainAliases 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 txtDomainAliases;
/// <summary>
/// valDomainAliases 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 valDomainAliases;
/// <summary>
/// reqValDomainAliases 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 reqValDomainAliases;
/// <summary>
/// lblUserQuota 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 lblUserQuota;
/// <summary>
/// txtUser 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 txtUser;
/// <summary>
/// valUser 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 valUser;
/// <summary>
/// reqValUser 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 reqValUser;
/// <summary>
/// lblUserAliasesQuota 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 lblUserAliasesQuota;
/// <summary>
/// txtUserAliases 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 txtUserAliases;
/// <summary>
/// valUserAliases 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 valUserAliases;
/// <summary>
/// reqValUserAliases 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 reqValUserAliases;
/// <summary>
/// lblMailingListsQuota 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 lblMailingListsQuota;
/// <summary>
/// txtMailingLists 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 txtMailingLists;
/// <summary>
/// valMailingLists 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 valMailingLists;
/// <summary>
/// reqValMailingLists 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 reqValMailingLists;
/// <summary>
/// lblPopRetreivalAccounts 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 lblPopRetreivalAccounts;
/// <summary>
/// txtPopRetreivalAccounts 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 txtPopRetreivalAccounts;
/// <summary>
/// valPopRetreivalAccounts 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 valPopRetreivalAccounts;
/// <summary>
/// reqPopRetreivalAccounts 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 reqPopRetreivalAccounts;
/// <summary>
/// lblMessageSizeQuota 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 lblMessageSizeQuota;
/// <summary>
/// txtMessageSize 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 txtMessageSize;
/// <summary>
/// valMessageSize 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 valMessageSize;
/// <summary>
/// reqValMessageSize 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 reqValMessageSize;
/// <summary>
/// lblRecipientsPerMessageQuota 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 lblRecipientsPerMessageQuota;
/// <summary>
/// txtRecipientsPerMessage 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 txtRecipientsPerMessage;
/// <summary>
/// valRecipientsPerMessage 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 valRecipientsPerMessage;
/// <summary>
/// reqValRecipientsPerMessage 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 reqValRecipientsPerMessage;
}
}

View file

@ -0,0 +1,69 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Features.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Features" %>
<table width="100%">
<tr>
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="lbShowcontentfilteringmenu" /></td>
<td>
<asp:CheckBox runat="server" ID="cbShowcontentfilteringmenu" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label2" meta:resourcekey="lbShowdomainaliasmenu" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbShowdomainaliasmenu" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label3" meta:resourcekey="lbShowlistmenu" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbShowlistmenu" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label4" meta:resourcekey="lbShowspammenu" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbShowspammenu" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label5" meta:resourcekey="lbShowDomainReports" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbShowDomainReports" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label6" meta:resourcekey="lbEnablePopRetreival" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnablePopRetreival" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label7" meta:resourcekey="lbEnableCatchAlls" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnableCatchAlls" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label8" meta:resourcekey="lbEnableIMAPRetreival" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnableIMAPRetreival" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label9" meta:resourcekey="lbEnableMailSigning" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnableEmailSigning" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label10" meta:resourcekey="lbEnableMailReports" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnableEmailReports" />
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label11" meta:resourcekey="lbEnableSyncML" runat="server" /></td>
<td>
<asp:CheckBox runat="server" ID="cbEnableSyncML" />
</td>
</tr>
</table>

View file

@ -0,0 +1,71 @@
// Copyright (c) 2015, 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 SmarterMail100_EditDomain_Features : WebsitePanelControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void SaveItem(MailDomain item)
{
item.ShowContentFilteringMenu = cbShowcontentfilteringmenu.Checked;
item.ShowDomainAliasMenu = cbShowdomainaliasmenu.Checked;
item.ShowListMenu = cbShowlistmenu.Checked;
item.ShowSpamMenu = cbShowspammenu.Checked;
item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS] = cbShowDomainReports.Checked.ToString();
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED] = cbEnablePopRetreival.Checked.ToString();
item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED] = cbEnableCatchAlls.Checked.ToString();
item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED] = cbEnableIMAPRetreival.ToString();
item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED] = cbEnableEmailSigning.ToString();
item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED] = cbEnableEmailReports.ToString();
item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED] = cbEnableSyncML.ToString();
}
public void BindItem(MailDomain item)
{
cbShowcontentfilteringmenu.Checked = item.ShowContentFilteringMenu;
cbShowdomainaliasmenu.Checked = item.ShowDomainAliasMenu;
cbShowlistmenu.Checked = item.ShowListMenu;
cbShowspammenu.Checked = item.ShowSpamMenu;
cbShowDomainReports.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS]);
cbEnablePopRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED]);
cbEnableCatchAlls.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED]);
cbEnableIMAPRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED]);
cbEnableEmailSigning.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED]);
cbEnableEmailReports.Checked = Convert.ToBoolean((item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED]));
cbEnableSyncML.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED]);
}
}
}

View file

@ -0,0 +1,213 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_EditDomain_Features {
/// <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>
/// cbShowcontentfilteringmenu 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 cbShowcontentfilteringmenu;
/// <summary>
/// Label2 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 Label2;
/// <summary>
/// cbShowdomainaliasmenu 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 cbShowdomainaliasmenu;
/// <summary>
/// Label3 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 Label3;
/// <summary>
/// cbShowlistmenu 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 cbShowlistmenu;
/// <summary>
/// Label4 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 Label4;
/// <summary>
/// cbShowspammenu 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 cbShowspammenu;
/// <summary>
/// Label5 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 Label5;
/// <summary>
/// cbShowDomainReports 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 cbShowDomainReports;
/// <summary>
/// Label6 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 Label6;
/// <summary>
/// cbEnablePopRetreival 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 cbEnablePopRetreival;
/// <summary>
/// Label7 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 Label7;
/// <summary>
/// cbEnableCatchAlls 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 cbEnableCatchAlls;
/// <summary>
/// Label8 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 Label8;
/// <summary>
/// cbEnableIMAPRetreival 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 cbEnableIMAPRetreival;
/// <summary>
/// Label9 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 Label9;
/// <summary>
/// cbEnableEmailSigning 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 cbEnableEmailSigning;
/// <summary>
/// Label10 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 Label10;
/// <summary>
/// cbEnableEmailReports 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 cbEnableEmailReports;
/// <summary>
/// Label11 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 Label11;
/// <summary>
/// cbEnableSyncML 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 cbEnableSyncML;
}
}

View file

@ -0,0 +1,27 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Sharing.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Sharing" %>
<table width="100%">
<tr>
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="cbGlobalAddressList"/></td>
<td><asp:CheckBox runat="server" ID="cbGlobalAddressList" /></td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label2" runat="server" meta:resourcekey="cbSharedCalendars" /></td>
<td><asp:CheckBox runat="server" ID="cbSharedCalendars" /></td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label3" runat="server" meta:resourcekey="cbSharedContacts" /></td>
<td><asp:CheckBox runat="server" ID="cbSharedContacts" /></td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label4" runat="server" meta:resourcekey="cbSharedFolders"/></td>
<td><asp:CheckBox runat="server" ID="cbSharedFolders" /></td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label5" runat="server" meta:resourcekey="cbSharedNotes" /></td>
<td><asp:CheckBox runat="server" ID="cbSharedNotes" /></td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="Label6" runat="server" meta:resourcekey="cbSharedTasks" /></td>
<td><asp:CheckBox runat="server" ID="cbSharedTasks" /></td>
</tr>
</table>

View file

@ -0,0 +1,63 @@
// Copyright (c) 2015, 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 SmarterMail100_EditDomain_Sharing : WebsitePanelControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void SaveItem(MailDomain item)
{
item.IsGlobalAddressList = cbGlobalAddressList.Checked;
item.SharedCalendars = cbSharedCalendars.Checked;
item.SharedContacts = cbSharedContacts.Checked;
item.SharedFolders = cbSharedFolders.Checked;
item.SharedNotes = cbSharedNotes.Checked;
item.SharedTasks = cbSharedTasks.Checked;
}
public void BindItem(MailDomain item)
{
cbGlobalAddressList.Checked = item.IsGlobalAddressList;
cbSharedCalendars.Checked = item.SharedCalendars;
cbSharedContacts.Checked = item.SharedContacts;
cbSharedFolders.Checked = item.SharedFolders;
cbSharedNotes.Checked = item.SharedNotes;
cbSharedTasks.Checked = item.SharedTasks;
}
}
}

View file

@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_EditDomain_Sharing {
/// <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>
/// cbGlobalAddressList 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 cbGlobalAddressList;
/// <summary>
/// Label2 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 Label2;
/// <summary>
/// cbSharedCalendars 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 cbSharedCalendars;
/// <summary>
/// Label3 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 Label3;
/// <summary>
/// cbSharedContacts 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 cbSharedContacts;
/// <summary>
/// Label4 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 Label4;
/// <summary>
/// cbSharedFolders 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 cbSharedFolders;
/// <summary>
/// Label5 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 Label5;
/// <summary>
/// cbSharedNotes 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 cbSharedNotes;
/// <summary>
/// Label6 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 Label6;
/// <summary>
/// cbSharedTasks 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 cbSharedTasks;
}
}

View file

@ -0,0 +1,45 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Throttling.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Throttling" %>
<table>
<tr>
<td align="right" width = "200"><asp:Label ID="lbMessagesPerHour" runat="server" meta:resourcekey="lbMessagesPerHour" /></td>
<td width = "100">
<asp:TextBox runat="server" ID="txtMessagesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" runat="server" ID="valMessagesPerHour" ControlToValidate="txtMessagesPerHour"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValMessagesPerHour" runat="server" ControlToValidate="txtMessagesPerHour"
Display="Dynamic" />
</td>
<td align="left" width = "10">
<asp:CheckBox runat="server" ID="cbMessagesPerHour" />
</td>
<td width = "50" align="left"><asp:Label ID="lbMessagesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
</tr>
<tr>
<td align="right" width = "200"><asp:Label ID="lbBandwidthPerHour" runat="server" meta:resourcekey="lbBandwidthPerHour" /></td>
<td width = "100">
<asp:TextBox runat="server" ID="txtBandwidthPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" runat="server" ID="valBandwidthPerHour" ControlToValidate="txtBandwidthPerHour"
MinimumValue="0" Display="Dynamic" />
<asp:RequiredFieldValidator ID="reqValBandwidth" runat="server" ControlToValidate="txtBandwidthPerHour"
Display="Dynamic" />
</td>
<td align="left" width = "10">
<asp:CheckBox runat="server" ID="cbBandwidthPerHour"/>
</td>
<td width = "50" align="left"><asp:Label ID="lbBandwidthPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
</tr>
<tr>
<td align="right" width = "200"><asp:Label ID="lbBouncesPerHour" runat="server" meta:resourcekey="lbBouncesPerHour" /></td>
<td width = "100">
<asp:TextBox runat="server" ID="txtBouncesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
<asp:RangeValidator Type="Integer" runat="server" ID="valBouncesPerHour" ControlToValidate="txtBouncesPerHour"
MinimumValue="0" Display="None" />
<asp:RequiredFieldValidator ID="reqValBouncesPerHour" runat="server" ControlToValidate="txtBouncesPerHour"
Display="None" />
</td>
<td align="left" width = "10">
<asp:CheckBox runat="server" ID="cbBouncesPerHour" />
</td>
<td width = "50" align="left"><asp:Label ID="lbBouncesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
</tr>
</table>

View file

@ -0,0 +1,79 @@
// Copyright (c) 2015, 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 SmarterMail100_EditDomain_Throttling : WebsitePanelControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
InitValidators();
}
public void SaveItem(MailDomain item)
{
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR] = txtMessagesPerHour.Text;
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED] = cbMessagesPerHour.Checked.ToString();
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR] = txtBandwidthPerHour.Text;
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED] = cbBandwidthPerHour.Checked.ToString();
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR] = txtBouncesPerHour.Text;
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED] = cbBouncesPerHour.Checked.ToString();
}
public void BindItem(MailDomain item)
{
txtMessagesPerHour.Text = item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR];
cbMessagesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED]);
txtBandwidthPerHour.Text = item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR];
cbBandwidthPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED]);
txtBouncesPerHour.Text = item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR];
cbBouncesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED]);
}
public void InitValidators()
{
string message = "*";
reqValMessagesPerHour.ErrorMessage = message;
valMessagesPerHour.ErrorMessage = message;
valMessagesPerHour.MaximumValue = int.MaxValue.ToString();
reqValBandwidth.ErrorMessage = message;
valBandwidthPerHour.ErrorMessage = message;
valBandwidthPerHour.MaximumValue = int.MaxValue.ToString();
reqValBouncesPerHour.ErrorMessage = message;
valBouncesPerHour.ErrorMessage = message;
valBouncesPerHour.MaximumValue = int.MaxValue.ToString();
}
}
}

View file

@ -0,0 +1,177 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_EditDomain_Throttling {
/// <summary>
/// lbMessagesPerHour 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 lbMessagesPerHour;
/// <summary>
/// txtMessagesPerHour 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 txtMessagesPerHour;
/// <summary>
/// valMessagesPerHour 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 valMessagesPerHour;
/// <summary>
/// reqValMessagesPerHour 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 reqValMessagesPerHour;
/// <summary>
/// cbMessagesPerHour 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 cbMessagesPerHour;
/// <summary>
/// lbMessagesPerHourEnabled 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 lbMessagesPerHourEnabled;
/// <summary>
/// lbBandwidthPerHour 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 lbBandwidthPerHour;
/// <summary>
/// txtBandwidthPerHour 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 txtBandwidthPerHour;
/// <summary>
/// valBandwidthPerHour 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 valBandwidthPerHour;
/// <summary>
/// reqValBandwidth 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 reqValBandwidth;
/// <summary>
/// cbBandwidthPerHour 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 cbBandwidthPerHour;
/// <summary>
/// lbBandwidthPerHourEnabled 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 lbBandwidthPerHourEnabled;
/// <summary>
/// lbBouncesPerHour 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 lbBouncesPerHour;
/// <summary>
/// txtBouncesPerHour 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 txtBouncesPerHour;
/// <summary>
/// valBouncesPerHour 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 valBouncesPerHour;
/// <summary>
/// reqValBouncesPerHour 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 reqValBouncesPerHour;
/// <summary>
/// cbBouncesPerHour 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 cbBouncesPerHour;
/// <summary>
/// lbBouncesPerHourEnabled 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 lbBouncesPerHourEnabled;
}
}

View file

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

View file

@ -0,0 +1,51 @@
// Copyright (c) 2015, 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 SmarterMail100_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 SmarterMail100_EditForwarding {
}
}

View file

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

View file

@ -0,0 +1,51 @@
// Copyright (c) 2015, 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 SmarterMail100_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 SmarterMail100_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,175 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditList.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditList" %>
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.WebPortal.Code.Controls" Assembly="WebsitePanel.WebPortal" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
<table cellSpacing="0" cellPadding="3" width="100%">
<tr>
<td class="SubHead" width="200" nowrap>
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="List Description:"></asp:Label>
</td>
<td class="normal" width="100%">
<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="Moderator"
runat="server" Height="25px" Width="200px">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="reqValModerator" runat="server" ControlToValidate="ddlListModerators"
Display="Dynamic" ErrorMessage = "*"/>
<wsp:DesktopContextValidator runat="server" ID="ctxValDomain" CssClass="QuickLabel" Display="Dynamic" EnableViewState="false"
OnEvaluatingContext="ctxValDomain_EvaluatingContext" EnableClientScript="false" meta:resourcekey="ctxValDomain" />
</td>
</tr>
<tr>
<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" Width="150px"></asp:TextBox>
<asp:CheckBox ID="chkPasswordEnabled" runat="server" meta:resourcekey="chkPasswordEnabled" Text="Enabled" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblPostingMode" runat="server" resourcekey="lblPostingMode" Text="Posting mode:"></asp:Label>
</td>
<td class="normal">
<asp:DropDownList id="ddlPostingMode" runat="server" resourcekey="ddlPostingMode" CssClass="NormalTextBox" Width="150px">
<asp:ListItem Value="AnyoneCanPost">Anyone</asp:ListItem>
<asp:ListItem Value="MembersCanPost">MembersOnly</asp:ListItem>
<asp:ListItem Value="ModeratorCanPost">ModeratorOnly</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<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" Width="150px"></asp:TextBox>
<asp:CheckBox ID="chkSubjectPrefixEnabled" runat="server" meta:resourcekey="chkSubjectPrefixEnabled" Text="Enabled" />
</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" Width="50px">0</asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblMaxRecipients" runat="server" meta:resourcekey="lblMaxRecipients" Text="Max Recipients per Message:"></asp:Label>
</td>
<td class="normal">
<asp:TextBox id="txtMaxRecipients" runat="server" CssClass="NormalTextBox" Width="50px">10</asp:TextBox>
</td>
</tr>
<tr>
<td class="Normal">&nbsp;</td>
</tr>
<tr>
<td width="200px" align="right>
<asp:Label ID="lblListOptions" runat="server" meta:resourcekey="lblListOptions" Text="List Options:"></asp:Label>
</td>
<td>
<asp:CheckBox ID="chkReplyToList" runat="server" meta:resourcekey="chkReplyToList" Text="Reply To List" />
</td>
<td class="Normal"></td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblListToAddress" runat="server" resourcekey="lblListToAddress"></asp:Label>
</td>
<td class="normal">
<asp:DropDownList id="ddlListToAddress" runat="server" resourcekey="ddlListToAddress" CssClass="NormalTextBox" Width="150px">
<asp:ListItem Value="DEFAULT">Default</asp:ListItem>
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
<asp:ListItem Value="SUBSCRIBERADDRESS">Subscriber Address</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblListFromAddress" runat="server" resourcekey="lblListFromAddress"></asp:Label>
</td>
<td class="normal">
<asp:DropDownList id="ddlListFromAddress" runat="server" resourcekey="ddlListFromAddress" CssClass="NormalTextBox" Width="150px">
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblListReplyToAddress" runat="server" resourcekey="lblListReplyToAddress"></asp:Label>
</td>
<td class="normal">
<asp:DropDownList id="ddlListReplyToAddress" runat="server" resourcekey="ddlListReplyToAddress" CssClass="NormalTextBox" Width="150px">
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="Normal">&nbsp;</td>
</tr>
<tr>
<td class="SubHead" vAlign="top">
<asp:Label ID="lblMembers" runat="server" meta:resourcekey="lblMembers" Text="Mailing list members:"></asp:Label>
</td>
<td vAlign="top">
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
</td>
</tr>
</table>
&nbsp
<wsp:collapsiblepanel id="AdditionalOptions" runat="server" targetcontrolid="pAdditionalOptions"
meta:resourcekey="AdditionalOptions" ></wsp:collapsiblepanel>
<asp:Panel runat="server" ID="pAdditionalOptions">
<table width="100%">
<tr>
<td width="200px" align="right"><asp:Label ID="lbDigestMode" runat="server" meta:resourcekey="lbDigestMode" /></td>
<td>
<asp:CheckBox runat="server" ID="cbDigestMode"/>
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="lbSendSubscribe" runat="server" meta:resourcekey="lbSendSubscribe" /></td>
<td>
<asp:CheckBox runat="server" ID="cbSendSubcsribe"/>
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="lbSendUnsubscribe" runat="server" meta:resourcekey="lbSendUnsubscribe" /></td>
<td>
<asp:CheckBox runat="server" ID="cbSendUnsubscribe"/>
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="lbAllowUnsubscribe" runat="server" meta:resourcekey="lbAllowUnsubscribe" /></td>
<td>
<asp:CheckBox runat="server" ID="cbAllowUnsubscribe"/>
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="lbDisableListcommand" runat="server" meta:resourcekey="lbDisableListcommand" /></td>
<td>
<asp:CheckBox runat="server" ID="cbDisableListcommand"/>
</td>
</tr>
<tr>
<td width="200px" align="right"><asp:Label ID="lbDisableSubscribecommand" runat="server" meta:resourcekey="lbDisableSubscribecommand" /></td>
<td>
<asp:CheckBox runat="server" ID="cbDisableSubscribecommand"/>
</td>
</tr>
</table>
</asp:Panel>

View file

@ -0,0 +1,210 @@
// Copyright (c) 2015, 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.Web.UI.WebControls;
using WebsitePanel.Providers.Mail;
using WebsitePanel.WebPortal.Code.Controls;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class SmarterMail100_EditList : WebsitePanelControlBase, IMailEditListControl
{
private string selectedModerator = null;
private string selectedListToAddress = null;
private string selectedListFromAddress = null;
private string selectedListReplyToAddress = null;
private string itemName = null;
private MailEditAddress ctrl = null;
protected void Page_Load(object sender, EventArgs e)
{
txtPassword.Attributes["value"] = txtPassword.Text;
BindListModerators();
}
public void BindItem(MailList item)
{
itemName = item.Name;
txtDescription.Text = item.Description;
if (String.IsNullOrEmpty(item.ModeratorAddress))
{
Utils.SelectListItem(ddlListModerators, GetLocalizedString("Text.SelectModerator"));
selectedModerator = GetLocalizedString("Text.SelectModerator");
}
else
{
Utils.SelectListItem(ddlListModerators, item.ModeratorAddress);
selectedModerator = item.ModeratorAddress;
}
chkReplyToList.Checked = (item.ReplyToMode == ReplyTo.RepliesToList);
Utils.SelectListItem(ddlPostingMode, item.PostingMode);
Utils.SelectListItem(ddlListToAddress, item.ListToAddress);
selectedListToAddress = item.ListToAddress;
Utils.SelectListItem(ddlListFromAddress, item.ListFromAddress);
selectedListFromAddress = item.ListFromAddress;
Utils.SelectListItem(ddlListReplyToAddress, item.ListReplyToAddress);
selectedListReplyToAddress = item.ListReplyToAddress;
txtPassword.Text = item.Password;
chkPasswordEnabled.Checked = item.RequirePassword;
cbDigestMode.Checked = item.DigestMode;
cbSendSubcsribe.Checked = item.SendSubscribe;
cbSendUnsubscribe.Checked = item.SendUnsubscribe;
cbAllowUnsubscribe.Checked = item.AllowUnsubscribe;
cbDisableListcommand.Checked = !item.DisableListcommand;
cbDisableSubscribecommand.Checked = !item.DisableSubscribecommand;
txtSubjectPrefix.Text = item.SubjectPrefix;
chkSubjectPrefixEnabled.Checked = item.EnableSubjectPrefix;
txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
txtMaxRecipients.Text = item.MaxRecipientsPerMessage.ToString();
// members
mailEditItems.Items = item.Members;
}
public void SaveItem(MailList item)
{
item.Description = txtDescription.Text;
if (ddlListModerators.SelectedValue == GetLocalizedString("Text.SelectModerator"))
{
item.ModeratorAddress = null;
}
else
{
item.ModeratorAddress = ddlListModerators.SelectedValue;
}
item.ReplyToMode = chkReplyToList.Checked ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
item.ListToAddress = ddlListToAddress.SelectedValue;
item.ListFromAddress = ddlListFromAddress.SelectedValue;
item.ListReplyToAddress = ddlListReplyToAddress.SelectedValue;
item.Password = txtPassword.Text;
item.RequirePassword = chkPasswordEnabled.Checked;
item.SubjectPrefix = txtSubjectPrefix.Text;
item.EnableSubjectPrefix = chkSubjectPrefixEnabled.Checked;
item.DigestMode = cbDigestMode.Checked;
item.SendSubscribe = cbSendSubcsribe.Checked;
item.SendUnsubscribe = cbSendUnsubscribe.Checked;
item.AllowUnsubscribe = cbAllowUnsubscribe.Checked;
item.DisableListcommand = !cbDisableListcommand.Checked;
item.DisableSubscribecommand = !cbDisableSubscribecommand.Checked;
item.MaxMessageSize = Int32.Parse(txtMaxMessageSize.Text);
item.MaxRecipientsPerMessage = Int32.Parse(txtMaxRecipients.Text);
item.Members = mailEditItems.Items;
ctrl = null;
}
public void BindListModerators()
{
string domainName = null;
if (!String.IsNullOrEmpty(itemName))
{
domainName = GetDomainName(itemName);
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
ddlListModerators.Items.Clear();
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
if (moderators != null)
foreach (MailAccount account in moderators)
{
if (GetDomainName(account.Name) == domainName)
{
if (ddlListModerators != null)
{
ddlListModerators.Items.Add(new ListItem(account.Name));
ddlListToAddress.Items.Add(new ListItem(account.Name));
ddlListFromAddress.Items.Add(new ListItem(account.Name));
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
}
}
}
Utils.SelectListItem(ddlListModerators, selectedModerator);
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
}
else
{
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
ddlListModerators.Items.Clear();
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
if (moderators != null)
foreach (MailAccount account in moderators)
{
if (ddlListModerators != null)
{
ddlListModerators.Items.Add(new ListItem(account.Name));
ddlListToAddress.Items.Add(new ListItem(account.Name));
ddlListFromAddress.Items.Add(new ListItem(account.Name));
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
}
}
Utils.SelectListItem(ddlListModerators, selectedModerator);
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
}
}
private string GetDomainName(string email)
{
return email.Substring(email.IndexOf("@") + 1);
}
protected void ctxValDomain_EvaluatingContext(object sender, DesktopValidationEventArgs e)
{
if (Parent != null) ctrl = (MailEditAddress)Parent.Parent.FindControl("emailAddress");
string moderator = ddlListModerators.SelectedValue;
if (ctrl != null)
{
if (String.Equals(GetDomainName(moderator), GetDomainName(ctrl.Email), StringComparison.InvariantCultureIgnoreCase))
{
e.ContextIsValid = true;
return;
}
}
e.ContextIsValid = false;
}
}
}

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 SmarterMail100_EditList {
/// <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>
/// ctxValDomain control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.WebPortal.Code.Controls.DesktopContextValidator ctxValDomain;
/// <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>
/// chkPasswordEnabled 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 chkPasswordEnabled;
/// <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>
/// 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>
/// chkSubjectPrefixEnabled 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 chkSubjectPrefixEnabled;
/// <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>
/// lblMaxRecipients 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 lblMaxRecipients;
/// <summary>
/// txtMaxRecipients 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 txtMaxRecipients;
/// <summary>
/// lblListOptions 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 lblListOptions;
/// <summary>
/// chkReplyToList 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 chkReplyToList;
/// <summary>
/// lblListToAddress 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 lblListToAddress;
/// <summary>
/// ddlListToAddress 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 ddlListToAddress;
/// <summary>
/// lblListFromAddress 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 lblListFromAddress;
/// <summary>
/// ddlListFromAddress 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 ddlListFromAddress;
/// <summary>
/// lblListReplyToAddress 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 lblListReplyToAddress;
/// <summary>
/// ddlListReplyToAddress 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 ddlListReplyToAddress;
/// <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>
/// AdditionalOptions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel AdditionalOptions;
/// <summary>
/// pAdditionalOptions 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 pAdditionalOptions;
/// <summary>
/// lbDigestMode 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 lbDigestMode;
/// <summary>
/// cbDigestMode 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 cbDigestMode;
/// <summary>
/// lbSendSubscribe 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 lbSendSubscribe;
/// <summary>
/// cbSendSubcsribe 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 cbSendSubcsribe;
/// <summary>
/// lbSendUnsubscribe 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 lbSendUnsubscribe;
/// <summary>
/// cbSendUnsubscribe 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 cbSendUnsubscribe;
/// <summary>
/// lbAllowUnsubscribe 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 lbAllowUnsubscribe;
/// <summary>
/// cbAllowUnsubscribe 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 cbAllowUnsubscribe;
/// <summary>
/// lbDisableListcommand 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 lbDisableListcommand;
/// <summary>
/// cbDisableListcommand 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 cbDisableListcommand;
/// <summary>
/// lbDisableSubscribecommand 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 lbDisableSubscribecommand;
/// <summary>
/// cbDisableSubscribecommand 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 cbDisableSubscribecommand;
}
}

View file

@ -0,0 +1,62 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_Settings" %>
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
<table cellpadding="7" cellspacing="0" width="100%">
<tr>
<td class="SubHead" nowrap width="200">
<asp:Label ID="lblServiceUrl" runat="server" meta:resourcekey="lblServiceUrl" Text="Web Services URL:"></asp:Label>
</td>
<td width="100%"><asp:TextBox Runat="server" ID="txtServiceUrl" CssClass="NormalTextBox" Width="200px"></asp:TextBox></td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblPublicIP" runat="server" meta:resourcekey="lblPublicIP" Text="Public IP Address:"></asp:Label>
</td>
<td>
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" UseAddressValueAsKey="true" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDomainsPath" runat="server" meta:resourcekey="lblDomainsPath" Text="Domains Root Folder:"></asp:Label>
</td>
<td>
<asp:TextBox Runat="server" ID="txtDomainsFolder" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblAdminLogin" runat="server" meta:resourcekey="lblAdminLogin" Text="Admin Login:"></asp:Label>
</td>
<td>
<asp:TextBox Runat="server" ID="txtUsername" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr id="rowPassword" runat="server">
<td class="SubHead">
<asp:Label ID="lblCurrPassword" runat="server" meta:resourcekey="lblCurrPassword" Text="Current Admin Password:"></asp:Label>
</td>
<td class="Normal">*******
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblAdminPassword" runat="server" meta:resourcekey="lblAdminPassword" Text="Admin Password:"></asp:Label>
</td>
<td>
<asp:TextBox Runat="server" ID="txtPassword" CssClass="NormalTextBox" Width="200px" TextMode="Password"></asp:TextBox>
</td>
</tr>
<tr>
<td></td>
<td><asp:CheckBox runat="server" ID="cbImportDomainAdmin" meta:resourcekey="cbImportDomainAdmin"/></td>
</tr>
<tr>
<td></td>
<td><asp:CheckBox runat="server" ID="cbInheritDefaultLimits" meta:resourcekey="cbInheritDefaultLimits"/></td>
</tr>
<tr>
<td></td>
<td><asp:CheckBox runat="server" ID="cbEnableDomainAdmin" meta:resourcekey="cbEnableDomainAdmin"/></td>
</tr>
</table>

View file

@ -0,0 +1,66 @@
// Copyright (c) 2015, 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.Specialized;
using WebsitePanel.Providers.Common;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class SmarterMail100_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindSettings(StringDictionary settings)
{
txtServiceUrl.Text = settings["ServiceUrl"];
ipAddress.AddressValue = settings["ServerIPAddress"];
txtDomainsFolder.Text = settings["DomainsPath"];
txtUsername.Text = settings["AdminUsername"];
ViewState["PWD"] = settings["AdminPassword"];
rowPassword.Visible = ((string)ViewState["PWD"]) != "";
cbImportDomainAdmin.Checked = Utils.ParseBool(settings[Constants.ImportDomainAdmin], false);
cbInheritDefaultLimits.Checked = Utils.ParseBool(settings[Constants.InheritDomainDefaultLimits], false);
cbEnableDomainAdmin.Checked = Utils.ParseBool(settings[Constants.EnableDomainAdministrators], false);
}
public void SaveSettings(StringDictionary settings)
{
settings["ServiceUrl"] = txtServiceUrl.Text.Trim();
settings["ServerIPAddress"] = ipAddress.AddressValue;
settings["DomainsPath"] = txtDomainsFolder.Text.Trim();
settings["AdminUsername"] = txtUsername.Text.Trim();
settings["AdminPassword"] = (txtPassword.Text.Length > 0) ? txtPassword.Text : (string)ViewState["PWD"];
settings[Constants.ImportDomainAdmin] = cbImportDomainAdmin.Checked.ToString();
settings[Constants.InheritDomainDefaultLimits] = cbInheritDefaultLimits.Checked.ToString();
settings[Constants.EnableDomainAdministrators] = cbEnableDomainAdmin.Checked.ToString();
}
}
}

View file

@ -0,0 +1,150 @@
//------------------------------------------------------------------------------
// <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 SmarterMail100_Settings {
/// <summary>
/// lblServiceUrl 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 lblServiceUrl;
/// <summary>
/// txtServiceUrl 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 txtServiceUrl;
/// <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>
/// lblDomainsPath 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 lblDomainsPath;
/// <summary>
/// txtDomainsFolder 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 txtDomainsFolder;
/// <summary>
/// lblAdminLogin 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 lblAdminLogin;
/// <summary>
/// txtUsername 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 txtUsername;
/// <summary>
/// rowPassword 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 rowPassword;
/// <summary>
/// lblCurrPassword 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 lblCurrPassword;
/// <summary>
/// lblAdminPassword 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 lblAdminPassword;
/// <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>
/// cbImportDomainAdmin 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 cbImportDomainAdmin;
/// <summary>
/// cbInheritDefaultLimits 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 cbInheritDefaultLimits;
/// <summary>
/// cbEnableDomainAdmin 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 cbEnableDomainAdmin;
}
}

View file

@ -0,0 +1,132 @@
<?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="btnApply.Text" xml:space="preserve">
<value>Apply</value>
</data>
<data name="ddlMailAccountActionsItem.Actions" xml:space="preserve">
<value>- Actions -</value>
</data>
<data name="ddlMailAccountActionsItem.Disable" xml:space="preserve">
<value>Disable</value>
</data>
<data name="ddlMailAccountActionsItem.Enable" xml:space="preserve">
<value>Enable</value>
</data>
</root>

View file

@ -0,0 +1,31 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MailAccountActions.ascx.cs" Inherits="WebsitePanel.Portal.MailAccountActions" %>
<script language="javascript">
function ShowProgress(btn) {
var action = $(btn).prev().val();
if (action === 1) {
ShowProgressDialog("Enabling mail account...");
} else if (action === 2) {
ShowProgressDialog("Disabling mail account...");
}
}
</script>
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
<ContentTemplate>
<asp:DropDownList ID="ddlMailAccountActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlWebsiteActions" AutoPostBack="True">
<asp:ListItem Value="0">Actions</asp:ListItem>
<asp:ListItem Value="1">Disable</asp:ListItem>
<asp:ListItem Value="2">Enable</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnApply" />
</Triggers>
</asp:UpdatePanel>

View file

@ -0,0 +1,109 @@
// Copyright (c) 2015, 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.Generic;
using System.Drawing;
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;
using Microsoft.Web.Services3.Referral;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
using WebsitePanel.Portal.UserControls;
using WebsitePanel.Providers;
using WebsitePanel.Providers.HostedSolution;
namespace WebsitePanel.Portal
{
public enum MailAccountActionTypes
{
None = 0,
Disable = 1,
Enable = 2,
}
public partial class MailAccountActions : ActionListControlBase<MailAccountActionTypes>
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override DropDownList ActionsList
{
get { return ddlMailAccountActions; }
}
protected override int DoAction(List<int> ids)
{
switch (SelectedAction)
{
case MailAccountActionTypes.Disable:
return ChangeMailAccountState(false, ids);
case MailAccountActionTypes.Enable:
return ChangeMailAccountState(true, ids);
}
return 0;
}
protected void btnApply_Click(object sender, EventArgs e)
{
switch (SelectedAction)
{
case MailAccountActionTypes.Disable:
case MailAccountActionTypes.Enable:
FireExecuteAction();
break;
}
}
private int ChangeMailAccountState(bool enable, List<int> ids)
{
foreach (var id in ids)
{
var mailAccount = ES.Services.MailServers.GetMailAccount(id);
mailAccount.Enabled = enable;
int result = ES.Services.MailServers.UpdateMailAccount(mailAccount);
if (result < 0)
return result;
}
return 0;
}
}
}

View file

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <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 {
public partial class MailAccountActions {
/// <summary>
/// tblActions 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 tblActions;
/// <summary>
/// ddlMailAccountActions 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 ddlMailAccountActions;
/// <summary>
/// btnApply 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.Button btnApply;
}
}

View file

@ -3,6 +3,7 @@
<%@ Register Src="ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %> <%@ Register Src="ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %>
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %> <%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
<%@ Register Src="WebsiteActions.ascx" TagName="WebsiteActions" TagPrefix="wsp" %> <%@ Register Src="WebsiteActions.ascx" TagName="WebsiteActions" TagPrefix="wsp" %>
<%@ Register Src="MailAccountActions.ascx" TagName="MailAccountActions" TagPrefix="wsp" %>
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script> <script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
@ -21,8 +22,12 @@
<div class="Right"> <div class="Right">
<table> <table>
<tr> <tr>
<%-- Action lists --%>
<td> <td>
<%-- Web Sites --%>
<wsp:WebsiteActions ID="websiteActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" /> <wsp:WebsiteActions ID="websiteActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
<%-- Mail Accounts --%>
<wsp:MailAccountActions ID="mailActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
</td> </td>
<td class="FormButtonsBarCleanSeparator"></td> <td class="FormButtonsBarCleanSeparator"></td>
<td> <td>

View file

@ -113,14 +113,8 @@ namespace WebsitePanel.Portal.UserControls
(PanelSecurity.SelectedUser.Role != UserRole.User) && chkRecursive.Checked; (PanelSecurity.SelectedUser.Role != UserRole.User) && chkRecursive.Checked;
gvItems.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator); gvItems.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
gvItems.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator); gvItems.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
if (QuotaName == "Web.Sites")
{ ShowActionList();
websiteActions.Visible = true;
}
else
{
websiteActions.Visible = false;
}
if (!IsPostBack) if (!IsPostBack)
{ {
@ -215,5 +209,23 @@ namespace WebsitePanel.Portal.UserControls
lnkView.Text = localizedLinkText != null ? localizedLinkText : ViewLinkText; lnkView.Text = localizedLinkText != null ? localizedLinkText : ViewLinkText;
} }
private void ShowActionList()
{
websiteActions.Visible = false;
mailActions.Visible = false;
switch (QuotaName)
{
case "Web.Sites":
websiteActions.Visible = true;
break;
case "Mail.Accounts":
ProviderInfo provider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, "Mail");
if (provider.EditorControl == "SmarterMail100")
mailActions.Visible = true;
break;
}
}
} }
} }

View file

@ -39,6 +39,15 @@ namespace WebsitePanel.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.WebsiteActions websiteActions; protected global::WebsitePanel.Portal.WebsiteActions websiteActions;
/// <summary>
/// mailActions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.MailAccountActions mailActions;
/// <summary> /// <summary>
/// searchBox control. /// searchBox control.
/// </summary> /// </summary>

View file

@ -229,6 +229,69 @@
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon> <DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.cs">
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain.ascx.cs">
<DependentUpon>SmarterMail100_EditDomain.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditDomain.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx.cs">
<DependentUpon>SmarterMail100_EditDomain_Features.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditDomain_Features.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx.cs">
<DependentUpon>SmarterMail100_EditDomain_Sharing.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditDomain_Sharing.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx.cs">
<DependentUpon>SmarterMail100_EditDomain_Throttling.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditDomain_Throttling.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditForwarding .ascx.cs">
<DependentUpon>SmarterMail100_EditForwarding .ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditForwarding .ascx.designer.cs">
<DependentUpon>SmarterMail100_EditForwarding .ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditGroup.ascx.cs">
<DependentUpon>SmarterMail100_EditGroup.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditGroup.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditGroup.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditList.ascx.cs">
<DependentUpon>SmarterMail100_EditList.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_EditList.ascx.designer.cs">
<DependentUpon>SmarterMail100_EditList.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_Settings.ascx.cs">
<DependentUpon>SmarterMail100_Settings.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ProviderControls\SmarterMail100_Settings.ascx.designer.cs">
<DependentUpon>SmarterMail100_Settings.ascx</DependentUpon>
</Compile>
<Compile Include="ProviderControls\Windows2012_Settings.ascx.cs"> <Compile Include="ProviderControls\Windows2012_Settings.ascx.cs">
<DependentUpon>Windows2012_Settings.ascx</DependentUpon> <DependentUpon>Windows2012_Settings.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
@ -908,6 +971,13 @@
<Compile Include="UserControls\DomainActions.ascx.designer.cs"> <Compile Include="UserControls\DomainActions.ascx.designer.cs">
<DependentUpon>DomainActions.ascx</DependentUpon> <DependentUpon>DomainActions.ascx</DependentUpon>
</Compile> </Compile>
<Compile Include="UserControls\MailAccountActions.ascx.cs">
<DependentUpon>MailAccountActions.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="UserControls\MailAccountActions.ascx.designer.cs">
<DependentUpon>MailAccountActions.ascx</DependentUpon>
</Compile>
<Compile Include="UserControls\WebsiteActions.ascx.cs"> <Compile Include="UserControls\WebsiteActions.ascx.cs">
<DependentUpon>WebsiteActions.ascx</DependentUpon> <DependentUpon>WebsiteActions.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
@ -4386,6 +4456,15 @@
<ItemGroup> <ItemGroup>
<Content Include="ApplyEnableHardQuotaFeature.ascx" /> <Content Include="ApplyEnableHardQuotaFeature.ascx" />
<Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" /> <Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditAccount.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditDomain.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditForwarding .ascx" />
<Content Include="ProviderControls\SmarterMail100_EditGroup.ascx" />
<Content Include="ProviderControls\SmarterMail100_EditList.ascx" />
<Content Include="ProviderControls\SmarterMail100_Settings.ascx" />
<Content Include="ProviderControls\Windows2012_Settings.ascx" /> <Content Include="ProviderControls\Windows2012_Settings.ascx" />
<Content Include="ExchangeServer\OrganizationDeletedUsers.ascx" /> <Content Include="ExchangeServer\OrganizationDeletedUsers.ascx" />
<Content Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx" /> <Content Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx" />
@ -4393,6 +4472,33 @@
<Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" /> <Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" />
<Content Include="RDSServersAddserver.ascx" /> <Content Include="RDSServersAddserver.ascx" />
<Content Include="RDSServers.ascx" /> <Content Include="RDSServers.ascx" />
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_Settings.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditAccount.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Features.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Sharing.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Throttling.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditForwarding.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditGroup.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditList.ascx.resx">
<SubType>Designer</SubType>
</Content>
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" /> <EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
<Content Include="RDS\AssignedRDSServers.ascx" /> <Content Include="RDS\AssignedRDSServers.ascx" />
<Content Include="RDS\AddRDSServer.ascx" /> <Content Include="RDS\AddRDSServer.ascx" />
@ -4507,6 +4613,7 @@
<Content Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx" /> <Content Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx" />
<Content Include="UserControls\ItemButtonPanel.ascx" /> <Content Include="UserControls\ItemButtonPanel.ascx" />
<Content Include="UserControls\DomainActions.ascx" /> <Content Include="UserControls\DomainActions.ascx" />
<Content Include="UserControls\MailAccountActions.ascx" />
<Content Include="UserControls\WebsiteActions.ascx" /> <Content Include="UserControls\WebsiteActions.ascx" />
<Content Include="UserControls\UserActions.ascx" /> <Content Include="UserControls\UserActions.ascx" />
<Content Include="UserOrganization.ascx" /> <Content Include="UserOrganization.ascx" />
@ -4579,6 +4686,7 @@
<Content Include="PhoneNumbersEditPhoneNumber.ascx" /> <Content Include="PhoneNumbersEditPhoneNumber.ascx" />
<Content Include="UserControls\App_LocalResources\UserActions.ascx.resx" /> <Content Include="UserControls\App_LocalResources\UserActions.ascx.resx" />
<Content Include="UserControls\App_LocalResources\DomainActions.ascx.resx" /> <Content Include="UserControls\App_LocalResources\DomainActions.ascx.resx" />
<Content Include="UserControls\App_LocalResources\MailAccountActions.ascx.resx" />
<EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" /> <EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>