elektronisk-kadaver-tidtaki.../registrering.php

128 lines
3.4 KiB
PHP
Raw Normal View History

2024-02-16 11:14:45 +00:00
<!DOCTYPE html>
<html lang="no">
<head>
2024-10-08 19:41:41 +00:00
<meta charset="UTF-8" />
<title>EKT</title>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="description" content="Elektronisk Kadaver Tidtakningssystem" />
2024-10-08 10:55:26 +00:00
<link rel="stylesheet" href="https://matcha.mizu.sh/matcha.css">
2024-02-16 11:14:45 +00:00
<style>
.passed {
background-color: #8ff0a4;
}
2024-10-08 19:41:41 +00:00
fieldset {
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
}
2024-02-16 11:14:45 +00:00
</style>
</head>
<body>
2024-10-08 19:41:41 +00:00
<fieldset>
<legend>Velg post</legend>
<label>
<input type="radio" name="post" value="1">
1. Matpost
</label>
<label>
<input type="radio" name="post" value="2">
2. Matpost
</label>
<label>
<input type="radio" name="post" value="3">
Mål
</label>
</fieldset>
2024-10-08 10:55:26 +00:00
2024-10-08 19:41:41 +00:00
<input id="search" type="number" class="form-control" onkeyup="filterTable()" placeholder="Søk">
2024-10-08 10:55:26 +00:00
<br>
2024-02-16 11:14:45 +00:00
<table>
<tbody id="runners">
</tbody>
</table>
</body>
2024-10-08 10:55:26 +00:00
<?php
$action = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';
2024-10-08 19:41:41 +00:00
print_r($action)
2024-10-08 10:55:26 +00:00
?>
2024-02-16 11:14:45 +00:00
<script>
// Hvilken matpost vi er på:
2024-10-08 19:41:41 +00:00
var control = location.search[1];
2024-02-16 11:14:45 +00:00
function register_runner(id) {
2024-10-08 19:41:41 +00:00
control = document.querySelector('input[name="post"]:checked').value;
2024-02-16 11:14:45 +00:00
let formData = new FormData();
formData.append(name= 'control', value=control);
formData.append(name= 'id', value=id);
2024-02-16 20:26:46 +00:00
time = new Date(Date.now()).toISOString().split('.')[0]+"Z"
2024-02-16 11:14:45 +00:00
formData.append('time', time);
fetch("upload.php", {
method: "POST",
body: formData,
});
};
function update_runner_status(id, name) {
update_row(id, name, true);
register_runner(id);
}
function read_db() {
let xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "db.csv", false);
xmlHttp.send(null);
return xmlHttp.responseText;
}
function create_row(id, name, passed) {
if (!passed) {
button = `<button onclick="update_runner_status(${id}, '${name}')">✓</button>`
return `<tr id="${id}"><td>${id}</td><td>${name}</td><td>${button}</td></tr>`
}
else {
button = `<button onclick="update_runner_status(${id}, '${name}')">Angre</button>`
return `<tr id="${id}" class="passed"><td>${id}</td><td>${name}</td><td>${button}</td></tr>`
}
}
function create_rows(csv) {
csv = csv.split('\n')
2024-10-08 19:41:41 +00:00
rows = "<tr><th>#</th><th>Navn</th><th></th>";
2024-02-16 11:14:45 +00:00
for (i in csv) {
data = csv[i].split(",")
rows += create_row(data[0], data[1], false)
}
return rows
}
2024-10-08 10:55:26 +00:00
function filterTable() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("search");
filter = input.value.toUpperCase();
table = document.getElementById("runners");
tr = table.getElementsByTagName("tr");
2024-02-16 11:14:45 +00:00
2024-10-08 10:55:26 +00:00
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td");
for (var j = 0; j < td.length; j++) {
txtValue = td[j].textContent || td[j].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
break;
} else {
tr[i].style.display = "none";
}
}
}
}
2024-02-16 11:14:45 +00:00
function update_row(id, name, passed) {
row = document.getElementById(id)
row.innerHTML = create_row(id, name, passed)
row.classList.add("passed");
}
table = document.getElementById("runners")
table.innerHTML = create_rows(read_db())
</script>
<html>