Loading public/javascripts/index.js +88 −64 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ let MasterNode = "-"; let appData = { master: "-", slaves: [], ips: [], slaves_selected: [] } Loading @@ -24,7 +25,7 @@ function init(){ update_master_node(); // init button $('#testbutton').on('click', function(e){ $('#listmasters').on('click', function(e){ $.ajax({ url: '/api/nodelist', Loading @@ -43,9 +44,8 @@ function init(){ $(".master_nodes").on('click',function(e){ update_master_node($(this).html()); $("#nodelist").empty(); //send_command(appData.slaves,'list', parse_cmd_list_init); // go straight with ifconfig send_command(appData.slaves,'ifconfig', parse_cmd_ifconfig_init); send_command('ifconfig', appData.slaves, parse_cmd_ifconfig_init); }); } Loading @@ -53,67 +53,76 @@ function init(){ }); $('#testbutton1').on('click', function(e){ send_command(appData.slaves_selected,'list', parse_cmd_list); }); $('#testbutton2').on('click', function(e){ send_command(appData.slaves_selected,'state', parse_cmd_state); send_command('state', appData.slaves_selected, parse_cmd_state); }); // need a post request $('#testbutton3').on('click', function(e){ // examples: //let cmd = "wget -qO- -o /dev/null 'http://localhost/parsedit.php?immediate&TRIG'"; //let cmd = "ifconfig"; //let cmd = "wget -qO- -o /dev/null 'http://localhost/diagnostics.php'"; const cmd = "ifconfig"; send_command(appData.slaves_selected, cmd, parse_cmd_ifconfig); //const cmd = "ifconfig"; let path = "/sys/devices/soc0/elphel393-detect_sensors@0"; let cmd = [ 'cd '+path, 'cat port_mux0', 'cat sensor00', 'cat sensor01', 'cat sensor02', 'cat sensor03', 'cat port_mux1', 'cat sensor10', 'cat sensor11', 'cat sensor12', 'cat sensor13', 'cat port_mux2', 'cat sensor20', 'cat sensor21', 'cat sensor22', 'cat sensor23', 'cat port_mux3', 'cat sensor30', 'cat sensor31', 'cat sensor32', 'cat sensor33' ].join(';'); send_command(cmd, appData.slaves_selected,parse_cmd_testing); }); } function parse_cmd_list_init(res){ function parse_cmd_testing(res){ $(res).find('target').each(function(){ const name = $(this).text(); update_slave_list(name); }); $(res).find('response').each(function(){ $(".slave_checkbox").on("change",function(e){ let checked = $(this).prop("checked"); let name = $(this).parent().find("label").html(); console.log(checked+" "+name); if (!checked) { appData.slaves_selected = appData.slaves_selected.filter(item => item!==name); const name = $(this).find('node').text(); let state = $(this).find('state').text(); const xmlstate = $.parseXML(`<document>${state}</document>`); if ($(xmlstate).find("error").length!=0){ console.log(name+" is not 10393"); $("."+name).append(" <b style='color:DarkOrange;'>not 10393</b>"); }else{ appData.slaves_selected.push(name); let sensors = state.trim().split('\n'); //console.log(sensors); for(let i=0;i<4;i++){ let mux = sensors[5*i]; console.log("port "+i+" mux is "+mux); if (mux==="none"){ console.log("sensor is "+sensors[5*i+1]); }else{ console.log("warning: mux is not 'none'"); } } }); } function parse_cmd_list(res){ let rtab = [ '<table class="slave_table">', ' <tr>', ' <th>Slave</th>', ' </tr>' ]; $(res).find('target').each(function(){ const name = $(this).text(); //update_slave_list(name); rtab = rtab.concat([ '<tr>', ' <td class="name">'+name+'</td>', '</tr>', ]); }); rtab.push('</table>'); $("#nodelist").empty().append(rtab.join('\n')); } Loading Loading @@ -141,29 +150,48 @@ function parse_cmd_state(res){ $("#nodelist").empty().append(rtab.join('\n')); } function parse_cmd_testing(res){ function parse_cmd_ifconfig_init(res){ $(res).find('response').each(function(){ const name = $(this).find('node').text(); const state = $(this).find('state').text(); console.log(state); }); const ip = get_ipaddr_from_ifconfig(state); } update_slave_list(name); update_ip_list(ip); function parse_cmd_ifconfig(res){ let html = [ '<div class=\''+name+'\'>', '<input class=\'slave_checkbox\' type=\'checkbox\' checked />', '<label class=\'lbl_name\'>'+name+'</label>', '(<label class=\'lbl_ip\'>'+ip+'</label>)', '</div>' ].join('\n'); $("#slavenodes").append(html); $(res).find('response').each(function(){ const name = $(this).find('node').text(); const state = $(this).find('state').text(); const ip = get_ipaddr_from_ifconfig(state); console.log(ip); $("."+name+" label").html(name+" ("+ip+")"); }); $(".slave_checkbox").on("change",function(e){ let checked = $(this).prop("checked"); let name = $(this).parent().find("label").html(); if (!checked) { appData.slaves_selected = appData.slaves_selected.filter(item => item!==name); }else{ appData.slaves_selected.push(name); } }); function send_command(targets, cmd, callback){ } function send_command(cmd,targets,callback){ if (callback===undefined) { callback = function(res){ console.log(res); //console.log($(res).find('document').html()); } } let targets_str = ""; if (Array.isArray(targets)){ Loading @@ -186,20 +214,16 @@ function send_command(targets, cmd, callback){ success: callback }); return 0; } function update_slave_list(name){ appData.slaves.push(name); appData.slaves_selected.push(name); let html = [ '<div class=\''+name+'\'>', '<input class=\'slave_checkbox\' type=\'checkbox\' checked />', '<label>'+name+'</label>', '</div>' ].join('\n'); $("#slavenodes").append(html); } function update_ip_list(ip){ appData.ips.push(ip); } function update_master_node(newvalue){ Loading Loading
public/javascripts/index.js +88 −64 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ let MasterNode = "-"; let appData = { master: "-", slaves: [], ips: [], slaves_selected: [] } Loading @@ -24,7 +25,7 @@ function init(){ update_master_node(); // init button $('#testbutton').on('click', function(e){ $('#listmasters').on('click', function(e){ $.ajax({ url: '/api/nodelist', Loading @@ -43,9 +44,8 @@ function init(){ $(".master_nodes").on('click',function(e){ update_master_node($(this).html()); $("#nodelist").empty(); //send_command(appData.slaves,'list', parse_cmd_list_init); // go straight with ifconfig send_command(appData.slaves,'ifconfig', parse_cmd_ifconfig_init); send_command('ifconfig', appData.slaves, parse_cmd_ifconfig_init); }); } Loading @@ -53,67 +53,76 @@ function init(){ }); $('#testbutton1').on('click', function(e){ send_command(appData.slaves_selected,'list', parse_cmd_list); }); $('#testbutton2').on('click', function(e){ send_command(appData.slaves_selected,'state', parse_cmd_state); send_command('state', appData.slaves_selected, parse_cmd_state); }); // need a post request $('#testbutton3').on('click', function(e){ // examples: //let cmd = "wget -qO- -o /dev/null 'http://localhost/parsedit.php?immediate&TRIG'"; //let cmd = "ifconfig"; //let cmd = "wget -qO- -o /dev/null 'http://localhost/diagnostics.php'"; const cmd = "ifconfig"; send_command(appData.slaves_selected, cmd, parse_cmd_ifconfig); //const cmd = "ifconfig"; let path = "/sys/devices/soc0/elphel393-detect_sensors@0"; let cmd = [ 'cd '+path, 'cat port_mux0', 'cat sensor00', 'cat sensor01', 'cat sensor02', 'cat sensor03', 'cat port_mux1', 'cat sensor10', 'cat sensor11', 'cat sensor12', 'cat sensor13', 'cat port_mux2', 'cat sensor20', 'cat sensor21', 'cat sensor22', 'cat sensor23', 'cat port_mux3', 'cat sensor30', 'cat sensor31', 'cat sensor32', 'cat sensor33' ].join(';'); send_command(cmd, appData.slaves_selected,parse_cmd_testing); }); } function parse_cmd_list_init(res){ function parse_cmd_testing(res){ $(res).find('target').each(function(){ const name = $(this).text(); update_slave_list(name); }); $(res).find('response').each(function(){ $(".slave_checkbox").on("change",function(e){ let checked = $(this).prop("checked"); let name = $(this).parent().find("label").html(); console.log(checked+" "+name); if (!checked) { appData.slaves_selected = appData.slaves_selected.filter(item => item!==name); const name = $(this).find('node').text(); let state = $(this).find('state').text(); const xmlstate = $.parseXML(`<document>${state}</document>`); if ($(xmlstate).find("error").length!=0){ console.log(name+" is not 10393"); $("."+name).append(" <b style='color:DarkOrange;'>not 10393</b>"); }else{ appData.slaves_selected.push(name); let sensors = state.trim().split('\n'); //console.log(sensors); for(let i=0;i<4;i++){ let mux = sensors[5*i]; console.log("port "+i+" mux is "+mux); if (mux==="none"){ console.log("sensor is "+sensors[5*i+1]); }else{ console.log("warning: mux is not 'none'"); } } }); } function parse_cmd_list(res){ let rtab = [ '<table class="slave_table">', ' <tr>', ' <th>Slave</th>', ' </tr>' ]; $(res).find('target').each(function(){ const name = $(this).text(); //update_slave_list(name); rtab = rtab.concat([ '<tr>', ' <td class="name">'+name+'</td>', '</tr>', ]); }); rtab.push('</table>'); $("#nodelist").empty().append(rtab.join('\n')); } Loading Loading @@ -141,29 +150,48 @@ function parse_cmd_state(res){ $("#nodelist").empty().append(rtab.join('\n')); } function parse_cmd_testing(res){ function parse_cmd_ifconfig_init(res){ $(res).find('response').each(function(){ const name = $(this).find('node').text(); const state = $(this).find('state').text(); console.log(state); }); const ip = get_ipaddr_from_ifconfig(state); } update_slave_list(name); update_ip_list(ip); function parse_cmd_ifconfig(res){ let html = [ '<div class=\''+name+'\'>', '<input class=\'slave_checkbox\' type=\'checkbox\' checked />', '<label class=\'lbl_name\'>'+name+'</label>', '(<label class=\'lbl_ip\'>'+ip+'</label>)', '</div>' ].join('\n'); $("#slavenodes").append(html); $(res).find('response').each(function(){ const name = $(this).find('node').text(); const state = $(this).find('state').text(); const ip = get_ipaddr_from_ifconfig(state); console.log(ip); $("."+name+" label").html(name+" ("+ip+")"); }); $(".slave_checkbox").on("change",function(e){ let checked = $(this).prop("checked"); let name = $(this).parent().find("label").html(); if (!checked) { appData.slaves_selected = appData.slaves_selected.filter(item => item!==name); }else{ appData.slaves_selected.push(name); } }); function send_command(targets, cmd, callback){ } function send_command(cmd,targets,callback){ if (callback===undefined) { callback = function(res){ console.log(res); //console.log($(res).find('document').html()); } } let targets_str = ""; if (Array.isArray(targets)){ Loading @@ -186,20 +214,16 @@ function send_command(targets, cmd, callback){ success: callback }); return 0; } function update_slave_list(name){ appData.slaves.push(name); appData.slaves_selected.push(name); let html = [ '<div class=\''+name+'\'>', '<input class=\'slave_checkbox\' type=\'checkbox\' checked />', '<label>'+name+'</label>', '</div>' ].join('\n'); $("#slavenodes").append(html); } function update_ip_list(ip){ appData.ips.push(ip); } function update_master_node(newvalue){ Loading