143 lines
4.5 KiB
JavaScript
143 lines
4.5 KiB
JavaScript
function addFrequencyInput(system){
|
|
// Create new input
|
|
var icon = document.createElement('i');
|
|
icon.classList.add('bi');
|
|
icon.classList.add('bi-x-circle');
|
|
icon.classList.add('text-black');
|
|
|
|
var remove = document.createElement('a');
|
|
remove.classList.add('align-middle');
|
|
remove.classList.add('float-left');
|
|
remove.href = '#'
|
|
remove.appendChild(icon);
|
|
|
|
var childColRemoveIcon = document.createElement('div');
|
|
childColRemoveIcon.classList.add('col-2');
|
|
childColRemoveIcon.appendChild(remove);
|
|
|
|
var input = document.createElement('input');
|
|
input.classList.add('form-control');
|
|
input.id = 'nodeFreq';
|
|
input.type = 'text';
|
|
|
|
var childColInput = document.createElement('div');
|
|
childColInput.classList.add('col-10');
|
|
childColInput.appendChild(input);
|
|
|
|
var childRow = document.createElement('div');
|
|
childRow.classList.add("row");
|
|
childRow.classList.add("px-1");
|
|
childRow.appendChild(childColInput);
|
|
childRow.appendChild(childColRemoveIcon);
|
|
|
|
var colParent = document.createElement('div');
|
|
colParent.classList.add("col-md-6");
|
|
colParent.classList.add("mb-1");
|
|
colParent.appendChild(childRow);
|
|
|
|
document.getElementById(`frequencyRow_${system.replaceAll(" ", "_")}`).appendChild(colParent);
|
|
}
|
|
|
|
function createToast(notificationMessage){
|
|
const toastTitle = document.createElement('strong');
|
|
toastTitle.classList.add('me-auto');
|
|
toastTitle.appendChild(document.createTextNode("Server Notification"));
|
|
|
|
const toastTime = document.createElement('small');
|
|
toastTime.appendChild(document.createTextNode(Date.now().toLocaleString()));
|
|
|
|
const toastClose = document.createElement('button');
|
|
toastClose.type = 'button';
|
|
toastClose.classList.add('btn-close');
|
|
toastClose.ariaLabel = 'Close';
|
|
toastClose.setAttribute('data-bs-dismiss', 'toast');
|
|
|
|
const toastHeader = document.createElement('div');
|
|
toastHeader.classList.add('toast-header');
|
|
toastHeader.appendChild(toastTitle);
|
|
toastHeader.appendChild(toastTime);
|
|
toastHeader.appendChild(toastClose);
|
|
|
|
|
|
const toastMessage = document.createElement('p');
|
|
toastMessage.classList.add("px-2");
|
|
toastMessage.appendChild(document.createTextNode(notificationMessage));
|
|
|
|
const toastBody = document.createElement('div');
|
|
toastBody.classList.add('toast-body');
|
|
toastBody.appendChild(toastMessage);
|
|
|
|
const wrapperDiv = document.createElement('div');
|
|
wrapperDiv.classList.add('toast');
|
|
wrapperDiv.role ='alert';
|
|
wrapperDiv.ariaLive = 'assertive';
|
|
wrapperDiv.ariaAtomic = true;
|
|
wrapperDiv.appendChild(toastHeader);
|
|
wrapperDiv.appendChild(toastMessage);
|
|
|
|
document.getElementById("toastZone").appendChild(wrapperDiv);
|
|
|
|
$('.toast').toast('show');
|
|
}
|
|
|
|
function sendNodeHeartbeat(nodeId){
|
|
const Http = new XMLHttpRequest();
|
|
const url='/nodes/'+nodeId;
|
|
Http.open("GET", url);
|
|
Http.send();
|
|
|
|
Http.onloadend = (e) => {
|
|
console.log(Http.responseText)
|
|
createToast(Http.responseText);
|
|
}
|
|
}
|
|
|
|
function joinServer(){
|
|
const preset = document.getElementById("selectRadioPreset").value;
|
|
const nodeId = document.getElementById("nodeId").value;
|
|
const clientId = document.getElementById("inputDiscordClientId").value;
|
|
const channelId = document.getElementById("inputDiscordChannelId").value;
|
|
|
|
const reqBody = {
|
|
'preset': preset,
|
|
'nodeId': nodeId,
|
|
'clientId': clientId,
|
|
'channelId': channelId
|
|
};
|
|
|
|
console.log(reqBody);
|
|
|
|
const Http = new XMLHttpRequest();
|
|
const url='/admin/join';
|
|
Http.open("POST", url);
|
|
Http.setRequestHeader("Content-Type", "application/json");
|
|
Http.send(JSON.stringify(reqBody));
|
|
|
|
Http.onloadend = (e) => {
|
|
const responseObject = JSON.parse(Http.responseText)
|
|
console.log(Http.status);
|
|
console.log(responseObject);
|
|
createToast(`${responseObject.name} will join shortly`);
|
|
$("#joinModal").modal('toggle');
|
|
}
|
|
}
|
|
|
|
function leaveServer(){
|
|
const nodeId = document.getElementById("nodeId").value;
|
|
const reqBody = {
|
|
'nodeId': nodeId
|
|
};
|
|
|
|
const Http = new XMLHttpRequest();
|
|
const url='/admin/leave';
|
|
Http.open("POST", url);
|
|
Http.setRequestHeader("Content-Type", "application/json");
|
|
Http.send(JSON.stringify(reqBody));
|
|
|
|
Http.onloadend = (e) => {
|
|
const responseObject = JSON.parse(Http.responseText)
|
|
console.log(Http.status);
|
|
console.log(responseObject);
|
|
createToast(`${responseObject} is leaving`);
|
|
}
|
|
} |