diff --git a/html_orig/_debug_replacements.php b/html_orig/_debug_replacements.php
index d9c7dbd..dbd22a9 100644
--- a/html_orig/_debug_replacements.php
+++ b/html_orig/_debug_replacements.php
@@ -1,5 +1,10 @@
'ESP8266 Wireless Terminal',
@@ -28,4 +33,10 @@ return [
'%sta_enable%' => '1',
'%opmode%' => '3',
+ '%vers_fw%' => '1.2.3',
+ '%date%' => date('Y-m-d'),
+ '%time%' => date('G:i'),
+ '%vers_httpd%' => '4.5.6',
+ '%vers_sdk%' => '1.52',
+ '%githubrepo%' => 'https://github.com/MightyPork/esp-vt100-firmware',
];
diff --git a/html_orig/_pages.php b/html_orig/_pages.php
index 37e0ee7..d72a90e 100644
--- a/html_orig/_pages.php
+++ b/html_orig/_pages.php
@@ -13,14 +13,16 @@ function pg($key, $bc, $path) {
}
pg('cfg_wifi', 'cfg', '/cfg/wifi');
+pg('cfg_wifi_conn', '', '/wifi/connecting'); // page without menu that tries to show the connection progress
pg('cfg_network', 'cfg', '/cfg/network');
pg('cfg_term', 'cfg', '/cfg/term');
-pg('about', 'cfg', '/about');
-pg('help', 'cfg', '/help');
+pg('about', 'cfg page-about', '/about');
+pg('help', 'cfg page-help', '/help');
pg('term', 'term', '/');
-// technical
+// ajax API
pg('wifi_set', '', '/wifi/set');//'/cfg/wifi/set');
pg('wifi_scan', '', '/wifi/scan');//'/cfg/wifi/scan');
+pg('wifi_connstatus', '', '/wifi/connstatus');
return $pages;
diff --git a/html_orig/css/app.css b/html_orig/css/app.css
index 1e206f9..a326c3e 100644
--- a/html_orig/css/app.css
+++ b/html_orig/css/app.css
@@ -343,6 +343,10 @@ a:hover {
[onclick] {
cursor: pointer; }
+ul > * {
+ padding-top: .2em;
+ padding-bottom: .2em; }
+
/* Main outer container */
#outer {
display: flex;
diff --git a/html_orig/index.php b/html_orig/index.php
index ddb1499..c779c8d 100644
--- a/html_orig/index.php
+++ b/html_orig/index.php
@@ -1,15 +1,19 @@
_env.php.example to _env.php and check the settings inside!");
+}
require '_env.php';
+
$prod = defined('STDIN');
define ('DEBUG', !$prod);
-$root = DEBUG ? ESP_IP : '';
-define ('LIVE_ROOT', $root);
+$root = DEBUG ? json_encode(ESP_IP) : 'window.location.href';
+define ('JS_WEB_ROOT', $root);
define('CUR_PAGE', $_GET['page'] ?: 'term');
define('LOCALE', $_GET['locale'] ?: 'en');
-$_messages = require(__DIR__ . '/messages/' . LOCALE . '.php');
+$_messages = require(__DIR__ . '/lang/' . LOCALE . '.php');
$_pages = require('_pages.php');
define('APP_NAME', 'ESPTerm');
@@ -17,9 +21,9 @@ define('PAGE_TITLE', $_pages[CUR_PAGE]->label . ' :: ' . APP_NAME);
define('BODYCLASS', $_pages[CUR_PAGE]->bodyclass);
/** URL (dev or production) */
-function url($name, $root=false) {
+function url($name, $relative=false) {
global $_pages;
- if ($root) return $_pages[$name]->path;
+ if ($relative) return $_pages[$name]->path;
if (DEBUG) return "/index.php?page=$name";
else return $_pages[$name]->path;
diff --git a/html_orig/js/app.js b/html_orig/js/app.js
index 055c41f..fc1db8c 100644
--- a/html_orig/js/app.js
+++ b/html_orig/js/app.js
@@ -705,20 +705,16 @@
function mk(e) {return document.createElement(e)}
/** Find one by query */
-function qq(s) {return document.querySelector(s)}
+function qs(s) {return document.querySelector(s)}
/** Find all by query */
-function qa(s) {return document.querySelectorAll(s)}
+function qsa(s) {return document.querySelectorAll(s)}
/** Convert any to bool safely */
function bool(x) {
return (x === 1 || x === '1' || x === true || x === 'true');
}
-function intval(x) {
- return parseInt(x);
-}
-
/** Extend an objects with options */
function extend(defaults, options) {
var target = {};
@@ -739,23 +735,23 @@ function rgxe(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
+/** Format number to N decimal places, output as string */
function numfmt(x, places) {
var pow = Math.pow(10, places);
return Math.round(x*pow) / pow;
}
-function estimateLoadTime(fs, n) {
- return (1000/fs)*n+1500;
-}
-
+/** Get millisecond timestamp */
function msNow() {
return +(new Date);
}
+/** Get ms elapsed since msNow() */
function msElapsed(start) {
return msNow() - start;
}
+/** Shim for log base 10 */
Math.log10 = Math.log10 || function(x) {
return Math.log(x) / Math.LN10;
};
@@ -796,18 +792,25 @@ String.prototype.format = function () {
return out;
};
+/** HTML escape */
function e(str) {
- return String(str)
- .replace(/&/g, '&')
- .replace(/"/g, '"')
- .replace(/'/g, ''')
- .replace(//g, '>');
+ return $.htmlEscape(str);
}
+/** Check for undefined */
function undef(x) {
return typeof x == 'undefined';
}
+
+/** Safe json parse */
+function jsp() {
+ try {
+ return JSON.parse(e);
+ } catch(e) {
+ console.error(e);
+ return null;
+ }
+}
/** Module for toggling a modal overlay */
(function () {
var modal = {};
@@ -851,6 +854,27 @@ function undef(x) {
})();
/** Global generic init */
$.ready(function () {
+ // Checkbox UI (checkbox CSS and hidden input with int value)
+ $('.Row.checkbox').forEach(function(x) {
+ var inp = x.querySelector('input');
+ var box = x.querySelector('.box');
+
+ $(box).toggleClass('checked', inp.value);
+
+ $(x).on('click', function() {
+ inp.value = 1 - inp.value;
+ $(box).toggleClass('checked', inp.value)
+ });
+ });
+
+ // Expanding boxes on mobile
+ $('.Box.mobcol').forEach(function(x) {
+ var h = x.querySelector('h2');
+ $(h).on('click', function() {
+ $(x).toggleClass('expanded');
+ });
+ });
+
// loader dots...
setInterval(function () {
$('.anim-dots').each(function (x) {
@@ -863,12 +887,13 @@ $.ready(function () {
// flipping number boxes with the mouse wheel
$('input[type=number]').on('mousewheel', function(e) {
- var val = +$(this).val();
+ var $this = $(this);
+ var val = +$this.val();
if (isNaN(val)) val = 1;
- var step = +($(this).attr('step') || 1);
- var min = +$(this).attr('min');
- var max = +$(this).attr('max');
+ var step = +($this.attr('step') || 1);
+ var min = +$this.attr('min');
+ var max = +$this.attr('max');
if(e.wheelDelta > 0) {
val += step;
} else {
@@ -877,14 +902,14 @@ $.ready(function () {
if (typeof min != 'undefined') val = Math.max(val, +min);
if (typeof max != 'undefined') val = Math.min(val, +max);
- $(this).val(val);
+ $this.val(val);
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
- $(this)[0].dispatchEvent(evt);
+ $this[0].dispatchEvent(evt);
} else {
- $(this)[0].fireEvent("onchange");
+ $this[0].fireEvent("onchange");
}
e.preventDefault();
@@ -894,10 +919,7 @@ $.ready(function () {
});
$._loader = function(vis) {
- if(vis)
- $('#loader').addClass('show');
- else
- $('#loader').removeClass('show');
+ $('#loader').toggleClass('show', vis);
};
(function() {
/**
@@ -1036,7 +1058,7 @@ $._loader = function(vis) {
H = obj.h;
/* Build screen & show */
- var e, cell, scr = qq('#screen');
+ var e, cell, scr = qs('#screen');
// Empty the screen node
while (scr.firstChild) scr.removeChild(scr.firstChild);
@@ -1182,7 +1204,7 @@ $._loader = function(vis) {
}
});
- qa('#buttons button').forEach(function(s) {
+ qsa('#buttons button').forEach(function(s) {
s.addEventListener('click', function() {
sendBtnMsg(+this.dataset['n']);
});
@@ -1202,181 +1224,3 @@ $._loader = function(vis) {
Input.init();
}
})();
-/** Wifi page */
-(function () {
- var authStr = ['Open', 'WEP', 'WPA', 'WPA2', 'WPA/WPA2'];
- var curSSID;
-
- /** Update display for received response */
- function onScan(resp, status) {
- if (status != 200) {
- // bad response
- rescan(5000); // wait 5sm then retry
- return;
- }
-
- resp = JSON.parse(resp);
-
- var done = !bool(resp.result.inProgress) && (resp.result.APs.length > 0);
- rescan(done ? 15000 : 1000);
- if (!done) return; // no redraw yet
-
- // clear the AP list
- var $list = $('#ap-list');
- // remove old APs
- $('#ap-list .AP').remove();
-
- $list.toggle(done);
- $('#ap-loader').toggle(!done);
-
- // scan done
- resp.result.APs.sort(function (a, b) {
- return b.rssi - a.rssi;
- }).forEach(function (ap) {
- ap.enc = intval(ap.enc);
-
- if (ap.enc > 4) return; // hide unsupported auths
-
- var item = document.createElement('div');
-
- var $item = $(item)
- .data('ssid', ap.essid)
- .data('pwd', ap.enc != 0)
- .addClass('AP');
-
- // mark current SSID
- if (ap.essid == curSSID) {
- $item.addClass('selected');
- }
-
- var inner = document.createElement('div');
- $(inner).addClass('inner')
- .htmlAppend('
'.format(ap.rssi_perc))
- .htmlAppend('{0}
'.format($.htmlEscape(ap.essid)))
- .htmlAppend('{0}
'.format(authStr[ap.enc]));
-
- $item.on('click', function () {
- var $th = $(this);
-
- // populate the form
- $('#conn-essid').val($th.data('ssid'));
- $('#conn-passwd').val(''); // clear
-
- if ($th.data('pwd')) {
- // this AP needs a password
- Modal.show('#psk-modal');
- } else {
- Modal.show('#reset-modal');
- $('#conn-form').submit();
- }
- });
-
-
- item.appendChild(inner);
- $list[0].appendChild(item);
- });
- }
-
- /** Ask the CGI what APs are visible (async) */
- function scanAPs() {
- $.get('http://'+_root+'/wifi/scan', onScan);
- }
-
- function rescan(time) {
- setTimeout(scanAPs, time);
- }
-
- /** Set up the WiFi page */
- window.wifiInit = function (obj) {
- //var ap_json = {
- // "result": {
- // "inProgress": "0",
- // "APs": [
- // {"essid": "Chlivek", "bssid": "88:f7:c7:52:b3:99", "rssi": "204", "enc": "4", "channel": "1"},
- // {"essid": "TyNikdy", "bssid": "5c:f4:ab:0d:f1:1b", "rssi": "164", "enc": "3", "channel": "1"},
- // ]
- // }
- //};
-
- // Hide what should be hidden in this mode
- $('.x-hide-'+obj.mode).addClass('hidden');
- obj.mode = +obj.mode;
-
- // Channel writable only in AP mode
- if (obj.mode != 2) $('#channel').attr('readonly', 1);
-
- curSSID = obj.staSSID;
-
- // add SSID to the opmode field
- if (curSSID) {
- var box = $('#opmodebox');
- box.html(box.html() + ' (' + curSSID + ')');
- }
-
- // hide IP if IP not received
- if (!obj.staIP) $('.x-hide-noip').addClass('hidden');
-
- // scan if not AP
- if (obj.mode != 2) {
- scanAPs();
- }
-
- $('#modeswitch').html([
- 'Client+AP AP only ',
- 'Client+AP ',
- 'Client only AP only '
- ][obj.mode-1]);
- };
-
- window.wifiConn = function () {
- var xhr = new XMLHttpRequest();
- var abortTmeo;
-
- function getStatus() {
- xhr.open("GET", 'http://'+_root+"/wifi/connstatus");
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 300) {
- clearTimeout(abortTmeo);
- var data = JSON.parse(xhr.responseText);
- var done = false;
- var msg = '...';
-
- if (data.status == "idle") {
- msg = "Preparing to connect";
- }
- else if (data.status == "success") {
- msg = "Connected! Received IP " + data.ip + ".";
- done = true;
- }
- else if (data.status == "working") {
- msg = "Connecting to selected AP";
- }
- else if (data.status == "fail") {
- msg = "Connection failed, check your password and try again.";
- done = true;
- }
-
- $("#status").html(msg);
-
- if (done) {
- $('#backbtn').removeClass('hidden');
- $('.anim-dots').addClass('hidden');
- } else {
- window.setTimeout(getStatus, 1000);
- }
- }
- };
-
- abortTmeo = setTimeout(function () {
- xhr.abort();
- $("#status").html("Telemetry lost, try reconnecting to the AP.");
- $('#backbtn').removeClass('hidden');
- $('.anim-dots').addClass('hidden');
- }, 4000);
-
- xhr.send();
- }
-
- getStatus();
- };
-})();
diff --git a/html_orig/jssrc/appcommon.js b/html_orig/jssrc/appcommon.js
index 09fd0b1..a40faa6 100644
--- a/html_orig/jssrc/appcommon.js
+++ b/html_orig/jssrc/appcommon.js
@@ -1,5 +1,26 @@
/** Global generic init */
$.ready(function () {
+ // Checkbox UI (checkbox CSS and hidden input with int value)
+ $('.Row.checkbox').forEach(function(x) {
+ var inp = x.querySelector('input');
+ var box = x.querySelector('.box');
+
+ $(box).toggleClass('checked', inp.value);
+
+ $(x).on('click', function() {
+ inp.value = 1 - inp.value;
+ $(box).toggleClass('checked', inp.value)
+ });
+ });
+
+ // Expanding boxes on mobile
+ $('.Box.mobcol').forEach(function(x) {
+ var h = x.querySelector('h2');
+ $(h).on('click', function() {
+ $(x).toggleClass('expanded');
+ });
+ });
+
// loader dots...
setInterval(function () {
$('.anim-dots').each(function (x) {
@@ -12,12 +33,13 @@ $.ready(function () {
// flipping number boxes with the mouse wheel
$('input[type=number]').on('mousewheel', function(e) {
- var val = +$(this).val();
+ var $this = $(this);
+ var val = +$this.val();
if (isNaN(val)) val = 1;
- var step = +($(this).attr('step') || 1);
- var min = +$(this).attr('min');
- var max = +$(this).attr('max');
+ var step = +($this.attr('step') || 1);
+ var min = +$this.attr('min');
+ var max = +$this.attr('max');
if(e.wheelDelta > 0) {
val += step;
} else {
@@ -26,14 +48,14 @@ $.ready(function () {
if (typeof min != 'undefined') val = Math.max(val, +min);
if (typeof max != 'undefined') val = Math.min(val, +max);
- $(this).val(val);
+ $this.val(val);
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
- $(this)[0].dispatchEvent(evt);
+ $this[0].dispatchEvent(evt);
} else {
- $(this)[0].fireEvent("onchange");
+ $this[0].fireEvent("onchange");
}
e.preventDefault();
@@ -43,8 +65,5 @@ $.ready(function () {
});
$._loader = function(vis) {
- if(vis)
- $('#loader').addClass('show');
- else
- $('#loader').removeClass('show');
+ $('#loader').toggleClass('show', vis);
};
diff --git a/html_orig/jssrc/notif.js b/html_orig/jssrc/notif.js
new file mode 100644
index 0000000..ad08e51
--- /dev/null
+++ b/html_orig/jssrc/notif.js
@@ -0,0 +1,32 @@
+(function (nt) {
+ var sel = '#notif';
+
+ var hideTmeo1; // timeout to start hiding (transition)
+ var hideTmeo2; // timeout to add the hidden class
+
+ nt.show = function (message, timeout) {
+ $(sel).html(message);
+ Modal.show(sel);
+
+ clearTimeout(hideTmeo1);
+ clearTimeout(hideTmeo2);
+
+ if (undef(timeout)) timeout = 2500;
+
+ hideTmeo1 = setTimeout(nt.hide, timeout);
+ };
+
+ nt.hide = function () {
+ var $m = $(sel);
+ $m.removeClass('visible');
+ hideTmeo2 = setTimeout(function () {
+ $m.addClass('hidden');
+ }, 250); // transition time
+ };
+
+ nt.init = function() {
+ $(sel).on('click', function() {
+ nt.hide(this);
+ });
+ };
+})(window.Notify = {});
diff --git a/html_orig/jssrc/term.js b/html_orig/jssrc/term.js
index b9253d6..0965105 100644
--- a/html_orig/jssrc/term.js
+++ b/html_orig/jssrc/term.js
@@ -135,7 +135,7 @@
H = obj.h;
/* Build screen & show */
- var e, cell, scr = qq('#screen');
+ var e, cell, scr = qs('#screen');
// Empty the screen node
while (scr.firstChild) scr.removeChild(scr.firstChild);
@@ -281,7 +281,7 @@
}
});
- qa('#buttons button').forEach(function(s) {
+ qsa('#buttons button').forEach(function(s) {
s.addEventListener('click', function() {
sendBtnMsg(+this.dataset['n']);
});
diff --git a/html_orig/jssrc/utils.js b/html_orig/jssrc/utils.js
index 9bec8c7..bf6d114 100755
--- a/html_orig/jssrc/utils.js
+++ b/html_orig/jssrc/utils.js
@@ -2,20 +2,16 @@
function mk(e) {return document.createElement(e)}
/** Find one by query */
-function qq(s) {return document.querySelector(s)}
+function qs(s) {return document.querySelector(s)}
/** Find all by query */
-function qa(s) {return document.querySelectorAll(s)}
+function qsa(s) {return document.querySelectorAll(s)}
/** Convert any to bool safely */
function bool(x) {
return (x === 1 || x === '1' || x === true || x === 'true');
}
-function intval(x) {
- return parseInt(x);
-}
-
/** Extend an objects with options */
function extend(defaults, options) {
var target = {};
@@ -36,23 +32,23 @@ function rgxe(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
+/** Format number to N decimal places, output as string */
function numfmt(x, places) {
var pow = Math.pow(10, places);
return Math.round(x*pow) / pow;
}
-function estimateLoadTime(fs, n) {
- return (1000/fs)*n+1500;
-}
-
+/** Get millisecond timestamp */
function msNow() {
return +(new Date);
}
+/** Get ms elapsed since msNow() */
function msElapsed(start) {
return msNow() - start;
}
+/** Shim for log base 10 */
Math.log10 = Math.log10 || function(x) {
return Math.log(x) / Math.LN10;
};
@@ -93,15 +89,22 @@ String.prototype.format = function () {
return out;
};
+/** HTML escape */
function e(str) {
- return String(str)
- .replace(/&/g, '&')
- .replace(/"/g, '"')
- .replace(/'/g, ''')
- .replace(//g, '>');
+ return $.htmlEscape(str);
}
+/** Check for undefined */
function undef(x) {
return typeof x == 'undefined';
}
+
+/** Safe json parse */
+function jsp() {
+ try {
+ return JSON.parse(e);
+ } catch(e) {
+ console.error(e);
+ return null;
+ }
+}
diff --git a/html_orig/jssrc/wifi.js b/html_orig/jssrc/wifi.js
index 27f9924..5e442dd 100644
--- a/html_orig/jssrc/wifi.js
+++ b/html_orig/jssrc/wifi.js
@@ -11,9 +11,9 @@
return;
}
- resp = JSON.parse(resp);
+ resp = jsp(resp);
- var done = !bool(resp.result.inProgress) && (resp.result.APs.length > 0);
+ var done = resp && !bool(resp.result.inProgress) && (resp.result.APs.length > 0);
rescan(done ? 15000 : 1000);
if (!done) return; // no redraw yet
@@ -29,7 +29,7 @@
resp.result.APs.sort(function (a, b) {
return b.rssi - a.rssi;
}).forEach(function (ap) {
- ap.enc = intval(ap.enc);
+ ap.enc = parseInt(ap.enc);
if (ap.enc > 4) return; // hide unsupported auths
@@ -124,55 +124,5 @@
][obj.mode-1]);
};
- window.wifiConn = function () {
- var xhr = new XMLHttpRequest();
- var abortTmeo;
-
- function getStatus() {
- xhr.open("GET", 'http://'+_root+"/wifi/connstatus");
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 300) {
- clearTimeout(abortTmeo);
- var data = JSON.parse(xhr.responseText);
- var done = false;
- var msg = '...';
-
- if (data.status == "idle") {
- msg = "Preparing to connect";
- }
- else if (data.status == "success") {
- msg = "Connected! Received IP " + data.ip + ".";
- done = true;
- }
- else if (data.status == "working") {
- msg = "Connecting to selected AP";
- }
- else if (data.status == "fail") {
- msg = "Connection failed, check your password and try again.";
- done = true;
- }
- $("#status").html(msg);
-
- if (done) {
- $('#backbtn').removeClass('hidden');
- $('.anim-dots').addClass('hidden');
- } else {
- window.setTimeout(getStatus, 1000);
- }
- }
- };
-
- abortTmeo = setTimeout(function () {
- xhr.abort();
- $("#status").html("Telemetry lost, try reconnecting to the AP.");
- $('#backbtn').removeClass('hidden');
- $('.anim-dots').addClass('hidden');
- }, 4000);
-
- xhr.send();
- }
-
- getStatus();
- };
})();
diff --git a/html_orig/messages/en.php b/html_orig/lang/en.php
similarity index 67%
rename from html_orig/messages/en.php
rename to html_orig/lang/en.php
index 1fdd2b3..64c16ff 100644
--- a/html_orig/messages/en.php
+++ b/html_orig/lang/en.php
@@ -7,8 +7,9 @@ return [
'menu.cfg_network' => 'Network Configuration',
'menu.cfg_term' => 'Terminal Settings',
'menu.about' => 'About ESPTerm',
- 'menu.help' => 'Help',
+ 'menu.help' => 'Terminal Help',
'menu.term' => 'Back to Terminal',
+ 'menu.cfg_wifi_conn' => 'Connecting to External Network',
'box.ap' => 'Built-in Access Point',
'box.sta' => 'Connect to External Network',
@@ -32,6 +33,15 @@ return [
'wifi.cant_scan_no_sta' => 'Can\'t scan with Client mode disabled.',
'wifi.select_ssid' => 'Available networks:',
+ 'wifi.conn.status' => 'Status:',
+ 'wifi.conn.back_to_config' => 'Back to WiFi config',
+ 'wifi.conn.telemetry_lost' => 'Telemetry lost, something went wrong. Try again...',
+
+ 'wifi.conn.idle' =>"Preparing to connect",
+ 'wifi.conn.success' => "Connected! Received IP ",
+ 'wifi.conn.working' => "Connecting to selected AP",
+ 'wifi.conn.fail' => "Connection failed, check your password and try again.",
+
'enabled' => 'Enabled',
'disabled' => 'Disabled',
'yes' => 'Yes',
diff --git a/html_orig/packjs.sh b/html_orig/packjs.sh
index 37c976c..53c9e69 100755
--- a/html_orig/packjs.sh
+++ b/html_orig/packjs.sh
@@ -6,5 +6,4 @@ cat jssrc/chibi.js \
jssrc/utils.js \
jssrc/modal.js \
jssrc/appcommon.js \
- jssrc/term.js \
- jssrc/wifi.js > js/app.js
+ jssrc/term.js > js/app.js
diff --git a/html_orig/pages/_cfg_menu.php b/html_orig/pages/_cfg_menu.php
index 69b7fe7..2a020ac 100644
--- a/html_orig/pages/_cfg_menu.php
+++ b/html_orig/pages/_cfg_menu.php
@@ -4,7 +4,8 @@
$page) {
- if ($page->bodyclass !== 'cfg') continue;
+ if (strpos($page->bodyclass, 'cfg') === false) continue;
+
$sel = (CUR_PAGE == $k) ? ' class="selected"' : '';
$text = $page->label;
$url = e(url($k));
diff --git a/html_orig/pages/_head.php b/html_orig/pages/_head.php
index f1b3c2e..ff5b31d 100644
--- a/html_orig/pages/_head.php
+++ b/html_orig/pages/_head.php
@@ -7,13 +7,13 @@
= PAGE_TITLE ?>
-
+
bodyclass == 'cfg') {
+if (strpos($_pages[CUR_PAGE]->bodyclass, 'cfg') !== false) {
$cfg = true;
require __DIR__ . '/_cfg_menu.php';
}
diff --git a/html_orig/about.html b/html_orig/pages/about.php
similarity index 51%
rename from html_orig/about.html
rename to html_orig/pages/about.php
index d83f202..57a4c71 100644
--- a/html_orig/about.html
+++ b/html_orig/pages/about.php
@@ -1,34 +1,26 @@
-
-
-
-
-
About - ESP8266 Remote Terminal
-
-
-
-
-
-
-
-
About
-
-
Firmware
+
Version
- Firmware
- v%vers_fw%, build %date% at %time%
+ ESPTerm
+ v%vers_fw%, build %date% at %time%
libesphttpd
@@ -55,7 +47,14 @@
Contributing
- Submit your improvements and ideas to the project on GitHub .
+ Submit your improvements and ideas to the project on
+ GitHub .
+
+
+
+ You can donate on PayPal or
+ LiberaPay to help keep
+ the project going.
@@ -66,15 +65,7 @@
esphttpd library by Jeroen Domburg (Sprite_tm).
- Using (modified) JS library chibi.js by Kyle Barrow as a lightweight jQuery alternative.
+ Using (modified) JS library chibi.js by
+ Kyle Barrow as a lightweight jQuery alternative.
-
-
- Terminal Help WiFi config
-
-
-
-
diff --git a/html_orig/pages/cfg_wifi.php b/html_orig/pages/cfg_wifi.php
index 4c6613c..e040fe9 100644
--- a/html_orig/pages/cfg_wifi.php
+++ b/html_orig/pages/cfg_wifi.php
@@ -1,4 +1,4 @@
-
-
-
-
- Terminal WiFi config About
-
-
-
-
diff --git a/html_orig/sass/layout/_base.scss b/html_orig/sass/layout/_base.scss
index 4527f14..eda4c7e 100755
--- a/html_orig/sass/layout/_base.scss
+++ b/html_orig/sass/layout/_base.scss
@@ -29,3 +29,8 @@ a:hover {
[onclick] {
cursor: pointer;
}
+
+ul > * {
+ padding-top: .2em;
+ padding-bottom: .2em;
+}
diff --git a/html_orig/sass/layout/_espterm_specific_old.scss b/html_orig/sass/layout/_espterm_specific_old.scss
deleted file mode 100644
index f2263bd..0000000
--- a/html_orig/sass/layout/_espterm_specific_old.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-
-ul > * {
- padding-top: .1em;
- padding-bottom: .1em;
-}
-
-h1,h2 {
- @include noselect();
-}
-
-h1 {
- text-align: center;
- font-size: fsize(6);
- margin-top: 0;
- margin-bottom: dist(0);
-
- @include media($phone) {
- font-size: fsize(3);
- margin-bottom: dist(-1);
- }
-
- @include media($tablet) {
- font-size: fsize(5);
- }
-}
-
-h2 {
- font-size: fsize(2);
- margin-bottom: dist(-1);
- //&:first-child{margin-top:0}
-}
-
-td, th {
- padding: dist(-2);
- white-space: nowrap;
-
- @include media($phone) {
- padding: dist(-3);
- }
-}
-
-tbody th {
- text-align: right;
- width: $form-label-w;
- color: $c-form-label-fg;
-
- @include media($phone) {
- width: auto;
- }
-}
-
-tbody td {
- input[type="text"], input[type="number"] {
- width: 10em;
-
- @include media($phone) {
- width: 8em;
- }
- }
-}
-
-body {
- position: relative;
-
- padding: dist(0);
- @include media($phone) {
- padding: dist(-1);
- }
-
- overflow-y: auto;
-
- & > * {
- margin-left: auto;
- margin-right: auto;
- }
-}
diff --git a/html_orig/term.html b/html_orig/term.html
deleted file mode 100644
index c0d5106..0000000
--- a/html_orig/term.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
ESP8266 Remote Terminal
-
-
-
-
-
-
-
-
-
-
ESP8266 Remote Terminal
-
-
-
-
- WiFi config Help About
-
-
-
-
-
-
diff --git a/html_orig/term_test.php b/html_orig/term_test.php
deleted file mode 100644
index efa507a..0000000
--- a/html_orig/term_test.php
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
WiFi Settings - ESP8266 Remote Terminal
-
-
-
-
-
-
-
-
-
WiFi settings
-
-
-
-
- WiFi mode
- %WiFiMode%
-
-
- IP
- %StaIP%
-
-
- Switch to
-
-
-
- AP channel
-
-
-
-
-
- AP name
-
-
-
-
-
- Some changes require a reboot, dropping connection. It can take a while to re-connect.
-
- If you lose access , hold the BOOT button for 2 seconds (the Tx LED starts blinking) to re-enable AP mode.
- If that fails, hold the BOOT button for over 5 seconds (rapid Tx LED flashing) to perform a factory reset.
-
-
-
-
-
-
-
Select AP to join
-
Scanning.
-
Can't scan in AP-only mode.
-
-
-
-
- Terminal Help About
-
-
-
-
-
-
-
diff --git a/html_orig/wifi_conn.html b/html_orig/wifi_conn.html
deleted file mode 100755
index a9448dc..0000000
--- a/html_orig/wifi_conn.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
Connecting…
-
-
-
-
-
-
-
Connecting to network
-
-
-
-
-
-
diff --git a/html_orig/wifi_test.php b/html_orig/wifi_test.php
deleted file mode 100644
index b1863e7..0000000
--- a/html_orig/wifi_test.php
+++ /dev/null
@@ -1,15 +0,0 @@
-