diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql
index 796722b9..bd6a1b00 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -5205,4 +5205,173 @@ FROM SupportServiceLevels AS SL
INNER JOIN ExchangeAccounts AS EA ON SL.LevelID = EA.LevelID
WHERE EA.LevelID = @LevelID
RETURN
+GO
+
+-- Service Level Quotas, change type
+UPDATE Quotas
+SET QuotaTypeID = 2
+WHERE QuotaName like 'ServiceLevel.%'
+GO
+
+ALTER FUNCTION [dbo].[CalculateQuotaUsage]
+(
+ @PackageID int,
+ @QuotaID int
+)
+RETURNS int
+AS
+ BEGIN
+
+ DECLARE @QuotaTypeID int
+ DECLARE @QuotaName nvarchar(50)
+ SELECT @QuotaTypeID = QuotaTypeID, @QuotaName = QuotaName FROM Quotas
+ WHERE QuotaID = @QuotaID
+
+ IF @QuotaTypeID <> 2
+ RETURN 0
+
+ DECLARE @Result int
+
+ IF @QuotaID = 52 -- diskspace
+ SET @Result = dbo.CalculatePackageDiskspace(@PackageID)
+ ELSE IF @QuotaID = 51 -- bandwidth
+ SET @Result = dbo.CalculatePackageBandwidth(@PackageID)
+ ELSE IF @QuotaID = 53 -- domains
+ SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
+ INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
+ WHERE IsSubDomain = 0 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 54 -- sub-domains
+ SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
+ INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
+ WHERE IsSubDomain = 1 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 220 -- domain pointers
+ SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT
+ INNER JOIN Domains AS D ON D.PackageID = PT.PackageID
+ WHERE IsDomainPointer = 1 AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 71 -- scheduled tasks
+ SET @Result = (SELECT COUNT(S.ScheduleID) FROM PackagesTreeCache AS PT
+ INNER JOIN Schedule AS S ON S.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 305 -- RAM of VPS
+ SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
+ INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
+ WHERE SIP.PropertyName = 'RamSize' AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 306 -- HDD of VPS
+ SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
+ INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
+ WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 309 -- External IP addresses of VPS
+ SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
+ INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
+ INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
+ ELSE IF @QuotaID = 100 -- Dedicated Web IP addresses
+ SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
+ INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
+ INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 2)
+ ELSE IF @QuotaID = 350 -- RAM of VPSforPc
+ SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
+ INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
+ WHERE SIP.PropertyName = 'Memory' AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 351 -- HDD of VPSforPc
+ SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP
+ INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID
+ WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 354 -- External IP addresses of VPSforPc
+ SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
+ INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
+ INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
+ ELSE IF @QuotaID = 319 -- BB Users
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea
+ INNER JOIN BlackBerryUsers bu ON ea.AccountID = bu.AccountID
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 320 -- OCS Users
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea
+ INNER JOIN OCSUsers ocs ON ea.AccountID = ocs.AccountID
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 206 -- HostedSolution.Users
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (1,5,6,7))
+ ELSE IF @QuotaID = 78 -- Exchange2007.Mailboxes
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID
+ AND ea.AccountType IN (1)
+ AND ea.MailboxPlanId IS NOT NULL)
+ ELSE IF @QuotaID = 77 -- Exchange2007.DiskSpace
+ SET @Result = (SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS ea
+ INNER JOIN ExchangeMailboxPlans AS B ON ea.MailboxPlanId = B.MailboxPlanId
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 370 -- Lync.Users
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
+ INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 376 -- Lync.EVUsers
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
+ INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID
+ INNER JOIN LyncUserPlans lp ON lu.LyncUserPlanId = lp.LyncUserPlanId
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID AND lp.EnterpriseVoice = 1)
+ ELSE IF @QuotaID = 381 -- Dedicated Lync Phone Numbers
+ SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP
+ INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
+ INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 5)
+ ELSE IF @QuotaID = 430 -- Enterprise Storage
+ SET @Result = (SELECT SUM(ESF.FolderQuota) FROM EnterpriseFolders AS ESF
+ INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 431 -- Enterprise Storage Folders
+ SET @Result = (SELECT COUNT(ESF.EnterpriseFolderID) FROM EnterpriseFolders AS ESF
+ INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
+ WHERE PT.ParentPackageID = @PackageID)
+ ELSE IF @QuotaID = 423 -- HostedSolution.SecurityGroups
+ SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
+ INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
+ INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
+ WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (8,9))
+ ELSE IF @QuotaName like 'ServiceLevel.%' -- Support Service Level Quota
+ BEGIN
+ DECLARE @LevelID int
+
+ SELECT @LevelID = LevelID FROM SupportServiceLevels
+ WHERE LevelName = REPLACE(@QuotaName,'ServiceLevel.','')
+
+ IF (@LevelID IS NOT NULL)
+ SET @Result = (SELECT COUNT(EA.AccountID)
+ FROM SupportServiceLevels AS SL
+ INNER JOIN ExchangeAccounts AS EA ON SL.LevelID = EA.LevelID
+ INNER JOIN ServiceItems SI ON EA.ItemID = SI.ItemID
+ INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID
+ WHERE EA.LevelID = @LevelID AND PT.ParentPackageID = @PackageID)
+ ELSE SET @Result = 0
+ END
+ ELSE
+ SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q
+ INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID
+ INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID AND PT.ParentPackageID = @PackageID
+ WHERE Q.QuotaID = @QuotaID)
+
+ RETURN @Result
+ END
GO
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
index 17bef13f..e9f2f848 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
@@ -365,6 +365,7 @@ namespace WebsitePanel.EnterpriseServer
quota.QuotaId = (int)dr["QuotaId"];
quota.GroupId = (int)dr["GroupId"];
quota.QuotaName = (string)dr["QuotaName"];
+ quota.QuotaDescription = ((object)dr["QuotaDescription"]).GetType() == typeof(System.DBNull) ? string.Empty : (string)dr["QuotaDescription"];
quota.QuotaTypeId = (int)dr["QuotaTypeId"];
quota.QuotaAllocatedValue = (int)dr["QuotaValue"];
quota.QuotaUsedValue = (int)dr["QuotaUsedValue"];
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx
index 0fa1a42f..c6347b42 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx
@@ -219,4 +219,7 @@
Enterprise Storage
+
+ Service Levels
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx
index 4d7fa525..9f9e8388 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx
@@ -315,6 +315,14 @@
+
+
+
+
+
+ |
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
index cf461192..fdbf2648 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
@@ -27,6 +27,8 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
+using System.Web.UI.HtmlControls;
+using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.HostedSolution;
@@ -279,6 +281,14 @@ namespace WebsitePanel.Portal.ExchangeServer
}
else
enterpriseStorageStatsPanel.Visible = false;
+
+ if (cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels))
+ {
+ serviceLevelsStatsPanel.Visible = true;
+ BindServiceLevelsStats(cntx);
+ }
+ else
+ serviceLevelsStatsPanel.Visible = false;
}
private void BindCRMStats(OrganizationStatistics stats, OrganizationStatistics tenantStats)
@@ -379,5 +389,40 @@ namespace WebsitePanel.Portal.ExchangeServer
"SpaceID=" + PanelSecurity.PackageId.ToString());
}
+ private void BindServiceLevelsStats(PackageContext cntx)
+ {
+ foreach (var quota in Array.FindAll(
+ cntx.QuotasArray, x => x.QuotaName.Contains(Quotas.SERVICE_LEVELS)))
+ {
+ HtmlTableRow tr = new HtmlTableRow();
+ tr.Attributes["class"] = "OrgStatsRow";
+ HtmlTableCell col1 = new HtmlTableCell();
+ col1.Attributes["class"] = "OrgStatsQuota";
+ col1.Attributes["nowrap"] = "nowrap";
+ HyperLink link = new HyperLink();
+ link.ID = "lnk_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "").Replace(" ", string.Empty).Trim();
+ link.Text = quota.QuotaDescription;
+
+ col1.Controls.Add(link);
+
+ HtmlTableCell col2 = new HtmlTableCell();
+ QuotaViewer quotaControl = (QuotaViewer)LoadControl("../UserControls/QuotaViewer.ascx");
+ quotaControl.ID = quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "").Replace(" ", string.Empty).Trim() + "Stats";
+ quotaControl.QuotaTypeId = quota.QuotaTypeId;
+ quotaControl.DisplayGauge = true;
+ quotaControl.QuotaValue = quota.QuotaAllocatedValue;
+ quotaControl.QuotaUsedValue = quota.QuotaUsedValue;
+ if (quota.QuotaAllocatedValue != -1)
+ quotaControl.QuotaAvailable = quota.QuotaAllocatedValue - quota.QuotaUsedValue;
+
+ col2.Controls.Add(quotaControl);
+
+
+ tr.Controls.Add(col1);
+ tr.Controls.Add(col2);
+ serviceLevelsStatsPanel.Controls.Add(tr);
+ }
+ }
+
}
}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
index 5c686b8e..062c57df 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs
@@ -740,5 +740,23 @@ namespace WebsitePanel.Portal.ExchangeServer {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::WebsitePanel.Portal.QuotaViewer enterpriseStorageFoldersStats;
+
+ ///
+ /// serviceLevelsStatsPanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Panel serviceLevelsStatsPanel;
+
+ ///
+ /// locServiceLevels control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize locServiceLevels;
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs
index 7fe1cae5..ffc955e2 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs
@@ -128,6 +128,8 @@ namespace WebsitePanel.Portal.HostedSolution
if (user.LevelId > 0 && secServiceLevels.Visible)
{
+ secServiceLevels.IsCollapsed = false;
+
ServiceLevel serviceLevel = ES.Services.Organizations.GetSupportServiceLevel(user.LevelId);
bool addLevel = ddlServiceLevels.Items.FindByValue(serviceLevel.LevelId.ToString()) == null;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx
index 2507167b..dc5567f1 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx
@@ -2,7 +2,7 @@
<%@ Register Src="UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
-
+
|
( |
|
-
+ --%>
+
|
|
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs
index 4ce4bc2f..c6a1b520 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs
@@ -131,6 +131,8 @@ namespace WebsitePanel.Portal
protected override void OnPreRender(EventArgs e)
{
+ //
+ AddServiceLevelsQuotas();
//
SetVisibilityStatus4BriefQuotasBlock();
//
@@ -175,5 +177,77 @@ namespace WebsitePanel.Portal
}
}
}
+
+ //private void AddServiceLevelsQuotas()
+ //{
+ // foreach(var quota in Array.FindAll(
+ // cntx.QuotasArray, x => x.QuotaName.Contains(Quotas.SERVICE_LEVELS)))
+ // {
+ // HtmlGenericControl tr = new HtmlGenericControl();
+ // tr.ID = "pnl_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "");
+ // tr.TagName = "tr";
+
+ // HtmlGenericControl col1 = new HtmlGenericControl();
+ // col1.TagName = "td";
+ // col1.Attributes["class"] = "SubHead";
+ // col1.Attributes["nowrap"] = "nowrap";
+ // Label lbl = new Label();
+ // lbl.ID = "lbl_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "");
+ // lbl.Text = quota.QuotaDescription;
+ // col1.Controls.Add(lbl);
+
+ // HtmlGenericControl col2 = new HtmlGenericControl();
+ // col2.TagName = "td";
+ // col2.Attributes["class"] = "Normal";
+ // //Quota quotaControl = new Quota();
+ // // quotaControl.ID = "quota_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "");
+ // // quotaControl.QuotaName = quota.QuotaName;
+ // // quotaControl.Viewer = new QuotaViewer();
+ // // quotaControl.DisplayGauge = true;
+ // col2.InnerHtml = string.Format(
+ // "",
+ // "quota_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, ""),
+ // quota.QuotaName);
+ // //col2.Controls.Add(quotaControl);
+
+ // tr.Controls.Add(col1);
+ // tr.Controls.Add(col2);
+ // tblQuotas.Controls.Add((Control)tr);
+
+ // Control c1 = new Control();
+ // }
+ //}
+
+ private void AddServiceLevelsQuotas()
+ {
+ foreach (var quota in Array.FindAll(
+ cntx.QuotasArray, x => x.QuotaName.Contains(Quotas.SERVICE_LEVELS)))
+ {
+ HtmlTableRow tr = new HtmlTableRow();
+ tr.ID = "pnl_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "").Replace(" ", string.Empty).Trim();
+ HtmlTableCell col1 = new HtmlTableCell();
+ col1.Attributes["class"] = "SubHead";
+ col1.Attributes["nowrap"] = "nowrap";
+ Label lbl = new Label();
+ lbl.ID = "lbl_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "").Replace(" ", string.Empty).Trim();
+ lbl.Text = quota.QuotaDescription;
+
+ col1.Controls.Add(lbl);
+
+ HtmlTableCell col2 = new HtmlTableCell();
+ col2.Attributes["class"] = "Normal";
+ Quota quotaControl = (Quota)LoadControl("UserControls/Quota.ascx");
+ quotaControl.ID = "quota_" + quota.QuotaName.Replace(Quotas.SERVICE_LEVELS, "").Replace(" ", string.Empty).Trim();
+ quotaControl.QuotaName = quota.QuotaName;
+ quotaControl.DisplayGauge = true;
+
+ col2.Controls.Add(quotaControl);
+
+
+ tr.Controls.Add(col1);
+ tr.Controls.Add(col2);
+ tblQuotas.Controls.Add(tr);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs
index 6933af8b..e19a2d5f 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs
@@ -1,31 +1,3 @@
-// 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.
-
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
@@ -40,6 +12,15 @@ namespace WebsitePanel.Portal {
public partial class SpaceQuotas {
+ ///
+ /// tblQuotas control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlTable tblQuotas;
+
///
/// pnlDiskspace control.
///
@@ -148,33 +129,6 @@ namespace WebsitePanel.Portal {
///
protected global::WebsitePanel.Portal.Quota quotaSubDomains;
- ///
- /// pnlDomainPointers control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomainPointers;
-
- ///
- /// lblDomainPointers control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::System.Web.UI.WebControls.Label lblDomainPointers;
-
- ///
- /// quotaDomainPointers control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::WebsitePanel.Portal.Quota quotaDomainPointers;
-
///
/// pnlOrganizations control.
///