let services = []; let connection = null; getservices(); setupSignalR(); function setupSignalR() { connection = new signalR.HubConnectionBuilder() .withUrl("https://localhost:5001/hub") .configureLogging(signalR.LogLevel.Information) .build(); connection.on("ServiceCreated", (user, message) => { getservices(); }); connection.on("ServiceDeleted", (user, message) => { getservices(); }); connection.on("ServiceUpdated", (user, message) => { getservices(); }); connection.onclose(async () => { await start(); }); start(); } async function start() { try { await connection.start(); console.log("SignalR Connected."); } catch (err) { console.log(err); setTimeout(start, 5000); } }; async function getservices() { await fetch('https://localhost:5001/api/Service') .then(x => x.json()) .then(y => { services = y; console.log(services); display(); }); } function display() { document.getElementById('saveresult').innerHTML = ''; document.getElementById('forms').innerHTML = ''; document.getElementById('resultarea').innerHTML = ''; services.forEach(t => { document.getElementById('resultarea').innerHTML += '' + t.id + '' + t.name + '' + '' + '' + '' + ''; }); document.getElementById('resultarea').innerHTML += '' + '' + '' + '' + ''; } function addservice() { document.getElementById('forms').innerHTML = ''; document.getElementById('forms').innerHTML += '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
ID
Name
IP address
Port
Version
Account
Service domain
Notes
Maintainer ID
'; } function editservice(id) { existing_item = services.find(x => x.id == id); document.getElementById('forms').innerHTML = ''; document.getElementById('forms').innerHTML += '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
ID
Name
IP address
Port
Version
Account
Service domain
Notes
Maintainer ID
'; } function saveservice(method) { if (method != 'POST' && method != 'PUT') { console.error('Invalid method: ' + method); return; } service_id = document.getElementById('in_id').value; service_name = document.getElementById('in_name').value; service_ip = document.getElementById('in_ip_address').value; service_port = document.getElementById('in_port').value; service_version = document.getElementById('in_version').value; service_account = document.getElementById('in_account').value; service_service_domain = document.getElementById('in_service_domain').value; service_notes = document.getElementById('in_notes').value; service_maintainer_id = document.getElementById('in_maintainer_id').value; fetch('https://localhost:5001/api/Service', { method: method, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: service_id, name: service_name, ip: service_ip, port: service_port, version: service_version, account: service_account, servicE_DOMAIN: service_service_domain, notes: service_notes, maintaineR_ID: service_maintainer_id }) }) .then(response => response) .then(data => { console.log("Success: ", data) document.getElementById('forms').innerHTML = ''; document.getElementById('saveresult').innerHTML = ''; document.getElementById('saveresult').innerHTML += 'Saved service ' + service_name + ' successfully'; getservices(); }) .catch(error => { console.error("Error: ", error); document.getElementById('saveresult').innerHTML = ''; document.getElementById('saveresult').innerHTML += 'Failed to save service ' + service_name; }); } function deleteservice(id) { document.getElementById('forms').innerHTML = ''; fetch('https://localhost:5001/api/Service/' + id, { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, }) .then(response => response) .then(data => { console.log("Success: ", data) document.getElementById('saveresult').innerHTML = ''; document.getElementById('saveresult').innerHTML += 'Deleted service number ' + id + ' successfully'; getservices(); }) .catch(error => console.error("Error: ", error)); }