Merge
This commit is contained in:
commit
84877d8c13
80 changed files with 6526 additions and 58 deletions
|
@ -41836,7 +41836,7 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail60', NULL)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL)
|
||||||
GO
|
GO
|
||||||
|
|
|
@ -8691,3 +8691,41 @@ SET
|
||||||
Settings = @Settings
|
Settings = @Settings
|
||||||
WHERE AccountId = @AccountId
|
WHERE AccountId = @AccountId
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'SmarterMail 10.x +')
|
||||||
|
BEGIN
|
||||||
|
INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
UPDATE [dbo].[Providers] SET [EditorControl] = 'SmarterMail100' WHERE [DisplayName] = 'SmarterMail 10.x +'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
-- Service items count by name and serviceid
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetServiceItemsCountByNameAndServiceId')
|
||||||
|
DROP PROCEDURE GetServiceItemsCountByNameAndServiceId
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetServiceItemsCountByNameAndServiceId]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@ServiceId int,
|
||||||
|
@ItemName nvarchar(500),
|
||||||
|
@GroupName nvarchar(100) = NULL,
|
||||||
|
@ItemTypeName nvarchar(200)
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT Count(*)
|
||||||
|
FROM ServiceItems AS SI
|
||||||
|
INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID
|
||||||
|
INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID
|
||||||
|
INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID
|
||||||
|
WHERE S.ServiceID = @ServiceId
|
||||||
|
AND SIT.TypeName = @ItemTypeName
|
||||||
|
AND SI.ItemName = @ItemName
|
||||||
|
AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName))
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
|
@ -151,6 +151,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
public const int ERROR_MAIL_LICENSE_USERS_QUOTA = -724;
|
public const int ERROR_MAIL_LICENSE_USERS_QUOTA = -724;
|
||||||
|
|
||||||
public const int ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT = -725;
|
public const int ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT = -725;
|
||||||
|
public const int ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY = -726;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region FTP
|
#region FTP
|
||||||
|
|
|
@ -114,6 +114,10 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback RestartRdsServerOperationCompleted;
|
private System.Threading.SendOrPostCallback RestartRdsServerOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetRdsCollectionLocalAdminsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SaveRdsCollectionLocalAdminsOperationCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public esRemoteDesktopServices() {
|
public esRemoteDesktopServices() {
|
||||||
this.Url = "http://localhost:9002/esRemoteDesktopServices.asmx";
|
this.Url = "http://localhost:9002/esRemoteDesktopServices.asmx";
|
||||||
|
@ -245,6 +249,12 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event RestartRdsServerCompletedEventHandler RestartRdsServerCompleted;
|
public event RestartRdsServerCompletedEventHandler RestartRdsServerCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetRdsCollectionLocalAdminsCompletedEventHandler GetRdsCollectionLocalAdminsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SaveRdsCollectionLocalAdminsCompletedEventHandler SaveRdsCollectionLocalAdminsCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollection", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollection", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public RdsCollection GetRdsCollection(int collectionId) {
|
public RdsCollection GetRdsCollection(int collectionId) {
|
||||||
|
@ -1216,15 +1226,17 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/RemoveRdsServerFromOrganization", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/RemoveRdsServerFromOrganization", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public ResultObject RemoveRdsServerFromOrganization(int rdsServerId) {
|
public ResultObject RemoveRdsServerFromOrganization(int itemId, int rdsServerId) {
|
||||||
object[] results = this.Invoke("RemoveRdsServerFromOrganization", new object[] {
|
object[] results = this.Invoke("RemoveRdsServerFromOrganization", new object[] {
|
||||||
|
itemId,
|
||||||
rdsServerId});
|
rdsServerId});
|
||||||
return ((ResultObject)(results[0]));
|
return ((ResultObject)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginRemoveRdsServerFromOrganization(int rdsServerId, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginRemoveRdsServerFromOrganization(int itemId, int rdsServerId, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("RemoveRdsServerFromOrganization", new object[] {
|
return this.BeginInvoke("RemoveRdsServerFromOrganization", new object[] {
|
||||||
|
itemId,
|
||||||
rdsServerId}, callback, asyncState);
|
rdsServerId}, callback, asyncState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1235,16 +1247,17 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void RemoveRdsServerFromOrganizationAsync(int rdsServerId) {
|
public void RemoveRdsServerFromOrganizationAsync(int itemId, int rdsServerId) {
|
||||||
this.RemoveRdsServerFromOrganizationAsync(rdsServerId, null);
|
this.RemoveRdsServerFromOrganizationAsync(itemId, rdsServerId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void RemoveRdsServerFromOrganizationAsync(int rdsServerId, object userState) {
|
public void RemoveRdsServerFromOrganizationAsync(int itemId, int rdsServerId, object userState) {
|
||||||
if ((this.RemoveRdsServerFromOrganizationOperationCompleted == null)) {
|
if ((this.RemoveRdsServerFromOrganizationOperationCompleted == null)) {
|
||||||
this.RemoveRdsServerFromOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveRdsServerFromOrganizationOperationCompleted);
|
this.RemoveRdsServerFromOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveRdsServerFromOrganizationOperationCompleted);
|
||||||
}
|
}
|
||||||
this.InvokeAsync("RemoveRdsServerFromOrganization", new object[] {
|
this.InvokeAsync("RemoveRdsServerFromOrganization", new object[] {
|
||||||
|
itemId,
|
||||||
rdsServerId}, this.RemoveRdsServerFromOrganizationOperationCompleted, userState);
|
rdsServerId}, this.RemoveRdsServerFromOrganizationOperationCompleted, userState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2140,6 +2153,91 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollectionLocalAdmins", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public OrganizationUser[] GetRdsCollectionLocalAdmins(int collectionId) {
|
||||||
|
object[] results = this.Invoke("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
collectionId});
|
||||||
|
return ((OrganizationUser[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetRdsCollectionLocalAdmins(int collectionId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
collectionId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public OrganizationUser[] EndGetRdsCollectionLocalAdmins(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((OrganizationUser[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionLocalAdminsAsync(int collectionId) {
|
||||||
|
this.GetRdsCollectionLocalAdminsAsync(collectionId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionLocalAdminsAsync(int collectionId, object userState) {
|
||||||
|
if ((this.GetRdsCollectionLocalAdminsOperationCompleted == null)) {
|
||||||
|
this.GetRdsCollectionLocalAdminsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRdsCollectionLocalAdminsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
collectionId}, this.GetRdsCollectionLocalAdminsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetRdsCollectionLocalAdminsOperationCompleted(object arg) {
|
||||||
|
if ((this.GetRdsCollectionLocalAdminsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetRdsCollectionLocalAdminsCompleted(this, new GetRdsCollectionLocalAdminsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SaveRdsCollectionLocalAdmins", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public ResultObject SaveRdsCollectionLocalAdmins(OrganizationUser[] users, int collectionId) {
|
||||||
|
object[] results = this.Invoke("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
collectionId});
|
||||||
|
return ((ResultObject)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSaveRdsCollectionLocalAdmins(OrganizationUser[] users, int collectionId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
collectionId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public ResultObject EndSaveRdsCollectionLocalAdmins(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((ResultObject)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SaveRdsCollectionLocalAdminsAsync(OrganizationUser[] users, int collectionId) {
|
||||||
|
this.SaveRdsCollectionLocalAdminsAsync(users, collectionId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SaveRdsCollectionLocalAdminsAsync(OrganizationUser[] users, int collectionId, object userState) {
|
||||||
|
if ((this.SaveRdsCollectionLocalAdminsOperationCompleted == null)) {
|
||||||
|
this.SaveRdsCollectionLocalAdminsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveRdsCollectionLocalAdminsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
collectionId}, this.SaveRdsCollectionLocalAdminsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSaveRdsCollectionLocalAdminsOperationCompleted(object arg) {
|
||||||
|
if ((this.SaveRdsCollectionLocalAdminsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SaveRdsCollectionLocalAdminsCompleted(this, new SaveRdsCollectionLocalAdminsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
base.CancelAsync(userState);
|
base.CancelAsync(userState);
|
||||||
|
@ -3237,4 +3335,56 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void GetRdsCollectionLocalAdminsCompletedEventHandler(object sender, GetRdsCollectionLocalAdminsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetRdsCollectionLocalAdminsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetRdsCollectionLocalAdminsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public OrganizationUser[] Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((OrganizationUser[])(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SaveRdsCollectionLocalAdminsCompletedEventHandler(object sender, SaveRdsCollectionLocalAdminsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class SaveRdsCollectionLocalAdminsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal SaveRdsCollectionLocalAdminsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public ResultObject Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((ResultObject)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1197,6 +1197,24 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@itemName", itemName));
|
new SqlParameter("@itemName", itemName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int GetServiceItemsCountByNameAndServiceId(int actorId, int serviceId, string groupName,
|
||||||
|
string itemName, string itemTypeName)
|
||||||
|
{
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
object obj = SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
ObjectQualifier + "GetServiceItemsCountByNameAndServiceId",
|
||||||
|
new SqlParameter("@ActorID", actorId),
|
||||||
|
new SqlParameter("@ServiceId", serviceId),
|
||||||
|
new SqlParameter("@ItemName", itemName),
|
||||||
|
new SqlParameter("@GroupName", groupName),
|
||||||
|
new SqlParameter("@ItemTypeName", itemTypeName));
|
||||||
|
|
||||||
|
if (!int.TryParse(obj.ToString(), out res)) return -1;
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
public static int AddServiceItem(int actorId, int serviceId, int packageId, string itemName,
|
public static int AddServiceItem(int actorId, int serviceId, int packageId, string itemName,
|
||||||
string itemTypeName, string xmlProperties)
|
string itemTypeName, string xmlProperties)
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,8 +125,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (serviceId == 0)
|
if (serviceId == 0)
|
||||||
return BusinessErrorCodes.ERROR_MSSQL_RESOURCE_UNAVAILABLE;
|
return BusinessErrorCodes.ERROR_MSSQL_RESOURCE_UNAVAILABLE;
|
||||||
|
|
||||||
// check package items
|
// check service items
|
||||||
if (PackageController.GetPackageItemByName(item.PackageId, groupName, item.Name, typeof(SqlDatabase)) != null)
|
if (PackageController.GetServiceItemsCountByNameAndServiceId(serviceId, groupName, item.Name, typeof(SqlDatabase)) > 0)
|
||||||
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_EXISTS;
|
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_EXISTS;
|
||||||
|
|
||||||
// place log record
|
// place log record
|
||||||
|
|
|
@ -137,7 +137,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return domainResult;
|
return domainResult;
|
||||||
|
|
||||||
// create service item
|
// create service item
|
||||||
item.Enabled = true;
|
|
||||||
item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item);
|
item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item);
|
||||||
|
|
||||||
// add service item
|
// add service item
|
||||||
|
@ -159,7 +158,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
return BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA;
|
return BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA;
|
||||||
}
|
}
|
||||||
if (ex.Message != null && ex.Message.Contains("The maximum number of users for the server has been reached"))
|
if (ex.Message.Contains("Password doesn't meet complexity"))
|
||||||
|
{
|
||||||
|
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
|
||||||
|
}
|
||||||
|
if (ex.Message.Contains("The maximum number of users for the server has been reached"))
|
||||||
{
|
{
|
||||||
return BusinessErrorCodes.ERROR_MAIL_LICENSE_USERS_QUOTA;
|
return BusinessErrorCodes.ERROR_MAIL_LICENSE_USERS_QUOTA;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +206,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
MailServer mail = new MailServer();
|
MailServer mail = new MailServer();
|
||||||
ServiceProviderProxy.Init(mail, origItem.ServiceId);
|
ServiceProviderProxy.Init(mail, origItem.ServiceId);
|
||||||
item.Name = origItem.Name;
|
item.Name = origItem.Name;
|
||||||
item.Enabled = true;
|
|
||||||
|
|
||||||
item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item);
|
item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item);
|
||||||
|
|
||||||
|
@ -224,6 +226,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
if (ex.Message.Contains("Password doesn't meet complexity"))
|
||||||
|
{
|
||||||
|
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
|
||||||
|
}
|
||||||
|
|
||||||
throw TaskManager.WriteError(ex);
|
throw TaskManager.WriteError(ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
|
|
@ -1380,6 +1380,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return CreateServiceItem(dvItem[0], dsItem.Tables[1].DefaultView);
|
return CreateServiceItem(dvItem[0], dsItem.Tables[1].DefaultView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int GetServiceItemsCountByNameAndServiceId(int serviceId, string groupName, string itemName, Type itemType)
|
||||||
|
{
|
||||||
|
string itemTypeName = ObjectUtils.GetTypeFullName(itemType);
|
||||||
|
|
||||||
|
return DataProvider.GetServiceItemsCountByNameAndServiceId(SecurityContext.User.UserId,
|
||||||
|
serviceId, groupName, itemName, itemTypeName);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool CheckServiceItemExists(string itemName, Type itemType)
|
public static bool CheckServiceItemExists(string itemName, Type itemType)
|
||||||
{
|
{
|
||||||
return CheckServiceItemExists(itemName, null, itemType);
|
return CheckServiceItemExists(itemName, null, itemType);
|
||||||
|
|
|
@ -168,9 +168,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return RemoveRdsServerFromCollectionInternal(itemId, rdsServer, rdsCollection);
|
return RemoveRdsServerFromCollectionInternal(itemId, rdsServer, rdsCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResultObject RemoveRdsServerFromOrganization(int rdsServerId)
|
public static ResultObject RemoveRdsServerFromOrganization(int itemId, int rdsServerId)
|
||||||
{
|
{
|
||||||
return RemoveRdsServerFromOrganizationInternal(rdsServerId);
|
return RemoveRdsServerFromOrganizationInternal(itemId, rdsServerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResultObject UpdateRdsServer(RdsServer rdsServer)
|
public static ResultObject UpdateRdsServer(RdsServer rdsServer)
|
||||||
|
@ -268,6 +268,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return RestartRdsServerInternal(itemId, fqdnName);
|
return RestartRdsServerInternal(itemId, fqdnName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<OrganizationUser> GetRdsCollectionLocalAdmins(int collectionId)
|
||||||
|
{
|
||||||
|
return GetRdsCollectionLocalAdminsInternal(collectionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResultObject SaveRdsCollectionLocalAdmins(OrganizationUser[] users, int collectionId)
|
||||||
|
{
|
||||||
|
return SaveRdsCollectionLocalAdminsInternal(users, collectionId);
|
||||||
|
}
|
||||||
|
|
||||||
private static RdsCollection GetRdsCollectionInternal(int collectionId)
|
private static RdsCollection GetRdsCollectionInternal(int collectionId)
|
||||||
{
|
{
|
||||||
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
@ -300,6 +310,66 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return collection;
|
return collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<OrganizationUser> GetRdsCollectionLocalAdminsInternal(int collectionId)
|
||||||
|
{
|
||||||
|
var result = new List<OrganizationUser>();
|
||||||
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
var servers = ObjectUtils.CreateListFromDataReader<RdsServer>(DataProvider.GetRDSServersByCollectionId(collection.Id)).ToList();
|
||||||
|
Organization org = OrganizationController.GetOrganization(collection.ItemId);
|
||||||
|
|
||||||
|
if (org == null)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
|
|
||||||
|
var organizationUsers = OrganizationController.GetOrganizationUsersPaged(collection.ItemId, null, null, null, 0, Int32.MaxValue).PageUsers;
|
||||||
|
var organizationAdmins = rds.GetRdsCollectionLocalAdmins(servers.First().FqdName);
|
||||||
|
|
||||||
|
return organizationUsers.Where(o => organizationAdmins.Select(a => a.ToLower()).Contains(o.DomainUserName.ToLower())).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ResultObject SaveRdsCollectionLocalAdminsInternal(OrganizationUser[] users, int collectionId)
|
||||||
|
{
|
||||||
|
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "SAVE_LOCAL_ADMINS");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
Organization org = OrganizationController.GetOrganization(collection.ItemId);
|
||||||
|
|
||||||
|
if (org == null)
|
||||||
|
{
|
||||||
|
result.IsSuccess = false;
|
||||||
|
result.AddError("", new NullReferenceException("Organization not found"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
|
var servers = ObjectUtils.CreateListFromDataReader<RdsServer>(DataProvider.GetRDSServersByCollectionId(collection.Id)).ToList();
|
||||||
|
|
||||||
|
rds.SaveRdsCollectionLocalAdmins(users, servers.Select(s => s.FqdName).ToArray());
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (!result.IsSuccess)
|
||||||
|
{
|
||||||
|
TaskManager.CompleteResultTask(result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskManager.CompleteResultTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static RdsCollectionSettings GetRdsCollectionSettingsInternal(int collectionId)
|
private static RdsCollectionSettings GetRdsCollectionSettingsInternal(int collectionId)
|
||||||
{
|
{
|
||||||
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
@ -960,11 +1030,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
rds.AddSessionHostFeatureToServer(rdsServer.FqdName);
|
rds.AddSessionHostFeatureToServer(rdsServer.FqdName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rds.MoveRdsServerToTenantOU(rdsServer.FqdName, org.OrganizationId);
|
||||||
DataProvider.AddRDSServerToOrganization(itemId, serverId);
|
DataProvider.AddRDSServerToOrganization(itemId, serverId);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
result.AddError("REMOTE_DESKTOP_SERVICES_ADD_RDS_SERVER_TO_ORGANIZATION", ex);
|
throw TaskManager.WriteError(ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -981,17 +1052,29 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ResultObject RemoveRdsServerFromOrganizationInternal(int rdsServerId)
|
private static ResultObject RemoveRdsServerFromOrganizationInternal(int itemId, int rdsServerId)
|
||||||
{
|
{
|
||||||
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "REMOVE_RDS_SERVER_FROM_ORGANIZATION");
|
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "REMOVE_RDS_SERVER_FROM_ORGANIZATION");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Organization org = OrganizationController.GetOrganization(itemId);
|
||||||
|
|
||||||
|
if (org == null)
|
||||||
|
{
|
||||||
|
result.IsSuccess = false;
|
||||||
|
result.AddError("", new NullReferenceException("Organization not found"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
var rdsServer = ObjectUtils.FillObjectFromDataReader<RdsServer>(DataProvider.GetRDSServerById(rdsServerId));
|
||||||
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
|
rds.RemoveRdsServerFromTenantOU(rdsServer.FqdName, org.OrganizationId);
|
||||||
DataProvider.RemoveRDSServerFromOrganization(rdsServerId);
|
DataProvider.RemoveRDSServerFromOrganization(rdsServerId);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
result.AddError("REMOTE_DESKTOP_SERVICES_REMOVE_RDS_SERVER_FROM_ORGANIZATION", ex);
|
throw TaskManager.WriteError(ex);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -1542,7 +1625,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
foreach (var server in servers)
|
foreach (var server in servers)
|
||||||
{
|
{
|
||||||
RemoveRdsServerFromOrganization(server.Id);
|
RemoveRdsServerFromOrganization(itemId, server.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
@ -189,9 +189,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public ResultObject RemoveRdsServerFromOrganization(int rdsServerId)
|
public ResultObject RemoveRdsServerFromOrganization(int itemId, int rdsServerId)
|
||||||
{
|
{
|
||||||
return RemoteDesktopServicesController.RemoveRdsServerFromOrganization(rdsServerId);
|
return RemoteDesktopServicesController.RemoveRdsServerFromOrganization(itemId, rdsServerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
@ -313,5 +313,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
return RemoteDesktopServicesController.RestartRdsServer(itemId, fqdnName);
|
return RemoteDesktopServicesController.RestartRdsServer(itemId, fqdnName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public List<OrganizationUser> GetRdsCollectionLocalAdmins(int collectionId)
|
||||||
|
{
|
||||||
|
return RemoteDesktopServicesController.GetRdsCollectionLocalAdmins(collectionId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public ResultObject SaveRdsCollectionLocalAdmins(OrganizationUser[] users, int collectionId)
|
||||||
|
{
|
||||||
|
return RemoteDesktopServicesController.SaveRdsCollectionLocalAdmins(users, collectionId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ namespace WebsitePanel.Providers.Mail
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class MailAccount : ServiceProviderItem
|
public class MailAccount : ServiceProviderItem
|
||||||
{
|
{
|
||||||
private bool enabled;
|
private bool enabled = true;
|
||||||
private string password;
|
private string password;
|
||||||
private string replyTo;
|
private string replyTo;
|
||||||
private bool responderEnabled;
|
private bool responderEnabled;
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.RemoteDesktopServices
|
namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
{
|
{
|
||||||
|
@ -73,5 +74,9 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
string GetRdsServerStatus(string serverName);
|
string GetRdsServerStatus(string serverName);
|
||||||
void ShutDownRdsServer(string serverName);
|
void ShutDownRdsServer(string serverName);
|
||||||
void RestartRdsServer(string serverName);
|
void RestartRdsServer(string serverName);
|
||||||
|
void SaveRdsCollectionLocalAdmins(List<OrganizationUser> users, List<string> hosts);
|
||||||
|
List<string> GetRdsCollectionLocalAdmins(string hostName);
|
||||||
|
void MoveRdsServerToTenantOU(string hostName, string organizationId);
|
||||||
|
void RemoveRdsServerFromTenantOU(string hostName, string organizationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1172,7 +1172,12 @@ namespace WebsitePanel.Providers.Mail
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!result.Result)
|
if (!result.Result)
|
||||||
|
{
|
||||||
|
if (result.ResultCode == -21)
|
||||||
|
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
|
||||||
|
|
||||||
throw new Exception(result.Message);
|
throw new Exception(result.Message);
|
||||||
|
}
|
||||||
|
|
||||||
// set forwarding settings
|
// set forwarding settings
|
||||||
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
||||||
|
@ -1233,7 +1238,12 @@ namespace WebsitePanel.Providers.Mail
|
||||||
AdminUsername, AdminPassword, mailbox.Name, strPassword, mailbox.FirstName, mailbox.LastName, mailbox.IsDomainAdmin);
|
AdminUsername, AdminPassword, mailbox.Name, strPassword, mailbox.FirstName, mailbox.LastName, mailbox.IsDomainAdmin);
|
||||||
|
|
||||||
if (!result.Result)
|
if (!result.Result)
|
||||||
|
{
|
||||||
|
if (result.ResultCode == -21)
|
||||||
|
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
|
||||||
|
|
||||||
throw new Exception(result.Message);
|
throw new Exception(result.Message);
|
||||||
|
}
|
||||||
|
|
||||||
// set forwarding settings
|
// set forwarding settings
|
||||||
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
|
||||||
|
|
|
@ -47,6 +47,9 @@ using System.Management;
|
||||||
using System.Management.Automation;
|
using System.Management.Automation;
|
||||||
using System.Management.Automation.Runspaces;
|
using System.Management.Automation.Runspaces;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.DirectoryServices;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.RemoteDesktopServices
|
namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
@ -64,6 +67,11 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
private const string RdsGroupFormat = "rds-{0}-{1}";
|
private const string RdsGroupFormat = "rds-{0}-{1}";
|
||||||
private const string RdsModuleName = "RemoteDesktopServices";
|
private const string RdsModuleName = "RemoteDesktopServices";
|
||||||
private const string AddNpsString = "netsh nps add np name=\"\"{0}\"\" policysource=\"1\" processingorder=\"{1}\" conditionid=\"0x3d\" conditiondata=\"^5$\" conditionid=\"0x1fb5\" conditiondata=\"{2}\" conditionid=\"0x1e\" conditiondata=\"UserAuthType:(PW|CA)\" profileid=\"0x1005\" profiledata=\"TRUE\" profileid=\"0x100f\" profiledata=\"TRUE\" profileid=\"0x1009\" profiledata=\"0x7\" profileid=\"0x1fe6\" profiledata=\"0x40000000\"";
|
private const string AddNpsString = "netsh nps add np name=\"\"{0}\"\" policysource=\"1\" processingorder=\"{1}\" conditionid=\"0x3d\" conditiondata=\"^5$\" conditionid=\"0x1fb5\" conditiondata=\"{2}\" conditionid=\"0x1e\" conditiondata=\"UserAuthType:(PW|CA)\" profileid=\"0x1005\" profiledata=\"TRUE\" profileid=\"0x100f\" profiledata=\"TRUE\" profileid=\"0x1009\" profiledata=\"0x7\" profileid=\"0x1fe6\" profiledata=\"0x40000000\"";
|
||||||
|
private const string WspAdministratorsGroupName = "WSP-Administrators";
|
||||||
|
private const string WspAdministratorsGroupDescription = "WSP Administrators";
|
||||||
|
private const string RdsServersOU = "RDSServers";
|
||||||
|
private const uint ADS_GROUP_TYPE_UNIVERSAL_GROUP = 0x00000008;
|
||||||
|
private const uint ADS_GROUP_TYPE_SECURITY_ENABLED = 0x80000000;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -497,7 +505,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
//Remove security group
|
//Remove security group
|
||||||
|
|
||||||
ActiveDirectoryUtils.DeleteADObject(GetComputerGroupPath(organizationId, collectionName));
|
ActiveDirectoryUtils.DeleteADObject(GetComputerGroupPath(organizationId, collectionName));
|
||||||
|
|
||||||
ActiveDirectoryUtils.DeleteADObject(GetUsersGroupPath(organizationId, collectionName));
|
ActiveDirectoryUtils.DeleteADObject(GetUsersGroupPath(organizationId, collectionName));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -949,6 +956,214 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Local Admins
|
||||||
|
|
||||||
|
public void SaveRdsCollectionLocalAdmins(List<OrganizationUser> users, List<string> hosts)
|
||||||
|
{
|
||||||
|
Runspace runspace = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runspace = OpenRunspace();
|
||||||
|
var index = ServerSettings.ADRootDomain.LastIndexOf(".");
|
||||||
|
var domainName = ServerSettings.ADRootDomain;
|
||||||
|
|
||||||
|
if (index > 0)
|
||||||
|
{
|
||||||
|
domainName = ServerSettings.ADRootDomain.Substring(0, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var hostName in hosts)
|
||||||
|
{
|
||||||
|
if (!CheckLocalAdminsGroupExists(hostName, runspace))
|
||||||
|
{
|
||||||
|
var errors = CreateLocalAdministratorsGroup(hostName, runspace);
|
||||||
|
|
||||||
|
if (errors.Any())
|
||||||
|
{
|
||||||
|
Log.WriteWarning(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray()));
|
||||||
|
throw new Exception(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var existingAdmins = GetExistingLocalAdmins(hostName, runspace).Select(e => e.ToLower());
|
||||||
|
var formUsers = users.Select(u => string.Format("{0}\\{1}", domainName, u.SamAccountName).ToLower());
|
||||||
|
var newUsers = users.Where(u => !existingAdmins.Contains(string.Format("{0}\\{1}", domainName, u.SamAccountName).ToLower()));
|
||||||
|
var removedUsers = existingAdmins.Where(e => !formUsers.Contains(e));
|
||||||
|
|
||||||
|
foreach (var user in newUsers)
|
||||||
|
{
|
||||||
|
AddNewLocalAdmin(hostName, user.SamAccountName, runspace);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var user in removedUsers)
|
||||||
|
{
|
||||||
|
RemoveLocalAdmin(hostName, user, runspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<string> GetRdsCollectionLocalAdmins(string hostName)
|
||||||
|
{
|
||||||
|
Runspace runspace = null;
|
||||||
|
var result = new List<string>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runspace = OpenRunspace();
|
||||||
|
|
||||||
|
if (CheckLocalAdminsGroupExists(hostName, runspace))
|
||||||
|
{
|
||||||
|
result = GetExistingLocalAdmins(hostName, runspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runspace);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CheckLocalAdminsGroupExists(string hostName, Runspace runspace)
|
||||||
|
{
|
||||||
|
var scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("net localgroup {0}", WspAdministratorsGroupName)
|
||||||
|
};
|
||||||
|
|
||||||
|
object[] errors = null;
|
||||||
|
var result = ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
|
||||||
|
if (!errors.Any())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private object[] CreateLocalAdministratorsGroup(string hostName, Runspace runspace)
|
||||||
|
{
|
||||||
|
var scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("$cn = [ADSI]\"WinNT://{0}\"", hostName),
|
||||||
|
string.Format("$group = $cn.Create(\"Group\", \"{0}\")", WspAdministratorsGroupName),
|
||||||
|
"$group.setinfo()",
|
||||||
|
string.Format("$group.description = \"{0}\"", WspAdministratorsGroupDescription),
|
||||||
|
"$group.setinfo()"
|
||||||
|
};
|
||||||
|
|
||||||
|
object[] errors = null;
|
||||||
|
ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
|
||||||
|
if (!errors.Any())
|
||||||
|
{
|
||||||
|
scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("$GroupObj = [ADSI]\"WinNT://{0}/Administrators\"", hostName),
|
||||||
|
string.Format("$GroupObj.Add(\"WinNT://{0}/{1}\")", hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), ""), WspAdministratorsGroupName)
|
||||||
|
};
|
||||||
|
|
||||||
|
errors = null;
|
||||||
|
ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<string> GetExistingLocalAdmins(string hostName, Runspace runspace)
|
||||||
|
{
|
||||||
|
var result = new List<string>();
|
||||||
|
|
||||||
|
var scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("net localgroup {0} | select -skip 6", WspAdministratorsGroupName)
|
||||||
|
};
|
||||||
|
|
||||||
|
object[] errors = null;
|
||||||
|
var exitingAdmins = ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
|
||||||
|
if (!errors.Any())
|
||||||
|
{
|
||||||
|
foreach(var user in exitingAdmins.Take(exitingAdmins.Count - 2))
|
||||||
|
{
|
||||||
|
result.Add(user.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private object[] AddNewLocalAdmin(string hostName, string samAccountName, Runspace runspace)
|
||||||
|
{
|
||||||
|
var scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("$GroupObj = [ADSI]\"WinNT://{0}/{1}\"", hostName, WspAdministratorsGroupName),
|
||||||
|
string.Format("$GroupObj.Add(\"WinNT://{0}/{1}\")", ServerSettings.ADRootDomain, samAccountName)
|
||||||
|
};
|
||||||
|
|
||||||
|
object[] errors = null;
|
||||||
|
ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
private object[] RemoveLocalAdmin(string hostName, string user, Runspace runspace)
|
||||||
|
{
|
||||||
|
var userObject = user.Split('\\');
|
||||||
|
|
||||||
|
var scripts = new List<string>
|
||||||
|
{
|
||||||
|
string.Format("$GroupObj = [ADSI]\"WinNT://{0}/{1}\"", hostName, WspAdministratorsGroupName),
|
||||||
|
string.Format("$GroupObj.Remove(\"WinNT://{0}/{1}\")", userObject[0], userObject[1])
|
||||||
|
};
|
||||||
|
|
||||||
|
object[] errors = null;
|
||||||
|
ExecuteRemoteShellCommand(runspace, hostName, scripts, out errors);
|
||||||
|
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SSL
|
||||||
|
|
||||||
|
public void InstallCertificate(byte[] certificate, string password, string hostName)
|
||||||
|
{
|
||||||
|
Runspace runspace = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var x509Cert = new X509Certificate2(certificate, password, X509KeyStorageFlags.Exportable);
|
||||||
|
runspace = OpenRunspace();
|
||||||
|
CopyCertificateFile(certificate, hostName, runspace);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string CopyCertificateFile(byte[] certificate, string hostName, Runspace runspace)
|
||||||
|
{
|
||||||
|
var destinationPath = string.Format("\\{0}\\c$\\remoteCert.pfx", hostName);
|
||||||
|
|
||||||
|
return destinationPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteCertificate(string path, Runspace runspace)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
private void AddRdsServerToDeployment(Runspace runSpace, RdsServer server)
|
private void AddRdsServerToDeployment(Runspace runSpace, RdsServer server)
|
||||||
{
|
{
|
||||||
Command cmd = new Command("Add-RDserver");
|
Command cmd = new Command("Add-RDserver");
|
||||||
|
@ -1104,6 +1319,63 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return installationResult;
|
return installationResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void MoveRdsServerToTenantOU(string hostName, string organizationId)
|
||||||
|
{
|
||||||
|
var tenantComputerGroupPath = GetTenantComputerGroupPath(organizationId);
|
||||||
|
|
||||||
|
if (!ActiveDirectoryUtils.AdObjectExists(tenantComputerGroupPath))
|
||||||
|
{
|
||||||
|
ActiveDirectoryUtils.CreateGroup(GetOrganizationPath(organizationId), RdsServersOU);
|
||||||
|
}
|
||||||
|
|
||||||
|
hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), "");
|
||||||
|
var computerPath = GetComputerPath(hostName, true);
|
||||||
|
|
||||||
|
if(!ActiveDirectoryUtils.AdObjectExists(computerPath))
|
||||||
|
{
|
||||||
|
computerPath = GetComputerPath(hostName, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ActiveDirectoryUtils.AdObjectExists(computerPath))
|
||||||
|
{
|
||||||
|
var computerObject = ActiveDirectoryUtils.GetADObject(computerPath);
|
||||||
|
var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName");
|
||||||
|
|
||||||
|
if (!ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersOU))
|
||||||
|
{
|
||||||
|
DirectoryEntry group = new DirectoryEntry(tenantComputerGroupPath);
|
||||||
|
group.Invoke("Add", computerObject.Path);
|
||||||
|
|
||||||
|
group.CommitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveRdsServerFromTenantOU(string hostName, string organizationId)
|
||||||
|
{
|
||||||
|
var tenantComputerGroupPath = GetTenantComputerGroupPath(organizationId);
|
||||||
|
hostName = hostName.ToLower().Replace(string.Format(".{0}", ServerSettings.ADRootDomain.ToLower()), "");
|
||||||
|
var tenantComputerPath = GetTenantComputerPath(hostName, organizationId);
|
||||||
|
|
||||||
|
var computerPath = GetComputerPath(hostName, true);
|
||||||
|
|
||||||
|
if (!ActiveDirectoryUtils.AdObjectExists(computerPath))
|
||||||
|
{
|
||||||
|
computerPath = GetComputerPath(hostName, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ActiveDirectoryUtils.AdObjectExists(computerPath))
|
||||||
|
{
|
||||||
|
var computerObject = ActiveDirectoryUtils.GetADObject(computerPath);
|
||||||
|
var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(computerObject, "sAMAccountName");
|
||||||
|
|
||||||
|
if (ActiveDirectoryUtils.IsComputerInGroup(samName, RdsServersOU))
|
||||||
|
{
|
||||||
|
ActiveDirectoryUtils.RemoveObjectFromGroup(computerPath, tenantComputerGroupPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool CheckSessionHostFeatureInstallation(string hostName)
|
public bool CheckSessionHostFeatureInstallation(string hostName)
|
||||||
{
|
{
|
||||||
bool isInstalled = false;
|
bool isInstalled = false;
|
||||||
|
@ -1331,6 +1603,18 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetRootOUPath()
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
// append provider
|
||||||
|
AppendProtocol(sb);
|
||||||
|
AppendDomainController(sb);
|
||||||
|
AppendOUPath(sb, RootOU);
|
||||||
|
AppendDomainPath(sb, RootDomain);
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
private string GetOrganizationPath(string organizationId)
|
private string GetOrganizationPath(string organizationId)
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
@ -1365,6 +1649,35 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetTenantComputerPath(string objName, string organizationId)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
AppendProtocol(sb);
|
||||||
|
AppendDomainController(sb);
|
||||||
|
AppendCNPath(sb, objName);
|
||||||
|
AppendCNPath(sb, RdsServersOU);
|
||||||
|
AppendOUPath(sb, organizationId);
|
||||||
|
AppendOUPath(sb, RootOU);
|
||||||
|
AppendDomainPath(sb, RootDomain);
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
internal string GetTenantComputerGroupPath(string organizationId)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
AppendProtocol(sb);
|
||||||
|
AppendDomainController(sb);
|
||||||
|
AppendCNPath(sb, RdsServersOU);
|
||||||
|
AppendOUPath(sb, organizationId);
|
||||||
|
AppendOUPath(sb, RootOU);
|
||||||
|
AppendDomainPath(sb, RootDomain);
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
private static void AppendCNPath(StringBuilder sb, string organizationId)
|
private static void AppendCNPath(StringBuilder sb, string organizationId)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(organizationId))
|
if (string.IsNullOrEmpty(organizationId))
|
||||||
|
@ -1549,7 +1862,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return ExecuteShellCommand(runSpace, invokeCommand, false, out errors);
|
return ExecuteShellCommand(runSpace, invokeCommand, false, out errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Collection<PSObject> ExecuteRemoteShellCommand(Runspace runSpace, string hostName, List<string> scripts, params string[] moduleImports)
|
internal Collection<PSObject> ExecuteRemoteShellCommand(Runspace runSpace, string hostName, List<string> scripts, out object[] errors, params string[] moduleImports)
|
||||||
{
|
{
|
||||||
Command invokeCommand = new Command("Invoke-Command");
|
Command invokeCommand = new Command("Invoke-Command");
|
||||||
invokeCommand.Parameters.Add("ComputerName", hostName);
|
invokeCommand.Parameters.Add("ComputerName", hostName);
|
||||||
|
@ -1563,7 +1876,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
|
||||||
invokeCommand.Parameters.Add("ScriptBlock", sb);
|
invokeCommand.Parameters.Add("ScriptBlock", sb);
|
||||||
|
|
||||||
return ExecuteShellCommand(runSpace, invokeCommand, false);
|
return ExecuteShellCommand(runSpace, invokeCommand, false, out errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Collection<PSObject> ExecuteShellCommand(Runspace runSpace, Command cmd)
|
internal Collection<PSObject> ExecuteShellCommand(Runspace runSpace, Command cmd)
|
||||||
|
|
|
@ -18,6 +18,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
using System.Web.Services.Protocols;
|
using System.Web.Services.Protocols;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -89,6 +90,14 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback RestartRdsServerOperationCompleted;
|
private System.Threading.SendOrPostCallback RestartRdsServerOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SaveRdsCollectionLocalAdminsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetRdsCollectionLocalAdminsOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback MoveRdsServerToTenantOUOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback RemoveRdsServerFromTenantOUOperationCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public RemoteDesktopServices() {
|
public RemoteDesktopServices() {
|
||||||
this.Url = "http://localhost:9003/RemoteDesktopServices.asmx";
|
this.Url = "http://localhost:9003/RemoteDesktopServices.asmx";
|
||||||
|
@ -184,6 +193,18 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event RestartRdsServerCompletedEventHandler RestartRdsServerCompleted;
|
public event RestartRdsServerCompletedEventHandler RestartRdsServerCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SaveRdsCollectionLocalAdminsCompletedEventHandler SaveRdsCollectionLocalAdminsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetRdsCollectionLocalAdminsCompletedEventHandler GetRdsCollectionLocalAdminsCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event MoveRdsServerToTenantOUCompletedEventHandler MoveRdsServerToTenantOUCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event RemoveRdsServerFromTenantOUCompletedEventHandler RemoveRdsServerFromTenantOUCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateCollection", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateCollection", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -1483,6 +1504,177 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SaveRdsCollectionLocalAdmins", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void SaveRdsCollectionLocalAdmins(OrganizationUser[] users, string[] hosts) {
|
||||||
|
this.Invoke("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
hosts});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSaveRdsCollectionLocalAdmins(OrganizationUser[] users, string[] hosts, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
hosts}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndSaveRdsCollectionLocalAdmins(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SaveRdsCollectionLocalAdminsAsync(OrganizationUser[] users, string[] hosts) {
|
||||||
|
this.SaveRdsCollectionLocalAdminsAsync(users, hosts, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SaveRdsCollectionLocalAdminsAsync(OrganizationUser[] users, string[] hosts, object userState) {
|
||||||
|
if ((this.SaveRdsCollectionLocalAdminsOperationCompleted == null)) {
|
||||||
|
this.SaveRdsCollectionLocalAdminsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSaveRdsCollectionLocalAdminsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SaveRdsCollectionLocalAdmins", new object[] {
|
||||||
|
users,
|
||||||
|
hosts}, this.SaveRdsCollectionLocalAdminsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSaveRdsCollectionLocalAdminsOperationCompleted(object arg) {
|
||||||
|
if ((this.SaveRdsCollectionLocalAdminsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SaveRdsCollectionLocalAdminsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetRdsCollectionLocalAdmins", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetRdsCollectionLocalAdmins(string hostName) {
|
||||||
|
object[] results = this.Invoke("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
hostName});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetRdsCollectionLocalAdmins(string hostName, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
hostName}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public string[] EndGetRdsCollectionLocalAdmins(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionLocalAdminsAsync(string hostName) {
|
||||||
|
this.GetRdsCollectionLocalAdminsAsync(hostName, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionLocalAdminsAsync(string hostName, object userState) {
|
||||||
|
if ((this.GetRdsCollectionLocalAdminsOperationCompleted == null)) {
|
||||||
|
this.GetRdsCollectionLocalAdminsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRdsCollectionLocalAdminsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetRdsCollectionLocalAdmins", new object[] {
|
||||||
|
hostName}, this.GetRdsCollectionLocalAdminsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetRdsCollectionLocalAdminsOperationCompleted(object arg) {
|
||||||
|
if ((this.GetRdsCollectionLocalAdminsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetRdsCollectionLocalAdminsCompleted(this, new GetRdsCollectionLocalAdminsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/MoveRdsServerToTenantOU", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void MoveRdsServerToTenantOU(string hostName, string organizationId) {
|
||||||
|
this.Invoke("MoveRdsServerToTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginMoveRdsServerToTenantOU(string hostName, string organizationId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("MoveRdsServerToTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndMoveRdsServerToTenantOU(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void MoveRdsServerToTenantOUAsync(string hostName, string organizationId) {
|
||||||
|
this.MoveRdsServerToTenantOUAsync(hostName, organizationId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void MoveRdsServerToTenantOUAsync(string hostName, string organizationId, object userState) {
|
||||||
|
if ((this.MoveRdsServerToTenantOUOperationCompleted == null)) {
|
||||||
|
this.MoveRdsServerToTenantOUOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMoveRdsServerToTenantOUOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("MoveRdsServerToTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId}, this.MoveRdsServerToTenantOUOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMoveRdsServerToTenantOUOperationCompleted(object arg) {
|
||||||
|
if ((this.MoveRdsServerToTenantOUCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.MoveRdsServerToTenantOUCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveRdsServerFromTenantOU", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void RemoveRdsServerFromTenantOU(string hostName, string organizationId) {
|
||||||
|
this.Invoke("RemoveRdsServerFromTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginRemoveRdsServerFromTenantOU(string hostName, string organizationId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("RemoveRdsServerFromTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndRemoveRdsServerFromTenantOU(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void RemoveRdsServerFromTenantOUAsync(string hostName, string organizationId) {
|
||||||
|
this.RemoveRdsServerFromTenantOUAsync(hostName, organizationId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void RemoveRdsServerFromTenantOUAsync(string hostName, string organizationId, object userState) {
|
||||||
|
if ((this.RemoveRdsServerFromTenantOUOperationCompleted == null)) {
|
||||||
|
this.RemoveRdsServerFromTenantOUOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveRdsServerFromTenantOUOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("RemoveRdsServerFromTenantOU", new object[] {
|
||||||
|
hostName,
|
||||||
|
organizationId}, this.RemoveRdsServerFromTenantOUOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRemoveRdsServerFromTenantOUOperationCompleted(object arg) {
|
||||||
|
if ((this.RemoveRdsServerFromTenantOUCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.RemoveRdsServerFromTenantOUCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
base.CancelAsync(userState);
|
base.CancelAsync(userState);
|
||||||
|
@ -2070,4 +2262,42 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void RestartRdsServerCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void RestartRdsServerCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SaveRdsCollectionLocalAdminsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void GetRdsCollectionLocalAdminsCompletedEventHandler(object sender, GetRdsCollectionLocalAdminsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetRdsCollectionLocalAdminsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetRdsCollectionLocalAdminsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public string[] Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((string[])(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void MoveRdsServerToTenantOUCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void RemoveRdsServerFromTenantOUCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ using WebsitePanel.Providers;
|
||||||
using WebsitePanel.Providers.OS;
|
using WebsitePanel.Providers.OS;
|
||||||
using WebsitePanel.Providers.RemoteDesktopServices;
|
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||||
using WebsitePanel.Server.Utils;
|
using WebsitePanel.Server.Utils;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
namespace WebsitePanel.Server
|
namespace WebsitePanel.Server
|
||||||
{
|
{
|
||||||
|
@ -563,5 +564,71 @@ namespace WebsitePanel.Server
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void SaveRdsCollectionLocalAdmins(List<OrganizationUser> users, List<string> hosts)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' SaveRdsCollectionLocalAdmins", ProviderSettings.ProviderName);
|
||||||
|
RDSProvider.SaveRdsCollectionLocalAdmins(users, hosts);
|
||||||
|
Log.WriteEnd("'{0}' SaveRdsCollectionLocalAdmins", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' SaveRdsCollectionLocalAdmins", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public List<string> GetRdsCollectionLocalAdmins(string hostName)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' GetRdsCollectionLocalAdmins", ProviderSettings.ProviderName);
|
||||||
|
var result = RDSProvider.GetRdsCollectionLocalAdmins(hostName);
|
||||||
|
Log.WriteEnd("'{0}' GetRdsCollectionLocalAdmins", ProviderSettings.ProviderName);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' GetRdsCollectionLocalAdmins", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void MoveRdsServerToTenantOU(string hostName, string organizationId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' MoveRdsServerToTenantOU", ProviderSettings.ProviderName);
|
||||||
|
RDSProvider.MoveRdsServerToTenantOU(hostName, organizationId);
|
||||||
|
Log.WriteEnd("'{0}' MoveRdsServerToTenantOU", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' MoveRdsServerToTenantOU", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void RemoveRdsServerFromTenantOU(string hostName, string organizationId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' RemoveRdsServerFromTenantOU", ProviderSettings.ProviderName);
|
||||||
|
RDSProvider.RemoveRdsServerFromTenantOU(hostName, organizationId);
|
||||||
|
Log.WriteEnd("'{0}' RemoveRdsServerFromTenantOU", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' RemoveRdsServerFromTenantOU", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,4 +151,5 @@
|
||||||
<Control key="rds_edit_collection" general_key="rds_collections" />
|
<Control key="rds_edit_collection" general_key="rds_collections" />
|
||||||
<Control key="rds_edit_collection_settings" general_key="rds_collections" />
|
<Control key="rds_edit_collection_settings" general_key="rds_collections" />
|
||||||
<Control key="rds_collection_user_sessions" general_key="rds_collections" />
|
<Control key="rds_collection_user_sessions" general_key="rds_collections" />
|
||||||
|
<Control key="rds_collection_local_admins" general_key="rds_collections" />
|
||||||
</Controls>
|
</Controls>
|
||||||
|
|
|
@ -579,6 +579,7 @@
|
||||||
<Control key="view_deleted_user" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserGeneralSettings.ascx" title="OrganizationDeletedUserGeneralSettings" type="View" />
|
<Control key="view_deleted_user" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserGeneralSettings.ascx" title="OrganizationDeletedUserGeneralSettings" type="View" />
|
||||||
<Control key="deleted_user_memberof" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserMemberOf.ascx" title="DeletedUserMemberOf" type="View" />
|
<Control key="deleted_user_memberof" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserMemberOf.ascx" title="DeletedUserMemberOf" type="View" />
|
||||||
<Control key="rds_application_edit_users" src="WebsitePanel/RDS/RDSEditApplicationUsers.ascx" title="RDSEditApplicationUsers" type="View" />
|
<Control key="rds_application_edit_users" src="WebsitePanel/RDS/RDSEditApplicationUsers.ascx" title="RDSEditApplicationUsers" type="View" />
|
||||||
|
<Control key="rds_collection_local_admins" src="WebsitePanel/RDS/RDSLocalAdmins.ascx" title="RDSLocalAdmins" type="View" />
|
||||||
<Control key="rds_edit_collection" src="WebsitePanel/RDS/RDSEditCollection.ascx" title="RDSEditCollection" type="View" />
|
<Control key="rds_edit_collection" src="WebsitePanel/RDS/RDSEditCollection.ascx" title="RDSEditCollection" type="View" />
|
||||||
<Control key="rds_edit_collection_settings" src="WebsitePanel/RDS/RDSEditCollectionSettings.ascx" title="RDSEditCollectionSettings" type="View" />
|
<Control key="rds_edit_collection_settings" src="WebsitePanel/RDS/RDSEditCollectionSettings.ascx" title="RDSEditCollectionSettings" type="View" />
|
||||||
<Control key="rds_collection_user_sessions" src="WebsitePanel/RDS/RDSUserSessions.ascx" title="RDSUserSessions" type="View" />
|
<Control key="rds_collection_user_sessions" src="WebsitePanel/RDS/RDSUserSessions.ascx" title="RDSUserSessions" type="View" />
|
||||||
|
|
|
@ -402,6 +402,9 @@
|
||||||
<data name="Error.MAIL_UPDATE_ACCOUNT" xml:space="preserve">
|
<data name="Error.MAIL_UPDATE_ACCOUNT" xml:space="preserve">
|
||||||
<value>Error updating mail account</value>
|
<value>Error updating mail account</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY" xml:space="preserve">
|
||||||
|
<value>Password doesn't meet complexity. Perhaps the password length is less 5 characters.</value>
|
||||||
|
</data>
|
||||||
<data name="Error.MAIL_UPDATE_DOMAIN" xml:space="preserve">
|
<data name="Error.MAIL_UPDATE_DOMAIN" xml:space="preserve">
|
||||||
<value>Error updating mail domain</value>
|
<value>Error updating mail domain</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5656,6 +5659,12 @@
|
||||||
<data name="ERROR.REMOTEAPPUSERS_NOT_UPDATED" xml:space="preserve">
|
<data name="ERROR.REMOTEAPPUSERS_NOT_UPDATED" xml:space="preserve">
|
||||||
<value>Remote application users not updated</value>
|
<value>Remote application users not updated</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ERROR.RDSSERVER_NOT_ASSIGNED" xml:space="preserve">
|
||||||
|
<value>RDS server not assigned to organization</value>
|
||||||
|
</data>
|
||||||
|
<data name="ERROR.RDSLOCALADMINS_NOT_ADDED" xml:space="preserve">
|
||||||
|
<value>Local admins not added</value>
|
||||||
|
</data>
|
||||||
<data name="ERROR.REMOTE_DESKTOP_SERVICES_LOG_OFF_USER" xml:space="preserve">
|
<data name="ERROR.REMOTE_DESKTOP_SERVICES_LOG_OFF_USER" xml:space="preserve">
|
||||||
<value>RDS User logging off error</value>
|
<value>RDS User logging off error</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -235,9 +235,9 @@ namespace WebsitePanel.Portal
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int result = ES.Services.MailServers.AddMailAccount(item);
|
int result = ES.Services.MailServers.AddMailAccount(item);
|
||||||
if (result < 0)
|
if (result == BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY)
|
||||||
{
|
{
|
||||||
ShowResultMessage(result);
|
ShowErrorMessage("MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (result == BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA)
|
if (result == BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA)
|
||||||
|
@ -250,7 +250,11 @@ namespace WebsitePanel.Portal
|
||||||
ShowResultMessage(result);
|
ShowResultMessage(result);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -264,6 +268,11 @@ namespace WebsitePanel.Portal
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int result = ES.Services.MailServers.UpdateMailAccount(item);
|
int result = ES.Services.MailServers.UpdateMailAccount(item);
|
||||||
|
if (result == BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
ShowResultMessage(result);
|
ShowResultMessage(result);
|
||||||
|
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="cbChangePassword.Text" xml:space="preserve">
|
||||||
|
<value>Change Password</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbDomainAdmin.Text" xml:space="preserve">
|
||||||
|
<value>Domain Administrator</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbDomainAdministrator.Text" xml:space="preserve">
|
||||||
|
<value>Domain Administrator</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbEnableAccount.Text" xml:space="preserve">
|
||||||
|
<value>Account enabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkDeleteOnForward.Text" xml:space="preserve">
|
||||||
|
<value>Delete Message on Forward</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkResponderEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Yes</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblFirstName.Text" xml:space="preserve">
|
||||||
|
<value>First Name:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblForwardTo.Text" xml:space="preserve">
|
||||||
|
<value>Forward Mail to Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblLastName.Text" xml:space="preserve">
|
||||||
|
<value>Last Name:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMessage.Text" xml:space="preserve">
|
||||||
|
<value>Message:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblReplyTo.Text" xml:space="preserve">
|
||||||
|
<value>Reply to Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblResponderEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enable Autoresponder:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSignature.Text" xml:space="preserve">
|
||||||
|
<value>Signature:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSubject.Text" xml:space="preserve">
|
||||||
|
<value>Subject:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secAutoresponder.Text" xml:space="preserve">
|
||||||
|
<value>Autoresponder</value>
|
||||||
|
</data>
|
||||||
|
<data name="secForwarding.Text" xml:space="preserve">
|
||||||
|
<value>Mail Forwarding</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,171 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lblAbuse.Text" xml:space="preserve">
|
||||||
|
<value>Abuse Account:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblCatchAll.Text" xml:space="preserve">
|
||||||
|
<value>Catch-All Account:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDomainAliases.Text" xml:space="preserve">
|
||||||
|
<value>Domain Aliases :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDomainDiskSpace.Text" xml:space="preserve">
|
||||||
|
<value>Domain Disk Space, MB :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMailingListsQuota.Text" xml:space="preserve">
|
||||||
|
<value>Mailing Lists :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMessageSizeQuota.Text" xml:space="preserve">
|
||||||
|
<value>Max Message Size, KB :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPopRetreivalAccounts.Text" xml:space="preserve">
|
||||||
|
<value>POP Retrieval Accounts:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPostmaster.Text" xml:space="preserve">
|
||||||
|
<value>Postmaster Account:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblRecipientsPerMessageQuota.Text" xml:space="preserve">
|
||||||
|
<value>Max Recipients per Message :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblUserAliasesQuota.Text" xml:space="preserve">
|
||||||
|
<value>User Aliases :</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblUserQuota.Text" xml:space="preserve">
|
||||||
|
<value>Users :</value>
|
||||||
|
</data>
|
||||||
|
<data name="secFeatures.Text" xml:space="preserve">
|
||||||
|
<value>Features</value>
|
||||||
|
</data>
|
||||||
|
<data name="secLimits.Text" xml:space="preserve">
|
||||||
|
<value>Limits</value>
|
||||||
|
</data>
|
||||||
|
<data name="secSharing.Text" xml:space="preserve">
|
||||||
|
<value>Sharing</value>
|
||||||
|
</data>
|
||||||
|
<data name="secTechnical.Text" xml:space="preserve">
|
||||||
|
<value>Technical</value>
|
||||||
|
</data>
|
||||||
|
<data name="secThrottling.Text" xml:space="preserve">
|
||||||
|
<value>Throttling</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.NotSelected" xml:space="preserve">
|
||||||
|
<value><Not Selected></value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lbEnableCatchAlls.Text" xml:space="preserve">
|
||||||
|
<value>Enable Catch-Alls</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnableIMAPRetreival.Text" xml:space="preserve">
|
||||||
|
<value>Enable IMAP Retreival</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnableMailReports.Text" xml:space="preserve">
|
||||||
|
<value>Enable Email Reports</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnableMailSigning.Text" xml:space="preserve">
|
||||||
|
<value>Enable Mail Signing</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnablePopRetreival.Text" xml:space="preserve">
|
||||||
|
<value>Enable POP Retrieval</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnableSyncML.Text" xml:space="preserve">
|
||||||
|
<value>Enable SyncML</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbPopRetrieval.Text" xml:space="preserve">
|
||||||
|
<value>Pop Retreival</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowCalendar.Text" xml:space="preserve">
|
||||||
|
<value>Calendar</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowContacts.Text" xml:space="preserve">
|
||||||
|
<value>Contacts</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowcontentfilteringmenu.Text" xml:space="preserve">
|
||||||
|
<value>Domain Content Filtering</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowdomainaliasmenu.Text" xml:space="preserve">
|
||||||
|
<value>Domain Aliases</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowDomainReports.Text" xml:space="preserve">
|
||||||
|
<value>Domain Reports</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowlistmenu.Text" xml:space="preserve">
|
||||||
|
<value>Mailing Lists</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowNotes.Text" xml:space="preserve">
|
||||||
|
<value>Notes</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowspammenu.Text" xml:space="preserve">
|
||||||
|
<value>Domain Spam Options</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbShowTasks.Text" xml:space="preserve">
|
||||||
|
<value>Tasks</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,138 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="cbGlobalAddressList.Text" xml:space="preserve">
|
||||||
|
<value>Global Address List</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbSharedCalendars.Text" xml:space="preserve">
|
||||||
|
<value>Shared Calendars</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbSharedContacts.Text" xml:space="preserve">
|
||||||
|
<value>Shared Contacts</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbSharedFolders.Text" xml:space="preserve">
|
||||||
|
<value>Shared Folders</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbSharedNotes.Text" xml:space="preserve">
|
||||||
|
<value>Shared Notes</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbSharedTasks.Text" xml:space="preserve">
|
||||||
|
<value>Shared Tasks</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,132 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lbBandwidthPerHour.Text" xml:space="preserve">
|
||||||
|
<value>Outgoing Bandwidth per Hour, MB:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbBouncesPerHour.Text" xml:space="preserve">
|
||||||
|
<value>Bounces Received per Hour:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbMessagesPerHour.Text" xml:space="preserve">
|
||||||
|
<value>Outgoing Messages per Hour:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 1.3
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">1.3</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1">this is my long string</data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
[base64 mime encoded serialized .NET Framework object]
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lblGroupMembers.Text" xml:space="preserve">
|
||||||
|
<value>Group E-Mails:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,219 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="chkPasswordEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkReplyToList.Text" xml:space="preserve">
|
||||||
|
<value>Reply To List</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkSubjectPrefixEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="ctxValDomain.Text" xml:space="preserve">
|
||||||
|
<value>Moderator should be within mail domain where Mail List is located</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPostingModeItem.Anyone" xml:space="preserve">
|
||||||
|
<value>Anyone</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPostingModeItem.MembersOnly" xml:space="preserve">
|
||||||
|
<value>Subscribers Only</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPostingModeItem.ModeratorOnly" xml:space="preserve">
|
||||||
|
<value>Moderator Only</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPostingModeItem.Password" xml:space="preserve">
|
||||||
|
<value>Password Protected Posting</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlReplyToItem.List" xml:space="preserve">
|
||||||
|
<value>List</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlReplyToItem.Moderator" xml:space="preserve">
|
||||||
|
<value>Moderator</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlReplyToItem.Sender" xml:space="preserve">
|
||||||
|
<value>Sender</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDescription.Text" xml:space="preserve">
|
||||||
|
<value>List Description:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblListOptions.Text" xml:space="preserve">
|
||||||
|
<value>List Options:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMaxMessageSize.Text" xml:space="preserve">
|
||||||
|
<value>Max Message Size, KB:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMaxRecipients.Text" xml:space="preserve">
|
||||||
|
<value>Max Recipients per Message:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMembers.Text" xml:space="preserve">
|
||||||
|
<value>Mailing List Members:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblModerationEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Moderation is Enabled:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblModeratorAddress.Text" xml:space="preserve">
|
||||||
|
<value>List Moderator:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPostingMode.Text" xml:space="preserve">
|
||||||
|
<value>Who Can Post:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPostingPassword.Text" xml:space="preserve">
|
||||||
|
<value>List Password:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblReplyTo.Text" xml:space="preserve">
|
||||||
|
<value>Subscribers Reply To:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSubjectPrefix.Text" xml:space="preserve">
|
||||||
|
<value>Subject Prefix:</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.SelectModerator" xml:space="preserve">
|
||||||
|
<value><Choose a moderator></value>
|
||||||
|
</data>
|
||||||
|
<data name="AdditionalOptions.Text" xml:space="preserve">
|
||||||
|
<value>List Additional Options</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbAllowUnsubscribe.Text" xml:space="preserve">
|
||||||
|
<value>Enable Unsubscribe from Subject:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbDigestMode.Text" xml:space="preserve">
|
||||||
|
<value>Enable Digest Mode:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbDisableListcommand.Text" xml:space="preserve">
|
||||||
|
<value>Enable LIST Command:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbDisableSubscribecommand.Text" xml:space="preserve">
|
||||||
|
<value>Enable SUBSCRIBE Command:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblListFromAddress.Text" xml:space="preserve">
|
||||||
|
<value>List From Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblListReplyToAddress.Text" xml:space="preserve">
|
||||||
|
<value>List Reply To Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblListToAddress.Text" xml:space="preserve">
|
||||||
|
<value>List To Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbSendSubscribe.Text" xml:space="preserve">
|
||||||
|
<value>Send Subscribe Email:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbSendUnsubscribe.Text" xml:space="preserve">
|
||||||
|
<value>Send Unsubscribe Email:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="cbEnableDomainAdmin.Text" xml:space="preserve">
|
||||||
|
<value>Enable Domain Administrators</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbImportDomainAdmin.Text" xml:space="preserve">
|
||||||
|
<value>Import Domain Admin</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbImportSystemAdmin.Text" xml:space="preserve">
|
||||||
|
<value>Import System Admin</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbInheritDefaultLimits.Text" xml:space="preserve">
|
||||||
|
<value>Inherit Domain Default Limits &nbsp; (Domain Default Limits will be applied for all new created domains)</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblAdminLogin.Text" xml:space="preserve">
|
||||||
|
<value>Admin Login:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblAdminPassword.Text" xml:space="preserve">
|
||||||
|
<value>Admin Password:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblCurrPassword.Text" xml:space="preserve">
|
||||||
|
<value>Current Admin Password:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDomainsPath.Text" xml:space="preserve">
|
||||||
|
<value>Domains Root Folder:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPublicIP.Text" xml:space="preserve">
|
||||||
|
<value>Public IP Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblServiceUrl.Text" xml:space="preserve">
|
||||||
|
<value>SmarterMail Web Services URL:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,114 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditAccount.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditAccount" %>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
|
||||||
|
|
||||||
|
<table width="100%">
|
||||||
|
<tr runat="server" id="passwordRow">
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
<td class="SubHead" height="37px">
|
||||||
|
<asp:CheckBox runat="server" meta:resourcekey="cbChangePassword" ID="cbChangePassword" Text="Change password" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
<td class="SubHead" height="37px">
|
||||||
|
<asp:CheckBox runat="server" meta:resourcekey="cbEnableAccount" ID="cbEnableAccount" Text="Account enabled" Checked="True" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
<td class="SubHead" height="37px">
|
||||||
|
<asp:CheckBox runat="server" meta:resourcekey="cbDomainAdmin" ID="cbDomainAdmin" Text="Domain Administrator" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblFirstName" runat="server" meta:resourcekey="lblFirstName" Text="First Name:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal" width="100%">
|
||||||
|
<asp:TextBox ID="txtFirstName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblLastName" runat="server" meta:resourcekey="lblLastName" Text="Last Name:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal" valign="top">
|
||||||
|
<asp:TextBox ID="txtLastName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblReplyTo" runat="server" meta:resourcekey="lblReplyTo" Text="Reply to address:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox ID="txtReplyTo" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSignature" runat="server" meta:resourcekey="lblSignature" Text="Signature:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox ID="txtSignature" runat="server" Width="200px" TextMode="MultiLine"
|
||||||
|
Rows="4" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secAutoresponder" runat="server" TargetControlID="AutoresponderPanel"
|
||||||
|
meta:resourcekey="secAutoresponder" Text="Autoresponder">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="AutoresponderPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblResponderEnabled" runat="server" meta:resourcekey="lblResponderEnabled"
|
||||||
|
Text="Enable autoresponder:"></asp:Label></td>
|
||||||
|
<td class="normal" width="100%">
|
||||||
|
<asp:CheckBox ID="chkResponderEnabled" runat="server" meta:resourcekey="chkResponderEnabled"
|
||||||
|
Text="Yes"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label></td>
|
||||||
|
<td class="normal" valign="top">
|
||||||
|
<asp:TextBox ID="txtSubject" runat="server" Width="400px" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblMessage" runat="server" meta:resourcekey="lblMessage" Text="Message:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox ID="txtMessage" runat="server" Width="400px" TextMode="MultiLine" Rows="5"
|
||||||
|
CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
<wsp:CollapsiblePanel id="secForwarding" runat="server" TargetControlID="ForwardingPanel"
|
||||||
|
meta:resourcekey="secForwarding" Text="Mail Forwarding">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="ForwardingPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblForwardTo" runat="server" meta:resourcekey="lblForwardTo" Text="Forward mail to address:"></asp:Label></td>
|
||||||
|
<td class="normal" width="100%" valign="top">
|
||||||
|
<asp:TextBox ID="txtForward" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:CheckBox ID="chkDeleteOnForward" runat="server" meta:resourcekey="chkDeleteOnForward"
|
||||||
|
Text="Delete Message on Forward"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
|
@ -0,0 +1,75 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditAccount : WebsitePanelControlBase, IMailEditAccountControl
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
passwordRow.Visible = (PanelRequest.ItemID > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailAccount item)
|
||||||
|
{
|
||||||
|
txtFirstName.Text = item.FirstName;
|
||||||
|
txtLastName.Text = item.LastName;
|
||||||
|
txtSignature.Text = item.Signature;
|
||||||
|
cbEnableAccount.Checked = item.Enabled;
|
||||||
|
chkResponderEnabled.Checked = item.ResponderEnabled;
|
||||||
|
txtReplyTo.Text = item.ReplyTo;
|
||||||
|
txtSubject.Text = item.ResponderSubject;
|
||||||
|
txtMessage.Text = item.ResponderMessage;
|
||||||
|
txtForward.Text = item.ForwardingAddresses != null ? String.Join("; ", item.ForwardingAddresses) : "";
|
||||||
|
chkDeleteOnForward.Checked = item.DeleteOnForward;
|
||||||
|
cbDomainAdmin.Visible = item.IsDomainAdminEnabled;
|
||||||
|
cbDomainAdmin.Checked = item.IsDomainAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailAccount item)
|
||||||
|
{
|
||||||
|
item.FirstName = txtFirstName.Text;
|
||||||
|
item.LastName = txtLastName.Text;
|
||||||
|
item.Signature = txtSignature.Text;
|
||||||
|
item.ResponderEnabled = chkResponderEnabled.Checked;
|
||||||
|
item.Enabled = cbEnableAccount.Checked;
|
||||||
|
item.ReplyTo = txtReplyTo.Text;
|
||||||
|
item.ResponderSubject = txtSubject.Text;
|
||||||
|
item.ResponderMessage = txtMessage.Text;
|
||||||
|
item.ForwardingAddresses = Utils.ParseDelimitedString(txtForward.Text, ';', ' ', ',');
|
||||||
|
item.DeleteOnForward = chkDeleteOnForward.Checked;
|
||||||
|
item.ChangePassword = cbChangePassword.Checked;
|
||||||
|
item.ChangePassword = cbChangePassword.Checked;
|
||||||
|
item.IsDomainAdmin = cbDomainAdmin.Checked;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,240 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditAccount {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// passwordRow control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow passwordRow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbChangePassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbChangePassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableAccount control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableAccount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbDomainAdmin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbDomainAdmin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblFirstName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblFirstName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtFirstName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtFirstName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblLastName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblLastName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtLastName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtLastName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblReplyTo control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblReplyTo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtReplyTo control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtReplyTo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSignature control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblSignature;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSignature control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtSignature;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secAutoresponder control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secAutoresponder;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AutoresponderPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel AutoresponderPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblResponderEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblResponderEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkResponderEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkResponderEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSubject control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblSubject;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSubject control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtSubject;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secForwarding control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secForwarding;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ForwardingPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel ForwardingPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblForwardTo control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblForwardTo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtForward control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtForward;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkDeleteOnForward control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkDeleteOnForward;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,145 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain" %>
|
||||||
|
<%@ Register Src="SmarterMail60_EditDomain_Features.ascx" TagName="SmarterMail60_EditDomain_Features"
|
||||||
|
TagPrefix="uc4" %>
|
||||||
|
<%@ Register Src="SmarterMail60_EditDomain_Sharing.ascx" TagName="SmarterMail60_EditDomain_Sharing"
|
||||||
|
TagPrefix="uc3" %>
|
||||||
|
<%@ Register Src="SmarterMail60_EditDomain_Throttling.ascx" TagName="SmarterMail60_EditDomain_Throttling"
|
||||||
|
TagPrefix="uc5" %>
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/QuotaEditor.ascx" TagName="QuotaEditor" TagPrefix="uc1" %>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
|
||||||
|
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblCatchAll" runat="server" meta:resourcekey="lblCatchAll" Text="Catch-All Account:"></asp:Label></td>
|
||||||
|
<td class="Normal" width="100%">
|
||||||
|
<asp:DropDownList ID="ddlCatchAllAccount" runat="server" CssClass="NormalTextBox">
|
||||||
|
</asp:DropDownList></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<asp:Panel runat="server" ID="AdvancedSettingsPanel">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:collapsiblepanel id="secFeatures" runat="server" targetcontrolid="FeaturesPanel"
|
||||||
|
meta:resourcekey="secFeatures" ></wsp:collapsiblepanel>
|
||||||
|
<asp:Panel runat="server" ID="FeaturesPanel">
|
||||||
|
<uc4:SmarterMail60_EditDomain_Features id="featuresSection" runat="server"></uc4:SmarterMail60_EditDomain_Features>
|
||||||
|
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:collapsiblepanel id="secSharing" runat="server" targetcontrolid="SharingPanel"
|
||||||
|
meta:resourcekey="secSharing" ></wsp:collapsiblepanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="SharingPanel">
|
||||||
|
<uc3:SmarterMail60_EditDomain_Sharing id="sharingSection" runat="server"></uc3:SmarterMail60_EditDomain_Sharing>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:collapsiblepanel id="secThrottling" runat="server" targetcontrolid="ThrottlingPanel"
|
||||||
|
meta:resourcekey="secThrottling" ></wsp:collapsiblepanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="ThrottlingPanel">
|
||||||
|
<uc5:SmarterMail60_EditDomain_Throttling id="throttlingSection" runat="server"></uc5:SmarterMail60_EditDomain_Throttling>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:collapsiblepanel id="secLimits" runat="server" targetcontrolid="LimitsPanel"
|
||||||
|
meta:resourcekey="secLimits" text="Limits"></wsp:collapsiblepanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="LimitsPanel">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblDomainDiskSpace" runat="server" meta:resourcekey="lblDomainDiskSpace"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtSize" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||||
|
<asp:RangeValidator Type="Integer" ID="valDomainDiskSpace" MinimumValue="0" runat="server" ControlToValidate="txtSize"
|
||||||
|
Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValDiskSpace" runat="server" ControlToValidate="txtSize"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblDomainAliases" runat="server" meta:resourcekey="lblDomainAliases"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtDomainAliases" Text="0" Width="80px" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RangeValidator Type="Integer" ID="valDomainAliases" MinimumValue="0" runat="server" ControlToValidate="txtDomainAliases"
|
||||||
|
Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValDomainAliases" runat="server" ControlToValidate="txtDomainAliases"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblUserQuota" runat="server" meta:resourcekey="lblUserQuota"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtUser" Width="80px" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RangeValidator Type="Integer" MinimumValue="0" ID="valUser" runat="server" ControlToValidate="txtUser"
|
||||||
|
Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValUser" runat="server" ControlToValidate="txtUser"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblUserAliasesQuota" runat="server" meta:resourcekey="lblUserAliasesQuota"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtUserAliases" Width="80px" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valUserAliases" ControlToValidate="txtUserAliases"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValUserAliases" runat="server" ControlToValidate="txtUserAliases"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblMailingListsQuota" runat="server" meta:resourcekey="lblMailingListsQuota"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" Width="80px" ID="txtMailingLists" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valMailingLists" ControlToValidate="txtMailingLists"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValMailingLists" runat="server" ControlToValidate="txtMailingLists"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblPopRetreivalAccounts" runat="server" meta:resourcekey="lblPopRetreivalAccounts"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" Width="80px" ID="txtPopRetreivalAccounts" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valPopRetreivalAccounts" ControlToValidate="txtPopRetreivalAccounts"
|
||||||
|
MinimumValue="0" Display="None"/>
|
||||||
|
<asp:RequiredFieldValidator ID="reqPopRetreivalAccounts" runat="server" ControlToValidate="txtPopRetreivalAccounts"
|
||||||
|
Display="None"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblMessageSizeQuota" runat="server" meta:resourcekey="lblMessageSizeQuota"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtMessageSize" CssClass="NormalTextBox" Width="80px"/>
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valMessageSize" ControlToValidate="txtMessageSize"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValMessageSize" runat="server" ControlToValidate="txtMessageSize"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap align="right">
|
||||||
|
<asp:Label ID="lblRecipientsPerMessageQuota" runat="server" meta:resourcekey="lblRecipientsPerMessageQuota"></asp:Label></td>
|
||||||
|
<td width="100%" align="left">
|
||||||
|
<asp:TextBox runat="server" ID="txtRecipientsPerMessage" CssClass="NormalTextBox" Width="80px"/>
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valRecipientsPerMessage" ControlToValidate="txtRecipientsPerMessage"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValRecipientsPerMessage" runat="server" ControlToValidate="txtRecipientsPerMessage"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
</asp:Panel>
|
|
@ -0,0 +1,183 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditDomain : WebsitePanelControlBase, IMailEditDomainControl
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
PackageInfo info = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
AdvancedSettingsPanel.Visible = PanelSecurity.EffectiveUser.Role == UserRole.Administrator;
|
||||||
|
InitValidators();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailDomain item)
|
||||||
|
{
|
||||||
|
BindMailboxes(item);
|
||||||
|
BindQuotas(item);
|
||||||
|
|
||||||
|
featuresSection.BindItem(item);
|
||||||
|
sharingSection.BindItem(item);
|
||||||
|
throttlingSection.BindItem(item);
|
||||||
|
|
||||||
|
|
||||||
|
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
|
||||||
|
{
|
||||||
|
secSharing.Visible = false;
|
||||||
|
sharingSection.Visible = false;
|
||||||
|
secThrottling.Visible = false;
|
||||||
|
throttlingSection.Visible = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sharingSection.BindItem(item);
|
||||||
|
throttlingSection.BindItem(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailDomain item)
|
||||||
|
{
|
||||||
|
item.CatchAllAccount = ddlCatchAllAccount.SelectedValue;
|
||||||
|
SaveQuotas(item);
|
||||||
|
|
||||||
|
featuresSection.SaveItem(item);
|
||||||
|
sharingSection.SaveItem(item);
|
||||||
|
throttlingSection.SaveItem(item);
|
||||||
|
|
||||||
|
|
||||||
|
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
|
||||||
|
{
|
||||||
|
secSharing.Visible = false;
|
||||||
|
sharingSection.Visible = false;
|
||||||
|
secThrottling.Visible = false;
|
||||||
|
throttlingSection.Visible = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sharingSection.SaveItem(item);
|
||||||
|
throttlingSection.SaveItem(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveQuotas(MailDomain item)
|
||||||
|
{
|
||||||
|
item.MaxDomainSizeInMB = Utils.ParseInt(txtSize.Text);
|
||||||
|
item.MaxDomainAliases = Utils.ParseInt(txtDomainAliases.Text);
|
||||||
|
item.MaxDomainUsers = Utils.ParseInt(txtUser.Text);
|
||||||
|
item.MaxAliases = Utils.ParseInt(txtUserAliases.Text);
|
||||||
|
item.MaxLists = Utils.ParseInt(txtMailingLists.Text);
|
||||||
|
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS] = txtPopRetreivalAccounts.Text;
|
||||||
|
item.MaxRecipients = Utils.ParseInt(txtRecipientsPerMessage.Text);
|
||||||
|
item.MaxMessageSize = Utils.ParseInt(txtMessageSize.Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindQuotas(MailDomain item)
|
||||||
|
{
|
||||||
|
txtSize.Text = item.MaxDomainSizeInMB.ToString();
|
||||||
|
txtDomainAliases.Text = item.MaxDomainAliases.ToString();
|
||||||
|
txtUser.Text = item.MaxDomainUsers.ToString();
|
||||||
|
txtUserAliases.Text = item.MaxAliases.ToString();
|
||||||
|
txtMailingLists.Text = item.MaxLists.ToString();
|
||||||
|
txtPopRetreivalAccounts.Text = item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS];
|
||||||
|
txtRecipientsPerMessage.Text = item.MaxRecipients.ToString();
|
||||||
|
txtMessageSize.Text = item.MaxMessageSize.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindMailboxes(MailDomain item)
|
||||||
|
{
|
||||||
|
MailAccount[] accounts = ES.Services.MailServers.GetMailAccounts(item.PackageId, false);
|
||||||
|
MailAlias[] forwardings = ES.Services.MailServers.GetMailForwardings(item.PackageId, false);
|
||||||
|
|
||||||
|
BindAccounts(item, ddlCatchAllAccount, accounts);
|
||||||
|
BindAccounts(item, ddlCatchAllAccount, forwardings);
|
||||||
|
Utils.SelectListItem(ddlCatchAllAccount, item.CatchAllAccount);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindAccounts(MailDomain item, DropDownList ddl, MailAccount[] accounts)
|
||||||
|
{
|
||||||
|
if (ddl.Items.Count == 0)
|
||||||
|
ddl.Items.Add(new ListItem(GetLocalizedString("Text.NotSelected"), ""));
|
||||||
|
|
||||||
|
foreach (MailAccount account in accounts)
|
||||||
|
{
|
||||||
|
int idx = account.Name.IndexOf("@");
|
||||||
|
string accountName = account.Name.Substring(0, idx);
|
||||||
|
string accountDomain = account.Name.Substring(idx + 1);
|
||||||
|
|
||||||
|
if (String.Compare(accountDomain, item.Name, true) == 0)
|
||||||
|
ddl.Items.Add(new ListItem(account.Name, accountName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitValidators()
|
||||||
|
{
|
||||||
|
string message = "*";
|
||||||
|
reqValRecipientsPerMessage.ErrorMessage = message;
|
||||||
|
valRecipientsPerMessage.ErrorMessage = message;
|
||||||
|
valRecipientsPerMessage.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValMessageSize.ErrorMessage = message;
|
||||||
|
valMessageSize.ErrorMessage = message;
|
||||||
|
valMessageSize.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValMailingLists.ErrorMessage = message;
|
||||||
|
valMailingLists.ErrorMessage = message;
|
||||||
|
valMailingLists.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqPopRetreivalAccounts.ErrorMessage = message;
|
||||||
|
valPopRetreivalAccounts.ErrorMessage = message;
|
||||||
|
valPopRetreivalAccounts.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValUser.ErrorMessage = message;
|
||||||
|
valUser.ErrorMessage = message;
|
||||||
|
valUser.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValUserAliases.ErrorMessage = message;
|
||||||
|
valUserAliases.ErrorMessage = message;
|
||||||
|
valUserAliases.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValDomainAliases.ErrorMessage = message;
|
||||||
|
valDomainAliases.ErrorMessage = message;
|
||||||
|
valDomainAliases.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValDiskSpace.ErrorMessage = message;
|
||||||
|
valDomainDiskSpace.ErrorMessage = message;
|
||||||
|
valDomainDiskSpace.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,429 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditDomain {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblCatchAll control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblCatchAll;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlCatchAllAccount control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlCatchAllAccount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AdvancedSettingsPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel AdvancedSettingsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secFeatures control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secFeatures;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FeaturesPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel FeaturesPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// featuresSection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Features featuresSection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secSharing control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secSharing;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SharingPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel SharingPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// sharingSection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Sharing sharingSection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secThrottling control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secThrottling;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ThrottlingPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel ThrottlingPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// throttlingSection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Throttling throttlingSection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secLimits control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LimitsPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel LimitsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDomainDiskSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblDomainDiskSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valDomainDiskSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valDomainDiskSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValDiskSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValDiskSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDomainAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblDomainAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDomainAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtDomainAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valDomainAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valDomainAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValDomainAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValDomainAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblUserQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblUserQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtUser control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtUser;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valUser control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valUser;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValUser control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValUser;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblUserAliasesQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblUserAliasesQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtUserAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtUserAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valUserAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valUserAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValUserAliases control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValUserAliases;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMailingListsQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMailingListsQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMailingLists control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMailingLists;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valMailingLists control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valMailingLists;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValMailingLists control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMailingLists;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblPopRetreivalAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblPopRetreivalAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtPopRetreivalAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtPopRetreivalAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valPopRetreivalAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valPopRetreivalAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqPopRetreivalAccounts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqPopRetreivalAccounts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMessageSizeQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMessageSizeQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMessageSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMessageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valMessageSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valMessageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValMessageSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMessageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblRecipientsPerMessageQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblRecipientsPerMessageQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtRecipientsPerMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtRecipientsPerMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRecipientsPerMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valRecipientsPerMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValRecipientsPerMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValRecipientsPerMessage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Features.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Features" %>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="lbShowcontentfilteringmenu" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbShowcontentfilteringmenu" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label2" meta:resourcekey="lbShowdomainaliasmenu" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbShowdomainaliasmenu" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label3" meta:resourcekey="lbShowlistmenu" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbShowlistmenu" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label4" meta:resourcekey="lbShowspammenu" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbShowspammenu" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label5" meta:resourcekey="lbShowDomainReports" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbShowDomainReports" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label6" meta:resourcekey="lbEnablePopRetreival" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnablePopRetreival" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label7" meta:resourcekey="lbEnableCatchAlls" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnableCatchAlls" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label8" meta:resourcekey="lbEnableIMAPRetreival" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnableIMAPRetreival" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label9" meta:resourcekey="lbEnableMailSigning" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnableEmailSigning" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label10" meta:resourcekey="lbEnableMailReports" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnableEmailReports" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label11" meta:resourcekey="lbEnableSyncML" runat="server" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbEnableSyncML" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
|
@ -0,0 +1,71 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditDomain_Features : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailDomain item)
|
||||||
|
{
|
||||||
|
item.ShowContentFilteringMenu = cbShowcontentfilteringmenu.Checked;
|
||||||
|
item.ShowDomainAliasMenu = cbShowdomainaliasmenu.Checked;
|
||||||
|
item.ShowListMenu = cbShowlistmenu.Checked;
|
||||||
|
item.ShowSpamMenu = cbShowspammenu.Checked;
|
||||||
|
item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS] = cbShowDomainReports.Checked.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED] = cbEnablePopRetreival.Checked.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED] = cbEnableCatchAlls.Checked.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED] = cbEnableIMAPRetreival.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED] = cbEnableEmailSigning.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED] = cbEnableEmailReports.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED] = cbEnableSyncML.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailDomain item)
|
||||||
|
{
|
||||||
|
cbShowcontentfilteringmenu.Checked = item.ShowContentFilteringMenu;
|
||||||
|
cbShowdomainaliasmenu.Checked = item.ShowDomainAliasMenu;
|
||||||
|
cbShowlistmenu.Checked = item.ShowListMenu;
|
||||||
|
cbShowspammenu.Checked = item.ShowSpamMenu;
|
||||||
|
cbShowDomainReports.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS]);
|
||||||
|
cbEnablePopRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED]);
|
||||||
|
cbEnableCatchAlls.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED]);
|
||||||
|
cbEnableIMAPRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED]);
|
||||||
|
cbEnableEmailSigning.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED]);
|
||||||
|
cbEnableEmailReports.Checked = Convert.ToBoolean((item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED]));
|
||||||
|
cbEnableSyncML.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,213 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditDomain_Features {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbShowcontentfilteringmenu control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbShowcontentfilteringmenu;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label2 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbShowdomainaliasmenu control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbShowdomainaliasmenu;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label3 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbShowlistmenu control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbShowlistmenu;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label4 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label4;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbShowspammenu control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbShowspammenu;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label5 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label5;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbShowDomainReports control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbShowDomainReports;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label6 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label6;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnablePopRetreival control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnablePopRetreival;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label7 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label7;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableCatchAlls control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableCatchAlls;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label8 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label8;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableIMAPRetreival control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableIMAPRetreival;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label9 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label9;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableEmailSigning control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableEmailSigning;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label10 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label10;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableEmailReports control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableEmailReports;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label11 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label11;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableSyncML control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableSyncML;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Sharing.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Sharing" %>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="cbGlobalAddressList"/></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbGlobalAddressList" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label2" runat="server" meta:resourcekey="cbSharedCalendars" /></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbSharedCalendars" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label3" runat="server" meta:resourcekey="cbSharedContacts" /></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbSharedContacts" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label4" runat="server" meta:resourcekey="cbSharedFolders"/></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbSharedFolders" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label5" runat="server" meta:resourcekey="cbSharedNotes" /></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbSharedNotes" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="Label6" runat="server" meta:resourcekey="cbSharedTasks" /></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbSharedTasks" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
|
@ -0,0 +1,63 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditDomain_Sharing : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailDomain item)
|
||||||
|
{
|
||||||
|
item.IsGlobalAddressList = cbGlobalAddressList.Checked;
|
||||||
|
item.SharedCalendars = cbSharedCalendars.Checked;
|
||||||
|
item.SharedContacts = cbSharedContacts.Checked;
|
||||||
|
item.SharedFolders = cbSharedFolders.Checked;
|
||||||
|
item.SharedNotes = cbSharedNotes.Checked;
|
||||||
|
item.SharedTasks = cbSharedTasks.Checked;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailDomain item)
|
||||||
|
{
|
||||||
|
cbGlobalAddressList.Checked = item.IsGlobalAddressList;
|
||||||
|
cbSharedCalendars.Checked = item.SharedCalendars;
|
||||||
|
cbSharedContacts.Checked = item.SharedContacts;
|
||||||
|
cbSharedFolders.Checked = item.SharedFolders;
|
||||||
|
cbSharedNotes.Checked = item.SharedNotes;
|
||||||
|
cbSharedTasks.Checked = item.SharedTasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,123 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditDomain_Sharing {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbGlobalAddressList control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbGlobalAddressList;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label2 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSharedCalendars control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSharedCalendars;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label3 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSharedContacts control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSharedContacts;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label4 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label4;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSharedFolders control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSharedFolders;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label5 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label5;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSharedNotes control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSharedNotes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Label6 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label Label6;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSharedTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSharedTasks;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Throttling.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Throttling" %>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="right" width = "200"><asp:Label ID="lbMessagesPerHour" runat="server" meta:resourcekey="lbMessagesPerHour" /></td>
|
||||||
|
<td width = "100">
|
||||||
|
<asp:TextBox runat="server" ID="txtMessagesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valMessagesPerHour" ControlToValidate="txtMessagesPerHour"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValMessagesPerHour" runat="server" ControlToValidate="txtMessagesPerHour"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
<td align="left" width = "10">
|
||||||
|
<asp:CheckBox runat="server" ID="cbMessagesPerHour" />
|
||||||
|
</td>
|
||||||
|
<td width = "50" align="left"><asp:Label ID="lbMessagesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="right" width = "200"><asp:Label ID="lbBandwidthPerHour" runat="server" meta:resourcekey="lbBandwidthPerHour" /></td>
|
||||||
|
<td width = "100">
|
||||||
|
<asp:TextBox runat="server" ID="txtBandwidthPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valBandwidthPerHour" ControlToValidate="txtBandwidthPerHour"
|
||||||
|
MinimumValue="0" Display="Dynamic" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValBandwidth" runat="server" ControlToValidate="txtBandwidthPerHour"
|
||||||
|
Display="Dynamic" />
|
||||||
|
</td>
|
||||||
|
<td align="left" width = "10">
|
||||||
|
<asp:CheckBox runat="server" ID="cbBandwidthPerHour"/>
|
||||||
|
</td>
|
||||||
|
<td width = "50" align="left"><asp:Label ID="lbBandwidthPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="right" width = "200"><asp:Label ID="lbBouncesPerHour" runat="server" meta:resourcekey="lbBouncesPerHour" /></td>
|
||||||
|
<td width = "100">
|
||||||
|
<asp:TextBox runat="server" ID="txtBouncesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||||
|
<asp:RangeValidator Type="Integer" runat="server" ID="valBouncesPerHour" ControlToValidate="txtBouncesPerHour"
|
||||||
|
MinimumValue="0" Display="None" />
|
||||||
|
<asp:RequiredFieldValidator ID="reqValBouncesPerHour" runat="server" ControlToValidate="txtBouncesPerHour"
|
||||||
|
Display="None" />
|
||||||
|
</td>
|
||||||
|
<td align="left" width = "10">
|
||||||
|
<asp:CheckBox runat="server" ID="cbBouncesPerHour" />
|
||||||
|
</td>
|
||||||
|
<td width = "50" align="left"><asp:Label ID="lbBouncesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
|
@ -0,0 +1,79 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditDomain_Throttling : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
InitValidators();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailDomain item)
|
||||||
|
{
|
||||||
|
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR] = txtMessagesPerHour.Text;
|
||||||
|
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED] = cbMessagesPerHour.Checked.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR] = txtBandwidthPerHour.Text;
|
||||||
|
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED] = cbBandwidthPerHour.Checked.ToString();
|
||||||
|
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR] = txtBouncesPerHour.Text;
|
||||||
|
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED] = cbBouncesPerHour.Checked.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailDomain item)
|
||||||
|
{
|
||||||
|
txtMessagesPerHour.Text = item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR];
|
||||||
|
cbMessagesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED]);
|
||||||
|
txtBandwidthPerHour.Text = item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR];
|
||||||
|
cbBandwidthPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED]);
|
||||||
|
txtBouncesPerHour.Text = item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR];
|
||||||
|
cbBouncesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InitValidators()
|
||||||
|
{
|
||||||
|
string message = "*";
|
||||||
|
|
||||||
|
reqValMessagesPerHour.ErrorMessage = message;
|
||||||
|
valMessagesPerHour.ErrorMessage = message;
|
||||||
|
valMessagesPerHour.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValBandwidth.ErrorMessage = message;
|
||||||
|
valBandwidthPerHour.ErrorMessage = message;
|
||||||
|
valBandwidthPerHour.MaximumValue = int.MaxValue.ToString();
|
||||||
|
|
||||||
|
reqValBouncesPerHour.ErrorMessage = message;
|
||||||
|
valBouncesPerHour.ErrorMessage = message;
|
||||||
|
valBouncesPerHour.MaximumValue = int.MaxValue.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,177 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditDomain_Throttling {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbMessagesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbMessagesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMessagesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMessagesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valMessagesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valMessagesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValMessagesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMessagesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbMessagesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbMessagesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbMessagesPerHourEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbMessagesPerHourEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbBandwidthPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbBandwidthPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtBandwidthPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtBandwidthPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valBandwidthPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valBandwidthPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValBandwidth control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValBandwidth;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbBandwidthPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbBandwidthPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbBandwidthPerHourEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbBandwidthPerHourEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbBouncesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbBouncesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtBouncesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtBouncesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valBouncesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RangeValidator valBouncesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValBouncesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValBouncesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbBouncesPerHour control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbBouncesPerHour;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbBouncesPerHourEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbBouncesPerHourEnabled;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditForwarding .ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditForwarding" %>
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditForwarding : WebsitePanelControlBase, IMailEditForwardingControl
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailAlias item)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailAlias item)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditForwarding {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditGroup.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditGroup" %>
|
||||||
|
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
|
||||||
|
<table cellSpacing="0" cellPadding="3" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap valign="top">
|
||||||
|
<asp:Label ID="lblGroupMembers" runat="server" meta:resourcekey="lblGroupMembers" Text="Group e-mails:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal" width="100%" valign="top">
|
||||||
|
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditGroup : WebsitePanelControlBase, IMailEditGroupControl
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailGroup item)
|
||||||
|
{
|
||||||
|
mailEditItems.Items = item.Members;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailGroup item)
|
||||||
|
{
|
||||||
|
item.Members = mailEditItems.Items;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditGroup {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblGroupMembers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblGroupMembers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailEditItems control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,175 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditList.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditList" %>
|
||||||
|
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
|
||||||
|
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.WebPortal.Code.Controls" Assembly="WebsitePanel.WebPortal" %>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
|
||||||
|
<table cellSpacing="0" cellPadding="3" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="List Description:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal" width="100%">
|
||||||
|
<asp:TextBox ID="txtDescription" runat="server" TextMode="MultiLine" Rows="3" Width="300px"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblModeratorAddress" runat="server" meta:resourcekey="lblModeratorAddress" Text="List Moderator:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:DropDownList ID="ddlListModerators" DataTextField="Moderator"
|
||||||
|
runat="server" Height="25px" Width="200px">
|
||||||
|
</asp:DropDownList>
|
||||||
|
<asp:RequiredFieldValidator ID="reqValModerator" runat="server" ControlToValidate="ddlListModerators"
|
||||||
|
Display="Dynamic" ErrorMessage = "*"/>
|
||||||
|
<wsp:DesktopContextValidator runat="server" ID="ctxValDomain" CssClass="QuickLabel" Display="Dynamic" EnableViewState="false"
|
||||||
|
OnEvaluatingContext="ctxValDomain_EvaluatingContext" EnableClientScript="false" meta:resourcekey="ctxValDomain" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblPostingPassword" runat="server" meta:resourcekey="lblPostingPassword" Text="Posting password:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox id="txtPassword" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||||
|
<asp:CheckBox ID="chkPasswordEnabled" runat="server" meta:resourcekey="chkPasswordEnabled" Text="Enabled" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblPostingMode" runat="server" resourcekey="lblPostingMode" Text="Posting mode:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:DropDownList id="ddlPostingMode" runat="server" resourcekey="ddlPostingMode" CssClass="NormalTextBox" Width="150px">
|
||||||
|
<asp:ListItem Value="AnyoneCanPost">Anyone</asp:ListItem>
|
||||||
|
<asp:ListItem Value="MembersCanPost">MembersOnly</asp:ListItem>
|
||||||
|
<asp:ListItem Value="ModeratorCanPost">ModeratorOnly</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSubjectPrefix" runat="server" meta:resourcekey="lblSubjectPrefix" Text="Subject Prefix:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox id="txtSubjectPrefix" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||||
|
<asp:CheckBox ID="chkSubjectPrefixEnabled" runat="server" meta:resourcekey="chkSubjectPrefixEnabled" Text="Enabled" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxMessageSize" runat="server" meta:resourcekey="lblMaxMessageSize" Text="Max Message Size, KB:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox id="txtMaxMessageSize" runat="server" CssClass="NormalTextBox" Width="50px">0</asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxRecipients" runat="server" meta:resourcekey="lblMaxRecipients" Text="Max Recipients per Message:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox id="txtMaxRecipients" runat="server" CssClass="NormalTextBox" Width="50px">10</asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal"> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right>
|
||||||
|
<asp:Label ID="lblListOptions" runat="server" meta:resourcekey="lblListOptions" Text="List Options:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkReplyToList" runat="server" meta:resourcekey="chkReplyToList" Text="Reply To List" />
|
||||||
|
</td>
|
||||||
|
<td class="Normal"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblListToAddress" runat="server" resourcekey="lblListToAddress"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:DropDownList id="ddlListToAddress" runat="server" resourcekey="ddlListToAddress" CssClass="NormalTextBox" Width="150px">
|
||||||
|
<asp:ListItem Value="DEFAULT">Default</asp:ListItem>
|
||||||
|
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||||
|
<asp:ListItem Value="SUBSCRIBERADDRESS">Subscriber Address</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblListFromAddress" runat="server" resourcekey="lblListFromAddress"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:DropDownList id="ddlListFromAddress" runat="server" resourcekey="ddlListFromAddress" CssClass="NormalTextBox" Width="150px">
|
||||||
|
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||||
|
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblListReplyToAddress" runat="server" resourcekey="lblListReplyToAddress"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:DropDownList id="ddlListReplyToAddress" runat="server" resourcekey="ddlListReplyToAddress" CssClass="NormalTextBox" Width="150px">
|
||||||
|
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||||
|
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal"> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" vAlign="top">
|
||||||
|
<asp:Label ID="lblMembers" runat="server" meta:resourcekey="lblMembers" Text="Mailing list members:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td vAlign="top">
|
||||||
|
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
 
|
||||||
|
<wsp:collapsiblepanel id="AdditionalOptions" runat="server" targetcontrolid="pAdditionalOptions"
|
||||||
|
meta:resourcekey="AdditionalOptions" ></wsp:collapsiblepanel>
|
||||||
|
<asp:Panel runat="server" ID="pAdditionalOptions">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbDigestMode" runat="server" meta:resourcekey="lbDigestMode" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbDigestMode"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbSendSubscribe" runat="server" meta:resourcekey="lbSendSubscribe" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbSendSubcsribe"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbSendUnsubscribe" runat="server" meta:resourcekey="lbSendUnsubscribe" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbSendUnsubscribe"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbAllowUnsubscribe" runat="server" meta:resourcekey="lbAllowUnsubscribe" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbAllowUnsubscribe"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbDisableListcommand" runat="server" meta:resourcekey="lbDisableListcommand" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbDisableListcommand"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="200px" align="right"><asp:Label ID="lbDisableSubscribecommand" runat="server" meta:resourcekey="lbDisableSubscribecommand" /></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" ID="cbDisableSubscribecommand"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
|
@ -0,0 +1,210 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Providers.Mail;
|
||||||
|
using WebsitePanel.WebPortal.Code.Controls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_EditList : WebsitePanelControlBase, IMailEditListControl
|
||||||
|
{
|
||||||
|
private string selectedModerator = null;
|
||||||
|
private string selectedListToAddress = null;
|
||||||
|
private string selectedListFromAddress = null;
|
||||||
|
private string selectedListReplyToAddress = null;
|
||||||
|
private string itemName = null;
|
||||||
|
private MailEditAddress ctrl = null;
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
txtPassword.Attributes["value"] = txtPassword.Text;
|
||||||
|
BindListModerators();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindItem(MailList item)
|
||||||
|
{
|
||||||
|
itemName = item.Name;
|
||||||
|
txtDescription.Text = item.Description;
|
||||||
|
if (String.IsNullOrEmpty(item.ModeratorAddress))
|
||||||
|
{
|
||||||
|
Utils.SelectListItem(ddlListModerators, GetLocalizedString("Text.SelectModerator"));
|
||||||
|
selectedModerator = GetLocalizedString("Text.SelectModerator");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Utils.SelectListItem(ddlListModerators, item.ModeratorAddress);
|
||||||
|
selectedModerator = item.ModeratorAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
chkReplyToList.Checked = (item.ReplyToMode == ReplyTo.RepliesToList);
|
||||||
|
Utils.SelectListItem(ddlPostingMode, item.PostingMode);
|
||||||
|
Utils.SelectListItem(ddlListToAddress, item.ListToAddress);
|
||||||
|
selectedListToAddress = item.ListToAddress;
|
||||||
|
Utils.SelectListItem(ddlListFromAddress, item.ListFromAddress);
|
||||||
|
selectedListFromAddress = item.ListFromAddress;
|
||||||
|
Utils.SelectListItem(ddlListReplyToAddress, item.ListReplyToAddress);
|
||||||
|
selectedListReplyToAddress = item.ListReplyToAddress;
|
||||||
|
txtPassword.Text = item.Password;
|
||||||
|
chkPasswordEnabled.Checked = item.RequirePassword;
|
||||||
|
cbDigestMode.Checked = item.DigestMode;
|
||||||
|
cbSendSubcsribe.Checked = item.SendSubscribe;
|
||||||
|
cbSendUnsubscribe.Checked = item.SendUnsubscribe;
|
||||||
|
cbAllowUnsubscribe.Checked = item.AllowUnsubscribe;
|
||||||
|
cbDisableListcommand.Checked = !item.DisableListcommand;
|
||||||
|
cbDisableSubscribecommand.Checked = !item.DisableSubscribecommand;
|
||||||
|
txtSubjectPrefix.Text = item.SubjectPrefix;
|
||||||
|
chkSubjectPrefixEnabled.Checked = item.EnableSubjectPrefix;
|
||||||
|
txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
|
||||||
|
txtMaxRecipients.Text = item.MaxRecipientsPerMessage.ToString();
|
||||||
|
|
||||||
|
// members
|
||||||
|
mailEditItems.Items = item.Members;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveItem(MailList item)
|
||||||
|
{
|
||||||
|
item.Description = txtDescription.Text;
|
||||||
|
if (ddlListModerators.SelectedValue == GetLocalizedString("Text.SelectModerator"))
|
||||||
|
{
|
||||||
|
item.ModeratorAddress = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item.ModeratorAddress = ddlListModerators.SelectedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
item.ReplyToMode = chkReplyToList.Checked ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
|
||||||
|
item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
|
||||||
|
item.ListToAddress = ddlListToAddress.SelectedValue;
|
||||||
|
item.ListFromAddress = ddlListFromAddress.SelectedValue;
|
||||||
|
item.ListReplyToAddress = ddlListReplyToAddress.SelectedValue;
|
||||||
|
item.Password = txtPassword.Text;
|
||||||
|
item.RequirePassword = chkPasswordEnabled.Checked;
|
||||||
|
item.SubjectPrefix = txtSubjectPrefix.Text;
|
||||||
|
item.EnableSubjectPrefix = chkSubjectPrefixEnabled.Checked;
|
||||||
|
item.DigestMode = cbDigestMode.Checked;
|
||||||
|
item.SendSubscribe = cbSendSubcsribe.Checked;
|
||||||
|
item.SendUnsubscribe = cbSendUnsubscribe.Checked;
|
||||||
|
item.AllowUnsubscribe = cbAllowUnsubscribe.Checked;
|
||||||
|
item.DisableListcommand = !cbDisableListcommand.Checked;
|
||||||
|
item.DisableSubscribecommand = !cbDisableSubscribecommand.Checked;
|
||||||
|
|
||||||
|
item.MaxMessageSize = Int32.Parse(txtMaxMessageSize.Text);
|
||||||
|
item.MaxRecipientsPerMessage = Int32.Parse(txtMaxRecipients.Text);
|
||||||
|
item.Members = mailEditItems.Items;
|
||||||
|
ctrl = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindListModerators()
|
||||||
|
{
|
||||||
|
|
||||||
|
string domainName = null;
|
||||||
|
if (!String.IsNullOrEmpty(itemName))
|
||||||
|
{
|
||||||
|
domainName = GetDomainName(itemName);
|
||||||
|
|
||||||
|
|
||||||
|
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
|
||||||
|
ddlListModerators.Items.Clear();
|
||||||
|
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
|
||||||
|
|
||||||
|
if (moderators != null)
|
||||||
|
foreach (MailAccount account in moderators)
|
||||||
|
{
|
||||||
|
if (GetDomainName(account.Name) == domainName)
|
||||||
|
{
|
||||||
|
if (ddlListModerators != null)
|
||||||
|
{
|
||||||
|
ddlListModerators.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListToAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListFromAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Utils.SelectListItem(ddlListModerators, selectedModerator);
|
||||||
|
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
|
||||||
|
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
|
||||||
|
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
|
||||||
|
ddlListModerators.Items.Clear();
|
||||||
|
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
|
||||||
|
|
||||||
|
if (moderators != null)
|
||||||
|
foreach (MailAccount account in moderators)
|
||||||
|
{
|
||||||
|
if (ddlListModerators != null)
|
||||||
|
{
|
||||||
|
ddlListModerators.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListToAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListFromAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Utils.SelectListItem(ddlListModerators, selectedModerator);
|
||||||
|
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
|
||||||
|
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
|
||||||
|
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetDomainName(string email)
|
||||||
|
{
|
||||||
|
return email.Substring(email.IndexOf("@") + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ctxValDomain_EvaluatingContext(object sender, DesktopValidationEventArgs e)
|
||||||
|
{
|
||||||
|
if (Parent != null) ctrl = (MailEditAddress)Parent.Parent.FindControl("emailAddress");
|
||||||
|
|
||||||
|
string moderator = ddlListModerators.SelectedValue;
|
||||||
|
|
||||||
|
if (ctrl != null)
|
||||||
|
{
|
||||||
|
if (String.Equals(GetDomainName(moderator), GetDomainName(ctrl.Email), StringComparison.InvariantCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
e.ContextIsValid = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e.ContextIsValid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,393 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_EditList {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDescription control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDescription control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblModeratorAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblModeratorAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlListModerators control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlListModerators;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// reqValModerator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValModerator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ctxValDomain control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.WebPortal.Code.Controls.DesktopContextValidator ctxValDomain;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblPostingPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblPostingPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkPasswordEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkPasswordEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblPostingMode control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblPostingMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlPostingMode control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlPostingMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSubjectPrefix control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblSubjectPrefix;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSubjectPrefix control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtSubjectPrefix;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkSubjectPrefixEnabled control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkSubjectPrefixEnabled;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxMessageSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMaxMessageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMaxMessageSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxRecipients control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMaxRecipients;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMaxRecipients control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtMaxRecipients;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblListOptions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblListOptions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkReplyToList control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkReplyToList;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblListToAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblListToAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlListToAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlListToAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblListFromAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblListFromAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlListFromAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlListFromAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblListReplyToAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblListReplyToAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlListReplyToAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlListReplyToAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMembers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblMembers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailEditItems control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AdditionalOptions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel AdditionalOptions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pAdditionalOptions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pAdditionalOptions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbDigestMode control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbDigestMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbDigestMode control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbDigestMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbSendSubscribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbSendSubscribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSendSubcsribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSendSubcsribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbSendUnsubscribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbSendUnsubscribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbSendUnsubscribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbSendUnsubscribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbAllowUnsubscribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbAllowUnsubscribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbAllowUnsubscribe control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbAllowUnsubscribe;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbDisableListcommand control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbDisableListcommand;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbDisableListcommand control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbDisableListcommand;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lbDisableSubscribecommand control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lbDisableSubscribecommand;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbDisableSubscribecommand control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbDisableSubscribecommand;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_Settings" %>
|
||||||
|
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
|
||||||
|
<table cellpadding="7" cellspacing="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" nowrap width="200">
|
||||||
|
<asp:Label ID="lblServiceUrl" runat="server" meta:resourcekey="lblServiceUrl" Text="Web Services URL:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%"><asp:TextBox Runat="server" ID="txtServiceUrl" CssClass="NormalTextBox" Width="200px"></asp:TextBox></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblPublicIP" runat="server" meta:resourcekey="lblPublicIP" Text="Public IP Address:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" UseAddressValueAsKey="true" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblDomainsPath" runat="server" meta:resourcekey="lblDomainsPath" Text="Domains Root Folder:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox Runat="server" ID="txtDomainsFolder" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblAdminLogin" runat="server" meta:resourcekey="lblAdminLogin" Text="Admin Login:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox Runat="server" ID="txtUsername" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="rowPassword" runat="server">
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblCurrPassword" runat="server" meta:resourcekey="lblCurrPassword" Text="Current Admin Password:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">*******
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblAdminPassword" runat="server" meta:resourcekey="lblAdminPassword" Text="Admin Password:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox Runat="server" ID="txtPassword" CssClass="NormalTextBox" Width="200px" TextMode="Password"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbImportDomainAdmin" meta:resourcekey="cbImportDomainAdmin"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbInheritDefaultLimits" meta:resourcekey="cbInheritDefaultLimits"/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td><asp:CheckBox runat="server" ID="cbEnableDomainAdmin" meta:resourcekey="cbEnableDomainAdmin"/></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
|
@ -0,0 +1,66 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
{
|
||||||
|
public partial class SmarterMail100_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindSettings(StringDictionary settings)
|
||||||
|
{
|
||||||
|
txtServiceUrl.Text = settings["ServiceUrl"];
|
||||||
|
ipAddress.AddressValue = settings["ServerIPAddress"];
|
||||||
|
txtDomainsFolder.Text = settings["DomainsPath"];
|
||||||
|
txtUsername.Text = settings["AdminUsername"];
|
||||||
|
ViewState["PWD"] = settings["AdminPassword"];
|
||||||
|
rowPassword.Visible = ((string)ViewState["PWD"]) != "";
|
||||||
|
cbImportDomainAdmin.Checked = Utils.ParseBool(settings[Constants.ImportDomainAdmin], false);
|
||||||
|
cbInheritDefaultLimits.Checked = Utils.ParseBool(settings[Constants.InheritDomainDefaultLimits], false);
|
||||||
|
cbEnableDomainAdmin.Checked = Utils.ParseBool(settings[Constants.EnableDomainAdministrators], false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveSettings(StringDictionary settings)
|
||||||
|
{
|
||||||
|
settings["ServiceUrl"] = txtServiceUrl.Text.Trim();
|
||||||
|
settings["ServerIPAddress"] = ipAddress.AddressValue;
|
||||||
|
settings["DomainsPath"] = txtDomainsFolder.Text.Trim();
|
||||||
|
settings["AdminUsername"] = txtUsername.Text.Trim();
|
||||||
|
settings["AdminPassword"] = (txtPassword.Text.Length > 0) ? txtPassword.Text : (string)ViewState["PWD"];
|
||||||
|
settings[Constants.ImportDomainAdmin] = cbImportDomainAdmin.Checked.ToString();
|
||||||
|
settings[Constants.InheritDomainDefaultLimits] = cbInheritDefaultLimits.Checked.ToString();
|
||||||
|
settings[Constants.EnableDomainAdministrators] = cbEnableDomainAdmin.Checked.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,150 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SmarterMail100_Settings {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblServiceUrl control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblServiceUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtServiceUrl control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtServiceUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblPublicIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblPublicIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ipAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDomainsPath control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblDomainsPath;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDomainsFolder control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtDomainsFolder;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAdminLogin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblAdminLogin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtUsername control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtUsername;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rowPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblCurrPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblCurrPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAdminPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblAdminPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtPassword control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtPassword;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbImportDomainAdmin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbImportDomainAdmin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbInheritDefaultLimits control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbInheritDefaultLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cbEnableDomainAdmin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox cbEnableDomainAdmin;
|
||||||
|
}
|
||||||
|
}
|
|
@ -68,9 +68,10 @@ namespace WebsitePanel.Portal.RDS
|
||||||
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_servers",
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_servers",
|
||||||
"SpaceID=" + PanelSecurity.PackageId));
|
"SpaceID=" + PanelSecurity.PackageId));
|
||||||
}
|
}
|
||||||
catch { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("RDSSERVER_NOT_ASSIGNED", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,4 +141,13 @@
|
||||||
<data name="gvRDSServers.Empty" xml:space="preserve">
|
<data name="gvRDSServers.Empty" xml:space="preserve">
|
||||||
<value>No RDS Servers have been added yet. To add a new RDS Servers click "Add RDS Server" button.</value>
|
<value>No RDS Servers have been added yet. To add a new RDS Servers click "Add RDS Server" button.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblPFXInstallPassword.Text" xml:space="preserve">
|
||||||
|
<value>Certificate Password</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSelectPfx.Text" xml:space="preserve">
|
||||||
|
<value>Select Certificate</value>
|
||||||
|
</data>
|
||||||
|
<data name="secSelectSertificate.Text" xml:space="preserve">
|
||||||
|
<value>Certificate</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=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="secRdsLocalAdmins" xml:space="preserve">
|
||||||
|
<value>Local Administrators</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -99,7 +99,7 @@ namespace WebsitePanel.Portal.RDS
|
||||||
|
|
||||||
private void DeleteItem(int rdsServerId)
|
private void DeleteItem(int rdsServerId)
|
||||||
{
|
{
|
||||||
ResultObject result = ES.Services.RDS.RemoveRdsServerFromOrganization(rdsServerId);
|
ResultObject result = ES.Services.RDS.RemoveRdsServerFromOrganization(PanelRequest.ItemID, rdsServerId);
|
||||||
|
|
||||||
if (!result.IsSuccess)
|
if (!result.IsSuccess)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/RDSCollectionServers.ascx" TagName="CollectionServers" TagPrefix="wsp"%>
|
<%@ Register Src="UserControls/RDSCollectionServers.ascx" TagName="CollectionServers" TagPrefix="wsp"%>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
<script type="text/javascript" src="/JavaScript/jquery.min.js?v=1.4.4"></script>
|
<script type="text/javascript" src="/JavaScript/jquery.min.js?v=1.4.4"></script>
|
||||||
|
|
||||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
@ -29,6 +30,26 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secSelectSertificate" runat="server"
|
||||||
|
TargetControlID="panelSelectSertificate" meta:resourcekey="secSelectSertificate" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelSelectSertificate">
|
||||||
|
<div style="padding: 10px;">
|
||||||
|
<div class="FormBody">
|
||||||
|
<div class="FormField">
|
||||||
|
<asp:FileUpload ID="upPFX" runat="server"/>
|
||||||
|
</div>
|
||||||
|
<div class="FormFieldDescription">
|
||||||
|
<asp:Localize runat="server" meta:resourcekey="lblPFXInstallPassword" />
|
||||||
|
</div>
|
||||||
|
<div class="FormField">
|
||||||
|
<asp:TextBox ID="txtPFXInstallPassword" runat="server" TextMode="Password" CssClass="NormalTextBox" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<fieldset id="RDSServersPanel" runat="server">
|
<fieldset id="RDSServersPanel" runat="server">
|
||||||
<legend><asp:Localize ID="locRDSServersSection" runat="server" meta:resourcekey="locRDSServersSection" Text="RDS Servers"></asp:Localize></legend>
|
<legend><asp:Localize ID="locRDSServersSection" runat="server" meta:resourcekey="locRDSServersSection" Text="RDS Servers"></asp:Localize></legend>
|
||||||
<div style="padding: 10px;">
|
<div style="padding: 10px;">
|
||||||
|
|
|
@ -75,6 +75,42 @@ namespace WebsitePanel.Portal.RDS {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valCollectionName;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secSelectSertificate control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secSelectSertificate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelSelectSertificate control.
|
||||||
|
/// </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 panelSelectSertificate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// upPFX control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.FileUpload upPFX;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtPFXInstallPassword control.
|
||||||
|
/// </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 txtPFXInstallPassword;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// RDSServersPanel control.
|
/// RDSServersPanel control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.RDS
|
||||||
|
{
|
||||||
|
public partial class RdsLocalAdmins : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
var collectionLocalAdmins = ES.Services.RDS.GetRdsCollectionLocalAdmins(PanelRequest.CollectionID);
|
||||||
|
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||||
|
|
||||||
|
litCollectionName.Text = collection.DisplayName;
|
||||||
|
users.SetUsers(collectionLocalAdmins);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool SaveLocalAdmins()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ES.Services.RDS.SaveRdsCollectionLocalAdmins(users.GetUsers(), PanelRequest.CollectionID);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("RDSLOCALADMINS_NOT_ADDED", ex);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SaveLocalAdmins();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSaveExit_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SaveLocalAdmins())
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", "SpaceID=" + PanelSecurity.PackageId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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.RDS {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class RdsLocalAdmins {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// imgEditRDSCollection control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Image imgEditRDSCollection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle control.
|
||||||
|
/// </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 locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litCollectionName control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Literal litCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RdsServerTabs tabs;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secRdsLocalAdmins control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secRdsLocalAdmins;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelRdsLocalAdmins control.
|
||||||
|
/// </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 panelRdsLocalAdmins;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// users control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RDSCollectionUsers users;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// buttonPanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSLocalAdmins.ascx.cs" Inherits="WebsitePanel.Portal.RDS.RdsLocalAdmins" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/RDSCollectionTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/RDSCollectionUsers.ascx" TagName="CollectionUsers" TagPrefix="wsp"%>
|
||||||
|
<script type="text/javascript" src="/JavaScript/jquery.min.js?v=1.4.4"></script>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="imgEditRDSCollection" SkinID="EnterpriseStorageSpace48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit RDS Collection"></asp:Localize>
|
||||||
|
-
|
||||||
|
<asp:Literal ID="litCollectionName" runat="server" Text="" />
|
||||||
|
</div>
|
||||||
|
<div class="FormContentRDS">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="rds_collection_local_admins" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secRdsLocalAdmins" runat="server"
|
||||||
|
TargetControlID="panelRdsLocalAdmins" meta:resourcekey="secRdsLocalAdmins" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelRdsLocalAdmins">
|
||||||
|
<div style="padding: 10px;">
|
||||||
|
<wsp:CollectionUsers id="users" runat="server" />
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||||
|
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -132,4 +132,7 @@
|
||||||
<data name="Tab.UserSessions" xml:space="preserve">
|
<data name="Tab.UserSessions" xml:space="preserve">
|
||||||
<value>User Sessions</value>
|
<value>User Sessions</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Tab.LocalAdmins" xml:space="preserve">
|
||||||
|
<value>Local Administrators</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -25,6 +25,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
tabsList.Add(CreateTab("rds_collection_edit_apps", "Tab.RdsApplications"));
|
tabsList.Add(CreateTab("rds_collection_edit_apps", "Tab.RdsApplications"));
|
||||||
tabsList.Add(CreateTab("rds_collection_edit_users", "Tab.RdsUsers"));
|
tabsList.Add(CreateTab("rds_collection_edit_users", "Tab.RdsUsers"));
|
||||||
tabsList.Add(CreateTab("rds_collection_user_sessions", "Tab.UserSessions"));
|
tabsList.Add(CreateTab("rds_collection_user_sessions", "Tab.UserSessions"));
|
||||||
|
tabsList.Add(CreateTab("rds_collection_local_admins", "Tab.LocalAdmins"));
|
||||||
|
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="btnApply.Text" xml:space="preserve">
|
||||||
|
<value>Apply</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlMailAccountActionsItem.Actions" xml:space="preserve">
|
||||||
|
<value>- Actions -</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlMailAccountActionsItem.Disable" xml:space="preserve">
|
||||||
|
<value>Disable</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlMailAccountActionsItem.Enable" xml:space="preserve">
|
||||||
|
<value>Enable</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1,7 +1,7 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainActions.ascx.cs" Inherits="WebsitePanel.Portal.DomainActions" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainActions.ascx.cs" Inherits="WebsitePanel.Portal.DomainActions" %>
|
||||||
|
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
function ShowProrgess(btn) {
|
function ShowProgress(btn) {
|
||||||
var action = $(btn).prev().val();
|
var action = $(btn).prev().val();
|
||||||
|
|
||||||
if (action === 1) {
|
if (action === 1) {
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
|
|
||||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProrgess(this);" />
|
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||||
|
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
public string WrapComment(string text)
|
public string WrapComment(string text)
|
||||||
{
|
{
|
||||||
return (text != null) ? PortalAntiXSS.EncodeOld(text.Replace("\n", "<br/>")) : text;
|
return (text != null) ? Server.HtmlEncode(text).Replace("\n", "<br/>") : text;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void gvComments_RowDeleting(object sender, GridViewDeleteEventArgs e)
|
protected void gvComments_RowDeleting(object sender, GridViewDeleteEventArgs e)
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MailAccountActions.ascx.cs" Inherits="WebsitePanel.Portal.MailAccountActions" %>
|
||||||
|
|
||||||
|
<script language="javascript">
|
||||||
|
function ShowProgress(btn) {
|
||||||
|
var action = $(btn).prev().val();
|
||||||
|
|
||||||
|
if (action === 1) {
|
||||||
|
ShowProgressDialog("Enabling mail account...");
|
||||||
|
} else if (action === 2) {
|
||||||
|
ShowProgressDialog("Disabling mail account...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
|
||||||
|
<ContentTemplate>
|
||||||
|
|
||||||
|
<asp:DropDownList ID="ddlMailAccountActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlWebsiteActions" AutoPostBack="True">
|
||||||
|
<asp:ListItem Value="0">Actions</asp:ListItem>
|
||||||
|
<asp:ListItem Value="1">Disable</asp:ListItem>
|
||||||
|
<asp:ListItem Value="2">Enable</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
|
||||||
|
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||||
|
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||||
|
|
||||||
|
</ContentTemplate>
|
||||||
|
|
||||||
|
<Triggers>
|
||||||
|
<asp:PostBackTrigger ControlID="btnApply" />
|
||||||
|
</Triggers>
|
||||||
|
</asp:UpdatePanel>
|
|
@ -0,0 +1,109 @@
|
||||||
|
// Copyright (c) 2015, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.UI.WebControls.WebParts;
|
||||||
|
using System.Web.UI.HtmlControls;
|
||||||
|
using Microsoft.Web.Services3.Referral;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||||
|
using WebsitePanel.Portal.UserControls;
|
||||||
|
using WebsitePanel.Providers;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public enum MailAccountActionTypes
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Disable = 1,
|
||||||
|
Enable = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
public partial class MailAccountActions : ActionListControlBase<MailAccountActionTypes>
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override DropDownList ActionsList
|
||||||
|
{
|
||||||
|
get { return ddlMailAccountActions; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override int DoAction(List<int> ids)
|
||||||
|
{
|
||||||
|
switch (SelectedAction)
|
||||||
|
{
|
||||||
|
case MailAccountActionTypes.Disable:
|
||||||
|
return ChangeMailAccountState(false, ids);
|
||||||
|
case MailAccountActionTypes.Enable:
|
||||||
|
return ChangeMailAccountState(true, ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnApply_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
switch (SelectedAction)
|
||||||
|
{
|
||||||
|
case MailAccountActionTypes.Disable:
|
||||||
|
case MailAccountActionTypes.Enable:
|
||||||
|
FireExecuteAction();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int ChangeMailAccountState(bool enable, List<int> ids)
|
||||||
|
{
|
||||||
|
foreach (var id in ids)
|
||||||
|
{
|
||||||
|
var mailAccount = ES.Services.MailServers.GetMailAccount(id);
|
||||||
|
mailAccount.Enabled = enable;
|
||||||
|
int result = ES.Services.MailServers.UpdateMailAccount(mailAccount);
|
||||||
|
|
||||||
|
if (result < 0)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class MailAccountActions {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblActions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.UpdatePanel tblActions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlMailAccountActions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlMailAccountActions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnApply control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnApply;
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,6 +3,7 @@
|
||||||
<%@ Register Src="ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %>
|
<%@ Register Src="ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="WebsiteActions.ascx" TagName="WebsiteActions" TagPrefix="wsp" %>
|
<%@ Register Src="WebsiteActions.ascx" TagName="WebsiteActions" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="MailAccountActions.ascx" TagName="MailAccountActions" TagPrefix="wsp" %>
|
||||||
|
|
||||||
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
@ -21,8 +22,12 @@
|
||||||
<div class="Right">
|
<div class="Right">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
|
<%-- Action lists --%>
|
||||||
<td>
|
<td>
|
||||||
|
<%-- Web Sites --%>
|
||||||
<wsp:WebsiteActions ID="websiteActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
|
<wsp:WebsiteActions ID="websiteActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
|
||||||
|
<%-- Mail Accounts --%>
|
||||||
|
<wsp:MailAccountActions ID="mailActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
|
||||||
</td>
|
</td>
|
||||||
<td class="FormButtonsBarCleanSeparator"></td>
|
<td class="FormButtonsBarCleanSeparator"></td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -91,12 +91,6 @@ namespace WebsitePanel.Portal.UserControls
|
||||||
set { EnsureChildControls(); QuotasPanel.Visible = value; }
|
set { EnsureChildControls(); QuotasPanel.Visible = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ShowActions
|
|
||||||
{
|
|
||||||
get { EnsureChildControls(); return QuotasPanel.Visible; }
|
|
||||||
set { EnsureChildControls(); websiteActions.Visible = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
//HideServiceColumns(gvWebSites);
|
//HideServiceColumns(gvWebSites);
|
||||||
|
@ -120,6 +114,8 @@ namespace WebsitePanel.Portal.UserControls
|
||||||
gvItems.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
gvItems.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
||||||
gvItems.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
gvItems.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
||||||
|
|
||||||
|
ShowActionList();
|
||||||
|
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
// toggle controls
|
// toggle controls
|
||||||
|
@ -213,5 +209,23 @@ namespace WebsitePanel.Portal.UserControls
|
||||||
lnkView.Text = localizedLinkText != null ? localizedLinkText : ViewLinkText;
|
lnkView.Text = localizedLinkText != null ? localizedLinkText : ViewLinkText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ShowActionList()
|
||||||
|
{
|
||||||
|
websiteActions.Visible = false;
|
||||||
|
mailActions.Visible = false;
|
||||||
|
|
||||||
|
switch (QuotaName)
|
||||||
|
{
|
||||||
|
case "Web.Sites":
|
||||||
|
websiteActions.Visible = true;
|
||||||
|
break;
|
||||||
|
case "Mail.Accounts":
|
||||||
|
ProviderInfo provider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, "Mail");
|
||||||
|
if (provider.EditorControl == "SmarterMail100")
|
||||||
|
mailActions.Visible = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,15 @@ namespace WebsitePanel.Portal.UserControls {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.WebsiteActions websiteActions;
|
protected global::WebsitePanel.Portal.WebsiteActions websiteActions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailActions control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.MailAccountActions mailActions;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// searchBox control.
|
/// searchBox control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
return ShowProgressDialog(text);
|
return ShowProgressDialog(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ShowProrgess(btn) {
|
function ShowProgress(btn) {
|
||||||
var action = $(btn).prev().val();
|
var action = $(btn).prev().val();
|
||||||
|
|
||||||
if (action == 1) {
|
if (action == 1) {
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
|
|
||||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProrgess(this);" />
|
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||||
|
|
||||||
|
|
||||||
<ajaxToolkit:ModalPopupExtender ID="Modal" runat="server" EnableViewState="true" TargetControlID="FakeModalPopupTarget"
|
<ajaxToolkit:ModalPopupExtender ID="Modal" runat="server" EnableViewState="true" TargetControlID="FakeModalPopupTarget"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebsiteActions.ascx.cs" Inherits="WebsitePanel.Portal.WebsiteActions" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebsiteActions.ascx.cs" Inherits="WebsitePanel.Portal.WebsiteActions" %>
|
||||||
|
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
function ShowProrgess(btn) {
|
function ShowProgress(btn) {
|
||||||
var action = $(btn).prev().val();
|
var action = $(btn).prev().val();
|
||||||
|
|
||||||
if (action === 1) {
|
if (action === 1) {
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
|
|
||||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProrgess(this);" />
|
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||||
|
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
|
|
||||||
|
|
|
@ -9,5 +9,4 @@
|
||||||
CreateControlID="add_site"
|
CreateControlID="add_site"
|
||||||
GroupName="Web"
|
GroupName="Web"
|
||||||
TypeName="WebsitePanel.Providers.Web.WebSite, WebsitePanel.Providers.Base"
|
TypeName="WebsitePanel.Providers.Web.WebSite, WebsitePanel.Providers.Base"
|
||||||
QuotaName="Web.Sites"
|
QuotaName="Web.Sites" />
|
||||||
ShowActions = "True" />
|
|
|
@ -229,6 +229,69 @@
|
||||||
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditAccount.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditAccount.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Features.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Features.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Sharing.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Sharing.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Throttling.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditDomain_Throttling.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditForwarding .ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditForwarding .ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditForwarding .ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditForwarding .ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditGroup.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditGroup.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditGroup.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditGroup.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditList.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditList.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_EditList.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_EditList.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_Settings.ascx.cs">
|
||||||
|
<DependentUpon>SmarterMail100_Settings.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProviderControls\SmarterMail100_Settings.ascx.designer.cs">
|
||||||
|
<DependentUpon>SmarterMail100_Settings.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ProviderControls\Windows2012_Settings.ascx.cs">
|
<Compile Include="ProviderControls\Windows2012_Settings.ascx.cs">
|
||||||
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -330,6 +393,13 @@
|
||||||
<Compile Include="RDS\RDSCollections.ascx.designer.cs">
|
<Compile Include="RDS\RDSCollections.ascx.designer.cs">
|
||||||
<DependentUpon>RDSCollections.ascx</DependentUpon>
|
<DependentUpon>RDSCollections.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="RDS\RDSLocalAdmins.ascx.cs">
|
||||||
|
<DependentUpon>RDSLocalAdmins.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="RDS\RDSLocalAdmins.ascx.designer.cs">
|
||||||
|
<DependentUpon>RDSLocalAdmins.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="RDS\RDSUserSessions.ascx.cs">
|
<Compile Include="RDS\RDSUserSessions.ascx.cs">
|
||||||
<DependentUpon>RDSUserSessions.ascx</DependentUpon>
|
<DependentUpon>RDSUserSessions.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -901,6 +971,13 @@
|
||||||
<Compile Include="UserControls\DomainActions.ascx.designer.cs">
|
<Compile Include="UserControls\DomainActions.ascx.designer.cs">
|
||||||
<DependentUpon>DomainActions.ascx</DependentUpon>
|
<DependentUpon>DomainActions.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="UserControls\MailAccountActions.ascx.cs">
|
||||||
|
<DependentUpon>MailAccountActions.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UserControls\MailAccountActions.ascx.designer.cs">
|
||||||
|
<DependentUpon>MailAccountActions.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="UserControls\WebsiteActions.ascx.cs">
|
<Compile Include="UserControls\WebsiteActions.ascx.cs">
|
||||||
<DependentUpon>WebsiteActions.ascx</DependentUpon>
|
<DependentUpon>WebsiteActions.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -4379,6 +4456,15 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
||||||
<Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" />
|
<Content Include="ExchangeServer\ExchangeCheckDomainName.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditAccount.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditDomain.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditDomain_Features.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditDomain_Sharing.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditDomain_Throttling.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditForwarding .ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditGroup.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_EditList.ascx" />
|
||||||
|
<Content Include="ProviderControls\SmarterMail100_Settings.ascx" />
|
||||||
<Content Include="ProviderControls\Windows2012_Settings.ascx" />
|
<Content Include="ProviderControls\Windows2012_Settings.ascx" />
|
||||||
<Content Include="ExchangeServer\OrganizationDeletedUsers.ascx" />
|
<Content Include="ExchangeServer\OrganizationDeletedUsers.ascx" />
|
||||||
<Content Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx" />
|
<Content Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx" />
|
||||||
|
@ -4386,6 +4472,33 @@
|
||||||
<Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" />
|
<Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" />
|
||||||
<Content Include="RDSServersAddserver.ascx" />
|
<Content Include="RDSServersAddserver.ascx" />
|
||||||
<Content Include="RDSServers.ascx" />
|
<Content Include="RDSServers.ascx" />
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_Settings.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditAccount.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Features.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Sharing.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditDomain_Throttling.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditForwarding.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditGroup.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\SmarterMail100_EditList.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
|
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
|
||||||
<Content Include="RDS\AssignedRDSServers.ascx" />
|
<Content Include="RDS\AssignedRDSServers.ascx" />
|
||||||
<Content Include="RDS\AddRDSServer.ascx" />
|
<Content Include="RDS\AddRDSServer.ascx" />
|
||||||
|
@ -4396,6 +4509,7 @@
|
||||||
<Content Include="RDS\RDSEditCollectionUsers.ascx" />
|
<Content Include="RDS\RDSEditCollectionUsers.ascx" />
|
||||||
<Content Include="RDS\RDSCreateCollection.ascx" />
|
<Content Include="RDS\RDSCreateCollection.ascx" />
|
||||||
<Content Include="RDS\RDSCollections.ascx" />
|
<Content Include="RDS\RDSCollections.ascx" />
|
||||||
|
<Content Include="RDS\RDSLocalAdmins.ascx" />
|
||||||
<Content Include="RDS\RDSUserSessions.ascx" />
|
<Content Include="RDS\RDSUserSessions.ascx" />
|
||||||
<Content Include="RDS\UserControls\RDSCollectionApps.ascx" />
|
<Content Include="RDS\UserControls\RDSCollectionApps.ascx" />
|
||||||
<Content Include="RDS\UserControls\RDSCollectionServers.ascx" />
|
<Content Include="RDS\UserControls\RDSCollectionServers.ascx" />
|
||||||
|
@ -4419,6 +4533,7 @@
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="RDS\App_LocalResources\RDSUserSessions.ascx.resx" />
|
<Content Include="RDS\App_LocalResources\RDSUserSessions.ascx.resx" />
|
||||||
|
<Content Include="RDS\App_LocalResources\RDSLocalAdmins.ascx.resx" />
|
||||||
<EmbeddedResource Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.resx">
|
<EmbeddedResource Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>DomainLookupView.ascx.Designer.cs</LastGenOutput>
|
<LastGenOutput>DomainLookupView.ascx.Designer.cs</LastGenOutput>
|
||||||
|
@ -4498,6 +4613,7 @@
|
||||||
<Content Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx" />
|
<Content Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx" />
|
||||||
<Content Include="UserControls\ItemButtonPanel.ascx" />
|
<Content Include="UserControls\ItemButtonPanel.ascx" />
|
||||||
<Content Include="UserControls\DomainActions.ascx" />
|
<Content Include="UserControls\DomainActions.ascx" />
|
||||||
|
<Content Include="UserControls\MailAccountActions.ascx" />
|
||||||
<Content Include="UserControls\WebsiteActions.ascx" />
|
<Content Include="UserControls\WebsiteActions.ascx" />
|
||||||
<Content Include="UserControls\UserActions.ascx" />
|
<Content Include="UserControls\UserActions.ascx" />
|
||||||
<Content Include="UserOrganization.ascx" />
|
<Content Include="UserOrganization.ascx" />
|
||||||
|
@ -4570,6 +4686,7 @@
|
||||||
<Content Include="PhoneNumbersEditPhoneNumber.ascx" />
|
<Content Include="PhoneNumbersEditPhoneNumber.ascx" />
|
||||||
<Content Include="UserControls\App_LocalResources\UserActions.ascx.resx" />
|
<Content Include="UserControls\App_LocalResources\UserActions.ascx.resx" />
|
||||||
<Content Include="UserControls\App_LocalResources\DomainActions.ascx.resx" />
|
<Content Include="UserControls\App_LocalResources\DomainActions.ascx.resx" />
|
||||||
|
<Content Include="UserControls\App_LocalResources\MailAccountActions.ascx.resx" />
|
||||||
<EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" />
|
<EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue