slight fixes

This commit is contained in:
2026-06-28 16:45:53 +02:00
parent c57b4a9a44
commit 46176c1741
+26 -26
View File
@@ -1209,28 +1209,21 @@
document.getElementById('editLibraryLocation').value = item.Ort || ''; document.getElementById('editLibraryLocation').value = item.Ort || '';
document.getElementById('editLibraryDescription').value = item.Beschreibung || ''; document.getElementById('editLibraryDescription').value = item.Beschreibung || '';
// Gruppen-Logik für die Anzeige der gesamten Range // Gruppen-Info-Box Logik
const warningDiv = document.getElementById('editLibraryGroupWarning'); const warningDiv = document.getElementById('editLibraryGroupWarning');
const codesContainer = document.getElementById('editLibraryAllCodes'); const codesContainer = document.getElementById('editLibraryAllCodes');
if (item.SeriesGroupId) { if (item.SeriesGroupId) {
// Alle Mitglieder der Gruppe finden (sortiert nach SeriesPosition)
const groupMembers = libraryItems const groupMembers = libraryItems
.filter(i => i.SeriesGroupId === item.SeriesGroupId) .filter(i => i.SeriesGroupId === item.SeriesGroupId)
.sort((a, b) => a.SeriesPosition - b.SeriesPosition); .sort((a, b) => a.SeriesPosition - b.SeriesPosition);
// Codes für die Anzeige formatieren
const codesHtml = groupMembers.map(member => {
const isCurrent = member._id === itemId;
return `<span style="background: ${isCurrent ? '#0ea5e9' : '#e0e0e0'};
color: ${isCurrent ? '#fff' : '#333'};
padding: 2px 8px; border-radius: 4px; margin-right: 5px; font-size: 12px;">
${member.Code_4 || 'n/a'}
</span>`;
}).join('');
document.getElementById('editLibraryGroupCount').textContent = groupMembers.length; document.getElementById('editLibraryGroupCount').textContent = groupMembers.length;
codesContainer.innerHTML = codesHtml;
codesContainer.innerHTML = groupMembers.map(member => {
const isCurrent = member._id === itemId;
return `<span style="background: ${isCurrent ? '#0ea5e9' : '#e0e0e0'}; color: ${isCurrent ? '#fff' : '#333'}; padding: 2px 8px; border-radius: 4px; margin-right: 5px; font-size: 12px;">${member.Code_4 || 'n/a'}</span>`;
}).join('');
warningDiv.style.display = 'block'; warningDiv.style.display = 'block';
} else { } else {
@@ -1244,12 +1237,15 @@
document.getElementById('editLibraryModal').style.display = 'none'; document.getElementById('editLibraryModal').style.display = 'none';
} }
document.getElementById('editLibraryForm').addEventListener('submit', async function(e) { // --- Sicherer Event-Listener für das Formular ---
document.addEventListener('DOMContentLoaded', function() {
const editForm = document.getElementById('editLibraryForm');
if (editForm) {
editForm.addEventListener('submit', async function(e) {
e.preventDefault(); e.preventDefault();
const itemId = document.getElementById('editLibraryItemId').value; const itemId = document.getElementById('editLibraryItemId').value;
// Daten sammeln
const updateData = { const updateData = {
id: itemId, id: itemId,
name: document.getElementById('editLibraryName').value, name: document.getElementById('editLibraryName').value,
@@ -1260,7 +1256,7 @@
beschreibung: document.getElementById('editLibraryDescription').value beschreibung: document.getElementById('editLibraryDescription').value
}; };
// Fetch zum Backend try {
const response = await fetch('/api/update-item', { const response = await fetch('/api/update-item', {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
@@ -1268,32 +1264,36 @@
}); });
if (response.ok) { if (response.ok) {
// Lokale Synchronisierung im Array (für sofortiges UI-Update)
const editedItem = libraryItems.find(i => i._id === itemId); const editedItem = libraryItems.find(i => i._id === itemId);
// Lokale Daten im Array synchronisieren
if (editedItem && editedItem.SeriesGroupId) { if (editedItem && editedItem.SeriesGroupId) {
libraryItems.forEach(item => { libraryItems.forEach(item => {
if (item.SeriesGroupId === editedItem.SeriesGroupId) { if (item.SeriesGroupId === editedItem.SeriesGroupId) {
// Alle Felder synchronisieren
item.Name = updateData.name; item.Name = updateData.name;
item.ItemType = updateData.item_type; item.ItemType = updateData.item_type;
item.ISBN = updateData.isbn; item.ISBN = updateData.isbn;
item.Ort = updateData.ort; item.Ort = updateData.ort;
item.Beschreibung = updateData.beschreibung; item.Beschreibung = updateData.beschreibung;
// Code nur für das aktive Item setzen if (item._id === itemId) item.Code_4 = updateData.code_4;
if (item._id === itemId) {
item.Code_4 = updateData.code_4;
}
} }
}); });
} else if (editedItem) { } else if (editedItem) {
// Einzel-Update
Object.assign(editedItem, updateData); Object.assign(editedItem, updateData);
} }
closeEditLibraryModal(); closeEditLibraryModal();
// Hier ggf. deine Render-Funktion aufrufen, um die Tabelle zu aktualisieren // Optional: renderLibraryTable();
renderLibraryTable(); } else {
const err = await response.json();
alert('Fehler beim Speichern: ' + (err.error || 'Unbekannter Fehler'));
}
} catch (error) {
console.error('Fetch error:', error);
alert('Netzwerkfehler.');
}
});
} }
}); });
</script> </script>