Files
SIPIntercom/WebContentt/public/assets/js/app.js
2024-12-18 13:32:17 +07:00

235 lines
6.8 KiB
JavaScript

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 clearDialNumber(){
$('#dialNumber').val('');
}
function appendDialNumber(number){
console.log('Append number: '+number);
$('#dialNumber').val($('#dialNumber').val()+number);
}
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('<option value="">Select Logfile</option>');
data.forEach((log)=>{
logList.append('<option value="'+log+'">'+log+'</option>');
});
});
});
}
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 = '<tr>';
str += '<td>'+log.Date+'</td>';
str += '<td>'+log.Time+'</td>';
str += '<td>'+log.Method+'</td>';
str += '<td>'+log.Message+'</td>';
str += '</tr>';
tablebody.append(str);
});
});
});
}