From b16ce1b4babd9cd59d5797eafe31f4c96fb8149b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= <danxuliu@gmail.com>
Date: Fri, 4 Aug 2017 14:41:44 +0200
Subject: [PATCH] Fix preview of theming
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pull request #5429 made cached SCSS files depend on a hash of the base
URL, so the "/css/core/server.css" file does no longer exist; as the
file can not be loaded the "Loading preview" message is never removed
and the "Saved" message is never shown.

As it now depends on the hash of the base URL the file to be reloaded
can no longer be hardcoded, so the full URL to the "server.css" file
that has to be reloaded (if any) is now got from the DataResponse
provided by the controller.

Fixes #5975

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
---
 apps/theming/js/settings-admin.js | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js
index 9d8e706e124..d9e66284d14 100644
--- a/apps/theming/js/settings-admin.js
+++ b/apps/theming/js/settings-admin.js
@@ -30,7 +30,7 @@ function setThemingValue(setting, value) {
 		OC.generateUrl('/apps/theming/ajax/updateStylesheet'), {'setting' : setting, 'value' : value}
 	).done(function(response) {
 		hideUndoButton(setting, value);
-		preview(setting, value);
+		preview(setting, value, response.data.serverCssUrl);
 	}).fail(function(response) {
 		OC.msg.finishedSaving('#theming_settings_msg', response);
 		$('#theming_settings_loading').hide();
@@ -38,9 +38,9 @@ function setThemingValue(setting, value) {
 
 }
 
-function preview(setting, value) {
+function preview(setting, value, serverCssUrl) {
 	OC.msg.startAction('#theming_settings_msg', t('theming', 'Loading preview…'));
-	var stylesheetsLoaded = 2;
+	var stylesheetsLoaded = 1;
 	var reloadStylesheets = function(cssFile) {
 		var queryString = '?reload=' + new Date().getTime();
 		var url = cssFile + queryString;
@@ -62,7 +62,11 @@ function preview(setting, value) {
 		stylesheet.appendTo("head");
 	};
 
-	reloadStylesheets(OC.generateUrl('/css/core/server.css'));
+	if (serverCssUrl !== undefined) {
+		stylesheetsLoaded++;
+
+		reloadStylesheets(serverCssUrl);
+	}
 	reloadStylesheets(OC.generateUrl('/apps/theming/styles'));
 
 	// Preview images
@@ -218,7 +222,7 @@ $(document).ready(function () {
 				var input = document.getElementById('theming-'+setting);
 				input.value = response.data.value;
 			}
-			preview(setting, response.data.value);
+			preview(setting, response.data.value, response.data.serverCssUrl);
 		});
 	});
 
-- 
GitLab