slight fixes
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user