mirror of
https://github.com/xoseperez/espurna.git
synced 2026-03-05 16:04:19 +01:00
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:
@@ -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]);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
@@ -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"> </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"> </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"> </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>
|
||||
|
||||
Reference in New Issue
Block a user