Merge with default
This commit is contained in:
commit
b1b36dfc27
85 changed files with 5999 additions and 121 deletions
|
@ -303,6 +303,9 @@
|
|||
<data name="Tab.Htaccess" xml:space="preserve">
|
||||
<value>.htaccess</value>
|
||||
</data>
|
||||
<data name="Tab.HeliconZoo" xml:space="preserve">
|
||||
<value>Web Engines</value>
|
||||
</data>
|
||||
<data name="Tab.VirtualDirs" xml:space="preserve">
|
||||
<value>Virtual Dirs</value>
|
||||
</data>
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
<?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="btnInstall.Text" xml:space="preserve">
|
||||
<value>Install</value>
|
||||
</data>
|
||||
<data name="SelectWebEngine.Text" xml:space="preserve">
|
||||
<value>Select web application engine to set up</value>
|
||||
</data>
|
||||
</root>
|
|
@ -213,6 +213,11 @@ namespace WebsitePanel.Portal
|
|||
get { return GetCachedProxy<esExchangeServer>(); }
|
||||
}
|
||||
|
||||
|
||||
public esHeliconZoo HeliconZoo
|
||||
{
|
||||
get { return GetCachedProxy<esHeliconZoo>(); }
|
||||
}
|
||||
protected ES()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -146,6 +146,10 @@ namespace WebsitePanel.Portal
|
|||
if (!cntx.Groups.ContainsKey(groupName))
|
||||
return false;
|
||||
|
||||
// check wildcard quota name
|
||||
if (!string.IsNullOrEmpty(groupName) && quotaName.Substring(groupName.Length) == ".*")
|
||||
return true;
|
||||
|
||||
// check quota
|
||||
if (cntx.Quotas.ContainsKey(quotaName))
|
||||
return !cntx.Quotas[quotaName].QuotaExhausted;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<ItemTemplate>
|
||||
<div class="Quota">
|
||||
<div class="Left">
|
||||
<%# GetSharedLocalizedString("Quota." + (string)Eval("QuotaName"))%>:
|
||||
<%# GetSharedLocalizedStringNotEmpty((string)Eval("QuotaName"), Eval("QuotaDescription"))%>:
|
||||
</div>
|
||||
<div class="Right">
|
||||
<uc1:QuotaEditor id="quotaEditor" runat="server"
|
||||
|
|
|
@ -203,5 +203,29 @@ namespace WebsitePanel.Portal
|
|||
{
|
||||
return new DataView(dsQuotas.Tables[1], "GroupID=" + groupId.ToString(), "", DataViewRowState.CurrentRows);
|
||||
}
|
||||
|
||||
public string GetSharedLocalizedStringNotEmpty(string resourceKey, object resourceDescription)
|
||||
{
|
||||
string result = GetSharedLocalizedString("Quota." + resourceKey);
|
||||
if (string.IsNullOrEmpty(result))
|
||||
{
|
||||
result = resourceKey;
|
||||
|
||||
string resourceDescriptionString = resourceDescription as string;
|
||||
if (!string.IsNullOrEmpty(resourceDescriptionString))
|
||||
{
|
||||
result = resourceDescriptionString;
|
||||
}
|
||||
else if (result.IndexOf('.') > 0 && result.Substring(result.IndexOf('.')).Length > 1)
|
||||
{
|
||||
// drop Quota name prefix
|
||||
// HeliconZoo.python -> python
|
||||
|
||||
result = result.Substring(result.IndexOf('.')+1);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,22 +1,43 @@
|
|||
// Copyright (c) 2012, 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.
|
||||
// Runtime Version:2.0.50727.832
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// HostingPlansQuotas class.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated class.
|
||||
/// </remarks>
|
||||
public partial class HostingPlansQuotas {
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -192,4 +192,10 @@
|
|||
<data name="locMailboxDAG.Text" xml:space="preserve">
|
||||
<value>Database Availability Group:</value>
|
||||
</data>
|
||||
<data name="lblPowerShellUrl.Text" xml:space="preserve">
|
||||
<value>e.g. http://server.domain.com/PowerShell</value>
|
||||
</data>
|
||||
<data name="locPowerShellUrl.Text" xml:space="preserve">
|
||||
<value>Powershell URL:</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>
|
|
@ -112,10 +112,10 @@
|
|||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="chkAssignIPAutomatically.Text" xml:space="preserve">
|
||||
<value>Automatically allocate "dedicated" IP addresses on space creation</value>
|
||||
|
@ -129,7 +129,6 @@
|
|||
<data name="FilterDialogButton.Text" xml:space="preserve">
|
||||
<value>Click to create a filter...</value>
|
||||
</data>
|
||||
|
||||
<data name="GalleryFeedFilter.Text" xml:space="preserve">
|
||||
<value>Gallery feed filter:</value>
|
||||
</data>
|
||||
|
@ -235,4 +234,7 @@
|
|||
<data name="ipAddress.SelectValueText" xml:space="preserve">
|
||||
<value><All unassigned></value>
|
||||
</data>
|
||||
<data name="txtPublicSharedIP.Text" xml:space="preserve">
|
||||
<value>Web Sites Public Shared Address:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -126,4 +126,13 @@
|
|||
<data name="lblTemporyDomainName.Text" xml:space="preserve">
|
||||
<value>Tempory Domain Name:</value>
|
||||
</data>
|
||||
<data name="lblUserNameFormat.Text" xml:space="preserve">
|
||||
<value>Username Format:</value>
|
||||
</data>
|
||||
<data name="listItemStandard.Text" xml:space="preserve">
|
||||
<value>Standard</value>
|
||||
</data>
|
||||
<data name="listItemAppendOrgId.Text" xml:space="preserve">
|
||||
<value>Append OrgID</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,6 +1,25 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Exchange_Settings.ascx.cs"
|
||||
Inherits="WebsitePanel.Portal.ProviderControls.Exchange2010_Settings" %>
|
||||
<table cellpadding="3" cellspacing="0" width="100%">
|
||||
|
||||
<tr runat="server" id="powershellUrl1" width="200" nowrap>
|
||||
<td class="SubHead">
|
||||
</td>
|
||||
<td>
|
||||
<asp:Label runat="server" ID="lblFileServiceInfo" meta:resourcekey="lblPowerShellUrl" Text="e.g. http://server.domain.com/PowerShell" Font-Italic="true"></asp:Label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr runat="server" id="powershellUrl2" width="200" nowrap>
|
||||
<td class="SubHead">
|
||||
<asp:Localize ID="loclocPowerShellUrl" runat="server" meta:resourcekey="locPowerShellUrl"
|
||||
Text="Powershell URL:"></asp:Localize>
|
||||
</td>
|
||||
<td>
|
||||
<asp:TextBox ID="txtPowerShellUrl" runat="server" Width="400px"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr runat="server" id="storageGroup">
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Localize ID="locStorageGroup" runat="server" meta:resourcekey="locStorageGroup" Text="Storage Group Name:"></asp:Localize>
|
||||
|
|
|
@ -91,6 +91,8 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtStorageGroup.Text = "";
|
||||
|
||||
locMailboxDAG.Visible = false;
|
||||
|
||||
powershellUrl1.Visible = powershellUrl2.Visible = false;
|
||||
break;
|
||||
|
||||
case EXCHANGE2010SP2_PROVIDER_ID:
|
||||
|
@ -101,6 +103,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtStorageGroup.Text = "";
|
||||
|
||||
locMailboxDatabase.Visible = false;
|
||||
powershellUrl1.Visible = powershellUrl2.Visible = false;
|
||||
break;
|
||||
|
||||
case EXCHANGE2013_PROVIDER_ID:
|
||||
|
@ -111,6 +114,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtStorageGroup.Text = "";
|
||||
|
||||
locMailboxDatabase.Visible = false;
|
||||
powershellUrl1.Visible = powershellUrl2.Visible = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -147,6 +151,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtActiveSyncServer.Text = settings["ActiveSyncServer"];
|
||||
txtOABServer.Text = settings["OABServer"];
|
||||
txtPublicFolderServer.Text = settings["PublicFolderServer"];
|
||||
txtPowerShellUrl.Text = settings["PowerShellUrl"];
|
||||
|
||||
UpdateHubTransportsGrid();
|
||||
UpdateClientAccessGrid();
|
||||
|
@ -173,6 +178,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
settings["PublicFolderServer"] = txtPublicFolderServer.Text;
|
||||
|
||||
settings["StorageGroup"] = txtStorageGroup.Text;
|
||||
settings["PowerShellUrl"] = txtPowerShellUrl.Text;
|
||||
}
|
||||
|
||||
public void BindExchangeServices(DropDownList ddl, bool isHubservice)
|
||||
|
|
|
@ -1,3 +1,31 @@
|
|||
// Copyright (c) 2012, 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.
|
||||
|
@ -12,6 +40,51 @@ namespace WebsitePanel.Portal.ProviderControls {
|
|||
|
||||
public partial class Exchange2010_Settings {
|
||||
|
||||
/// <summary>
|
||||
/// powershellUrl1 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 powershellUrl1;
|
||||
|
||||
/// <summary>
|
||||
/// lblFileServiceInfo 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 lblFileServiceInfo;
|
||||
|
||||
/// <summary>
|
||||
/// powershellUrl2 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 powershellUrl2;
|
||||
|
||||
/// <summary>
|
||||
/// loclocPowerShellUrl 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 loclocPowerShellUrl;
|
||||
|
||||
/// <summary>
|
||||
/// txtPowerShellUrl 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 txtPowerShellUrl;
|
||||
|
||||
/// <summary>
|
||||
/// storageGroup control.
|
||||
/// </summary>
|
||||
|
|
|
@ -0,0 +1,399 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="HeliconZoo_Settings.ascx.cs" Inherits="HeliconZoo_Settings" %>
|
||||
<%@ Register Src="../UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
||||
<%@ Import Namespace="WebsitePanel.Portal.ProviderControls" %>
|
||||
<%@ Import Namespace="WebsitePanel.Server" %>
|
||||
|
||||
<style>
|
||||
p.description {
|
||||
margin: 4px 0 10px 0;
|
||||
color: #666;
|
||||
}
|
||||
table.EnginesTable th {
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
color: #000;
|
||||
font-weight: normal;
|
||||
}
|
||||
span.ValidationMessageBlock {
|
||||
display: block !important;
|
||||
}
|
||||
#EngineEnvs INPUT.NormalTextBox {
|
||||
font-family: Consolas, Courier New, monospace;
|
||||
}
|
||||
.AspNet-GridView td {
|
||||
padding: 3px 3px 5px 3px;
|
||||
}
|
||||
.AspNet-GridView-Alternate {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
</style>
|
||||
|
||||
<fieldset>
|
||||
<legend>
|
||||
<span>Hosting Packages</span>
|
||||
</legend>
|
||||
|
||||
<asp:GridView runat="server" ID="HostingPackagesGrid"
|
||||
AutoGenerateColumns="False"
|
||||
EmptyDataText="Hosting Packages not found. Please check Web Platform Installer settings in System settings."
|
||||
EnableViewState="True"
|
||||
ShowHeader="False"
|
||||
OnRowCommand="HostingPackagesGrid_OnRowCommand"
|
||||
>
|
||||
<Columns>
|
||||
<asp:TemplateField ItemStyle-Wrap="false" HeaderText="gvWPILogo" ItemStyle-Width="10%" >
|
||||
<ItemTemplate>
|
||||
<asp:Image ID="icoLogo" runat="server" SkinID="Dvd48" src='<%# Eval("Logo") %>' Width="48" Height="48" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField ItemStyle-Wrap="true" HeaderText="gvServicesName" ItemStyle-Width="80%">
|
||||
<ItemTemplate>
|
||||
<h2 class="ProductTitle Huge"><%# Eval("Title")%></h2>
|
||||
<p class="ProductSummary"><%# Eval("Summary") %></p>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField ItemStyle-Wrap="false" HeaderText="gvInstall" ItemStyle-Width="10%">
|
||||
<ItemStyle HorizontalAlign="Left" />
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="LabelInstalled" runat="server" Text="installed" Visible='<%# Eval("IsInstalled") %>'></asp:Label>
|
||||
<asp:Button ID="btnAdd" runat="server"
|
||||
CssClass='Button1'
|
||||
Visible = '<%# !(bool)Eval("IsInstalled") %>'
|
||||
Text = '<%# AddUpgradeRemoveText( (WPIProduct)Container.DataItem ) %>'
|
||||
CommandArgument='<%# Container.DataItemIndex %>'
|
||||
CommandName="WpiAdd"
|
||||
/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
|
||||
<asp:Panel runat="server" ID="HostingPackagesInstallButtonsPanel">
|
||||
<div class="FormFooter">
|
||||
<asp:Button ID="btnInstall" Text="Install" runat="server" onclick="btnInstall_Click" CssClass="Button1" Enabled="False" />
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel runat="server" ID="HostingPackagesErrorsPanel" Visible="False">
|
||||
<h3 class="Header ErrorText">Unable to load Hosting Package list with exception:</h3>
|
||||
<asp:Label runat="server" ID="HostingPackagesLoadingError"></asp:Label>
|
||||
</asp:Panel>
|
||||
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>
|
||||
<span>Helicon Zoo engine quotas settings</span>
|
||||
</legend>
|
||||
<div class="FormBody">
|
||||
<asp:CheckBox runat="server" ID="QuotasEnabled" Text="Enable Quotas"/>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<asp:Panel runat="server" ID="EnginesPanel">
|
||||
<fieldset>
|
||||
<legend>
|
||||
<span>Engines management</span>
|
||||
</legend>
|
||||
|
||||
<div class="FormButtonsBar">
|
||||
<asp:Button runat="server" ID="ButtonAddEngine" CssClass="Button2" Text="Add engine" OnClick="ButtonAddEngine_Click" />
|
||||
</div>
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="EngineForm" Visible="False">
|
||||
<ContentTemplate>
|
||||
<fieldset>
|
||||
<legend>
|
||||
<asp:Label runat="server" CssClass="NormalBold" Text="Engine settings"></asp:Label>
|
||||
</legend>
|
||||
|
||||
<table width="100%" cellpadding="4" class="EnginesTable">
|
||||
|
||||
<tr>
|
||||
<th width="160px">
|
||||
<span>Name</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineName" runat="server" CssClass="NormalTextBox" Width="666px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator runat="server"
|
||||
ControlToValidate="EngineName"
|
||||
ErrorMessage="Engine name can not be empty"
|
||||
CssClass="ValidationMessageBlock"
|
||||
EnableViewState="True"
|
||||
></asp:RequiredFieldValidator>
|
||||
<p class="description">Id for the engine</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Friendly name</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineFriendlyName" runat="server" CssClass="NormalTextBox" Width="666px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator runat="server"
|
||||
ControlToValidate="EngineFriendlyName"
|
||||
ErrorMessage="Engine friendly name can not be empty"
|
||||
CssClass="ValidationMessageBlock"
|
||||
></asp:RequiredFieldValidator>
|
||||
<p class="description">Frendly engine name</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Full path to executable</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineFullPath" runat="server" CssClass="NormalTextBox" Width="666px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator runat="server"
|
||||
ControlToValidate="EngineFullPath"
|
||||
ErrorMessage="Path to executable can not be empty"
|
||||
CssClass="ValidationMessageBlock"
|
||||
></asp:RequiredFieldValidator>
|
||||
<p class="description">Path to a worker executable file</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Executable`s arguments</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineArguments" runat="server" CssClass="NormalTextBox" Width="666px"></asp:TextBox>
|
||||
<p class="description">Set of arguments to be passed to a worker on a call, can include special environment variables</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Transport</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:DropDownList runat="server" ID="EngineTransport"></asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Protocol</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:DropDownList runat="server" ID="EngineProtocol"></asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Lower port</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EnginePortLower" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RangeValidator runat="server"
|
||||
ControlToValidate="EnginePortLower"
|
||||
MinimumValue="1" MaximumValue="65535"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RangeValidator>
|
||||
<p class="description">Specifies lower automatic port range bound for TCP transport, default = 49152</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Upper port</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EnginePortUpper" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RangeValidator runat="server"
|
||||
ControlToValidate="EnginePortUpper"
|
||||
MinimumValue="1" MaximumValue="65535"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RangeValidator>
|
||||
<p class="description">Specifies upper automatic port range bound for TCP transport, default = 65535</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Minimum instances</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineMinInstances" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RegularExpressionValidator runat="server"
|
||||
ControlToValidate="EngineMinInstances"
|
||||
ValidationExpression="\d*"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RegularExpressionValidator>
|
||||
<p class="description">Minimum number of worker instances</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Maximum instances</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineMaxInstances" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RegularExpressionValidator runat="server"
|
||||
ControlToValidate="EngineMaxInstances"
|
||||
ValidationExpression="\d*"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RegularExpressionValidator>
|
||||
<p class="description">Maximum number of instances of worker processes to start under high load. Default value of 0 means start as many instances as there are cores.</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Time limit</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineTimeLimit" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RegularExpressionValidator runat="server"
|
||||
ControlToValidate="EngineTimeLimit"
|
||||
ValidationExpression="\d*"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RegularExpressionValidator>
|
||||
<p class="description">Restart the worker after it has worked for specific amount of time (minutes), default = 0 (infinite)</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Graceful Shutdown Timeout</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineGracefulShutdownTimeout" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RegularExpressionValidator runat="server"
|
||||
ControlToValidate="EngineGracefulShutdownTimeout"
|
||||
ValidationExpression="\d*"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RegularExpressionValidator>
|
||||
<p class="description">XXXXXXXXXXXXXXXXXXX</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Memory limit</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:TextBox ID="EngineMemoryLimit" runat="server" CssClass="NormalTextBox" Width="150px"></asp:TextBox>
|
||||
<asp:RegularExpressionValidator runat="server"
|
||||
ControlToValidate="EngineMemoryLimit"
|
||||
ValidationExpression="\d*"
|
||||
ErrorMessage="Out of range"
|
||||
CssClass="ValidationMessage"
|
||||
></asp:RegularExpressionValidator>
|
||||
<p class="description">Restart the worker if it has consumed specific amount of memory (megabytes), default = 0 (unlimited)</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>
|
||||
<span>Environment variables</span>
|
||||
</th>
|
||||
<td class="Normal" valign="top">
|
||||
<table id="EngineEnvs">
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey1" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue1" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey2" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue2" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey3" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue3" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey4" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue4" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey5" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue5" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey6" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue6" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey7" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue7" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><asp:TextBox ID="EnvKey8" runat="server" CssClass="NormalTextBox" Width="240px"></asp:TextBox></td>
|
||||
<td><asp:TextBox ID="EnvValue8" runat="server" CssClass="NormalTextBox" Width="440px"></asp:TextBox></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</fieldset>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
<br/>
|
||||
<asp:Panel runat="server" ID="EngineFormButtons" Visible="False">
|
||||
<div class="FormButtonsBar">
|
||||
<asp:Button runat="server" ID="ButtonSaveEngine" Text="Save" CssClass="Button2" OnClick="ButtonSaveEngine_Click"></asp:Button>
|
||||
|
||||
<asp:Button runat="server" ID="ButtonCancelEngineForm" Text="Cancel" CssClass="Button2" OnClick="ButtonCancelEngineForm_Click"></asp:Button>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:GridView runat="server" ID="EngineGrid"
|
||||
AutoGenerateColumns="False"
|
||||
EmptyDataText="Engines not found. Please reinstall Helicon Zoo."
|
||||
EnableViewState="True"
|
||||
ShowHeader="False"
|
||||
OnRowCommand="EngineGrid_OnRowCommand"
|
||||
>
|
||||
<Columns>
|
||||
<asp:TemplateField runat="server" ItemStyle-Width="75%">
|
||||
<ItemTemplate>
|
||||
<span runat="server" class="NormalBold"><%# Eval("displayName")%></span>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField runat="server" ItemStyle-Width="25%">
|
||||
<ItemTemplate>
|
||||
<asp:Button ID="ButtonEditEngine" runat="server"
|
||||
CssClass='Button1'
|
||||
Text = 'Edit'
|
||||
CommandArgument='<%# Eval("name") %>'
|
||||
CommandName="EngineEdit"
|
||||
/>
|
||||
<asp:Button ID="ButtonDeleteEngine" runat="server"
|
||||
CssClass='Button1'
|
||||
Text="Delete"
|
||||
CommandArgument='<%# Eval("name") %>'
|
||||
CommandName="EngineDelete"
|
||||
Visible='<%# (bool)Eval("isUserEngine") %>'
|
||||
/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</asp:Panel>
|
|
@ -0,0 +1,426 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Globalization;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.Portal;
|
||||
using WebsitePanel.Providers.HeliconZoo;
|
||||
using WebsitePanel.Server;
|
||||
|
||||
|
||||
public partial class HeliconZoo_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
|
||||
{
|
||||
private class EnvBoxPair
|
||||
{
|
||||
|
||||
public TextBox Name;
|
||||
public TextBox Value;
|
||||
public EnvBoxPair(TextBox name, TextBox value)
|
||||
{
|
||||
Name = name;
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
private EnvBoxPair[] _envBoxsPair;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
_envBoxsPair = new EnvBoxPair[]
|
||||
{
|
||||
new EnvBoxPair(EnvKey1, EnvValue1),
|
||||
new EnvBoxPair(EnvKey2, EnvValue2),
|
||||
new EnvBoxPair(EnvKey3, EnvValue3),
|
||||
new EnvBoxPair(EnvKey4, EnvValue4),
|
||||
new EnvBoxPair(EnvKey5, EnvValue5),
|
||||
new EnvBoxPair(EnvKey6, EnvValue6),
|
||||
new EnvBoxPair(EnvKey7, EnvValue7),
|
||||
new EnvBoxPair(EnvKey8, EnvValue8),
|
||||
};
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
BindHostingPackages();
|
||||
|
||||
EngineTransport.Items.Clear();
|
||||
EngineTransport.Items.AddRange(
|
||||
new ListItem[]
|
||||
{
|
||||
new ListItem("Named pipe", "namedpipe"),
|
||||
new ListItem("TCP", "tcp"),
|
||||
}
|
||||
);
|
||||
EngineProtocol.Items.Clear();
|
||||
EngineProtocol.Items.AddRange(
|
||||
new ListItem[]
|
||||
{
|
||||
new ListItem("FastCGI", "fastcgi"),
|
||||
new ListItem("HTTP", "http"),
|
||||
}
|
||||
);
|
||||
|
||||
BindEngines();
|
||||
}
|
||||
}
|
||||
|
||||
private void BindHostingPackages()
|
||||
{
|
||||
// TODO: try...catch?
|
||||
WPIProduct[] products = null;
|
||||
try
|
||||
{
|
||||
products = GetHostingPackages();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
HostingPackagesGrid.Visible = false;
|
||||
HostingPackagesInstallButtonsPanel.Visible = false;
|
||||
HostingPackagesErrorsPanel.Visible = true;
|
||||
if (e.InnerException != null)
|
||||
{
|
||||
e = e.InnerException;
|
||||
}
|
||||
HostingPackagesLoadingError.Text = e.Message;
|
||||
}
|
||||
HostingPackagesGrid.DataSource = products;
|
||||
HostingPackagesGrid.DataBind();
|
||||
}
|
||||
|
||||
|
||||
private void BindEngines()
|
||||
{
|
||||
// get all engines from IIS
|
||||
HeliconZooEngine[] engineList = ES.Services.HeliconZoo.GetEngines(PanelRequest.ServiceId);
|
||||
|
||||
if (null != engineList && engineList.Length > 0)
|
||||
{
|
||||
// convert list to dict
|
||||
Dictionary<string, HeliconZooEngine> enginesDict = new Dictionary<string, HeliconZooEngine>();
|
||||
foreach (HeliconZooEngine engine in engineList)
|
||||
{
|
||||
enginesDict[engine.name] = engine;
|
||||
}
|
||||
|
||||
// save engines in view state
|
||||
ViewState["HeliconZooEngines"] = enginesDict;
|
||||
|
||||
// bind to grid
|
||||
EngineGrid.DataSource = engineList;
|
||||
EngineGrid.DataBind();
|
||||
|
||||
// bind 'Enable quotas' checkbox
|
||||
bool enabled = ES.Services.HeliconZoo.IsEnginesEnabled(PanelRequest.ServiceId);
|
||||
QuotasEnabled.Checked = !enabled;
|
||||
}
|
||||
else
|
||||
{
|
||||
EnginesPanel.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void RebindEngines()
|
||||
{
|
||||
Dictionary<string, HeliconZooEngine> engines = GetEngines();
|
||||
EngineGrid.DataSource = engines.Values;
|
||||
EngineGrid.DataBind();
|
||||
}
|
||||
|
||||
public void BindSettings(StringDictionary settings)
|
||||
{
|
||||
}
|
||||
|
||||
public void SaveSettings(StringDictionary settings)
|
||||
{
|
||||
// save engines
|
||||
ES.Services.HeliconZoo.SetEngines(PanelRequest.ServiceId, new List<HeliconZooEngine>(GetEngines().Values).ToArray());
|
||||
|
||||
// save switcher
|
||||
ES.Services.HeliconZoo.SwithEnginesEnabled(PanelRequest.ServiceId, !QuotasEnabled.Checked);
|
||||
}
|
||||
|
||||
protected void ClearEngineForm()
|
||||
{
|
||||
EngineName.Text = string.Empty;
|
||||
EngineFriendlyName.Text = string.Empty;
|
||||
EngineFullPath.Text = string.Empty;
|
||||
EngineArguments.Text = string.Empty;
|
||||
EngineProtocol.SelectedIndex = 0;
|
||||
EngineTransport.SelectedIndex = 0;
|
||||
|
||||
foreach (EnvBoxPair envBoxPair in _envBoxsPair)
|
||||
{
|
||||
envBoxPair.Name.Text = string.Empty;
|
||||
envBoxPair.Value.Text = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
protected void ShowEngineForm()
|
||||
{
|
||||
EngineForm.Visible = true;
|
||||
EngineFormButtons.Visible = true;
|
||||
}
|
||||
|
||||
protected void HideEngineForm()
|
||||
{
|
||||
EngineForm.Visible = false;
|
||||
EngineFormButtons.Visible = false;
|
||||
}
|
||||
|
||||
protected void ButtonAddEngine_Click(object sender, EventArgs e)
|
||||
{
|
||||
ClearEngineForm();
|
||||
ShowEngineForm();
|
||||
}
|
||||
|
||||
protected void ButtonSaveEngine_Click(object sender, EventArgs e)
|
||||
{
|
||||
HeliconZooEngine engine = EngineFromForm();
|
||||
HeliconZooEngine savedEngine = FindEngineByName(engine.name);
|
||||
Dictionary<string, HeliconZooEngine> engines = GetEngines();
|
||||
|
||||
// new user engine or update existing
|
||||
engines[engine.name] = engine;
|
||||
|
||||
ClearEngineForm();
|
||||
HideEngineForm();
|
||||
|
||||
// rebind grid
|
||||
RebindEngines();
|
||||
}
|
||||
|
||||
public static long ParseLong(string s, long deflt)
|
||||
{
|
||||
long result;
|
||||
if (!long.TryParse(s, out result))
|
||||
{
|
||||
result = deflt;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private HeliconZooEngine EngineFromForm()
|
||||
{
|
||||
HeliconZooEngine engine = new HeliconZooEngine()
|
||||
{
|
||||
name = EngineName.Text.Trim(),
|
||||
displayName = EngineFriendlyName.Text.Trim(),
|
||||
arguments = EngineArguments.Text.Trim(),
|
||||
fullPath = EngineFullPath.Text.Trim(),
|
||||
transport = EngineTransport.SelectedValue,
|
||||
protocol = EngineProtocol.SelectedValue,
|
||||
portLower = ParseLong(EnginePortLower.Text, -1),
|
||||
portUpper = ParseLong(EnginePortUpper.Text, -1),
|
||||
minInstances = ParseLong(EngineMinInstances.Text, -1),
|
||||
maxInstances = ParseLong(EngineMaxInstances.Text, -1),
|
||||
timeLimit = ParseLong(EngineTimeLimit.Text, -1),
|
||||
gracefulShutdownTimeout = ParseLong(EngineGracefulShutdownTimeout.Text, -1),
|
||||
memoryLimit = ParseLong(EngineMemoryLimit.Text, -1),
|
||||
isUserEngine = true
|
||||
};
|
||||
|
||||
// envs
|
||||
List<HeliconZooEnv> tempEnvList = new List<HeliconZooEnv>();
|
||||
for (int i = 0; i < _envBoxsPair.Length; i++)
|
||||
{
|
||||
EnvBoxPair pair = _envBoxsPair[i];
|
||||
if (!string.IsNullOrEmpty(pair.Name.Text.Trim()) && !string.IsNullOrEmpty(pair.Value.Text.Trim()))
|
||||
{
|
||||
tempEnvList.Add(new HeliconZooEnv(){Name = pair.Name.Text.Trim(), Value = pair.Value.Text.Trim()});
|
||||
}
|
||||
}
|
||||
|
||||
engine.environmentVariables = tempEnvList.ToArray();
|
||||
|
||||
return engine;
|
||||
}
|
||||
|
||||
protected void ButtonCancelEngineForm_Click(object sender, EventArgs e)
|
||||
{
|
||||
ClearEngineForm();
|
||||
HideEngineForm();
|
||||
}
|
||||
|
||||
protected void EngineGrid_OnRowCommand(object sender, GridViewCommandEventArgs e)
|
||||
{
|
||||
if (e.CommandName == "EngineEdit")
|
||||
{
|
||||
HeliconZooEngine engine = FindEngineByName((string)e.CommandArgument);
|
||||
if (null != engine)
|
||||
{
|
||||
BindEngineForm(engine);
|
||||
ShowEngineForm();
|
||||
}
|
||||
}
|
||||
if (e.CommandName == "EngineDisable")
|
||||
{
|
||||
HeliconZooEngine engine = FindEngineByName((string)e.CommandArgument);
|
||||
if (null != engine)
|
||||
{
|
||||
engine.disabled = !engine.disabled;
|
||||
RebindEngines();
|
||||
}
|
||||
}
|
||||
if (e.CommandName == "EngineDelete")
|
||||
{
|
||||
HeliconZooEngine engine = FindEngineByName((string)e.CommandArgument);
|
||||
if (null != engine)
|
||||
{
|
||||
Dictionary<string, HeliconZooEngine> engines = GetEngines();
|
||||
engines.Remove(engine.name);
|
||||
RebindEngines();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string ToStringClearDeafult(long l)
|
||||
{
|
||||
if (-1 == l)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return l.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
private void BindEngineForm(HeliconZooEngine engine)
|
||||
{
|
||||
EngineName.Text = engine.name;
|
||||
EngineFriendlyName.Text = engine.displayName;
|
||||
EngineFullPath.Text = engine.fullPath;
|
||||
EngineArguments.Text = engine.arguments;
|
||||
EngineTransport.Text = engine.transport.ToLower();
|
||||
EngineProtocol.Text = engine.protocol.ToLower();
|
||||
EnginePortLower.Text = ToStringClearDeafult(engine.portLower);
|
||||
EnginePortUpper.Text = ToStringClearDeafult(engine.portUpper);
|
||||
EngineMinInstances.Text = ToStringClearDeafult(engine.minInstances);
|
||||
EngineMaxInstances.Text = ToStringClearDeafult(engine.maxInstances);
|
||||
EngineTimeLimit.Text = ToStringClearDeafult(engine.timeLimit);
|
||||
EngineGracefulShutdownTimeout.Text = ToStringClearDeafult(engine.gracefulShutdownTimeout);
|
||||
EngineMemoryLimit.Text = ToStringClearDeafult(engine.memoryLimit);
|
||||
|
||||
|
||||
for (int i = 0; i < engine.environmentVariables.Length && i < _envBoxsPair.Length; i++)
|
||||
{
|
||||
HeliconZooEnv env = engine.environmentVariables[i];
|
||||
_envBoxsPair[i].Name.Text = env.Name;
|
||||
_envBoxsPair[i].Value.Text = env.Value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Dictionary<string, HeliconZooEngine> GetEngines()
|
||||
{
|
||||
return ViewState["HeliconZooEngines"] as Dictionary<string, HeliconZooEngine>;
|
||||
}
|
||||
|
||||
private HeliconZooEngine FindEngineByName(string engineName)
|
||||
{
|
||||
Dictionary<string, HeliconZooEngine> engines = GetEngines();
|
||||
if (null != engines)
|
||||
{
|
||||
if (engines.ContainsKey(engineName))
|
||||
{
|
||||
return engines[engineName];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void HostingPackagesGrid_OnRowCommand(object sender, GridViewCommandEventArgs e)
|
||||
{
|
||||
ArrayList wpiProductsForInstall = GetProductsToInstallList();
|
||||
|
||||
int productIndex = int.Parse((string)e.CommandArgument);
|
||||
WPIProduct wpiProduct = GetHostingPackages()[productIndex];
|
||||
|
||||
if (null != wpiProduct)
|
||||
{
|
||||
if (e.CommandName == "WpiAdd")
|
||||
{
|
||||
wpiProductsForInstall = GetProductsToInstallList();
|
||||
wpiProductsForInstall.Add(wpiProduct.ProductId);
|
||||
SetProductsToInstallList(wpiProductsForInstall);
|
||||
|
||||
((Button)e.CommandSource).Text = AddUpgradeRemoveText(wpiProduct); ;
|
||||
((Button)e.CommandSource).CommandName = "WpiRemove";
|
||||
}
|
||||
|
||||
if (e.CommandName == "WpiRemove")
|
||||
{
|
||||
wpiProductsForInstall = GetProductsToInstallList();
|
||||
wpiProductsForInstall.Remove(wpiProduct.ProductId);
|
||||
SetProductsToInstallList(wpiProductsForInstall);
|
||||
|
||||
((Button)e.CommandSource).Text = AddUpgradeRemoveText(wpiProduct);
|
||||
((Button)e.CommandSource).CommandName = "WpiAdd";
|
||||
}
|
||||
|
||||
btnInstall.Enabled = wpiProductsForInstall.Count > 0;
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList GetProductsToInstallList()
|
||||
{
|
||||
if (ViewState["wpiProductsForInstall"] != null)
|
||||
{
|
||||
return (ArrayList)ViewState["wpiProductsForInstall"];
|
||||
}
|
||||
return new ArrayList();
|
||||
}
|
||||
|
||||
private void SetProductsToInstallList(ArrayList wpiProductsForInstall)
|
||||
{
|
||||
ViewState["wpiProductsForInstall"] = wpiProductsForInstall;
|
||||
}
|
||||
|
||||
private WPIProduct[] GetHostingPackages()
|
||||
{
|
||||
if (ViewState["HeliconZooHostingPackages"] == null)
|
||||
{
|
||||
ViewState["HeliconZooHostingPackages"] = RequestHostingPackages();
|
||||
}
|
||||
|
||||
return (WPIProduct[])ViewState["HeliconZooHostingPackages"];
|
||||
}
|
||||
|
||||
private static WPIProduct[] RequestHostingPackages()
|
||||
{
|
||||
return ES.Services.Servers.GetWPIProducts(PanelRequest.ServerId, null, "ZooPackage");
|
||||
}
|
||||
|
||||
protected string AddUpgradeRemoveText(WPIProduct wpiProduct)
|
||||
{
|
||||
if (GetProductsToInstallList().Contains(wpiProduct.ProductId))
|
||||
{
|
||||
return "- cancel";
|
||||
}
|
||||
else
|
||||
{
|
||||
return wpiProduct.IsUpgrade ? "+ upgrade" : "+ add";
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnInstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
ArrayList wpiProductsForInstall = GetProductsToInstallList();
|
||||
|
||||
List<string> qsParts = new List<string>();
|
||||
|
||||
qsParts.Add("pid=Servers");
|
||||
qsParts.Add("ctl=edit_platforminstaller");
|
||||
qsParts.Add("mid=" + Request.QueryString["mid"]);
|
||||
qsParts.Add("ServerID=" + Request.QueryString["ServerID"]);
|
||||
qsParts.Add("WPIProduct=" + string.Join(",", wpiProductsForInstall.ToArray()));
|
||||
qsParts.Add("ReturnUrl=" + Server.UrlEncode(Request.RawUrl));
|
||||
|
||||
string installUrl = "Default.aspx?" + String.Join("&", qsParts.ToArray());
|
||||
|
||||
Response.Redirect(installUrl);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,419 @@
|
|||
// Copyright (c) 2012, 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.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
public partial class HeliconZoo_Settings {
|
||||
|
||||
/// <summary>
|
||||
/// HostingPackagesGrid control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView HostingPackagesGrid;
|
||||
|
||||
/// <summary>
|
||||
/// HostingPackagesInstallButtonsPanel 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 HostingPackagesInstallButtonsPanel;
|
||||
|
||||
/// <summary>
|
||||
/// btnInstall 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 btnInstall;
|
||||
|
||||
/// <summary>
|
||||
/// HostingPackagesErrorsPanel 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 HostingPackagesErrorsPanel;
|
||||
|
||||
/// <summary>
|
||||
/// HostingPackagesLoadingError 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 HostingPackagesLoadingError;
|
||||
|
||||
/// <summary>
|
||||
/// QuotasEnabled 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 QuotasEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// EnginesPanel 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 EnginesPanel;
|
||||
|
||||
/// <summary>
|
||||
/// ButtonAddEngine 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 ButtonAddEngine;
|
||||
|
||||
/// <summary>
|
||||
/// EngineForm 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 EngineForm;
|
||||
|
||||
/// <summary>
|
||||
/// EngineName 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 EngineName;
|
||||
|
||||
/// <summary>
|
||||
/// EngineFriendlyName 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 EngineFriendlyName;
|
||||
|
||||
/// <summary>
|
||||
/// EngineFullPath 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 EngineFullPath;
|
||||
|
||||
/// <summary>
|
||||
/// EngineArguments 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 EngineArguments;
|
||||
|
||||
/// <summary>
|
||||
/// EngineTransport 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 EngineTransport;
|
||||
|
||||
/// <summary>
|
||||
/// EngineProtocol 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 EngineProtocol;
|
||||
|
||||
/// <summary>
|
||||
/// EnginePortLower 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 EnginePortLower;
|
||||
|
||||
/// <summary>
|
||||
/// EnginePortUpper 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 EnginePortUpper;
|
||||
|
||||
/// <summary>
|
||||
/// EngineMinInstances 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 EngineMinInstances;
|
||||
|
||||
/// <summary>
|
||||
/// EngineMaxInstances 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 EngineMaxInstances;
|
||||
|
||||
/// <summary>
|
||||
/// EngineTimeLimit 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 EngineTimeLimit;
|
||||
|
||||
/// <summary>
|
||||
/// EngineGracefulShutdownTimeout 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 EngineGracefulShutdownTimeout;
|
||||
|
||||
/// <summary>
|
||||
/// EngineMemoryLimit 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 EngineMemoryLimit;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey1 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 EnvKey1;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue1 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 EnvValue1;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey2 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 EnvKey2;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue2 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 EnvValue2;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey3 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 EnvKey3;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue3 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 EnvValue3;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey4 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 EnvKey4;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue4 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 EnvValue4;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey5 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 EnvKey5;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue5 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 EnvValue5;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey6 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 EnvKey6;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue6 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 EnvValue6;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey7 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 EnvKey7;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue7 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 EnvValue7;
|
||||
|
||||
/// <summary>
|
||||
/// EnvKey8 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 EnvKey8;
|
||||
|
||||
/// <summary>
|
||||
/// EnvValue8 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 EnvValue8;
|
||||
|
||||
/// <summary>
|
||||
/// EngineFormButtons 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 EngineFormButtons;
|
||||
|
||||
/// <summary>
|
||||
/// ButtonSaveEngine 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 ButtonSaveEngine;
|
||||
|
||||
/// <summary>
|
||||
/// ButtonCancelEngineForm 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 ButtonCancelEngineForm;
|
||||
|
||||
/// <summary>
|
||||
/// EngineGrid control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView EngineGrid;
|
||||
}
|
|
@ -20,6 +20,14 @@
|
|||
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal" width="200" nowrap>
|
||||
<asp:Label ID="lblPublicSharedIP" runat="server" meta:resourcekey="lblPublicSharedIP" Text="Web Sites Public Shared IP Address:"></asp:Label>
|
||||
</td>
|
||||
<td width="100%">
|
||||
<asp:TextBox ID="txtPublicSharedIP" runat="server" Width="200" CssClass="NormalTextBox"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal" valign="top">
|
||||
<asp:Label ID="lblGroupName" runat="server" meta:resourcekey="lblGroupName" Text="Web Users Group Name:"></asp:Label>
|
||||
|
|
|
@ -102,6 +102,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
{
|
||||
ipAddress.AddressId = (settings["SharedIP"] != null) ? Utils.ParseInt(settings["SharedIP"], 0) : 0;
|
||||
ipAddress.SelectValueText = GetLocalizedString("ipAddress.SelectValueText");
|
||||
txtPublicSharedIP.Text = settings["PublicSharedIP"];
|
||||
|
||||
txtWebGroupName.Text = settings["WebGroupName"];
|
||||
chkAssignIPAutomatically.Checked = Utils.ParseBool(settings["AutoAssignDedicatedIP"], true);
|
||||
|
@ -140,6 +141,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
public void SaveSettings(StringDictionary settings)
|
||||
{
|
||||
settings["SharedIP"] = ipAddress.AddressId.ToString();
|
||||
settings["PublicSharedIP"] = txtPublicSharedIP.Text.Trim();
|
||||
settings["WebGroupName"] = txtWebGroupName.Text.Trim();
|
||||
settings["AutoAssignDedicatedIP"] = chkAssignIPAutomatically.Checked.ToString();
|
||||
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2012, 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.
|
||||
|
@ -67,6 +39,24 @@ namespace WebsitePanel.Portal.ProviderControls {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
||||
|
||||
/// <summary>
|
||||
/// lblPublicSharedIP 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 lblPublicSharedIP;
|
||||
|
||||
/// <summary>
|
||||
/// txtPublicSharedIP 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 txtPublicSharedIP;
|
||||
|
||||
/// <summary>
|
||||
/// lblGroupName control.
|
||||
/// </summary>
|
||||
|
|
|
@ -23,4 +23,13 @@
|
|||
<asp:RequiredFieldValidator ControlToValidate="txtTemporyDomainName" ErrorMessage="*" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" nowrap="nowrap"><asp:Label runat="server" ID="UserNameFormatLabel" meta:resourcekey="lblUserNameFormat"/></td>
|
||||
<td>
|
||||
<asp:DropDownList runat="server" ID="UserNameFormatDropDown">
|
||||
<asp:ListItem Value="1" meta:resourcekey="listItemStandard"/>
|
||||
<asp:ListItem Value="2" meta:resourcekey="listItemAppendOrgId"/>
|
||||
</asp:DropDownList>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -35,6 +35,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
public const string RootOU = "RootOU";
|
||||
public const string PrimaryDomainController = "PrimaryDomainController";
|
||||
public const string TemporyDomainName = "TempDomain";
|
||||
public const string UserNameFormat = "UserNameFormat";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
@ -46,6 +47,12 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtPrimaryDomainController.Text = settings[PrimaryDomainController];
|
||||
txtRootOU.Text = settings[RootOU];
|
||||
txtTemporyDomainName.Text = settings[TemporyDomainName];
|
||||
|
||||
if (settings.ContainsKey(UserNameFormat))
|
||||
{
|
||||
UserNameFormatDropDown.SelectedValue =
|
||||
UserNameFormatDropDown.Items.FindByText(settings[UserNameFormat]).Value;
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
||||
|
@ -53,6 +60,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
settings[RootOU] = txtRootOU.Text.Trim();
|
||||
settings[PrimaryDomainController] = txtPrimaryDomainController.Text.Trim();
|
||||
settings[TemporyDomainName] = txtTemporyDomainName.Text.Trim();
|
||||
settings[UserNameFormat] = UserNameFormatDropDown.SelectedItem.Text;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,22 +1,15 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.1378
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Organizations_Settings class.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated class.
|
||||
/// </remarks>
|
||||
public partial class Organizations_Settings {
|
||||
|
||||
/// <summary>
|
||||
|
@ -81,5 +74,23 @@ namespace WebsitePanel.Portal.ProviderControls {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtTemporyDomainName;
|
||||
|
||||
/// <summary>
|
||||
/// UserNameFormatLabel 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 UserNameFormatLabel;
|
||||
|
||||
/// <summary>
|
||||
/// UserNameFormatDropDown 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 UserNameFormatDropDown;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,11 +108,11 @@ namespace WebsitePanel.Portal
|
|||
ShowProgressPanel();
|
||||
}
|
||||
|
||||
string gotoProduct = Request.QueryString["WPIProduct"];
|
||||
if (!string.IsNullOrEmpty(gotoProduct))
|
||||
string gotoProducts = Request.QueryString["WPIProduct"];
|
||||
if (!string.IsNullOrEmpty(gotoProducts))
|
||||
{
|
||||
ArrayList wpiProductsForInstall = GetProductsToInstallList();
|
||||
wpiProductsForInstall.Add(gotoProduct);
|
||||
wpiProductsForInstall.AddRange(gotoProducts.Split(','));
|
||||
SetProductsToInstallList(wpiProductsForInstall);
|
||||
|
||||
btnInstall_Click(sender, e);
|
||||
|
@ -440,6 +440,13 @@ namespace WebsitePanel.Portal
|
|||
}
|
||||
|
||||
ShowLogButton();
|
||||
|
||||
// fix btnBackToServer button text
|
||||
if (null != Request["returnurl"])
|
||||
{
|
||||
btnBackToServer.Text = "Ok";
|
||||
BackToGalleryButton.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowLogButton()
|
||||
|
@ -523,9 +530,45 @@ namespace WebsitePanel.Portal
|
|||
}
|
||||
}
|
||||
|
||||
private bool IsLocalUrl(string url)
|
||||
{
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Uri absoluteUri;
|
||||
if (Uri.TryCreate(url, UriKind.Absolute, out absoluteUri))
|
||||
{
|
||||
return String.Equals(this.Request.Url.Host, absoluteUri.Host, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isLocal = !url.StartsWith("http:", StringComparison.OrdinalIgnoreCase)
|
||||
&& !url.StartsWith("https:", StringComparison.OrdinalIgnoreCase)
|
||||
&& Uri.IsWellFormedUriString(url, UriKind.Relative);
|
||||
return isLocal;
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.Redirect(EditUrl("ServerID", PanelRequest.ServerId.ToString(), "edit_server"));
|
||||
string redirectUrl = "";
|
||||
if (Request["returnurl"] != null)
|
||||
{
|
||||
redirectUrl = HttpUtility.UrlDecode(Request["returnurl"]);
|
||||
if (!IsLocalUrl(redirectUrl))
|
||||
{
|
||||
redirectUrl = "";
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(redirectUrl))
|
||||
{
|
||||
redirectUrl = EditUrl("ServerID", PanelRequest.ServerId.ToString(), "edit_server");
|
||||
}
|
||||
|
||||
Response.Redirect(redirectUrl);
|
||||
}
|
||||
|
||||
protected void SearchButton_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using WebsitePanel.Providers.WebAppGallery;
|
||||
using System.Web;
|
||||
using WebsitePanel.Providers.WebAppGallery;
|
||||
using WebsitePanel.Providers.ResultObjects;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
|
@ -121,14 +122,38 @@ namespace WebsitePanel.Portal
|
|||
|
||||
if (isSuccess)
|
||||
{
|
||||
Response.Redirect(EditUrl("ApplicationID", PanelRequest.ApplicationID, "editParams",
|
||||
"SpaceID=" + PanelSecurity.PackageId));
|
||||
// web app downloaded successfully
|
||||
string url = EditUrl("ApplicationID", PanelRequest.ApplicationID, "editParams",
|
||||
"SpaceID=" + PanelSecurity.PackageId);
|
||||
|
||||
string targetSite = HttpContext.Current.Request["SiteId"];
|
||||
if (!string.IsNullOrEmpty(targetSite))
|
||||
{
|
||||
url += "&SiteId=" + targetSite;
|
||||
}
|
||||
string returnUrl = HttpContext.Current.Request["ReturnUrl"];
|
||||
if (!string.IsNullOrEmpty(returnUrl))
|
||||
{
|
||||
url += "&ReturnUrl=" + Server.UrlEncode(returnUrl);
|
||||
}
|
||||
|
||||
Response.Redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
string returnUrl = HttpContext.Current.Request["ReturnUrl"];
|
||||
if (!string.IsNullOrEmpty(returnUrl))
|
||||
{
|
||||
string redirectUrl = HttpUtility.UrlDecode(returnUrl);
|
||||
Response.Redirect(redirectUrl);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
}
|
||||
}
|
||||
|
||||
protected void chIgnoreDependencies_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using WebsitePanel.Providers.WebAppGallery;
|
||||
|
@ -129,6 +130,24 @@ namespace WebsitePanel.Portal
|
|||
ddlWebSite.DataBind();
|
||||
ddlWebSite.Items.Insert(0, new ListItem(GetLocalizedString("Text.SelectWebSite"), ""));
|
||||
|
||||
// select site from query string parameter
|
||||
string targetSite = HttpContext.Current.Request["SiteId"];
|
||||
if (!string.IsNullOrEmpty(targetSite))
|
||||
{
|
||||
foreach (ListItem item in ddlWebSite.Items)
|
||||
{
|
||||
if (item.Text == targetSite)
|
||||
{
|
||||
item.Selected = true;
|
||||
ddlWebSite.Enabled = false;
|
||||
locWebSiteDescription.Visible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ddlWebSite.SelectedValue = targetSite;
|
||||
}
|
||||
|
||||
// apply policy to virtual dirs
|
||||
directoryName.SetPackagePolicy(PanelSecurity.PackageId, UserSettings.WEB_POLICY, "VirtDirNamePolicy");
|
||||
}
|
||||
|
@ -612,12 +631,32 @@ namespace WebsitePanel.Portal
|
|||
|
||||
protected void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
string returnUrl = HttpContext.Current.Request["ReturnUrl"];
|
||||
if (!string.IsNullOrEmpty(returnUrl))
|
||||
{
|
||||
string redirectUrl = HttpUtility.UrlDecode(returnUrl);
|
||||
Response.Redirect(redirectUrl);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
string returnUrl = HttpContext.Current.Request["ReturnUrl"];
|
||||
if (!string.IsNullOrEmpty(returnUrl))
|
||||
{
|
||||
string redirectUrl = HttpUtility.UrlDecode(returnUrl);
|
||||
Response.Redirect(redirectUrl);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RedirectSpaceHomePage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@
|
|||
<%@ Register Src="WebSitesCustomHeadersControl.ascx" TagName="WebSitesCustomHeadersControl" TagPrefix="uc6" %>
|
||||
<%@ Register Src="WebSitesSecuredFoldersControl.ascx" TagName="WebSitesSecuredFoldersControl" TagPrefix="wsp" %>
|
||||
<%@ Register Src="WebSitesHeliconApeControl.ascx" TagName="WebSitesHeliconApeControl" TagPrefix="wsp" %>
|
||||
<%@ Register Src="WebSitesHeliconZooControl.ascx" TagName="WebSitesHeliconZooControl" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/PasswordControl.ascx" TagName="PasswordControl" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/UsernameControl.ascx" TagName="UsernameControl" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
|
@ -241,6 +242,9 @@
|
|||
</asp:View>
|
||||
<asp:View ID="tabHeliconApe" runat="server">
|
||||
<wsp:WebSitesHeliconApeControl ID="webSitesHeliconApeControl" runat="server" />
|
||||
</asp:View>
|
||||
<asp:View ID="tabHeliconZoo" runat="server">
|
||||
<wsp:WebSitesHeliconZooControl ID="webSitesHeliconZooControl" runat="server" />
|
||||
</asp:View>
|
||||
<asp:View ID="tabFrontPage" runat="server">
|
||||
<asp:Panel ID="pnlFrontPage" runat="server" Style="padding: 20;">
|
||||
|
@ -510,4 +514,4 @@
|
|||
CssClass="Button1" CausesValidation="false" OnClientClick="return confirm('Delete this web site?');"
|
||||
OnClick="btnDelete_Click" />
|
||||
<asp:CheckBox ID="chkDeleteWebsiteDirectory" runat="server" Text="Delete Website Directory?" AutoPostBack="false" meta:resourcekey="chkDeleteWebsiteDirectory" />
|
||||
</div>
|
||||
</div>
|
|
@ -60,6 +60,7 @@ namespace WebsitePanel.Portal
|
|||
new Tab { Id = "htaccessfolders", ResourceKey = "Tab.Htaccess", Quota = Quotas.WEB_HTACCESS, ViewId = "tabHeliconApe" },
|
||||
new Tab { Id = "frontpage", ResourceKey = "Tab.FrontPage", Quota = Quotas.WEB_FRONTPAGE, ViewId = "tabFrontPage" },
|
||||
new Tab { Id = "extensions", ResourceKey = "Tab.Extensions", ViewId = "tabExtensions" },
|
||||
new Tab { Id = "HeliconZoo", ResourceKey = "Tab.HeliconZoo", Quota = Quotas.HELICON_ZOO, ResourceGroup = "HeliconZoo", ViewId = "tabHeliconZoo" },
|
||||
new Tab { Id = "errors", ResourceKey = "Tab.CustomErrors", Quota = Quotas.WEB_ERRORS, ViewId = "tabErrors" },
|
||||
new Tab { Id = "headers", ResourceKey = "Tab.CustomHeaders", Quota = Quotas.WEB_HEADERS, ViewId = "tabHeaders" },
|
||||
new Tab { Id = "webpub", ResourceKey = "Tab.WebDeployPublishing", Quota = Quotas.WEB_REMOTEMANAGEMENT, ViewId = "tabWebDeployPublishing" },
|
||||
|
@ -106,7 +107,6 @@ namespace WebsitePanel.Portal
|
|||
|
||||
private void BindTabs()
|
||||
{
|
||||
//
|
||||
var filteredTabs = TabsList.FilterTabsByHostingPlanQuotas(PackageId).ToList();
|
||||
|
||||
// remove "SSL" tab for a site with dynamic IP
|
||||
|
@ -114,6 +114,7 @@ namespace WebsitePanel.Portal
|
|||
if (!IsDedicatedIP && sslTab != null)
|
||||
filteredTabs.Remove(sslTab);
|
||||
|
||||
|
||||
var selectedValue = dlTabs.SelectedValue;
|
||||
|
||||
if (dlTabs.SelectedIndex == -1)
|
||||
|
@ -272,6 +273,7 @@ namespace WebsitePanel.Portal
|
|||
webSitesMimeTypesControl.BindWebItem(site);
|
||||
webSitesCustomHeadersControl.BindWebItem(site);
|
||||
webSitesCustomErrorsControl.BindWebItem(site);
|
||||
webSitesHeliconZooControl.BindWebItem(site);
|
||||
|
||||
if (site.IsDedicatedIP)
|
||||
{
|
||||
|
@ -889,6 +891,7 @@ namespace WebsitePanel.Portal
|
|||
webSitesMimeTypesControl.SaveWebItem(site);
|
||||
webSitesCustomHeadersControl.SaveWebItem(site);
|
||||
webSitesCustomErrorsControl.SaveWebItem(site);
|
||||
webSitesHeliconZooControl.SaveWebItem(site);
|
||||
|
||||
// update web site
|
||||
try
|
||||
|
|
|
@ -490,6 +490,24 @@ namespace WebsitePanel.Portal {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.WebSitesHeliconApeControl webSitesHeliconApeControl;
|
||||
|
||||
/// <summary>
|
||||
/// tabHeliconZoo 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.View tabHeliconZoo;
|
||||
|
||||
/// <summary>
|
||||
/// webSitesHeliconZooControl control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.WebSitesHeliconZooControl webSitesHeliconZooControl;
|
||||
|
||||
/// <summary>
|
||||
/// tabFrontPage control.
|
||||
/// </summary>
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebSitesHeliconZooControl.ascx.cs" Inherits="WebsitePanel.Portal.WebSitesHeliconZooControl" %>
|
||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||
|
||||
<%--
|
||||
<p class="NormalBold">Web engines allowed for this site:</p>
|
||||
<asp:Panel ID="AllowedEnginesPanel" runat="server">
|
||||
<asp:DataList ID="AllowedEnginesList" runat="server" RepeatColumns="1">
|
||||
<ItemTemplate>
|
||||
<div class="Quota">
|
||||
<%# Eval("DisplayName") %>
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
</asp:DataList>
|
||||
</asp:Panel>
|
||||
<br/>
|
||||
|
||||
<p class="NormalBold">Web engines enabled for this site:</p>
|
||||
<asp:Panel ID="EnabledEnginesPanel" runat="server">
|
||||
<asp:DataList ID="EnabledEnginesList" runat="server" RepeatColumns="1">
|
||||
<ItemTemplate>
|
||||
<div class="Quota">
|
||||
<%# Container.DataItem.ToString() %>
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
</asp:DataList>
|
||||
</asp:Panel>
|
||||
<br
|
||||
--%>
|
||||
|
||||
<p>
|
||||
<asp:Label runat="server" meta:resourcekey="SelectWebEngine" CssClass="NormalBold"></asp:Label>
|
||||
</p>
|
||||
<br />
|
||||
|
||||
<asp:GridView id="gvApplications" runat="server" AutoGenerateColumns="False" AllowPaging="true"
|
||||
ShowHeader="false" CssSelectorClass="LightGridView" EmptyDataText="gvApplications" OnRowCommand="gvApplications_RowCommand"
|
||||
OnPageIndexChanging="gvApplications_PageIndexChanging">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="gvApplicationsApplication">
|
||||
<ItemStyle HorizontalAlign="Center" />
|
||||
<ItemTemplate>
|
||||
<div style="text-align:center;">
|
||||
<%-- <asp:hyperlink NavigateUrl='<%# GetWebAppInstallUrl(Eval("Id").ToString()) %>'
|
||||
runat="server" ID="Hyperlink3" ToolTip='<%# Eval("Title") %>'>
|
||||
--%>
|
||||
<asp:Image runat="server" ID="Image1" Width="120" Height="120"
|
||||
ImageUrl='<%# GetIconUrlOrDefault((string)Eval("IconUrl")) %>'
|
||||
AlternateText='<%# Eval("Title") %>'>
|
||||
</asp:Image>
|
||||
<%-- </asp:hyperlink> --%>
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<div class="MediumBold" style="padding:4px;">
|
||||
<%-- <asp:hyperlink CssClass="MediumBold" NavigateUrl='<%# GetWebAppInstallUrl(Eval("Id").ToString()) %>'
|
||||
runat="server" ID="lnkAppDetails" ToolTip='<%# Eval("Title") %>'>
|
||||
--%>
|
||||
<span class="MediumBold"><%# Eval("Title")%></span>
|
||||
<%-- </asp:hyperlink> --%>
|
||||
</div>
|
||||
<div class="Normal" style="padding:4px;">
|
||||
<%# Eval("Summary") %>
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="gvApplicationsApplication">
|
||||
<ItemStyle HorizontalAlign="Center" />
|
||||
<ItemTemplate>
|
||||
<asp:Button ID="btnInstall" runat="server"
|
||||
Text='<%# GetLocalizedString("btnInstall.Text") %>' CssClass="Button1"
|
||||
CommandArgument='<%# Eval("Id") %>'
|
||||
CommandName="Install" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
|
|
@ -0,0 +1,199 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.Providers.HeliconZoo;
|
||||
using WebsitePanel.Providers.ResultObjects;
|
||||
using WebsitePanel.Providers.Web;
|
||||
using WebsitePanel.Providers.WebAppGallery;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public class ShortHeliconZooEngineComparer:IComparer<ShortHeliconZooEngine>
|
||||
{
|
||||
public int Compare(ShortHeliconZooEngine x, ShortHeliconZooEngine y)
|
||||
{
|
||||
return string.Compare(x.DisplayName, y.DisplayName, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class WebSitesHeliconZooControl : WebsitePanelControlBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
public void BindWebItem(WebSite site)
|
||||
{
|
||||
ViewState["WebSiteId"] = site.SiteId;
|
||||
ViewState["WebSitePackageId"] = site.PackageId;
|
||||
|
||||
BindEngines(site);
|
||||
BindApplications();
|
||||
}
|
||||
|
||||
private void BindEngines(WebSite site)
|
||||
{
|
||||
// get allowed engines for current hosting plan
|
||||
ShortHeliconZooEngine[] allowedEngineArray =
|
||||
ES.Services.HeliconZoo.GetAllowedHeliconZooQuotasForPackage(site.PackageId);
|
||||
Array.Sort(allowedEngineArray, new ShortHeliconZooEngineComparer());
|
||||
|
||||
// get enabled engines for this site
|
||||
string[] enabledEngineNames = ES.Services.HeliconZoo.GetEnabledEnginesForSite(site.SiteId, site.PackageId);
|
||||
ViewState["EnabledEnginesNames"] = enabledEngineNames;
|
||||
|
||||
//EnabledEnginesList.DataSource = enabledEngineNames;
|
||||
//EnabledEnginesList.DataBind();
|
||||
|
||||
|
||||
List<ShortHeliconZooEngine> allowedEngines = new List<ShortHeliconZooEngine>(allowedEngineArray);
|
||||
|
||||
foreach (ShortHeliconZooEngine engine in allowedEngines)
|
||||
{
|
||||
engine.Name = engine.Name.Replace("HeliconZoo.", "");
|
||||
engine.Enabled = enabledEngineNames.Contains(engine.Name, StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
ViewState["AllowedEngines"] = allowedEngines;
|
||||
|
||||
//AllowedEnginesList.DataSource = allowedEngines;
|
||||
//AllowedEnginesList.DataBind();
|
||||
}
|
||||
|
||||
private void BindApplications()
|
||||
{
|
||||
WebAppGalleryHelpers helper = new WebAppGalleryHelpers();
|
||||
GalleryApplicationsResult result = helper.GetGalleryApplications("ZooTemplate", PanelSecurity.PackageId);
|
||||
|
||||
List<GalleryApplication> applications = result.Value as List<GalleryApplication>;
|
||||
List<GalleryApplication> filteredApplications = new List<GalleryApplication>();
|
||||
|
||||
List<ShortHeliconZooEngine> allowedEngines = (List<ShortHeliconZooEngine>)ViewState["AllowedEngines"];
|
||||
if (null != allowedEngines)
|
||||
{
|
||||
foreach (GalleryApplication application in applications)
|
||||
{
|
||||
foreach (string keyword in application.Keywords)
|
||||
{
|
||||
if (keyword.StartsWith("ZooEngine", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
string appEngine = keyword.Substring("ZooEngine".Length);
|
||||
foreach (ShortHeliconZooEngine engine in allowedEngines)
|
||||
{
|
||||
if (string.Equals(appEngine, engine.KeywordedName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
filteredApplications.Add(application);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
filteredApplications.AddRange(applications);
|
||||
}
|
||||
|
||||
|
||||
gvApplications.DataSource = filteredApplications;
|
||||
gvApplications.DataBind();
|
||||
}
|
||||
|
||||
public void SaveWebItem(WebSite site)
|
||||
{
|
||||
UpdatedAllowedEngines();
|
||||
}
|
||||
|
||||
protected void gvApplications_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||
{
|
||||
if (e.CommandName == "Install")
|
||||
{
|
||||
UpdatedAllowedEngines();
|
||||
Response.Redirect(GetWebAppInstallUrl(e.CommandArgument.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdatedAllowedEngines()
|
||||
{
|
||||
List<ShortHeliconZooEngine> allowedEngines = (List<ShortHeliconZooEngine>)ViewState["AllowedEngines"];
|
||||
string[] enabledEngineNames = (string[])ViewState["EnabledEnginesNames"];
|
||||
|
||||
// check that all allowed engines are enabled
|
||||
bool allAllowedAreEnabled = true;
|
||||
|
||||
if (allowedEngines.Count != enabledEngineNames.Length)
|
||||
{
|
||||
allAllowedAreEnabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (ShortHeliconZooEngine allowedEngine in allowedEngines)
|
||||
{
|
||||
if (!enabledEngineNames.Contains(allowedEngine.Name, StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
allAllowedAreEnabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!allAllowedAreEnabled)
|
||||
{
|
||||
List<string> updateEnabledEngineNames = new List<string>();
|
||||
|
||||
// by default allow for site all engines allowed by hosting plan
|
||||
foreach (ShortHeliconZooEngine heliconZooEngine in allowedEngines)
|
||||
{
|
||||
updateEnabledEngineNames.Add(heliconZooEngine.Name);
|
||||
}
|
||||
|
||||
string siteId = ViewState["WebSiteId"] as string;
|
||||
int packageId = (int) ViewState["WebSitePackageId"];
|
||||
|
||||
ES.Services.HeliconZoo.SetEnabledEnginesForSite(siteId, packageId, updateEnabledEngineNames.ToArray());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void gvApplications_PageIndexChanging(object sender, GridViewPageEventArgs e)
|
||||
{
|
||||
gvApplications.PageIndex = e.NewPageIndex;
|
||||
// categorized app list
|
||||
BindApplications();
|
||||
}
|
||||
|
||||
protected string GetIconUrlOrDefault(string url)
|
||||
{
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
return "/App_Themes/Default/icons/sphere_128.png";
|
||||
}
|
||||
|
||||
return "~/DesktopModules/WebsitePanel/ResizeImage.ashx?width=120&height=120&url=" + Server.UrlEncode(url);
|
||||
}
|
||||
|
||||
protected string GetWebAppInstallUrl(string appId)
|
||||
{
|
||||
//http://localhost:9001/Default.aspx?pid=SpaceWebApplicationsGallery&mid=122&ctl=edit&ApplicationID=DotNetNuke&SpaceID=7
|
||||
|
||||
List<string> url = new List<string>();
|
||||
url.Add("pid=SpaceWebApplicationsGallery");
|
||||
url.Add("mid=122");
|
||||
url.Add("ctl=edit");
|
||||
url.Add("SpaceID="+PanelSecurity.PackageId.ToString(CultureInfo.InvariantCulture));
|
||||
url.Add("ApplicationID=" + appId);
|
||||
string siteId = ViewState["WebSiteId"] as string;
|
||||
if (!string.IsNullOrEmpty(siteId))
|
||||
{
|
||||
url.Add("SiteId="+siteId);
|
||||
}
|
||||
url.Add("ReturnUrl=" + Server.UrlEncode(Request.RawUrl));
|
||||
|
||||
return "~/Default.aspx?" + String.Join("&", url.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
// Copyright (c) 2012, 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.
|
||||
//
|
||||
// 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 WebSitesHeliconZooControl {
|
||||
|
||||
/// <summary>
|
||||
/// gvApplications control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView gvApplications;
|
||||
}
|
||||
}
|
|
@ -325,6 +325,13 @@
|
|||
<Compile Include="ProviderControls\CRM2011_Settings.ascx.designer.cs">
|
||||
<DependentUpon>CRM2011_Settings.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProviderControls\HeliconZoo_Settings.ascx.cs">
|
||||
<DependentUpon>HeliconZoo_Settings.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ProviderControls\HeliconZoo_Settings.ascx.designer.cs">
|
||||
<DependentUpon>HeliconZoo_Settings.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProviderControls\hMailServer5_EditAccount.ascx.cs">
|
||||
<DependentUpon>hMailServer5_EditAccount.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
|
@ -3725,6 +3732,13 @@
|
|||
<Compile Include="WebSitesEditHeliconApeUser.ascx.designer.cs">
|
||||
<DependentUpon>WebSitesEditHeliconApeUser.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WebSitesHeliconZooControl.ascx.cs">
|
||||
<DependentUpon>WebSitesHeliconZooControl.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WebSitesHeliconZooControl.ascx.designer.cs">
|
||||
<DependentUpon>WebSitesHeliconZooControl.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WebSitesEditWebFolder.ascx.cs">
|
||||
<DependentUpon>WebSitesEditWebFolder.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
|
@ -3831,6 +3845,7 @@
|
|||
<Content Include="ExchangeServer\ExchangeAddMailboxPlan.ascx" />
|
||||
<Content Include="Lync\UserControls\LyncUserSettings.ascx" />
|
||||
<Content Include="ProviderControls\CRM2011_Settings.ascx" />
|
||||
<Content Include="ProviderControls\HeliconZoo_Settings.ascx" />
|
||||
<Content Include="ServersEditWebPlatformInstaller.ascx" />
|
||||
<Content Include="ExchangeServer\ExchangeMailboxPlans.ascx" />
|
||||
<Content Include="ExchangeServer\UserControls\AccountsListWithPermissions.ascx" />
|
||||
|
@ -3915,6 +3930,7 @@
|
|||
<Content Include="UserControls\UserDetails.ascx" />
|
||||
<Content Include="UserControls\UserLookup.ascx" />
|
||||
<Content Include="UserControls\UsernameControl.ascx" />
|
||||
<Content Include="WebSitesHeliconZooControl.ascx" />
|
||||
<Content Include="WebsitesSSL.ascx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -4987,6 +5003,7 @@
|
|||
<Content Include="ExchangeServer\UserControls\App_LocalResources\UserTabs.ascx.resx" />
|
||||
<Content Include="App_LocalResources\SettingsExchangeMailboxPlansPolicy.ascx.resx" />
|
||||
<Content Include="App_LocalResources\SettingsLyncUserPlansPolicy.ascx.resx" />
|
||||
<Content Include="ProviderControls\App_LocalResources\HeliconZoo_Settings.ascx.resx" />
|
||||
<Content Include="ExchangeServer\App_LocalResources\OrganizationDomainNames.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
|
@ -4994,6 +5011,7 @@
|
|||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<None Include="Resources\Windows2008_Settings.ascx.resx" />
|
||||
<Content Include="App_LocalResources\WebSitesHeliconZooControl.ascx.resx" />
|
||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue