diff --git a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js index 715f795b71..e3f86a4b14 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js @@ -71,31 +71,6 @@ angular.module('umbraco.services') return deferred.promise; }, - /** Internal method. This is used after installing a package to reload the application assets so we don't have to reload the whole window */ - _reloadApplicationAssets: function() { - - var deferred = $q.defer(); - - umbRequestHelper.resourcePromise( - $http.get(umbRequestHelper.getApiUrl("manifestAssetList", "", "")), - 'Failed to get manifest list').then(function(data) { - - //ok so we have the list of assets, now we'll use yepnope to go get them. Anything that is already loaded should remain loaded - // and this should just load anything that is newly installed. - - yepnope({ - load: data, - complete: function () { - //resolve the promise - deferred.resolve(data); - } - }); - - }); - - return deferred.promise; - }, - /** * @ngdoc method * @name umbraco.services.assetsService#loadCss diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 4bdd618fa2..e68642c61f 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -616,6 +616,7 @@ treeInit.aspx + diff --git a/src/Umbraco.Web.UI/umbraco/ClientRedirect.aspx b/src/Umbraco.Web.UI/umbraco/ClientRedirect.aspx new file mode 100644 index 0000000000..fd9c5182f2 --- /dev/null +++ b/src/Umbraco.Web.UI/umbraco/ClientRedirect.aspx @@ -0,0 +1,23 @@ +<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %> +<%-- + This page is required because we cannot reload the angular app with a changed Hash since it just detects the hash and doesn't reload. + So this is used purely for a full reload of an angular app with a changed hash. +--%> + + + + Redirecting... + + + + Redirecting... + + diff --git a/src/Umbraco.Web.UI/umbraco/developer/Packages/installer.aspx b/src/Umbraco.Web.UI/umbraco/developer/Packages/installer.aspx index 6c7cbe7038..88750a011d 100644 --- a/src/Umbraco.Web.UI/umbraco/developer/Packages/installer.aspx +++ b/src/Umbraco.Web.UI/umbraco/developer/Packages/installer.aspx @@ -1,6 +1,7 @@ -<%@ Page Language="c#" MasterPageFile="../../masterpages/umbracoPage.Master" CodeBehind="installer.aspx.cs" +<%@ Page Language="c#" MasterPageFile="../../masterpages/umbracoPage.Master" AutoEventWireup="True" Inherits="umbraco.presentation.developer.packages.Installer" Trace="false" ValidateRequest="false" %> +<%@ Import Namespace="umbraco" %> <%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %> @@ -261,11 +262,8 @@ - <%--This is a hack to fix this currently until we can replace the installer with a native angular editor - http://issues.umbraco.org/issue/U4-4011 - --%>

@@ -282,6 +280,35 @@ + + + +

+ Please wait while the browser is reloaded... +
+ + +
+
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 a192176fda..c91cb1c030 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 @@ -36,6 +36,8 @@ namespace umbraco.presentation.developer.packages private readonly cms.businesslogic.packager.Installer _installer = new cms.businesslogic.packager.Installer(); private string _tempFileName = ""; + protected string RefreshQueryString { get; set; } + protected void Page_Load(object sender, EventArgs e) { var ex = new Exception(); @@ -234,7 +236,7 @@ namespace umbraco.presentation.developer.packages } else { - Response.Redirect("installer.aspx?installing=finished&dir=" + dir + "&pId=" + packageId.ToString() + "&customUrl=" + Server.UrlEncode(_installer.Url)); + Response.Redirect("installer.aspx?installing=refresh&dir=" + dir + "&pId=" + packageId.ToString() + "&customUrl=" + Server.UrlEncode(_installer.Url)); } break; case "customInstaller": @@ -261,9 +263,12 @@ 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 - PerformFinishedAction(packageId, dir, Request.GetItemAsString("customUrl")); + PerformRefreshAction(packageId, dir, Request.GetItemAsString("customUrl")); } break; + case "refresh": + PerformRefreshAction(packageId, dir, Request.GetItemAsString("customUrl")); + break; case "finished": PerformFinishedAction(packageId, dir, Request.GetItemAsString("customUrl")); break; @@ -295,6 +300,39 @@ namespace umbraco.presentation.developer.packages PerformPostInstallCleanup(packageId, dir); } + /// + /// Perform the 'Refresh' action of the installer + /// + /// + /// + /// + private void PerformRefreshAction(int packageId, string dir, string url) + { + 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( + "installing=finished&dir={0}&pId={1}&customUrl={2}", + dir, packageId, url)); + + pane_refresh.Visible = true; + + PerformPostInstallCleanup(packageId, dir); + } + + /// + /// Runs Post refresh actions such reloading the correct tree nodes, etc... + /// + private void PerformPostRefreshAction() + { + BasePage.Current.ClientTools.ReloadActionNode(true, true); + } + /// /// Runs Post install actions such as clearning any necessary cache, reloading the correct tree nodes, etc... /// @@ -302,9 +340,8 @@ namespace umbraco.presentation.developer.packages /// private void PerformPostInstallCleanup(int packageId, string dir) { - BasePage.Current.ClientTools.ReloadActionNode(true, true); _installer.InstallCleanUp(packageId, dir); - //clear the tree cache + //clear the tree cache - we'll do this here even though the browser will reload, but just in case it doesn't can't hurt. ClientTools.ClearClientTreeCache().RefreshTree("packager"); TreeDefinitionCollection.Instance.ReRegisterTrees(); BizLogicAction.ReRegisterActionsAndHandlers(); @@ -339,6 +376,7 @@ namespace umbraco.presentation.developer.packages pane_installing.Visible = false; pane_optional.Visible = false; pane_success.Visible = false; + pane_refresh.Visible = false; pane_upload.Visible = false; } @@ -724,6 +762,8 @@ namespace umbraco.presentation.developer.packages /// protected global::umbraco.uicontrols.Pane pane_success; + protected global::umbraco.uicontrols.Pane pane_refresh; + /// /// bt_viewInstalledPackage control. ///