diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs index f55588ea..30ba4d9f 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs @@ -30,6 +30,7 @@ using System; using System.ComponentModel; using System.Collections.Generic; using System.Collections.Specialized; +using WebsitePanel.Providers.ResultObjects; namespace WebsitePanel.Providers.Web { @@ -61,6 +62,7 @@ namespace WebsitePanel.Providers.Web private bool securedFoldersInstalled; private bool heliconApeInstalled; private bool heliconApeEnabled; + private HeliconApeStatus heliconApeStatus; public WebSite() { @@ -179,6 +181,12 @@ namespace WebsitePanel.Providers.Web get { return this.heliconApeEnabled; } set { this.heliconApeEnabled = value; } } + + public HeliconApeStatus HeliconApeStatus + { + get { return this.heliconApeStatus; } + set { this.heliconApeStatus = value; } + } } [Flags] diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs index 0a184b1c..6c8b2f4e 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs @@ -1165,6 +1165,7 @@ namespace WebsitePanel.Providers.Web HeliconApeStatus heliconApeStatus = GetHeliconApeStatus(srvman, siteId); site.HeliconApeInstalled = heliconApeStatus.IsInstalled; site.HeliconApeEnabled = heliconApeStatus.IsEnabled; + site.HeliconApeStatus = heliconApeStatus; // site.SiteState = GetSiteState(srvman, siteId); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesHeliconApeControl.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesHeliconApeControl.ascx.resx index 7f5f0f01..7372c79d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesHeliconApeControl.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesHeliconApeControl.ascx.resx @@ -132,6 +132,9 @@ Enable Helicon Ape + + Enable Helicon Ape (45 days trial) + Click "Add Folder" button to add .htaccess folder 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();