|
<!doctype html> |
|
<html lang="en"> |
|
|
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>Guestbook</title> |
|
</head> |
|
|
|
<body> |
|
<h2>Guestbook</h2> |
|
|
|
|
|
{% include 'includes/flash.html' %} |
|
|
|
<form id="message-form"> |
|
<textarea id="message" name="message" required></textarea><br> |
|
<button type="submit">Submit</button> |
|
</form> |
|
|
|
<h3>Messages:</h3> |
|
|
|
<ul id="messages-list"></ul> |
|
|
|
<script> |
|
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
|
|
loadMessages(); |
|
|
|
document.getElementById('message-form').addEventListener('submit', sendMessage); |
|
}); |
|
|
|
|
|
async function sendMessage(event) { |
|
event.preventDefault(); |
|
let messageTextarea = document.getElementById('message') |
|
const message = messageTextarea.value; |
|
const response = await fetch('/api/guestbook', { |
|
method: 'POST', |
|
headers: { 'Content-Type': 'application/json' }, |
|
body: JSON.stringify({messaggio: message}) |
|
}); |
|
const result = await response.json(); |
|
if (result.success) { |
|
loadMessages(); |
|
messageTextarea.value = ''; |
|
|
|
} else if (result.error){ |
|
alert(result.error); |
|
} else { |
|
alert("Errore sconosciuto durante l'invio del messaggio."); |
|
} |
|
} |
|
|
|
|
|
async function loadMessages() { |
|
const response = await fetch('/api/guestbook'); |
|
const messages = await response.json(); |
|
const messagesList = document.getElementById('messages-list'); |
|
messagesList.innerHTML = ''; |
|
messages.forEach(message => { |
|
const li = document.createElement('li'); |
|
li.textContent = `${message.nickname}: ${message.messaggio}`; |
|
messagesList.appendChild(li); |
|
}); |
|
} |
|
</script> |
|
</body> |
|
|
|
</html> |