diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs index c91cb1c030..a429f3018f 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs @@ -3,6 +3,7 @@ using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Globalization; using System.Threading; using System.Web; using System.Web.SessionState; @@ -96,7 +97,7 @@ namespace umbraco.presentation.developer.packages else { fb.Style.Add("margin-top", "7px"); - fb.type = global::umbraco.uicontrols.Feedback.feedbacktype.error; + fb.type = uicontrols.Feedback.feedbacktype.error; fb.Text = "No connection to repository. Runway could not be installed as there was no connection to: '" + _repo.RepositoryUrl + "'"; pane_upload.Visible = false; } @@ -109,7 +110,7 @@ namespace umbraco.presentation.developer.packages acceptCheckbox.Attributes.Add("onmouseup", "document.getElementById('" + ButtonInstall.ClientID + "').disabled = false;"); } - protected void uploadFile(object sender, System.EventArgs e) + protected void uploadFile(object sender, EventArgs e) { try { @@ -133,7 +134,7 @@ namespace umbraco.presentation.developer.packages string memberGuid = _repo.Webservice.authenticate(tb_email.Text, library.md5(tb_password.Text)); //if we auth correctly and get a valid key back, we will fetch the file from the repo webservice. - if (!string.IsNullOrEmpty(memberGuid)) + if (string.IsNullOrEmpty(memberGuid) == false) { tempFile.Value = _installer.Import(_repo.fetch(helper.Request("guid"), memberGuid)); UpdateSettings(); @@ -230,9 +231,9 @@ namespace umbraco.presentation.developer.packages //making sure that publishing actions performed from the cms layer gets pushed to the presentation library.RefreshContent(); - if (!string.IsNullOrEmpty(_installer.Control)) + if (string.IsNullOrEmpty(_installer.Control) == false) { - Response.Redirect("installer.aspx?installing=customInstaller&dir=" + dir + "&pId=" + packageId.ToString() + "&customControl=" + Server.UrlEncode(_installer.Control) + "&customUrl=" + Server.UrlEncode(_installer.Url)); + Response.Redirect("installer.aspx?installing=refresh&dir=" + dir + "&pId=" + packageId.ToString() + "&customControl=" + Server.UrlEncode(_installer.Control) + "&customUrl=" + Server.UrlEncode(_installer.Url)); } else { @@ -242,11 +243,11 @@ namespace umbraco.presentation.developer.packages case "customInstaller": var customControl = Request.GetItemAsString("customControl"); - if (!customControl.IsNullOrWhiteSpace()) + if (customControl.IsNullOrWhiteSpace() == false) { HideAllPanes(); - _configControl = new System.Web.UI.UserControl().LoadControl(SystemDirectories.Root + customControl); + _configControl = LoadControl(SystemDirectories.Root + customControl); _configControl.ID = "packagerConfigControl"; pane_optional.Controls.Add(_configControl); @@ -263,11 +264,11 @@ namespace umbraco.presentation.developer.packages { //if the custom installer control is empty here (though it should never be because we've already checked for it previously) //then we should run the normal FinishedAction - PerformRefreshAction(packageId, dir, Request.GetItemAsString("customUrl")); + PerformFinishedAction(packageId, dir, Request.GetItemAsString("customUrl")); } break; case "refresh": - PerformRefreshAction(packageId, dir, Request.GetItemAsString("customUrl")); + PerformRefreshAction(packageId, dir, Request.GetItemAsString("customUrl"), Request.GetItemAsString("customControl")); break; case "finished": PerformFinishedAction(packageId, dir, Request.GetItemAsString("customUrl")); @@ -287,7 +288,7 @@ namespace umbraco.presentation.developer.packages { HideAllPanes(); //string url = _installer.Url; - string packageViewUrl = "installedPackage.aspx?id=" + packageId.ToString(); + string packageViewUrl = "installedPackage.aspx?id=" + packageId.ToString(CultureInfo.InvariantCulture); bt_viewInstalledPackage.OnClientClick = "document.location = '" + packageViewUrl + "'; return false;"; @@ -306,19 +307,29 @@ namespace umbraco.presentation.developer.packages /// /// /// - private void PerformRefreshAction(int packageId, string dir, string url) + /// + private void PerformRefreshAction(int packageId, string dir, string url, string customControl) { HideAllPanes(); - + //create the URL to refresh to // /umbraco/developer/packages/installer.aspx?installing=finished // &dir=X:\Projects\Umbraco\Umbraco_7.0\src\Umbraco.Web.UI\App_Data\aef8c41f-63a0-494b-a1e2-10d761647033 // &pId=3 // &customUrl=http:%2f%2four.umbraco.org%2fprojects%2fwebsite-utilities%2fmerchello - RefreshQueryString = Server.UrlEncode(string.Format( + if (customControl.IsNullOrWhiteSpace()) + { + RefreshQueryString = Server.UrlEncode(string.Format( "installing=finished&dir={0}&pId={1}&customUrl={2}", dir, packageId, url)); + } + else + { + RefreshQueryString = Server.UrlEncode(string.Format( + "installing=customInstaller&dir={0}&pId={1}&customUrl={2}&customControl={3}", + dir, packageId, url, customControl)); + } pane_refresh.Visible = true;