slight fixes

This commit is contained in:
2026-06-28 16:45:53 +02:00
parent c57b4a9a44
commit 46176c1741
+61 -61
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,56 +1237,63 @@
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 ---
e.preventDefault(); document.addEventListener('DOMContentLoaded', function() {
const editForm = document.getElementById('editLibraryForm');
const itemId = document.getElementById('editLibraryItemId').value;
if (editForm) {
// Daten sammeln editForm.addEventListener('submit', async function(e) {
const updateData = { e.preventDefault();
id: itemId,
name: document.getElementById('editLibraryName').value, const itemId = document.getElementById('editLibraryItemId').value;
item_type: document.getElementById('editLibraryType').value, const updateData = {
isbn: document.getElementById('editLibraryIsbn').value, id: itemId,
code_4: document.getElementById('editLibraryCode4').value, name: document.getElementById('editLibraryName').value,
ort: document.getElementById('editLibraryLocation').value, item_type: document.getElementById('editLibraryType').value,
beschreibung: document.getElementById('editLibraryDescription').value isbn: document.getElementById('editLibraryIsbn').value,
}; code_4: document.getElementById('editLibraryCode4').value,
ort: document.getElementById('editLibraryLocation').value,
// Fetch zum Backend beschreibung: document.getElementById('editLibraryDescription').value
const response = await fetch('/api/update-item', { };
method: 'POST',
headers: { 'Content-Type': 'application/json' }, try {
body: JSON.stringify(updateData) const response = await fetch('/api/update-item', {
}); method: 'POST',
headers: { 'Content-Type': 'application/json' },
if (response.ok) { body: JSON.stringify(updateData)
// Lokale Synchronisierung im Array (für sofortiges UI-Update) });
const editedItem = libraryItems.find(i => i._id === itemId);
if (editedItem && editedItem.SeriesGroupId) { if (response.ok) {
libraryItems.forEach(item => { const editedItem = libraryItems.find(i => i._id === itemId);
if (item.SeriesGroupId === editedItem.SeriesGroupId) {
// Alle Felder synchronisieren // Lokale Daten im Array synchronisieren
item.Name = updateData.name; if (editedItem && editedItem.SeriesGroupId) {
item.ItemType = updateData.item_type; libraryItems.forEach(item => {
item.ISBN = updateData.isbn; if (item.SeriesGroupId === editedItem.SeriesGroupId) {
item.Ort = updateData.ort; item.Name = updateData.name;
item.Beschreibung = updateData.beschreibung; item.ItemType = updateData.item_type;
item.ISBN = updateData.isbn;
// Code nur für das aktive Item setzen item.Ort = updateData.ort;
if (item._id === itemId) { item.Beschreibung = updateData.beschreibung;
item.Code_4 = updateData.code_4;
if (item._id === itemId) item.Code_4 = updateData.code_4;
}
});
} else if (editedItem) {
Object.assign(editedItem, updateData);
} }
closeEditLibraryModal();
// Optional: renderLibraryTable();
} else {
const err = await response.json();
alert('Fehler beim Speichern: ' + (err.error || 'Unbekannter Fehler'));
} }
}); } catch (error) {
} else if (editedItem) { console.error('Fetch error:', error);
// Einzel-Update alert('Netzwerkfehler.');
Object.assign(editedItem, updateData); }
} });
closeEditLibraryModal();
// Hier ggf. deine Render-Funktion aufrufen, um die Tabelle zu aktualisieren
renderLibraryTable();
} }
}); });
</script> </script>