Working ! 06/12/2024
This commit is contained in:
@@ -1,232 +1,170 @@
|
||||
let socket;
|
||||
let index_setinterval;
|
||||
|
||||
/**
|
||||
* Executed when document is ready
|
||||
*/
|
||||
$(document).ready(function(){
|
||||
socket = io(":9092/socketio");
|
||||
socket.on("connect", () => {console.log("Connected to server")});
|
||||
socket.on("disconnect", (reason) => {console.log("Disconnected from server because of " + reason)});
|
||||
});
|
||||
|
||||
/**
|
||||
* Executed when index page is loaded
|
||||
*/
|
||||
function indexload(){
|
||||
console.log("Index loaded");
|
||||
index_setinterval = setInterval(()=>{
|
||||
if (socket.connected){
|
||||
$("#sipStatus").css("color", "green");
|
||||
$("#cpuStatus").css("color", "green");
|
||||
$("#ramStatus").css("color", "green");
|
||||
$("#storageStatus").css("color", "green");
|
||||
$("#networkStatus").css("color", "green");
|
||||
$("#dialButton").prop("disabled", false);
|
||||
$("#hangupButton").prop("disabled", false);
|
||||
$("#dialNumber").prop("disabled",false);
|
||||
} else {
|
||||
$("#sipStatus").text("Not connected to server").css("color", "red");
|
||||
$("#cpuStatus").text("Not connected to server").css("color", "red");
|
||||
$("#ramStatus").text("Not connected to server").css("color", "red");
|
||||
$("#storageStatus").text("Not connected to server").css("color", "red");
|
||||
$("#networkStatus").text("Not connected to server").css("color", "red");
|
||||
$("#dialButton").prop("disabled", true);
|
||||
$("#hangupButton").prop("disabled", true);
|
||||
$("#dialNumber").prop("disabled", true);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed when index page is unloaded
|
||||
*/
|
||||
function indexunload(){
|
||||
console.log("Index unloaded");
|
||||
clearInterval(index_setinterval);
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed when setting page is loaded
|
||||
*/
|
||||
function settingload(){
|
||||
console.log("Setting loaded");
|
||||
if (socket.connected){
|
||||
$("#btnSaveLogin")
|
||||
.prop("disabled", false)
|
||||
.on("click", () =>{
|
||||
let username = $("#webUsername").text();
|
||||
let password = $("#webPassword").text();
|
||||
if (isValidString(username) && isValidString(password)){
|
||||
setLogin(username, password);
|
||||
} else {
|
||||
alert("Please enter valid username and password");
|
||||
}
|
||||
});
|
||||
$("#btnSaveSIP")
|
||||
.prop("disabled", false)
|
||||
.on("click", () =>{
|
||||
let server = $("#sipServer").text();
|
||||
let port = $("#sipPort").text();
|
||||
let username = $("#sipUsername").text();
|
||||
let password = $("#sipPassword").text();
|
||||
if (isValidString(server) && isValidPort(port) && isValidString(username) && isValidString(password)){
|
||||
setSipSetting(server, port, username, password);
|
||||
} else {
|
||||
alert("Please enter valid server, port, username and password");
|
||||
}
|
||||
});
|
||||
getLogin();
|
||||
getSipSetting();
|
||||
} else {
|
||||
$("#webUsername").text("Not connected to server").css("color", "red");
|
||||
$("#webPassword").text("Not connected to server").css("color", "red");
|
||||
$("#sipServer").text("Not connected to server").css("color", "red");
|
||||
$("#sipPort").text("Not connected to server").css("color", "red");
|
||||
$("#sipUsername").text("Not connected to server").css("color", "red");
|
||||
$("#sipPassword").text("Not connected to server").css("color", "red");
|
||||
$("#btnSaveLogin").prop("disabled", true);
|
||||
$("#btnSaveSIP").prop("disabled", true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get LoginUsername and LoginPassword data from server
|
||||
*/
|
||||
function getLogin(){
|
||||
socket.emit(
|
||||
"command",
|
||||
{request: "getLogin", data:""},
|
||||
(reply)=>{
|
||||
if (reply.response==="success"){
|
||||
/**
|
||||
* @type {Object}
|
||||
* @property {string} Username
|
||||
* @property {string} Password
|
||||
*/
|
||||
let data = JSON.parse(reply.data);
|
||||
$("#webUsername").text(data.Username).css("color", "black");
|
||||
$("#webPassword").text(data.Password).css("color", "black");
|
||||
} else {
|
||||
$("#webUsername").text("Error").css("color", "red");
|
||||
$("#webPassword").text("Error").css("color", "red");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set LoginUsername and LoginPassword data to server
|
||||
*
|
||||
* @param {string} username Login Username
|
||||
* @param {string} password Login Password
|
||||
*/
|
||||
function setLogin(username, password){
|
||||
socket.emit(
|
||||
"command",
|
||||
{request: "setLogin", data:JSON.stringify({Username:username, Password:password})},
|
||||
(reply)=>{
|
||||
if (reply.response==="success"){
|
||||
alert("Login saved successfully");
|
||||
} else {
|
||||
alert("Failed to save login");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SIP Setting data from server
|
||||
*/
|
||||
function getSipSetting(){
|
||||
socket.emit(
|
||||
"command",
|
||||
{request: "getSipSetting", data:""},
|
||||
(reply)=>{
|
||||
if (reply.response==="success"){
|
||||
/**
|
||||
* @type {Object}
|
||||
* @property {string} Server
|
||||
* @property {number} Port
|
||||
* @property {string} Username
|
||||
* @property {string} Password
|
||||
*/
|
||||
let data = JSON.parse(reply.data);
|
||||
$("#sipServer").text(data.Server).css("color", "black");
|
||||
$("#sipPort").text(data.Port).css("color", "black");
|
||||
$("#sipUsername").text(data.Username).css("color", "black");
|
||||
$("#sipPassword").text(data.Password).css("color", "black");
|
||||
} else {
|
||||
$("#sipServer").text("Error").css("color", "red");
|
||||
$("#sipPort").text("Error").css("color", "red");
|
||||
$("#sipUsername").text("Error").css("color", "red");
|
||||
$("#sipPassword").text("Error").css("color", "red");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set SIP Setting data to server
|
||||
* @param {string} server
|
||||
* @param {number} port
|
||||
* @param {string} username
|
||||
* @param {string} password
|
||||
*/
|
||||
function setSipSetting(server, port, username, password){
|
||||
socket.emit(
|
||||
"command",
|
||||
{request: "setSipSetting", data:JSON.stringify({Server:server, Port:port, Username:username, Password:password})},
|
||||
(reply)=>{
|
||||
if (reply.response==="success"){
|
||||
alert("SIP setting saved successfully");
|
||||
} else {
|
||||
alert("Failed to save SIP setting");
|
||||
}
|
||||
}
|
||||
)
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed when setting page unloaded
|
||||
*/
|
||||
function settingunload(){
|
||||
console.log("Setting unloaded");
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed when login page is loaded
|
||||
*/
|
||||
function loginload(){
|
||||
console.log("Login loaded");
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed when login page is unloaded
|
||||
*/
|
||||
function loginunload(){
|
||||
console.log("Login unloaded");
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the string is valid
|
||||
* @param {string} str String to check
|
||||
* @return {boolean} True if the string is not empty
|
||||
*/
|
||||
function isValidString(str){
|
||||
return typeof str === "string" && str.trim().length > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the port is valid
|
||||
* @param str {string|number} Port to check
|
||||
* @return {boolean} True if the port is between 0 and 65535
|
||||
*/
|
||||
function isValidPort(str){
|
||||
if (typeof str === "number"){
|
||||
return str > 0 && str <= 65535;
|
||||
} else if (typeof str === "string"){
|
||||
let port = parseInt(str);
|
||||
return port > 0 && port <= 65535;
|
||||
if (socket && socket.connected) {
|
||||
socket.disconnect();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user