Browse Source

Control Buttons and Volumes in WebUI, Function to remove Rfid assignments

master
Daniel Rieper 4 years ago
committed by Torsten Stauder
parent
commit
cb52abc631
  1. 53
      html/management_EN.html
  2. 53
      src/HTMLmanagement_EN.h
  3. 15
      src/main.cpp

53
html/management_EN.html

@ -116,6 +116,7 @@
<br/> <br/>
<nav> <nav>
<div class="container nav nav-tabs" id="nav-tab" role="tablist"> <div class="container nav nav-tabs" id="nav-tab" role="tablist">
<a class="nav-item nav-link" id="nav-control-tab" data-toggle="tab" href="#nav-control" role="tab" aria-controls="nav-control" aria-selected="false"><i class="fas fa-gamepad"></i><span class=".d-sm-none .d-md-block"> Control</span></a>
<a class="nav-item nav-link active" id="nav-rfid-tab" data-toggle="tab" href="#nav-rfid" role="tab" aria-controls="nav-rfid" aria-selected="true"><i class="fas fa-dot-circle"></i> RFID</a> <a class="nav-item nav-link active" id="nav-rfid-tab" data-toggle="tab" href="#nav-rfid" role="tab" aria-controls="nav-rfid" aria-selected="true"><i class="fas fa-dot-circle"></i> RFID</a>
<a class="nav-item nav-link" id="nav-wifi-tab" data-toggle="tab" href="#nav-wifi" role="tab" aria-controls="nav-wifi" aria-selected="false"><i class="fas fa-wifi"></i><span class=".d-sm-none .d-md-block"> WiFi</span></a> <a class="nav-item nav-link" id="nav-wifi-tab" data-toggle="tab" href="#nav-wifi" role="tab" aria-controls="nav-wifi" aria-selected="false"><i class="fas fa-wifi"></i><span class=".d-sm-none .d-md-block"> WiFi</span></a>
%SHOW_MQTT_TAB% %SHOW_MQTT_TAB%
@ -149,6 +150,37 @@
</form> </form>
</div> </div>
</div> </div>
<div class="tab-pane fade" id="nav-control" role="tabpanel" aria-labelledby="nav-control-tab">
<div class="container" id="navControl">
<div class="form-group col-md-12">
<legend>Controls</legend>
<div class="buttons">
<button type="button" class="btn btn-default btn-lg" onclick="sendControl(173)">
<span class="fas fa-fast-backward"></span>
</button>
<button type="button" class="btn btn-default btn-lg" onclick="sendControl(171)">
<span class="fas fa-backward"></span>
</button>
<button type="button" class="btn btn-default btn-lg" onclick="sendControl(170)">
<i class="fas fa-pause"></i>
</button>
<button type="button" class="btn btn-default btn-lg" onclick="sendControl(172)">
<span class="fas fa-forward"></span>
</button>
<button type="button" class="btn btn-default btn-lg" onclick="sendControl(174)">
<span class="fas fa-fast-forward"></span>
</button>
</div>
</div>
<br>
<div class="form-group col-md-12">
<legend>Volume</legend>
<i class="fas fa-volume-down fa-2x .icon-pos"></i> <input data-provide="slider" type="number" data-slider-min="1" data-slider-max="21" min="1" max="21" class="form-control" id="setVolume"
data-slider-value="%INIT_VOLUME%" value="%INIT_VOLUME%" onchange="sendVolume(this.value)"> <i class="fas fa-volume-up fa-2x .icon-pos"></i>
</div>
<br/>
</div>
</div>
<div class="tab-pane fade show active" id="nav-rfid" role="tabpanel" aria-labelledby="nav-rfid-tab"> <div class="tab-pane fade show active" id="nav-rfid" role="tabpanel" aria-labelledby="nav-rfid-tab">
<div class="container" id="rfidMusicTags"> <div class="container" id="rfidMusicTags">
<fieldset> <fieldset>
@ -223,6 +255,9 @@
<option value="111">Loop current track</option> <option value="111">Loop current track</option>
<option value="120">Dimm LEDs (nightmode)</option> <option value="120">Dimm LEDs (nightmode)</option>
<option value="130">Enable/disable (toggle) WiFi</option> <option value="130">Enable/disable (toggle) WiFi</option>
<option value="140">Enable/disable Bluetooth</option>
<option value="150">Enable FTP</option>
<option value="0">Delete assignments</option>
</select> </select>
</div> </div>
<br> <br>
@ -711,6 +746,24 @@
var myJSON = JSON.stringify(myObj); var myJSON = JSON.stringify(myObj);
socket.send(myJSON); socket.send(myJSON);
} }
function sendControl(cmd) {
var myObj = {
"controls": {
action: cmd
}
};
var myJSON = JSON.stringify(myObj);
socket.send(myJSON);
}
function sendVolume(vol) {
var myObj = {
"controls": {
set_volume: vol
}
};
var myJSON = JSON.stringify(myObj);
socket.send(myJSON);
}
$(document).ready(function () { $(document).ready(function () {
connect(); connect();

53
src/HTMLmanagement_EN.h

@ -116,6 +116,7 @@ static const char management_HTML[] PROGMEM = "<!DOCTYPE html>\
<br/>\ <br/>\
<nav>\ <nav>\
<div class=\"container nav nav-tabs\" id=\"nav-tab\" role=\"tablist\">\ <div class=\"container nav nav-tabs\" id=\"nav-tab\" role=\"tablist\">\
<a class=\"nav-item nav-link\" id=\"nav-control-tab\" data-toggle=\"tab\" href=\"#nav-control\" role=\"tab\" aria-controls=\"nav-control\" aria-selected=\"false\"><i class=\"fas fa-gamepad\"></i><span class=\".d-sm-none .d-md-block\"> Control</span></a>\
<a class=\"nav-item nav-link active\" id=\"nav-rfid-tab\" data-toggle=\"tab\" href=\"#nav-rfid\" role=\"tab\" aria-controls=\"nav-rfid\" aria-selected=\"true\"><i class=\"fas fa-dot-circle\"></i> RFID</a>\ <a class=\"nav-item nav-link active\" id=\"nav-rfid-tab\" data-toggle=\"tab\" href=\"#nav-rfid\" role=\"tab\" aria-controls=\"nav-rfid\" aria-selected=\"true\"><i class=\"fas fa-dot-circle\"></i> RFID</a>\
<a class=\"nav-item nav-link\" id=\"nav-wifi-tab\" data-toggle=\"tab\" href=\"#nav-wifi\" role=\"tab\" aria-controls=\"nav-wifi\" aria-selected=\"false\"><i class=\"fas fa-wifi\"></i><span class=\".d-sm-none .d-md-block\"> WiFi</span></a>\ <a class=\"nav-item nav-link\" id=\"nav-wifi-tab\" data-toggle=\"tab\" href=\"#nav-wifi\" role=\"tab\" aria-controls=\"nav-wifi\" aria-selected=\"false\"><i class=\"fas fa-wifi\"></i><span class=\".d-sm-none .d-md-block\"> WiFi</span></a>\
%SHOW_MQTT_TAB%\ %SHOW_MQTT_TAB%\
@ -149,6 +150,37 @@ static const char management_HTML[] PROGMEM = "<!DOCTYPE html>\
</form>\ </form>\
</div>\ </div>\
</div>\ </div>\
<div class=\"tab-pane fade\" id=\"nav-control\" role=\"tabpanel\" aria-labelledby=\"nav-control-tab\">\
<div class=\"container\" id=\"navControl\"> \
<div class=\"form-group col-md-12\">\
<legend>Controls</legend>\
<div class=\"buttons\">\
<button type=\"button\" class=\"btn btn-default btn-lg\" onclick=\"sendControl(173)\">\
<span class=\"fas fa-fast-backward\"></span>\
</button>\
<button type=\"button\" class=\"btn btn-default btn-lg\" onclick=\"sendControl(171)\">\
<span class=\"fas fa-backward\"></span>\
</button>\
<button type=\"button\" class=\"btn btn-default btn-lg\" onclick=\"sendControl(170)\">\
<i class=\"fas fa-pause\"></i>\
</button>\
<button type=\"button\" class=\"btn btn-default btn-lg\" onclick=\"sendControl(172)\">\
<span class=\"fas fa-forward\"></span>\
</button>\
<button type=\"button\" class=\"btn btn-default btn-lg\" onclick=\"sendControl(174)\">\
<span class=\"fas fa-fast-forward\"></span>\
</button>\
</div> \
</div>\
<br>\
<div class=\"form-group col-md-12\">\
<legend>Volume</legend>\
<i class=\"fas fa-volume-down fa-2x .icon-pos\"></i> <input data-provide=\"slider\" type=\"number\" data-slider-min=\"1\" data-slider-max=\"21\" min=\"1\" max=\"21\" class=\"form-control\" id=\"setVolume\"\
data-slider-value=\"%INIT_VOLUME%\" value=\"%INIT_VOLUME%\" onchange=\"sendVolume(this.value)\"> <i class=\"fas fa-volume-up fa-2x .icon-pos\"></i> \
</div>\
<br/>\
</div>\
</div>\
<div class=\"tab-pane fade show active\" id=\"nav-rfid\" role=\"tabpanel\" aria-labelledby=\"nav-rfid-tab\">\ <div class=\"tab-pane fade show active\" id=\"nav-rfid\" role=\"tabpanel\" aria-labelledby=\"nav-rfid-tab\">\
<div class=\"container\" id=\"rfidMusicTags\">\ <div class=\"container\" id=\"rfidMusicTags\">\
<fieldset>\ <fieldset>\
@ -223,6 +255,9 @@ static const char management_HTML[] PROGMEM = "<!DOCTYPE html>\
<option value=\"111\">Loop current track</option>\ <option value=\"111\">Loop current track</option>\
<option value=\"120\">Dimm LEDs (nightmode)</option>\ <option value=\"120\">Dimm LEDs (nightmode)</option>\
<option value=\"130\">Enable/disable (toggle) WiFi</option>\ <option value=\"130\">Enable/disable (toggle) WiFi</option>\
<option value=\"140\">Enable/disable Bluetooth</option>\
<option value=\"150\">Enable FTP</option>\
<option value=\"0\">Delete assignments</option>\
</select>\ </select>\
</div>\ </div>\
<br>\ <br>\
@ -711,6 +746,24 @@ static const char management_HTML[] PROGMEM = "<!DOCTYPE html>\
var myJSON = JSON.stringify(myObj);\ var myJSON = JSON.stringify(myObj);\
socket.send(myJSON);\ socket.send(myJSON);\
}\ }\
function sendControl(cmd) {\
var myObj = {\
\"controls\": {\
action: cmd\
}\
};\
var myJSON = JSON.stringify(myObj);\
socket.send(myJSON);\
}\
function sendVolume(vol) {\
var myObj = {\
\"controls\": {\
set_volume: vol\
}\
};\
var myJSON = JSON.stringify(myObj);\
socket.send(myJSON);\
}\
\ \
$(document).ready(function () {\ $(document).ready(function () {\
connect();\ connect();\

15
src/main.cpp

@ -3404,6 +3404,9 @@ bool processJsonRequest(char *_serialJson) {
const char *_rfidIdModId = object["rfidMod"]["rfidIdMod"]; const char *_rfidIdModId = object["rfidMod"]["rfidIdMod"];
uint8_t _modId = object["rfidMod"]["modId"]; uint8_t _modId = object["rfidMod"]["modId"];
char rfidString[12]; char rfidString[12];
if(_modId<=0) {
prefsRfid.remove(_rfidIdModId);
} else {
snprintf(rfidString, sizeof(rfidString) / sizeof(rfidString[0]), "%s0%s0%s%u%s0", stringDelimiter, stringDelimiter, stringDelimiter, _modId, stringDelimiter); snprintf(rfidString, sizeof(rfidString) / sizeof(rfidString[0]), "%s0%s0%s%u%s0", stringDelimiter, stringDelimiter, stringDelimiter, _modId, stringDelimiter);
prefsRfid.putString(_rfidIdModId, rfidString); prefsRfid.putString(_rfidIdModId, rfidString);
@ -3411,6 +3414,7 @@ bool processJsonRequest(char *_serialJson) {
if (s.compareTo(rfidString)) { if (s.compareTo(rfidString)) {
return false; return false;
} }
}
dumpNvsToSd("rfidTags", (char *) FPSTR(backupFile)); // Store backup-file every time when a new rfid-tag is programmed dumpNvsToSd("rfidTags", (char *) FPSTR(backupFile)); // Store backup-file every time when a new rfid-tag is programmed
} else if (doc.containsKey("rfidAssign")) { } else if (doc.containsKey("rfidAssign")) {
@ -3449,6 +3453,17 @@ bool processJsonRequest(char *_serialJson) {
} else if (doc.containsKey("ping")) { } else if (doc.containsKey("ping")) {
sendWebsocketData(0, 20); sendWebsocketData(0, 20);
return false; return false;
}else if (doc.containsKey("controls")) {
if(object["controls"].containsKey("set_volume"))
{
uint8_t new_vol = doc["controls"]["set_volume"].as<uint8_t>();
volumeToQueueSender(new_vol);
}
if(object["controls"].containsKey("action"))
{
uint8_t cmd = doc["controls"]["action"].as<uint8_t>();
doCmdAction(cmd);
}
} }
return true; return true;

Loading…
Cancel
Save