Merge Commit
This commit is contained in:
commit
9247943323
24 changed files with 946 additions and 225 deletions
|
@ -112,10 +112,10 @@
|
|||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<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=2.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>
|
||||
<data name="secMailboxPassword.Text" xml:space="preserve">
|
||||
<value>User Password Policy</value>
|
||||
|
@ -124,6 +124,6 @@
|
|||
<value>Organization Id Policy</value>
|
||||
</data>
|
||||
<data name="threeOrg.Text" xml:space="preserve">
|
||||
<value>Organization Policy</value>
|
||||
<value>Additional Default Security Groups</value>
|
||||
</data>
|
||||
</root>
|
|
@ -32,7 +32,7 @@
|
|||
</table>
|
||||
</asp:Panel>
|
||||
|
||||
<wsp:CollapsiblePanel id="threeOrg" runat="server" TargetControlID="OrgPanel" meta:resourcekey="threeOrg" Text="Organization Policy"/>
|
||||
<wsp:CollapsiblePanel id="threeOrg" runat="server" TargetControlID="OrgPanel" meta:resourcekey="threeOrg" Text="Additional Default Security Groups"/>
|
||||
<asp:Panel ID="OrgPanel" runat="server" Height="0" style="overflow:hidden;">
|
||||
<table>
|
||||
<tr>
|
||||
|
|
|
@ -26,12 +26,17 @@
|
|||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public partial class SettingsExchangePolicy : WebsitePanelControlBase, IUserSettingsEditorControl
|
||||
{
|
||||
internal static AdditionalGroup[] additionalGroups;
|
||||
|
||||
#region IUserSettingsEditorControl Members
|
||||
|
||||
public void BindSettings(UserSettings settings)
|
||||
|
@ -39,6 +44,10 @@ namespace WebsitePanel.Portal
|
|||
// mailbox
|
||||
mailboxPasswordPolicy.Value = settings["MailboxPasswordPolicy"];
|
||||
orgIdPolicy.Value = settings["OrgIdPolicy"];
|
||||
|
||||
additionalGroups = ES.Services.Organizations.GetAdditionalGroups(settings.UserId);
|
||||
|
||||
orgPolicy.SetAdditionalGroups(additionalGroups);
|
||||
orgPolicy.Value = settings["OrgPolicy"];
|
||||
}
|
||||
|
||||
|
@ -47,6 +56,32 @@ namespace WebsitePanel.Portal
|
|||
settings["MailboxPasswordPolicy"] = mailboxPasswordPolicy.Value;
|
||||
settings["OrgIdPolicy"] = orgIdPolicy.Value;
|
||||
settings["OrgPolicy"] = orgPolicy.Value;
|
||||
|
||||
if (Utils.ParseBool(orgPolicy.Value, false))
|
||||
{
|
||||
List<AdditionalGroup> newAdditionalGroups = orgPolicy.GetGridViewGroups();
|
||||
|
||||
foreach (AdditionalGroup oldGroup in additionalGroups)
|
||||
{
|
||||
AdditionalGroup upGroup = newAdditionalGroups.Where(x => x.GroupId == oldGroup.GroupId).FirstOrDefault();
|
||||
|
||||
if(upGroup != null && upGroup.GroupName != oldGroup.GroupName)
|
||||
{
|
||||
ES.Services.Organizations.UpdateAdditionalGroup(oldGroup.GroupId, upGroup.GroupName);
|
||||
|
||||
newAdditionalGroups.Remove(upGroup);
|
||||
}
|
||||
else
|
||||
{
|
||||
ES.Services.Organizations.DeleteAdditionalGroup(oldGroup.GroupId);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (AdditionalGroup newGroup in newAdditionalGroups)
|
||||
{
|
||||
ES.Services.Organizations.AddAdditionalGroup(settings.UserId, newGroup.GroupName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
// 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>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
@ -117,7 +117,31 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="enablePolicyCheckBox.Text" xml:space="preserve">
|
||||
<data name="btnAddAdditionalGroup.Text" xml:space="preserve">
|
||||
<value>Add New Group</value>
|
||||
</data>
|
||||
<data name="btnUpdateAdditionalGroup.Text" xml:space="preserve">
|
||||
<value>Update Group</value>
|
||||
</data>
|
||||
<data name="chkEnablePolicy.Text" xml:space="preserve">
|
||||
<value>Enable Policy</value>
|
||||
</data>
|
||||
<data name="gvAdditionalGroup.HeaderText" xml:space="preserve">
|
||||
<value>Display Name</value>
|
||||
</data>
|
||||
<data name="gvAdditionalGroupEdit.HeaderText" xml:space="preserve">
|
||||
<value>Select</value>
|
||||
</data>
|
||||
<data name="gvAdditionalGroups.EmptyDataText" xml:space="preserve">
|
||||
<value>No groups have been added yet. To add a new group click "Add New Group" button.</value>
|
||||
</data>
|
||||
<data name="lblAdditionalGroupName.Text" xml:space="preserve">
|
||||
<value>Display Name:</value>
|
||||
</data>
|
||||
<data name="valDuplicateAdditionalGroup" xml:space="preserve">
|
||||
<value>*</value>
|
||||
</data>
|
||||
<data name="valRequireAdditionalGroup.Text" xml:space="preserve">
|
||||
<value>*</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,14 +1,59 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrgPolicyEditor.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.OrgPolicyEditor" %>
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="OrgPolicyPanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||
<ContentTemplate>
|
||||
<asp:CheckBox id="enablePolicyCheckBox" runat="server" meta:resourcekey="enablePolicyCheckBox" Text="Enable Policy" CssClass="NormalBold" AutoPostBack="true" OnCheckedChanged="EnablePolicy_CheckedChanged"/>
|
||||
<table id="PolicyTable" runat="server" cellpadding="2">
|
||||
<asp:CheckBox id="chkEnablePolicy" runat="server" meta:resourcekey="chkEnablePolicy" Text="Enable Policy"
|
||||
CssClass="NormalBold" AutoPostBack="true" OnCheckedChanged="chkEnablePolicy_CheckedChanged"/>
|
||||
<table id="PolicyBlock" runat="server" style="width:500px;">
|
||||
<tr>
|
||||
<td class="Normal" style="width:150px;">
|
||||
<asp:Label ID="lblEnableDefaultGroups" runat="server" meta:resourcekey="lblEnableDefaultGroups" Text="Enable Default Groups:"/>
|
||||
<td colspan="2" style="padding-top: 10px;">
|
||||
<asp:GridView id="gvAdditionalGroups" runat="server" EnableViewState="true" AutoGenerateColumns="false"
|
||||
Width="100%" meta:resourcekey="gvAdditionalGroups" CssSelectorClass="NormalGridView" OnRowCommand="gvAdditionalGroup_RowCommand" DataKeyNames="GroupId">
|
||||
<Columns>
|
||||
<asp:TemplateField meta:resourcekey="gvAdditionalGroupEdit" HeaderText="gvAdditionalGroupEdit">
|
||||
<ItemTemplate>
|
||||
<asp:ImageButton ID="cmdEdit" runat="server" SkinID="EditSmall" CommandName="EditItem" AlternateText="Edit record" CommandArgument='<%# Eval("GroupId") %>' ></asp:ImageButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvAdditionalGroup" HeaderText="gvAdditionalGroup">
|
||||
<ItemStyle Width="100%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:Literal id="litDisplayAdditionalGroup" runat="server" Text='<%# Eval("GroupName") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemStyle Width="30px" Wrap="false"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:ImageButton id="imgDelAdditionalGroup" runat="server" Text="Delete" SkinID="ExchangeDelete"
|
||||
CommandName="DeleteItem" CommandArgument='<%# Eval("GroupId") %>'
|
||||
meta:resourcekey="cmdDelete" OnClientClick="return confirm('Are you sure you want to delete selected group?')"></asp:ImageButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</td>
|
||||
<td class="Normal">
|
||||
<asp:CheckBox ID="chkEnableDefaultGroups" runat="server" CssClass="NormalTextBox" />
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal" style="width:150px; padding-top: 10px;">
|
||||
<asp:Label ID="lblAdditionalGroupName" runat="server" meta:resourcekey="lblAdditionalGroupName" Text="Display Name:"/>
|
||||
</td>
|
||||
<td class="Normal" style="padding-top: 10px;">
|
||||
<asp:TextBox ID="txtAdditionalGroup" runat="server" CssClass="NormalTextBox" Width="200"/>
|
||||
<asp:RequiredFieldValidator ID="valRequireAdditionalGroup" runat="server" meta:resourcekey="valRequireAdditionalGroup" ControlToValidate="txtAdditionalGroup"
|
||||
ErrorMessage="Enter Display Name" Display="Dynamic" Text="*" ValidationGroup="SettingsAdditionalGroupEditor" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||
<asp:CustomValidator ID="valDuplicateAdditionalGroup" runat="server" meta:resourcekey="valDuplicateAdditionalGroup" ControlToValidate="txtAdditionalGroup"
|
||||
OnServerValidate="DuplicateName_Validation" ErrorMessage="Duplicate Display Name" ValidateEmptyText="false" Display="Dynamic" Text="*"
|
||||
ValidationGroup="SettingsAdditionalGroupEditor" SetFocusOnError="True"></asp:CustomValidator>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="padding-top: 10px;">
|
||||
<div class="FormButtonsBarClean">
|
||||
<asp:Button ID="btnAddAdditionalGroup" runat="server" meta:resourcekey="btnAddAdditionalGroup"
|
||||
Text="Add New Group" CssClass="Button1" OnClick="btnAddAdditionalGroup_Click" ValidationGroup="SettingsAdditionalGroupEditor" />
|
||||
<asp:Button ID="btnUpdateAdditionalGroup" runat="server" meta:resourcekey="btnUpdateAdditionalGroup"
|
||||
Text="Update Group" CssClass="Button1" OnClick="btnUpdateAdditionalGroup_Click" ValidationGroup="SettingsAdditionalGroupEditor" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -27,8 +27,12 @@
|
|||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal.UserControls
|
||||
{
|
||||
|
@ -40,30 +44,21 @@ namespace WebsitePanel.Portal.UserControls
|
|||
{
|
||||
get
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append(enablePolicyCheckBox.Checked.ToString()).Append(";");
|
||||
sb.Append(chkEnableDefaultGroups.Checked.ToString()).Append(";");
|
||||
|
||||
return sb.ToString();
|
||||
return chkEnablePolicy.Checked.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
if (String.IsNullOrEmpty(value))
|
||||
{
|
||||
enablePolicyCheckBox.Checked = true;
|
||||
chkEnableDefaultGroups.Checked = true;
|
||||
chkEnablePolicy.Checked = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
string[] parts = value.Split(';');
|
||||
enablePolicyCheckBox.Checked = Utils.ParseBool(parts[0], true);
|
||||
chkEnableDefaultGroups.Checked = Utils.ParseBool(parts[1], true);
|
||||
}
|
||||
catch
|
||||
{
|
||||
chkEnablePolicy.Checked = Utils.ParseBool(value, true);
|
||||
}
|
||||
catch {}
|
||||
}
|
||||
|
||||
ToggleControls();
|
||||
|
@ -74,24 +69,140 @@ namespace WebsitePanel.Portal.UserControls
|
|||
|
||||
#region Methods
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
public void SetAdditionalGroups(AdditionalGroup[] additionalGroups)
|
||||
{
|
||||
BindAdditionalGroups(additionalGroups);
|
||||
}
|
||||
|
||||
private void ToggleControls()
|
||||
public List<AdditionalGroup> GetGridViewGroups()
|
||||
{
|
||||
PolicyTable.Visible = enablePolicyCheckBox.Checked;
|
||||
List<AdditionalGroup> additionalGroups = new List<AdditionalGroup>();
|
||||
for (int i = 0; i < gvAdditionalGroups.Rows.Count; i++)
|
||||
{
|
||||
GridViewRow row = gvAdditionalGroups.Rows[i];
|
||||
ImageButton cmdEdit = (ImageButton)row.FindControl("cmdEdit");
|
||||
if (cmdEdit == null)
|
||||
continue;
|
||||
|
||||
AdditionalGroup group = new AdditionalGroup();
|
||||
group.GroupId = (int)gvAdditionalGroups.DataKeys[i][0];
|
||||
group.GroupName = ((Literal)row.FindControl("litDisplayAdditionalGroup")).Text;
|
||||
|
||||
additionalGroups.Add(group);
|
||||
}
|
||||
|
||||
return additionalGroups;
|
||||
}
|
||||
|
||||
protected void ToggleControls()
|
||||
{
|
||||
PolicyBlock.Visible = chkEnablePolicy.Checked;
|
||||
}
|
||||
|
||||
protected void BindAdditionalGroups(AdditionalGroup[] additionalGroups)
|
||||
{
|
||||
gvAdditionalGroups.DataSource = additionalGroups;
|
||||
gvAdditionalGroups.DataBind();
|
||||
}
|
||||
|
||||
protected int GetRowIndexByDataKey(int dataKey)
|
||||
{
|
||||
int index = 0;
|
||||
foreach (DataKey key in gvAdditionalGroups.DataKeys)
|
||||
{
|
||||
if (Utils.ParseInt(key.Value, 0) == dataKey)
|
||||
break;
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
return index >= gvAdditionalGroups.DataKeys.Count ? -1 : index;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event Handlers
|
||||
|
||||
protected void EnablePolicy_CheckedChanged(object sender, EventArgs e)
|
||||
protected void chkEnablePolicy_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
ToggleControls();
|
||||
}
|
||||
|
||||
protected void btnAddAdditionalGroup_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!Page.IsValid)
|
||||
return;
|
||||
|
||||
List<AdditionalGroup> additionalGroups = GetGridViewGroups();
|
||||
|
||||
AdditionalGroup additionalGroup = new AdditionalGroup();
|
||||
|
||||
additionalGroup.GroupId = additionalGroups.Count != 0
|
||||
? additionalGroups.Select(x => x.GroupId).Max() + 1
|
||||
: 1;
|
||||
|
||||
additionalGroup.GroupName = txtAdditionalGroup.Text;
|
||||
|
||||
additionalGroups.Add(additionalGroup);
|
||||
|
||||
BindAdditionalGroups(additionalGroups.ToArray());
|
||||
|
||||
txtAdditionalGroup.Text = string.Empty;
|
||||
}
|
||||
|
||||
protected void btnUpdateAdditionalGroup_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ViewState["AdditionalGroupID"] == null || !Page.IsValid)
|
||||
return;
|
||||
|
||||
List<AdditionalGroup> additionalGroups = GetGridViewGroups();
|
||||
|
||||
additionalGroups
|
||||
.Where(x => x.GroupId == (int)ViewState["AdditionalGroupID"])
|
||||
.First().GroupName = txtAdditionalGroup.Text;
|
||||
|
||||
BindAdditionalGroups(additionalGroups.ToArray());
|
||||
|
||||
txtAdditionalGroup.Text = string.Empty;
|
||||
}
|
||||
|
||||
protected void gvAdditionalGroup_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||
{
|
||||
int additionalGroupId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
|
||||
|
||||
List<AdditionalGroup> additionalGroups = GetGridViewGroups();
|
||||
|
||||
int rowIndex = GetRowIndexByDataKey(additionalGroupId);
|
||||
|
||||
if (rowIndex != -1)
|
||||
{
|
||||
switch (e.CommandName)
|
||||
{
|
||||
case "DeleteItem":
|
||||
BindAdditionalGroups(
|
||||
additionalGroups
|
||||
.Where(x => x.GroupId != additionalGroupId).ToArray());
|
||||
|
||||
break;
|
||||
case "EditItem":
|
||||
ViewState["AdditionalGroupID"] = additionalGroupId;
|
||||
|
||||
txtAdditionalGroup.Text = additionalGroups
|
||||
.Where(x => x.GroupId == additionalGroupId)
|
||||
.Select(y => y.GroupName).First();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void DuplicateName_Validation(object source, ServerValidateEventArgs arguments)
|
||||
{
|
||||
List<AdditionalGroup> additionalGroups = GetGridViewGroups();
|
||||
|
||||
arguments.IsValid = (additionalGroups.Where(x => x.GroupName.Trim() == arguments.Value).Count() == 0);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -25,7 +25,6 @@
|
|||
// 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>
|
||||
// This code was generated by a tool.
|
||||
|
@ -50,39 +49,84 @@ namespace WebsitePanel.Portal.UserControls {
|
|||
protected global::System.Web.UI.UpdatePanel OrgPolicyPanel;
|
||||
|
||||
/// <summary>
|
||||
/// enablePolicyCheckBox control.
|
||||
/// chkEnablePolicy control.
|
||||
/// </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 enablePolicyCheckBox;
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkEnablePolicy;
|
||||
|
||||
/// <summary>
|
||||
/// PolicyTable control.
|
||||
/// PolicyBlock control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlTable PolicyTable;
|
||||
protected global::System.Web.UI.HtmlControls.HtmlTable PolicyBlock;
|
||||
|
||||
/// <summary>
|
||||
/// lblEnableDefaultGroups control.
|
||||
/// gvAdditionalGroups control.
|
||||
/// </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 lblEnableDefaultGroups;
|
||||
protected global::System.Web.UI.WebControls.GridView gvAdditionalGroups;
|
||||
|
||||
/// <summary>
|
||||
/// chkEnableDefaultGroups control.
|
||||
/// lblAdditionalGroupName control.
|
||||
/// </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 chkEnableDefaultGroups;
|
||||
protected global::System.Web.UI.WebControls.Label lblAdditionalGroupName;
|
||||
|
||||
/// <summary>
|
||||
/// txtAdditionalGroup control.
|
||||
/// </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 txtAdditionalGroup;
|
||||
|
||||
/// <summary>
|
||||
/// valRequireAdditionalGroup control.
|
||||
/// </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 valRequireAdditionalGroup;
|
||||
|
||||
/// <summary>
|
||||
/// valDuplicateAdditionalGroup control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CustomValidator valDuplicateAdditionalGroup;
|
||||
|
||||
/// <summary>
|
||||
/// btnAddAdditionalGroup control.
|
||||
/// </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 btnAddAdditionalGroup;
|
||||
|
||||
/// <summary>
|
||||
/// btnUpdateAdditionalGroup control.
|
||||
/// </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 btnUpdateAdditionalGroup;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5226,6 +5226,7 @@
|
|||
</Content>
|
||||
<Content Include="ProviderControls\App_LocalResources\EnterpriseStorage_Settings.ascx.resx" />
|
||||
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageSpaces.ascx.resx">
|
||||
<Content Include="UserControls\App_LocalResources\OrgPolicyEditor.ascx.resx" />
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue