fixing bugs

This commit is contained in:
vfedosevich 2014-01-08 17:56:16 +03:00
parent b9e6bafc1e
commit 54fade88c8
16 changed files with 81 additions and 109 deletions

View file

@ -3026,3 +3026,13 @@ UPDATE EnterpriseFolders SET
FolderQuota = @FolderQuota FolderQuota = @FolderQuota
WHERE ItemID = @ItemID AND FolderName = @FolderID WHERE ItemID = @ItemID AND FolderName = @FolderID
GO GO
-- Enterprise Storage Quotas
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID],[QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (430, 44, 1,N'EnterpriseStorage.DiskStorageSpace',N'Disk Storage Space (Mb)',2, 0 , NULL)
END
GO
UPDATE [dbo].[Quotas] SET [QuotaDescription] = N'Disk Storage Space (Mb)' WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace'
GO

View file

@ -828,19 +828,16 @@ namespace WebsitePanel.EnterpriseServer
rule.Users.Add(permission.Account); rule.Users.Add(permission.Account);
} }
if (permission.Access.ToLower().Contains("read")) if (permission.Access.ToLower().Contains("read-only"))
{ {
rule.Read = true; rule.Read = true;
rule.Source = true;
} }
if (permission.Access.ToLower().Contains("write")) if (permission.Access.ToLower().Contains("read-write"))
{ {
rule.Write = true; rule.Write = true;
} rule.Read = true;
if (permission.Access.ToLower().Contains("source"))
{
rule.Source = true;
} }
rule.Pathes.Add("*"); rule.Pathes.Add("*");
@ -888,24 +885,13 @@ namespace WebsitePanel.EnterpriseServer
permission.DisplayName = userObj.DisplayName; permission.DisplayName = userObj.DisplayName;
} }
if (rule.Read) if (rule.Read && !rule.Write)
{ {
permission.Access += "Read,"; permission.Access = "Read-Only";
} }
if (rule.Write) if (rule.Write)
{ {
permission.Access += "Write,"; permission.Access = "Read-Write";
}
if (rule.Source)
{
permission.Access += "Source";
}
if (permission.Access[permission.Access.Length - 1] == ',')
{
permission.Access = permission.Access.Remove(permission.Access.Length - 1);
} }
permissions.Add(permission); permissions.Add(permission);

View file

@ -961,7 +961,7 @@ namespace WebsitePanel.EnterpriseServer
stats.CreatedEnterpriseStorageFolders = folders.Count(); stats.CreatedEnterpriseStorageFolders = folders.Count();
stats.UsedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB); stats.UsedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB);
} }
} }
else else
@ -1025,7 +1025,7 @@ namespace WebsitePanel.EnterpriseServer
stats.CreatedEnterpriseStorageFolders += folders.Count(); stats.CreatedEnterpriseStorageFolders += folders.Count();
stats.UsedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB); stats.UsedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB);
} }
} }
} }

View file

@ -5114,7 +5114,7 @@
<value>Recoverable Items Storage, MB</value> <value>Recoverable Items Storage, MB</value>
</data> </data>
<data name="Quota.EnterpriseStorage.DiskStorageSpace" xml:space="preserve"> <data name="Quota.EnterpriseStorage.DiskStorageSpace" xml:space="preserve">
<value>Disk Storage Space, Gb</value> <value>Disk Storage Space, Mb</value>
</data> </data>
<data name="Quota.EnterpriseStorage.Folders" xml:space="preserve"> <data name="Quota.EnterpriseStorage.Folders" xml:space="preserve">
<value>Number of Root Folders</value> <value>Number of Root Folders</value>

View file

@ -205,6 +205,6 @@
<value>Folders:</value> <value>Folders:</value>
</data> </data>
<data name="lblEnterpriseStorage.Text" xml:space="preserve"> <data name="lblEnterpriseStorage.Text" xml:space="preserve">
<value>Enterprise Storage:</value> <value>Enterprise Storage, MB:</value>
</data> </data>
</root> </root>

View file

@ -214,7 +214,7 @@
<value>Folders:</value> <value>Folders:</value>
</data> </data>
<data name="lnkEnterpriseStorageSpace.Text" xml:space="preserve"> <data name="lnkEnterpriseStorageSpace.Text" xml:space="preserve">
<value>Used Diskspace (Gb):</value> <value>Used Diskspace (Mb):</value>
</data> </data>
<data name="locEnterpriseStorage.Text" xml:space="preserve"> <data name="locEnterpriseStorage.Text" xml:space="preserve">
<value>Enterprise Storage</value> <value>Enterprise Storage</value>

View file

@ -41,7 +41,7 @@
<asp:TextBox ID="txtFolderSize" runat="server" CssClass="HugeTextBox200"></asp:TextBox> <asp:TextBox ID="txtFolderSize" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireFolderSize" runat="server" meta:resourcekey="valRequireFolderSize" ControlToValidate="txtFolderSize" <asp:RequiredFieldValidator ID="valRequireFolderSize" runat="server" meta:resourcekey="valRequireFolderSize" ControlToValidate="txtFolderSize"
ErrorMessage="Enter Folder Size" ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator> ErrorMessage="Enter Folder Size" ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rangeFolderSize" runat="server" ControlToValidate="txtFolderSize" MaximumValue="99999" MinimumValue="1" <asp:RangeValidator ID="rangeFolderSize" runat="server" ControlToValidate="txtFolderSize" MaximumValue="99999999" MinimumValue="1" Type="Integer"
ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True" ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True"
ErrorMessage="The quota youve entered exceeds the available quota for tenant" /> ErrorMessage="The quota youve entered exceeds the available quota for tenant" />
</td> </td>

View file

@ -45,6 +45,12 @@ namespace WebsitePanel.Portal.ExchangeServer
{ {
public partial class EnterpriseStorageFolderGeneralSettings : WebsitePanelModuleBase public partial class EnterpriseStorageFolderGeneralSettings : WebsitePanelModuleBase
{ {
#region Constants
private const int OneGb = 1024;
#endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
@ -56,7 +62,6 @@ namespace WebsitePanel.Portal.ExchangeServer
} }
BindSettings(); BindSettings();
}
OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID); OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
@ -64,10 +69,11 @@ namespace WebsitePanel.Portal.ExchangeServer
{ {
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID); OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
rangeFolderSize.MaximumValue = (tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace + Utils.ParseInt(txtFolderSize.Text, 0)).ToString(); rangeFolderSize.MaximumValue = ((tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace)/OneGb + Utils.ParseInt(txtFolderSize.Text, 0)).ToString();
rangeFolderSize.ErrorMessage = string.Format("The quota youve entered exceeds the available quota for tenant ({0}Gb)", rangeFolderSize.MaximumValue); rangeFolderSize.ErrorMessage = string.Format("The quota youve entered exceeds the available quota for tenant ({0}Gb)", rangeFolderSize.MaximumValue);
} }
} }
}
private void BindSettings() private void BindSettings()
{ {
@ -157,7 +163,7 @@ namespace WebsitePanel.Portal.ExchangeServer
folder, folder,
permissions.GetPemissions(), permissions.GetPemissions(),
chkDirectoryBrowsing.Checked, chkDirectoryBrowsing.Checked,
int.Parse(txtFolderSize.Text), int.Parse(txtFolderSize.Text) * OneGb,
rbtnQuotaSoft.Checked ? QuotaType.Soft : QuotaType.Hard); rbtnQuotaSoft.Checked ? QuotaType.Soft : QuotaType.Hard);

View file

@ -69,7 +69,7 @@
<asp:TemplateField HeaderText="gvFolderSize" SortExpression="Size"> <asp:TemplateField HeaderText="gvFolderSize" SortExpression="Size">
<ItemStyle Width="20%"></ItemStyle> <ItemStyle Width="20%"></ItemStyle>
<ItemTemplate> <ItemTemplate>
<asp:Literal id="litFolderSize" runat="server" Text='<%# Eval("Size").ToString() + " Mb" %>'></asp:Literal> <asp:Literal id="litFolderSize" runat="server" Text='<%# (ConvertMBytesToGB(Eval("Size"))).ToString("f1") + " Gb" %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="gvFolderUrl"> <asp:TemplateField HeaderText="gvFolderUrl">

View file

@ -37,6 +37,12 @@ namespace WebsitePanel.Portal.ExchangeServer
{ {
public partial class EnterpriseStorageFolders : WebsitePanelModuleBase public partial class EnterpriseStorageFolders : WebsitePanelModuleBase
{ {
#region Constants
private const int OneGb = 1024;
#endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
@ -61,6 +67,11 @@ namespace WebsitePanel.Portal.ExchangeServer
"ItemID=" + PanelRequest.ItemID); "ItemID=" + PanelRequest.ItemID);
} }
public decimal ConvertMBytesToGB(object size)
{
return Convert.ToDecimal(size) / OneGb;
}
protected void BindEnterpriseStorageStats() protected void BindEnterpriseStorageStats()
{ {
btnAddFolder.Enabled = true; btnAddFolder.Enabled = true;
@ -74,15 +85,24 @@ namespace WebsitePanel.Portal.ExchangeServer
if (organizationStats.AllocatedEnterpriseStorageFolders != -1) if (organizationStats.AllocatedEnterpriseStorageFolders != -1)
{ {
int folderAvailable = foldersQuota.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; int folderAvailable = foldersQuota.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders;
int spaceAvailable = tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace;
if (folderAvailable <= 0 || spaceAvailable <= 0) if (folderAvailable <= 0)
{ {
btnAddFolder.Enabled = false; btnAddFolder.Enabled = false;
} }
} }
spaceQuota.QuotaValue = organizationStats.UsedEnterpriseStorageSpace; if (organizationStats.AllocatedEnterpriseStorageSpace != -1)
{
int spaceAvailable = (int)ConvertMBytesToGB(tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace);
if (spaceAvailable <= 0)
{
btnAddFolder.Enabled = false;
}
}
spaceQuota.QuotaValue = (int)ConvertMBytesToGB(organizationStats.UsedEnterpriseStorageSpace);
} }
protected void btnAddFolder_Click(object sender, EventArgs e) protected void btnAddFolder_Click(object sender, EventArgs e)

View file

@ -129,17 +129,11 @@
<data name="btnDelete.Text" xml:space="preserve"> <data name="btnDelete.Text" xml:space="preserve">
<value>Delete</value> <value>Delete</value>
</data> </data>
<data name="btnSet.Text" xml:space="preserve"> <data name="btnSetReadOnly.Text" xml:space="preserve">
<value>Set Permissions</value> <value>Set Read-Only</value>
</data> </data>
<data name="chkRead" xml:space="preserve"> <data name="btnSetReadWrite.Text" xml:space="preserve">
<value>Read</value> <value>Set Read-Write</value>
</data>
<data name="chkSource" xml:space="preserve">
<value>Source</value>
</data>
<data name="chkWrite" xml:space="preserve">
<value>Write</value>
</data> </data>
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve"> <data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
<value>Display Name</value> <value>Display Name</value>

View file

@ -38,11 +38,8 @@
</asp:GridView> </asp:GridView>
<br /> <br />
<div class="FormButtonsBarClean"> <div class="FormButtonsBarClean">
<asp:CheckBox ID="chkRead" runat="server" Text="Read" meta:resourcekey="chkRead" /> <asp:Button ID="btnSetReadOnly" runat="server" Text="Set Read-Only" CssClass="Button1" OnClick="btn_UpdateAccess" CommandArgument="Read-Only" meta:resourcekey="btnSetReadOnly" />
<asp:CheckBox ID="chkWrite" runat="server" Text="Write" meta:resourcekey="chkWrite" /> <asp:Button ID="btnSetReadWrite" runat="server" Text="Set Read-Write" CssClass="Button1" OnClick="btn_UpdateAccess" CommandArgument="Read-Write" meta:resourcekey="btnSetReadWrite"/>
<asp:CheckBox ID="chkSource" runat="server" Text="Source" meta:resourcekey="chkSource" />
<br />
<asp:Button ID="btnSet" runat="server" Text="Set Permissions" CssClass="Button1" OnClick="btn_UpdateAccess" meta:resourcekey="btnSet" />
</div> </div>

View file

@ -103,7 +103,7 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
{ {
Account = account.AccountName, Account = account.AccountName,
DisplayName = account.DisplayName, DisplayName = account.DisplayName,
Access = "Read", Access = "Read-Only",
}); });
} }
@ -281,34 +281,9 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
if (chkSelect.Checked) if (chkSelect.Checked)
{ {
chkSelect.Checked = false; chkSelect.Checked = false;
litAccess.Text = ((Button)sender).CommandArgument;
litAccess.Text = "";
if (chkRead.Checked)
{
litAccess.Text = "Read,";
}
if (chkWrite.Checked)
{
litAccess.Text += "Write,";
}
if (chkSource.Checked)
{
litAccess.Text += "Source";
}
if (litAccess.Text[litAccess.Text.Length - 1] == ',')
{
litAccess.Text = litAccess.Text.Remove(litAccess.Text.Length - 1);
} }
} }
} }
chkRead.Checked = false;
chkWrite.Checked = false;
chkSource.Checked = false;
}
} }
} }

View file

@ -49,40 +49,22 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls {
protected global::System.Web.UI.WebControls.GridView gvPermissions; protected global::System.Web.UI.WebControls.GridView gvPermissions;
/// <summary> /// <summary>
/// chkRead control. /// btnSetReadOnly 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.CheckBox chkRead; protected global::System.Web.UI.WebControls.Button btnSetReadOnly;
/// <summary> /// <summary>
/// chkWrite control. /// btnSetReadWrite 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.CheckBox chkWrite; protected global::System.Web.UI.WebControls.Button btnSetReadWrite;
/// <summary>
/// chkSource control.
/// </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 chkSource;
/// <summary>
/// btnSet control.
/// </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 btnSet;
/// <summary> /// <summary>
/// AddAccountsPanel control. /// AddAccountsPanel control.

View file

@ -5283,7 +5283,9 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Content> </Content>
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageCreateFolder.ascx.resx" /> <Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageCreateFolder.ascx.resx" />
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageFolderGeneralSettings.ascx.resx" /> <Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageFolderGeneralSettings.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeServer\UserControls\App_LocalResources\EnterpriseStoragePermissions.ascx.resx" /> <Content Include="ExchangeServer\UserControls\App_LocalResources\EnterpriseStoragePermissions.ascx.resx" />
<Content Include="Lync\App_LocalResources\LyncPhoneNumbers.ascx.resx"> <Content Include="Lync\App_LocalResources\LyncPhoneNumbers.ascx.resx">
<SubType>Designer</SubType> <SubType>Designer</SubType>