This commit is contained in:
dev_amdtel 2014-08-19 17:51:22 +04:00
commit 9fc94fbcb9
80 changed files with 6531 additions and 91 deletions

View file

@ -4463,3 +4463,46 @@ BEGIN
UPDATE [dbo].[ServiceItemTypes] SET [Suspendable] = 1 WHERE [ItemTypeID] = 38 AND [GroupID] = 23 UPDATE [dbo].[ServiceItemTypes] SET [Suspendable] = 1 WHERE [ItemTypeID] = 38 AND [GroupID] = 23
END END
GO GO
/* ICE Warp */
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'IceWarp')
BEGIN
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (160, 4, N'IceWarp', N'IceWarp Mail Server', N'WebsitePanel.Providers.Mail.IceWarp, WebsitePanel.Providers.Mail.IceWarp', N'IceWarp', NULL)
END
GO
/* SQL 2014 Provider */
IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'MsSQL2014')
BEGIN
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController], [ShowGroup]) VALUES (46, N'MsSQL2014', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController', 1)
END
ELSE
BEGIN
UPDATE [dbo].[ResourceGroups] SET [ShowGroup] = 1 WHERE [GroupName] = 'MsSQL2014'
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft SQL Server 2014')
BEGIN
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (1203, 46, N'MsSQL', N'Microsoft SQL Server 2014', N'WebsitePanel.Providers.Database.MsSqlServer2014, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (39, 46, N'MsSQL2014Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1)
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 46, N'MsSQL2014User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (470, 46, 1, N'MsSQL2014.Databases', N'Databases', 2, 0, 39, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (471, 46, 2, N'MsSQL2014.Users', N'Users', 2, 0, 40, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (472, 46, 3, N'MsSQL2014.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (473, 46, 5, N'MsSQL2014.Backup', N'Database Backups', 1, 0, NULL, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (474, 46, 6, N'MsSQL2014.Restore', N'Database Restores', 1, 0, NULL, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (475, 46, 7, N'MsSQL2014.Truncate', N'Database Truncate', 1, 0, NULL, NULL)
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (476, 46, 4, N'MsSQL2014.MaxLogSize', N'Max Log Size', 3, 0, NULL, NULL)
END
ELSE
BEGIN
UPDATE [dbo].[Providers] SET [DisableAutoDiscovery] = NULL, GroupID = 46 WHERE [DisplayName] = 'Microsoft SQL Server 2014'
END
GO
/*This should be [DefaultValue]= N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MsSQL2014=SQL Server 2014;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' but the field is not large enough!! */
UPDATE [dbo].[ScheduleTaskParameters] SET [DefaultValue]= N'MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MsSQL2014=SQL Server 2014;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' WHERE [TaskID]= 'SCHEDULE_TASK_BACKUP_DATABASE' AND [ParameterID]='DATABASE_GROUP'
GO

View file

@ -39,6 +39,7 @@ namespace WebsitePanel.EnterpriseServer
public const string MsSql2005 = "MsSQL2005"; public const string MsSql2005 = "MsSQL2005";
public const string MsSql2008 = "MsSQL2008"; public const string MsSql2008 = "MsSQL2008";
public const string MsSql2012 = "MsSQL2012"; public const string MsSql2012 = "MsSQL2012";
public const string MsSql2014 = "MsSQL2014";
public const string MySql5 = "MySQL5"; public const string MySql5 = "MySQL5";
public const string Dns = "DNS"; public const string Dns = "DNS";
public const string Statistics = "Statistics"; public const string Statistics = "Statistics";

View file

@ -482,6 +482,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
@ -1999,6 +2000,7 @@ namespace WebsitePanel.EnterpriseServer
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2005); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2005);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2008); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2008);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2012); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2012);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2014);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql4); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql4);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql5); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql5);

View file

@ -1780,6 +1780,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.Statistics, domain, "");
@ -2338,6 +2339,7 @@ namespace WebsitePanel.EnterpriseServer
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2005, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2005, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2008, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2008, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2012, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2012, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MsSql2014, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql4, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql4, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql5, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.MySql5, domain, "");
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Statistics, domain, ""); ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Statistics, domain, "");

View file

@ -262,7 +262,8 @@ namespace WebsitePanel.EnterpriseServer
//if (context.Groups.ContainsKey(ResourceGroups.MsSql2000) || //if (context.Groups.ContainsKey(ResourceGroups.MsSql2000) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2005) || // context.Groups.ContainsKey(ResourceGroups.MsSql2005) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2008) || // context.Groups.ContainsKey(ResourceGroups.MsSql2008) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2012)) // context.Groups.ContainsKey(ResourceGroups.MsSql2012) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2014))
//{ //{
// appsFilter.AddRange(SupportedAppDependencies.MSSQL_DATABASE); // appsFilter.AddRange(SupportedAppDependencies.MSSQL_DATABASE);
//} //}
@ -496,6 +497,7 @@ namespace WebsitePanel.EnterpriseServer
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005) || context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008) || context.Groups.ContainsKey(ResourceGroups.MsSql2008)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2012) || context.Groups.ContainsKey(ResourceGroups.MsSql2012)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2014)
|| context.Groups.ContainsKey(ResourceGroups.MySql4) || context.Groups.ContainsKey(ResourceGroups.MySql4)
|| context.Groups.ContainsKey(ResourceGroups.MySql5))) || context.Groups.ContainsKey(ResourceGroups.MySql5)))
result.ErrorCodes.Add(GalleryErrors.DatabaseRequired); result.ErrorCodes.Add(GalleryErrors.DatabaseRequired);
@ -505,7 +507,8 @@ namespace WebsitePanel.EnterpriseServer
&& !(context.Groups.ContainsKey(ResourceGroups.MsSql2000) && !(context.Groups.ContainsKey(ResourceGroups.MsSql2000)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005) || context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008) || context.Groups.ContainsKey(ResourceGroups.MsSql2008)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2012))) || context.Groups.ContainsKey(ResourceGroups.MsSql2012)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2014)))
result.ErrorCodes.Add(GalleryErrors.SQLRequired); result.ErrorCodes.Add(GalleryErrors.SQLRequired);
// MySQL // MySQL

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,47 @@
// Copyright (c) 2014, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
namespace WebsitePanel.Providers.Database
{
public class MsSqlServer2014 : MsSqlServer2005
{
public override bool IsInstalled()
{
return CheckVersion("12.");
}
public override void TruncateDatabase(string databaseName)
{
SqlDatabase database = GetDatabase(databaseName);
ExecuteNonQuery(String.Format(@"USE [{0}];DBCC SHRINKFILE ('{1}', 1);",
databaseName, database.LogName));
}
}
}

View file

@ -66,6 +66,7 @@
<Compile Include="MsSqlServer2005.cs" /> <Compile Include="MsSqlServer2005.cs" />
<Compile Include="MsSqlServer2008.cs" /> <Compile Include="MsSqlServer2008.cs" />
<Compile Include="MsSqlServer2012.cs" /> <Compile Include="MsSqlServer2012.cs" />
<Compile Include="MsSqlServer2014.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MsSqlServer.cs" /> <Compile Include="MsSqlServer.cs" />
</ItemGroup> </ItemGroup>

View file

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Database.SqlServer", "WebsitePanel.Providers.Database.SqlServer.csproj", "{3744791D-C7B5-4818-8521-78EB5261CB34}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3744791D-C7B5-4818-8521-78EB5261CB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3744791D-C7B5-4818-8521-78EB5261CB34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3744791D-C7B5-4818-8521-78EB5261CB34}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3744791D-C7B5-4818-8521-78EB5261CB34}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

@ -111,7 +111,7 @@
<!--Lync--> <!--Lync-->
<Control key="lync_users" general_key="" /> <Control key="lync_users"/>
<Control key="create_new_lync_user" general_key="lync_users" /> <Control key="create_new_lync_user" general_key="lync_users" />
<Control key="edit_lync_user" general_key="lync_users" /> <Control key="edit_lync_user" general_key="lync_users" />

View file

@ -57,6 +57,7 @@
<MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/> <MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/>
<MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/> <MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/>
<MenuItem pageID="SpaceMsSql2012" resourceGroup="MsSQL2012"/> <MenuItem pageID="SpaceMsSql2012" resourceGroup="MsSQL2012"/>
<MenuItem pageID="SpaceMsSql2014" resourceGroup="MsSQL2014"/>
<MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/> <MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/>
<MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/> <MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/>
</MenuItems> </MenuItems>
@ -115,6 +116,7 @@
<Icon pageID="SpaceMsSql2005" resourceGroup="MsSQL2005" imageUrl="icons/mssql_48.png"/> <Icon pageID="SpaceMsSql2005" resourceGroup="MsSQL2005" imageUrl="icons/mssql_48.png"/>
<Icon pageID="SpaceMsSql2008" resourceGroup="MsSQL2008" imageUrl="icons/mssql_48.png"/> <Icon pageID="SpaceMsSql2008" resourceGroup="MsSQL2008" imageUrl="icons/mssql_48.png"/>
<Icon pageID="SpaceMsSql2012" resourceGroup="MsSQL2012" imageUrl="icons/mssql_48.png"/> <Icon pageID="SpaceMsSql2012" resourceGroup="MsSQL2012" imageUrl="icons/mssql_48.png"/>
<Icon pageID="SpaceMsSql2014" resourceGroup="MsSQL2014" imageUrl="icons/mssql_48.png"/>
<Icon pageID="SpaceMySql4" resourceGroup="MySQL4" imageUrl="icons/mysql_48.png"/> <Icon pageID="SpaceMySql4" resourceGroup="MySQL4" imageUrl="icons/mysql_48.png"/>
<Icon pageID="SpaceMySql5" resourceGroup="MySQL5" imageUrl="icons/mysql_48.png"/> <Icon pageID="SpaceMySql5" resourceGroup="MySQL5" imageUrl="icons/mysql_48.png"/>
<Icon pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC" imageUrl="icons/odbc_48.png"/> <Icon pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC" imageUrl="icons/odbc_48.png"/>

View file

@ -417,6 +417,29 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceMsSql2014" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2014Databases" icon="mssql_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2014" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2014Users" icon="db_user_48.png" readOnlyRoles="PlatformCSR,ResellerCSR">
<Settings>
<Add name="GroupName" value="MsSQL2014" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMySql4" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"> <Page name="SpaceMySql4" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">

View file

@ -287,6 +287,12 @@
</data> </data>
<data name="PageTitle.SpaceMsSql2012" xml:space="preserve"> <data name="PageTitle.SpaceMsSql2012" xml:space="preserve">
<value>{user} - {space} - SQL Server 2012</value> <value>{user} - {space} - SQL Server 2012</value>
</data>
<data name="PageName.SpaceMsSql2014" xml:space="preserve">
<value>SQL Server 2014</value>
</data>
<data name="PageTitle.SpaceMsSql2014" xml:space="preserve">
<value>{user} - {space} - SQL Server 2014</value>
</data> </data>
<data name="PageTitle.SpaceMsSql2005" xml:space="preserve"> <data name="PageTitle.SpaceMsSql2005" xml:space="preserve">
<value>{user} - {space} - SQL Server 2005</value> <value>{user} - {space} - SQL Server 2005</value>

View file

@ -1854,6 +1854,24 @@
<data name="Quota.MsSQL2012.Users" xml:space="preserve"> <data name="Quota.MsSQL2012.Users" xml:space="preserve">
<value>Users</value> <value>Users</value>
</data> </data>
<data name="Quota.MsSQL2014.Backup" xml:space="preserve">
<value>Database Backups</value>
</data>
<data name="Quota.MsSQL2014.Databases" xml:space="preserve">
<value>Databases</value>
</data>
<data name="Quota.MsSQL2014.MaxDatabaseSize" xml:space="preserve">
<value>Max Database Size, MB</value>
</data>
<data name="Quota.MsSQL2014.Restore" xml:space="preserve">
<value>Database Restores</value>
</data>
<data name="Quota.MsSQL2014.Truncate" xml:space="preserve">
<value>Database Truncate</value>
</data>
<data name="Quota.MsSQL2014.Users" xml:space="preserve">
<value>Users</value>
</data>
<data name="Quota.MySQL5.Backup" xml:space="preserve"> <data name="Quota.MySQL5.Backup" xml:space="preserve">
<value>Database Backups</value> <value>Database Backups</value>
</data> </data>
@ -1905,6 +1923,9 @@
<data name="ResourceGroup.MsSQL2012" xml:space="preserve"> <data name="ResourceGroup.MsSQL2012" xml:space="preserve">
<value>SQL Server 2012</value> <value>SQL Server 2012</value>
</data> </data>
<data name="ResourceGroup.MsSQL2014" xml:space="preserve">
<value>SQL Server 2014</value>
</data>
<data name="Quota.OS.MinimumTaskInterval" xml:space="preserve"> <data name="Quota.OS.MinimumTaskInterval" xml:space="preserve">
<value>Minimum Tasks Interval, minutes</value> <value>Minimum Tasks Interval, minutes</value>
</data> </data>
@ -2100,6 +2121,12 @@
<data name="ServiceItemType.MsSQL2012User" xml:space="preserve"> <data name="ServiceItemType.MsSQL2012User" xml:space="preserve">
<value>MS SQL 2012 User</value> <value>MS SQL 2012 User</value>
</data> </data>
<data name="ServiceItemType.MsSQL2014Database" xml:space="preserve">
<value>MS SQL 2014 Database</value>
</data>
<data name="ServiceItemType.MsSQL2014User" xml:space="preserve">
<value>MS SQL 2014 User</value>
</data>
<data name="ServiceItemType.MySQL4Database" xml:space="preserve"> <data name="ServiceItemType.MySQL4Database" xml:space="preserve">
<value>MySQL 4 Database</value> <value>MySQL 4 Database</value>
</data> </data>
@ -3274,6 +3301,9 @@
<data name="Quota.MsSQL2012.MaxLogSize" xml:space="preserve"> <data name="Quota.MsSQL2012.MaxLogSize" xml:space="preserve">
<value>Max Log Size, MB</value> <value>Max Log Size, MB</value>
</data> </data>
<data name="Quota.MsSQL2014.MaxLogSize" xml:space="preserve">
<value>Max Log Size, MB</value>
</data>
<data name="Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS" xml:space="preserve"> <data name="Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS" xml:space="preserve">
<value>Error updating mailbox permissions. See audit log for more details.</value> <value>Error updating mailbox permissions. See audit log for more details.</value>
</data> </data>
@ -4834,6 +4864,9 @@
<data name="ReportResourceGroup.MsSQL2012" xml:space="preserve"> <data name="ReportResourceGroup.MsSQL2012" xml:space="preserve">
<value>SQL Server 2012</value> <value>SQL Server 2012</value>
</data> </data>
<data name="ReportResourceGroup.MsSQL2014" xml:space="preserve">
<value>SQL Server 2014</value>
</data>
<data name="WebAppGallery.ApplicationInstallationError" xml:space="preserve"> <data name="WebAppGallery.ApplicationInstallationError" xml:space="preserve">
<value>Error while install application pack</value> <value>Error while install application pack</value>
</data> </data>

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,6 +33,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,6 +33,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,6 +33,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,6 +33,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,7 +33,11 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">
<wsp:UserSpaceBreadcrumb ID="breadcrumb" runat="server"/> <wsp:UserSpaceBreadcrumb ID="breadcrumb" runat="server"/>
</div> </div>

View file

@ -19,15 +19,15 @@
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
</table> </table>
</div> </div>
<div id="TopMenu"> <div id="TopMenu">
<wsp:TopMenu ID="menu" runat="server" /> <wsp:TopMenu ID="menu" runat="server" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="ContentOneColumn"> <div id="ContentOneColumn">

View file

@ -20,9 +20,6 @@
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -31,6 +28,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

View file

@ -20,9 +20,6 @@
<td class="Logo" rowspan="2"> <td class="Logo" rowspan="2">
<wsp:Logo ID="logo" runat="server" /> <wsp:Logo ID="logo" runat="server" />
</td> </td>
<td class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</td>
</tr> </tr>
<tr> <tr>
<td class="Search"> <td class="Search">
@ -36,6 +33,9 @@
<wsp:TopMenu ID="leftMenu" runat="server" Align="left" /> <wsp:TopMenu ID="leftMenu" runat="server" Align="left" />
<asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder> <asp:PlaceHolder ID="LeftPane" runat="server"></asp:PlaceHolder>
<wsp:TopMenu ID="rightMenu" runat="server" Align="right" /> <wsp:TopMenu ID="rightMenu" runat="server" Align="right" />
<div class="Account">
<wsp:SignedInUser ID="signedInUser" runat="server" />
</div>
</div> </div>
<div id="Top"> <div id="Top">

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

View file

@ -1,10 +1,11 @@
.TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren {} .TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren {}
.TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span {height:auto; line-height:20px; padding:0; background:none; color:#333; font-size:13px; line-height:34px; text-transform:capitalize;} .TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span {height:auto; line-height:20px; padding:0; background:none; color:#333; font-size:13px; line-height:34px; text-transform:capitalize;}
.MenuHeader {float:left; position:relative; display:block; background-image:url('/g/icons.png'); background-repeat:no-repeat; line-height:74px; text-transform:uppercase; font-size:12px; color:#fff; overflow:hidden; padding:0 22px 0 34px; filter:alpha(opacity=70); opacity:0.7; cursor:pointer;} .MenuHeader {float:left; position:relative; display:block; background-image:url('/g/icons.png'); background-repeat:no-repeat; line-height:74px; text-transform:uppercase; font-size:12px; color:#fff; overflow:hidden; padding:0 22px 0 34px; filter:alpha(opacity=70); opacity:0.7; cursor:pointer;}
.MenuHeader:hover {filter:alpha(opacity=100); opacity:1;} .MenuHeader:hover {filter:alpha(opacity=100); opacity:1;}
.TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span:after {content:'?'; float:right; margin-right:10px;} .TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span:after {content:''; float:right; margin-right:10px;}
.TopMenu ul.AspNet-Menu li {float:left; position:relative;} .TopMenu ul.AspNet-Menu li {float:left; position:relative;}
.TopMenu ul.AspNet-Menu li a, .TopMenu ul.AspNet-Menu li span {display:block; background-image:url('/g/icons.png'); background-repeat:no-repeat; line-height:40px; text-transform:uppercase; font-size:12px; color:#fff; overflow:hidden; padding:0 22px 0 34px; filter:alpha(opacity=90); opacity:0.9; cursor:pointer;} .TopMenu ul.AspNet-Menu li a, .TopMenu ul.AspNet-Menu li span {display:block; background-image:url('/g/icons.png'); background-repeat:no-repeat; line-height:40px; text-transform:uppercase; font-size:12px; color:#fff; overflow:hidden; padding:0 22px 0 34px; filter:alpha(opacity=90); opacity:0.9; cursor:pointer;}
.TopMenu ul.AspNet-Menu li:first-child a {padding:0 0 0 0;}
.TopMenu ul.AspNet-Menu li a:hover, .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover, .TopMenu ul.AspNet-Menu li span:hover {filter:alpha(opacity=100); opacity:1;} .TopMenu ul.AspNet-Menu li a:hover, .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover, .TopMenu ul.AspNet-Menu li span:hover {filter:alpha(opacity=100); opacity:1;}
.TopMenu ul.AspNet-Menu li span {} .TopMenu ul.AspNet-Menu li span {}
.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul li {text-align:left; clear:both; text-indent:10px; color:#777; margin:0 0 0 5px;} .TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul li {text-align:left; clear:both; text-indent:10px; color:#777; margin:0 0 0 5px;}
@ -20,12 +21,12 @@
.TopMenu ul.AspNet-Menu ul ul {top: -1em z-index: 502;} .TopMenu ul.AspNet-Menu ul ul {top: -1em z-index: 502;}
.TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span img {border-style:None; height:16px; width:16px; border-width:0px; padding-right: 3px; float:left; position:relative;} .TopMenu ul.AspNet-Menu li ul li.AspNet-Menu-WithChildren span img {border-style:None; height:16px; width:16px; border-width:0px; padding-right: 3px; float:left; position:relative;}
.TopMenu li.AspNet-Menu-Leaf a, .TopMenu li.AspNet-Menu-Leaf span {} .TopMenu li.AspNet-Menu-Leaf a, .TopMenu li.AspNet-Menu-Leaf span {}
.TopMenu li.AspNet-Menu-Leaf a img {border-style:None; height:16px; width:16px; border-width:0px; padding-right: 3px; position:relative;} .TopMenu li.AspNet-Menu-Leaf a img {display:inline-block; vertical-align:middle; margin:0 5px 0 5px;}
.TopMenu ul.AspNet-Menu li:hover a, .TopMenu ul.AspNet-Menu li:hover span {} .TopMenu ul.AspNet-Menu li:hover a, .TopMenu ul.AspNet-Menu li:hover span {}
.TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover a, .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover span {} .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover a, .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover span {}
.TopMenu ul.AspNet-Menu li ul li {margin: 0px; width: 100%;} .TopMenu ul.AspNet-Menu li ul li {margin: 0px; width: 100%;}
/*.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul:before {width:0; height:0; position:absolute; content:" "; top:-8px; left:50%; margin-left:-8px; border-style:solid; border-width:0 8px 8px 8px; border-color:transparent transparent #fff transparent;}*/ /*.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul:before {width:0; height:0; position:absolute; content:" "; top:-8px; left:50%; margin-left:-8px; border-style:solid; border-width:0 8px 8px 8px; border-color:transparent transparent #fff transparent;}*/
.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul {position: absolute; top: 100%; left: 0; z-index: 1000; float: left; min-width: 160px; padding: 5px 10px 5px 0; margin: -20px 0 0 0; list-style: none; font-size: 14px; background-color: #FFF; border: 1px solid #CCC; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box;} .TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul {position: absolute; top: 100%; left: 0; z-index: 1000; float: left; min-width: 160px; padding: 5px 10px 5px 0; margin: -10px 0 0 0; list-style: none; font-size: 14px; background-color: #FFF; border: 1px solid #CCC; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box;}
.LeftMenu {font-size: 8pt;} .LeftMenu {font-size: 8pt;}
.LeftMenu ul {background-color: #D1E9FF;} .LeftMenu ul {background-color: #D1E9FF;}
.LeftMenu ul.AspNet-Menu {width: 190px;} .LeftMenu ul.AspNet-Menu {width: 190px;}

View file

@ -2,6 +2,7 @@
html, body, div, form, fieldset, legend, label, ul, li {margin:0; padding:0;} html, body, div, form, fieldset, legend, label, ul, li {margin:0; padding:0;}
table {border-collapse:collapse; border-spacing:0;} table {border-collapse:collapse; border-spacing:0;}
tr, td, th {padding:0;} tr, td, th {padding:0;}
td{vertical-align:top;}
img {border:0;} img {border:0;}
ul, ol, li {list-style:none;} ul, ol, li {list-style:none;}
a {text-decoration:none;} a {text-decoration:none;}
@ -37,9 +38,10 @@ ul.LinksList li a {display:block; line-height:30px;}
.IconsBlock {margin-bottom:20px;} .IconsBlock {margin-bottom:20px;}
.IconsTitle {padding:5px; font-size:26px; font-weight:300;} .IconsTitle {padding:5px; font-size:26px; font-weight:300;}
.IconsTitle a {color:#428bca;} .IconsTitle a {color:#428bca;}
.Icon {width:125px; padding:15px 0; border:solid 1px transparent; text-align:center; vertical-align:top; font-size:13px;} .Icon {width:125px; border:solid 1px transparent; text-align:center; vertical-align:top; font-size:13px; margin-top:10px;}
.Icon.Hover {cursor:pointer; border-color:#ffd349; background:#ffde77;} .Icon.Hover {cursor:pointer; border-color:#ffd349; background:#ffde77;}
.Icon a {display:block; color:#333; padding:0 15px;} .Icon a {display:block; color:#333;}
.Icon > a + br + a {padding: 0 0 10px 0;}
.Icon a + br {display:none;} .Icon a + br {display:none;}
.IconMenu {position:absolute; visibility:hidden; cursor:pointer; border:1px solid #ffd349; background:#ffde77; font-size:9pt; margin:40px 0 0 -15px; min-width:150px;} .IconMenu {position:absolute; visibility:hidden; cursor:pointer; border:1px solid #ffd349; background:#ffde77; font-size:9pt; margin:40px 0 0 -15px; min-width:150px;}
.IconMenu ul {display:block; list-style:none; margin:1px; padding:0px;} .IconMenu ul {display:block; list-style:none; margin:1px; padding:0px;}
@ -70,6 +72,7 @@ a.FileManagerTreeNode:visited, a.FileManagerTreeNodeSelected:visited {}
a.FileManagerTreeNode:active, a.FileManagerTreeNodeSelected:active {} a.FileManagerTreeNode:active, a.FileManagerTreeNodeSelected:active {}
a.FileManagerTreeNode:hover, a.FileManagerTreeNodeSelected:hover {background:#f5f5f5;} a.FileManagerTreeNode:hover, a.FileManagerTreeNodeSelected:hover {background:#f5f5f5;}
.FormButtonsBar + .NormalGridView .AspNet-GridView {margin-bottom:15px;} .FormButtonsBar + .NormalGridView .AspNet-GridView {margin-bottom:15px;}
/*.FormButtonsBar + .NormalGridView .AspNet-GridView table tbody tr td {border:none; padding:0;}*/ /*.FormButtonsBar + .NormalGridView .AspNet-GridView table tbody tr td {border:none; padding:0;}*/
/* text input */ /* text input */
input.NormalTextBox, input.LoginTextBox, input.HugeTextBox, input.Huge, input[type=text], input[type=password] {/*width:auto !important;*/ height:32px; line-height:32px; padding:0 0 0 3px; margin:0 0 4px 0; font-family:inherit; font-size:inherit; color:inherit; background:#fff; border: 1px solid #ccc;} input.NormalTextBox, input.LoginTextBox, input.HugeTextBox, input.Huge, input[type=text], input[type=password] {/*width:auto !important;*/ height:32px; line-height:32px; padding:0 0 0 3px; margin:0 0 4px 0; font-family:inherit; font-size:inherit; color:inherit; background:#fff; border: 1px solid #ccc;}
@ -96,6 +99,7 @@ input[type=image] {margin-right:4px;}
{padding:0; line-height:13px;} {padding:0; line-height:13px;}
.FormRightIcon {display:none;} .FormRightIcon {display:none;}
.FormButtonsBar {clear:both; margin:10px 0 20px 0; text-align:center; min-height:34px;} .FormButtonsBar {clear:both; margin:10px 0 20px 0; text-align:center; min-height:34px;}
.FormButtonsBar.UserSpaces {margin: -50px 80px 20px 0;text-align: right;}
.Small {font-size:9pt;} .Small {font-size:9pt;}
.Small span {color:#888;} .Small span {color:#888;}
.Small b {color:#87c442; font-weight:300;} .Small b {color:#87c442; font-weight:300;}

View file

@ -14,9 +14,14 @@ body {font-family:'Segoe UI','Open Sans',Arial; color:#333; margin:0px; padding:
.SearchQuery {} .SearchQuery {}
#Header .Account {text-align:right; padding:3px 6px 0 0;} #Header .Account {text-align:right; padding:3px 6px 0 0;}
#TopMenu {position:relative; width:100%; min-width:880px; height:40px; background:#2e8bcc; z-index:99;} #TopMenu {position:relative; width:100%; min-width:880px; height:40px; background:#2e8bcc; z-index:99;}
#TopMenu .Account { float:right; color: #ffffff; height:100%;}
#TopMenu .Account div { padding-top:8px;}
#TopMenu .Account div a{ color: #ffffff;}
#TopMenu .Account div input{ display:inline; vertical-align:middle;}
#Breadcrumb {margin:10px;} #Breadcrumb {margin:10px;}
#Breadcrumb .Path {padding: 10px 5px 12px 25px; margin-bottom:20px; background-color:#f5f5f5;} #Breadcrumb .Path {padding: 10px 5px 12px 25px; margin-bottom:20px; background-color:#f5f5f5;}
#Breadcrumb .Path img {display:none;} #Breadcrumb .Path img {display:none;}
#Breadcrumb .Path a img {display:inline; vertical-align:middle;}
#Breadcrumb .Path a:not(:last-child):after, #Breadcrumb .Path span a:after {content:'/\00a0'; padding:0 5px 0 10px; color:#999; display:inline-block;} #Breadcrumb .Path a:not(:last-child):after, #Breadcrumb .Path span a:after {content:'/\00a0'; padding:0 5px 0 10px; color:#999; display:inline-block;}
#Breadcrumb .Path .OrgSpan a:last-child:after {content: none;} #Breadcrumb .Path .OrgSpan a:last-child:after {content: none;}
#Breadcrumb .Path a, #Breadcrumb .Path a:Active, #Breadcrumb .Path a:Visited, #Breadcrumb .Path a:Hover {color:#428bca; font-size:13px; line-height:1.428571429;} #Breadcrumb .Path a, #Breadcrumb .Path a:Active, #Breadcrumb .Path a:Visited, #Breadcrumb .Path a:Hover {color:#428bca; font-size:13px; line-height:1.428571429;}

View file

@ -168,4 +168,7 @@
<data name="lclMSSQL2012Resources.Text" xml:space="preserve"> <data name="lclMSSQL2012Resources.Text" xml:space="preserve">
<value>Microsoft SQL 2012 Quotas</value> <value>Microsoft SQL 2012 Quotas</value>
</data> </data>
<data name="lclMSSQL2014Resources.Text" xml:space="preserve">
<value>Microsoft SQL 2014 Quotas</value>
</data>
</root> </root>

View file

@ -165,7 +165,7 @@
<th colspan="2"> <th colspan="2">
<br /> <br />
<div class="FormButtonsBar"> <div class="FormButtonsBar">
<div class="FormSectionHeader"><asp:Localize ID="Localize3" runat="server" meta:resourcekey="lclMSSQL2012Resources" /></div> <div class="FormSectionHeader"><asp:Localize ID="Localize8" runat="server" meta:resourcekey="lclMSSQL2012Resources" /></div>
</div> </div>
</th> </th>
</tr> </tr>
@ -179,6 +179,25 @@
</asp:Repeater> </asp:Repeater>
</asp:PlaceHolder> </asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="MsSQL2014" Visible="false">
<tr>
<th colspan="2">
<br />
<div class="FormButtonsBar">
<div class="FormSectionHeader"><asp:Localize ID="Localize7" runat="server" meta:resourcekey="lclMSSQL2014Resources" /></div>
</div>
</th>
</tr>
<asp:Repeater runat="server" ID="MsSQL2014_Quotas">
<ItemTemplate>
<tr>
<td class="Width20Pcs" style="white-space: nowrap;"><strong><%# GetSharedLocalizedString("Quota." + GetQuotaItemName((string)Container.DataItem)) %>:</strong></td>
<td><%# GetQuotaItemAllocatedValue((string)Container.DataItem) %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="MySQL4" Visible="false"> <asp:PlaceHolder runat="server" ID="MySQL4" Visible="false">
<tr> <tr>
<th colspan="2"> <th colspan="2">

View file

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:2.0.50727.3074
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@ -157,15 +156,6 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2008; protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2008;
/// <summary>
/// MsSQL2012 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2012;
/// <summary> /// <summary>
/// Localize3 control. /// Localize3 control.
/// </summary> /// </summary>
@ -184,6 +174,24 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Repeater MsSQL2008_Quotas; protected global::System.Web.UI.WebControls.Repeater MsSQL2008_Quotas;
/// <summary>
/// MsSQL2012 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2012;
/// <summary>
/// Localize8 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Localize Localize8;
/// <summary> /// <summary>
/// MsSQL2012_Quotas control. /// MsSQL2012_Quotas control.
/// </summary> /// </summary>
@ -193,6 +201,33 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Repeater MsSQL2012_Quotas; protected global::System.Web.UI.WebControls.Repeater MsSQL2012_Quotas;
/// <summary>
/// MsSQL2014 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2014;
/// <summary>
/// Localize7 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Localize Localize7;
/// <summary>
/// MsSQL2014_Quotas control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Repeater MsSQL2014_Quotas;
/// <summary> /// <summary>
/// MySQL4 control. /// MySQL4 control.
/// </summary> /// </summary>

View file

@ -303,6 +303,7 @@ namespace WebsitePanel.Portal
AddDatabaseVersion(cntx, ResourceGroups.MsSql2005, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2005, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2008, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2008, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2012, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2012, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2014, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql4, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MySql4, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql5, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MySql5, items, versions);
} }

View file

@ -12,7 +12,7 @@
<div class="Content"> <div class="Content">
<div class="Center"> <div class="Center">
<div class="Title"> <div class="Title">
<asp:Image ID="Image1" SkinID="ExchangeListAdd48" runat="server" /> <asp:Image ID="Image1" SkinID="OrganizationUser48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Create Group"></asp:Localize> <asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Create Group"></asp:Localize>
</div> </div>
<div class="FormBody"> <div class="FormBody">

View file

@ -14,7 +14,7 @@
<div class="Content"> <div class="Content">
<div class="Center"> <div class="Center">
<div class="Title"> <div class="Title">
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" /> <asp:Image ID="Image1" SkinID="OrganizationUser48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Security Group"></asp:Localize> <asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Security Group"></asp:Localize>
<asp:Literal ID="litDisplayName" runat="server" Text="John Smith" /> <asp:Literal ID="litDisplayName" runat="server" Text="John Smith" />

View file

@ -12,7 +12,7 @@
<div class="Content"> <div class="Content">
<div class="Center"> <div class="Center">
<div class="Title"> <div class="Title">
<asp:Image ID="Image1" SkinID="ExchangeList48" runat="server" /> <asp:Image ID="Image1" SkinID="OrganizationUser48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Groups"></asp:Localize> <asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Groups"></asp:Localize>
</div> </div>

View file

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

View file

@ -207,10 +207,12 @@ namespace WebsitePanel.Portal
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2005, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2005, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2008, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2008, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2012, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2012, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2014, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2000, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2000, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2005, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2005, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2008, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2008, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2012, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2012, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2014, false));
} }
else if (driverName == "MySql") else if (driverName == "MySql")
{ {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -170,7 +170,8 @@ namespace WebsitePanel.Portal
(resourceGroup.GroupName == ResourceGroups.MsSql2000)| (resourceGroup.GroupName == ResourceGroups.MsSql2000)|
(resourceGroup.GroupName == ResourceGroups.MsSql2005)| (resourceGroup.GroupName == ResourceGroups.MsSql2005)|
(resourceGroup.GroupName == ResourceGroups.MsSql2008)| (resourceGroup.GroupName == ResourceGroups.MsSql2008)|
(resourceGroup.GroupName == ResourceGroups.MsSql2012)| (resourceGroup.GroupName == ResourceGroups.MsSql2012) |
(resourceGroup.GroupName == ResourceGroups.MsSql2014) |
(resourceGroup.GroupName == ResourceGroups.MySql4)| (resourceGroup.GroupName == ResourceGroups.MySql4)|
(resourceGroup.GroupName == ResourceGroups.MySql5)| (resourceGroup.GroupName == ResourceGroups.MySql5)|
(resourceGroup.GroupName == ResourceGroups.Statistics)| (resourceGroup.GroupName == ResourceGroups.Statistics)|

View file

@ -70,6 +70,7 @@ namespace WebsitePanel.Portal
versions.Add(ResourceGroups.MsSql2005); versions.Add(ResourceGroups.MsSql2005);
versions.Add(ResourceGroups.MsSql2008); versions.Add(ResourceGroups.MsSql2008);
versions.Add(ResourceGroups.MsSql2012); versions.Add(ResourceGroups.MsSql2012);
versions.Add(ResourceGroups.MsSql2014);
FillDatabaseVersions(PanelSecurity.PackageId, ddlDatabaseVersion.Items, versions); FillDatabaseVersions(PanelSecurity.PackageId, ddlDatabaseVersion.Items, versions);
} }

View file

@ -3,8 +3,7 @@
<asp:HyperLink ID="lnkSignIn" runat="server" meta:resourcekey="lnkSignIn">Sign In</asp:HyperLink> <asp:HyperLink ID="lnkSignIn" runat="server" meta:resourcekey="lnkSignIn">Sign In</asp:HyperLink>
</asp:Panel> </asp:Panel>
<asp:Panel ID="LoggedPanel" runat="server"> <asp:Panel ID="LoggedPanel" runat="server">
<asp:Localize runat="server" meta:resourcekey="locWelcome"/> <strong><asp:Literal ID="litUsername" runat="server"></asp:Literal></strong>&nbsp;&nbsp;&nbsp; <strong><asp:HyperLink ID="lnkEditUserDetails" runat="server" meta:resourcekey="lnkEditUserDetails">My Account</asp:HyperLink></strong>
<asp:HyperLink ID="lnkEditUserDetails" runat="server" meta:resourcekey="lnkEditUserDetails">My Account</asp:HyperLink> |
| <asp:LinkButton ID="cmdSignOut" runat="server" Text="Sign Out" meta:resourcekey="cmdSignOut" <asp:ImageButton ID="imgSignOut" runat="server" CausesValidation="false" OnClick="cmdSignOut_Click" />
CausesValidation="false" OnClick="cmdSignOut_Click"></asp:LinkButton>
</asp:Panel> </asp:Panel>

View file

@ -38,6 +38,7 @@ using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer; using WebsitePanel.EnterpriseServer;
using WebsitePanel.WebPortal;
namespace WebsitePanel.Portal.SkinControls namespace WebsitePanel.Portal.SkinControls
{ {
@ -56,7 +57,7 @@ namespace WebsitePanel.Portal.SkinControls
UserInfo user = PanelSecurity.LoggedUser; UserInfo user = PanelSecurity.LoggedUser;
if (user != null) if (user != null)
{ {
litUsername.Text = PanelSecurity.LoggedUser.Username; lnkEditUserDetails.Text = PanelSecurity.LoggedUser.Username;
lnkEditUserDetails.NavigateUrl = PortalUtils.GetLoggedUserAccountPageUrl(); lnkEditUserDetails.NavigateUrl = PortalUtils.GetLoggedUserAccountPageUrl();
} }
@ -64,6 +65,10 @@ namespace WebsitePanel.Portal.SkinControls
LoggedPanel.Visible = Request.IsAuthenticated; LoggedPanel.Visible = Request.IsAuthenticated;
lnkSignIn.NavigateUrl = PortalUtils.LoginRedirectUrl; lnkSignIn.NavigateUrl = PortalUtils.LoginRedirectUrl;
string imagePath = String.Concat("~/", DefaultPage.THEMES_FOLDER, "/", Page.Theme, "/", "Images", "/");
imgSignOut.ImageUrl = imagePath + "signout_24.png";
} }
protected void cmdSignOut_Click(object sender, EventArgs e) protected void cmdSignOut_Click(object sender, EventArgs e)

View file

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:2.0.50727.42
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@ -10,12 +9,52 @@
namespace WebsitePanel.Portal.SkinControls { namespace WebsitePanel.Portal.SkinControls {
public partial class SignedInUser { public partial class SignedInUser {
protected System.Web.UI.WebControls.Panel AnonymousPanel;
protected System.Web.UI.WebControls.HyperLink lnkSignIn; /// <summary>
protected System.Web.UI.WebControls.Panel LoggedPanel; /// AnonymousPanel control.
protected System.Web.UI.WebControls.Literal litUsername; /// </summary>
protected System.Web.UI.WebControls.HyperLink lnkEditUserDetails; /// <remarks>
protected System.Web.UI.WebControls.LinkButton cmdSignOut; /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel AnonymousPanel;
/// <summary>
/// lnkSignIn control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkSignIn;
/// <summary>
/// LoggedPanel control.
/// </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 LoggedPanel;
/// <summary>
/// lnkEditUserDetails control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkEditUserDetails;
/// <summary>
/// imgSignOut control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ImageButton imgSignOut;
} }
} }

View file

@ -36,6 +36,7 @@ using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using WebsitePanel.WebPortal;
namespace WebsitePanel.Portal.SkinControls namespace WebsitePanel.Portal.SkinControls
{ {
@ -69,6 +70,15 @@ namespace WebsitePanel.Portal.SkinControls
return; return;
} }
if (Align.Equals("left") && node.Title.ToLower().Equals("account home"))
{
e.Item.Text = string.Empty;
string imagePath = String.Concat("~/", DefaultPage.THEMES_FOLDER, "/", Page.Theme, "/", "Images", "/");
e.Item.ImageUrl = imagePath + "home_24.png";
}
string target = node["target"]; string target = node["target"];
if(!String.IsNullOrEmpty(target)) if(!String.IsNullOrEmpty(target))

View file

@ -35,6 +35,7 @@
<asp:UpdatePanel runat="server" ID="updatePanelUsers" UpdateMode="Conditional" ChildrenAsTriggers="true"> <asp:UpdatePanel runat="server" ID="updatePanelUsers" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate> <ContentTemplate>
<asp:Panel ID="pnlViewSpace" runat="server"> <asp:Panel ID="pnlViewSpace" runat="server">
<asp:Label ID="lblUserAccountName" runat="server" Text="Account-" CssClass="Huge" style="margin-right:2px;"/>
<asp:LinkButton ID="cmdSpaceName" runat="server" Text="Change Name" OnClick="cmdChangeName_Click" CssClass="Huge" CausesValidation="false" /> <asp:LinkButton ID="cmdSpaceName" runat="server" Text="Change Name" OnClick="cmdChangeName_Click" CssClass="Huge" CausesValidation="false" />
<asp:Label ID="lblSpaceDescription" runat="server" Visible="false"></asp:Label> <asp:Label ID="lblSpaceDescription" runat="server" Visible="false"></asp:Label>
</asp:Panel> </asp:Panel>

View file

@ -93,6 +93,12 @@ namespace WebsitePanel.Portal.SkinControls
cmdSpaceName.Text = PortalAntiXSS.EncodeOld(package.PackageName); cmdSpaceName.Text = PortalAntiXSS.EncodeOld(package.PackageName);
lblSpaceDescription.Text = PortalAntiXSS.EncodeOld(package.PackageComments); lblSpaceDescription.Text = PortalAntiXSS.EncodeOld(package.PackageComments);
UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId);
if (user != null)
{
lblUserAccountName.Text = PortalAntiXSS.EncodeOld(string.Format("{0} -",user.Username));
}
lnkCurrentPage.NavigateUrl = PortalUtils.NavigatePageURL( lnkCurrentPage.NavigateUrl = PortalUtils.NavigatePageURL(
PortalUtils.GetCurrentPageId(), "SpaceID", PanelSecurity.PackageId.ToString()); PortalUtils.GetCurrentPageId(), "SpaceID", PanelSecurity.PackageId.ToString());
} }
@ -154,7 +160,16 @@ namespace WebsitePanel.Portal.SkinControls
HyperLink lnkUser = (HyperLink)e.Item.FindControl("lnkUser"); HyperLink lnkUser = (HyperLink)e.Item.FindControl("lnkUser");
if (lnkUser != null) if (lnkUser != null)
{ {
lnkUser.Text = user.Username; if (user.UserId == PanelSecurity.SelectedUserId && PanelSecurity.SelectedUserId != PanelSecurity.LoggedUserId)
{
string imagePath = String.Concat("~/", DefaultPage.THEMES_FOLDER, "/", Page.Theme, "/", "Images", "/");
lnkUser.ImageUrl = imagePath + "home_16_blk.png";
}
else
{
lnkUser.Text = user.Username;
}
lnkUser.NavigateUrl = PortalUtils.GetUserHomePageUrl(user.UserId); lnkUser.NavigateUrl = PortalUtils.GetUserHomePageUrl(user.UserId);
} }
} }

View file

@ -174,6 +174,15 @@ namespace WebsitePanel.Portal.SkinControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Panel pnlViewSpace; protected global::System.Web.UI.WebControls.Panel pnlViewSpace;
/// <summary>
/// lblUserAccountName control.
/// </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 lblUserAccountName;
/// <summary> /// <summary>
/// cmdSpaceName control. /// cmdSpaceName control.
/// </summary> /// </summary>

View file

@ -6,7 +6,7 @@
<%@ Import Namespace="WebsitePanel.Portal" %> <%@ Import Namespace="WebsitePanel.Portal" %>
<asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar"> <asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar UserSpaces">
<asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Create Hosting Space" CssClass="Button3" OnClick="btnAddItem_Click" /> <asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Create Hosting Space" CssClass="Button3" OnClick="btnAddItem_Click" />
</asp:Panel> </asp:Panel>

View file

@ -161,6 +161,8 @@ namespace WebsitePanel.Portal
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// add SQL Server engines // add SQL Server engines
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2014))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2014, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2014));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2012)) if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2012))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2012, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2012)); AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2012, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2012));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2008)) if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2008))

View file

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