From 1b9844968636703aca40d84c3da565d98ec41634 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 25 May 2017 15:16:55 -0400 Subject: [PATCH] closes #5704 --- .../language/en-GB/admin/appearance/customise.json | 5 ++++- public/src/admin/appearance/customise.js | 6 ++++++ public/src/app.js | 5 +++++ src/socket.io/admin.js | 5 +++++ src/views/admin/appearance/customise.tpl | 13 +++++++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/public/language/en-GB/admin/appearance/customise.json b/public/language/en-GB/admin/appearance/customise.json index 767d443e29..5095f7a937 100644 --- a/public/language/en-GB/admin/appearance/customise.json +++ b/public/language/en-GB/admin/appearance/customise.json @@ -5,5 +5,8 @@ "custom-header": "Custom Header", "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", - "custom-header.enable": "Enable Custom Header" + "custom-header.enable": "Enable Custom Header", + + "custom-css.livereload": "Enable Live Reload", + "custom-css.livereload.description": "Enable this to force all sessions on every device under your account to refresh whenever you click save" } \ No newline at end of file diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index 268d8480af..e95ea5ba30 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -28,6 +28,12 @@ define('admin/appearance/customise', ['admin/settings', 'ace/ace'], function (Se app.flags._unsaved = true; $('#customHTML-holder').val(customHTML.getValue()); }); + + $('#save').on('click', function () { + if ($('#enableLiveReload').is(':checked')) { + socket.emit('admin.reloadAllSessions'); + } + }); }); }; diff --git a/public/src/app.js b/public/src/app.js index 81ebe4f891..0308a4b73c 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -72,6 +72,11 @@ app.cacheBuster = null; }); } }); + socket.on('event:livereload', function (data) { + if (app.user.isAdmin && !ajaxify.currentPage.match(/admin/)) { + window.location.reload(); + } + }); require(['taskbar', 'helpers', 'forum/pagination'], function (taskbar, helpers, pagination) { taskbar.init(); diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index f1bc4f2871..b63b099815 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -13,6 +13,7 @@ var events = require('../events'); var emailer = require('../emailer'); var db = require('../database'); var analytics = require('../analytics'); +var websockets = require('../socket.io/index'); var index = require('./index'); var getAdminSearchDict = require('../admin/search').getDictionary; @@ -278,5 +279,9 @@ SocketAdmin.deleteAllSessions = function (socket, data, callback) { user.auth.deleteAllSessions(callback); }; +SocketAdmin.reloadAllSessions = function (socket, data, callback) { + websockets.in('uid_' + socket.uid).emit('event:livereload'); + callback(); +}; module.exports = SocketAdmin; diff --git a/src/views/admin/appearance/customise.tpl b/src/views/admin/appearance/customise.tpl index f2fdbcea60..b2d1307b80 100644 --- a/src/views/admin/appearance/customise.tpl +++ b/src/views/admin/appearance/customise.tpl @@ -22,6 +22,7 @@ +

[[admin/appearance/customise:custom-header.description]] @@ -40,6 +41,18 @@

+ +
+
+ +
+