From cf9cf089478d5713e83339e02d4164efaa30ed28 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 19 Dec 2017 12:35:22 +0100 Subject: [locationinfo] Fix infinite reload loop --- .../locationinfo/templates/frontend-summary.html | 32 ++++++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'modules-available/locationinfo/templates') diff --git a/modules-available/locationinfo/templates/frontend-summary.html b/modules-available/locationinfo/templates/frontend-summary.html index ec5d8aab..4105dd16 100644 --- a/modules-available/locationinfo/templates/frontend-summary.html +++ b/modules-available/locationinfo/templates/frontend-summary.html @@ -226,8 +226,8 @@ queryRooms(); nextUpdate = 1000; } - for (property in rooms) { - upDateRoomState(rooms[property]); + if (nextUpdate !== 1000) { + queryPanelChange(); } clearTimeout(timeout); setTimeout(update, nextUpdate); @@ -267,7 +267,9 @@ } ComputeCurrentState(rooms[json[i].id]); } - update(); + for (property in rooms) { + upDateRoomState(rooms[property]); + } } /** @@ -765,6 +767,30 @@ }); } + /** + * Checks whether the panel has been edited and reloads + * the entire page if so. + */ + function queryPanelChange() { + $.ajax({ + url: "{{dirprefix}}api.php?do=locationinfo&get=timestamp&uuid={{uuid}}", + dataType: 'json', + cache: false, + timeout: 5000, + success: function (result) { + if (!result || !result.ts) { + console.log('Warning: get=timestamp didnt return json with ts field'); + return; + } + if (config.ts && config.ts !== result.ts) { + // Change + window.location.reload(true); + } + config.ts = result.ts; + } + }) + } + -- cgit v1.2.3-55-g7522