From f34d319b0c9f7b1c2db8abb1737e278fbac363e3 Mon Sep 17 00:00:00 2001 From: jmoenig Date: Fri, 22 Mar 2013 12:07:54 +0100 Subject: [PATCH] Cloud: Dynamic fallback msg support before popping up an error dialog, the GUI can check another URL for an explanation about server downtimes etc., --- gui.js | 25 ++++++++++++++++++++++++- history.txt | 3 ++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/gui.js b/gui.js index 4ecb6432..b5fcd2bb 100644 --- a/gui.js +++ b/gui.js @@ -3180,8 +3180,31 @@ IDE_Morph.prototype.cloudResponse = function () { IDE_Morph.prototype.cloudError = function () { var myself = this; + + function getURL(url) { + try { + var request = new XMLHttpRequest(); + request.open('GET', url, false); + request.send(); + if (request.status === 200) { + return request.responseText; + } + return null; + } catch (err) { + return null; + } + } + return function (responseText, url) { - var response = responseText; + // first, try to find out an explanation for the error + // and notify the user about it, + // if none is found, show an error dialog box + var response = responseText, + explanation = getURL('http://snap.berkeley.edu/cloudmsg.txt'); + if (explanation) { + myself.showMessage(explanation); + return; + } if (response.length > 50) { response = response.substring(0, 50) + '...'; } diff --git a/history.txt b/history.txt index ef221fdd..b3445c4e 100755 --- a/history.txt +++ b/history.txt @@ -1557,4 +1557,5 @@ ______ * Blocks, GUI: "Zoom blocks…" feature in the settings menu (no longer hidden) * Objects: numeric prompters for watcher's sliderMin/Max * translation updates -* Objects: 'pic...' screenshot feature for the stage \ No newline at end of file +* Objects: 'pic…' screenshot feature for the stage +* GUI, Cloud: Fallback message support before showing an error \ No newline at end of file