let socket; function indexload(){ console.log("Index loaded"); socket = io.connect(':9092/socketio'); let intervalhandle; socket.on('connect', function() { console.log("Connected, id: " + socket.id); intervalhandle = setInterval(function(){ socket.emit('command', requestdata('getCpuInfo',''), (response)=>{ let data = isSuccess(response); if (data) { let cpuUsage = JSON.parse(data.cpuUsage); $('#cpuStatus').text('Temp: ' + data.cpuTemperature + ' °C, Usage: ' + cpuUsage.cpu + '%'); } }); socket.emit('command', requestdata('getRamInfo','') , (response)=>{ let data = isSuccess(response); if (data) { $('#ramStatus').text('Total: ' + data.totalKB + ' , Free: ' + data.availableKB + ' , Usage: ' + data.usedKB); } }); socket.emit('command', requestdata('getSipStatus',''), (response)=>{ let data = isSuccess(response); if (data) { $('#sipStatus').text(data); } }); socket.emit('command', requestdata('getNetworkInfo',''), (response)=>{ let data = isSuccess(response); if (data) { let txmap = JSON.parse(data.txmap); let rxmap = JSON.parse(data.rxmap); $('#networkStatus').text('TX: '+txmap.eth0+', RX: '+rxmap.eth0); } }); socket.emit('command', requestdata('getDiskInfo',''), (response)=>{ let data = isSuccess(response); if (data) { $('#storageStatus').text('Total: ' + data.total + ' , Free: ' + data.free); } }); }, 5000); }); socket.on('disconnect', function() { console.log("Disconnected"); clearInterval(intervalhandle); }); } /** * Create Socketio RequestData * @param {string} request * @param {string }data * @returns JsonObject */ function requestdata(request, data){ return {request: request, data: data}; } /** * Check if response is success * @param {Object} value response data to check * @return {null} if failed, Object if success */ function isSuccess(value){ if (value){ if (value.hasOwnProperty('response') && value.hasOwnProperty('data')){ if (value.response && value.response.length>0){ if (value.response==='success'){ let len = value.data.length; if (len>0){ if (value.data[0]==='{'){ if (value.data[len-1]==='}'){ return JSON.parse(value.data); } } } return value.data; } } } } return null; } function dialClick(){ console.log("Dial clicked"); let number = $('#dialNumber').val(); if (socket && socket.connected) socket.emit('command', requestdata('dial',number), (response)=>{ console.log("Dial response: "+response); }); } function hangupClick(){ console.log("Hangup clicked"); if (socket && socket.connected) socket.emit('command', requestdata('hangup',''), (response)=>{ console.log("Hangup response: "+response); }); } function settingload(){ console.log("Setting loaded"); if (socket && socket.connected) { socket.disconnect(); } fetch('/setting', {method: 'GET'}).then((response)=>{ response.json().then((data)=>{ //console.log(JSON.stringify(data)); $('#webUsername').val(data.loginSetting.Username); $('#webPassword').val(data.loginSetting.Password); $('#sipServer').val(data.sipSetting.Server); $('#sipPort').val(data.sipSetting.Port); $('#sipUsername').val(data.sipSetting.Username); $('#sipPassword').val(data.sipSetting.Password); }); }); } function sendLoginData(){ console.log("Send login data"); let loginData = { Username: $('#webUsername').val(), Password: $('#webPassword').val() }; fetch('/logindata', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(loginData) }).then((response)=>{ response.text().then((msg)=>{ alert(msg); }); }); } function sendSipData(){ console.log("Send SIP data"); let sipData = { Server: $('#sipServer').val(), Port: $('#sipPort').val(), Username: $('#sipUsername').val(), Password: $('#sipPassword').val() }; fetch('/sipdata', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(sipData) }).then((response)=>{ response.text().then((msg)=>{ alert(msg); }); }); } function loginload(){ console.log("Login loaded"); if (socket && socket.connected) { socket.disconnect(); } } function logload(){ console.log("Log loaded"); if (socket && socket.connected) { socket.disconnect(); } getLogFiles(); $('#logfiles').change(function(){ let logname = $('#logfiles').val(); if (logname && logname.length>0){ getLogData(logname); } }); } function getLogFiles(){ fetch('/logfiles', { method: 'POST', headers: { 'Content-Type': 'application/json' } }).then((response)=>{ response.json().then((data)=>{ let logList = $('#logfiles'); logList.empty(); logList.append(''); data.forEach((log)=>{ logList.append(''); }); }); }); } function getLogData(logname){ fetch('/logdata', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: logname }).then((response)=>{ response.json().then((data)=>{ let tablebody = $('#tablebody'); tablebody.empty(); data.forEach((log)=>{ let str = ''; str += ''+log.Date+''; str += ''+log.Time+''; str += ''+log.Method+''; str += ''+log.Message+''; str += ''; tablebody.append(str); }); }); }); }