function loadConversations(status) {
// copied and edited based on status.js
let spinner = document.querySelector("#spinner");
let container = document.querySelector("#entries_container");
container.classList.add("align-items-center");
container.innerHTML = spinner.innerHTML;
// copied status.js not working here
// if(!fetched){
// if(event){
// let allButtons = document.querySelectorAll('.nav-link');
// allButtons.forEach(button => {
// button.classList.remove('active');
// });
// event.target.classList.add('active');
// }
fetch("/backend/conversations/status/" + status)
.then(response => response.text()) // Textinhalt der HTML-Datei erhalten
.then(htmlContent => {
container.classList.remove("align-items-center");
container.innerHTML = htmlContent;
// loadModal();
// fetched = false;
});
}
//}
function openConversation(id, mail) {
let message = document.getElementById("topicinput").value;
fetch("/backend/conversations", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
id: id,
message: message
})
})
.then(response => response.json())
.then(data => {
if (data === true) {
updateConvModal(id);
// Prepare message
let subject = 'Segelparade - Bild ' + id + ' Nachfrage ' + message;
let body = document.getElementById("messageinput").value;
let mailtoLink = 'mailto:' + mail + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body);
// Open Mail client and clear inputs
window.location.href = mailtoLink;
document.getElementById("messageinput").value = "";
document.getElementById("topicinput").value = "";
} else {
alert("Fehler beim Anlegen der Rückfrage");
}
})
.catch(error => {
alert('Fehler ' + error);
});
}
function deleteConversation(id) {
let spinner = document.querySelector("#spinner");
let container = document.querySelector("#entries_container");
container.classList.add("align-items-center");
container.innerHTML = spinner.innerHTML;
fetch("/backend/conversations/" + id , {
method: "PATCH"
})
.then(response => response.json())
.then(data => {
if (data === true) {
loadConversations("open");
// if accessed from overview of all conversations (Rückfragen in menu) update that view
if (backend.status == "open") {
loadConversations("new");
}
} else {
alert("Fehler beim Löschen der Rückfrage");
}
})
.catch(error => {
alert('Fehler ' + error);
});
}
function updateConvModal(id) {
let convContainer = document.getElementById("convContainer");
fetch("/backend/conversations/image/" + id)
.then(response => response.json())
.then(conversations => {
if (conversations !== false) {
// Clear convContainer
convContainer.innerHTML = "";
// Insert conversations in convContainer
conversations.forEach(conversation => {
if (conversation.type == "open") {
convContainer.innerHTML += "<li class='list-group-item d-flex justify-content-between align-items-center'><span>" + conversation.message + "</span><span class='badge text-bg-primary text-lg fs-7 mt-2 mx-1'>Offen</span><button type='button' class='btn btn-success' onclick='markConversationClosed(" + conversation.id + ", " + id + ")'>Als abgeschlossen markieren</button></li>";
} else {
convContainer.innerHTML += "<li class='list-group-item d-flex justify-content-between align-items-center'><span>" + conversation.message + "</span><span class='badge text-bg-secondary text-lg fs-7 mt-2 mx-1'>Abgeschlossen</span></li>";
}
});
if (conversations.length === 0) {
convContainer.innerHTML = "Noch keine Unterhaltung";
}
} else {
alert("Fehler beim Auslesen der Rückfragen");
}
})
.catch(error => {
alert('Fehler ' + error);
});
}