Files
Linktree/view/message-board.js
jafreli b039a86bb2
All checks were successful
Build and Push Docker Image to Gitea Registry / build-and-push (push) Successful in 11s
Message board: Fix the char counter reset on submit.
2025-01-25 23:30:06 +01:00

52 lines
1.7 KiB
JavaScript

const pb = new PocketBase('https://db.out.jafre.li');
const messageContainer = document.getElementById('messages');
const messageForm = document.getElementById('messageForm');
const charCount = document.getElementById('charCount');
// Funktion, um die letzten 10 Nachrichten zu laden
async function loadMessages() {
const result = await pb.collection('message_board').getList(1, 8, {
sort: '-created', // Sortiert nach Erstellungsdatum absteigend
});
messageContainer.innerHTML = ''; // Löscht vorherige Inhalte
result.items.forEach((item) => {
const messageElement = document.createElement('div');
messageElement.className = 'message';
messageElement.innerHTML = `
<strong>${item.name}</strong>
<p>${item.message}</p>
<small>${new Date(item.created).toLocaleString()}</small>
`;
messageContainer.appendChild(messageElement);
});
}
// Event-Listener für das Formular
messageForm.addEventListener('submit', async (e) => {
e.preventDefault();
const name = document.getElementById('name').value;
const message = document.getElementById('message').value;
try {
await pb.collection('message_board').create({ name, message });
loadMessages(); // Aktualisiert die Nachrichtenanzeige
messageForm.reset(); // Löscht das Formular
charCount = 0;
} catch (error) {
console.error('Error creating message:', error);
}
});
// Nachrichten beim Laden der Seite anzeigen
loadMessages();
// Event-Listener für Eingaben im Textfeld
messageContainer.addEventListener('input', () => {
const currentLength = messageContainer.value.length;
charCount.textContent = `${currentLength} / 100`;
});