//===== MQTT cards
function changeMqtt ( e ) {
e . preventDefault ( ) ;
var url = "mqtt?1=1" ;
var i , inputs = document . querySelectorAll ( '#mqtt-form input' ) ;
for ( i = 0 ; i < inputs . length ; i ++ ) {
if ( inputs [ i ] . type != "checkbox" )
url += "&" + inputs [ i ] . name + "=" + inputs [ i ] . value ;
} ;
hideWarning ( ) ;
var cb = $ ( "#mqtt-button" ) ;
addClass ( cb , 'pure-button-disabled' ) ;
ajaxSpin ( "POST" , url , function ( resp ) {
showNotification ( "MQTT updated" ) ;
removeClass ( cb , 'pure-button-disabled' ) ;
} , function ( s , st ) {
showWarning ( "Error: " + st ) ;
removeClass ( cb , 'pure-button-disabled' ) ;
window . setTimeout ( fetchMqtt , 100 ) ;
} ) ;
}
function displayMqtt ( data ) {
Object . keys ( data ) . forEach ( function ( v ) {
el = $ ( "#" + v ) ;
if ( el != null ) {
if ( el . nodeName === "INPUT" ) el . value = data [ v ] ;
else el . innerHTML = data [ v ] ;
return ;
}
el = document . querySelector ( 'input[name="' + v + '"]' ) ;
if ( el != null ) {
if ( el . type == "checkbox" ) el . checked = data [ v ] > 0 ;
else el . value = data [ v ] ;
}
} ) ;
$ ( "#mqtt-spinner" ) . setAttribute ( "hidden" , "" ) ;
$ ( "#mqtt-status-spinner" ) . setAttribute ( "hidden" , "" ) ;
$ ( "#mqtt-form" ) . removeAttribute ( "hidden" ) ;
$ ( "#mqtt-status-form" ) . removeAttribute ( "hidden" ) ;
var i , inputs = $ ( "input" ) ;
for ( i = 0 ; i < inputs . length ; i ++ ) {
if ( inputs [ i ] . type == "checkbox" )
inputs [ i ] . onclick = function ( ) { setMqtt ( this . name , this . checked ) } ;
}
}
function fetchMqtt ( ) {
ajaxJson ( "GET" , "/mqtt" , displayMqtt , function ( ) {
window . setTimeout ( fetchMqtt , 1000 ) ;
} ) ;
}
function changeMqttStatus ( e ) {
e . preventDefault ( ) ;
var v = document . querySelector ( 'input[name="mqtt-status-topic"]' ) . value ;
ajaxSpin ( "POST" , "/mqtt?mqtt-status-topic=" + v , function ( ) {
showNotification ( "MQTT status settings updated" ) ;
} , function ( s , st ) {
showWarning ( "Error: " + st ) ;
window . setTimeout ( fetchMqtt , 100 ) ;
} ) ;
}
function setMqtt ( name , v ) {
ajaxSpin ( "POST" , "/mqtt?" + name + "=" + ( v ? 1 : 0 ) , function ( ) {
var n = name . replace ( "-enable" , "" ) ;
showNotification ( n + " is now " + ( v ? "enabled" : "disabled" ) ) ;
} , function ( ) {
showWarning ( "Enable/disable failed" ) ;
window . setTimeout ( fetchMqtt , 100 ) ;
} ) ;
}