-
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.cs
index 9fe39c8f..f9761a23 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.cs
@@ -99,14 +99,14 @@ namespace WebsitePanel.Portal
// load package context
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
- if ((type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted)) && !IsPostBack)
+ if ((type == DomainType.DomainPointer || (type == DomainType.Domain)) && !IsPostBack)
{
// bind web sites
WebSitesList.DataSource = ES.Services.WebServers.GetWebSites(PanelSecurity.PackageId, false);
WebSitesList.DataBind();
}
- if ((type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted)) && !IsPostBack)
+ if ((type == DomainType.DomainPointer || (type == DomainType.Domain)) && !IsPostBack)
{
// bind mail domains
MailDomainsList.DataSource = ES.Services.MailServers.GetMailDomains(PanelSecurity.PackageId, false);
@@ -130,12 +130,12 @@ namespace WebsitePanel.Portal
}
// point Web site
- PointWebSitePanel.Visible = (type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted))
+ PointWebSitePanel.Visible = (type == DomainType.DomainPointer || (type == DomainType.Domain))
&& cntx.Groups.ContainsKey(ResourceGroups.Web) && WebSitesList.Items.Count > 0;
WebSitesList.Enabled = PointWebSite.Checked;
// point mail domain
- PointMailDomainPanel.Visible = (type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted))
+ PointMailDomainPanel.Visible = (type == DomainType.DomainPointer || (type == DomainType.Domain))
&& cntx.Groups.ContainsKey(ResourceGroups.Mail) && MailDomainsList.Items.Count > 0;
MailDomainsList.Enabled = PointMailDomain.Checked;
@@ -205,14 +205,14 @@ namespace WebsitePanel.Portal
// load package context
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
- if (type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted))
+ if (type == DomainType.DomainPointer || (type == DomainType.Domain))
{
if (PointWebSite.Checked && WebSitesList.Items.Count > 0)
pointWebSiteId = Utils.ParseInt(WebSitesList.SelectedValue, 0);
}
- if (type == DomainType.DomainPointer || (type == DomainType.Domain && !cntx.Quotas[Quotas.OS_DOMAINPOINTERS].QuotaExhausted))
+ if (type == DomainType.DomainPointer || (type == DomainType.Domain))
{
if (PointMailDomain.Checked && MailDomainsList.Items.Count > 0)
pointMailDomainId = Utils.ParseInt(MailDomainsList.SelectedValue, 0);
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.designer.cs
index da29aa39..835fabf2 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsAddDomain.ascx.designer.cs
@@ -1,4 +1,4 @@
-// Copyright (c) 2011, Outercurve Foundation.
+// Copyright (c) 2012, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Login.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Login.ascx.cs
index 9d55c534..8fae6190 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Login.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Login.ascx.cs
@@ -151,6 +151,9 @@ namespace WebsitePanel.Portal
ddlTheme.Visible = false;
lblTheme.Visible = false;
}
+
+ // set focus on username field
+ txtUsername.Focus();
}
protected void cmdForgotPassword_Click(object sender, EventArgs e)
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IIS70_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IIS70_Settings.ascx.resx
index 7e0ca9e5..8c517294 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IIS70_Settings.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IIS70_Settings.ascx.resx
@@ -202,7 +202,11 @@
.htaccess
- Helicon Ape product provides .htaccess and .htpasswd files support on IIS 7+ and includes all major Apache modules. Note that Helicon Ape is not yet installed on the server. <br/><br/>Please <a href="http://www.helicontech.com/ape/doc/wsp_install.htm" target="_blank">download and install</a> Helicon Ape to activate this feature.
+ Helicon Ape provides .htaccess and .htpasswd files support and includes all major Apache modules.
+ This is essential tool to fine-tune IIS web sites, improve performance, security,
+ search engines rankings and for compatibility with many open source applications.
+ <br/>
+ Click on the link below to install Helicon Ape on the server:
Module Assembly:
@@ -252,4 +256,7 @@
Web Sites Public Shared Address:
+
+ Register Helicon Ape module globally:
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx
index b96c38f1..f6ad5853 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx
@@ -427,6 +427,8 @@
+
+
|
@@ -458,9 +460,18 @@
|
+ Text="Edit httpd.conf (server config)" onclick="EditHeliconApeConfButton_Click" />
+
+
+
+ Register Helicon Ape module globally:
+ |
+
+
+ (Uncheck this box to enable managing Helicon Ape using hosting plan policies.)
+ |
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.cs
index 3f455aae..c414927e 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.cs
@@ -150,17 +150,36 @@ namespace WebsitePanel.Portal.ProviderControls
txtSecureFoldersModuleAsm.Text = settings["SecureFoldersModuleAssembly"];
//Helicon Ape
- WebsitePanel.Providers.ResultObjects.HeliconApeStatus sts = ES.Services.WebServers.GetHeliconApeStatus(int.Parse(Request.QueryString["ServiceID"]));
+ Providers.ResultObjects.HeliconApeStatus sts = ES.Services.WebServers.GetHeliconApeStatus(int.Parse(Request.QueryString["ServiceID"]));
if (sts.IsInstalled)
{
downloadApePanel.Visible = false;
txtHeliconApeVersion.Text = sts.Version;
lblHeliconRegistrationText.Text = sts.RegistrationInfo;
+
+ if (sts.IsEnabled)
+ {
+ chkHeliconApeGlobalRegistration.Checked = true;
+ }
+ ViewState["HeliconApeInitiallyEnabled"] = chkHeliconApeGlobalRegistration.Checked;
}
else
{
configureApePanel.Visible = false;
+
+ // Build url manually, EditUrl throws exception: module is Null
+ // pid=Servers&mid=137&ctl=edit_platforminstaller&ServerID=1&Product=HeliconApe
+
+ List qsParts= new List();
+
+ qsParts.Add("pid=Servers");
+ qsParts.Add("ctl=edit_platforminstaller");
+ qsParts.Add("mid=" + Request.QueryString["mid"]);
+ qsParts.Add("ServerID=" + Request.QueryString["ServerID"]);
+ qsParts.Add("WPIProduct=HeliconApe");
+
+ InstallHeliconApeLink.Attributes["href"] = "Default.aspx?" + String.Join("&", qsParts.ToArray());
}
//
@@ -254,6 +273,19 @@ namespace WebsitePanel.Portal.ProviderControls
ActiveDirectoryIntegration.SaveSettings(settings);
+ // Helicon Ape
+ bool registerHeliconApeGlobbally = chkHeliconApeGlobalRegistration.Checked;
+ if (registerHeliconApeGlobbally != (bool)ViewState["HeliconApeInitiallyEnabled"])
+ {
+ if (registerHeliconApeGlobbally)
+ {
+ ES.Services.WebServers.EnableHeliconApeGlobally(int.Parse(Request.QueryString["ServiceID"]));
+ }
+ else
+ {
+ ES.Services.WebServers.DisableHeliconApeGlobally(int.Parse(Request.QueryString["ServiceID"]));
+ }
+ }
@@ -279,6 +311,7 @@ namespace WebsitePanel.Portal.ProviderControls
settings["GalleryAppsAlwaysIgnoreDependencies"] = chkGalleryAppsAlwaysIgnoreDependencies.Checked.ToString();
}
+ /*
protected void DownladAndIstallApeLinkButton_Click(object sender, EventArgs e)
{
ES.Services.WebServers.InstallHeliconApe(PanelRequest.ServiceId);
@@ -286,6 +319,7 @@ namespace WebsitePanel.Portal.ProviderControls
//Redirect to avoid 2-nd call
Response.Redirect(this.Context.Request.Url.AbsoluteUri);
}
+ */
public string GetHttpdEditControlUrl(string ctrlKey, string name)
{
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.designer.cs
index a61aab10..0b38c608 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IIS70_Settings.ascx.designer.cs
@@ -669,6 +669,15 @@ namespace WebsitePanel.Portal.ProviderControls {
///
protected global::System.Web.UI.WebControls.Localize Localize1;
+ ///
+ /// InstallHeliconApeLink control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton InstallHeliconApeLink;
+
///
/// configureApePanel control.
///
@@ -732,6 +741,15 @@ namespace WebsitePanel.Portal.ProviderControls {
///
protected global::System.Web.UI.WebControls.Button EditHeliconApeConfButton;
+ ///
+ /// chkHeliconApeGlobalRegistration control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.CheckBox chkHeliconApeGlobalRegistration;
+
///
/// secOther control.
///
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditWebPlatformInstaller.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditWebPlatformInstaller.ascx.cs
index 8dc2f27c..3987a1b5 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditWebPlatformInstaller.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditWebPlatformInstaller.ascx.cs
@@ -108,6 +108,16 @@ namespace WebsitePanel.Portal
ShowProgressPanel();
}
+ string gotoProduct = Request.QueryString["WPIProduct"];
+ if (!string.IsNullOrEmpty(gotoProduct))
+ {
+ ArrayList wpiProductsForInstall = GetProductsToInstallList();
+ wpiProductsForInstall.Add(gotoProduct);
+ SetProductsToInstallList(wpiProductsForInstall);
+
+ btnInstall_Click(sender, e);
+ }
+
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesHeliconApeControl.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesHeliconApeControl.ascx.cs
index 9477c381..d56ffa5f 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesHeliconApeControl.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesHeliconApeControl.ascx.cs
@@ -38,23 +38,12 @@ using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.Providers.Web;
+using WebsitePanel.Providers.ResultObjects;
namespace WebsitePanel.Portal
{
public partial class WebSitesHeliconApeControl : WebsitePanelControlBase
{
- private bool IsHeliconApeInstalled
- {
- get { return ViewState["IsHeliconApeInstalled"] != null ? (bool)ViewState["IsHeliconApeInstalled"] : false; }
- set { ViewState["IsHeliconApeInstalled"] = value; }
- }
-
- private bool IsHeliconApeEnabled
- {
- get { return ViewState["IsHeliconApeEnabled"] != null ? (bool)ViewState["IsHeliconApeEnabled"] : false; }
- set { ViewState["IsHeliconApeEnabled"] = value; }
-
- }
private bool IsSecuredFoldersInstalled
{
@@ -62,9 +51,16 @@ namespace WebsitePanel.Portal
set { ViewState["IsSecuredFoldersInstalled"] = value; }
}
+ private HeliconApeStatus HeliconApeStatus
+ {
+ get { return (HeliconApeStatus)ViewState["HeliconApeStatus"]; }
+ set { ViewState["HeliconApeStatus"] = value; }
+
+ }
+
protected void Page_Load(object sender, EventArgs e)
{
- if (IsHeliconApeInstalled)
+ if (HeliconApeStatus.IsInstalled)
{
if (!IsPostBack)
{
@@ -90,12 +86,12 @@ namespace WebsitePanel.Portal
public void BindHeliconApe(WebSite site)
{
// save initial state
- IsHeliconApeInstalled = site.HeliconApeInstalled;
- IsHeliconApeEnabled = site.HeliconApeEnabled;
- IsSecuredFoldersInstalled = site.SecuredFoldersInstalled;
-
+ this.IsSecuredFoldersInstalled = site.SecuredFoldersInstalled;
+ this.HeliconApeStatus = site.HeliconApeStatus;
+
+
// Render a warning message about the automatic site's settings change
- if (!IsHeliconApeEnabled && site.IIs7)
+ if (!HeliconApeStatus.IsEnabled && site.IIs7)
{
// Ensure the message is displayed only when neccessary
if (site.EnableWindowsAuthentication || !site.AspNetInstalled.EndsWith("I") || site.SecuredFoldersInstalled)
@@ -113,11 +109,21 @@ namespace WebsitePanel.Portal
private void ToggleControls()
{
- if (IsHeliconApeInstalled)
+ if (HeliconApeStatus.IsInstalled)
{
+ bool IsHeliconApeEnabled = HeliconApeStatus.IsEnabled;
+
// toggle button
- btnToggleHeliconApe.Text = GetLocalizedString(
- IsHeliconApeEnabled ? "DisableHeliconApe.Text" : "EnableHeliconApe.Text");
+ if (IsHeliconApeEnabled)
+ {
+ btnToggleHeliconApe.Text = GetLocalizedString("DisableHeliconApe.Text");
+ }
+ else
+ {
+ btnToggleHeliconApe.Text = GetLocalizedString("EnableHeliconApe.Text");
+ }
+
+
// toggle panels
HeliconApeFoldersPanel.Visible = IsHeliconApeEnabled;
@@ -165,7 +171,7 @@ namespace WebsitePanel.Portal
try
{
int result = 0;
- if (IsHeliconApeEnabled)
+ if (HeliconApeStatus.IsEnabled)
{
// uninstall folders
result = ES.Services.WebServers.DisableHeliconApe(PanelRequest.ItemID);
@@ -189,7 +195,10 @@ namespace WebsitePanel.Portal
}
// change state
- IsHeliconApeEnabled = !IsHeliconApeEnabled;
+ HeliconApeStatus status = HeliconApeStatus;
+ status.IsEnabled = !status.IsEnabled;
+
+ HeliconApeStatus = status;
// bind items
ToggleControls();