forgotten doctype tag added, autocomplete off
This commit is contained in:
parent
0ca39da032
commit
2f7a031eca
74
admin.php
74
admin.php
@ -1,3 +1,5 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$raw_json_config = file_get_contents("data/config.json");
|
$raw_json_config = file_get_contents("data/config.json");
|
||||||
@ -22,13 +24,13 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
?>
|
?>
|
||||||
<h1><?php print($config_data->headline ?? "One Word Each"); ?> - Administration</h1>
|
<h1><?php print($config_data->headline ?? "One Word Each"); ?> - Administration</h1>
|
||||||
<p><a href="./">Startseite</a></p>
|
<p><a href="./">Startseite</a></p>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if (file_exists('data/admin_pwd')):
|
if (file_exists('data/admin_pwd')):
|
||||||
$token = $_COOKIE['owe_admin'];
|
$token = $_COOKIE['owe_admin'];
|
||||||
$pwd=base64_decode($token);
|
$pwd=base64_decode($token);
|
||||||
|
|
||||||
if (password_verify($pwd, file_get_contents('data/admin_pwd'))) {
|
if (password_verify($pwd, file_get_contents('data/admin_pwd'))) {
|
||||||
$login = true;
|
$login = true;
|
||||||
} else {
|
} else {
|
||||||
@ -36,37 +38,37 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
?>
|
?>
|
||||||
|
|
||||||
Du kannst Admin werden.
|
Du kannst Admin werden.
|
||||||
<form action="./admin.php" method="post">
|
<form action="./admin.php" method="post">
|
||||||
<label>Passwort: <input type="password" required name="set_pwd" style="font-size: xx-large; border: 2px solid white;"></label>
|
<label>Passwort: <input type="password" required name="set_pwd" style="font-size: xx-large; border: 2px solid white;"></label>
|
||||||
<button>Registrieren</button>
|
<button>Registrieren</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if (null !== $_POST['set_pwd']) {
|
if (null !== $_POST['set_pwd']) {
|
||||||
$pwd = $_POST['set_pwd'];
|
$pwd = $_POST['set_pwd'];
|
||||||
file_put_contents('data/admin_pwd', password_hash($pwd, PASSWORD_DEFAULT));
|
file_put_contents('data/admin_pwd', password_hash($pwd, PASSWORD_DEFAULT));
|
||||||
setcookie('owe_admin', base64_encode($pwd), ['httponly' => true]);
|
setcookie('owe_admin', base64_encode($pwd), ['httponly' => true]);
|
||||||
header('location: admin.php');
|
header('location: admin.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if ($login):
|
if ($login):
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h3>Archiv erstellen</h3>
|
<h3>Archiv erstellen</h3>
|
||||||
|
|
||||||
Bisherige Archive:
|
Bisherige Archive:
|
||||||
<p id="archive_links">
|
<p id="archive_links">
|
||||||
<?php
|
<?php
|
||||||
$content = file_get_contents("./data/archive-links.txt") or die("ungültiger Dateiname");
|
$content = file_get_contents("./data/archive-links.txt") or die("ungültiger Dateiname");
|
||||||
print($content);
|
print($content);
|
||||||
?></p>
|
?></p>
|
||||||
|
|
||||||
Neues Archiv:<br>
|
Neues Archiv:<br>
|
||||||
<label>Erster Tag: <input id="firstday" oninput="previewNewArchive();" type="date" style="font-size: xx-large; border: 2px solid white;"></label><br>
|
<label>Erster Tag: <input id="firstday" oninput="previewNewArchive();" type="date" style="font-size: xx-large; border: 2px solid white;"></label><br>
|
||||||
<label>Letzter Tag: <input id="lastday" oninput="previewNewArchive();" type="date" style="font-size: xx-large; border: 2px solid white;"></label><br>
|
<label>Letzter Tag: <input id="lastday" oninput="previewNewArchive();" type="date" style="font-size: xx-large; border: 2px solid white;"></label><br>
|
||||||
@ -76,23 +78,23 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
Inhalt: <span class="sentences" id="archive_sentences_preview"></span><br>
|
Inhalt: <span class="sentences" id="archive_sentences_preview"></span><br>
|
||||||
<button onclick="createArchive();">erstellen</button>
|
<button onclick="createArchive();">erstellen</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h3>Text bearbeiten</h3>
|
<h3>Text bearbeiten</h3>
|
||||||
|
|
||||||
<div class="sentences" id="edit_sentences_preview"></div>
|
<div class="sentences" id="edit_sentences_preview"></div>
|
||||||
<textarea id="edit_sentences_textarea" name="textarea" rows="25" style="width: 90%; font: inherit; background: transparent; border: 2px solid white; color: inherit;" oninput="refreshTextArea();"></textarea>
|
<textarea id="edit_sentences_textarea" name="textarea" rows="25" style="width: 90%; font: inherit; background: transparent; border: 2px solid white; color: inherit;" oninput="refreshTextArea();"></textarea>
|
||||||
<button onclick="saveEditedSentences();">speichern</button>
|
<button onclick="saveEditedSentences();">speichern</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php elseif (file_exists('data/admin_pwd')): ?>
|
<?php elseif (file_exists('data/admin_pwd')): ?>
|
||||||
|
|
||||||
Anmelden<br>
|
Anmelden<br>
|
||||||
<form action="./admin.php" method="post">
|
<form action="./admin.php" method="post">
|
||||||
<label>Passwort: <input type="password" required name="pwd" style="font-size: xx-large; border: 2px solid white;"></label>
|
<label>Passwort: <input type="password" required name="pwd" style="font-size: xx-large; border: 2px solid white;"></label>
|
||||||
<button>Anmelden</button>
|
<button>Anmelden</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (null !== $_POST['pwd']) {
|
if (null !== $_POST['pwd']) {
|
||||||
$pwd = $_POST['pwd'];
|
$pwd = $_POST['pwd'];
|
||||||
@ -103,40 +105,40 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
print("Nope, falsch");
|
print("Nope, falsch");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
endif; ?>
|
endif; ?>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var sentences;
|
var sentences;
|
||||||
|
|
||||||
function fetchSentences() {
|
function fetchSentences() {
|
||||||
fetch("./data/sentences.txt", {headers: {"Cache-Control": "no-cache, no-store"}})
|
fetch("./data/sentences.txt", {headers: {"Cache-Control": "no-cache, no-store"}})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
return response.text().then((text) => {
|
return response.text().then((text) => {
|
||||||
sentences = text;
|
sentences = text;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function previewNewArchive() {
|
function previewNewArchive() {
|
||||||
month_names = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
|
month_names = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
|
||||||
month_abbr = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
|
month_abbr = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
|
||||||
|
|
||||||
fd = document.getElementById("firstday").valueAsDate;
|
fd = document.getElementById("firstday").valueAsDate;
|
||||||
ld = document.getElementById("lastday").valueAsDate;
|
ld = document.getElementById("lastday").valueAsDate;
|
||||||
filename_preview = document.getElementById("archive_filename_preview");
|
filename_preview = document.getElementById("archive_filename_preview");
|
||||||
link_preview = document.getElementById("archive_link_preview");
|
link_preview = document.getElementById("archive_link_preview");
|
||||||
sentences_preview = document.getElementById("archive_sentences_preview");
|
sentences_preview = document.getElementById("archive_sentences_preview");
|
||||||
|
|
||||||
var display_first_month = (fd.getMonth() != ld.getMonth()) || (fd.getFullYear() != ld.getFullYear());
|
var display_first_month = (fd.getMonth() != ld.getMonth()) || (fd.getFullYear() != ld.getFullYear());
|
||||||
var display_first_year = fd.getFullYear() != ld.getFullYear();
|
var display_first_year = fd.getFullYear() != ld.getFullYear();
|
||||||
|
|
||||||
filename_preview.innerHTML = `sentences-archive-${fd.getDate()}${display_first_month ? '-'+month_abbr[fd.getMonth()] : ''}${display_first_year ? '-'+fd.getFullYear()%100 : ''}-${ld.getDate()}-${month_abbr[ld.getMonth()]}-${ld.getFullYear()%100}.txt`;
|
filename_preview.innerHTML = `sentences-archive-${fd.getDate()}${display_first_month ? '-'+month_abbr[fd.getMonth()] : ''}${display_first_year ? '-'+fd.getFullYear()%100 : ''}-${ld.getDate()}-${month_abbr[ld.getMonth()]}-${ld.getFullYear()%100}.txt`;
|
||||||
link_preview.innerHTML = `Archiveintrag ${fd.getDate()}. ${display_first_month ? month_names[fd.getMonth()] : ''} ${display_first_year ? fd.getFullYear() : ''} \
|
link_preview.innerHTML = `Archiveintrag ${fd.getDate()}. ${display_first_month ? month_names[fd.getMonth()] : ''} ${display_first_year ? fd.getFullYear() : ''} \
|
||||||
bis ${ld.getDate()}. ${month_names[ld.getMonth()]} ${ld.getFullYear()}`;
|
bis ${ld.getDate()}. ${month_names[ld.getMonth()]} ${ld.getFullYear()}`;
|
||||||
|
|
||||||
fetchSentences();
|
fetchSentences();
|
||||||
var htmltxt = document.createElement("html");
|
var htmltxt = document.createElement("html");
|
||||||
htmltxt.innerHTML = sentences;
|
htmltxt.innerHTML = sentences;
|
||||||
@ -149,9 +151,9 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
for (i=3; i>0; i--) {
|
for (i=3; i>0; i--) {
|
||||||
sentences_preview.appendChild(spans[spans.length - i].cloneNode(true));
|
sentences_preview.appendChild(spans[spans.length - i].cloneNode(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createArchive() {
|
function createArchive() {
|
||||||
var data = new FormData();
|
var data = new FormData();
|
||||||
data.append('filename', encodeURI(document.getElementById("archive_filename_preview").innerText));
|
data.append('filename', encodeURI(document.getElementById("archive_filename_preview").innerText));
|
||||||
@ -163,7 +165,7 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
}
|
}
|
||||||
Http.send(data);
|
Http.send(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveEditedSentences() {
|
function saveEditedSentences() {
|
||||||
var data = new FormData();
|
var data = new FormData();
|
||||||
data.append('sentences', encodeURI(document.getElementById("edit_sentences_textarea").value));
|
data.append('sentences', encodeURI(document.getElementById("edit_sentences_textarea").value));
|
||||||
@ -174,26 +176,26 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
}
|
}
|
||||||
Http.send(data);
|
Http.send(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function defaultNewArchive() {
|
function defaultNewArchive() {
|
||||||
lastlink = document.getElementById("archive_links").lastElementChild.getAttribute("href");
|
lastlink = document.getElementById("archive_links").lastElementChild.getAttribute("href");
|
||||||
var re = /(\d+)-(\w\w\w)-(\d+)\.txt/;
|
var re = /(\d+)-(\w\w\w)-(\d+)\.txt/;
|
||||||
res = re.exec(lastlink);
|
res = re.exec(lastlink);
|
||||||
|
|
||||||
month_abbr = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
|
month_abbr = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
|
||||||
d = parseInt(res[1]);
|
d = parseInt(res[1]);
|
||||||
m = month_abbr.indexOf(res[2]);
|
m = month_abbr.indexOf(res[2]);
|
||||||
y = 2000 + parseInt(res[3]);
|
y = 2000 + parseInt(res[3]);
|
||||||
|
|
||||||
date = new Date(Date.UTC(y, m, d));
|
date = new Date(Date.UTC(y, m, d));
|
||||||
document.getElementById("firstday").value = date.toISOString().split("T")[0];
|
document.getElementById("firstday").value = date.toISOString().split("T")[0];
|
||||||
document.getElementById("lastday").valueAsNumber = Date.now()
|
document.getElementById("lastday").valueAsNumber = Date.now()
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshTextArea() {
|
function refreshTextArea() {
|
||||||
document.getElementById("edit_sentences_preview").innerHTML = document.getElementById("edit_sentences_textarea").value;
|
document.getElementById("edit_sentences_preview").innerHTML = document.getElementById("edit_sentences_textarea").value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchSentences();
|
fetchSentences();
|
||||||
setTimeout(previewNewArchive, 500);
|
setTimeout(previewNewArchive, 500);
|
||||||
defaultNewArchive();
|
defaultNewArchive();
|
||||||
@ -201,8 +203,8 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
document.getElementById("edit_sentences_preview").innerHTML = sentences;
|
document.getElementById("edit_sentences_preview").innerHTML = sentences;
|
||||||
document.getElementById("edit_sentences_textarea").value = sentences;
|
document.getElementById("edit_sentences_textarea").value = sentences;
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$raw_json_config = file_get_contents("data/config.json");
|
$raw_json_config = file_get_contents("data/config.json");
|
||||||
|
|||||||
@ -121,7 +121,7 @@ $config_data = json_decode($raw_json_config, false);
|
|||||||
<button onclick="onReloadClicked()" id="but-reload">aktualisieren</button>
|
<button onclick="onReloadClicked()" id="but-reload">aktualisieren</button>
|
||||||
<br>
|
<br>
|
||||||
<div class="word_input_area">
|
<div class="word_input_area">
|
||||||
<input type="text" name="submitted" id="wordinput" placeholder="Nächstes Wort"> <button id="sendbut" class="send_button" onclick="sendWord()">
|
<input type="text" name="submitted" id="wordinput" placeholder="Nächstes Wort" autocomplete="off"> <button id="sendbut" class="send_button" onclick="sendWord()">
|
||||||
<?php
|
<?php
|
||||||
print(isset($config_data->send_logo) ? ("<img src='data/".$config_data->send_logo."' width='64'>") : "<i class='far fa-paper-plane'></i>");
|
print(isset($config_data->send_logo) ? ("<img src='data/".$config_data->send_logo."' width='64'>") : "<i class='far fa-paper-plane'></i>");
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user