Merge
This commit is contained in:
commit
e9c7b0868b
580 changed files with 247313 additions and 5211 deletions
|
@ -402,6 +402,9 @@
|
|||
<data name="Error.MAIL_UPDATE_ACCOUNT" xml:space="preserve">
|
||||
<value>Error updating mail account</value>
|
||||
</data>
|
||||
<data name="Error.MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY" xml:space="preserve">
|
||||
<value>Password doesn't meet complexity. Perhaps the password length is less 5 characters.</value>
|
||||
</data>
|
||||
<data name="Error.MAIL_UPDATE_DOMAIN" xml:space="preserve">
|
||||
<value>Error updating mail domain</value>
|
||||
</data>
|
||||
|
@ -3136,6 +3139,15 @@
|
|||
<data name="Success.ORGANIZATION_UPDATE_USER_SETTINGS" xml:space="preserve">
|
||||
<value>User general settings have been successfully updated.</value>
|
||||
</data>
|
||||
<data name="Success.ACTIONS_MESSAGE" xml:space="preserve">
|
||||
<value>Action has been successfully performed.</value>
|
||||
</data>
|
||||
<data name="Error.ACTIONS_MESSAGE" xml:space="preserve">
|
||||
<value>Failed to perform action.</value>
|
||||
</data>
|
||||
<data name="Warning.ACTIONS_MESSAGE" xml:space="preserve">
|
||||
<value>Please select the items for which you want to perform action.</value>
|
||||
</data>
|
||||
<data name="Success.ORGANIZATION_SET_USER_PASSWORD" xml:space="preserve">
|
||||
<value>User password has been successfully updated.</value>
|
||||
</data>
|
||||
|
@ -5335,6 +5347,9 @@
|
|||
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
||||
<value>Mailbox plan updated</value>
|
||||
</data>
|
||||
<data name="Success.EXCHANGE_SET_DEFAULT_MAILBOXPLAN" xml:space="preserve">
|
||||
<value>Succesfully set default mailbox plan.</value>
|
||||
</data>
|
||||
<data name="Error.LYNC_UPDATEPLANS" xml:space="preserve">
|
||||
<value>Lync plan update failed</value>
|
||||
</data>
|
||||
|
|
|
@ -32,11 +32,13 @@ Default skin template. The following skins are provided as examples only.
|
|||
<asp:ImageButton SkinID="StopMedium" runat="server" ImageUrl="Images/stop_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
|
||||
<asp:ImageButton SkinID="ContinueMedium" runat="server" ImageUrl="Images/play_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
|
||||
<asp:ImageButton SkinID="RecycleMedium" runat="server" ImageUrl="Images/restart_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
|
||||
<asp:ImageButton SkinID="ApplyMedium" runat="server" ImageUrl="Images/apply_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
|
||||
|
||||
<asp:ImageButton SkinID="PauseSmall" runat="server" ImageUrl="Images/pause_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
||||
<asp:ImageButton SkinID="StartSmall" runat="server" ImageUrl="Images/play_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
||||
<asp:ImageButton SkinID="StopSmall" runat="server" ImageUrl="Images/stop_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
||||
<asp:ImageButton SkinID="ContinueSmall" runat="server" ImageUrl="Images/play_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
||||
<asp:ImageButton SkinID="ApplySmall" runat="server" ImageUrl="Images/apply_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
||||
|
||||
|
||||
<asp:ImageButton SkinID="VpsDelete" runat="server" ImageUrl="Images/VPS/delete.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
|
Binary file not shown.
After Width: | Height: | Size: 682 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -93,6 +93,8 @@ select:disabled {border:1px solid #ccc; background:#f5f5f5; color:#ccc; cursor:n
|
|||
textarea {font-family:inherit; font-size:inherit; color:inherit; background:#fff; border: 1px solid #ccc; padding:3px 0 3px 3px; margin:0; resize:none;}
|
||||
/* checkbox */
|
||||
input[type=checkbox], input[type=radio] {margin:8px 4px 8px; vertical-align:-1px;}
|
||||
.HeaderCheckbox {margin-left:5px;}
|
||||
.GridCheckbox input[type=checkbox] {margin-top:0px;}
|
||||
input[type=image] {margin-right:4px;}
|
||||
.LoginLabel {display:block; line-height:34px; width:auto !important; padding-right:8px;}
|
||||
.LoginContainer .SubHead {padding-right:8px; color:#333;}
|
||||
|
@ -177,9 +179,12 @@ h2.ProductTitle.Huge {margin:0;}
|
|||
.FormButtonsBar .Left {float: left;}
|
||||
.FormButtonsBar .Right {float:right;}
|
||||
.FormButtonsBar Button2.Right {text-align: right; margin-bottom: 3px;}
|
||||
.FormButtonsBarClean {clear: both; padding-bottom: 4px;}
|
||||
.FormButtonsBarClean {clear: both; padding-bottom: 4px; height: 26px;}
|
||||
.FormButtonsBarCleanLeft {float: left;}
|
||||
.FormButtonsBarCleanRight {text-align: right;}
|
||||
.FormButtonsBarCleanMiddle {float: right;}
|
||||
.FormButtonsBarCleanSeparator {padding-right: 30px;}
|
||||
.FormButtonsBarCleanSeparatorSmall {padding-right: 3px;}
|
||||
.GridFooter .Left {float: left;}
|
||||
.GridFooter .Right {text-align: right;}
|
||||
.FormRow {padding-top: 4px; padding-bottom: 4px;}
|
||||
|
@ -190,6 +195,7 @@ SPAN.Checkbox.Bold {font-weight: bold;}
|
|||
.Checkbox INPUT {vertical-align: middle;}
|
||||
.FormFooter {padding:10px 0;}
|
||||
.FormFooterClean {font-size: 9pt; margin-top: 10px; padding: 10px 10px 0px 0px; border-top: solid 1px #DFDFDF;}
|
||||
.FormFooterMiddle {padding:10px;}
|
||||
.FormRBtnL {padding-top: 10px;}
|
||||
UL.VerticalButtons {margin: 0px; list-style: none; padding-left: 20px; float: right; width: 150px;}
|
||||
UL.VerticalButtons LI {padding-top: 2px; padding-bottom: 2px;}
|
||||
|
|
|
@ -249,4 +249,7 @@
|
|||
<data name="secRetentionPolicy.Text" xml:space="preserve">
|
||||
<value>Retention policy</value>
|
||||
</data>
|
||||
<data name="lblDefaultMailboxPlan.Text" xml:space="preserve">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
</root>
|
|
@ -328,21 +328,21 @@ namespace WebsitePanel.Portal
|
|||
return idn.GetAscii(domainName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds the specified parameter to the Query String.
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="paramName">Name of the parameter to add.</param>
|
||||
/// <param name="paramValue">Value for the parameter to add.</param>
|
||||
/// <returns>Url with added parameter.</returns>
|
||||
public static Uri AddParameter(this Uri url, string paramName, string paramValue)
|
||||
public static List<T> GetCheckboxValuesFromGrid<T>(GridView gridView, string checkboxName)
|
||||
{
|
||||
var uriBuilder = new UriBuilder(url);
|
||||
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
|
||||
query[paramName] = paramValue;
|
||||
uriBuilder.Query = query.ToString();
|
||||
// Get checked users
|
||||
var userIds = new List<T>();
|
||||
|
||||
return new Uri(uriBuilder.ToString());
|
||||
foreach (GridViewRow gvr in gridView.Rows)
|
||||
{
|
||||
if (((CheckBox)gvr.FindControl(checkboxName)).Checked)
|
||||
{
|
||||
string userId = gridView.DataKeys[gvr.DataItemIndex].Value.ToString();
|
||||
userIds.Add((T)Convert.ChangeType(userId, typeof(T)));
|
||||
}
|
||||
}
|
||||
|
||||
return userIds;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,24 @@ namespace WebsitePanel.Portal.Code.Helpers
|
|||
|| PackagesHelper.CheckGroupQuotaEnabled(packageId, t.ResourceGroup, t.Quota)
|
||||
select t;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Adds the specified parameter to the Query String.
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="paramName">Name of the parameter to add.</param>
|
||||
/// <param name="paramValue">Value for the parameter to add.</param>
|
||||
/// <returns>Url with added parameter.</returns>
|
||||
public static Uri AddParameter(this Uri url, string paramName, string paramValue)
|
||||
{
|
||||
var uriBuilder = new UriBuilder(url);
|
||||
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
|
||||
query[paramName] = paramValue;
|
||||
uriBuilder.Query = query.ToString();
|
||||
|
||||
return new Uri(uriBuilder.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public class Tab
|
||||
|
|
|
@ -3,10 +3,18 @@
|
|||
<%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/UserDetails.ascx" TagName="UserDetails" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/DomainActions.ascx" TagName="DomainActions" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
|
||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||
|
||||
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
||||
|
||||
|
||||
<script language="javascript">
|
||||
function SelectAllCheckboxes(box) {
|
||||
$(".NormalGridView tbody :checkbox").attr("checked", $(box).attr("checked"));
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="FormButtonsBar">
|
||||
<div class="Left">
|
||||
|
@ -16,14 +24,32 @@
|
|||
|
||||
</div>
|
||||
<div class="Right">
|
||||
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<wsp:DomainActions ID="websiteActions" runat="server" GridViewID="gvDomains" CheckboxesName="chkSelectedIds" />
|
||||
</td>
|
||||
<td class="FormButtonsBarCleanSeparator"></td>
|
||||
<td>
|
||||
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<asp:GridView ID="gvDomains" runat="server" AutoGenerateColumns="False" Width="100%" AllowSorting="True" DataSourceID="odsDomainsPaged"
|
||||
EmptyDataText="gvDomains"
|
||||
EmptyDataText="gvDomains" DataKeyNames="DomainID"
|
||||
CssSelectorClass="NormalGridView" AllowPaging="True" OnRowCommand="gvDomains_RowCommand">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>
|
||||
<asp:CheckBox ID="selectAll" Runat="server" onclick="javascript:SelectAllCheckboxes(this);" CssClass="HeaderCheckbox"></asp:CheckBox>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox runat="server" ID="chkSelectedIds" CssClass="GridCheckbox"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField SortExpression="DomainName" HeaderText="gvDomainsName">
|
||||
<ItemStyle Width="45%" Wrap="False"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
|
|
|
@ -55,10 +55,10 @@ namespace WebsitePanel.Portal
|
|||
|
||||
// visibility
|
||||
chkRecursive.Visible = (PanelSecurity.SelectedUser.Role != UserRole.User);
|
||||
gvDomains.Columns[4].Visible = gvDomains.Columns[5].Visible =
|
||||
gvDomains.Columns[5].Visible = gvDomains.Columns[6].Visible =
|
||||
(PanelSecurity.SelectedUser.Role != UserRole.User) && chkRecursive.Checked;
|
||||
gvDomains.Columns[6].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
||||
gvDomains.Columns[7].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
||||
gvDomains.Columns[7].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
||||
gvDomains.Columns[8].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -40,6 +12,15 @@ namespace WebsitePanel.Portal {
|
|||
|
||||
public partial class Domains {
|
||||
|
||||
/// <summary>
|
||||
/// asyncTasks control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||
|
||||
/// <summary>
|
||||
/// btnAddDomain control.
|
||||
/// </summary>
|
||||
|
@ -58,6 +39,15 @@ namespace WebsitePanel.Portal {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkRecursive;
|
||||
|
||||
/// <summary>
|
||||
/// websiteActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.DomainActions websiteActions;
|
||||
|
||||
/// <summary>
|
||||
/// searchBox control.
|
||||
/// </summary>
|
||||
|
|
|
@ -189,4 +189,7 @@
|
|||
<data name="SharedMailbox.Text" xml:space="preserve">
|
||||
<value>Shared Mailbox</value>
|
||||
</data>
|
||||
<data name="chkUserMustChangePassword.Text" xml:space="preserve">
|
||||
<value>User must change password at next logon</value>
|
||||
</data>
|
||||
</root>
|
|
@ -118,7 +118,7 @@
|
|||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnCreateMailbox.Text" xml:space="preserve">
|
||||
<value>Create New Mailbox</value>
|
||||
<value>New Mailbox</value>
|
||||
</data>
|
||||
<data name="cmdDelete.OnClientClick" xml:space="preserve">
|
||||
<value>if(!confirm('Are you sure you want to delete this mailbox?')) return false; else ShowProgressDialog('Deleting mailbox...');</value>
|
||||
|
|
|
@ -159,4 +159,7 @@
|
|||
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||
<value>*</value>
|
||||
</data>
|
||||
<data name="chkUserMustChangePassword.Text" xml:space="preserve">
|
||||
<value>User must change password at next logon</value>
|
||||
</data>
|
||||
</root>
|
|
@ -252,4 +252,7 @@
|
|||
<data name="secServiceLevels.Text" xml:space="preserve">
|
||||
<value>Service Level Information</value>
|
||||
</data>
|
||||
<data name="chkUserMustChangePassword.Text" xml:space="preserve">
|
||||
<value>User must change password at next logon</value>
|
||||
</data>
|
||||
</root>
|
|
@ -110,6 +110,7 @@
|
|||
<td>
|
||||
<wsp:PasswordControl id="password" runat="server" ValidationGroup="CreateMailbox" AllowGeneratePassword="true">
|
||||
</wsp:PasswordControl>
|
||||
<asp:CheckBox ID="chkUserMustChangePassword" runat="server" meta:resourcekey="chkUserMustChangePassword" Text="User must change password at next login" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -236,7 +236,8 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
user.ExternalEmail,
|
||||
txtSubscriberNumber.Text,
|
||||
0,
|
||||
false);
|
||||
false,
|
||||
chkUserMustChangePassword.Checked);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -274,6 +246,15 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.PasswordControl password;
|
||||
|
||||
/// <summary>
|
||||
/// chkUserMustChangePassword 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 chkUserMustChangePassword;
|
||||
|
||||
/// <summary>
|
||||
/// locMailboxType control.
|
||||
/// </summary>
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/UserActions.ascx" TagName="UserActions" TagPrefix="wsp" %>
|
||||
|
||||
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript">
|
||||
function SelectAllCheckboxes(box) {
|
||||
$(".NormalGridView tbody :checkbox").attr("checked", $(box).attr("checked"));
|
||||
}
|
||||
</script>
|
||||
|
||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||
|
||||
|
@ -21,40 +30,59 @@
|
|||
<div class="FormButtonsBarClean">
|
||||
<div class="FormButtonsBarCleanLeft">
|
||||
<asp:Button ID="btnCreateMailbox" runat="server" meta:resourcekey="btnCreateMailbox"
|
||||
Text="Create New Mailbox" CssClass="Button1" OnClick="btnCreateMailbox_Click" />
|
||||
Text="New Mailbox" CssClass="Button1" OnClick="btnCreateMailbox_Click" />
|
||||
</div>
|
||||
<div class="FormButtonsBarCleanRight">
|
||||
<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"
|
||||
onselectedindexchanged="ddlPageSize_SelectedIndexChanged">
|
||||
<asp:ListItem>10</asp:ListItem>
|
||||
<asp:ListItem Selected="True">20</asp:ListItem>
|
||||
<asp:ListItem>50</asp:ListItem>
|
||||
|
||||
<asp:ListItem>100</asp:ListItem>
|
||||
|
||||
</asp:DropDownList>
|
||||
<div class="FormButtonsBarCleanMiddle">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<wsp:UserActions ID="userActions" runat="server" GridViewID="gvMailboxes" CheckboxesName="chkSelectedUsersIds" ShowSetMailboxPlan="true" />
|
||||
</td>
|
||||
<td class="FormButtonsBarCleanSeparatorSmall"></td>
|
||||
<td>
|
||||
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||
<asp:CheckBox ID="chkMailboxes" runat="server" meta:resourcekey="chkMailboxes" Text="Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged" CssClass="Small" />
|
||||
<asp:CheckBox ID="chkResourceMailboxes" runat="server" meta:resourcekey="chkResourceMailboxes" Text="Resource Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged" CssClass="Small" />
|
||||
<asp:CheckBox ID="chkSharedMailboxes" runat="server" meta:resourcekey="chkSharedMailboxes" Text="Shared Mailboxes" AutoPostBack="true" OnCheckedChanged="chkMailboxes_CheckedChanged" CssClass="Small" />
|
||||
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged" Width="50">
|
||||
<asp:ListItem>10</asp:ListItem>
|
||||
<asp:ListItem Selected="True">20</asp:ListItem>
|
||||
<asp:ListItem>50</asp:ListItem>
|
||||
|
||||
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||
<asp:ListItem Value="UserPrincipalName" meta:resourcekey="ddlSearchColumnUserPrincipalName">Login</asp:ListItem>
|
||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||
CausesValidation="false"/>
|
||||
</asp:Panel>
|
||||
<asp:ListItem>100</asp:ListItem>
|
||||
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||
<asp:ListItem Value="UserPrincipalName" meta:resourcekey="ddlSearchColumnUserPrincipalName">Login</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
<asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox>
|
||||
<asp:ImageButton ID="cmdSearch" runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton" CausesValidation="false" />
|
||||
</asp:Panel>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<asp:GridView ID="gvMailboxes" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||
Width="100%" EmptyDataText="gvMailboxes" CssSelectorClass="NormalGridView"
|
||||
Width="100%" EmptyDataText="gvMailboxes" CssSelectorClass="NormalGridView" DataKeyNames="AccountId"
|
||||
OnRowCommand="gvMailboxes_RowCommand" AllowPaging="True" AllowSorting="True"
|
||||
DataSourceID="odsAccountsPaged" PageSize="20">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>
|
||||
<asp:CheckBox ID="selectAll" Runat="server" onclick="javascript:SelectAllCheckboxes(this);" CssClass="HeaderCheckbox"></asp:CheckBox>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox runat="server" ID="chkSelectedUsersIds" CssClass="GridCheckbox"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:Image ID="img2" runat="server" Width="16px" Height="16px" ImageUrl='<%# GetStateImage((bool)Eval("Locked"),(bool)Eval("Disabled")) %>' ImageAlign="AbsMiddle" />
|
||||
|
@ -80,7 +108,7 @@
|
|||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="gvServiceLevel">
|
||||
<ItemStyle Width="20%"></ItemStyle>
|
||||
<ItemStyle Width="15%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:Label id="lbServLevel" runat="server" ToolTip = '<%# GetServiceLevel((int)Eval("LevelId")).LevelDescription%>'>
|
||||
<%# GetServiceLevel((int)Eval("LevelId")).LevelName%>
|
||||
|
|
|
@ -69,16 +69,15 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
|
||||
BindServiceLevels();
|
||||
|
||||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_ISCONSUMER))
|
||||
{
|
||||
if (cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue != 1)
|
||||
{
|
||||
gvMailboxes.Columns[4].Visible = false;
|
||||
gvMailboxes.Columns[6].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
gvMailboxes.Columns[3].Visible = cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
||||
gvMailboxes.Columns[4].Visible = cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
||||
}
|
||||
|
||||
private void BindServiceLevels()
|
||||
|
@ -272,6 +271,5 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
|
||||
odsAccountsPaged.SelectParameters["accountTypes"].DefaultValue = string.Join(",", accountTypes);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -85,6 +57,15 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnCreateMailbox;
|
||||
|
||||
/// <summary>
|
||||
/// userActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.UserActions userActions;
|
||||
|
||||
/// <summary>
|
||||
/// SearchPanel control.
|
||||
/// </summary>
|
||||
|
|
|
@ -81,6 +81,7 @@
|
|||
<td>
|
||||
<wsp:PasswordControl id="password" runat="server" ValidationGroup="CreateMailbox" AllowGeneratePassword="true" >
|
||||
</wsp:PasswordControl>
|
||||
<asp:CheckBox ID="chkUserMustChangePassword" runat="server" meta:resourcekey="chkUserMustChangePassword" Text="User must change password at next login" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
|
@ -169,7 +169,8 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
user.ExternalEmail,
|
||||
txtSubscriberNumber.Text,
|
||||
0,
|
||||
false);
|
||||
false,
|
||||
chkUserMustChangePassword.Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -229,6 +201,15 @@ namespace WebsitePanel.Portal.HostedSolution {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.PasswordControl password;
|
||||
|
||||
/// <summary>
|
||||
/// chkUserMustChangePassword 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 chkUserMustChangePassword;
|
||||
|
||||
/// <summary>
|
||||
/// chkSendInstructions control.
|
||||
/// </summary>
|
||||
|
|
|
@ -77,10 +77,10 @@
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<asp:CheckBox ID="chkUserMustChangePassword" runat="server" meta:resourcekey="chkUserMustChangePassword" Text="User must change password at next login" />
|
||||
<br />
|
||||
<asp:CheckBox ID="chkDisable" runat="server" meta:resourcekey="chkDisable" Text="Disable User" />
|
||||
<br />
|
||||
|
|
|
@ -231,6 +231,8 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
|
||||
password.ValidationEnabled = true;
|
||||
password.Password = string.Empty;
|
||||
|
||||
chkUserMustChangePassword.Checked = user.UserMustChangePassword;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -323,7 +325,8 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
txtExternalEmailAddress.Text,
|
||||
txtSubscriberNumber.Text,
|
||||
string.IsNullOrEmpty(ddlServiceLevels.SelectedValue) ? 0 : int.Parse(ddlServiceLevels.SelectedValue),
|
||||
chkVIP.Checked);
|
||||
chkVIP.Checked,
|
||||
chkUserMustChangePassword.Checked);
|
||||
|
||||
if (result < 0)
|
||||
{
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -238,6 +210,15 @@ namespace WebsitePanel.Portal.HostedSolution {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary2;
|
||||
|
||||
/// <summary>
|
||||
/// chkUserMustChangePassword 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 chkUserMustChangePassword;
|
||||
|
||||
/// <summary>
|
||||
/// chkDisable control.
|
||||
/// </summary>
|
||||
|
|
|
@ -3,6 +3,15 @@
|
|||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/UserActions.ascx" TagName="UserActions" TagPrefix="wsp" %>
|
||||
|
||||
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript">
|
||||
function SelectAllCheckboxes(box) {
|
||||
$(".NormalGridView tbody :checkbox").attr("checked", $(box).attr("checked"));
|
||||
}
|
||||
</script>
|
||||
|
||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||
|
||||
|
@ -25,25 +34,35 @@
|
|||
<asp:Button ID="btnCreateUser" runat="server" meta:resourcekey="btnCreateUser"
|
||||
Text="Create New User" CssClass="Button1" OnClick="btnCreateUser_Click" />
|
||||
</div>
|
||||
<div class="FormButtonsBarCleanRight">
|
||||
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
||||
onselectedindexchanged="ddlPageSize_SelectedIndexChanged">
|
||||
<asp:ListItem>10</asp:ListItem>
|
||||
<asp:ListItem Selected="True">20</asp:ListItem>
|
||||
<asp:ListItem>50</asp:ListItem>
|
||||
<asp:ListItem>100</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
<div class="FormButtonsBarCleanMiddle">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<wsp:UserActions ID="userActions" runat="server" GridViewID="gvUsers" CheckboxesName="chkSelectedUsersIds" />
|
||||
</td>
|
||||
<td class="FormButtonsBarCleanSeparator"></td>
|
||||
<td>
|
||||
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
|
||||
<asp:ListItem>10</asp:ListItem>
|
||||
<asp:ListItem Selected="True">20</asp:ListItem>
|
||||
<asp:ListItem>50</asp:ListItem>
|
||||
<asp:ListItem>100</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||
<asp:ListItem Value="UserPrincipalName" meta:resourcekey="ddlSearchColumnUserPrincipalName">Login</asp:ListItem>
|
||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||
CausesValidation="false"/>
|
||||
</asp:Panel>
|
||||
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||
<asp:ListItem Value="UserPrincipalName" meta:resourcekey="ddlSearchColumnUserPrincipalName">Login</asp:ListItem>
|
||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||
CausesValidation="false" />
|
||||
</asp:Panel>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<asp:Panel ID="UsersPanel" runat="server">
|
||||
|
@ -54,12 +73,19 @@
|
|||
OnRowCommand="gvUsers_RowCommand" AllowPaging="True" AllowSorting="True"
|
||||
DataSourceID="odsAccountsPaged" PageSize="20">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>
|
||||
<asp:CheckBox ID="selectAll" Runat="server" onclick="javascript:SelectAllCheckboxes(this);" CssClass="HeaderCheckbox"></asp:CheckBox>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox runat="server" ID="chkSelectedUsersIds" CssClass="GridCheckbox"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:Image ID="img2" runat="server" Width="16px" Height="16px" ImageUrl='<%# GetStateImage((bool)Eval("Locked"),(bool)Eval("Disabled")) %>' ImageAlign="AbsMiddle" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField HeaderText="gvUsersDisplayName" SortExpression="DisplayName">
|
||||
<ItemStyle Width="25%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
|
|
|
@ -56,10 +56,10 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
{
|
||||
if (cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue != 1)
|
||||
{
|
||||
gvUsers.Columns[5].Visible = false;
|
||||
gvUsers.Columns[6].Visible = false;
|
||||
}
|
||||
}
|
||||
gvUsers.Columns[3].Visible = cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
||||
gvUsers.Columns[4].Visible = cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels);
|
||||
}
|
||||
|
||||
private void BindServiceLevels()
|
||||
|
@ -136,7 +136,7 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
|
||||
var accountType = (ExchangeAccountType)gvUsers.DataKeys[rowIndex][1];
|
||||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATION_DELETED_USERS) && accountType != ExchangeAccountType.User)
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_DELETED_USERS, cntx) && accountType != ExchangeAccountType.User)
|
||||
{
|
||||
chkEnableForceArchiveMailbox.Visible = true;
|
||||
|
||||
|
@ -362,7 +362,7 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
{
|
||||
int result = 0;
|
||||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATION_DELETED_USERS))
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_DELETED_USERS, cntx))
|
||||
{
|
||||
result = ES.Services.Organizations.SetDeletedUser(PanelRequest.ItemID, int.Parse(hdAccountId.Value), chkEnableForceArchiveMailbox.Checked);
|
||||
}
|
||||
|
@ -388,5 +388,6 @@ namespace WebsitePanel.Portal.HostedSolution
|
|||
messageBox.ShowErrorMessage("ORGANIZATIONS_DELETE_USERS", ex);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -85,6 +57,15 @@ namespace WebsitePanel.Portal.HostedSolution {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnCreateUser;
|
||||
|
||||
/// <summary>
|
||||
/// userActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.UserActions userActions;
|
||||
|
||||
/// <summary>
|
||||
/// SearchPanel control.
|
||||
/// </summary>
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace WebsitePanel.Portal
|
|||
{
|
||||
public partial class FileManager : WebsitePanelModuleBase
|
||||
{
|
||||
public static string ALLOWED_EDIT_EXTENSIONS = ".txt,.htm,.html,.php,.pl,.sql,.cs,.vb,.ascx,.aspx,.inc,.asp,.config,.xml,.xsl,.xslt,.xsd,.master,.htaccess,.htpasswd,.cshtml,.vbhtml,.ini,.config";
|
||||
public static string ALLOWED_EDIT_EXTENSIONS = ".txt,.htm,.html,.cfc,.cfml,.cfm,.php,.pl,.sql,.cs,.vb,.ascx,.aspx,.inc,.asp,.config,.xml,.xsl,.xslt,.xsd,.master,.htaccess,.htpasswd,.cshtml,.vbhtml,.ini,.config";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
|
|
@ -31,6 +31,7 @@ using System.Web.UI.WebControls;
|
|||
using System.Collections.Generic;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using System.Text;
|
||||
using WebsitePanel.Portal.Code.Helpers;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
|
|
|
@ -235,9 +235,9 @@ namespace WebsitePanel.Portal
|
|||
try
|
||||
{
|
||||
int result = ES.Services.MailServers.AddMailAccount(item);
|
||||
if (result < 0)
|
||||
if (result == BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY)
|
||||
{
|
||||
ShowResultMessage(result);
|
||||
ShowErrorMessage("MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY");
|
||||
return;
|
||||
}
|
||||
if (result == BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA)
|
||||
|
@ -250,7 +250,11 @@ namespace WebsitePanel.Portal
|
|||
ShowResultMessage(result);
|
||||
return;
|
||||
}
|
||||
|
||||
if (result < 0)
|
||||
{
|
||||
ShowResultMessage(result);
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -264,6 +268,11 @@ namespace WebsitePanel.Portal
|
|||
try
|
||||
{
|
||||
int result = ES.Services.MailServers.UpdateMailAccount(item);
|
||||
if (result == BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY)
|
||||
{
|
||||
ShowErrorMessage("MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY");
|
||||
return;
|
||||
}
|
||||
if (result < 0)
|
||||
{
|
||||
ShowResultMessage(result);
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="cbChangePassword.Text" xml:space="preserve">
|
||||
<value>Change Password</value>
|
||||
</data>
|
||||
<data name="cbDomainAdmin.Text" xml:space="preserve">
|
||||
<value>Domain Administrator</value>
|
||||
</data>
|
||||
<data name="cbDomainAdministrator.Text" xml:space="preserve">
|
||||
<value>Domain Administrator</value>
|
||||
</data>
|
||||
<data name="cbEnableAccount.Text" xml:space="preserve">
|
||||
<value>Account enabled</value>
|
||||
</data>
|
||||
<data name="chkDeleteOnForward.Text" xml:space="preserve">
|
||||
<value>Delete Message on Forward</value>
|
||||
</data>
|
||||
<data name="chkResponderEnabled.Text" xml:space="preserve">
|
||||
<value>Yes</value>
|
||||
</data>
|
||||
<data name="lblFirstName.Text" xml:space="preserve">
|
||||
<value>First Name:</value>
|
||||
</data>
|
||||
<data name="lblForwardTo.Text" xml:space="preserve">
|
||||
<value>Forward Mail to Address:</value>
|
||||
</data>
|
||||
<data name="lblLastName.Text" xml:space="preserve">
|
||||
<value>Last Name:</value>
|
||||
</data>
|
||||
<data name="lblMessage.Text" xml:space="preserve">
|
||||
<value>Message:</value>
|
||||
</data>
|
||||
<data name="lblReplyTo.Text" xml:space="preserve">
|
||||
<value>Reply to Address:</value>
|
||||
</data>
|
||||
<data name="lblResponderEnabled.Text" xml:space="preserve">
|
||||
<value>Enable Autoresponder:</value>
|
||||
</data>
|
||||
<data name="lblSignature.Text" xml:space="preserve">
|
||||
<value>Signature:</value>
|
||||
</data>
|
||||
<data name="lblSubject.Text" xml:space="preserve">
|
||||
<value>Subject:</value>
|
||||
</data>
|
||||
<data name="secAutoresponder.Text" xml:space="preserve">
|
||||
<value>Autoresponder</value>
|
||||
</data>
|
||||
<data name="secForwarding.Text" xml:space="preserve">
|
||||
<value>Mail Forwarding</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblAbuse.Text" xml:space="preserve">
|
||||
<value>Abuse Account:</value>
|
||||
</data>
|
||||
<data name="lblCatchAll.Text" xml:space="preserve">
|
||||
<value>Catch-All Account:</value>
|
||||
</data>
|
||||
<data name="lblDomainAliases.Text" xml:space="preserve">
|
||||
<value>Domain Aliases :</value>
|
||||
</data>
|
||||
<data name="lblDomainDiskSpace.Text" xml:space="preserve">
|
||||
<value>Domain Disk Space, MB :</value>
|
||||
</data>
|
||||
<data name="lblMailingListsQuota.Text" xml:space="preserve">
|
||||
<value>Mailing Lists :</value>
|
||||
</data>
|
||||
<data name="lblMessageSizeQuota.Text" xml:space="preserve">
|
||||
<value>Max Message Size, KB :</value>
|
||||
</data>
|
||||
<data name="lblPopRetreivalAccounts.Text" xml:space="preserve">
|
||||
<value>POP Retrieval Accounts:</value>
|
||||
</data>
|
||||
<data name="lblPostmaster.Text" xml:space="preserve">
|
||||
<value>Postmaster Account:</value>
|
||||
</data>
|
||||
<data name="lblRecipientsPerMessageQuota.Text" xml:space="preserve">
|
||||
<value>Max Recipients per Message :</value>
|
||||
</data>
|
||||
<data name="lblUserAliasesQuota.Text" xml:space="preserve">
|
||||
<value>User Aliases :</value>
|
||||
</data>
|
||||
<data name="lblUserQuota.Text" xml:space="preserve">
|
||||
<value>Users :</value>
|
||||
</data>
|
||||
<data name="secFeatures.Text" xml:space="preserve">
|
||||
<value>Features</value>
|
||||
</data>
|
||||
<data name="secLimits.Text" xml:space="preserve">
|
||||
<value>Limits</value>
|
||||
</data>
|
||||
<data name="secSharing.Text" xml:space="preserve">
|
||||
<value>Sharing</value>
|
||||
</data>
|
||||
<data name="secTechnical.Text" xml:space="preserve">
|
||||
<value>Technical</value>
|
||||
</data>
|
||||
<data name="secThrottling.Text" xml:space="preserve">
|
||||
<value>Throttling</value>
|
||||
</data>
|
||||
<data name="Text.NotSelected" xml:space="preserve">
|
||||
<value><Not Selected></value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,168 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lbEnableCatchAlls.Text" xml:space="preserve">
|
||||
<value>Enable Catch-Alls</value>
|
||||
</data>
|
||||
<data name="lbEnableIMAPRetreival.Text" xml:space="preserve">
|
||||
<value>Enable IMAP Retreival</value>
|
||||
</data>
|
||||
<data name="lbEnableMailReports.Text" xml:space="preserve">
|
||||
<value>Enable Email Reports</value>
|
||||
</data>
|
||||
<data name="lbEnableMailSigning.Text" xml:space="preserve">
|
||||
<value>Enable Mail Signing</value>
|
||||
</data>
|
||||
<data name="lbEnablePopRetreival.Text" xml:space="preserve">
|
||||
<value>Enable POP Retrieval</value>
|
||||
</data>
|
||||
<data name="lbEnableSyncML.Text" xml:space="preserve">
|
||||
<value>Enable SyncML</value>
|
||||
</data>
|
||||
<data name="lbPopRetrieval.Text" xml:space="preserve">
|
||||
<value>Pop Retreival</value>
|
||||
</data>
|
||||
<data name="lbShowCalendar.Text" xml:space="preserve">
|
||||
<value>Calendar</value>
|
||||
</data>
|
||||
<data name="lbShowContacts.Text" xml:space="preserve">
|
||||
<value>Contacts</value>
|
||||
</data>
|
||||
<data name="lbShowcontentfilteringmenu.Text" xml:space="preserve">
|
||||
<value>Domain Content Filtering</value>
|
||||
</data>
|
||||
<data name="lbShowdomainaliasmenu.Text" xml:space="preserve">
|
||||
<value>Domain Aliases</value>
|
||||
</data>
|
||||
<data name="lbShowDomainReports.Text" xml:space="preserve">
|
||||
<value>Domain Reports</value>
|
||||
</data>
|
||||
<data name="lbShowlistmenu.Text" xml:space="preserve">
|
||||
<value>Mailing Lists</value>
|
||||
</data>
|
||||
<data name="lbShowNotes.Text" xml:space="preserve">
|
||||
<value>Notes</value>
|
||||
</data>
|
||||
<data name="lbShowspammenu.Text" xml:space="preserve">
|
||||
<value>Domain Spam Options</value>
|
||||
</data>
|
||||
<data name="lbShowTasks.Text" xml:space="preserve">
|
||||
<value>Tasks</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="cbGlobalAddressList.Text" xml:space="preserve">
|
||||
<value>Global Address List</value>
|
||||
</data>
|
||||
<data name="cbSharedCalendars.Text" xml:space="preserve">
|
||||
<value>Shared Calendars</value>
|
||||
</data>
|
||||
<data name="cbSharedContacts.Text" xml:space="preserve">
|
||||
<value>Shared Contacts</value>
|
||||
</data>
|
||||
<data name="cbSharedFolders.Text" xml:space="preserve">
|
||||
<value>Shared Folders</value>
|
||||
</data>
|
||||
<data name="cbSharedNotes.Text" xml:space="preserve">
|
||||
<value>Shared Notes</value>
|
||||
</data>
|
||||
<data name="cbSharedTasks.Text" xml:space="preserve">
|
||||
<value>Shared Tasks</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,132 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lbBandwidthPerHour.Text" xml:space="preserve">
|
||||
<value>Outgoing Bandwidth per Hour, MB:</value>
|
||||
</data>
|
||||
<data name="lbBouncesPerHour.Text" xml:space="preserve">
|
||||
<value>Bounces Received per Hour:</value>
|
||||
</data>
|
||||
<data name="lbEnabled.Text" xml:space="preserve">
|
||||
<value>Enabled</value>
|
||||
</data>
|
||||
<data name="lbMessagesPerHour.Text" xml:space="preserve">
|
||||
<value>Outgoing Messages per Hour:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 1.3
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">1.3</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1">this is my long string</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
[base64 mime encoded serialized .NET Framework object]
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblGroupMembers.Text" xml:space="preserve">
|
||||
<value>Group E-Mails:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,219 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="chkPasswordEnabled.Text" xml:space="preserve">
|
||||
<value>Enabled</value>
|
||||
</data>
|
||||
<data name="chkReplyToList.Text" xml:space="preserve">
|
||||
<value>Reply To List</value>
|
||||
</data>
|
||||
<data name="chkSubjectPrefixEnabled.Text" xml:space="preserve">
|
||||
<value>Enabled</value>
|
||||
</data>
|
||||
<data name="ctxValDomain.Text" xml:space="preserve">
|
||||
<value>Moderator should be within mail domain where Mail List is located</value>
|
||||
</data>
|
||||
<data name="ddlPostingModeItem.Anyone" xml:space="preserve">
|
||||
<value>Anyone</value>
|
||||
</data>
|
||||
<data name="ddlPostingModeItem.MembersOnly" xml:space="preserve">
|
||||
<value>Subscribers Only</value>
|
||||
</data>
|
||||
<data name="ddlPostingModeItem.ModeratorOnly" xml:space="preserve">
|
||||
<value>Moderator Only</value>
|
||||
</data>
|
||||
<data name="ddlPostingModeItem.Password" xml:space="preserve">
|
||||
<value>Password Protected Posting</value>
|
||||
</data>
|
||||
<data name="ddlReplyToItem.List" xml:space="preserve">
|
||||
<value>List</value>
|
||||
</data>
|
||||
<data name="ddlReplyToItem.Moderator" xml:space="preserve">
|
||||
<value>Moderator</value>
|
||||
</data>
|
||||
<data name="ddlReplyToItem.Sender" xml:space="preserve">
|
||||
<value>Sender</value>
|
||||
</data>
|
||||
<data name="lblDescription.Text" xml:space="preserve">
|
||||
<value>List Description:</value>
|
||||
</data>
|
||||
<data name="lblListOptions.Text" xml:space="preserve">
|
||||
<value>List Options:</value>
|
||||
</data>
|
||||
<data name="lblMaxMessageSize.Text" xml:space="preserve">
|
||||
<value>Max Message Size, KB:</value>
|
||||
</data>
|
||||
<data name="lblMaxRecipients.Text" xml:space="preserve">
|
||||
<value>Max Recipients per Message:</value>
|
||||
</data>
|
||||
<data name="lblMembers.Text" xml:space="preserve">
|
||||
<value>Mailing List Members:</value>
|
||||
</data>
|
||||
<data name="lblModerationEnabled.Text" xml:space="preserve">
|
||||
<value>Moderation is Enabled:</value>
|
||||
</data>
|
||||
<data name="lblModeratorAddress.Text" xml:space="preserve">
|
||||
<value>List Moderator:</value>
|
||||
</data>
|
||||
<data name="lblPostingMode.Text" xml:space="preserve">
|
||||
<value>Who Can Post:</value>
|
||||
</data>
|
||||
<data name="lblPostingPassword.Text" xml:space="preserve">
|
||||
<value>List Password:</value>
|
||||
</data>
|
||||
<data name="lblReplyTo.Text" xml:space="preserve">
|
||||
<value>Subscribers Reply To:</value>
|
||||
</data>
|
||||
<data name="lblSubjectPrefix.Text" xml:space="preserve">
|
||||
<value>Subject Prefix:</value>
|
||||
</data>
|
||||
<data name="Text.SelectModerator" xml:space="preserve">
|
||||
<value><Choose a moderator></value>
|
||||
</data>
|
||||
<data name="AdditionalOptions.Text" xml:space="preserve">
|
||||
<value>List Additional Options</value>
|
||||
</data>
|
||||
<data name="lbAllowUnsubscribe.Text" xml:space="preserve">
|
||||
<value>Enable Unsubscribe from Subject:</value>
|
||||
</data>
|
||||
<data name="lbDigestMode.Text" xml:space="preserve">
|
||||
<value>Enable Digest Mode:</value>
|
||||
</data>
|
||||
<data name="lbDisableListcommand.Text" xml:space="preserve">
|
||||
<value>Enable LIST Command:</value>
|
||||
</data>
|
||||
<data name="lbDisableSubscribecommand.Text" xml:space="preserve">
|
||||
<value>Enable SUBSCRIBE Command:</value>
|
||||
</data>
|
||||
<data name="lblListFromAddress.Text" xml:space="preserve">
|
||||
<value>List From Address:</value>
|
||||
</data>
|
||||
<data name="lblListReplyToAddress.Text" xml:space="preserve">
|
||||
<value>List Reply To Address:</value>
|
||||
</data>
|
||||
<data name="lblListToAddress.Text" xml:space="preserve">
|
||||
<value>List To Address:</value>
|
||||
</data>
|
||||
<data name="lbSendSubscribe.Text" xml:space="preserve">
|
||||
<value>Send Subscribe Email:</value>
|
||||
</data>
|
||||
<data name="lbSendUnsubscribe.Text" xml:space="preserve">
|
||||
<value>Send Unsubscribe Email:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,150 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="cbEnableDomainAdmin.Text" xml:space="preserve">
|
||||
<value>Enable Domain Administrators</value>
|
||||
</data>
|
||||
<data name="cbImportDomainAdmin.Text" xml:space="preserve">
|
||||
<value>Import Domain Admin</value>
|
||||
</data>
|
||||
<data name="cbImportSystemAdmin.Text" xml:space="preserve">
|
||||
<value>Import System Admin</value>
|
||||
</data>
|
||||
<data name="cbInheritDefaultLimits.Text" xml:space="preserve">
|
||||
<value>Inherit Domain Default Limits &nbsp; (Domain Default Limits will be applied for all new created domains)</value>
|
||||
</data>
|
||||
<data name="lblAdminLogin.Text" xml:space="preserve">
|
||||
<value>Admin Login:</value>
|
||||
</data>
|
||||
<data name="lblAdminPassword.Text" xml:space="preserve">
|
||||
<value>Admin Password:</value>
|
||||
</data>
|
||||
<data name="lblCurrPassword.Text" xml:space="preserve">
|
||||
<value>Current Admin Password:</value>
|
||||
</data>
|
||||
<data name="lblDomainsPath.Text" xml:space="preserve">
|
||||
<value>Domains Root Folder:</value>
|
||||
</data>
|
||||
<data name="lblPublicIP.Text" xml:space="preserve">
|
||||
<value>Public IP Address:</value>
|
||||
</data>
|
||||
<data name="lblServiceUrl.Text" xml:space="preserve">
|
||||
<value>SmarterMail Web Services URL:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,114 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditAccount.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditAccount" %>
|
||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||
|
||||
|
||||
<table width="100%">
|
||||
<tr runat="server" id="passwordRow">
|
||||
<td>
|
||||
</td>
|
||||
<td class="SubHead" height="37px">
|
||||
<asp:CheckBox runat="server" meta:resourcekey="cbChangePassword" ID="cbChangePassword" Text="Change password" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td>
|
||||
<td class="SubHead" height="37px">
|
||||
<asp:CheckBox runat="server" meta:resourcekey="cbEnableAccount" ID="cbEnableAccount" Text="Account enabled" Checked="True" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td>
|
||||
<td class="SubHead" height="37px">
|
||||
<asp:CheckBox runat="server" meta:resourcekey="cbDomainAdmin" ID="cbDomainAdmin" Text="Domain Administrator" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label ID="lblFirstName" runat="server" meta:resourcekey="lblFirstName" Text="First Name:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal" width="100%">
|
||||
<asp:TextBox ID="txtFirstName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblLastName" runat="server" meta:resourcekey="lblLastName" Text="Last Name:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal" valign="top">
|
||||
<asp:TextBox ID="txtLastName" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblReplyTo" runat="server" meta:resourcekey="lblReplyTo" Text="Reply to address:"></asp:Label></td>
|
||||
<td class="normal">
|
||||
<asp:TextBox ID="txtReplyTo" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblSignature" runat="server" meta:resourcekey="lblSignature" Text="Signature:"></asp:Label></td>
|
||||
<td class="normal">
|
||||
<asp:TextBox ID="txtSignature" runat="server" Width="200px" TextMode="MultiLine"
|
||||
Rows="4" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<wsp:CollapsiblePanel id="secAutoresponder" runat="server" TargetControlID="AutoresponderPanel"
|
||||
meta:resourcekey="secAutoresponder" Text="Autoresponder">
|
||||
</wsp:CollapsiblePanel>
|
||||
<asp:Panel ID="AutoresponderPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label ID="lblResponderEnabled" runat="server" meta:resourcekey="lblResponderEnabled"
|
||||
Text="Enable autoresponder:"></asp:Label></td>
|
||||
<td class="normal" width="100%">
|
||||
<asp:CheckBox ID="chkResponderEnabled" runat="server" meta:resourcekey="chkResponderEnabled"
|
||||
Text="Yes"></asp:CheckBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label></td>
|
||||
<td class="normal" valign="top">
|
||||
<asp:TextBox ID="txtSubject" runat="server" Width="400px" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" valign="top">
|
||||
<asp:Label ID="lblMessage" runat="server" meta:resourcekey="lblMessage" Text="Message:"></asp:Label></td>
|
||||
<td class="normal">
|
||||
<asp:TextBox ID="txtMessage" runat="server" Width="400px" TextMode="MultiLine" Rows="5"
|
||||
CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</asp:Panel>
|
||||
<wsp:CollapsiblePanel id="secForwarding" runat="server" TargetControlID="ForwardingPanel"
|
||||
meta:resourcekey="secForwarding" Text="Mail Forwarding">
|
||||
</wsp:CollapsiblePanel>
|
||||
<asp:Panel ID="ForwardingPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label ID="lblForwardTo" runat="server" meta:resourcekey="lblForwardTo" Text="Forward mail to address:"></asp:Label></td>
|
||||
<td class="normal" width="100%" valign="top">
|
||||
<asp:TextBox ID="txtForward" runat="server" Width="200px" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
</td>
|
||||
<td class="Normal">
|
||||
<asp:CheckBox ID="chkDeleteOnForward" runat="server" meta:resourcekey="chkDeleteOnForward"
|
||||
Text="Delete Message on Forward"></asp:CheckBox>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</asp:Panel>
|
|
@ -0,0 +1,75 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditAccount : WebsitePanelControlBase, IMailEditAccountControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
passwordRow.Visible = (PanelRequest.ItemID > 0);
|
||||
}
|
||||
|
||||
public void BindItem(MailAccount item)
|
||||
{
|
||||
txtFirstName.Text = item.FirstName;
|
||||
txtLastName.Text = item.LastName;
|
||||
txtSignature.Text = item.Signature;
|
||||
cbEnableAccount.Checked = item.Enabled;
|
||||
chkResponderEnabled.Checked = item.ResponderEnabled;
|
||||
txtReplyTo.Text = item.ReplyTo;
|
||||
txtSubject.Text = item.ResponderSubject;
|
||||
txtMessage.Text = item.ResponderMessage;
|
||||
txtForward.Text = item.ForwardingAddresses != null ? String.Join("; ", item.ForwardingAddresses) : "";
|
||||
chkDeleteOnForward.Checked = item.DeleteOnForward;
|
||||
cbDomainAdmin.Visible = item.IsDomainAdminEnabled;
|
||||
cbDomainAdmin.Checked = item.IsDomainAdmin;
|
||||
}
|
||||
|
||||
public void SaveItem(MailAccount item)
|
||||
{
|
||||
item.FirstName = txtFirstName.Text;
|
||||
item.LastName = txtLastName.Text;
|
||||
item.Signature = txtSignature.Text;
|
||||
item.ResponderEnabled = chkResponderEnabled.Checked;
|
||||
item.Enabled = cbEnableAccount.Checked;
|
||||
item.ReplyTo = txtReplyTo.Text;
|
||||
item.ResponderSubject = txtSubject.Text;
|
||||
item.ResponderMessage = txtMessage.Text;
|
||||
item.ForwardingAddresses = Utils.ParseDelimitedString(txtForward.Text, ';', ' ', ',');
|
||||
item.DeleteOnForward = chkDeleteOnForward.Checked;
|
||||
item.ChangePassword = cbChangePassword.Checked;
|
||||
item.ChangePassword = cbChangePassword.Checked;
|
||||
item.IsDomainAdmin = cbDomainAdmin.Checked;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,240 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditAccount {
|
||||
|
||||
/// <summary>
|
||||
/// passwordRow control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlTableRow passwordRow;
|
||||
|
||||
/// <summary>
|
||||
/// cbChangePassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbChangePassword;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableAccount control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableAccount;
|
||||
|
||||
/// <summary>
|
||||
/// cbDomainAdmin control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbDomainAdmin;
|
||||
|
||||
/// <summary>
|
||||
/// lblFirstName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblFirstName;
|
||||
|
||||
/// <summary>
|
||||
/// txtFirstName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtFirstName;
|
||||
|
||||
/// <summary>
|
||||
/// lblLastName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblLastName;
|
||||
|
||||
/// <summary>
|
||||
/// txtLastName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtLastName;
|
||||
|
||||
/// <summary>
|
||||
/// lblReplyTo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblReplyTo;
|
||||
|
||||
/// <summary>
|
||||
/// txtReplyTo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtReplyTo;
|
||||
|
||||
/// <summary>
|
||||
/// lblSignature control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblSignature;
|
||||
|
||||
/// <summary>
|
||||
/// txtSignature control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtSignature;
|
||||
|
||||
/// <summary>
|
||||
/// secAutoresponder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secAutoresponder;
|
||||
|
||||
/// <summary>
|
||||
/// AutoresponderPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel AutoresponderPanel;
|
||||
|
||||
/// <summary>
|
||||
/// lblResponderEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblResponderEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// chkResponderEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkResponderEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// lblSubject control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblSubject;
|
||||
|
||||
/// <summary>
|
||||
/// txtSubject control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtSubject;
|
||||
|
||||
/// <summary>
|
||||
/// lblMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMessage;
|
||||
|
||||
/// <summary>
|
||||
/// txtMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMessage;
|
||||
|
||||
/// <summary>
|
||||
/// secForwarding control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secForwarding;
|
||||
|
||||
/// <summary>
|
||||
/// ForwardingPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel ForwardingPanel;
|
||||
|
||||
/// <summary>
|
||||
/// lblForwardTo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblForwardTo;
|
||||
|
||||
/// <summary>
|
||||
/// txtForward control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtForward;
|
||||
|
||||
/// <summary>
|
||||
/// chkDeleteOnForward control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkDeleteOnForward;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain" %>
|
||||
<%@ Register Src="SmarterMail60_EditDomain_Features.ascx" TagName="SmarterMail60_EditDomain_Features"
|
||||
TagPrefix="uc4" %>
|
||||
<%@ Register Src="SmarterMail60_EditDomain_Sharing.ascx" TagName="SmarterMail60_EditDomain_Sharing"
|
||||
TagPrefix="uc3" %>
|
||||
<%@ Register Src="SmarterMail60_EditDomain_Throttling.ascx" TagName="SmarterMail60_EditDomain_Throttling"
|
||||
TagPrefix="uc5" %>
|
||||
|
||||
<%@ Register Src="../UserControls/QuotaEditor.ascx" TagName="QuotaEditor" TagPrefix="uc1" %>
|
||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||
|
||||
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label ID="lblCatchAll" runat="server" meta:resourcekey="lblCatchAll" Text="Catch-All Account:"></asp:Label></td>
|
||||
<td class="Normal" width="100%">
|
||||
<asp:DropDownList ID="ddlCatchAllAccount" runat="server" CssClass="NormalTextBox">
|
||||
</asp:DropDownList></td>
|
||||
</tr>
|
||||
</table>
|
||||
<asp:Panel runat="server" ID="AdvancedSettingsPanel">
|
||||
|
||||
|
||||
|
||||
<wsp:collapsiblepanel id="secFeatures" runat="server" targetcontrolid="FeaturesPanel"
|
||||
meta:resourcekey="secFeatures" ></wsp:collapsiblepanel>
|
||||
<asp:Panel runat="server" ID="FeaturesPanel">
|
||||
<uc4:SmarterMail60_EditDomain_Features id="featuresSection" runat="server"></uc4:SmarterMail60_EditDomain_Features>
|
||||
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<wsp:collapsiblepanel id="secSharing" runat="server" targetcontrolid="SharingPanel"
|
||||
meta:resourcekey="secSharing" ></wsp:collapsiblepanel>
|
||||
|
||||
<asp:Panel runat="server" ID="SharingPanel">
|
||||
<uc3:SmarterMail60_EditDomain_Sharing id="sharingSection" runat="server"></uc3:SmarterMail60_EditDomain_Sharing>
|
||||
</asp:Panel>
|
||||
|
||||
<wsp:collapsiblepanel id="secThrottling" runat="server" targetcontrolid="ThrottlingPanel"
|
||||
meta:resourcekey="secThrottling" ></wsp:collapsiblepanel>
|
||||
|
||||
<asp:Panel runat="server" ID="ThrottlingPanel">
|
||||
<uc5:SmarterMail60_EditDomain_Throttling id="throttlingSection" runat="server"></uc5:SmarterMail60_EditDomain_Throttling>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<wsp:collapsiblepanel id="secLimits" runat="server" targetcontrolid="LimitsPanel"
|
||||
meta:resourcekey="secLimits" text="Limits"></wsp:collapsiblepanel>
|
||||
|
||||
<asp:Panel runat="server" ID="LimitsPanel">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblDomainDiskSpace" runat="server" meta:resourcekey="lblDomainDiskSpace"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtSize" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||
<asp:RangeValidator Type="Integer" ID="valDomainDiskSpace" MinimumValue="0" runat="server" ControlToValidate="txtSize"
|
||||
Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValDiskSpace" runat="server" ControlToValidate="txtSize"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblDomainAliases" runat="server" meta:resourcekey="lblDomainAliases"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtDomainAliases" Text="0" Width="80px" CssClass="NormalTextBox"/>
|
||||
<asp:RangeValidator Type="Integer" ID="valDomainAliases" MinimumValue="0" runat="server" ControlToValidate="txtDomainAliases"
|
||||
Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValDomainAliases" runat="server" ControlToValidate="txtDomainAliases"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblUserQuota" runat="server" meta:resourcekey="lblUserQuota"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtUser" Width="80px" CssClass="NormalTextBox"/>
|
||||
<asp:RangeValidator Type="Integer" MinimumValue="0" ID="valUser" runat="server" ControlToValidate="txtUser"
|
||||
Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValUser" runat="server" ControlToValidate="txtUser"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblUserAliasesQuota" runat="server" meta:resourcekey="lblUserAliasesQuota"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtUserAliases" Width="80px" CssClass="NormalTextBox"/>
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valUserAliases" ControlToValidate="txtUserAliases"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValUserAliases" runat="server" ControlToValidate="txtUserAliases"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblMailingListsQuota" runat="server" meta:resourcekey="lblMailingListsQuota"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" Width="80px" ID="txtMailingLists" CssClass="NormalTextBox"/>
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valMailingLists" ControlToValidate="txtMailingLists"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValMailingLists" runat="server" ControlToValidate="txtMailingLists"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblPopRetreivalAccounts" runat="server" meta:resourcekey="lblPopRetreivalAccounts"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" Width="80px" ID="txtPopRetreivalAccounts" CssClass="NormalTextBox"/>
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valPopRetreivalAccounts" ControlToValidate="txtPopRetreivalAccounts"
|
||||
MinimumValue="0" Display="None"/>
|
||||
<asp:RequiredFieldValidator ID="reqPopRetreivalAccounts" runat="server" ControlToValidate="txtPopRetreivalAccounts"
|
||||
Display="None"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblMessageSizeQuota" runat="server" meta:resourcekey="lblMessageSizeQuota"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtMessageSize" CssClass="NormalTextBox" Width="80px"/>
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valMessageSize" ControlToValidate="txtMessageSize"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValMessageSize" runat="server" ControlToValidate="txtMessageSize"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap align="right">
|
||||
<asp:Label ID="lblRecipientsPerMessageQuota" runat="server" meta:resourcekey="lblRecipientsPerMessageQuota"></asp:Label></td>
|
||||
<td width="100%" align="left">
|
||||
<asp:TextBox runat="server" ID="txtRecipientsPerMessage" CssClass="NormalTextBox" Width="80px"/>
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valRecipientsPerMessage" ControlToValidate="txtRecipientsPerMessage"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValRecipientsPerMessage" runat="server" ControlToValidate="txtRecipientsPerMessage"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</asp:Panel>
|
||||
|
||||
</asp:Panel>
|
|
@ -0,0 +1,183 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditDomain : WebsitePanelControlBase, IMailEditDomainControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
PackageInfo info = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
|
||||
|
||||
AdvancedSettingsPanel.Visible = PanelSecurity.EffectiveUser.Role == UserRole.Administrator;
|
||||
InitValidators();
|
||||
}
|
||||
|
||||
public void BindItem(MailDomain item)
|
||||
{
|
||||
BindMailboxes(item);
|
||||
BindQuotas(item);
|
||||
|
||||
featuresSection.BindItem(item);
|
||||
sharingSection.BindItem(item);
|
||||
throttlingSection.BindItem(item);
|
||||
|
||||
|
||||
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
|
||||
{
|
||||
secSharing.Visible = false;
|
||||
sharingSection.Visible = false;
|
||||
secThrottling.Visible = false;
|
||||
throttlingSection.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
sharingSection.BindItem(item);
|
||||
throttlingSection.BindItem(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void SaveItem(MailDomain item)
|
||||
{
|
||||
item.CatchAllAccount = ddlCatchAllAccount.SelectedValue;
|
||||
SaveQuotas(item);
|
||||
|
||||
featuresSection.SaveItem(item);
|
||||
sharingSection.SaveItem(item);
|
||||
throttlingSection.SaveItem(item);
|
||||
|
||||
|
||||
if (item[MailDomain.SMARTERMAIL_LICENSE_TYPE] == "PRO")
|
||||
{
|
||||
secSharing.Visible = false;
|
||||
sharingSection.Visible = false;
|
||||
secThrottling.Visible = false;
|
||||
throttlingSection.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
sharingSection.SaveItem(item);
|
||||
throttlingSection.SaveItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveQuotas(MailDomain item)
|
||||
{
|
||||
item.MaxDomainSizeInMB = Utils.ParseInt(txtSize.Text);
|
||||
item.MaxDomainAliases = Utils.ParseInt(txtDomainAliases.Text);
|
||||
item.MaxDomainUsers = Utils.ParseInt(txtUser.Text);
|
||||
item.MaxAliases = Utils.ParseInt(txtUserAliases.Text);
|
||||
item.MaxLists = Utils.ParseInt(txtMailingLists.Text);
|
||||
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS] = txtPopRetreivalAccounts.Text;
|
||||
item.MaxRecipients = Utils.ParseInt(txtRecipientsPerMessage.Text);
|
||||
item.MaxMessageSize = Utils.ParseInt(txtMessageSize.Text);
|
||||
}
|
||||
|
||||
private void BindQuotas(MailDomain item)
|
||||
{
|
||||
txtSize.Text = item.MaxDomainSizeInMB.ToString();
|
||||
txtDomainAliases.Text = item.MaxDomainAliases.ToString();
|
||||
txtUser.Text = item.MaxDomainUsers.ToString();
|
||||
txtUserAliases.Text = item.MaxAliases.ToString();
|
||||
txtMailingLists.Text = item.MaxLists.ToString();
|
||||
txtPopRetreivalAccounts.Text = item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS];
|
||||
txtRecipientsPerMessage.Text = item.MaxRecipients.ToString();
|
||||
txtMessageSize.Text = item.MaxMessageSize.ToString();
|
||||
}
|
||||
|
||||
private void BindMailboxes(MailDomain item)
|
||||
{
|
||||
MailAccount[] accounts = ES.Services.MailServers.GetMailAccounts(item.PackageId, false);
|
||||
MailAlias[] forwardings = ES.Services.MailServers.GetMailForwardings(item.PackageId, false);
|
||||
|
||||
BindAccounts(item, ddlCatchAllAccount, accounts);
|
||||
BindAccounts(item, ddlCatchAllAccount, forwardings);
|
||||
Utils.SelectListItem(ddlCatchAllAccount, item.CatchAllAccount);
|
||||
|
||||
}
|
||||
|
||||
private void BindAccounts(MailDomain item, DropDownList ddl, MailAccount[] accounts)
|
||||
{
|
||||
if (ddl.Items.Count == 0)
|
||||
ddl.Items.Add(new ListItem(GetLocalizedString("Text.NotSelected"), ""));
|
||||
|
||||
foreach (MailAccount account in accounts)
|
||||
{
|
||||
int idx = account.Name.IndexOf("@");
|
||||
string accountName = account.Name.Substring(0, idx);
|
||||
string accountDomain = account.Name.Substring(idx + 1);
|
||||
|
||||
if (String.Compare(accountDomain, item.Name, true) == 0)
|
||||
ddl.Items.Add(new ListItem(account.Name, accountName));
|
||||
}
|
||||
}
|
||||
|
||||
private void InitValidators()
|
||||
{
|
||||
string message = "*";
|
||||
reqValRecipientsPerMessage.ErrorMessage = message;
|
||||
valRecipientsPerMessage.ErrorMessage = message;
|
||||
valRecipientsPerMessage.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValMessageSize.ErrorMessage = message;
|
||||
valMessageSize.ErrorMessage = message;
|
||||
valMessageSize.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValMailingLists.ErrorMessage = message;
|
||||
valMailingLists.ErrorMessage = message;
|
||||
valMailingLists.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqPopRetreivalAccounts.ErrorMessage = message;
|
||||
valPopRetreivalAccounts.ErrorMessage = message;
|
||||
valPopRetreivalAccounts.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValUser.ErrorMessage = message;
|
||||
valUser.ErrorMessage = message;
|
||||
valUser.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValUserAliases.ErrorMessage = message;
|
||||
valUserAliases.ErrorMessage = message;
|
||||
valUserAliases.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValDomainAliases.ErrorMessage = message;
|
||||
valDomainAliases.ErrorMessage = message;
|
||||
valDomainAliases.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValDiskSpace.ErrorMessage = message;
|
||||
valDomainDiskSpace.ErrorMessage = message;
|
||||
valDomainDiskSpace.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,429 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditDomain {
|
||||
|
||||
/// <summary>
|
||||
/// lblCatchAll control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblCatchAll;
|
||||
|
||||
/// <summary>
|
||||
/// ddlCatchAllAccount control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlCatchAllAccount;
|
||||
|
||||
/// <summary>
|
||||
/// AdvancedSettingsPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel AdvancedSettingsPanel;
|
||||
|
||||
/// <summary>
|
||||
/// secFeatures control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secFeatures;
|
||||
|
||||
/// <summary>
|
||||
/// FeaturesPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel FeaturesPanel;
|
||||
|
||||
/// <summary>
|
||||
/// featuresSection control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Features featuresSection;
|
||||
|
||||
/// <summary>
|
||||
/// secSharing control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secSharing;
|
||||
|
||||
/// <summary>
|
||||
/// SharingPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel SharingPanel;
|
||||
|
||||
/// <summary>
|
||||
/// sharingSection control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Sharing sharingSection;
|
||||
|
||||
/// <summary>
|
||||
/// secThrottling control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secThrottling;
|
||||
|
||||
/// <summary>
|
||||
/// ThrottlingPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel ThrottlingPanel;
|
||||
|
||||
/// <summary>
|
||||
/// throttlingSection control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ProviderControls.SmarterMail60_EditDomain_Throttling throttlingSection;
|
||||
|
||||
/// <summary>
|
||||
/// secLimits control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secLimits;
|
||||
|
||||
/// <summary>
|
||||
/// LimitsPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel LimitsPanel;
|
||||
|
||||
/// <summary>
|
||||
/// lblDomainDiskSpace control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblDomainDiskSpace;
|
||||
|
||||
/// <summary>
|
||||
/// txtSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtSize;
|
||||
|
||||
/// <summary>
|
||||
/// valDomainDiskSpace control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valDomainDiskSpace;
|
||||
|
||||
/// <summary>
|
||||
/// reqValDiskSpace control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValDiskSpace;
|
||||
|
||||
/// <summary>
|
||||
/// lblDomainAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblDomainAliases;
|
||||
|
||||
/// <summary>
|
||||
/// txtDomainAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtDomainAliases;
|
||||
|
||||
/// <summary>
|
||||
/// valDomainAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valDomainAliases;
|
||||
|
||||
/// <summary>
|
||||
/// reqValDomainAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValDomainAliases;
|
||||
|
||||
/// <summary>
|
||||
/// lblUserQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblUserQuota;
|
||||
|
||||
/// <summary>
|
||||
/// txtUser control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtUser;
|
||||
|
||||
/// <summary>
|
||||
/// valUser control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valUser;
|
||||
|
||||
/// <summary>
|
||||
/// reqValUser control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValUser;
|
||||
|
||||
/// <summary>
|
||||
/// lblUserAliasesQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblUserAliasesQuota;
|
||||
|
||||
/// <summary>
|
||||
/// txtUserAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtUserAliases;
|
||||
|
||||
/// <summary>
|
||||
/// valUserAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valUserAliases;
|
||||
|
||||
/// <summary>
|
||||
/// reqValUserAliases control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValUserAliases;
|
||||
|
||||
/// <summary>
|
||||
/// lblMailingListsQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMailingListsQuota;
|
||||
|
||||
/// <summary>
|
||||
/// txtMailingLists control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMailingLists;
|
||||
|
||||
/// <summary>
|
||||
/// valMailingLists control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valMailingLists;
|
||||
|
||||
/// <summary>
|
||||
/// reqValMailingLists control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMailingLists;
|
||||
|
||||
/// <summary>
|
||||
/// lblPopRetreivalAccounts control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblPopRetreivalAccounts;
|
||||
|
||||
/// <summary>
|
||||
/// txtPopRetreivalAccounts control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPopRetreivalAccounts;
|
||||
|
||||
/// <summary>
|
||||
/// valPopRetreivalAccounts control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valPopRetreivalAccounts;
|
||||
|
||||
/// <summary>
|
||||
/// reqPopRetreivalAccounts control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqPopRetreivalAccounts;
|
||||
|
||||
/// <summary>
|
||||
/// lblMessageSizeQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMessageSizeQuota;
|
||||
|
||||
/// <summary>
|
||||
/// txtMessageSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMessageSize;
|
||||
|
||||
/// <summary>
|
||||
/// valMessageSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valMessageSize;
|
||||
|
||||
/// <summary>
|
||||
/// reqValMessageSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMessageSize;
|
||||
|
||||
/// <summary>
|
||||
/// lblRecipientsPerMessageQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblRecipientsPerMessageQuota;
|
||||
|
||||
/// <summary>
|
||||
/// txtRecipientsPerMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtRecipientsPerMessage;
|
||||
|
||||
/// <summary>
|
||||
/// valRecipientsPerMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valRecipientsPerMessage;
|
||||
|
||||
/// <summary>
|
||||
/// reqValRecipientsPerMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValRecipientsPerMessage;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Features.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Features" %>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="lbShowcontentfilteringmenu" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbShowcontentfilteringmenu" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label2" meta:resourcekey="lbShowdomainaliasmenu" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbShowdomainaliasmenu" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label3" meta:resourcekey="lbShowlistmenu" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbShowlistmenu" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label4" meta:resourcekey="lbShowspammenu" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbShowspammenu" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label5" meta:resourcekey="lbShowDomainReports" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbShowDomainReports" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label6" meta:resourcekey="lbEnablePopRetreival" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnablePopRetreival" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label7" meta:resourcekey="lbEnableCatchAlls" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnableCatchAlls" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label8" meta:resourcekey="lbEnableIMAPRetreival" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnableIMAPRetreival" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label9" meta:resourcekey="lbEnableMailSigning" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnableEmailSigning" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label10" meta:resourcekey="lbEnableMailReports" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnableEmailReports" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label11" meta:resourcekey="lbEnableSyncML" runat="server" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbEnableSyncML" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,71 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditDomain_Features : WebsitePanelControlBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveItem(MailDomain item)
|
||||
{
|
||||
item.ShowContentFilteringMenu = cbShowcontentfilteringmenu.Checked;
|
||||
item.ShowDomainAliasMenu = cbShowdomainaliasmenu.Checked;
|
||||
item.ShowListMenu = cbShowlistmenu.Checked;
|
||||
item.ShowSpamMenu = cbShowspammenu.Checked;
|
||||
item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS] = cbShowDomainReports.Checked.ToString();
|
||||
item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED] = cbEnablePopRetreival.Checked.ToString();
|
||||
item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED] = cbEnableCatchAlls.Checked.ToString();
|
||||
item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED] = cbEnableIMAPRetreival.ToString();
|
||||
item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED] = cbEnableEmailSigning.ToString();
|
||||
item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED] = cbEnableEmailReports.ToString();
|
||||
item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED] = cbEnableSyncML.ToString();
|
||||
}
|
||||
|
||||
public void BindItem(MailDomain item)
|
||||
{
|
||||
cbShowcontentfilteringmenu.Checked = item.ShowContentFilteringMenu;
|
||||
cbShowdomainaliasmenu.Checked = item.ShowDomainAliasMenu;
|
||||
cbShowlistmenu.Checked = item.ShowListMenu;
|
||||
cbShowspammenu.Checked = item.ShowSpamMenu;
|
||||
cbShowDomainReports.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS]);
|
||||
cbEnablePopRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED]);
|
||||
cbEnableCatchAlls.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED]);
|
||||
cbEnableIMAPRetreival.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED]);
|
||||
cbEnableEmailSigning.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED]);
|
||||
cbEnableEmailReports.Checked = Convert.ToBoolean((item[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED]));
|
||||
cbEnableSyncML.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL6_SYNCML_ENABLED]);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,213 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditDomain_Features {
|
||||
|
||||
/// <summary>
|
||||
/// Label1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label1;
|
||||
|
||||
/// <summary>
|
||||
/// cbShowcontentfilteringmenu control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbShowcontentfilteringmenu;
|
||||
|
||||
/// <summary>
|
||||
/// Label2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label2;
|
||||
|
||||
/// <summary>
|
||||
/// cbShowdomainaliasmenu control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbShowdomainaliasmenu;
|
||||
|
||||
/// <summary>
|
||||
/// Label3 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label3;
|
||||
|
||||
/// <summary>
|
||||
/// cbShowlistmenu control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbShowlistmenu;
|
||||
|
||||
/// <summary>
|
||||
/// Label4 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label4;
|
||||
|
||||
/// <summary>
|
||||
/// cbShowspammenu control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbShowspammenu;
|
||||
|
||||
/// <summary>
|
||||
/// Label5 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label5;
|
||||
|
||||
/// <summary>
|
||||
/// cbShowDomainReports control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbShowDomainReports;
|
||||
|
||||
/// <summary>
|
||||
/// Label6 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label6;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnablePopRetreival control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnablePopRetreival;
|
||||
|
||||
/// <summary>
|
||||
/// Label7 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label7;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableCatchAlls control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableCatchAlls;
|
||||
|
||||
/// <summary>
|
||||
/// Label8 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label8;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableIMAPRetreival control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableIMAPRetreival;
|
||||
|
||||
/// <summary>
|
||||
/// Label9 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label9;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableEmailSigning control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableEmailSigning;
|
||||
|
||||
/// <summary>
|
||||
/// Label10 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label10;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableEmailReports control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableEmailReports;
|
||||
|
||||
/// <summary>
|
||||
/// Label11 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label11;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableSyncML control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableSyncML;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Sharing.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Sharing" %>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label1" runat="server" meta:resourcekey="cbGlobalAddressList"/></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbGlobalAddressList" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label2" runat="server" meta:resourcekey="cbSharedCalendars" /></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbSharedCalendars" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label3" runat="server" meta:resourcekey="cbSharedContacts" /></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbSharedContacts" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label4" runat="server" meta:resourcekey="cbSharedFolders"/></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbSharedFolders" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label5" runat="server" meta:resourcekey="cbSharedNotes" /></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbSharedNotes" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="Label6" runat="server" meta:resourcekey="cbSharedTasks" /></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbSharedTasks" /></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditDomain_Sharing : WebsitePanelControlBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveItem(MailDomain item)
|
||||
{
|
||||
item.IsGlobalAddressList = cbGlobalAddressList.Checked;
|
||||
item.SharedCalendars = cbSharedCalendars.Checked;
|
||||
item.SharedContacts = cbSharedContacts.Checked;
|
||||
item.SharedFolders = cbSharedFolders.Checked;
|
||||
item.SharedNotes = cbSharedNotes.Checked;
|
||||
item.SharedTasks = cbSharedTasks.Checked;
|
||||
|
||||
}
|
||||
|
||||
public void BindItem(MailDomain item)
|
||||
{
|
||||
cbGlobalAddressList.Checked = item.IsGlobalAddressList;
|
||||
cbSharedCalendars.Checked = item.SharedCalendars;
|
||||
cbSharedContacts.Checked = item.SharedContacts;
|
||||
cbSharedFolders.Checked = item.SharedFolders;
|
||||
cbSharedNotes.Checked = item.SharedNotes;
|
||||
cbSharedTasks.Checked = item.SharedTasks;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,123 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditDomain_Sharing {
|
||||
|
||||
/// <summary>
|
||||
/// Label1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label1;
|
||||
|
||||
/// <summary>
|
||||
/// cbGlobalAddressList control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbGlobalAddressList;
|
||||
|
||||
/// <summary>
|
||||
/// Label2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label2;
|
||||
|
||||
/// <summary>
|
||||
/// cbSharedCalendars control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSharedCalendars;
|
||||
|
||||
/// <summary>
|
||||
/// Label3 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label3;
|
||||
|
||||
/// <summary>
|
||||
/// cbSharedContacts control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSharedContacts;
|
||||
|
||||
/// <summary>
|
||||
/// Label4 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label4;
|
||||
|
||||
/// <summary>
|
||||
/// cbSharedFolders control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSharedFolders;
|
||||
|
||||
/// <summary>
|
||||
/// Label5 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label5;
|
||||
|
||||
/// <summary>
|
||||
/// cbSharedNotes control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSharedNotes;
|
||||
|
||||
/// <summary>
|
||||
/// Label6 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label6;
|
||||
|
||||
/// <summary>
|
||||
/// cbSharedTasks control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSharedTasks;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditDomain_Throttling.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditDomain_Throttling" %>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="right" width = "200"><asp:Label ID="lbMessagesPerHour" runat="server" meta:resourcekey="lbMessagesPerHour" /></td>
|
||||
<td width = "100">
|
||||
<asp:TextBox runat="server" ID="txtMessagesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valMessagesPerHour" ControlToValidate="txtMessagesPerHour"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValMessagesPerHour" runat="server" ControlToValidate="txtMessagesPerHour"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
<td align="left" width = "10">
|
||||
<asp:CheckBox runat="server" ID="cbMessagesPerHour" />
|
||||
</td>
|
||||
<td width = "50" align="left"><asp:Label ID="lbMessagesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" width = "200"><asp:Label ID="lbBandwidthPerHour" runat="server" meta:resourcekey="lbBandwidthPerHour" /></td>
|
||||
<td width = "100">
|
||||
<asp:TextBox runat="server" ID="txtBandwidthPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valBandwidthPerHour" ControlToValidate="txtBandwidthPerHour"
|
||||
MinimumValue="0" Display="Dynamic" />
|
||||
<asp:RequiredFieldValidator ID="reqValBandwidth" runat="server" ControlToValidate="txtBandwidthPerHour"
|
||||
Display="Dynamic" />
|
||||
</td>
|
||||
<td align="left" width = "10">
|
||||
<asp:CheckBox runat="server" ID="cbBandwidthPerHour"/>
|
||||
</td>
|
||||
<td width = "50" align="left"><asp:Label ID="lbBandwidthPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" width = "200"><asp:Label ID="lbBouncesPerHour" runat="server" meta:resourcekey="lbBouncesPerHour" /></td>
|
||||
<td width = "100">
|
||||
<asp:TextBox runat="server" ID="txtBouncesPerHour" Text="0" Width="80px" CssClass="NormalTextBox" />
|
||||
<asp:RangeValidator Type="Integer" runat="server" ID="valBouncesPerHour" ControlToValidate="txtBouncesPerHour"
|
||||
MinimumValue="0" Display="None" />
|
||||
<asp:RequiredFieldValidator ID="reqValBouncesPerHour" runat="server" ControlToValidate="txtBouncesPerHour"
|
||||
Display="None" />
|
||||
</td>
|
||||
<td align="left" width = "10">
|
||||
<asp:CheckBox runat="server" ID="cbBouncesPerHour" />
|
||||
</td>
|
||||
<td width = "50" align="left"><asp:Label ID="lbBouncesPerHourEnabled" runat="server" meta:resourcekey="lbEnabled" /></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,79 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditDomain_Throttling : WebsitePanelControlBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
InitValidators();
|
||||
}
|
||||
|
||||
public void SaveItem(MailDomain item)
|
||||
{
|
||||
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR] = txtMessagesPerHour.Text;
|
||||
item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED] = cbMessagesPerHour.Checked.ToString();
|
||||
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR] = txtBandwidthPerHour.Text;
|
||||
item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED] = cbBandwidthPerHour.Checked.ToString();
|
||||
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR] = txtBouncesPerHour.Text;
|
||||
item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED] = cbBouncesPerHour.Checked.ToString();
|
||||
}
|
||||
|
||||
public void BindItem(MailDomain item)
|
||||
{
|
||||
txtMessagesPerHour.Text = item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR];
|
||||
cbMessagesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED]);
|
||||
txtBandwidthPerHour.Text = item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR];
|
||||
cbBandwidthPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED]);
|
||||
txtBouncesPerHour.Text = item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR];
|
||||
cbBouncesPerHour.Checked = Convert.ToBoolean(item[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED]);
|
||||
}
|
||||
|
||||
public void InitValidators()
|
||||
{
|
||||
string message = "*";
|
||||
|
||||
reqValMessagesPerHour.ErrorMessage = message;
|
||||
valMessagesPerHour.ErrorMessage = message;
|
||||
valMessagesPerHour.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValBandwidth.ErrorMessage = message;
|
||||
valBandwidthPerHour.ErrorMessage = message;
|
||||
valBandwidthPerHour.MaximumValue = int.MaxValue.ToString();
|
||||
|
||||
reqValBouncesPerHour.ErrorMessage = message;
|
||||
valBouncesPerHour.ErrorMessage = message;
|
||||
valBouncesPerHour.MaximumValue = int.MaxValue.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,177 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditDomain_Throttling {
|
||||
|
||||
/// <summary>
|
||||
/// lbMessagesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbMessagesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// txtMessagesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMessagesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// valMessagesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valMessagesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// reqValMessagesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValMessagesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// cbMessagesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbMessagesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// lbMessagesPerHourEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbMessagesPerHourEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// lbBandwidthPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbBandwidthPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// txtBandwidthPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtBandwidthPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// valBandwidthPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valBandwidthPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// reqValBandwidth control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValBandwidth;
|
||||
|
||||
/// <summary>
|
||||
/// cbBandwidthPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbBandwidthPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// lbBandwidthPerHourEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbBandwidthPerHourEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// lbBouncesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbBouncesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// txtBouncesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtBouncesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// valBouncesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RangeValidator valBouncesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// reqValBouncesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValBouncesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// cbBouncesPerHour control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbBouncesPerHour;
|
||||
|
||||
/// <summary>
|
||||
/// lbBouncesPerHourEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbBouncesPerHourEnabled;
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditForwarding .ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditForwarding" %>
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditForwarding : WebsitePanelControlBase, IMailEditForwardingControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void BindItem(MailAlias item)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SaveItem(MailAlias item)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditForwarding {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditGroup.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditGroup" %>
|
||||
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
|
||||
<table cellSpacing="0" cellPadding="3" width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap valign="top">
|
||||
<asp:Label ID="lblGroupMembers" runat="server" meta:resourcekey="lblGroupMembers" Text="Group e-mails:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal" width="100%" valign="top">
|
||||
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditGroup : WebsitePanelControlBase, IMailEditGroupControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
public void BindItem(MailGroup item)
|
||||
{
|
||||
mailEditItems.Items = item.Members;
|
||||
}
|
||||
|
||||
public void SaveItem(MailGroup item)
|
||||
{
|
||||
item.Members = mailEditItems.Items;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditGroup {
|
||||
|
||||
/// <summary>
|
||||
/// lblGroupMembers control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblGroupMembers;
|
||||
|
||||
/// <summary>
|
||||
/// mailEditItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,175 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_EditList.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_EditList" %>
|
||||
<%@ Register TagPrefix="dnc" TagName="EditItemsList" Src="../MailEditItems.ascx" %>
|
||||
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.WebPortal.Code.Controls" Assembly="WebsitePanel.WebPortal" %>
|
||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||
|
||||
<table cellSpacing="0" cellPadding="3" width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="List Description:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal" width="100%">
|
||||
<asp:TextBox ID="txtDescription" runat="server" TextMode="MultiLine" Rows="3" Width="300px"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblModeratorAddress" runat="server" meta:resourcekey="lblModeratorAddress" Text="List Moderator:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:DropDownList ID="ddlListModerators" DataTextField="Moderator"
|
||||
runat="server" Height="25px" Width="200px">
|
||||
</asp:DropDownList>
|
||||
<asp:RequiredFieldValidator ID="reqValModerator" runat="server" ControlToValidate="ddlListModerators"
|
||||
Display="Dynamic" ErrorMessage = "*"/>
|
||||
<wsp:DesktopContextValidator runat="server" ID="ctxValDomain" CssClass="QuickLabel" Display="Dynamic" EnableViewState="false"
|
||||
OnEvaluatingContext="ctxValDomain_EvaluatingContext" EnableClientScript="false" meta:resourcekey="ctxValDomain" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblPostingPassword" runat="server" meta:resourcekey="lblPostingPassword" Text="Posting password:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:TextBox id="txtPassword" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:CheckBox ID="chkPasswordEnabled" runat="server" meta:resourcekey="chkPasswordEnabled" Text="Enabled" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblPostingMode" runat="server" resourcekey="lblPostingMode" Text="Posting mode:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:DropDownList id="ddlPostingMode" runat="server" resourcekey="ddlPostingMode" CssClass="NormalTextBox" Width="150px">
|
||||
<asp:ListItem Value="AnyoneCanPost">Anyone</asp:ListItem>
|
||||
<asp:ListItem Value="MembersCanPost">MembersOnly</asp:ListItem>
|
||||
<asp:ListItem Value="ModeratorCanPost">ModeratorOnly</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblSubjectPrefix" runat="server" meta:resourcekey="lblSubjectPrefix" Text="Subject Prefix:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:TextBox id="txtSubjectPrefix" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:CheckBox ID="chkSubjectPrefixEnabled" runat="server" meta:resourcekey="chkSubjectPrefixEnabled" Text="Enabled" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblMaxMessageSize" runat="server" meta:resourcekey="lblMaxMessageSize" Text="Max Message Size, KB:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:TextBox id="txtMaxMessageSize" runat="server" CssClass="NormalTextBox" Width="50px">0</asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblMaxRecipients" runat="server" meta:resourcekey="lblMaxRecipients" Text="Max Recipients per Message:"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:TextBox id="txtMaxRecipients" runat="server" CssClass="NormalTextBox" Width="50px">10</asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right>
|
||||
<asp:Label ID="lblListOptions" runat="server" meta:resourcekey="lblListOptions" Text="List Options:"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<asp:CheckBox ID="chkReplyToList" runat="server" meta:resourcekey="chkReplyToList" Text="Reply To List" />
|
||||
</td>
|
||||
<td class="Normal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblListToAddress" runat="server" resourcekey="lblListToAddress"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:DropDownList id="ddlListToAddress" runat="server" resourcekey="ddlListToAddress" CssClass="NormalTextBox" Width="150px">
|
||||
<asp:ListItem Value="DEFAULT">Default</asp:ListItem>
|
||||
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||
<asp:ListItem Value="SUBSCRIBERADDRESS">Subscriber Address</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblListFromAddress" runat="server" resourcekey="lblListFromAddress"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:DropDownList id="ddlListFromAddress" runat="server" resourcekey="ddlListFromAddress" CssClass="NormalTextBox" Width="150px">
|
||||
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblListReplyToAddress" runat="server" resourcekey="lblListReplyToAddress"></asp:Label>
|
||||
</td>
|
||||
<td class="normal">
|
||||
<asp:DropDownList id="ddlListReplyToAddress" runat="server" resourcekey="ddlListReplyToAddress" CssClass="NormalTextBox" Width="150px">
|
||||
<asp:ListItem Value="LISTADDRESS">List Address</asp:ListItem>
|
||||
<asp:ListItem Value="POSTERADDRESS">Poster Address</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" vAlign="top">
|
||||
<asp:Label ID="lblMembers" runat="server" meta:resourcekey="lblMembers" Text="Mailing list members:"></asp:Label>
|
||||
</td>
|
||||
<td vAlign="top">
|
||||
<dnc:EditItemsList id="mailEditItems" runat="server"></dnc:EditItemsList>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
 
|
||||
<wsp:collapsiblepanel id="AdditionalOptions" runat="server" targetcontrolid="pAdditionalOptions"
|
||||
meta:resourcekey="AdditionalOptions" ></wsp:collapsiblepanel>
|
||||
<asp:Panel runat="server" ID="pAdditionalOptions">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbDigestMode" runat="server" meta:resourcekey="lbDigestMode" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbDigestMode"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbSendSubscribe" runat="server" meta:resourcekey="lbSendSubscribe" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbSendSubcsribe"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbSendUnsubscribe" runat="server" meta:resourcekey="lbSendUnsubscribe" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbSendUnsubscribe"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbAllowUnsubscribe" runat="server" meta:resourcekey="lbAllowUnsubscribe" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbAllowUnsubscribe"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbDisableListcommand" runat="server" meta:resourcekey="lbDisableListcommand" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbDisableListcommand"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200px" align="right"><asp:Label ID="lbDisableSubscribecommand" runat="server" meta:resourcekey="lbDisableSubscribecommand" /></td>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" ID="cbDisableSubscribecommand"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</asp:Panel>
|
|
@ -0,0 +1,210 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.Providers.Mail;
|
||||
using WebsitePanel.WebPortal.Code.Controls;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_EditList : WebsitePanelControlBase, IMailEditListControl
|
||||
{
|
||||
private string selectedModerator = null;
|
||||
private string selectedListToAddress = null;
|
||||
private string selectedListFromAddress = null;
|
||||
private string selectedListReplyToAddress = null;
|
||||
private string itemName = null;
|
||||
private MailEditAddress ctrl = null;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
txtPassword.Attributes["value"] = txtPassword.Text;
|
||||
BindListModerators();
|
||||
}
|
||||
|
||||
public void BindItem(MailList item)
|
||||
{
|
||||
itemName = item.Name;
|
||||
txtDescription.Text = item.Description;
|
||||
if (String.IsNullOrEmpty(item.ModeratorAddress))
|
||||
{
|
||||
Utils.SelectListItem(ddlListModerators, GetLocalizedString("Text.SelectModerator"));
|
||||
selectedModerator = GetLocalizedString("Text.SelectModerator");
|
||||
}
|
||||
else
|
||||
{
|
||||
Utils.SelectListItem(ddlListModerators, item.ModeratorAddress);
|
||||
selectedModerator = item.ModeratorAddress;
|
||||
}
|
||||
|
||||
chkReplyToList.Checked = (item.ReplyToMode == ReplyTo.RepliesToList);
|
||||
Utils.SelectListItem(ddlPostingMode, item.PostingMode);
|
||||
Utils.SelectListItem(ddlListToAddress, item.ListToAddress);
|
||||
selectedListToAddress = item.ListToAddress;
|
||||
Utils.SelectListItem(ddlListFromAddress, item.ListFromAddress);
|
||||
selectedListFromAddress = item.ListFromAddress;
|
||||
Utils.SelectListItem(ddlListReplyToAddress, item.ListReplyToAddress);
|
||||
selectedListReplyToAddress = item.ListReplyToAddress;
|
||||
txtPassword.Text = item.Password;
|
||||
chkPasswordEnabled.Checked = item.RequirePassword;
|
||||
cbDigestMode.Checked = item.DigestMode;
|
||||
cbSendSubcsribe.Checked = item.SendSubscribe;
|
||||
cbSendUnsubscribe.Checked = item.SendUnsubscribe;
|
||||
cbAllowUnsubscribe.Checked = item.AllowUnsubscribe;
|
||||
cbDisableListcommand.Checked = !item.DisableListcommand;
|
||||
cbDisableSubscribecommand.Checked = !item.DisableSubscribecommand;
|
||||
txtSubjectPrefix.Text = item.SubjectPrefix;
|
||||
chkSubjectPrefixEnabled.Checked = item.EnableSubjectPrefix;
|
||||
txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
|
||||
txtMaxRecipients.Text = item.MaxRecipientsPerMessage.ToString();
|
||||
|
||||
// members
|
||||
mailEditItems.Items = item.Members;
|
||||
}
|
||||
|
||||
public void SaveItem(MailList item)
|
||||
{
|
||||
item.Description = txtDescription.Text;
|
||||
if (ddlListModerators.SelectedValue == GetLocalizedString("Text.SelectModerator"))
|
||||
{
|
||||
item.ModeratorAddress = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.ModeratorAddress = ddlListModerators.SelectedValue;
|
||||
}
|
||||
|
||||
item.ReplyToMode = chkReplyToList.Checked ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
|
||||
item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
|
||||
item.ListToAddress = ddlListToAddress.SelectedValue;
|
||||
item.ListFromAddress = ddlListFromAddress.SelectedValue;
|
||||
item.ListReplyToAddress = ddlListReplyToAddress.SelectedValue;
|
||||
item.Password = txtPassword.Text;
|
||||
item.RequirePassword = chkPasswordEnabled.Checked;
|
||||
item.SubjectPrefix = txtSubjectPrefix.Text;
|
||||
item.EnableSubjectPrefix = chkSubjectPrefixEnabled.Checked;
|
||||
item.DigestMode = cbDigestMode.Checked;
|
||||
item.SendSubscribe = cbSendSubcsribe.Checked;
|
||||
item.SendUnsubscribe = cbSendUnsubscribe.Checked;
|
||||
item.AllowUnsubscribe = cbAllowUnsubscribe.Checked;
|
||||
item.DisableListcommand = !cbDisableListcommand.Checked;
|
||||
item.DisableSubscribecommand = !cbDisableSubscribecommand.Checked;
|
||||
|
||||
item.MaxMessageSize = Int32.Parse(txtMaxMessageSize.Text);
|
||||
item.MaxRecipientsPerMessage = Int32.Parse(txtMaxRecipients.Text);
|
||||
item.Members = mailEditItems.Items;
|
||||
ctrl = null;
|
||||
}
|
||||
|
||||
public void BindListModerators()
|
||||
{
|
||||
|
||||
string domainName = null;
|
||||
if (!String.IsNullOrEmpty(itemName))
|
||||
{
|
||||
domainName = GetDomainName(itemName);
|
||||
|
||||
|
||||
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
|
||||
ddlListModerators.Items.Clear();
|
||||
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
|
||||
|
||||
if (moderators != null)
|
||||
foreach (MailAccount account in moderators)
|
||||
{
|
||||
if (GetDomainName(account.Name) == domainName)
|
||||
{
|
||||
if (ddlListModerators != null)
|
||||
{
|
||||
ddlListModerators.Items.Add(new ListItem(account.Name));
|
||||
ddlListToAddress.Items.Add(new ListItem(account.Name));
|
||||
ddlListFromAddress.Items.Add(new ListItem(account.Name));
|
||||
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Utils.SelectListItem(ddlListModerators, selectedModerator);
|
||||
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
|
||||
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
|
||||
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
MailAccount[] moderators = ES.Services.MailServers.GetMailAccounts(PanelSecurity.PackageId, true);
|
||||
ddlListModerators.Items.Clear();
|
||||
ddlListModerators.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectModerator"), ""));
|
||||
|
||||
if (moderators != null)
|
||||
foreach (MailAccount account in moderators)
|
||||
{
|
||||
if (ddlListModerators != null)
|
||||
{
|
||||
ddlListModerators.Items.Add(new ListItem(account.Name));
|
||||
ddlListToAddress.Items.Add(new ListItem(account.Name));
|
||||
ddlListFromAddress.Items.Add(new ListItem(account.Name));
|
||||
ddlListReplyToAddress.Items.Add(new ListItem(account.Name));
|
||||
}
|
||||
}
|
||||
|
||||
Utils.SelectListItem(ddlListModerators, selectedModerator);
|
||||
Utils.SelectListItem(ddlListToAddress, selectedListToAddress);
|
||||
Utils.SelectListItem(ddlListFromAddress, selectedListFromAddress);
|
||||
Utils.SelectListItem(ddlListReplyToAddress, selectedListReplyToAddress);
|
||||
}
|
||||
}
|
||||
|
||||
private string GetDomainName(string email)
|
||||
{
|
||||
return email.Substring(email.IndexOf("@") + 1);
|
||||
}
|
||||
|
||||
protected void ctxValDomain_EvaluatingContext(object sender, DesktopValidationEventArgs e)
|
||||
{
|
||||
if (Parent != null) ctrl = (MailEditAddress)Parent.Parent.FindControl("emailAddress");
|
||||
|
||||
string moderator = ddlListModerators.SelectedValue;
|
||||
|
||||
if (ctrl != null)
|
||||
{
|
||||
if (String.Equals(GetDomainName(moderator), GetDomainName(ctrl.Email), StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
e.ContextIsValid = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
e.ContextIsValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,393 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_EditList {
|
||||
|
||||
/// <summary>
|
||||
/// lblDescription control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblDescription;
|
||||
|
||||
/// <summary>
|
||||
/// txtDescription control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtDescription;
|
||||
|
||||
/// <summary>
|
||||
/// lblModeratorAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblModeratorAddress;
|
||||
|
||||
/// <summary>
|
||||
/// ddlListModerators control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlListModerators;
|
||||
|
||||
/// <summary>
|
||||
/// reqValModerator control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator reqValModerator;
|
||||
|
||||
/// <summary>
|
||||
/// ctxValDomain control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.WebPortal.Code.Controls.DesktopContextValidator ctxValDomain;
|
||||
|
||||
/// <summary>
|
||||
/// lblPostingPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblPostingPassword;
|
||||
|
||||
/// <summary>
|
||||
/// txtPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPassword;
|
||||
|
||||
/// <summary>
|
||||
/// chkPasswordEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkPasswordEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// lblPostingMode control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblPostingMode;
|
||||
|
||||
/// <summary>
|
||||
/// ddlPostingMode control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlPostingMode;
|
||||
|
||||
/// <summary>
|
||||
/// lblSubjectPrefix control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblSubjectPrefix;
|
||||
|
||||
/// <summary>
|
||||
/// txtSubjectPrefix control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtSubjectPrefix;
|
||||
|
||||
/// <summary>
|
||||
/// chkSubjectPrefixEnabled control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkSubjectPrefixEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// lblMaxMessageSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMaxMessageSize;
|
||||
|
||||
/// <summary>
|
||||
/// txtMaxMessageSize control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSize;
|
||||
|
||||
/// <summary>
|
||||
/// lblMaxRecipients control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMaxRecipients;
|
||||
|
||||
/// <summary>
|
||||
/// txtMaxRecipients control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMaxRecipients;
|
||||
|
||||
/// <summary>
|
||||
/// lblListOptions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblListOptions;
|
||||
|
||||
/// <summary>
|
||||
/// chkReplyToList control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkReplyToList;
|
||||
|
||||
/// <summary>
|
||||
/// lblListToAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblListToAddress;
|
||||
|
||||
/// <summary>
|
||||
/// ddlListToAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlListToAddress;
|
||||
|
||||
/// <summary>
|
||||
/// lblListFromAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblListFromAddress;
|
||||
|
||||
/// <summary>
|
||||
/// ddlListFromAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlListFromAddress;
|
||||
|
||||
/// <summary>
|
||||
/// lblListReplyToAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblListReplyToAddress;
|
||||
|
||||
/// <summary>
|
||||
/// ddlListReplyToAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlListReplyToAddress;
|
||||
|
||||
/// <summary>
|
||||
/// lblMembers control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMembers;
|
||||
|
||||
/// <summary>
|
||||
/// mailEditItems control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.MailEditItems mailEditItems;
|
||||
|
||||
/// <summary>
|
||||
/// AdditionalOptions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel AdditionalOptions;
|
||||
|
||||
/// <summary>
|
||||
/// pAdditionalOptions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel pAdditionalOptions;
|
||||
|
||||
/// <summary>
|
||||
/// lbDigestMode control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbDigestMode;
|
||||
|
||||
/// <summary>
|
||||
/// cbDigestMode control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbDigestMode;
|
||||
|
||||
/// <summary>
|
||||
/// lbSendSubscribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbSendSubscribe;
|
||||
|
||||
/// <summary>
|
||||
/// cbSendSubcsribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSendSubcsribe;
|
||||
|
||||
/// <summary>
|
||||
/// lbSendUnsubscribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbSendUnsubscribe;
|
||||
|
||||
/// <summary>
|
||||
/// cbSendUnsubscribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbSendUnsubscribe;
|
||||
|
||||
/// <summary>
|
||||
/// lbAllowUnsubscribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbAllowUnsubscribe;
|
||||
|
||||
/// <summary>
|
||||
/// cbAllowUnsubscribe control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbAllowUnsubscribe;
|
||||
|
||||
/// <summary>
|
||||
/// lbDisableListcommand control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbDisableListcommand;
|
||||
|
||||
/// <summary>
|
||||
/// cbDisableListcommand control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbDisableListcommand;
|
||||
|
||||
/// <summary>
|
||||
/// lbDisableSubscribecommand control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbDisableSubscribecommand;
|
||||
|
||||
/// <summary>
|
||||
/// cbDisableSubscribecommand control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbDisableSubscribecommand;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SmarterMail100_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.SmarterMail100_Settings" %>
|
||||
<%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %>
|
||||
<table cellpadding="7" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td class="SubHead" nowrap width="200">
|
||||
<asp:Label ID="lblServiceUrl" runat="server" meta:resourcekey="lblServiceUrl" Text="Web Services URL:"></asp:Label>
|
||||
</td>
|
||||
<td width="100%"><asp:TextBox Runat="server" ID="txtServiceUrl" CssClass="NormalTextBox" Width="200px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblPublicIP" runat="server" meta:resourcekey="lblPublicIP" Text="Public IP Address:"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" UseAddressValueAsKey="true" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblDomainsPath" runat="server" meta:resourcekey="lblDomainsPath" Text="Domains Root Folder:"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<asp:TextBox Runat="server" ID="txtDomainsFolder" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblAdminLogin" runat="server" meta:resourcekey="lblAdminLogin" Text="Admin Login:"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<asp:TextBox Runat="server" ID="txtUsername" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="rowPassword" runat="server">
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblCurrPassword" runat="server" meta:resourcekey="lblCurrPassword" Text="Current Admin Password:"></asp:Label>
|
||||
</td>
|
||||
<td class="Normal">*******
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblAdminPassword" runat="server" meta:resourcekey="lblAdminPassword" Text="Admin Password:"></asp:Label>
|
||||
</td>
|
||||
<td>
|
||||
<asp:TextBox Runat="server" ID="txtPassword" CssClass="NormalTextBox" Width="200px" TextMode="Password"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbImportDomainAdmin" meta:resourcekey="cbImportDomainAdmin"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbInheritDefaultLimits" meta:resourcekey="cbInheritDefaultLimits"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><asp:CheckBox runat="server" ID="cbEnableDomainAdmin" meta:resourcekey="cbEnableDomainAdmin"/></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
|
@ -0,0 +1,66 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using WebsitePanel.Providers.Common;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
public partial class SmarterMail100_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
public void BindSettings(StringDictionary settings)
|
||||
{
|
||||
txtServiceUrl.Text = settings["ServiceUrl"];
|
||||
ipAddress.AddressValue = settings["ServerIPAddress"];
|
||||
txtDomainsFolder.Text = settings["DomainsPath"];
|
||||
txtUsername.Text = settings["AdminUsername"];
|
||||
ViewState["PWD"] = settings["AdminPassword"];
|
||||
rowPassword.Visible = ((string)ViewState["PWD"]) != "";
|
||||
cbImportDomainAdmin.Checked = Utils.ParseBool(settings[Constants.ImportDomainAdmin], false);
|
||||
cbInheritDefaultLimits.Checked = Utils.ParseBool(settings[Constants.InheritDomainDefaultLimits], false);
|
||||
cbEnableDomainAdmin.Checked = Utils.ParseBool(settings[Constants.EnableDomainAdministrators], false);
|
||||
}
|
||||
|
||||
public void SaveSettings(StringDictionary settings)
|
||||
{
|
||||
settings["ServiceUrl"] = txtServiceUrl.Text.Trim();
|
||||
settings["ServerIPAddress"] = ipAddress.AddressValue;
|
||||
settings["DomainsPath"] = txtDomainsFolder.Text.Trim();
|
||||
settings["AdminUsername"] = txtUsername.Text.Trim();
|
||||
settings["AdminPassword"] = (txtPassword.Text.Length > 0) ? txtPassword.Text : (string)ViewState["PWD"];
|
||||
settings[Constants.ImportDomainAdmin] = cbImportDomainAdmin.Checked.ToString();
|
||||
settings[Constants.InheritDomainDefaultLimits] = cbInheritDefaultLimits.Checked.ToString();
|
||||
settings[Constants.EnableDomainAdministrators] = cbEnableDomainAdmin.Checked.ToString();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,150 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
public partial class SmarterMail100_Settings {
|
||||
|
||||
/// <summary>
|
||||
/// lblServiceUrl control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblServiceUrl;
|
||||
|
||||
/// <summary>
|
||||
/// txtServiceUrl control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtServiceUrl;
|
||||
|
||||
/// <summary>
|
||||
/// lblPublicIP control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblPublicIP;
|
||||
|
||||
/// <summary>
|
||||
/// ipAddress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
||||
|
||||
/// <summary>
|
||||
/// lblDomainsPath control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblDomainsPath;
|
||||
|
||||
/// <summary>
|
||||
/// txtDomainsFolder control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtDomainsFolder;
|
||||
|
||||
/// <summary>
|
||||
/// lblAdminLogin control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblAdminLogin;
|
||||
|
||||
/// <summary>
|
||||
/// txtUsername control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtUsername;
|
||||
|
||||
/// <summary>
|
||||
/// rowPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowPassword;
|
||||
|
||||
/// <summary>
|
||||
/// lblCurrPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblCurrPassword;
|
||||
|
||||
/// <summary>
|
||||
/// lblAdminPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblAdminPassword;
|
||||
|
||||
/// <summary>
|
||||
/// txtPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPassword;
|
||||
|
||||
/// <summary>
|
||||
/// cbImportDomainAdmin control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbImportDomainAdmin;
|
||||
|
||||
/// <summary>
|
||||
/// cbInheritDefaultLimits control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbInheritDefaultLimits;
|
||||
|
||||
/// <summary>
|
||||
/// cbEnableDomainAdmin control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbEnableDomainAdmin;
|
||||
}
|
||||
}
|
|
@ -36,6 +36,7 @@ using System.Web.UI;
|
|||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using WebsitePanel.Portal.Code.Helpers;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
|
|
|
@ -28,6 +28,15 @@
|
|||
<asp:Label id="lnkDisplayMailboxPlan" runat="server" EnableViewState="true" ><%# PortalAntiXSS.Encode((string)Eval("MailboxPlan"))%></asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField >
|
||||
<ItemStyle Width="15%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<label>
|
||||
<input type="radio" name="DefaultMailboxPlan" value='<%# Eval("MailboxPlanId") %>' <%# IsChecked((bool) Eval("IsDefault")) %>/>
|
||||
<asp:Label runat="server" meta:resourcekey="lblDefaultMailboxPlan" Text="Default"></asp:Label>
|
||||
</label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:ImageButton id="imgDelMailboxPlan" runat="server" Text="Delete" SkinID="ExchangeDelete"
|
||||
|
@ -52,7 +61,11 @@
|
|||
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
<br />
|
||||
<br />
|
||||
<div style="text-align: center">
|
||||
<asp:Button ID="btnSetDefaultMailboxPlan" runat="server" meta:resourcekey="btnSetDefaultMailboxPlan"
|
||||
Text="Set Default Mailboxplan" CssClass="Button1" OnClick="btnSetDefaultMailboxPlan_Click" />
|
||||
</div>
|
||||
<wsp:CollapsiblePanel id="secMailboxPlan" runat="server"
|
||||
TargetControlID="MailboxPlan" meta:resourcekey="secMailboxPlan" Text="Mailboxplan">
|
||||
</wsp:CollapsiblePanel>
|
||||
|
|
|
@ -36,7 +36,7 @@ using System.Xml.Serialization;
|
|||
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
|
@ -99,21 +99,7 @@ namespace WebsitePanel.Portal
|
|||
|
||||
private void BindMailboxPlans()
|
||||
{
|
||||
Providers.HostedSolution.Organization[] orgs = null;
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
Providers.HostedSolution.Organization[] orgs = GetOrganizations();
|
||||
|
||||
if ((orgs != null) & (orgs.GetLength(0) > 0))
|
||||
{
|
||||
|
@ -123,6 +109,9 @@ namespace WebsitePanel.Portal
|
|||
gvMailboxPlans.DataBind();
|
||||
}
|
||||
|
||||
// enable set default plan button if organization has two or more plans
|
||||
btnSetDefaultMailboxPlan.Enabled = gvMailboxPlans.Rows.Count > 1;
|
||||
|
||||
btnUpdateMailboxPlan.Enabled = (string.IsNullOrEmpty(txtMailboxPlan.Text)) ? false : true;
|
||||
}
|
||||
|
||||
|
@ -185,21 +174,7 @@ namespace WebsitePanel.Portal
|
|||
if (PanelSecurity.SelectedUser.Role == UserRole.Reseller)
|
||||
plan.MailboxPlanType = (int)ExchangeMailboxPlanType.Reseller;
|
||||
|
||||
Providers.HostedSolution.Organization[] orgs = null;
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
Providers.HostedSolution.Organization[] orgs = GetOrganizations();
|
||||
|
||||
|
||||
if ((orgs != null) & (orgs.GetLength(0) > 0))
|
||||
|
@ -231,20 +206,7 @@ namespace WebsitePanel.Portal
|
|||
case "DeleteItem":
|
||||
try
|
||||
{
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
orgs = GetOrganizations();
|
||||
|
||||
plan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(orgs[0].Id, mailboxPlanId);
|
||||
|
||||
|
@ -308,20 +270,7 @@ namespace WebsitePanel.Portal
|
|||
case "EditItem":
|
||||
ViewState["MailboxPlanID"] = mailboxPlanId;
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
|
||||
orgs = GetOrganizations();
|
||||
|
||||
plan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(orgs[0].Id, mailboxPlanId);
|
||||
txtMailboxPlan.Text = plan.MailboxPlan;
|
||||
|
@ -421,24 +370,9 @@ namespace WebsitePanel.Portal
|
|||
return;
|
||||
|
||||
int mailboxPlanId = (int)ViewState["MailboxPlanID"];
|
||||
Providers.HostedSolution.Organization[] orgs = null;
|
||||
Providers.HostedSolution.Organization[] orgs = GetOrganizations();
|
||||
Providers.HostedSolution.ExchangeMailboxPlan plan;
|
||||
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
|
||||
plan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(orgs[0].Id, mailboxPlanId);
|
||||
|
||||
if (plan.ItemId != orgs[0].Id)
|
||||
|
@ -668,36 +602,22 @@ namespace WebsitePanel.Portal
|
|||
{
|
||||
ddTags.Items.Clear();
|
||||
|
||||
Providers.HostedSolution.Organization[] orgs = null;
|
||||
Organization[] orgs = GetOrganizations();
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
if ((orgs != null) && (orgs.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
Providers.HostedSolution.ExchangeRetentionPolicyTag[] allTags = ES.Services.ExchangeServer.GetExchangeRetentionPolicyTags(orgs[0].Id);
|
||||
List<ExchangeMailboxPlanRetentionPolicyTag> selectedTags = ViewState["Tags"] as List<ExchangeMailboxPlanRetentionPolicyTag>;
|
||||
|
||||
if ((orgs != null) & (orgs.GetLength(0) > 0))
|
||||
{
|
||||
Providers.HostedSolution.ExchangeRetentionPolicyTag[] allTags = ES.Services.ExchangeServer.GetExchangeRetentionPolicyTags(orgs[0].Id);
|
||||
List<ExchangeMailboxPlanRetentionPolicyTag> selectedTags = ViewState["Tags"] as List<ExchangeMailboxPlanRetentionPolicyTag>;
|
||||
|
||||
foreach (Providers.HostedSolution.ExchangeRetentionPolicyTag tag in allTags)
|
||||
{
|
||||
if (selectedTags != null)
|
||||
foreach (Providers.HostedSolution.ExchangeRetentionPolicyTag tag in allTags)
|
||||
{
|
||||
if (selectedTags.Find(x => x.TagID == tag.TagID) != null)
|
||||
continue;
|
||||
}
|
||||
if (selectedTags != null)
|
||||
{
|
||||
if (selectedTags.Find(x => x.TagID == tag.TagID) != null)
|
||||
continue;
|
||||
}
|
||||
|
||||
ddTags.Items.Add(new System.Web.UI.WebControls.ListItem(tag.TagName, tag.TagID.ToString()));
|
||||
ddTags.Items.Add(new System.Web.UI.WebControls.ListItem(tag.TagName, tag.TagID.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -737,5 +657,55 @@ namespace WebsitePanel.Portal
|
|||
|
||||
}
|
||||
|
||||
protected Organization[] GetOrganizations()
|
||||
{
|
||||
Organization[] orgs = null;
|
||||
|
||||
if (PanelSecurity.SelectedUserId != 1)
|
||||
{
|
||||
PackageInfo[] Packages = ES.Services.Packages.GetPackages(PanelSecurity.SelectedUserId);
|
||||
|
||||
if ((Packages != null) & (Packages.GetLength(0) > 0))
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Packages[0].PackageId, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||
}
|
||||
|
||||
return orgs;
|
||||
}
|
||||
|
||||
protected void btnSetDefaultMailboxPlan_Click(object sender, EventArgs e)
|
||||
{
|
||||
// get domain
|
||||
int mailboxPlanId = Utils.ParseInt(Request.Form["DefaultMailboxPlan"], 0);
|
||||
|
||||
try
|
||||
{
|
||||
var orgs = GetOrganizations();
|
||||
|
||||
if ((orgs != null) && (orgs.GetLength(0) > 0))
|
||||
{
|
||||
ES.Services.ExchangeServer.SetOrganizationDefaultExchangeMailboxPlan(orgs[0].Id, mailboxPlanId);
|
||||
|
||||
messageBox.ShowSuccessMessage("EXCHANGE_SET_DEFAULT_MAILBOXPLAN");
|
||||
|
||||
// rebind domains
|
||||
BindMailboxPlans();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
messageBox.ShowErrorMessage("EXCHANGE_SET_DEFAULT_MAILBOXPLAN", ex);
|
||||
}
|
||||
}
|
||||
|
||||
protected string IsChecked(bool val)
|
||||
{
|
||||
return val ? "checked" : "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,11 +35,13 @@
|
|||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class SettingsExchangeMailboxPlansPolicy {
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
|
||||
|
||||
public partial class SettingsExchangeMailboxPlansPolicy
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// asyncTasks control.
|
||||
/// </summary>
|
||||
|
@ -48,7 +50,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// messageBox control.
|
||||
/// </summary>
|
||||
|
@ -57,7 +59,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// gvMailboxPlans control.
|
||||
/// </summary>
|
||||
|
@ -66,7 +68,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView gvMailboxPlans;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secMailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -75,7 +77,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -84,7 +86,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel MailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtMailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -93,7 +95,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtMailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// valRequireMailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -102,7 +104,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireMailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secMailboxFeatures control.
|
||||
/// </summary>
|
||||
|
@ -111,7 +113,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxFeatures;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MailboxFeatures control.
|
||||
/// </summary>
|
||||
|
@ -120,7 +122,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel MailboxFeatures;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkPOP3 control.
|
||||
/// </summary>
|
||||
|
@ -129,7 +131,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkPOP3;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkIMAP control.
|
||||
/// </summary>
|
||||
|
@ -138,7 +140,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkIMAP;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkOWA control.
|
||||
/// </summary>
|
||||
|
@ -147,7 +149,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkOWA;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkMAPI control.
|
||||
/// </summary>
|
||||
|
@ -156,7 +158,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkMAPI;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkActiveSync control.
|
||||
/// </summary>
|
||||
|
@ -165,7 +167,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkActiveSync;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secMailboxGeneral control.
|
||||
/// </summary>
|
||||
|
@ -174,7 +176,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxGeneral;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MailboxGeneral control.
|
||||
/// </summary>
|
||||
|
@ -183,7 +185,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel MailboxGeneral;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkHideFromAddressBook control.
|
||||
/// </summary>
|
||||
|
@ -192,7 +194,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkHideFromAddressBook;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secStorageQuotas control.
|
||||
/// </summary>
|
||||
|
@ -201,7 +203,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secStorageQuotas;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// StorageQuotas control.
|
||||
/// </summary>
|
||||
|
@ -210,7 +212,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel StorageQuotas;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locMailboxSize control.
|
||||
/// </summary>
|
||||
|
@ -219,7 +221,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locMailboxSize;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// mailboxSize control.
|
||||
/// </summary>
|
||||
|
@ -228,7 +230,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor mailboxSize;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locMaxRecipients control.
|
||||
/// </summary>
|
||||
|
@ -237,7 +239,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locMaxRecipients;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// maxRecipients control.
|
||||
/// </summary>
|
||||
|
@ -246,7 +248,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor maxRecipients;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locMaxSendMessageSizeKB control.
|
||||
/// </summary>
|
||||
|
@ -255,7 +257,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locMaxSendMessageSizeKB;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// maxSendMessageSizeKB control.
|
||||
/// </summary>
|
||||
|
@ -264,7 +266,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor maxSendMessageSizeKB;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locMaxReceiveMessageSizeKB control.
|
||||
/// </summary>
|
||||
|
@ -273,7 +275,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locMaxReceiveMessageSizeKB;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// maxReceiveMessageSizeKB control.
|
||||
/// </summary>
|
||||
|
@ -282,7 +284,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor maxReceiveMessageSizeKB;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locWhenSizeExceeds control.
|
||||
/// </summary>
|
||||
|
@ -291,7 +293,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locWhenSizeExceeds;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locIssueWarning control.
|
||||
/// </summary>
|
||||
|
@ -300,7 +302,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locIssueWarning;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// sizeIssueWarning control.
|
||||
/// </summary>
|
||||
|
@ -309,7 +311,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox sizeIssueWarning;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locProhibitSend control.
|
||||
/// </summary>
|
||||
|
@ -318,7 +320,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locProhibitSend;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// sizeProhibitSend control.
|
||||
/// </summary>
|
||||
|
@ -327,7 +329,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox sizeProhibitSend;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locProhibitSendReceive control.
|
||||
/// </summary>
|
||||
|
@ -336,7 +338,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locProhibitSendReceive;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// sizeProhibitSendReceive control.
|
||||
/// </summary>
|
||||
|
@ -345,7 +347,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox sizeProhibitSendReceive;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secDeleteRetention control.
|
||||
/// </summary>
|
||||
|
@ -354,7 +356,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secDeleteRetention;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// DeleteRetention control.
|
||||
/// </summary>
|
||||
|
@ -363,7 +365,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel DeleteRetention;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locKeepDeletedItems control.
|
||||
/// </summary>
|
||||
|
@ -372,7 +374,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locKeepDeletedItems;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// daysKeepDeletedItems control.
|
||||
/// </summary>
|
||||
|
@ -381,7 +383,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secLitigationHold control.
|
||||
/// </summary>
|
||||
|
@ -390,7 +392,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secLitigationHold;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// LitigationHold control.
|
||||
/// </summary>
|
||||
|
@ -399,7 +401,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel LitigationHold;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkEnableLitigationHold control.
|
||||
/// </summary>
|
||||
|
@ -408,7 +410,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkEnableLitigationHold;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locRecoverableItemsSpace control.
|
||||
/// </summary>
|
||||
|
@ -417,7 +419,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsSpace;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// recoverableItemsSpace control.
|
||||
/// </summary>
|
||||
|
@ -426,7 +428,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor recoverableItemsSpace;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locRecoverableItemsWarning control.
|
||||
/// </summary>
|
||||
|
@ -435,7 +437,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsWarning;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// recoverableItemsWarning control.
|
||||
/// </summary>
|
||||
|
@ -444,7 +446,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox recoverableItemsWarning;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lblLitigationHoldUrl control.
|
||||
/// </summary>
|
||||
|
@ -453,7 +455,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblLitigationHoldUrl;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtLitigationHoldUrl control.
|
||||
/// </summary>
|
||||
|
@ -462,7 +464,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtLitigationHoldUrl;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lblLitigationHoldMsg control.
|
||||
/// </summary>
|
||||
|
@ -471,7 +473,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblLitigationHoldMsg;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtLitigationHoldMsg control.
|
||||
/// </summary>
|
||||
|
@ -480,7 +482,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtLitigationHoldMsg;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secArchiving control.
|
||||
/// </summary>
|
||||
|
@ -489,7 +491,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secArchiving;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Archiving control.
|
||||
/// </summary>
|
||||
|
@ -498,7 +500,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel Archiving;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// chkEnableArchiving control.
|
||||
/// </summary>
|
||||
|
@ -507,7 +509,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkEnableArchiving;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locArchiveQuota control.
|
||||
/// </summary>
|
||||
|
@ -516,7 +518,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locArchiveQuota;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// archiveQuota control.
|
||||
/// </summary>
|
||||
|
@ -525,7 +527,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaEditor archiveQuota;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// locArchiveWarningQuota control.
|
||||
/// </summary>
|
||||
|
@ -534,7 +536,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locArchiveWarningQuota;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// archiveWarningQuota control.
|
||||
/// </summary>
|
||||
|
@ -543,7 +545,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox archiveWarningQuota;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// secRetentionPolicyTags control.
|
||||
/// </summary>
|
||||
|
@ -552,7 +554,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secRetentionPolicyTags;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// RetentionPolicyTags control.
|
||||
/// </summary>
|
||||
|
@ -561,7 +563,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel RetentionPolicyTags;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// GeneralUpdatePanel control.
|
||||
/// </summary>
|
||||
|
@ -570,7 +572,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel GeneralUpdatePanel;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// gvPolicy control.
|
||||
/// </summary>
|
||||
|
@ -579,7 +581,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView gvPolicy;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ddTags control.
|
||||
/// </summary>
|
||||
|
@ -588,7 +590,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddTags;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// bntAddTag control.
|
||||
/// </summary>
|
||||
|
@ -597,7 +599,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button bntAddTag;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnAddMailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -606,7 +608,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnAddMailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnUpdateMailboxPlan control.
|
||||
/// </summary>
|
||||
|
@ -615,7 +617,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnUpdateMailboxPlan;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtStatus control.
|
||||
/// </summary>
|
||||
|
@ -624,5 +626,7 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtStatus;
|
||||
|
||||
protected global::System.Web.UI.WebControls.Button btnSetDefaultMailboxPlan;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -181,6 +181,23 @@
|
|||
<td class="Normal">
|
||||
<asp:CheckBox ID="chkCgiBin" runat="server" Text="Installed" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblCfExt" runat="server" meta:resourcekey="lblCfExt" Text="ColdFusion:"></asp:Label>
|
||||
</td>
|
||||
<td class="Normal">
|
||||
<asp:CheckBox ID="chkCfExt" runat="server" Text="Enabled" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblVirtDir" runat="server" meta:resourcekey="lblVirtDir" Text="CFVirtualDirectories:"></asp:Label>
|
||||
</td>
|
||||
<td class="Normal">
|
||||
<asp:CheckBox ID="chkVirtDir" runat="server" Text="Enabled" /></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</asp:Panel>
|
||||
|
||||
|
|
|
@ -76,6 +76,8 @@ namespace WebsitePanel.Portal
|
|||
chkPerl.Checked = Utils.ParseBool(settings["PerlInstalled"], false);
|
||||
chkPython.Checked = Utils.ParseBool(settings["PythonInstalled"], false);
|
||||
chkCgiBin.Checked = Utils.ParseBool(settings["CgiBinInstalled"], false);
|
||||
chkCfExt.Checked = Utils.ParseBool(settings["ColdFusionInstalled"], false);
|
||||
chkVirtDir.Checked = Utils.ParseBool(settings["CreateCFVirtualDirectoriesPol"], false);
|
||||
|
||||
// anonymous account policy
|
||||
anonymousUsername.Value = settings["AnonymousAccountPolicy"];
|
||||
|
@ -130,6 +132,8 @@ namespace WebsitePanel.Portal
|
|||
settings["PerlInstalled"] = chkPerl.Checked.ToString();
|
||||
settings["PythonInstalled"] = chkPython.Checked.ToString();
|
||||
settings["CgiBinInstalled"] = chkCgiBin.Checked.ToString();
|
||||
settings["ColdFusionInstalled"] = chkCfExt.Checked.ToString();
|
||||
settings["CreateCFVirtualDirectoriesPol"] = chkVirtDir.Checked.ToString();
|
||||
|
||||
// anonymous account policy
|
||||
settings["AnonymousAccountPolicy"] = anonymousUsername.Value;
|
||||
|
|
|
@ -462,6 +462,42 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkCgiBin;
|
||||
|
||||
/// <summary>
|
||||
/// lblCfExt 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 lblCfExt;
|
||||
|
||||
/// <summary>
|
||||
/// chkCfExt 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 chkCfExt;
|
||||
|
||||
/// <summary>
|
||||
/// lblVirtDir 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 lblVirtDir;
|
||||
|
||||
/// <summary>
|
||||
/// chkVirtDir 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 chkVirtDir;
|
||||
|
||||
/// <summary>
|
||||
/// secAnonymousAccount control.
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
|
||||
namespace WebsitePanel.Portal.UserControls
|
||||
{
|
||||
public abstract class ActionListControlBase<TEnum> : WebsitePanelControlBase
|
||||
{
|
||||
public event CancelEventHandler ExecutingAction;
|
||||
|
||||
public event EventHandler ExecutedAction;
|
||||
|
||||
#region Properties
|
||||
|
||||
public string GridViewID { get; set; }
|
||||
|
||||
public string CheckboxesName { get; set; }
|
||||
|
||||
private string _message = "ACTIONS_MESSAGE";
|
||||
public string Message
|
||||
{
|
||||
get { return _message; }
|
||||
set { _message = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected abstract DropDownList ActionsList { get; }
|
||||
|
||||
protected abstract int DoAction(List<int> ids);
|
||||
|
||||
public TEnum SelectedAction
|
||||
{
|
||||
get
|
||||
{
|
||||
return (TEnum)(object)Convert.ToInt32(ActionsList.SelectedValue);
|
||||
}
|
||||
}
|
||||
|
||||
protected GridView GridView
|
||||
{
|
||||
get { return Parent.FindControl(GridViewID) as GridView; }
|
||||
}
|
||||
|
||||
public void ResetSelection()
|
||||
{
|
||||
ActionsList.ClearSelection();
|
||||
}
|
||||
public void RemoveActionItem<TNum>(TNum value)
|
||||
{
|
||||
ActionsList.Items.Remove(ActionsList.Items.FindByValue(((int)(object)value).ToString()));
|
||||
}
|
||||
|
||||
protected void FireExecuteAction()
|
||||
{
|
||||
if (ExecutingAction != null)
|
||||
{
|
||||
var e = new CancelEventArgs();
|
||||
ExecutingAction(this, e);
|
||||
|
||||
if (e.Cancel)
|
||||
return;
|
||||
}
|
||||
|
||||
DoAction();
|
||||
|
||||
if (ExecutedAction != null)
|
||||
ExecutedAction(this, new EventArgs());
|
||||
}
|
||||
|
||||
protected void DoAction()
|
||||
{
|
||||
if (GridView == null || String.IsNullOrWhiteSpace(CheckboxesName))
|
||||
return;
|
||||
|
||||
// Get checked users
|
||||
var ids = Utils.GetCheckboxValuesFromGrid<int>(GridView, CheckboxesName);
|
||||
|
||||
if ((int)(object)SelectedAction != 0)
|
||||
{
|
||||
if (ids.Count > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = DoAction(ids);
|
||||
|
||||
if (result < 0)
|
||||
{
|
||||
HostModule.ShowResultMessage(result);
|
||||
return;
|
||||
}
|
||||
|
||||
HostModule.ShowSuccessMessage(Message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HostModule.ShowErrorMessage(Message, ex);
|
||||
}
|
||||
|
||||
// Refresh users grid
|
||||
GridView.DataBind();
|
||||
}
|
||||
else
|
||||
{
|
||||
HostModule.ShowWarningMessage(Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnApply.Text" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="ddlDomainActionsItem.Actions" xml:space="preserve">
|
||||
<value>- Actions -</value>
|
||||
</data>
|
||||
<data name="ddlDomainActionsItem.CreateInstantAlias" xml:space="preserve">
|
||||
<value>Create Instant Alias</value>
|
||||
</data>
|
||||
<data name="ddlDomainActionsItem.DeleteInstantAlias" xml:space="preserve">
|
||||
<value>Delete Instant Alias</value>
|
||||
</data>
|
||||
<data name="ddlDomainActionsItem.DisableDns" xml:space="preserve">
|
||||
<value>Disable Dns</value>
|
||||
</data>
|
||||
<data name="ddlDomainActionsItem.EnableDns" xml:space="preserve">
|
||||
<value>Enable Dns</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,132 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnApply.Text" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="ddlMailAccountActionsItem.Actions" xml:space="preserve">
|
||||
<value>- Actions -</value>
|
||||
</data>
|
||||
<data name="ddlMailAccountActionsItem.Disable" xml:space="preserve">
|
||||
<value>Disable</value>
|
||||
</data>
|
||||
<data name="ddlMailAccountActionsItem.Enable" xml:space="preserve">
|
||||
<value>Enable</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,174 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnApply.Text" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="btnMailboxPlanCancel.Text" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="btnMailboxPlanOk.Text" xml:space="preserve">
|
||||
<value>Ok</value>
|
||||
</data>
|
||||
<data name="btnServiceLevelCancel.Text" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="btnServiceLevelOk.Text" xml:space="preserve">
|
||||
<value>Ok</value>
|
||||
</data>
|
||||
<data name="cmdApply.AlternateText" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.Actions" xml:space="preserve">
|
||||
<value>- Actions -</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.Disable" xml:space="preserve">
|
||||
<value>Disable</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.Enable" xml:space="preserve">
|
||||
<value>Enable</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.SetMailboxPlan" xml:space="preserve">
|
||||
<value>Set Mailbox Plan</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.SetServiceLevel" xml:space="preserve">
|
||||
<value>Set Service Level</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.SetVIP" xml:space="preserve">
|
||||
<value>Set VIP</value>
|
||||
</data>
|
||||
<data name="ddlUserActionsItem.UnsetVIP" xml:space="preserve">
|
||||
<value>Unset VIP</value>
|
||||
</data>
|
||||
<data name="headerMailboxPlanLabel.Text" xml:space="preserve">
|
||||
<value>Mailbox Plan</value>
|
||||
</data>
|
||||
<data name="headerServiceLevel.Text" xml:space="preserve">
|
||||
<value>Service Level</value>
|
||||
</data>
|
||||
<data name="litMailboxPlan.text" xml:space="preserve">
|
||||
<value>Please select a Mailbox Plan for the all checked mailboxes</value>
|
||||
</data>
|
||||
<data name="litServiceLevel.text" xml:space="preserve">
|
||||
<value>Please select a Service Level for the all checked users</value>
|
||||
</data>
|
||||
<data name="litVIP.Text" xml:space="preserve">
|
||||
<value>Please select a VIP status for the all checked users</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,135 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnApply.Text" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="ddlWebsiteActionsItem.Actions" xml:space="preserve">
|
||||
<value>- Actions -</value>
|
||||
</data>
|
||||
<data name="ddlWebsiteActionsItem.RestartAppPool" xml:space="preserve">
|
||||
<value>Restart App Pool</value>
|
||||
</data>
|
||||
<data name="ddlWebsiteActionsItem.Start" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="ddlWebsiteActionsItem.Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,37 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainActions.ascx.cs" Inherits="WebsitePanel.Portal.DomainActions" %>
|
||||
|
||||
<script language="javascript">
|
||||
function ShowProgress(btn) {
|
||||
var action = $(btn).prev().val();
|
||||
|
||||
if (action === 1) {
|
||||
ShowProgressDialog("Enabling Dns...");
|
||||
} else if (action == 2) {
|
||||
ShowProgressDialog("Disabling Dns...");
|
||||
} else if (action == 3) {
|
||||
ShowProgressDialog("Creating Instant Alias...");
|
||||
} else if (action == 4) {
|
||||
ShowProgressDialog("Removing Instant Alias...");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:DropDownList ID="ddlDomainActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlDomainActions" AutoPostBack="True">
|
||||
<asp:ListItem Value="0">Actions</asp:ListItem>
|
||||
<asp:ListItem Value="1">EnableDns</asp:ListItem>
|
||||
<asp:ListItem Value="2">DisableDns</asp:ListItem>
|
||||
<asp:ListItem Value="3">CreateInstantAlias</asp:ListItem>
|
||||
<asp:ListItem Value="4">DeleteInstantAlias</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||
|
||||
</ContentTemplate>
|
||||
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="btnApply" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
|
@ -0,0 +1,179 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Microsoft.Web.Services3.Referral;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public enum DomainActionTypes
|
||||
{
|
||||
None = 0,
|
||||
EnableDns = 1,
|
||||
DisableDns = 2,
|
||||
CreateInstantAlias = 3,
|
||||
DeleteInstantAlias = 4,
|
||||
}
|
||||
|
||||
public partial class DomainActions : ActionListControlBase<DomainActionTypes>
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Remove DNS items if current Hosting plan does not allow it
|
||||
if (!PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId).Groups.ContainsKey(ResourceGroups.Dns))
|
||||
{
|
||||
RemoveActionItem(DomainActionTypes.EnableDns);
|
||||
RemoveActionItem(DomainActionTypes.DisableDns);
|
||||
}
|
||||
|
||||
// Remove Instant Alias items if current Hosting plan does not allow it
|
||||
PackageSettings packageSettings = ES.Services.Packages.GetPackageSettings(PanelSecurity.PackageId, PackageSettings.INSTANT_ALIAS);
|
||||
if (packageSettings == null || String.IsNullOrEmpty(packageSettings["InstantAlias"]))
|
||||
{
|
||||
RemoveActionItem(DomainActionTypes.CreateInstantAlias);
|
||||
RemoveActionItem(DomainActionTypes.DeleteInstantAlias);
|
||||
}
|
||||
|
||||
// hide control if no actions allowed
|
||||
if (ActionsList.Items.Count <= 1)
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override DropDownList ActionsList
|
||||
{
|
||||
get { return ddlDomainActions; }
|
||||
}
|
||||
|
||||
protected override int DoAction(List<int> ids)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case DomainActionTypes.EnableDns:
|
||||
return EnableDns(true, ids);
|
||||
case DomainActionTypes.DisableDns:
|
||||
return EnableDns(false, ids);
|
||||
case DomainActionTypes.CreateInstantAlias:
|
||||
return CreateInstantAlias(true, ids);
|
||||
case DomainActionTypes.DeleteInstantAlias:
|
||||
return CreateInstantAlias(false, ids);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected void btnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case DomainActionTypes.EnableDns:
|
||||
case DomainActionTypes.DisableDns:
|
||||
case DomainActionTypes.CreateInstantAlias:
|
||||
case DomainActionTypes.DeleteInstantAlias:
|
||||
FireExecuteAction();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private int EnableDns(bool enable, List<int> ids)
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
// load domain
|
||||
DomainInfo domain = ES.Services.Servers.GetDomain(id);
|
||||
if (domain == null)
|
||||
continue;
|
||||
|
||||
// load package context
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(domain.PackageId);
|
||||
bool dnsEnabled = cntx.Groups.ContainsKey(ResourceGroups.Dns);
|
||||
if (!dnsEnabled)
|
||||
continue;
|
||||
|
||||
int result;
|
||||
|
||||
if (enable)
|
||||
result = ES.Services.Servers.EnableDomainDns(id);
|
||||
else
|
||||
result = ES.Services.Servers.DisableDomainDns(id);
|
||||
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int CreateInstantAlias(bool enable, List<int> ids)
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
// load domain
|
||||
DomainInfo domain = ES.Services.Servers.GetDomain(id);
|
||||
if (domain == null)
|
||||
continue;
|
||||
|
||||
// instant alias
|
||||
bool instantAliasAllowed = !String.IsNullOrEmpty(domain.InstantAliasName);
|
||||
if (!instantAliasAllowed || domain.IsDomainPointer || domain.IsInstantAlias)
|
||||
continue;
|
||||
|
||||
int result;
|
||||
|
||||
if (enable)
|
||||
result = ES.Services.Servers.CreateDomainInstantAlias("", id);
|
||||
else
|
||||
result = ES.Services.Servers.DeleteDomainInstantAlias(id);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class DomainActions {
|
||||
|
||||
/// <summary>
|
||||
/// tblActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel tblActions;
|
||||
|
||||
/// <summary>
|
||||
/// ddlDomainActions 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 ddlDomainActions;
|
||||
|
||||
/// <summary>
|
||||
/// btnApply control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnApply;
|
||||
}
|
||||
}
|
|
@ -125,7 +125,7 @@ namespace WebsitePanel.Portal
|
|||
|
||||
public string WrapComment(string text)
|
||||
{
|
||||
return (text != null) ? PortalAntiXSS.EncodeOld(text.Replace("\n", "<br/>")) : text;
|
||||
return (text != null) ? Server.HtmlEncode(text).Replace("\n", "<br/>") : text;
|
||||
}
|
||||
|
||||
protected void gvComments_RowDeleting(object sender, GridViewDeleteEventArgs e)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MailAccountActions.ascx.cs" Inherits="WebsitePanel.Portal.MailAccountActions" %>
|
||||
|
||||
<script language="javascript">
|
||||
function ShowProgress(btn) {
|
||||
var action = $(btn).prev().val();
|
||||
|
||||
if (action === 1) {
|
||||
ShowProgressDialog("Enabling mail account...");
|
||||
} else if (action === 2) {
|
||||
ShowProgressDialog("Disabling mail account...");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:DropDownList ID="ddlMailAccountActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlWebsiteActions" AutoPostBack="True">
|
||||
<asp:ListItem Value="0">Actions</asp:ListItem>
|
||||
<asp:ListItem Value="1">Disable</asp:ListItem>
|
||||
<asp:ListItem Value="2">Enable</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||
|
||||
</ContentTemplate>
|
||||
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="btnApply" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
|
@ -0,0 +1,109 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Microsoft.Web.Services3.Referral;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public enum MailAccountActionTypes
|
||||
{
|
||||
None = 0,
|
||||
Disable = 1,
|
||||
Enable = 2,
|
||||
}
|
||||
|
||||
public partial class MailAccountActions : ActionListControlBase<MailAccountActionTypes>
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override DropDownList ActionsList
|
||||
{
|
||||
get { return ddlMailAccountActions; }
|
||||
}
|
||||
|
||||
protected override int DoAction(List<int> ids)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case MailAccountActionTypes.Disable:
|
||||
return ChangeMailAccountState(false, ids);
|
||||
case MailAccountActionTypes.Enable:
|
||||
return ChangeMailAccountState(true, ids);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected void btnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case MailAccountActionTypes.Disable:
|
||||
case MailAccountActionTypes.Enable:
|
||||
FireExecuteAction();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private int ChangeMailAccountState(bool enable, List<int> ids)
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
var mailAccount = ES.Services.MailServers.GetMailAccount(id);
|
||||
mailAccount.Enabled = enable;
|
||||
int result = ES.Services.MailServers.UpdateMailAccount(mailAccount);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class MailAccountActions {
|
||||
|
||||
/// <summary>
|
||||
/// tblActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel tblActions;
|
||||
|
||||
/// <summary>
|
||||
/// ddlMailAccountActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlMailAccountActions;
|
||||
|
||||
/// <summary>
|
||||
/// btnApply control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnApply;
|
||||
}
|
||||
}
|
|
@ -2,6 +2,17 @@
|
|||
<%@ Register Src="Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
|
||||
<%@ Register Src="ServerDetails.ascx" TagName="ServerDetails" TagPrefix="wsp" %>
|
||||
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="WebsiteActions.ascx" TagName="WebsiteActions" TagPrefix="wsp" %>
|
||||
<%@ Register Src="MailAccountActions.ascx" TagName="MailAccountActions" TagPrefix="wsp" %>
|
||||
|
||||
<script src="JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript">
|
||||
function SelectAllCheckboxes(box) {
|
||||
$(".NormalGridView tbody :checkbox").attr("checked", $(box).attr("checked"));
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="FormButtonsBar">
|
||||
<div class="Left">
|
||||
<asp:Button ID="btnAddItem" runat="server" Text="btnAddItem" CssClass="Button3" OnClick="btnAddItem_Click" />
|
||||
|
@ -9,7 +20,21 @@
|
|||
meta:resourcekey="chkRecursive" AutoPostBack="true" Checked="True" CssClass="Normal" />
|
||||
</div>
|
||||
<div class="Right">
|
||||
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||
<table>
|
||||
<tr>
|
||||
<%-- Action lists --%>
|
||||
<td>
|
||||
<%-- Web Sites --%>
|
||||
<wsp:WebsiteActions ID="websiteActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
|
||||
<%-- Mail Accounts --%>
|
||||
<wsp:MailAccountActions ID="mailActions" runat="server" GridViewID="gvItems" CheckboxesName="chkSelectedIds" Visible="False" />
|
||||
</td>
|
||||
<td class="FormButtonsBarCleanSeparator"></td>
|
||||
<td>
|
||||
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<asp:Literal ID="litGroupName" runat="server" Visible="false"></asp:Literal>
|
||||
|
@ -19,9 +44,17 @@
|
|||
<ContentTemplate>
|
||||
|
||||
<asp:GridView ID="gvItems" runat="server" AutoGenerateColumns="False" AllowSorting="True"
|
||||
DataSourceID="odsItemsPaged" EmptyDataText="gvItems" CssSelectorClass="NormalGridView"
|
||||
DataSourceID="odsItemsPaged" EmptyDataText="gvItems" CssSelectorClass="NormalGridView" DataKeyNames="ItemID"
|
||||
AllowPaging="True" OnRowCommand="gvItems_RowCommand" OnRowDataBound="gvItems_RowDataBound">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>
|
||||
<asp:CheckBox ID="selectAll" Runat="server" onclick="javascript:SelectAllCheckboxes(this);" CssClass="HeaderCheckbox"></asp:CheckBox>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox runat="server" ID="chkSelectedIds" CssClass="GridCheckbox"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField SortExpression="ItemName" HeaderText="gvItemsName">
|
||||
<ItemStyle Width="100%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
|
|
|
@ -108,11 +108,13 @@ namespace WebsitePanel.Portal.UserControls
|
|||
|
||||
// visibility
|
||||
chkRecursive.Visible = (PanelSecurity.SelectedUser.Role != UserRole.User);
|
||||
gvItems.Columns[1].Visible = !String.IsNullOrEmpty(ViewLinkText);
|
||||
gvItems.Columns[2].Visible = gvItems.Columns[3].Visible =
|
||||
gvItems.Columns[2].Visible = !String.IsNullOrEmpty(ViewLinkText);
|
||||
gvItems.Columns[3].Visible = gvItems.Columns[4].Visible =
|
||||
(PanelSecurity.SelectedUser.Role != UserRole.User) && chkRecursive.Checked;
|
||||
gvItems.Columns[4].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
||||
gvItems.Columns[5].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
||||
gvItems.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator);
|
||||
gvItems.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
|
||||
|
||||
ShowActionList();
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
|
@ -206,5 +208,24 @@ namespace WebsitePanel.Portal.UserControls
|
|||
string localizedLinkText = HostModule.GetLocalizedString(ViewLinkText + ".Text");
|
||||
lnkView.Text = localizedLinkText != null ? localizedLinkText : ViewLinkText;
|
||||
}
|
||||
|
||||
private void ShowActionList()
|
||||
{
|
||||
websiteActions.Visible = false;
|
||||
mailActions.Visible = false;
|
||||
|
||||
switch (QuotaName)
|
||||
{
|
||||
case "Web.Sites":
|
||||
websiteActions.Visible = true;
|
||||
break;
|
||||
case "Mail.Accounts":
|
||||
ProviderInfo provider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, "Mail");
|
||||
if (provider.EditorControl == "SmarterMail100")
|
||||
mailActions.Visible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -58,6 +30,24 @@ namespace WebsitePanel.Portal.UserControls {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox chkRecursive;
|
||||
|
||||
/// <summary>
|
||||
/// websiteActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.WebsiteActions websiteActions;
|
||||
|
||||
/// <summary>
|
||||
/// mailActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.MailAccountActions mailActions;
|
||||
|
||||
/// <summary>
|
||||
/// searchBox control.
|
||||
/// </summary>
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserActions.ascx.cs" Inherits="WebsitePanel.Portal.UserActions" %>
|
||||
<%@ Register Src="../ExchangeServer/UserControls/MailboxPlanSelector.ascx" TagName="MailboxPlanSelector" TagPrefix="wsp" %>
|
||||
|
||||
<script language="javascript">
|
||||
function CloseAndShowProgressDialog(text) {
|
||||
$(".Popup").hide();
|
||||
return ShowProgressDialog(text);
|
||||
}
|
||||
|
||||
function ShowProgress(btn) {
|
||||
var action = $(btn).prev().val();
|
||||
|
||||
if (action == 1) {
|
||||
ShowProgressDialog('Disabling users...');
|
||||
} else if (action == 2) {
|
||||
ShowProgressDialog('Enabling users...');
|
||||
} else if (action == 3) {
|
||||
ShowProgressDialog('Prepare...');
|
||||
} else if (action == 4) {
|
||||
ShowProgressDialog('Setting VIP...');
|
||||
} else if (action == 5) {
|
||||
ShowProgressDialog('Unsetting VIP...');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:DropDownList ID="ddlUserActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlUserActions"
|
||||
AutoPostBack="True">
|
||||
<asp:ListItem Value="0">Actions</asp:ListItem>
|
||||
<asp:ListItem Value="1">Disable</asp:ListItem>
|
||||
<asp:ListItem Value="2">Enable</asp:ListItem>
|
||||
<asp:ListItem Value="3">SetServiceLevel</asp:ListItem>
|
||||
<asp:ListItem Value="4">SetVIP</asp:ListItem>
|
||||
<asp:ListItem Value="5">UnsetVIP</asp:ListItem>
|
||||
<asp:ListItem Value="6">SetMailboxPlan</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||
|
||||
|
||||
<ajaxToolkit:ModalPopupExtender ID="Modal" runat="server" EnableViewState="true" TargetControlID="FakeModalPopupTarget"
|
||||
PopupControlID="FakeModalPopupTarget" BackgroundCssClass="modalBackground" DropShadow="false" />
|
||||
|
||||
<%--Set Service Level--%>
|
||||
<asp:Panel ID="ServiceLevelPanel" runat="server" CssClass="Popup" Style="display: none">
|
||||
<table class="Popup-Header">
|
||||
<tr>
|
||||
<td class="Popup-HeaderLeft"></td>
|
||||
<td class="Popup-HeaderTitle"><asp:Localize ID="headerServiceLevel" runat="server" meta:resourcekey="headerServiceLevel"></asp:Localize></td>
|
||||
<td class="Popup-HeaderRight"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="Popup-Content">
|
||||
<div class="Popup-Body">
|
||||
<br/>
|
||||
<asp:Literal ID="litServiceLevel" runat="server" meta:resourcekey="litServiceLevel"></asp:Literal>
|
||||
<br/>
|
||||
<asp:DropDownList ID="ddlServiceLevels" runat="server" CssClass="NormalTextBox" />
|
||||
<br/>
|
||||
</div>
|
||||
<div class="FormFooterMiddle">
|
||||
<asp:Button ID="btnServiceLevelOk" runat="server" CssClass="Button1" meta:resourcekey="btnServiceLevelOk" Text="Ok"
|
||||
OnClientClick="return CloseAndShowProgressDialog('Setting Service Level...')" OnClick="btnModalOk_Click" />
|
||||
<asp:Button ID="btnServiceLevelCancel" runat="server" CssClass="Button1" meta:resourcekey="btnServiceLevelCancel" Text="Cancel"
|
||||
OnClick="btnModalCancel_OnClick" CausesValidation="false" />
|
||||
</div>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
<%--Set MailboxPlan--%>
|
||||
<asp:Panel ID="MailboxPlanPanel" runat="server" CssClass="Popup" Style="display: none">
|
||||
<table class="Popup-Header">
|
||||
<tr>
|
||||
<td class="Popup-HeaderLeft"></td>
|
||||
<td class="Popup-HeaderTitle"><asp:Localize ID="headerMailboxPlanLabel" runat="server" meta:resourcekey="headerMailboxPlanLabel"></asp:Localize></td>
|
||||
<td class="Popup-HeaderRight"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="Popup-Content">
|
||||
<div class="Popup-Body">
|
||||
<br/>
|
||||
<asp:Literal ID="litMailboxPlan" runat="server" meta:resourcekey="litMailboxPlan"></asp:Literal>
|
||||
<br/>
|
||||
<wsp:MailboxPlanSelector ID="mailboxPlanSelector" runat="server" />
|
||||
<br/>
|
||||
</div>
|
||||
<div class="FormFooterMiddle">
|
||||
<asp:Button ID="btnMailboxPlanOk" runat="server" CssClass="Button1" meta:resourcekey="btnMailboxPlanOk" Text="Ok"
|
||||
OnClientClick="return CloseAndShowProgressDialog('Setting Mailbox Plan ...')" OnClick="btnModalOk_Click" />
|
||||
<asp:Button ID="btnMailboxPlanCancel" runat="server" CssClass="Button1" meta:resourcekey="btnMailboxPlanCancel" Text="Cancel"
|
||||
OnClick="btnModalCancel_OnClick" CausesValidation="false" />
|
||||
</div>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<asp:Button ID="FakeModalPopupTarget" runat="server" Style="display: none;" />
|
||||
</ContentTemplate>
|
||||
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="btnServiceLevelOk" />
|
||||
<asp:PostBackTrigger ControlID="btnMailboxPlanOk" />
|
||||
<asp:PostBackTrigger ControlID="btnApply" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
|
@ -0,0 +1,305 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Microsoft.Web.Services3.Referral;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public enum UserActionTypes
|
||||
{
|
||||
None = 0,
|
||||
Disable = 1,
|
||||
Enable = 2,
|
||||
SetServiceLevel = 3,
|
||||
SetVIP = 4,
|
||||
UnsetVIP = 5,
|
||||
SetMailboxPlan = 6
|
||||
}
|
||||
|
||||
public partial class UserActions : ActionListControlBase<UserActionTypes>
|
||||
{
|
||||
public bool ShowSetMailboxPlan { get; set; }
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Remove Service Level item and VIP item from Action List if current Hosting plan does not allow Service Levels
|
||||
if (!PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId).Groups.ContainsKey(ResourceGroups.ServiceLevels))
|
||||
{
|
||||
RemoveActionItem(UserActionTypes.SetServiceLevel);
|
||||
RemoveActionItem(UserActionTypes.SetVIP);
|
||||
RemoveActionItem(UserActionTypes.UnsetVIP);
|
||||
}
|
||||
|
||||
if (!ShowSetMailboxPlan)
|
||||
RemoveActionItem(UserActionTypes.SetMailboxPlan);
|
||||
}
|
||||
|
||||
protected override DropDownList ActionsList
|
||||
{
|
||||
get { return ddlUserActions; }
|
||||
}
|
||||
|
||||
protected override int DoAction(List<int> userIds)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case UserActionTypes.Disable:
|
||||
return ChangeUsersSettings(userIds, true, null, null);
|
||||
case UserActionTypes.Enable:
|
||||
return ChangeUsersSettings(userIds, false, null, null);
|
||||
case UserActionTypes.SetServiceLevel:
|
||||
return ChangeUsersServiceLevel(userIds);
|
||||
case UserActionTypes.SetVIP:
|
||||
return ChangeUsersSettings(userIds, null, null, true);
|
||||
case UserActionTypes.UnsetVIP:
|
||||
return ChangeUsersSettings(userIds, null, null, false);
|
||||
case UserActionTypes.SetMailboxPlan:
|
||||
return SetMailboxPlan(userIds);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected int ChangeUsersServiceLevel(List<int> userIds)
|
||||
{
|
||||
if (ddlServiceLevels.SelectedItem == null)
|
||||
return 0;
|
||||
|
||||
string levelName = ddlServiceLevels.SelectedItem.Text;
|
||||
if (string.IsNullOrEmpty(levelName))
|
||||
return 0;
|
||||
|
||||
int levelId;
|
||||
if (!int.TryParse(ddlServiceLevels.SelectedItem.Value, out levelId))
|
||||
return 0;
|
||||
|
||||
|
||||
string quotaName = Quotas.SERVICE_LEVELS + levelName;
|
||||
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (!cntx.Quotas.ContainsKey(quotaName))
|
||||
return 0;
|
||||
|
||||
|
||||
List<OrganizationUser> users = new List<OrganizationUser>();
|
||||
|
||||
foreach (int id in userIds)
|
||||
users.Add(ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, id));
|
||||
|
||||
|
||||
int usersCount = users.Count - users.Where(x => (x.LevelId == levelId)).Count();
|
||||
|
||||
if (!CheckServiceLevelQuota(cntx.Quotas[quotaName], usersCount))
|
||||
return -1;
|
||||
|
||||
return ChangeUsersSettings(userIds, null, levelId, null);
|
||||
}
|
||||
|
||||
protected void btnModalOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
FireExecuteAction();
|
||||
}
|
||||
|
||||
protected void btnModalCancel_OnClick(object sender, EventArgs e)
|
||||
{
|
||||
ResetSelection();
|
||||
}
|
||||
|
||||
protected int ChangeUsersSettings(List<int> userIds, bool? disable, int? serviceLevelId, bool? isVIP)
|
||||
{
|
||||
foreach (var userId in userIds)
|
||||
{
|
||||
OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, userId);
|
||||
|
||||
int result = ES.Services.Organizations.SetUserGeneralSettings(
|
||||
PanelRequest.ItemID,
|
||||
userId,
|
||||
|
||||
user.DisplayName,
|
||||
string.Empty,
|
||||
false,
|
||||
disable ?? user.Disabled,
|
||||
user.Locked,
|
||||
|
||||
user.FirstName,
|
||||
user.Initials,
|
||||
user.LastName,
|
||||
|
||||
user.Address,
|
||||
user.City,
|
||||
user.State,
|
||||
user.Zip,
|
||||
user.Country,
|
||||
|
||||
user.JobTitle,
|
||||
user.Company,
|
||||
user.Department,
|
||||
user.Office,
|
||||
user.Manager != null ? user.Manager.AccountName : String.Empty,
|
||||
|
||||
user.BusinessPhone,
|
||||
user.Fax,
|
||||
user.HomePhone,
|
||||
user.MobilePhone,
|
||||
user.Pager,
|
||||
user.WebPage,
|
||||
user.Notes,
|
||||
user.ExternalEmail,
|
||||
user.SubscriberNumber,
|
||||
serviceLevelId ?? user.LevelId,
|
||||
isVIP ?? user.IsVIP,
|
||||
user.UserMustChangePassword);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
protected int SetMailboxPlan(List<int> userIds)
|
||||
{
|
||||
int planId;
|
||||
|
||||
if (!int.TryParse(mailboxPlanSelector.MailboxPlanId, out planId))
|
||||
return 0;
|
||||
|
||||
if (planId < 0) return 0;
|
||||
|
||||
foreach (int userId in userIds)
|
||||
{
|
||||
ExchangeAccount account = ES.Services.ExchangeServer.GetAccount(PanelRequest.ItemID, userId);
|
||||
|
||||
int result = ES.Services.ExchangeServer.SetExchangeMailboxPlan(PanelRequest.ItemID, userId, planId,
|
||||
account.ArchivingMailboxPlanId, account.EnableArchiving);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region ServiceLevel
|
||||
|
||||
protected void FillServiceLevelsList()
|
||||
{
|
||||
|
||||
if (GridView == null || String.IsNullOrWhiteSpace(CheckboxesName))
|
||||
return;
|
||||
|
||||
List<int> ids = Utils.GetCheckboxValuesFromGrid<int>(GridView, CheckboxesName);
|
||||
List<OrganizationUser> users = new List<OrganizationUser>();
|
||||
|
||||
foreach(int id in ids)
|
||||
users.Add(ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, id));
|
||||
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels))
|
||||
{
|
||||
List<ServiceLevel> enabledServiceLevels = new List<ServiceLevel>();
|
||||
|
||||
foreach (var quota in cntx.Quotas.Where(x => x.Key.Contains(Quotas.SERVICE_LEVELS)))
|
||||
{
|
||||
foreach (ServiceLevel serviceLevel in ES.Services.Organizations.GetSupportServiceLevels())
|
||||
{
|
||||
int usersCount = users.Count - users.Where(x => (x.LevelId == serviceLevel.LevelId)).Count();
|
||||
|
||||
if (quota.Key.Replace(Quotas.SERVICE_LEVELS, "") == serviceLevel.LevelName && CheckServiceLevelQuota(quota.Value, usersCount))
|
||||
enabledServiceLevels.Add(serviceLevel);
|
||||
}
|
||||
}
|
||||
|
||||
ddlServiceLevels.DataSource = enabledServiceLevels;
|
||||
ddlServiceLevels.DataTextField = "LevelName";
|
||||
ddlServiceLevels.DataValueField = "LevelId";
|
||||
ddlServiceLevels.DataBind();
|
||||
|
||||
ddlServiceLevels.Items.Insert(0, new ListItem("<Select Service Level>", string.Empty));
|
||||
ddlServiceLevels.Items.FindByValue(string.Empty).Selected = true;
|
||||
}
|
||||
}
|
||||
|
||||
private bool CheckServiceLevelQuota(QuotaValueInfo quota, int itemCount)
|
||||
{
|
||||
if (quota.QuotaAllocatedValue != -1)
|
||||
{
|
||||
return quota.QuotaAllocatedValue >= quota.QuotaUsedValue + itemCount;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected void btnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case UserActionTypes.Disable:
|
||||
case UserActionTypes.Enable:
|
||||
case UserActionTypes.SetVIP:
|
||||
case UserActionTypes.UnsetVIP:
|
||||
FireExecuteAction();
|
||||
break;
|
||||
case UserActionTypes.SetServiceLevel:
|
||||
FillServiceLevelsList();
|
||||
Modal.PopupControlID = ServiceLevelPanel.ID;
|
||||
Modal.Show();
|
||||
break;
|
||||
case UserActionTypes.SetMailboxPlan:
|
||||
Modal.PopupControlID = MailboxPlanPanel.ID;
|
||||
Modal.Show();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,168 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class UserActions {
|
||||
|
||||
/// <summary>
|
||||
/// tblActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel tblActions;
|
||||
|
||||
/// <summary>
|
||||
/// ddlUserActions 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 ddlUserActions;
|
||||
|
||||
/// <summary>
|
||||
/// btnApply control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnApply;
|
||||
|
||||
/// <summary>
|
||||
/// Modal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::AjaxControlToolkit.ModalPopupExtender Modal;
|
||||
|
||||
/// <summary>
|
||||
/// ServiceLevelPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel ServiceLevelPanel;
|
||||
|
||||
/// <summary>
|
||||
/// headerServiceLevel 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 headerServiceLevel;
|
||||
|
||||
/// <summary>
|
||||
/// litServiceLevel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litServiceLevel;
|
||||
|
||||
/// <summary>
|
||||
/// ddlServiceLevels 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 ddlServiceLevels;
|
||||
|
||||
/// <summary>
|
||||
/// btnServiceLevelOk 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 btnServiceLevelOk;
|
||||
|
||||
/// <summary>
|
||||
/// btnServiceLevelCancel 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 btnServiceLevelCancel;
|
||||
|
||||
/// <summary>
|
||||
/// MailboxPlanPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel MailboxPlanPanel;
|
||||
|
||||
/// <summary>
|
||||
/// headerMailboxPlanLabel 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 headerMailboxPlanLabel;
|
||||
|
||||
/// <summary>
|
||||
/// litMailboxPlan control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litMailboxPlan;
|
||||
|
||||
/// <summary>
|
||||
/// mailboxPlanSelector control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.MailboxPlanSelector mailboxPlanSelector;
|
||||
|
||||
/// <summary>
|
||||
/// btnMailboxPlanOk 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 btnMailboxPlanOk;
|
||||
|
||||
/// <summary>
|
||||
/// btnMailboxPlanCancel 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 btnMailboxPlanCancel;
|
||||
|
||||
/// <summary>
|
||||
/// FakeModalPopupTarget 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 FakeModalPopupTarget;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebsiteActions.ascx.cs" Inherits="WebsitePanel.Portal.WebsiteActions" %>
|
||||
|
||||
<script language="javascript">
|
||||
function ShowProgress(btn) {
|
||||
var action = $(btn).prev().val();
|
||||
|
||||
if (action === 1) {
|
||||
ShowProgressDialog("Stopping websites...");
|
||||
} else if (action == 2) {
|
||||
ShowProgressDialog("Starting websites...");
|
||||
} else if (action == 3) {
|
||||
ShowProgressDialog("Restarting App Pools...");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<asp:UpdatePanel ID="tblActions" runat="server" CssClass="NormalBold" UpdateMode="Conditional" ChildrenAsTriggers="true" >
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:DropDownList ID="ddlWebsiteActions" runat="server" CssClass="NormalTextBox" resourcekey="ddlWebsiteActions" AutoPostBack="True">
|
||||
<asp:ListItem Value="0">Actions</asp:ListItem>
|
||||
<asp:ListItem Value="1">Stop</asp:ListItem>
|
||||
<asp:ListItem Value="2">Start</asp:ListItem>
|
||||
<asp:ListItem Value="3">RestartAppPool</asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
<asp:Button ID="btnApply" runat="server" meta:resourcekey="btnApply"
|
||||
Text="Apply" CssClass="Button1" OnClick="btnApply_Click" OnClientClick="return ShowProgress(this);" />
|
||||
|
||||
</ContentTemplate>
|
||||
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="btnApply" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
|
@ -0,0 +1,125 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Microsoft.Web.Services3.Referral;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public enum WebsiteActionTypes
|
||||
{
|
||||
None = 0,
|
||||
Stop = 1,
|
||||
Start = 2,
|
||||
RestartAppPool = 3,
|
||||
}
|
||||
|
||||
public partial class WebsiteActions : ActionListControlBase<WebsiteActionTypes>
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override DropDownList ActionsList
|
||||
{
|
||||
get { return ddlWebsiteActions; }
|
||||
}
|
||||
|
||||
protected override int DoAction(List<int> ids)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case WebsiteActionTypes.Stop:
|
||||
return ChangeWebsiteState(false, ids);
|
||||
case WebsiteActionTypes.Start:
|
||||
return ChangeWebsiteState(true, ids);
|
||||
case WebsiteActionTypes.RestartAppPool:
|
||||
return RestartAppPool(ids);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected void btnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (SelectedAction)
|
||||
{
|
||||
case WebsiteActionTypes.Stop:
|
||||
case WebsiteActionTypes.Start:
|
||||
case WebsiteActionTypes.RestartAppPool:
|
||||
FireExecuteAction();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private int ChangeWebsiteState(bool enable, List<int> ids)
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
var state = enable ? ServerState.Started : ServerState.Paused;
|
||||
int result = ES.Services.WebServers.ChangeSiteState(id, state);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int RestartAppPool(List<int> ids)
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
int result = ES.Services.WebServers.ChangeAppPoolState(id, AppPoolState.Recycle);
|
||||
|
||||
if (result < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class WebsiteActions {
|
||||
|
||||
/// <summary>
|
||||
/// tblActions control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel tblActions;
|
||||
|
||||
/// <summary>
|
||||
/// ddlWebsiteActions 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 ddlWebsiteActions;
|
||||
|
||||
/// <summary>
|
||||
/// btnApply control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnApply;
|
||||
}
|
||||
}
|
|
@ -49,6 +49,8 @@ namespace WebsitePanel.Portal
|
|||
XmlNodeList xmlIcons = null;
|
||||
DataSet myPackages;
|
||||
int currentPackage;
|
||||
int currentUser;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
|
@ -69,26 +71,26 @@ namespace WebsitePanel.Portal
|
|||
ddlPackageSelect.DataTextField = myPackages.Tables[0].Columns[2].ColumnName;
|
||||
ddlPackageSelect.DataValueField = myPackages.Tables[0].Columns[0].ColumnName;
|
||||
ddlPackageSelect.DataBind();
|
||||
if(Session["currentPackage"] == null) {
|
||||
if(Session["currentPackage"] == null || ((int)Session["currentUser"]) != PanelSecurity.SelectedUserId) {
|
||||
if(ddlPackageSelect.Items.Count > 0) {
|
||||
Session["currentPackage"] = ddlPackageSelect.Items[0].Value;
|
||||
currentPackage = int.Parse(Session["currentPackage"].ToString());
|
||||
Session["currentUser"] = PanelSecurity.SelectedUserId;
|
||||
}
|
||||
} else {
|
||||
currentPackage = int.Parse(Session["currentPackage"].ToString());
|
||||
currentUser = int.Parse(Session["currentUser"].ToString());
|
||||
ddlPackageSelect.SelectedValue = currentPackage.ToString();
|
||||
}
|
||||
}
|
||||
// USER
|
||||
UserPackagesPanel.Visible = true;
|
||||
if(!IsPostBack)
|
||||
{
|
||||
if(ddlPackageSelect.UniqueID != Page.Request.Params["__EVENTTARGET"]) {
|
||||
if(ddlPackageSelect.Items.Count == 0) {
|
||||
litEmptyList.Text = GetLocalizedString("gvPackages.Empty");
|
||||
EmptyPackagesList.Visible = true;
|
||||
} else {
|
||||
ddlPackageSelect.Visible = true;
|
||||
myPackages = new PackagesHelper().GetMyPackage(currentPackage);
|
||||
myPackages = new PackagesHelper().GetMyPackage(int.Parse(Session["currentPackage"].ToString()));
|
||||
PackagesList.DataSource = myPackages;
|
||||
PackagesList.DataBind();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebSites.ascx.cs" Inherits="WebsitePanel.Portal.WebSites" %>
|
||||
<%@ Register Src="UserControls/SpaceServiceItems.ascx" TagName="SpaceServiceItems" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
|
||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||
|
||||
<wsp:SpaceServiceItems ID="itemsList" runat="server"
|
||||
CreateButtonText="btnAddWebSite"
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -40,6 +12,15 @@ namespace WebsitePanel.Portal {
|
|||
|
||||
public partial class WebSites {
|
||||
|
||||
/// <summary>
|
||||
/// asyncTasks control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||
|
||||
/// <summary>
|
||||
/// itemsList control.
|
||||
/// </summary>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue