Browse Source

Still refactoring custom.js

softuart
Xose Pérez 6 years ago
parent
commit
536211f030
4 changed files with 734 additions and 737 deletions
  1. BIN
      code/espurna/data/index.html.gz
  2. +675
    -674
      code/espurna/static/index.html.gz.h
  3. +19
    -15
      code/gulpfile.js
  4. +40
    -48
      code/html/custom.js

BIN
code/espurna/data/index.html.gz View File


+ 675
- 674
code/espurna/static/index.html.gz.h
File diff suppressed because it is too large
View File


+ 19
- 15
code/gulpfile.js View File

@ -63,7 +63,7 @@ var toHeader = function(filename) {
wstream.write('\n'); wstream.write('\n');
} }
wstream.write('0x' + ('00' + data[i].toString(16)).slice(-2)); wstream.write('0x' + ('00' + data[i].toString(16)).slice(-2));
if (i<data.length-1) {
if (i < (data.length - 1)) {
wstream.write(','); wstream.write(',');
} }
} }
@ -76,7 +76,11 @@ var toHeader = function(filename) {
var htmllintReporter = function(filepath, issues) { var htmllintReporter = function(filepath, issues) {
if (issues.length > 0) { if (issues.length > 0) {
issues.forEach(function (issue) { issues.forEach(function (issue) {
gutil.log(gutil.colors.cyan('[gulp-htmllint] ') + gutil.colors.white(filepath + ' [' + issue.line + ',' + issue.column + ']: ') + gutil.colors.red('(' + issue.code + ') ' + issue.msg));
gutil.log(
gutil.colors.cyan('[gulp-htmllint] ') +
gutil.colors.white(filepath + ' [' + issue.line + ',' + issue.column + ']: ') +
gutil.colors.red('(' + issue.code + ') ' + issue.msg)
);
}); });
process.exitCode = 1; process.exitCode = 1;
} }
@ -88,9 +92,9 @@ gulp.task('build_certs', function() {
}); });
gulp.task('csslint', function() { gulp.task('csslint', function() {
gulp.src('html/*.css')
.pipe(csslint({ids: false}))
.pipe(csslint.formatter());
gulp.src('html/*.css').
pipe(csslint({ids: false})).
pipe(csslint.formatter());
}); });
gulp.task('buildfs_embeded', ['buildfs_inline'], function() { gulp.task('buildfs_embeded', ['buildfs_inline'], function() {
@ -98,29 +102,29 @@ gulp.task('buildfs_embeded', ['buildfs_inline'], function() {
}); });
gulp.task('buildfs_inline', function() { gulp.task('buildfs_inline', function() {
return gulp.src('html/*.html')
.pipe(htmllint({
return gulp.src('html/*.html').
pipe(htmllint({
'failOnError': true, 'failOnError': true,
'rules': { 'rules': {
'id-class-style': false, 'id-class-style': false,
'label-req-for': false, 'label-req-for': false,
} }
}, htmllintReporter))
.pipe(favicon())
.pipe(inline({
}, htmllintReporter)).
pipe(favicon()).
pipe(inline({
base: 'html/', base: 'html/',
js: [uglify], js: [uglify],
css: [cleancss, inlineImages], css: [cleancss, inlineImages],
disabledTypes: ['svg', 'img'] disabledTypes: ['svg', 'img']
}))
.pipe(htmlmin({
})).
pipe(htmlmin({
collapseWhitespace: true, collapseWhitespace: true,
removeComments: true, removeComments: true,
minifyCSS: true, minifyCSS: true,
minifyJS: true minifyJS: true
}))
.pipe(gzip())
.pipe(gulp.dest(dataFolder));
})).
pipe(gzip()).
pipe(gulp.dest(dataFolder));
}); });


+ 40
- 48
code/html/custom.js View File

@ -243,6 +243,14 @@ function getJson(str) {
// Actions // Actions
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
function sendAction(action, data) {
websock.send(JSON.stringify({action: action, data: data}));
}
function sendConfig(data) {
websock.send(JSON.stringify({config: data}));
}
function resetOriginals() { function resetOriginals() {
$("input,select").each(function() { $("input,select").each(function() {
$(this).attr("original", $(this).val()); $(this).attr("original", $(this).val());
@ -295,7 +303,7 @@ function doUpgrade() {
if (!ok) { if (!ok) {
alert("The file does not seem to be a valid firmware image."); alert("The file does not seem to be a valid firmware image.");
return false;
return;
} }
var data = new FormData(); var data = new FormData();
@ -352,8 +360,7 @@ function doUpgrade() {
function doUpdatePassword() { function doUpdatePassword() {
var form = $("#formPassword"); var form = $("#formPassword");
if (validateForm(form)) { if (validateForm(form)) {
var data = getData(form);
websock.send(JSON.stringify({"config": data}));
sendConfig(getData(form))
} }
return false; return false;
} }
@ -380,7 +387,7 @@ function doAction(question, action) {
} }
} }
websock.send(JSON.stringify({"action": action}));
sendAction(action);
doReload(5000); doReload(5000);
return false; return false;
@ -410,8 +417,7 @@ function doUpdate() {
if (validateForm(form)) { if (validateForm(form)) {
// Get data // Get data
var data = getData(form);
websock.send(JSON.stringify({"config": data}));
sendConfig(getData(form));
// Empty special fields // Empty special fields
$(".pwrExpected").val(0); $(".pwrExpected").val(0);
@ -455,21 +461,21 @@ function onFileUpload(event) {
var inputFiles = this.files; var inputFiles = this.files;
if (typeof inputFiles === "undefined" || inputFiles.length === 0) { if (typeof inputFiles === "undefined" || inputFiles.length === 0) {
return false;
return false;
} }
var inputFile = inputFiles[0]; var inputFile = inputFiles[0];
this.value = ""; this.value = "";
var response = window.confirm("Previous settings will be overwritten. Are you sure you want to restore this settings?"); var response = window.confirm("Previous settings will be overwritten. Are you sure you want to restore this settings?");
if (response === false) { if (response === false) {
return false;
return false;
} }
var reader = new FileReader(); var reader = new FileReader();
reader.onload = function(e) { reader.onload = function(e) {
var data = getJson(e.target.result); var data = getJson(e.target.result);
if (data) { if (data) {
websock.send(JSON.stringify({"action": "restore", "data": data}));
sendAction("restore", data);
} else { } else {
alert(messages[4]); alert(messages[4]);
} }
@ -490,15 +496,15 @@ function doRestore() {
} }
function doToggle(element, value) { function doToggle(element, value) {
var relayID = parseInt(element.attr("data"), 10);
websock.send(JSON.stringify({"action": "relay", "data": { "id": relayID, "status": value ? 1 : 0 }}));
var id = parseInt(element.attr("data"), 10);
sendAction("relay", {id: id, status: value ? 1 : 0 });
return false; return false;
} }
function doScan() { function doScan() {
$("#scanResult").html(""); $("#scanResult").html("");
$("div.scan.loading").show(); $("div.scan.loading").show();
websock.send(JSON.stringify({"action": "scan", "data": {}}));
sendAction("scan");
return false; return false;
} }
@ -528,9 +534,7 @@ function showPanel() {
function createRelayList(data, container, template_name) { function createRelayList(data, container, template_name) {
var current = $("#" + container + " > div").length; var current = $("#" + container + " > div").length;
if (current > 0) {
return;
}
if (current > 0) { return; }
var template = $("#" + template_name + " .pure-g")[0]; var template = $("#" + template_name + " .pure-g")[0];
for (var i=0; i<data.length; i++) { for (var i=0; i<data.length; i++) {
@ -545,9 +549,7 @@ function createRelayList(data, container, template_name) {
function createMagnitudeList(data, container, template_name) { function createMagnitudeList(data, container, template_name) {
var current = $("#" + container + " > div").length; var current = $("#" + container + " > div").length;
if (current > 0) {
return;
}
if (current > 0) { return; }
var template = $("#" + template_name + " .pure-g")[0]; var template = $("#" + template_name + " .pure-g")[0];
for (var i=0; i<data.length; i++) { for (var i=0; i<data.length; i++) {
@ -637,9 +639,7 @@ function addSchedule() {
function initRelays(data) { function initRelays(data) {
var current = $("#relays > div").length; var current = $("#relays > div").length;
if (current > 0) {
return;
}
if (current > 0) { return; }
var template = $("#relayTemplate .pure-g")[0]; var template = $("#relayTemplate .pure-g")[0];
for (var i=0; i<data.length; i++) { for (var i=0; i<data.length; i++) {
@ -669,9 +669,7 @@ function initRelays(data) {
function initRelayConfig(data) { function initRelayConfig(data) {
var current = $("#relayConfig > div").length; var current = $("#relayConfig > div").length;
if (current > 0) {
return;
}
if (current > 0) { return; }
var template = $("#relayConfigTemplate").children(); var template = $("#relayConfigTemplate").children();
for (var i=0; i < data.length; i++) { for (var i=0; i < data.length; i++) {
@ -697,9 +695,7 @@ function initMagnitudes(data) {
// check if already initialized // check if already initialized
var done = $("#magnitudes > div").length; var done = $("#magnitudes > div").length;
if (done > 0) {
return;
}
if (done > 0) { return; }
// add templates // add templates
var template = $("#magnitudeTemplate").children(); var template = $("#magnitudeTemplate").children();
@ -717,7 +713,7 @@ function initMagnitudes(data) {
function getManifest(sensor_id) { function getManifest(sensor_id) {
for (var i in manifest) { for (var i in manifest) {
if (manifest[i].sensor_id === sensor_id) { if (manifest[i].sensor_id === sensor_id) {
return manifest[i];
return manifest[i];
} }
} }
return null; return null;
@ -731,9 +727,7 @@ function initColorRGB() {
// check if already initialized // check if already initialized
var done = $("#colors > div").length; var done = $("#colors > div").length;
if (done > 0) {
return;
}
if (done > 0) { return; }
// add template // add template
var template = $("#colorRGBTemplate").children(); var template = $("#colorRGBTemplate").children();
@ -745,7 +739,7 @@ function initColorRGB() {
sliders: "wrgbp" sliders: "wrgbp"
}).on("sliderup", function() { }).on("sliderup", function() {
var value = $(this).wheelColorPicker("getValue", "css"); var value = $(this).wheelColorPicker("getValue", "css");
websock.send(JSON.stringify({"action": "color", "data" : {"rgb": value}}));
sendAction("color", {rgb: value});
}); });
// init bright slider // init bright slider
@ -753,7 +747,7 @@ function initColorRGB() {
var value = $(this).val(); var value = $(this).val();
var parent = $(this).parents(".pure-g"); var parent = $(this).parents(".pure-g");
$("span", parent).html(value); $("span", parent).html(value);
websock.send(JSON.stringify({"action": "color", "data" : {"brightness": value}}));
sendAction("color", {brightness: value});
}); });
} }
@ -762,9 +756,7 @@ function initColorHSV() {
// check if already initialized // check if already initialized
var done = $("#colors > div").length; var done = $("#colors > div").length;
if (done > 0) {
return;
}
if (done > 0) { return; }
// add template // add template
var template = $("#colorHSVTemplate").children(); var template = $("#colorHSVTemplate").children();
@ -777,7 +769,7 @@ function initColorHSV() {
}).on("sliderup", function() { }).on("sliderup", function() {
var color = $(this).wheelColorPicker("getColor"); var color = $(this).wheelColorPicker("getColor");
var value = parseInt(color.h * 360, 10) + "," + parseInt(color.s * 100, 10) + "," + parseInt(color.v * 100, 10); var value = parseInt(color.h * 360, 10) + "," + parseInt(color.s * 100, 10) + "," + parseInt(color.v * 100, 10);
websock.send(JSON.stringify({"action": "color", "data" : {"hsv": value}}));
sendAction("color", {hsv: value});
}); });
} }
@ -786,9 +778,7 @@ function initChannels(num) {
// check if already initialized // check if already initialized
var done = $("#channels > div").length > 0; var done = $("#channels > div").length > 0;
if (done) {
return;
}
if (done) { return; }
// does it have color channels? // does it have color channels?
var colors = $("#colors > div").length > 0; var colors = $("#colors > div").length > 0;
@ -808,7 +798,7 @@ function initChannels(num) {
var value = $(this).val(); var value = $(this).val();
var parent = $(this).parents(".pure-g"); var parent = $(this).parents(".pure-g");
$("span", parent).html(value); $("span", parent).html(value);
websock.send(JSON.stringify({"action": "channel", "data" : { "id": id, "value": value }}));
sendAction("channel", {id: id, value: value});
}; };
// add templates // add templates
@ -834,19 +824,19 @@ function initChannels(num) {
function rfbLearn() { function rfbLearn() {
var parent = $(this).parents(".pure-g"); var parent = $(this).parents(".pure-g");
var input = $("input", parent); var input = $("input", parent);
websock.send(JSON.stringify({"action": "rfblearn", "data" : {"id" : input.attr("data-id"), "status": input.attr("data-status")}}));
sendAction("rfblearn", {id: input.attr("data-id"), status: input.attr("data-status")});
} }
function rfbForget() { function rfbForget() {
var parent = $(this).parents(".pure-g"); var parent = $(this).parents(".pure-g");
var input = $("input", parent); var input = $("input", parent);
websock.send(JSON.stringify({"action": "rfbforget", "data" : {"id" : input.attr("data-id"), "status": input.attr("data-status")}}));
sendAction("rfbforget", {id: input.attr("data-id"), status: input.attr("data-status")});
} }
function rfbSend() { function rfbSend() {
var parent = $(this).parents(".pure-g"); var parent = $(this).parents(".pure-g");
var input = $("input", parent); var input = $("input", parent);
websock.send(JSON.stringify({"action": "rfbsend", "data" : {"id" : input.attr("data-id"), "status": input.attr("data-status"), "data": input.val()}}));
sendAction("rfbsend", {id: input.attr("data-id"), status: input.attr("data-status"), data: input.val()});
} }
function addRfbNode() { function addRfbNode() {
@ -876,6 +866,8 @@ function addRfbNode() {
function processData(data) { function processData(data) {
console.log(data);
// title // title
if ("app_name" in data) { if ("app_name" in data) {
var title = data.app_name; var title = data.app_name;
@ -1122,7 +1114,7 @@ function processData(data) {
} }
if (key == "free_size") { if (key == "free_size") {
free_size = parseInt(data[key]);
free_size = parseInt(data[key], 10);
} }
// Pre-process // Pre-process
@ -1241,16 +1233,16 @@ function connect(host) {
host = "http://" + host + "/"; host = "http://" + host + "/";
} }
} }
if (host.indexOf("http") !== 0) {return;}
if (host.indexOf("http") !== 0) { return; }
webhost = host; webhost = host;
wshost = host.replace("http", "ws") + "ws"; wshost = host.replace("http", "ws") + "ws";
if (websock) websock.close();
if (websock) { websock.close(); }
websock = new WebSocket(wshost); websock = new WebSocket(wshost);
websock.onmessage = function(evt) { websock.onmessage = function(evt) {
var data = getJson(evt.data); var data = getJson(evt.data);
if (data) processData(data);
if (data) { processData(data); }
}; };
} }


Loading…
Cancel
Save