Merge branch 'dev' into sensors

Conflicts:
	code/espurna/data/index.html.gz
	code/espurna/static/index.html.gz.h
	code/html/custom.js
This commit is contained in:
Xose Pérez
2017-12-26 14:54:23 +01:00
12 changed files with 3445 additions and 3428 deletions

View File

@@ -96,7 +96,15 @@ function validateForm(form) {
}
// These fields will always be a list of values
var is_group = ["ssid", "pass", "gw", "mask", "ip", "dns", "mqttGroup", "mqttGroupInv", "dczRelayIdx", "ledMode", "ntpServer", "adminPass"];
var is_group = [
"ssid", "pass", "gw", "mask", "ip", "dns",
"relayBoot", "relayPulse", "relayTime",
"mqttGroup", "mqttGroupInv",
"dczRelayIdx",
"ledMode",
"ntpServer",
"adminPass"
];
function getData(form) {
@@ -475,20 +483,23 @@ function initRelays(data) {
}
function addRelayGroup() {
function initRelayConfig(data) {
var numGroups = $("#relayGroups > div").length;
var tabindex = 200 + numGroups * 2;
var template = $("#relayGroupTemplate").children();
var line = $(template).clone();
var element = $("span.relay_id", line);
if (element.length) element.html(numGroups+1);
$(line).find("input").each(function() {
$(this).attr("tabindex", tabindex++);
});
line.appendTo("#relayGroups");
var current = $("#relayConfig > div").length;
if (current > 0) return;
return line;
var template = $("#relayConfigTemplate").children();
for (var i=0; i < data.length; i++) {
var line = $(template).clone();
$("span.gpio", line).html(data[i].gpio);
$("span.id", line).html(i+1);
$("select[name='relayBoot']", line).val(data[i].boot);
$("select[name='relayPulse']", line).val(data[i].pulse);
$("input[name='relayTime']", line).val(data[i].pulse_ms);
$("intut[name='mqttGroup']", line).val(data[i].group || 0);
$("select[name='mqttGroupInv']", line).val(data[i].group_inv || 0);
line.appendTo("#relayConfig");
}
}
@@ -831,26 +842,9 @@ function processData(data) {
return;
}
// Relay groups
if (key == "relayGroups") {
var groups = data.relayGroups;
for (var i in groups) {
// add a new row
var line = addRelayGroup();
// fill in the blanks
var group = data.relayGroups[i];
Object.keys(group).forEach(function(key) {
var element = $("input[name=" + key + "]", line);
if (element.length) element.val(group[key]);
});
}
return;
// Relay configuration
if (key == "relayConfig") {
initRelayConfig(data[key]);
}
// ---------------------------------------------------------------------

View File

@@ -333,19 +333,7 @@
<fieldset>
<div class="pure-g">
<label class="pure-u-1 pure-u-md-1-4">Switch boot mode</label>
<div class="pure-u-1 pure-u-md-3-4">
<select name="relayMode" class="pure-u-3-4" tabindex="2">
<option value="0">Always OFF</option>
<option value="1">Always ON</option>
<option value="2">Same as before</option>
<option value="3">Toogle before</option>
</select>
</div>
<div class="pure-u-0 pure-u-md-1-4">&nbsp;</div>
<div class="pure-u-1 pure-u-md-3-4 hint">Here you can define what will be the status of the switch after a reboot.</div>
</div>
<div class="pure-g module module-multirelay"><legend>General</legend></div>
<div class="pure-g module module-multirelay">
<label class="pure-u-1 pure-u-md-1-4">Switch sync mode</label>
@@ -361,34 +349,7 @@
<div class="pure-u-1 pure-u-md-3-4 hint">Define how the different switches should be synchronized.</div>
</div>
<div class="pure-g">
<label class="pure-u-1 pure-u-md-1-4">Switch pulse mode</label>
<div class="pure-u-1 pure-u-md-3-4">
<select name="relayPulseMode" class="pure-u-3-4" tabindex="4">
<option value="0">Don't pulse</option>
<option value="1">Normally OFF (stays on for a short time)</option>
<option value="2">Normally ON (stays off for a short time)</option>
</select>
</div>
<div class="pure-u-0 pure-u-md-1-4">&nbsp;</div>
<div class="pure-u-1 pure-u-md-3-4 hint">When pulse mode is enabled the switch will automatically switch back to its normal state after the pulse time (below).</div>
</div>
<div class="pure-g">
<label class="pure-u-1 pure-u-md-1-4">Switch pulse time</label>
<input name="relayPulseTime" class="pure-u-1 pure-u-md-3-4" type="number" min="0" step="0.1" max="3600" tabindex="5" />
<div class="pure-u-0 pure-u-md-1-4">&nbsp;</div>
<div class="pure-u-1 pure-u-md-3-4 hint">Pulse time in seconds (maximum value is 3600s, i.e. 1 hour, accepts decimals).</div>
</div>
<div class="pure-g">
<legend>MQTT group topics</legend>
</div>
<div id="relayGroups" class="module module-mqtt">
</div>
<div id="relayConfig"></div>
</fieldset>
@@ -945,7 +906,7 @@
</div> <!-- layout -->
<!-- Templates -->
<!-- Templates -------------------------------------------------------->
<div id="rfbNodeTemplate" class="template">
@@ -1028,11 +989,36 @@
</div>
</div>
<div id="relayGroupTemplate" class="template">
<div id="relayConfigTemplate" class="template">
<div class="pure-g"><legend>Switch #<span class="id"></span> (GPIO<span class="gpio"></span>)</legend></div>
<div class="pure-g">
<div class="pure-u-1 pure-u-sm-1-4"><label>Switch <span class="relay_id"></span></label></div>
<div class="pure-u-1 pure-u-sm-1-2"><input class="pure-u-sm-23-24" name="mqttGroup" tabindex="0" data="0" /></div>
<select class="pure-u-1 pure-u-sm-1-4" name="mqttGroupInv">
<div class="pure-u-1 pure-u-sm-1-4"><label>Boot mode</label></div>
<select class="pure-u-1 pure-u-sm-3-4" name="relayBoot">
<option value="0">Always OFF</option>
<option value="1">Always ON</option>
<option value="2">Same as before</option>
<option value="3">Toogle before</option>
</select>
</div>
<div class="pure-g">
<div class="pure-u-1 pure-u-sm-1-4"><label>Pulse mode</label></div>
<select class="pure-u-1 pure-u-sm-3-4" name="relayPulse">
<option value="0">Don't pulse</option>
<option value="1">Normally OFF</option>
<option value="2">Normally ON</option>
</select>
</div>
<div class="pure-g">
<div class="pure-u-1 pure-u-sm-1-4"><label>Pulse time (s)</label></div>
<div class="pure-u-1 pure-u-sm-1-4"><input name="relayTime" class="pure-u-23-24" type="number" min="0" step="0.1" max="3600" /></div>
</div>
<div class="pure-g module module-mqtt">
<div class="pure-u-1 pure-u-sm-1-4"><label>MQTT group</label></div>
<div class="pure-u-1 pure-u-sm-3-4"><input class="pure-u-23-24" name="mqttGroup" tabindex="0" data="0" action="reconnect" /></div>
</div>
<div class="pure-g module module-mqtt">
<div class="pure-u-1 pure-u-sm-1-4"><label>MQTT group sync</label></div>
<select class="pure-u-1 pure-u-sm-3-4" name="mqttGroupInv">
<option value="0">Same</option>
<option value="1">Inverse</option>
</select>