Commit 2b55a0e4 authored by Robert Czechowski's avatar Robert Czechowski

Enhance admin cleanup interface with javascript and alert boxes

parent 88f5d2eb
......@@ -3,7 +3,7 @@
<p>Dies Löscht alle verwalteten Schüleraccounts, die länger als 180 Tage nicht genutzt wurden, sowie alle Lehreraccounts länger als 3 Jahre und alle anderen Accounts die länger als 10 Jahre nicht genutzt wurden.</p>
<p>Sollte nicht während eines Wettbewerbes oder nach Beginn der Anmeldephase ausgeführt werden, falls ein Lehrer noch plant ältere Accounts zu verwenden. Bestenfalls vor Anmeldebeginn und nach Ende der zweiten Runde ausführen.</p>
<p>
<form action="cleanup/hard" method="post">
<form id="cleanup_hard" action="cleanup/hard" method="post">
<input type="hidden" name="csrf_token" value="{{csrf_token}}">
<input type="submit" value="Alte Daten löschen!">
</form>
......@@ -13,7 +13,7 @@
<p>Löscht Sitzungen von Benutzern, die sich nicht eingeloggt haben, wenn diese älter als 30 Tage sind.</p>
<p>Kann jederzeit gefahrlos ausgeführt werden.</p>
<p>
<form action="cleanup/session" method="post">
<form id="cleanup_session" action="cleanup/session" method="post">
<input type="hidden" name="csrf_token" value="{{csrf_token}}">
<input type="submit" value="Temporäre Sitzungen löschen!">
</form>
......@@ -23,8 +23,87 @@
<p>Löscht Teilnahmen, deren Accounts gelöscht wurden.</p>
<p>Kann jederzeit gefahrlos ausgeführt werden.</p>
<p>
<form action="cleanup/soft" method="post">
<form id="cleanup_soft" action="cleanup/soft" method="post">
<input type="hidden" name="csrf_token" value="{{csrf_token}}">
<input type="submit" value="Verwaiste Teilnahmen löschen!">
</form>
</p>
<script>
document.getElementById("cleanup_hard").onsubmit = function(event) {
var xhr = new XMLHttpRequest();
xhr.open("POST", document.getElementById("cleanup_hard").action, true);
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE) {
if (this.status === 200) {
result = JSON.parse(this.responseText);
if (result.status == "ok") {
alert("Daten erfolgreich gelöscht:\n"
+ result.n_user + " Schüler\n"
+ result.n_group + " Gruppen\n"
+ result.n_teacher + " Lehrer\n"
+ result.n_other + " Andere\n"
);
} else {
alert("Kann Daten nicht löschen: " + result.reason);
}
}
else {
alert("Request error " + this.status + ": " + this.statusText);
}
}
}
xhr.send("csrf_token={{csrf_token}}");
return false;
};
document.getElementById("cleanup_session").onsubmit = function(event) {
var xhr = new XMLHttpRequest();
xhr.open("POST", document.getElementById("cleanup_session").action, true);
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE) {
if (this.status === 200) {
result = JSON.parse(this.responseText);
if (result.status == "ok") {
alert("Daten erfolgreich gelöscht:\n"
+ result.n_session + " Sitzungen\n"
);
} else {
alert("Kann Daten nicht löschen: " + result.reason);
}
}
else {
alert("Request error " + this.status + ": " + this.statusText);
}
}
}
xhr.send("csrf_token={{csrf_token}}");
return false;
};
document.getElementById("cleanup_soft").onsubmit = function(event) {
var xhr = new XMLHttpRequest();
xhr.open("POST", document.getElementById("cleanup_soft").action, true);
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE) {
if (this.status === 200) {
result = JSON.parse(this.responseText);
if (result.status == "ok") {
alert("Daten erfolgreich gelöscht:\n"
+ result.n_submission + " Einsendungen\n"
+ result.n_grade + " Ergebnisse\n"
+ result.n_participation + " Teilnahmen\n"
);
} else {
alert("Kann Daten nicht löschen: " + result.reason);
}
}
else {
alert("Request error " + this.status + ": " + this.statusText);
}
}
}
xhr.send("csrf_token={{csrf_token}}");
return false;
};
</script>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment