From 1373923758b617d84c48d1b48d7644c5036e804a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Mon, 4 Sep 2017 13:35:07 +0200 Subject: [PATCH] Moving UI strings to javascript --- code/espurna/data/index.html.gz | Bin 70628 -> 70849 bytes code/espurna/nofuss.ino | 2 +- code/espurna/ota.ino | 2 +- code/espurna/static/index.html.gz.h | 1885 ++++++++++++++------------- code/espurna/web.ino | 16 +- code/html/custom.js | 26 +- 6 files changed, 980 insertions(+), 951 deletions(-) diff --git a/code/espurna/data/index.html.gz b/code/espurna/data/index.html.gz index 1445ca4d7840319643d4ca0ce1062aba0d3b6183..6ab74e44dc3537ab852e7919842a4c2312f16e2b 100644 GIT binary patch delta 18386 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, PSTR("{\"message\": \"Session expired, please reload page...\"}")); + wsSend_P(client->id(), PSTR("{\"message\": 10}")); return false; } diff --git a/code/html/custom.js b/code/html/custom.js index 3fff5c09..7ffaf971 100644 --- a/code/html/custom.js +++ b/code/html/custom.js @@ -2,6 +2,8 @@ var websock; var password = false; var maxNetworks; var useWhite = false; +var messages = []; +var webhost; // http://www.the-art-of-web.com/javascript/validate-password/ function checkPassword(str) { @@ -90,7 +92,7 @@ function doUpgrade() { $.ajax({ // Your server script to process the upload - url: window.location.href + 'upgrade', + url: webhost + 'upgrade', type: 'POST', // Form data @@ -165,7 +167,7 @@ function doToggle(element, value) { } function backupSettings() { - document.getElementById('downloader').src = window.location.href + 'config'; + document.getElementById('downloader').src = webhost + 'config'; return false; } @@ -185,7 +187,7 @@ function onFileUpload(event) { if (data) { websock.send(JSON.stringify({'action': 'restore', 'data': data})); } else { - alert("The file is not a configuration backup or is corrupted"); + alert(messages[4]); } }; reader.readAsText(inputFile); @@ -610,7 +612,7 @@ function processData(data) { // Messages if (key == "message") { - window.alert(data.message); + window.alert(messages[data.message]); return; } @@ -694,6 +696,7 @@ function connect(host) { host = 'http://' + host + '/'; } } + webhost = host; wshost = host.replace('http', 'ws') + 'ws'; if (websock) websock.close(); @@ -713,8 +716,23 @@ function connect(host) { }; } +function initMessages() { + messages[01] = "Remote update started"; + messages[02] = "OTA update started"; + messages[03] = "Error parsing data!"; + messages[04] = "The file does not look like a valid configuration backup or is corrupted"; + messages[05] = "Changes saved. You should reboot your board now"; + messages[06] = "Home Assistant auto-discovery message sent"; + messages[07] = "Passwords do not match!"; + messages[08] = "Changes saved"; + messages[09] = "No changes detected"; + messages[10] = "Session expired, please reload page..."; +} + function init() { + initMessages(); + $("#menuLink").on('click', toggleMenu); $(".button-update").on('click', doUpdate); $(".button-update-password").on('click', doUpdatePassword);