merge commit
This commit is contained in:
commit
c29f565c0b
50 changed files with 1307 additions and 822 deletions
|
@ -6074,15 +6074,84 @@ GO
|
||||||
|
|
||||||
-- wsp-10269: Changed php extension path in default properties for IIS70 and IIS80 provider
|
-- wsp-10269: Changed php extension path in default properties for IIS70 and IIS80 provider
|
||||||
update ServiceDefaultProperties
|
update ServiceDefaultProperties
|
||||||
set PhpPath='%PROGRAMFILES(x86)%\PHP\php-cgi.exe'
|
set PropertyValue='%PROGRAMFILES(x86)%\PHP\php-cgi.exe'
|
||||||
where ProviderId in(101, 105)
|
where PropertyName='PhpPath' and ProviderId in(101, 105)
|
||||||
|
|
||||||
update ServiceDefaultProperties
|
update ServiceDefaultProperties
|
||||||
set Php4Path='%PROGRAMFILES(x86)%\PHP\ph.exe'
|
set PropertyValue='%PROGRAMFILES(x86)%\PHP\php.exe'
|
||||||
where ProviderId in(101, 105)
|
where PropertyName='Php4Path' and ProviderId in(101, 105)
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
-- Exchange2013 Shared and resource mailboxes
|
||||||
|
|
||||||
|
-- Exchange2013 Shared and resource mailboxes Quotas
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'Exchange2013.SharedMailboxes')
|
||||||
|
BEGIN
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota])
|
||||||
|
VALUES (429, 12, 30, N'Exchange2013.SharedMailboxes', N'Shared Mailboxes per Organization', 2, 0, NULL, NULL)
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'Exchange2013.ResourceMailboxes')
|
||||||
|
BEGIN
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota])
|
||||||
|
VALUES (428, 12, 31, N'Exchange2013.ResourceMailboxes', N'Resource Mailboxes per Organization', 2, 0, NULL, NULL)
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Exchange2013 Shared and resource mailboxes Organization statistics
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetExchangeOrganizationStatistics]
|
||||||
|
(
|
||||||
|
@ItemID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
DECLARE @ARCHIVESIZE INT
|
||||||
|
IF -1 in (SELECT B.ArchiveSizeMB FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID)
|
||||||
|
BEGIN
|
||||||
|
SET @ARCHIVESIZE = -1
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
SET @ARCHIVESIZE = (SELECT SUM(B.ArchiveSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID)
|
||||||
|
END
|
||||||
|
|
||||||
|
IF -1 IN (SELECT B.MailboxSizeMB FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID)
|
||||||
|
BEGIN
|
||||||
|
SELECT
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 11) AND ItemID = @ItemID) AS CreatedResourceMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains,
|
||||||
|
(SELECT MIN(B.MailboxSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedDiskSpace,
|
||||||
|
(SELECT MIN(B.RecoverableItemsSpace) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedLitigationHoldSpace,
|
||||||
|
@ARCHIVESIZE AS UsedArchingStorage
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
SELECT
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 11) AND ItemID = @ItemID) AS CreatedResourceMailboxes,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders,
|
||||||
|
(SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains,
|
||||||
|
(SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedDiskSpace,
|
||||||
|
(SELECT SUM(B.RecoverableItemsSpace) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedLitigationHoldSpace,
|
||||||
|
@ARCHIVESIZE AS UsedArchingStorage
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
-- Hyper-V 2012 R2
|
-- Hyper-V 2012 R2
|
||||||
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'Microsoft Hyper-V 2012 R2')
|
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'Microsoft Hyper-V 2012 R2')
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -123,6 +123,9 @@ order by rg.groupOrder
|
||||||
public const string EXCHANGE2013_ARCHIVINGSTORAGE = "Exchange2013.ArchivingStorage"; // Archiving
|
public const string EXCHANGE2013_ARCHIVINGSTORAGE = "Exchange2013.ArchivingStorage"; // Archiving
|
||||||
public const string EXCHANGE2013_ARCHIVINGMAILBOXES = "Exchange2013.ArchivingMailboxes";
|
public const string EXCHANGE2013_ARCHIVINGMAILBOXES = "Exchange2013.ArchivingMailboxes";
|
||||||
|
|
||||||
|
public const string EXCHANGE2013_SHAREDMAILBOXES = "Exchange2013.SharedMailboxes"; // Shared and resource mailboxes
|
||||||
|
public const string EXCHANGE2013_RESOURCEMAILBOXES = "Exchange2013.ResourceMailboxes";
|
||||||
|
|
||||||
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
||||||
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
||||||
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
||||||
|
|
|
@ -193,6 +193,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
stats.UsedDiskSpace = tempStats.UsedDiskSpace;
|
stats.UsedDiskSpace = tempStats.UsedDiskSpace;
|
||||||
stats.UsedLitigationHoldSpace = tempStats.UsedLitigationHoldSpace;
|
stats.UsedLitigationHoldSpace = tempStats.UsedLitigationHoldSpace;
|
||||||
stats.UsedArchingStorage = tempStats.UsedArchingStorage;
|
stats.UsedArchingStorage = tempStats.UsedArchingStorage;
|
||||||
|
|
||||||
|
stats.CreatedSharedMailboxes = tempStats.CreatedSharedMailboxes;
|
||||||
|
stats.CreatedResourceMailboxes = tempStats.CreatedResourceMailboxes;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -221,6 +224,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
stats.UsedDiskSpace += tempStats.UsedDiskSpace;
|
stats.UsedDiskSpace += tempStats.UsedDiskSpace;
|
||||||
stats.UsedLitigationHoldSpace += tempStats.UsedLitigationHoldSpace;
|
stats.UsedLitigationHoldSpace += tempStats.UsedLitigationHoldSpace;
|
||||||
stats.UsedArchingStorage += tempStats.UsedArchingStorage;
|
stats.UsedArchingStorage += tempStats.UsedArchingStorage;
|
||||||
|
|
||||||
|
stats.CreatedSharedMailboxes += tempStats.CreatedSharedMailboxes;
|
||||||
|
stats.CreatedResourceMailboxes += tempStats.CreatedResourceMailboxes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -241,6 +247,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
stats.AllocatedLitigationHoldSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
stats.AllocatedLitigationHoldSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
||||||
stats.AllocatedArchingStorage = cntx.Quotas[Quotas.EXCHANGE2013_ARCHIVINGSTORAGE].QuotaAllocatedValue;
|
stats.AllocatedArchingStorage = cntx.Quotas[Quotas.EXCHANGE2013_ARCHIVINGSTORAGE].QuotaAllocatedValue;
|
||||||
|
|
||||||
|
stats.AllocatedSharedMailboxes = cntx.Quotas[Quotas.EXCHANGE2013_SHAREDMAILBOXES].QuotaAllocatedValue;
|
||||||
|
stats.AllocatedResourceMailboxes = cntx.Quotas[Quotas.EXCHANGE2013_RESOURCEMAILBOXES].QuotaAllocatedValue;
|
||||||
|
|
||||||
return stats;
|
return stats;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -1665,8 +1674,21 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// check mailbox quota
|
// check mailbox quota
|
||||||
OrganizationStatistics orgStats = GetOrganizationStatistics(itemId);
|
OrganizationStatistics orgStats = GetOrganizationStatistics(itemId);
|
||||||
if ((orgStats.AllocatedMailboxes > -1) && (orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes))
|
if (accountType == ExchangeAccountType.SharedMailbox)
|
||||||
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
{
|
||||||
|
if ((orgStats.AllocatedSharedMailboxes > -1) && (orgStats.CreatedSharedMailboxes >= orgStats.AllocatedSharedMailboxes))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
||||||
|
}
|
||||||
|
else if (accountType == ExchangeAccountType.ResourceMailbox)
|
||||||
|
{
|
||||||
|
if ((orgStats.AllocatedResourceMailboxes > -1) && (orgStats.CreatedResourceMailboxes >= orgStats.AllocatedResourceMailboxes))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((orgStats.AllocatedMailboxes > -1) && (orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// place log record
|
// place log record
|
||||||
|
|
|
@ -39,7 +39,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Equipment = 6,
|
Equipment = 6,
|
||||||
User = 7,
|
User = 7,
|
||||||
SecurityGroup = 8,
|
SecurityGroup = 8,
|
||||||
DefaultSecurityGroup = 9
|
DefaultSecurityGroup = 9,
|
||||||
|
SharedMailbox = 10,
|
||||||
|
ResourceMailbox = 11
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,6 +341,36 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
get { return usedArchingStorage; }
|
get { return usedArchingStorage; }
|
||||||
set { usedArchingStorage = value; }
|
set { usedArchingStorage = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int allocatedSharedMailboxes;
|
||||||
|
public int AllocatedSharedMailboxes
|
||||||
|
{
|
||||||
|
get { return allocatedSharedMailboxes; }
|
||||||
|
set { allocatedSharedMailboxes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
int createdSharedMailboxes;
|
||||||
|
public int CreatedSharedMailboxes
|
||||||
|
{
|
||||||
|
get { return createdSharedMailboxes; }
|
||||||
|
set { createdSharedMailboxes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
int allocatedResourceMailboxes;
|
||||||
|
public int AllocatedResourceMailboxes
|
||||||
|
{
|
||||||
|
get { return allocatedResourceMailboxes; }
|
||||||
|
set { allocatedResourceMailboxes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
int createdResourceMailboxes;
|
||||||
|
public int CreatedResourceMailboxes
|
||||||
|
{
|
||||||
|
get { return createdResourceMailboxes; }
|
||||||
|
set { createdResourceMailboxes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
{
|
||||||
|
public enum RdsPolicyTypes
|
||||||
|
{
|
||||||
|
RdCap,
|
||||||
|
RdRap
|
||||||
|
}
|
||||||
|
}
|
|
@ -125,6 +125,7 @@
|
||||||
<Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" />
|
<Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsCollection.cs" />
|
<Compile Include="RemoteDesktopServices\RdsCollection.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsCollectionPaged.cs" />
|
<Compile Include="RemoteDesktopServices\RdsCollectionPaged.cs" />
|
||||||
|
<Compile Include="RemoteDesktopServices\RdsPolicyTypes.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsServer.cs" />
|
<Compile Include="RemoteDesktopServices\RdsServer.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsServersPaged.cs" />
|
<Compile Include="RemoteDesktopServices\RdsServersPaged.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RemoteApplication.cs" />
|
<Compile Include="RemoteDesktopServices\RemoteApplication.cs" />
|
||||||
|
|
|
@ -1942,6 +1942,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("Equipment");
|
cmd.Parameters.Add("Equipment");
|
||||||
else if (accountType == ExchangeAccountType.Room)
|
else if (accountType == ExchangeAccountType.Room)
|
||||||
cmd.Parameters.Add("Room");
|
cmd.Parameters.Add("Room");
|
||||||
|
else if (accountType == ExchangeAccountType.SharedMailbox)
|
||||||
|
cmd.Parameters.Add("Shared");
|
||||||
|
else if (accountType == ExchangeAccountType.ResourceMailbox)
|
||||||
|
cmd.Parameters.Add("Equipment");
|
||||||
|
|
||||||
|
|
||||||
result = ExecuteShellCommand(runSpace, cmd);
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
@ -4790,6 +4795,10 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckOrganizationRootPublicFolderPermission(runSpace, organizationId);
|
CheckOrganizationRootPublicFolderPermission(runSpace, organizationId);
|
||||||
|
|
||||||
|
// exchange transport needs access to create new items in order to deliver email
|
||||||
|
AddPublicFolderClientPermission(runSpace, folder, "Anonymous", "CreateItems");
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
@ -369,6 +369,10 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("Equipment");
|
cmd.Parameters.Add("Equipment");
|
||||||
else if (accountType == ExchangeAccountType.Room)
|
else if (accountType == ExchangeAccountType.Room)
|
||||||
cmd.Parameters.Add("Room");
|
cmd.Parameters.Add("Room");
|
||||||
|
else if (accountType == ExchangeAccountType.SharedMailbox)
|
||||||
|
cmd.Parameters.Add("Shared");
|
||||||
|
else if (accountType == ExchangeAccountType.ResourceMailbox)
|
||||||
|
cmd.Parameters.Add("Equipment");
|
||||||
|
|
||||||
result = ExecuteShellCommand(runSpace, cmd);
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
|
|
@ -194,19 +194,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
ActiveDirectoryUtils.CreateGroup(orgPath, GetUsersGroupName(collection.Name));
|
ActiveDirectoryUtils.CreateGroup(orgPath, GetUsersGroupName(collection.Name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var capPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdCap);
|
||||||
|
var rapPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdRap);
|
||||||
|
|
||||||
foreach (var gateway in Gateways)
|
foreach (var gateway in Gateways)
|
||||||
{
|
{
|
||||||
if (!CentralNps)
|
if (!CentralNps)
|
||||||
{
|
{
|
||||||
CreateRdCapForce(runSpace, gateway, collection.Name, new List<string> { GetUsersGroupName(collection.Name) });
|
CreateRdCapForce(runSpace, gateway, capPolicyName, collection.Name, new List<string> { GetUsersGroupName(collection.Name) });
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateRdRapForce(runSpace, gateway, collection.Name, new List<string> { GetUsersGroupName(collection.Name) });
|
CreateRdRapForce(runSpace, gateway, rapPolicyName, collection.Name, new List<string> { GetUsersGroupName(collection.Name) });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CentralNps)
|
if (CentralNps)
|
||||||
{
|
{
|
||||||
CreateCentralNpsPolicy(runSpace, CentralNpsHost, collection.Name, organizationId);
|
CreateCentralNpsPolicy(runSpace, CentralNpsHost, capPolicyName, collection.Name, organizationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//add user group to collection
|
//add user group to collection
|
||||||
|
@ -278,19 +281,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
|
||||||
|
var capPolicyName = GetPolicyName(organizationId, collectionName, RdsPolicyTypes.RdCap);
|
||||||
|
var rapPolicyName = GetPolicyName(organizationId, collectionName, RdsPolicyTypes.RdRap);
|
||||||
|
|
||||||
foreach (var gateway in Gateways)
|
foreach (var gateway in Gateways)
|
||||||
{
|
{
|
||||||
if (!CentralNps)
|
if (!CentralNps)
|
||||||
{
|
{
|
||||||
RemoveRdCap(runSpace, gateway, collectionName);
|
RemoveRdCap(runSpace, gateway, capPolicyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveRdRap(runSpace, gateway, collectionName);
|
RemoveRdRap(runSpace, gateway, rapPolicyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CentralNps)
|
if (CentralNps)
|
||||||
{
|
{
|
||||||
RemoveNpsPolicy(runSpace, CentralNpsHost, collectionName);
|
RemoveNpsPolicy(runSpace, CentralNpsHost, capPolicyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Remove security group
|
//Remove security group
|
||||||
|
@ -537,7 +543,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
|
||||||
#region Gateaway (RD CAP | RD RAP)
|
#region Gateaway (RD CAP | RD RAP)
|
||||||
|
|
||||||
internal void CreateCentralNpsPolicy(Runspace runSpace, string centralNpshost, string collectionName, string organizationId)
|
internal void CreateCentralNpsPolicy(Runspace runSpace, string centralNpshost, string policyName, string collectionName, string organizationId)
|
||||||
{
|
{
|
||||||
var showCmd = new Command("netsh nps show np");
|
var showCmd = new Command("netsh nps show np");
|
||||||
|
|
||||||
|
@ -545,39 +551,39 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
|
||||||
var count = showResult.Count(x => Convert.ToString(x).Contains("policy conf")) + 1001;
|
var count = showResult.Count(x => Convert.ToString(x).Contains("policy conf")) + 1001;
|
||||||
|
|
||||||
var groupAd = ActiveDirectoryUtils.GetADObject(GetUsersGroupPath(organizationId, collectionName));
|
var userGroupAd = ActiveDirectoryUtils.GetADObject(GetUsersGroupPath(organizationId, collectionName));
|
||||||
|
|
||||||
var sid = (byte[])ActiveDirectoryUtils.GetADObjectProperty(groupAd, "objectSid");
|
var userGroupSid = (byte[])ActiveDirectoryUtils.GetADObjectProperty(userGroupAd, "objectSid");
|
||||||
|
|
||||||
var addCmdString = string.Format(AddNpsString, collectionName.Replace(" ", "_"), count, ConvertByteToStringSid(sid));
|
var addCmdString = string.Format(AddNpsString, policyName.Replace(" ", "_"), count, ConvertByteToStringSid(userGroupSid));
|
||||||
|
|
||||||
Command addCmd = new Command(addCmdString);
|
Command addCmd = new Command(addCmdString);
|
||||||
|
|
||||||
var result = ExecuteRemoteShellCommand(runSpace, centralNpshost, addCmd);
|
var result = ExecuteRemoteShellCommand(runSpace, centralNpshost, addCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RemoveNpsPolicy(Runspace runSpace, string centralNpshost, string collectionName)
|
internal void RemoveNpsPolicy(Runspace runSpace, string centralNpshost, string policyName)
|
||||||
{
|
{
|
||||||
var removeCmd = new Command(string.Format("netsh nps delete np {0}", collectionName.Replace(" ", "_")));
|
var removeCmd = new Command(string.Format("netsh nps delete np {0}", policyName.Replace(" ", "_")));
|
||||||
|
|
||||||
var removeResult = ExecuteRemoteShellCommand(runSpace, centralNpshost, removeCmd);
|
var removeResult = ExecuteRemoteShellCommand(runSpace, centralNpshost, removeCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void CreateRdCapForce(Runspace runSpace, string gatewayHost, string name, List<string> groups)
|
internal void CreateRdCapForce(Runspace runSpace, string gatewayHost, string policyName, string collectionName, List<string> groups)
|
||||||
{
|
{
|
||||||
//New-Item -Path "RDS:\GatewayServer\CAP" -Name "Allow Admins" -UserGroups "Administrators@." -AuthMethod 1
|
//New-Item -Path "RDS:\GatewayServer\CAP" -Name "Allow Admins" -UserGroups "Administrators@." -AuthMethod 1
|
||||||
//Set-Item -Path "RDS:\GatewayServer\CAP\Allow Admins\SessionTimeout" -Value 480 -SessionTimeoutAction 0
|
//Set-Item -Path "RDS:\GatewayServer\CAP\Allow Admins\SessionTimeout" -Value 480 -SessionTimeoutAction 0
|
||||||
|
|
||||||
if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(CapPath, name)))
|
if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(CapPath, policyName)))
|
||||||
{
|
{
|
||||||
RemoveRdCap(runSpace, gatewayHost, name);
|
RemoveRdCap(runSpace, gatewayHost, policyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
var userGroupParametr = string.Format("@({0})",string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray()));
|
var userGroupParametr = string.Format("@({0})",string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray()));
|
||||||
|
|
||||||
Command rdCapCommand = new Command("New-Item");
|
Command rdCapCommand = new Command("New-Item");
|
||||||
rdCapCommand.Parameters.Add("Path", string.Format("\"{0}\"", CapPath));
|
rdCapCommand.Parameters.Add("Path", string.Format("\"{0}\"", CapPath));
|
||||||
rdCapCommand.Parameters.Add("Name", string.Format("\"{0}\"", name));
|
rdCapCommand.Parameters.Add("Name", string.Format("\"{0}\"", policyName));
|
||||||
rdCapCommand.Parameters.Add("UserGroups", userGroupParametr);
|
rdCapCommand.Parameters.Add("UserGroups", userGroupParametr);
|
||||||
rdCapCommand.Parameters.Add("AuthMethod", 1);
|
rdCapCommand.Parameters.Add("AuthMethod", 1);
|
||||||
|
|
||||||
|
@ -589,22 +595,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
RemoveItemRemote(runSpace, gatewayHost, string.Format(@"{0}\{1}", CapPath, name), RdsModuleName);
|
RemoveItemRemote(runSpace, gatewayHost, string.Format(@"{0}\{1}", CapPath, name), RdsModuleName);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void CreateRdRapForce(Runspace runSpace, string gatewayHost, string name, List<string> groups)
|
internal void CreateRdRapForce(Runspace runSpace, string gatewayHost, string policyName, string collectionName, List<string> groups)
|
||||||
{
|
{
|
||||||
//New-Item -Path "RDS:\GatewayServer\RAP" -Name "Allow Connections To Everywhere" -UserGroups "Administrators@." -ComputerGroupType 1
|
//New-Item -Path "RDS:\GatewayServer\RAP" -Name "Allow Connections To Everywhere" -UserGroups "Administrators@." -ComputerGroupType 1
|
||||||
//Set-Item -Path "RDS:\GatewayServer\RAP\Allow Connections To Everywhere\PortNumbers" -Value 3389,3390
|
//Set-Item -Path "RDS:\GatewayServer\RAP\Allow Connections To Everywhere\PortNumbers" -Value 3389,3390
|
||||||
|
|
||||||
if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(RapPath, name)))
|
if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(RapPath, policyName)))
|
||||||
{
|
{
|
||||||
RemoveRdRap(runSpace, gatewayHost, name);
|
RemoveRdRap(runSpace, gatewayHost, policyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
var userGroupParametr = string.Format("@({0})", string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray()));
|
var userGroupParametr = string.Format("@({0})", string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray()));
|
||||||
var computerGroupParametr = string.Format("\"{0}@{1}\"", GetComputersGroupName(name), RootDomain);
|
var computerGroupParametr = string.Format("\"{0}@{1}\"", GetComputersGroupName(collectionName), RootDomain);
|
||||||
|
|
||||||
Command rdRapCommand = new Command("New-Item");
|
Command rdRapCommand = new Command("New-Item");
|
||||||
rdRapCommand.Parameters.Add("Path", string.Format("\"{0}\"", RapPath));
|
rdRapCommand.Parameters.Add("Path", string.Format("\"{0}\"", RapPath));
|
||||||
rdRapCommand.Parameters.Add("Name", string.Format("\"{0}\"", name));
|
rdRapCommand.Parameters.Add("Name", string.Format("\"{0}\"", policyName));
|
||||||
rdRapCommand.Parameters.Add("UserGroups", userGroupParametr);
|
rdRapCommand.Parameters.Add("UserGroups", userGroupParametr);
|
||||||
rdRapCommand.Parameters.Add("ComputerGroupType", 1);
|
rdRapCommand.Parameters.Add("ComputerGroupType", 1);
|
||||||
rdRapCommand.Parameters.Add("ComputerGroup", computerGroupParametr);
|
rdRapCommand.Parameters.Add("ComputerGroup", computerGroupParametr);
|
||||||
|
@ -629,6 +635,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private bool ExistRdsServerInDeployment(Runspace runSpace, RdsServer server)
|
private bool ExistRdsServerInDeployment(Runspace runSpace, RdsServer server)
|
||||||
{
|
{
|
||||||
Command cmd = new Command("Get-RDserver");
|
Command cmd = new Command("Get-RDserver");
|
||||||
|
@ -924,6 +932,27 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
ExecuteRemoteShellCommand(runSpace, hostname, rdRapCommand, imports);
|
ExecuteRemoteShellCommand(runSpace, hostname, rdRapCommand, imports);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetPolicyName(string organizationId, string collectionName, RdsPolicyTypes policyType)
|
||||||
|
{
|
||||||
|
string policyName = string.Format("{0}-{1}-", organizationId, collectionName);
|
||||||
|
|
||||||
|
switch (policyType)
|
||||||
|
{
|
||||||
|
case RdsPolicyTypes.RdCap:
|
||||||
|
{
|
||||||
|
policyName += "RDCAP";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RdsPolicyTypes.RdRap:
|
||||||
|
{
|
||||||
|
policyName += "RDRAP";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return policyName;
|
||||||
|
}
|
||||||
|
|
||||||
private string GetComputersGroupName(string collectionName)
|
private string GetComputersGroupName(string collectionName)
|
||||||
{
|
{
|
||||||
return string.Format(RdsGroupFormat, collectionName, Computers.ToLowerInvariant());
|
return string.Format(RdsGroupFormat, collectionName, Computers.ToLowerInvariant());
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -99,7 +99,7 @@ namespace WebsitePanel.Server
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.WriteStart("'{0}' RemoveCollection", ProviderSettings.ProviderName);
|
Log.WriteStart("'{0}' RemoveCollection", ProviderSettings.ProviderName);
|
||||||
var result = RDSProvider.RemoveCollection(organizationId,collectionName);
|
var result = RDSProvider.RemoveCollection(organizationId, collectionName);
|
||||||
Log.WriteEnd("'{0}' RemoveCollection", ProviderSettings.ProviderName);
|
Log.WriteEnd("'{0}' RemoveCollection", ProviderSettings.ProviderName);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5593,4 +5593,16 @@
|
||||||
<data name="Error.RDS_CREATE_COLLECTION_RDSSERVER_REQUAIRED" xml:space="preserve">
|
<data name="Error.RDS_CREATE_COLLECTION_RDSSERVER_REQUAIRED" xml:space="preserve">
|
||||||
<value>Error creating rds collection. You need to add at least 1 rds server to collection</value>
|
<value>Error creating rds collection. You need to add at least 1 rds server to collection</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Quota.Exchange2013.ResourceMailboxes" xml:space="preserve">
|
||||||
|
<value>Resource Mailboxes per Organization</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quota.Exchange2013.SharedMailboxes" xml:space="preserve">
|
||||||
|
<value>Shared Mailboxes per Organization</value>
|
||||||
|
</data>
|
||||||
|
<data name="ResourceMailbox.Text" xml:space="preserve">
|
||||||
|
<value> (resource mailbox)</value>
|
||||||
|
</data>
|
||||||
|
<data name="SharedMailbox.Text" xml:space="preserve">
|
||||||
|
<value> (shared mailbox)</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -237,6 +237,7 @@ A.Black {color: Black !important; text-decoration: none !important;}
|
||||||
.RedStatus {background-image: url(error_bkg.gif); background-repeat: repeat-x;font-size: 8pt; font-weight: bold; color: White; background-color: #ff3300; text-align: center; padding: 6px;}
|
.RedStatus {background-image: url(error_bkg.gif); background-repeat: repeat-x;font-size: 8pt; font-weight: bold; color: White; background-color: #ff3300; text-align: center; padding: 6px;}
|
||||||
.MessageBox SPAN.description {font-weight: normal !important;}
|
.MessageBox SPAN.description {font-weight: normal !important;}
|
||||||
.MessageBox .TechnicalDetails {padding-top: 4px; font-weight: normal !important;}
|
.MessageBox .TechnicalDetails {padding-top: 4px; font-weight: normal !important;}
|
||||||
|
.TechnicalDetailsTable {background-color: #FFFFFF; color: #222; }
|
||||||
.MessageBoxSection {font-size: 8pt; font-weight: bold;}
|
.MessageBoxSection {font-size: 8pt; font-weight: bold;}
|
||||||
.popupHint {border: 2px solid #C4D6BB;padding: 3px; background-color: #F1F1FF;}
|
.popupHint {border: 2px solid #C4D6BB;padding: 3px; background-color: #F1F1FF;}
|
||||||
.popupComments {border: 2px solid #C4D6BB;font-size: 9px; padding: 3px; background-color: #F1F1FF;}
|
.popupComments {border: 2px solid #C4D6BB;font-size: 9px; padding: 3px; background-color: #F1F1FF;}
|
||||||
|
@ -291,4 +292,5 @@ UL.ActionButtons LI {margin-bottom: 12px;}
|
||||||
.enabled {width:20px; height:20px; background: transparent url(../Icons/ok.png) left center no-repeat; border:medium none;}
|
.enabled {width:20px; height:20px; background: transparent url(../Icons/ok.png) left center no-repeat; border:medium none;}
|
||||||
p.warningText {font-size:14px; color:Red; text-align:center;}
|
p.warningText {font-size:14px; color:Red; text-align:center;}
|
||||||
.Hidden {display: none;}
|
.Hidden {display: none;}
|
||||||
.LinkText {color:#428bca;}
|
.LinkText {color:#428bca;}
|
||||||
|
.WrapText { white-space: normal;}
|
|
@ -1,4 +1,4 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainsSelectDomainControl.ascx.cs" Inherits="WebsitePanel.Portal.DomainsSelectDomainControl" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainsSelectDomainControl.ascx.cs" Inherits="WebsitePanel.Portal.DomainsSelectDomainControl" %>
|
||||||
<asp:DropDownList id="ddlDomains" runat="server" CssClass="NormalTextBox" DataTextField="DomainName" DataValueField="DomainID" style="vertical-align:middle;"></asp:DropDownList>
|
<asp:DropDownList id="ddlDomains" runat="server" CssClass="TextBox200" DataTextField="DomainName" DataValueField="DomainID" style="vertical-align:middle;"></asp:DropDownList>
|
||||||
<asp:RequiredFieldValidator id="valRequireDomain" runat="server" ErrorMessage="Select domain"
|
<asp:RequiredFieldValidator id="valRequireDomain" runat="server" ErrorMessage="Select domain"
|
||||||
ControlToValidate="ddlDomains" Display="Dynamic" meta:resourcekey="valRequireDomain"></asp:RequiredFieldValidator>
|
ControlToValidate="ddlDomains" Display="Dynamic" meta:resourcekey="valRequireDomain"></asp:RequiredFieldValidator>
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.3074
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -186,4 +186,10 @@
|
||||||
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ResourceMailbox.Text" xml:space="preserve">
|
||||||
|
<value>Resource Mailbox</value>
|
||||||
|
</data>
|
||||||
|
<data name="SharedMailbox.Text" xml:space="preserve">
|
||||||
|
<value>Shared Mailbox</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -101,6 +101,20 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2013_SHAREDMAILBOXES))
|
||||||
|
{
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2013_SHAREDMAILBOXES].QuotaAllocatedValue != 0)
|
||||||
|
rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("SharedMailbox.Text"), "10"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2013_RESOURCEMAILBOXES))
|
||||||
|
{
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2013_RESOURCEMAILBOXES].QuotaAllocatedValue != 0)
|
||||||
|
rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("ResourceMailbox.Text"), "11"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
rowRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx);
|
rowRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -183,6 +183,12 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
}
|
}
|
||||||
imgVipUser.Visible = account.IsVIP && Cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
imgVipUser.Visible = account.IsVIP && Cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
||||||
|
|
||||||
|
if (account.AccountType == ExchangeAccountType.SharedMailbox)
|
||||||
|
litDisplayName.Text += GetSharedLocalizedString("SharedMailbox.Text");
|
||||||
|
|
||||||
|
if (account.AccountType == ExchangeAccountType.ResourceMailbox)
|
||||||
|
litDisplayName.Text += GetSharedLocalizedString("ResourceMailbox.Text");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,6 +67,16 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
litDisplayName.Text = mailbox.DisplayName;
|
litDisplayName.Text = mailbox.DisplayName;
|
||||||
sendAsPermission.SetAccounts(mailbox.SendAsAccounts);
|
sendAsPermission.SetAccounts(mailbox.SendAsAccounts);
|
||||||
fullAccessPermission.SetAccounts(mailbox.FullAccessAccounts);
|
fullAccessPermission.SetAccounts(mailbox.FullAccessAccounts);
|
||||||
|
|
||||||
|
// get account meta
|
||||||
|
ExchangeAccount account = ES.Services.ExchangeServer.GetAccount(PanelRequest.ItemID, PanelRequest.AccountID);
|
||||||
|
|
||||||
|
if (account.AccountType == ExchangeAccountType.SharedMailbox)
|
||||||
|
litDisplayName.Text += GetSharedLocalizedString("SharedMailbox.Text");
|
||||||
|
|
||||||
|
if (account.AccountType == ExchangeAccountType.ResourceMailbox)
|
||||||
|
litDisplayName.Text += GetSharedLocalizedString("ResourceMailbox.Text");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="FormButtonsBarCleanRight">
|
<div class="FormButtonsBarCleanRight">
|
||||||
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||||
|
<asp:CheckBox ID="chkMailboxes" runat="server" meta:resourcekey="chkMailboxes" Text="Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged"/>
|
||||||
|
<asp:CheckBox ID="chkResourceMailboxes" runat="server" meta:resourcekey="chkResourceMailboxes" Text="Resource Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged"/>
|
||||||
|
<asp:CheckBox ID="chkSharedMailboxes" runat="server" meta:resourcekey="chkSharedMailboxes" Text="Shared Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged"/>
|
||||||
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
||||||
onselectedindexchanged="ddlPageSize_SelectedIndexChanged">
|
onselectedindexchanged="ddlPageSize_SelectedIndexChanged">
|
||||||
<asp:ListItem>10</asp:ListItem>
|
<asp:ListItem>10</asp:ListItem>
|
||||||
|
@ -105,7 +108,7 @@
|
||||||
OnSelected="odsAccountsPaged_Selected">
|
OnSelected="odsAccountsPaged_Selected">
|
||||||
<SelectParameters>
|
<SelectParameters>
|
||||||
<asp:QueryStringParameter Name="itemId" QueryStringField="ItemID" DefaultValue="0" />
|
<asp:QueryStringParameter Name="itemId" QueryStringField="ItemID" DefaultValue="0" />
|
||||||
<asp:Parameter Name="accountTypes" DefaultValue="1,5,6" />
|
<asp:Parameter Name="accountTypes" DefaultValue="1,5,6,10,11" />
|
||||||
<asp:ControlParameter Name="filterColumn" ControlID="ddlSearchColumn" PropertyName="SelectedValue" />
|
<asp:ControlParameter Name="filterColumn" ControlID="ddlSearchColumn" PropertyName="SelectedValue" />
|
||||||
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
||||||
<asp:Parameter Name="archiving" Type="Boolean" />
|
<asp:Parameter Name="archiving" Type="Boolean" />
|
||||||
|
|
|
@ -60,6 +60,10 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
|
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
chkMailboxes.Checked = true;
|
||||||
|
chkResourceMailboxes.Checked = true;
|
||||||
|
chkSharedMailboxes.Checked = true;
|
||||||
|
|
||||||
BindStats();
|
BindStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,5 +250,25 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
|
|
||||||
return serviceLevel;
|
return serviceLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void chkMailboxes_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<string> accountTypes = new List<string>();
|
||||||
|
|
||||||
|
if ((!chkMailboxes.Checked)&&(!chkSharedMailboxes.Checked)&&(!chkResourceMailboxes.Checked))
|
||||||
|
chkMailboxes.Checked = true;
|
||||||
|
|
||||||
|
if (chkMailboxes.Checked)
|
||||||
|
accountTypes.AddRange(new string[] {"1","5","6"});
|
||||||
|
|
||||||
|
if (chkSharedMailboxes.Checked)
|
||||||
|
accountTypes.Add("10");
|
||||||
|
|
||||||
|
if (chkResourceMailboxes.Checked)
|
||||||
|
accountTypes.Add("11");
|
||||||
|
|
||||||
|
odsAccountsPaged.SelectParameters["accountTypes"].DefaultValue = string.Join(",", accountTypes);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -66,6 +66,33 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel SearchPanel;
|
protected global::System.Web.UI.WebControls.Panel SearchPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkMailboxes control.
|
||||||
|
/// </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 chkMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkResourceMailboxes control.
|
||||||
|
/// </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 chkResourceMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkSharedMailboxes control.
|
||||||
|
/// </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 chkSharedMailboxes;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlPageSize control.
|
/// ddlPageSize control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -89,6 +89,24 @@
|
||||||
<wsp:QuotaViewer ID="mailboxesStats" QuotaTypeId="2" runat="server" DisplayGauge="true" />
|
<wsp:QuotaViewer ID="mailboxesStats" QuotaTypeId="2" runat="server" DisplayGauge="true" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr class="OrgStatsRow">
|
||||||
|
<td class="OrgStatsQuota" nowrap>
|
||||||
|
<asp:HyperLink ID="lnkSharedMailboxes" runat="server" meta:resourcekey="lnkSharedMailboxes" Text="Shared mailboxes" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<wsp:QuotaViewer ID="mailboxesSharedStats" QuotaTypeId="2" runat="server" DisplayGauge="true" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="OrgStatsRow">
|
||||||
|
<td class="OrgStatsQuota" nowrap>
|
||||||
|
<asp:HyperLink ID="lnkResourceMailboxes" runat="server" meta:resourcekey="lnkResourceMailboxes" Text="Resource mailboxes" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<wsp:QuotaViewer ID="mailboxesResourceStats" QuotaTypeId="2" runat="server" DisplayGauge="true" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr class="OrgStatsRow" id="rowContacts" runat="server">
|
<tr class="OrgStatsRow" id="rowContacts" runat="server">
|
||||||
<td class="OrgStatsQuota" nowrap>
|
<td class="OrgStatsQuota" nowrap>
|
||||||
<asp:HyperLink ID="lnkContacts" runat="server" meta:resourcekey="lnkContacts"></asp:HyperLink>
|
<asp:HyperLink ID="lnkContacts" runat="server" meta:resourcekey="lnkContacts"></asp:HyperLink>
|
||||||
|
|
|
@ -54,6 +54,14 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
lnkMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes",
|
lnkMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes",
|
||||||
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
lnkSharedMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes",
|
||||||
|
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||||
|
|
||||||
|
lnkResourceMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes",
|
||||||
|
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||||
|
|
||||||
|
|
||||||
lnkContacts.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "contacts",
|
lnkContacts.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "contacts",
|
||||||
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||||
|
|
||||||
|
@ -77,6 +85,13 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
mailboxesStats.QuotaValue = exchangeOrgStats.AllocatedMailboxes;
|
mailboxesStats.QuotaValue = exchangeOrgStats.AllocatedMailboxes;
|
||||||
if (exchangeOrgStats.AllocatedMailboxes != -1) mailboxesStats.QuotaAvailable = exchangeTenantStats.AllocatedMailboxes - exchangeTenantStats.CreatedMailboxes;
|
if (exchangeOrgStats.AllocatedMailboxes != -1) mailboxesStats.QuotaAvailable = exchangeTenantStats.AllocatedMailboxes - exchangeTenantStats.CreatedMailboxes;
|
||||||
|
|
||||||
|
mailboxesSharedStats.QuotaUsedValue = exchangeOrgStats.CreatedSharedMailboxes;
|
||||||
|
mailboxesSharedStats.QuotaValue = exchangeOrgStats.AllocatedSharedMailboxes;
|
||||||
|
if (exchangeOrgStats.AllocatedSharedMailboxes != -1) mailboxesSharedStats.QuotaAvailable = exchangeTenantStats.AllocatedSharedMailboxes - exchangeTenantStats.CreatedSharedMailboxes;
|
||||||
|
|
||||||
|
mailboxesResourceStats.QuotaUsedValue = exchangeOrgStats.CreatedResourceMailboxes;
|
||||||
|
mailboxesResourceStats.QuotaValue = exchangeOrgStats.AllocatedResourceMailboxes;
|
||||||
|
if (exchangeOrgStats.AllocatedResourceMailboxes != -1) mailboxesResourceStats.QuotaAvailable = exchangeTenantStats.AllocatedResourceMailboxes - exchangeTenantStats.CreatedResourceMailboxes;
|
||||||
|
|
||||||
if (exchangeTenantStats.AllocatedContacts == 0) this.rowContacts.Style.Add("display", "none");
|
if (exchangeTenantStats.AllocatedContacts == 0) this.rowContacts.Style.Add("display", "none");
|
||||||
else
|
else
|
||||||
|
|
|
@ -201,6 +201,42 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.QuotaViewer mailboxesStats;
|
protected global::WebsitePanel.Portal.QuotaViewer mailboxesStats;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lnkSharedMailboxes control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.HyperLink lnkSharedMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailboxesSharedStats control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaViewer mailboxesSharedStats;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lnkResourceMailboxes control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.HyperLink lnkResourceMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailboxesResourceStats control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaViewer mailboxesResourceStats;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// rowContacts control.
|
/// rowContacts control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -123,16 +123,31 @@
|
||||||
<data name="lblDomainTemplateNameResource1.ToolTip" xml:space="preserve">
|
<data name="lblDomainTemplateNameResource1.ToolTip" xml:space="preserve">
|
||||||
<value />
|
<value />
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblMaxMessageSizeInMB.Text" xml:space="preserve">
|
||||||
|
<value>Global max message size:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPublicIP.Text" xml:space="preserve">
|
||||||
|
<value>Public IP Address:</value>
|
||||||
|
</data>
|
||||||
<data name="lblPublicIPResource1.Text" xml:space="preserve">
|
<data name="lblPublicIPResource1.Text" xml:space="preserve">
|
||||||
<value>Public IP Address:</value>
|
<value>Public IP Address:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblPublicIPResource1.ToolTip" xml:space="preserve">
|
<data name="lblPublicIPResource1.ToolTip" xml:space="preserve">
|
||||||
<value />
|
<value />
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblZeroIsUnlimited.Text" xml:space="preserve">
|
||||||
|
<value>0 means unlimited</value>
|
||||||
|
</data>
|
||||||
|
<data name="MaxMessageSizeInMB.Text" xml:space="preserve">
|
||||||
|
<value>Can be overridden on domain level if you check 'Override global limits'</value>
|
||||||
|
</data>
|
||||||
<data name="txtDomainTemplateNameResource1.Text" xml:space="preserve">
|
<data name="txtDomainTemplateNameResource1.Text" xml:space="preserve">
|
||||||
<value />
|
<value />
|
||||||
</data>
|
</data>
|
||||||
<data name="txtDomainTemplateNameResource1.ToolTip" xml:space="preserve">
|
<data name="txtDomainTemplateNameResource1.ToolTip" xml:space="preserve">
|
||||||
<value />
|
<value />
|
||||||
</data>
|
</data>
|
||||||
|
<data name="txtWarnSizeValidator.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Must be a value between 0 and 99, 0 means disabled</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?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="btnAdd.Text" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvGWServers.EmptyDataText" xml:space="preserve">
|
||||||
|
<value>No gateway serves have been added yet.</value>
|
||||||
|
</data>
|
||||||
|
<data name="ServerNameColumn.HeaderText" xml:space="preserve">
|
||||||
|
<value>Server Name</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -76,7 +76,7 @@
|
||||||
<asp:Label ID="lblRespondPeriodInDays" runat="server" meta:resourcekey="lblRespondPeriodInDays" Text="Respond period in days:"></asp:Label>
|
<asp:Label ID="lblRespondPeriodInDays" runat="server" meta:resourcekey="lblRespondPeriodInDays" Text="Respond period in days:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:TextBox ID="txtRespondPeriodInDays" runat="server" CssClass="NormalTextBox"></asp:TextBox>
|
<asp:TextBox ID="txtRespondPeriodInDays" runat="server" CssClass="NormalTextBox" Text="0"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtRespondPeriodInDays" ErrorMessage="*"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtRespondPeriodInDays" ErrorMessage="*"></asp:RequiredFieldValidator>
|
||||||
<asp:RangeValidator ID="RespondPeriodInDaysValidator" runat="server" ControlToValidate="txtRespondPeriodInDays" MinimumValue="0" MaximumValue="63" Type="Integer" ErrorMessage="Respond days must be between 0 and 63 days" meta:resourcekey="RespondPeriodInDaysValidator"></asp:RangeValidator>
|
<asp:RangeValidator ID="RespondPeriodInDaysValidator" runat="server" ControlToValidate="txtRespondPeriodInDays" MinimumValue="0" MaximumValue="63" Type="Integer" ErrorMessage="Respond days must be between 0 and 63 days" meta:resourcekey="RespondPeriodInDaysValidator"></asp:RangeValidator>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -37,8 +37,11 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
{
|
{
|
||||||
// Hide some form items when creating a new account
|
// Hide some form items when creating a new account
|
||||||
passwordRow.Visible = (PanelRequest.ItemID > 0);
|
passwordRow.Visible = (PanelRequest.ItemID > 0);
|
||||||
|
AutoresponderPanel.Visible = (PanelRequest.ItemID > 0);
|
||||||
secAutoresponder.Visible = (PanelRequest.ItemID > 0);
|
secAutoresponder.Visible = (PanelRequest.ItemID > 0);
|
||||||
|
ForwardingPanel.Visible = (PanelRequest.ItemID > 0);
|
||||||
secForwarding.Visible = (PanelRequest.ItemID > 0);
|
secForwarding.Visible = (PanelRequest.ItemID > 0);
|
||||||
|
OlderMailsPanel.Visible = (PanelRequest.ItemID > 0);
|
||||||
secOlderMails.Visible = (PanelRequest.ItemID > 0);
|
secOlderMails.Visible = (PanelRequest.ItemID > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,10 +112,10 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
item.IsDomainAdmin = cbDomainAdmin.Checked;
|
item.IsDomainAdmin = cbDomainAdmin.Checked;
|
||||||
|
|
||||||
item.DeleteOlder = cbDeleteOlder.Checked;
|
item.DeleteOlder = cbDeleteOlder.Checked;
|
||||||
item.DeleteOlderDays = Convert.ToInt32(txtDeleteOlderDays.Text);
|
item.DeleteOlderDays = string.IsNullOrWhiteSpace(txtDeleteOlderDays.Text) ? 0 : Convert.ToInt32(txtDeleteOlderDays.Text);
|
||||||
|
|
||||||
item.ForwardOlder = cbForwardOlder.Checked;
|
item.ForwardOlder = cbForwardOlder.Checked;
|
||||||
item.ForwardOlderDays = Convert.ToInt32(txtForwardOlderDays.Text);
|
item.ForwardOlderDays = string.IsNullOrWhiteSpace(txtForwardOlderDays.Text) ? 0 : Convert.ToInt32(txtForwardOlderDays.Text);
|
||||||
item.ForwardOlderTo = txtForwardOlderTo.Text;
|
item.ForwardOlderTo = txtForwardOlderTo.Text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_Settings" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_Settings" %>
|
||||||
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
|
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
|
||||||
<table cellpadding="7" cellspacing="0" width="100%">
|
<table width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead" width="150">
|
<td class="SubHead" width="150">
|
||||||
<asp:Label ID="lblPublicIP" runat="server" Text="Public IP Address:" meta:resourcekey="lblPublicIP"></asp:Label>
|
<asp:Label ID="lblPublicIP" runat="server" Text="Public IP Address:" meta:resourcekey="lblPublicIP"></asp:Label>
|
||||||
|
@ -14,9 +14,14 @@
|
||||||
<asp:Label runat="server" ID="lblMaxMessageSizeInMB" Text="Global max message size:"></asp:Label>
|
<asp:Label runat="server" ID="lblMaxMessageSizeInMB" Text="Global max message size:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:TextBox runat="server" ID="txtMaxMessageSizeInMB" Text="0"></asp:TextBox>
|
<asp:TextBox runat="server" ID="txtMaxMessageSizeInMB" Text="0" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
<asp:Label ID="Label1" runat="server" meta:resourcekey="MaxMessageSizeInMB" Text="Can be overridden on domain level if you check 'Override global limits'"></asp:Label>
|
<asp:RequiredFieldValidator ID="txtMaxMessageSizeInMBRequired" runat="server" Text="*" ControlToValidate="txtMaxMessageSizeInMB"></asp:RequiredFieldValidator>
|
||||||
|
<asp:Label runat="server" meta:resourcekey="lblZeroIsUnlimited" />
|
||||||
</td>
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td><asp:Label ID="MaxMessageSizeInMB" runat="server" meta:resourcekey="MaxMessageSizeInMB" Text="Can be overridden on domain level if you check 'Override global limits'"></asp:Label></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
|
@ -43,9 +48,9 @@
|
||||||
<asp:Label runat="server" ID="lblWarnDomainSize" Text="Warn domain administrator when domain size exceeds quota (%)"></asp:Label>
|
<asp:Label runat="server" ID="lblWarnDomainSize" Text="Warn domain administrator when domain size exceeds quota (%)"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:TextBox runat="server" ID="txtWarnDomainSize" Text="0"></asp:TextBox>
|
<asp:TextBox runat="server" ID="txtWarnDomainSize" Text="0" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator runat="server" Text="*" ControlToValidate="txtWarnDomainSize"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator runat="server" Text="*" ControlToValidate="txtWarnDomainSize"></asp:RequiredFieldValidator>
|
||||||
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnDomainSizeValidator" ControlToValidate="txtWarnDomainSize" runat="server" />
|
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99, 0 means disabled" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnSizeValidator" ControlToValidate="txtWarnDomainSize" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -53,9 +58,9 @@
|
||||||
<asp:Label runat="server" ID="lblWarnMailboxUsage" Text="Warn user when mailbox size exceeds quota (%)"></asp:Label>
|
<asp:Label runat="server" ID="lblWarnMailboxUsage" Text="Warn user when mailbox size exceeds quota (%)"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:TextBox runat="server" ID="txtWarnMailboxUsage" Text="0"></asp:TextBox>
|
<asp:TextBox runat="server" ID="txtWarnMailboxUsage" Text="0" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Text="*" ControlToValidate="txtWarnMailboxUsage"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator ID="txtWarnMailboxUsageRequired" runat="server" Text="*" ControlToValidate="txtWarnMailboxUsage"></asp:RequiredFieldValidator>
|
||||||
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnMailboxUsageValidator" ControlToValidate="txtWarnMailboxUsage" runat="server" />
|
<asp:RangeValidator ErrorMessage="Must be a value between 0 and 99, 0 means disabled" MinimumValue="0" MaximumValue="99" Type="Integer" meta:resourcekey="txtWarnSizeValidator" ControlToValidate="txtWarnMailboxUsage" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
|
@ -49,13 +49,22 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSizeInMB;
|
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSizeInMB;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Label1 control.
|
/// txtMaxMessageSizeInMBRequired control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Label Label1;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtMaxMessageSizeInMBRequired;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MaxMessageSizeInMB control.
|
||||||
|
/// </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 MaxMessageSizeInMB;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// cbUseDomainDiskQuota control.
|
/// cbUseDomainDiskQuota control.
|
||||||
|
@ -130,12 +139,12 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtWarnMailboxUsage;
|
protected global::System.Web.UI.WebControls.TextBox txtWarnMailboxUsage;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// RequiredFieldValidator1 control.
|
/// txtWarnMailboxUsageRequired control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator txtWarnMailboxUsageRequired;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,14 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
ddlSite.Items.Add(item);
|
ddlSite.Items.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
ddlSite_SelectedIndexChanged(this, null);
|
if (ddlSite.Items.Count == 0)
|
||||||
|
{
|
||||||
|
ddlSite.Items.Add(new ListItem("Default FTP Site (not yet created)", "Default FTP Site"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ddlSite_SelectedIndexChanged(this, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ddlSite_SelectedIndexChanged(object sender, EventArgs e)
|
protected void ddlSite_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
|
|
@ -9,15 +9,6 @@
|
||||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtConnectionBroker" Display="Dynamic" ErrorMessage="*" />
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtConnectionBroker" Display="Dynamic" ErrorMessage="*" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="SubHead" width="200" nowrap>
|
|
||||||
<asp:Label runat="server" ID="lblGateway" meta:resourcekey="lblGateway" Text="Gateway Servers:"/>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<asp:TextBox runat="server" ID="txtGateway" MaxLength="1000" Width="200px" />
|
|
||||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtGateway" Display="Dynamic" ErrorMessage="*" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead" width="200" nowrap>
|
<td class="SubHead" width="200" nowrap>
|
||||||
<asp:Label runat="server" ID="lblRootOU" meta:resourcekey="lblRootOU" Text="Root OU:"/>
|
<asp:Label runat="server" ID="lblRootOU" meta:resourcekey="lblRootOU" Text="Root OU:"/>
|
||||||
|
@ -52,4 +43,33 @@
|
||||||
<asp:TextBox runat="server" ID="txtCentralNPS" Width="200px"/>
|
<asp:TextBox runat="server" ID="txtCentralNPS" Width="200px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap valign="top">
|
||||||
|
<asp:Localize ID="locGWServers" runat="server" meta:resourcekey="locGWServers"
|
||||||
|
Text="Gateway Servers:"></asp:Localize>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="txtAddGWServer" MaxLength="1000" Width="200px" />
|
||||||
|
<asp:Button runat="server" ID="btnAddGWServer" OnClick="btnAddGWServer_Click" meta:resourcekey="btnAdd"
|
||||||
|
CssClass="Button1" /><br />
|
||||||
|
<asp:GridView ID="gvGWServers" runat="server" AutoGenerateColumns="False" EmptyDataText="gvRecords"
|
||||||
|
CssSelectorClass="NormalGridView" OnRowCommand="gvGWServers_RowCommand" meta:resourcekey="gvGWServers">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField meta:resourcekey="ServerNameColumn" ItemStyle-Width="100%" >
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Label runat="server" ID="lblServerName" Text='<%#Eval("ServerName")%>' />
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
|
||||||
|
<asp:TemplateField>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:ImageButton ID="cmdDelete" runat="server" SkinID="DeleteSmall" CommandName="RemoveServer"
|
||||||
|
CommandArgument='<%#Eval("ServerName") %>' meta:resourcekey="cmdDelete" AlternateText="Delete"
|
||||||
|
OnClientClick="return confirm('Delete?');"></asp:ImageButton>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
|
@ -27,6 +27,8 @@
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
using WebsitePanel.EnterpriseServer;
|
using WebsitePanel.EnterpriseServer;
|
||||||
using WebsitePanel.Providers.Common;
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
@ -39,10 +41,26 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GWServers
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ViewState["GWServers"] != null ? ViewState["GWServers"].ToString() : string.Empty;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
ViewState["GWServers"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void BindSettings(System.Collections.Specialized.StringDictionary settings)
|
public void BindSettings(System.Collections.Specialized.StringDictionary settings)
|
||||||
{
|
{
|
||||||
txtConnectionBroker.Text = settings["ConnectionBroker"];
|
txtConnectionBroker.Text = settings["ConnectionBroker"];
|
||||||
txtGateway.Text = settings["GWServrsList"];
|
|
||||||
|
GWServers = settings["GWServrsList"];
|
||||||
|
|
||||||
|
UpdateLyncServersGrid();
|
||||||
|
|
||||||
txtRootOU.Text = settings["RootOU"];
|
txtRootOU.Text = settings["RootOU"];
|
||||||
txtPrimaryDomainController.Text = settings["PrimaryDomainController"];
|
txtPrimaryDomainController.Text = settings["PrimaryDomainController"];
|
||||||
|
|
||||||
|
@ -63,11 +81,12 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
||||||
{
|
{
|
||||||
settings["ConnectionBroker"] = txtConnectionBroker.Text;
|
settings["ConnectionBroker"] = txtConnectionBroker.Text;
|
||||||
settings["GWServrsList"] = txtGateway.Text;
|
|
||||||
settings["RootOU"] = txtRootOU.Text;
|
settings["RootOU"] = txtRootOU.Text;
|
||||||
settings["PrimaryDomainController"] = txtPrimaryDomainController.Text;
|
settings["PrimaryDomainController"] = txtPrimaryDomainController.Text;
|
||||||
settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString();
|
settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString();
|
||||||
settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
||||||
|
|
||||||
|
settings["GWServrsList"] = GWServers;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void chkUseCentralNPS_CheckedChanged(object sender, EventArgs e)
|
protected void chkUseCentralNPS_CheckedChanged(object sender, EventArgs e)
|
||||||
|
@ -75,6 +94,61 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
txtCentralNPS.Enabled = chkUseCentralNPS.Checked;
|
txtCentralNPS.Enabled = chkUseCentralNPS.Checked;
|
||||||
txtCentralNPS.Text = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
txtCentralNPS.Text = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnAddGWServer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(GWServers))
|
||||||
|
GWServers += ";";
|
||||||
|
|
||||||
|
GWServers += txtAddGWServer.Text;
|
||||||
|
|
||||||
|
txtAddGWServer.Text = string.Empty;
|
||||||
|
|
||||||
|
UpdateLyncServersGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GWServer> GetServices(string data)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(data))
|
||||||
|
return null;
|
||||||
|
List<GWServer> list = new List<GWServer>();
|
||||||
|
string[] serversNames = data.Split(';');
|
||||||
|
foreach (string current in serversNames)
|
||||||
|
{
|
||||||
|
list.Add(new GWServer { ServerName = current });
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateLyncServersGrid()
|
||||||
|
{
|
||||||
|
gvGWServers.DataSource = GetServices(GWServers);
|
||||||
|
gvGWServers.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void gvGWServers_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.CommandName == "RemoveServer")
|
||||||
|
{
|
||||||
|
string str = string.Empty;
|
||||||
|
List<GWServer> servers = GetServices(GWServers);
|
||||||
|
foreach (GWServer current in servers)
|
||||||
|
{
|
||||||
|
if (current.ServerName == e.CommandArgument.ToString())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
str += current.ServerName + ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
GWServers = str.TrimEnd(';');
|
||||||
|
UpdateLyncServersGrid();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GWServer
|
||||||
|
{
|
||||||
|
public string ServerName { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -39,33 +39,6 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblGateway control.
|
|
||||||
/// </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 lblGateway;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtGateway control.
|
|
||||||
/// </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 txtGateway;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// RequiredFieldValidator3 control.
|
|
||||||
/// </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 RequiredFieldValidator3;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// lblRootOU control.
|
/// lblRootOU control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -155,5 +128,41 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtCentralNPS;
|
protected global::System.Web.UI.WebControls.TextBox txtCentralNPS;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locGWServers control.
|
||||||
|
/// </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 locGWServers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtAddGWServer control.
|
||||||
|
/// </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 txtAddGWServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAddGWServer control.
|
||||||
|
/// </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 btnAddGWServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvGWServers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.GridView gvGWServers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,9 +55,10 @@
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField>
|
<asp:TemplateField>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:LinkButton ID="imgRemove1" runat="server" Text="Remove"
|
<asp:LinkButton ID="imgRemove1" runat="server" Text="Remove" Visible='<%# Eval("RdsCollectionId") == null %>'
|
||||||
CommandName="DeleteItem" CommandArgument='<%# Eval("Id") %>'
|
CommandName="DeleteItem" CommandArgument='<%# Eval("Id") %>'
|
||||||
meta:resourcekey="cmdDelete" OnClientClick="return confirm('Are you sure you want to remove selected server?')"></asp:LinkButton>
|
meta:resourcekey="cmdDelete" OnClientClick="return confirm('Are you sure you want to remove selected server?')"></asp:LinkButton>
|
||||||
|
<asp:Label ID="lbRemove" Text="Remove" runat="server" Visible='<%# Eval("RdsCollectionId") != null %>'></asp:Label>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
</Columns>
|
</Columns>
|
||||||
|
|
|
@ -32,6 +32,7 @@ using WebsitePanel.EnterpriseServer;
|
||||||
using WebsitePanel.Providers.Common;
|
using WebsitePanel.Providers.Common;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using WebsitePanel.Providers.OS;
|
using WebsitePanel.Providers.OS;
|
||||||
|
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||||
using WebsitePanel.WebPortal;
|
using WebsitePanel.WebPortal;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.RDS
|
namespace WebsitePanel.Portal.RDS
|
||||||
|
@ -67,6 +68,13 @@ namespace WebsitePanel.Portal.RDS
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
RdsServer rdsServer = ES.Services.RDS.GetRdsServer(rdsServerId);
|
||||||
|
if (rdsServer.RdsCollectionId != null)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("RDS_UNASSIGN_SERVER_FROM_ORG_SERVER_IS_IN_COLLECTION");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ResultObject result = ES.Services.RDS.RemoveRdsServerFromOrganization(rdsServerId);
|
ResultObject result = ES.Services.RDS.RemoveRdsServerFromOrganization(rdsServerId);
|
||||||
if (!result.IsSuccess)
|
if (!result.IsSuccess)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<td class="FormLabel150" style="width: 100px;"><asp:Localize ID="locCollectionName" runat="server" meta:resourcekey="locCollectionName" Text="Collection Name"></asp:Localize></td>
|
<td class="FormLabel150" style="width: 100px;"><asp:Localize ID="locCollectionName" runat="server" meta:resourcekey="locCollectionName" Text="Collection Name"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtCollectionName" runat="server" CssClass="NormalTextBox" />
|
<asp:TextBox ID="txtCollectionName" runat="server" CssClass="NormalTextBox" />
|
||||||
<asp:RequiredFieldValidator ID="valCollectionName" runat="server" ErrorMessage="*" ControlToValidate="txtCollectionName"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator ID="valCollectionName" runat="server" ErrorMessage="*" ControlToValidate="txtCollectionName" ValidationGroup="SaveRDSCollection"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="FormFooter">
|
<div class="FormFooter">
|
||||||
<asp:Button id="btnSave" runat="server" Text="Save" CssClass="Button1" meta:resourcekey="btnSave" OnClick="btnSave_Click"></asp:Button>
|
<asp:Button id="btnSave" runat="server" Text="Save" CssClass="Button1" meta:resourcekey="btnSave" OnClick="btnSave_Click" ValidationGroup="SaveRDSCollection"></asp:Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -117,12 +117,21 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="btnAdd.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Getting Remote Apps ...');</value>
|
||||||
|
</data>
|
||||||
<data name="btnAdd.Text" xml:space="preserve">
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
<value>Add...</value>
|
<value>Add...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnAddSelected.OnClientClick" xml:space="preserve">
|
||||||
|
<value>CloseProgressDialog();</value>
|
||||||
|
</data>
|
||||||
<data name="btnAddSelected.Text" xml:space="preserve">
|
<data name="btnAddSelected.Text" xml:space="preserve">
|
||||||
<value>Add Apps</value>
|
<value>Add Apps</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnCancel.OnClientClick" xml:space="preserve">
|
||||||
|
<value>CloseProgressDialog();</value>
|
||||||
|
</data>
|
||||||
<data name="btnCancel.Text" xml:space="preserve">
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -117,12 +117,21 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="btnAdd.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Getting RDS Servers ...');</value>
|
||||||
|
</data>
|
||||||
<data name="btnAdd.Text" xml:space="preserve">
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
<value>Add...</value>
|
<value>Add...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnAddSelected.OnClientClick" xml:space="preserve">
|
||||||
|
<value>CloseProgressDialog();</value>
|
||||||
|
</data>
|
||||||
<data name="btnAddSelected.Text" xml:space="preserve">
|
<data name="btnAddSelected.Text" xml:space="preserve">
|
||||||
<value>Add Servers</value>
|
<value>Add Servers</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnCancel.OnClientClick" xml:space="preserve">
|
||||||
|
<value>CloseProgressDialog();</value>
|
||||||
|
</data>
|
||||||
<data name="btnCancel.Text" xml:space="preserve">
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
<asp:Button ID="btnAddServersFake" runat="server" style="display:none;" />
|
<asp:Button ID="btnAddServersFake" runat="server" style="display:none;" />
|
||||||
<ajaxToolkit:ModalPopupExtender ID="AddServersModal" runat="server"
|
<ajaxToolkit:ModalPopupExtender ID="AddServersModal" runat="server"
|
||||||
TargetControlID="btnAddServersFake" PopupControlID="AddServersPanel"
|
TargetControlID="btnAddServersFake" PopupControlID="AddServersPanel"
|
||||||
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="btnCancelAdd" />
|
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="btnCancelAdd"/>
|
||||||
|
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
|
@ -85,8 +85,8 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
protected void btnAdd_Click(object sender, EventArgs e)
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// bind all servers
|
// bind all servers
|
||||||
BindPopupServers();
|
BindPopupServers();
|
||||||
|
|
||||||
// show modal
|
// show modal
|
||||||
AddServersModal.Show();
|
AddServersModal.Show();
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,6 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
List<RdsServer> selectedServers = GetPopUpGridViewServers();
|
List<RdsServer> selectedServers = GetPopUpGridViewServers();
|
||||||
|
|
||||||
BindServers(selectedServers.ToArray(), true);
|
BindServers(selectedServers.ToArray(), true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void BindPopupServers()
|
protected void BindPopupServers()
|
||||||
|
@ -132,6 +131,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
servers.AddRange(GetGridViewServers(SelectedState.All));
|
servers.AddRange(GetGridViewServers(SelectedState.All));
|
||||||
|
|
||||||
// add new servers
|
// add new servers
|
||||||
|
|
||||||
if (newServers != null)
|
if (newServers != null)
|
||||||
{
|
{
|
||||||
foreach (RdsServer newServer in newServers)
|
foreach (RdsServer newServer in newServers)
|
||||||
|
|
|
@ -43,7 +43,7 @@ function PadNumber(num)
|
||||||
|
|
||||||
function EnableProgressDialog() {
|
function EnableProgressDialog() {
|
||||||
_showProgressDialog = true;
|
_showProgressDialog = true;
|
||||||
window.setInterval(DisableProgressDialog, 10); // disable dialog with some delay
|
//window.setInterval(DisableProgressDialog, 10); // disable dialog with some delay
|
||||||
}
|
}
|
||||||
|
|
||||||
function DisableProgressDialog() {
|
function DisableProgressDialog() {
|
||||||
|
@ -57,6 +57,12 @@ function ShowProgressDialog(title, popupBehavior)
|
||||||
EnableProgressDialog();
|
EnableProgressDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function CloseProgressDialog()
|
||||||
|
{
|
||||||
|
DisableProgressDialog();
|
||||||
|
$find('ModalPopupProperties').hide();
|
||||||
|
}
|
||||||
|
|
||||||
function ShowProgressDialogWithCallback(title)
|
function ShowProgressDialogWithCallback(title)
|
||||||
{
|
{
|
||||||
_dialogTitle = title;
|
_dialogTitle = title;
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
TargetControlID="TechnicalDetailsPanel" resourcekey="secTechnicalDetails" Text="Technical Details">
|
TargetControlID="TechnicalDetailsPanel" resourcekey="secTechnicalDetails" Text="Technical Details">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
<asp:Panel ID="TechnicalDetailsPanel" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="TechnicalDetailsPanel" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<table id="tblTechnicalDetails" runat="server" style="background-color: #FFFFFF;" cellpadding="0" cellspacing="0">
|
<table id="tblTechnicalDetails" runat="server" class="TechnicalDetailsTable" cellpadding="0" cellspacing="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<table cellspacing="0" cellpadding="3">
|
<table cellspacing="0" cellpadding="3">
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
<td class="NormalBold" valign="top">
|
<td class="NormalBold" valign="top">
|
||||||
<asp:Label ID="lblStackTrace" runat="server" meta:resourcekey="lblStackTrace" Text="Stack Trace:"></asp:Label>
|
<asp:Label ID="lblStackTrace" runat="server" meta:resourcekey="lblStackTrace" Text="Stack Trace:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal" valign="top">
|
<td class="WrapText" valign="top">
|
||||||
<asp:Literal ID="litStackTrace" runat="server"></asp:Literal>
|
<asp:Literal ID="litStackTrace" runat="server"></asp:Literal>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
<asp:Label ID="lblComments" runat="server" meta:resourcekey="lblComments" Text="Personal Comments:"></asp:Label>
|
<asp:Label ID="lblComments" runat="server" meta:resourcekey="lblComments" Text="Personal Comments:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal" valign="top">
|
<td class="Normal" valign="top">
|
||||||
<asp:TextBox ID="txtSendComments" runat="server" CssClass="LogArea" Rows="5" TextMode="MultiLine"
|
<asp:TextBox ID="txtSendComments" runat="server" CssClass="LogArea TechnicalDetailsTable" Rows="5" TextMode="MultiLine"
|
||||||
Width="400px"></asp:TextBox></td>
|
Width="400px"></asp:TextBox></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -1,10 +1,38 @@
|
||||||
|
// Copyright (c) 2014, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.3074
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SelectIPAddress.ascx.cs" Inherits="WebsitePanel.Portal.SelectIPAddress" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SelectIPAddress.ascx.cs" Inherits="WebsitePanel.Portal.SelectIPAddress" %>
|
||||||
<asp:DropDownList ID="ddlIPAddresses" runat="server" CssClass="NormalTextBox">
|
<asp:DropDownList ID="ddlIPAddresses" runat="server" CssClass="TextBox200">
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
|
|
|
@ -1,16 +1,24 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.42
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal {
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
public partial class SelectIPAddress {
|
public partial class SelectIPAddress {
|
||||||
protected System.Web.UI.WebControls.DropDownList ddlIPAddresses;
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlIPAddresses control.
|
||||||
|
/// </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 ddlIPAddresses;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<div class="Small" style="padding-top: 10px;">
|
<div class="Small WrapText" style="padding-top: 10px;">
|
||||||
<asp:Label ID="lblIgnoreGlobalDNSRecords" runat="server" meta:resourcekey="lblIPHelp2" Text="If you need your site..."></asp:Label>
|
<asp:Label ID="lblIgnoreGlobalDNSRecords" runat="server" meta:resourcekey="lblIPHelp2" Text="If you need your site..."></asp:Label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -5536,6 +5536,7 @@
|
||||||
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionUsers.ascx.resx" />
|
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionUsers.ascx.resx" />
|
||||||
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionServers.ascx.resx" />
|
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionServers.ascx.resx" />
|
||||||
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionApps.ascx.resx" />
|
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionApps.ascx.resx" />
|
||||||
|
<Content Include="ProviderControls\App_LocalResources\RDS_Settings.ascx.resx" />
|
||||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue