diff --git a/lib/Dojo/Controller/Data.pm b/lib/Dojo/Controller/Data.pm index e16e329..60bc416 100644 --- a/lib/Dojo/Controller/Data.pm +++ b/lib/Dojo/Controller/Data.pm @@ -1,16 +1,15 @@ package Dojo::Controller::Data; use Mojo::Base 'Mojolicious::Controller'; use Dojo::Support qw{ dmph merge_hash load_module }; -use Dojo::Conf; use Net::Telnet; - my $server_name = $Dojo::Conf::chat->{chat_srv}; + my $server_name = ""; our $t; #telnet server object sub simple{ my $c=shift; my $n=$c->param("dreq")//""; my $json = {status => "304"}; - $json = \%Dojo::Conf::radio if $n =~m/^radio$/ ; + $json = { srv =>$c->config->{radio_server} } if $n =~m/^radio$/ ; $json = candy() if $n =~m/^candy$/ ; $c->render(json=>$json); } @@ -29,6 +28,7 @@ sub admin{ sub candy{ my $c=shift; my $r="-1"; + $server_name = $c->config->{chat_srv}; if (connectT()) { $r = isOn() if ($c->param("command") =~/^isOn$/); $r = turnOn() if ($c->param("command") =~/^on$/); @@ -37,7 +37,6 @@ sub candy{ } else {$r="connection error";}; $c->render(json => {a=>$r}); -# $c->render(json => {a=>$server_name}); } sub turnOff{ diff --git a/public/home/admin/candySwitch/jsCSwitch.js b/public/home/admin/candySwitch/jsCSwitch.js index 138020e..b5515ce 100755 --- a/public/home/admin/candySwitch/jsCSwitch.js +++ b/public/home/admin/candySwitch/jsCSwitch.js @@ -5,8 +5,9 @@ d3.select("#clink").on("click",function(){ var ciface ="/json/candy/"; d3.json(ciface+"isOn" ,function(d){ if(d != undefined){ - if (d.a==1) { on(); } - else if (d.a==0) { off(); }} + if (d.a=="1") { on(); } + else if (d.a=="0") { off(); } + else if (d.a=="connection error") { cerror(); }} else {console.error(ciface+"isOn");} }); @@ -17,9 +18,10 @@ d3.select("#myonoffswitch") }); function on(){ - d3.select("#clink").style("visibility","visible"); + d3.select("#clink").style("visibility","visible"); d3.json(ciface+"on",function(d){ - if (d.a==1){ + if (d.a=="connection error"){ cerror();} + else if (d.a=="1"){ d3.select("#clink").style("visibility","visible"); d3.select("#myonoffswitch").property("checked","checked"); } else { @@ -27,15 +29,21 @@ function on(){ }}); } function off(){ - d3.select("#clink").style("visibility","hidden"); + d3.select("#clink").style("visibility","hidden"); d3.json(ciface+"off",function(d){ - if (d.a==1){ + if (d.a=="connection error"){ cerror();} + else if (d.a=="1"){ d3.select("#clink").style("visibility","hidden"); d3.select("#myonoffswitch").property("checked",""); } else { d3.select("#myonoffswitch").property("checked","checked"); }}); } +function cerror(){ + console.error("prosody connection error"); + d3.select("#clink").style("visibility","hidden"); + d3.select("#myonoffswitch").property("checked",""); +} diff --git a/public/home/radio/jsLink.js b/public/home/radio/jsLink.js index 31025d7..ca14972 100755 --- a/public/home/radio/jsLink.js +++ b/public/home/radio/jsLink.js @@ -8,8 +8,10 @@ checkChat(); function checkChat(){ d3.json("/json/candy/isOn",function(d){ if(d != undefined){ - if (d.a==1) { d3.select("#clink").style("visibility","visible");} - else if (d.a==0) { d3.select("#clink").style("visibility","hidden");} + if (d.a=="connection error"){ + d3.select("#clink").style("visibility","hidden");} + else if (d.a=="1") { d3.select("#clink").style("visibility","visible");} + else if (d.a=="0") { d3.select("#clink").style("visibility","hidden");} } else { d3.select("#clink").style("visibility","hidden"); diff --git a/templates/home/admin/radio.html.ep b/templates/home/admin/radio.html.ep index a11670b..966b4f3 100755 --- a/templates/home/admin/radio.html.ep +++ b/templates/home/admin/radio.html.ep @@ -31,4 +31,5 @@