Lieber Ingmar,
ich habe bei einem Formular das Problem, dass beim Aufruf der Datenübersicht über die Datenliste eine Fehlermeldung erscheint:Sorry, there was a problem we could not recover from.The server returned a "500 - Whoops, looks like something went wrong."
Das Formular ist genau so konfiguriert wie alle anderen Menüs/Formulare auch, siehe Screenshots. Das Problem trat auch anfangs nicht auf, sondern erst seit die Meldung ausgefüllt wurde.
Eventuell liegt es an der Zahl der Datensätze?
Es sind 884 Datensätze.
Ich verwende ein Skript in Verbindung mit einem cron-Job auf Datenbankebene, um Datensätze aus dem Frontend zu löschen:
document.addEventListener('DOMContentLoaded', function() {
// Alle Elemente mit der Klasse 'visicon-publish' suchen
var icons = document.querySelectorAll('.visicon-publish');
icons.forEach(function(icon) {
// Die Klasse 'visicon-publish' entfernen
icon.classList.remove('visicon-publish');
// Eine eigene Klasse hinzufügen (z.B. 'custom-icon')
icon.classList.add('custom-icon');
});
// Alle <a>-Elemente mit den Klassen 'btn btn-micro active visToolTip' suchen
var buttons = document.querySelectorAll('.btn.btn-micro.active.visToolTip');
buttons.forEach(function(button) {
// aria-label und data-bs-original-title ändern
button.setAttribute('aria-label', 'Datensatz unwiderruflich löschen');
button.setAttribute('data-bs-original-title', 'Datensatz löschen');
// Originalen onclick-Event sichern und entfernen
var originalOnClick = button.getAttribute('onclick');
button.removeAttribute('onclick'); // Entfernt das direkte onclick-Attribut
// Neuen Event Listener hinzufügen
button.addEventListener('click', function(event) {
event.preventDefault(); // Verhindert die Standardaktion
// Bestätigungsdialog anzeigen
var confirmDelete = confirm("Sind Sie sicher, dass Sie diesen Datensatz unwiderruflich löschen möchten? Der Datensatz wird INNERHALB EINER MINUTE unwiderruflich gelöscht! Bitte warten Sie kurz, bis Sie die PDF-Datei, bzw. die CSV-Datei generieren.");
if (confirmDelete) {
// Extrahiere die Parameter aus originalOnClick
var match = originalOnClick.match(/vflistItemTask\('([^']*)','([^']*)', '([^']*)'\)/);
if (match) {
var cb = match[1];
var task = match[2];
var com = match[3];
// Die ursprüngliche Joomla-Funktion mit den extrahierten Parametern aufrufen
vflistItemTask(cb, task, com);
}
}
});
});
// Nur Elemente mit der Klasse "btn", die NICHT bestimmte andere Klassen enthalten
var allButtons = document.querySelectorAll('.btn');
allButtons.forEach(function(btn) {
// Prüfen, ob der Button NICHT eine der folgenden unerwünschten Klassen hat
if (!btn.classList.contains('btn-primary') &&
!btn.classList.contains('btn-micro') &&
!btn.classList.contains('visToolTip') &&
!btn.classList.contains('active')) {
btn.classList.add('custom-button');
}
});
// Tooltips nach den Änderungen neu initialisieren
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.forEach(function (tooltipTriggerEl) {
// Existierenden Tooltip entfernen, falls er bereits initialisiert wurde
if (tooltipTriggerEl._tooltip) {
tooltipTriggerEl._tooltip.dispose();
}
// Tooltip neu initialisieren
new bootstrap.Tooltip(tooltipTriggerEl);
});
// *** NEUE FUNKTION *** Zeilen ausblenden, die <span class="visicon-unpublish"> enthalten
var rows = document.querySelectorAll('tr'); // Alle Tabellenzeilen durchsuchen
rows.forEach(function(row) {
if (row.querySelector('.visicon-unpublish')) { // Prüfen, ob die Zeile das Icon enthält
row.style.display = 'none'; // Zeile ausblenden
}
});
});
Allerdings kommt auch der Fehler, wenn ich meinen Code aus den Webassets entferne. Der Code kann also nicht ausschlaggebend sein.
Die Meldung muss bald bearbeitet werden, die Nutzer können allerdings nicht auf Ihre Datensätze zugreifen.
Woran könnte das liegen?
Viele Grüße
Michael