154 lines
5.5 KiB
HTML
154 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>GMTROM - True Random Number Generator</title>
|
|
<link rel="stylesheet" type="text/css" href="style.css">
|
|
<link rel="icon" type="image/png href="logomiddle.png">
|
|
</head>
|
|
<body>
|
|
<img src="logo.png" alt="Logo" class="logo">
|
|
<h1>GMTROM - True Random Number Generator</h1>
|
|
<form id="randomForm">
|
|
<input type="button" value="Initialize" id="initButton"><br><br>
|
|
<label for="quantity">Quantity of Random Numbers:</label>
|
|
<input type="number" id="quantity" name="quantity"><br><br>
|
|
<label for="bits">Number of Bits per Random Number:</label>
|
|
<input type="number" id="bits" name="bits"><br><br>
|
|
<input type="button" value="Generate" id="generateButton">
|
|
<input type="button" value="Shutdown" id="shutdownButton">
|
|
</form>
|
|
|
|
<div id="status"></div>
|
|
<div id="result"></div>
|
|
|
|
<script>
|
|
document.getElementById('initButton').addEventListener('click', function() {
|
|
fetch('https://172.16.78.57:5000/trng/randomNum/init')
|
|
.then(response => {
|
|
document.getElementById('status').innerText = 'Status: ' + response.status;
|
|
if (response.status === 200) {
|
|
document.getElementById('result').innerText = 'Successful operation; random number generator has been set to "standby mode".';
|
|
console.log('Initialisierung erfolgreich');
|
|
} else {
|
|
console.log('Fehler beim Initialisieren');
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Fehler beim Initialisieren:', error);
|
|
});
|
|
});
|
|
|
|
document.getElementById('generateButton').addEventListener('click', function(event) {
|
|
var quantity = document.getElementById('quantity').value;
|
|
var bits = document.getElementById('bits').value;
|
|
|
|
var url = 'https://172.16.78.57:5000/trng/randomNum/getRandom';
|
|
if (quantity && bits) {
|
|
url += '?quantity=' + quantity + '&numBits=' + bits;
|
|
}
|
|
|
|
fetch(url)
|
|
.then(response => {
|
|
document.getElementById('status').innerText = 'Status: ' + response.status;
|
|
return response.json();
|
|
})
|
|
.then(data => {
|
|
var resultDiv = document.getElementById('result');
|
|
resultDiv.innerHTML = ''; // Clear previous results
|
|
|
|
var table = document.createElement('table');
|
|
table.classList.add('table');
|
|
var thead = document.createElement('thead');
|
|
var tbody = document.createElement('tbody');
|
|
var trHead = document.createElement('tr');
|
|
var thNr = document.createElement('th');
|
|
var thCopy = document.createElement('th');
|
|
var thRandom = document.createElement('th');
|
|
var copyAllButton = document.createElement('button');
|
|
|
|
thNr.textContent = 'ID';
|
|
thCopy.textContent = ' ';
|
|
thRandom.textContent = 'Random Number';
|
|
|
|
trHead.appendChild(thNr);
|
|
trHead.appendChild(thCopy);
|
|
trHead.appendChild(thRandom);
|
|
thead.appendChild(trHead);
|
|
table.appendChild(thead);
|
|
|
|
var hexNumbers = JSON.parse(data.randomNumbers);
|
|
for (var i = 0; i < hexNumbers.length; i++) {
|
|
var tr = document.createElement('tr');
|
|
var tdNr = document.createElement('td');
|
|
var tdCopy = document.createElement('td');
|
|
var tdRandom = document.createElement('td');
|
|
var copyButton = document.createElement('button');
|
|
|
|
tdNr.textContent = (i + 1).toString();
|
|
tdRandom.textContent = hexNumbers[i];
|
|
copyButton.textContent = 'Copy';
|
|
copyButton.classList.add('copy-button');
|
|
|
|
copyButton.addEventListener('click', function() {
|
|
copyToClipboard(this.parentElement.nextElementSibling.textContent);
|
|
});
|
|
|
|
tdCopy.appendChild(copyButton);
|
|
tr.appendChild(tdNr);
|
|
tr.appendChild(tdCopy);
|
|
tr.appendChild(tdRandom);
|
|
tbody.appendChild(tr);
|
|
}
|
|
|
|
table.appendChild(tbody);
|
|
resultDiv.appendChild(table);
|
|
|
|
copyAllButton.textContent = 'Copy all';
|
|
copyAllButton.classList.add('copy-button');
|
|
|
|
copyAllButton.addEventListener('click', function() {
|
|
var allHexNumbers = hexNumbers.join(', ');
|
|
copyToClipboard(allHexNumbers);
|
|
});
|
|
|
|
resultDiv.insertBefore(copyAllButton, table);
|
|
})
|
|
.catch(error => {
|
|
console.error('Fehler beim Abrufen der Daten:', error);
|
|
});
|
|
});
|
|
|
|
function copyToClipboard(text) {
|
|
var textArea = document.createElement('textarea');
|
|
textArea.value = text;
|
|
document.body.appendChild(textArea);
|
|
textArea.select();
|
|
document.execCommand('copy');
|
|
document.body.removeChild(textArea);
|
|
|
|
// Anzeigen eines Popups zur Bestätigung der Kopie
|
|
window.alert('Der Text wurde in die Zwischenablage kopiert!');
|
|
}
|
|
|
|
document.getElementById('shutdownButton').addEventListener('click', function() {
|
|
fetch('https://172.16.78.57:5000/trng/randomNum/shutdown')
|
|
.then(response => {
|
|
document.getElementById('status').innerText = 'Status: ' + response.status;
|
|
if (response.status === 200) {
|
|
document.getElementById('result').innerText = 'Successful operation; random number generator has been shut down.';
|
|
console.log('Shutdown erfolgreich');
|
|
//document.getElementById('quantity').value = ''; // Textfeld "Quantity" zurücksetzen
|
|
//document.getElementById('bits').value = ''; // Textfeld "Bits" zurücksetzen
|
|
//document.getElementById('status').innerText = ''; // Element "status" zurücksetzen
|
|
//document.getElementById('result').innerText = ''; // Element "result" zurücksetzen
|
|
} else {
|
|
console.log('Fehler beim Shutdown');
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Fehler beim Shutdown:', error);
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |