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.
///