Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

Fehlermeldung Edit-Link

More
3 days 4 hours ago #11502 by Schulamt
Fehlermeldung Edit-Link was created by Schulamt
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


 

More
2 days 3 hours ago #11506 by Schulamt
Replied by Schulamt on topic Fehlermeldung Edit-Link
Das Ticket kann geschlossen werden, ich habe den Fehlfunktion gefunden:


Die Anzeige funktioniert ohne Fehlermeldungen, wenn die Datensätze pro Seite auf maximal "50" eingestellt wird.

Ich hatte hier "Alle" ausgewählt und dann den Fehler erhalten. Auch bei "100" kommt der Fehler beim Aufruf der Datenliste, bzw. werden dann trotz der Auswahl Alle oder 100 nur 25 Datensätze angezeigt und beim Klicken auf die nächste Seite kommt der Fehler.

Evtl. aber ein Bug in Visforms, der ab einer gewissen Anzahl an Datensätzen auftritt?
The following user(s) said Thank You: Administrator IV

More
1 day 3 hours ago - 6 hours 37 minutes ago #11515 by Administrator IV
Replied by Administrator IV on topic Fehlermeldung Edit-Link
Hallo Michael,

Danke für die gute Beschreibung und aussagefähigen Screenshots.

Zu: Bug in Visforms, der ab einer gewissen Anzahl an Datensätzen auftritt?

Ich habe ein Formular mit etwa 1000 Datensätzen und ein Formular mit etwa 4000 Datensätzen.

Beide Formulare zeigen
- bei der genannten Einstellung Menü-Konfiguration, Reiter 'Formular-Daten Darstellung', Parameter  'Datensätze pro Seite' = 'Alle',
- in der Frontend Daten-Ansicht mit 10 angezeigten Feldern,
- alle 1000 Datensätze bzw. alle 4000 Datensätze,
- ohne Fehler wie erwartet an,
- inklusive den Funktionen 'Filtern' und 'Sortieren' im Frontend.

Die 4000 Datensätzen benötigen
- etwa 4 Sekunden zur Anzeige,
- etwa 5 Sekunden zur Sortierung der Anzeige nach einem Text-Feld.

Der 500er Fehler bei dir und auch die unvollständige Daten-Liste, liegen an deinen Web-Server-Ressourcen deines Hosting-Paketes.
Zu den Web-Server-Ressourcen zählen auch Ausführungszeiten und deren Begrenzungen für PHP-Code sowie Datenbank-Zugriffe.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Last edit: 6 hours 37 minutes ago by Administrator IV.

More
1 day 1 hour ago #11517 by Schulamt
Replied by Schulamt on topic Fehlermeldung Edit-Link
Lieber Ingmar,

vielen Dank für die Erkläung.
Bei uns sind es jeweils ca. 50 Felder pro Datensatz (weil noch nicht optimiert), das klingt mit den Ladezeiten dann durchaus nachvollziehbar. 

Ich bin nun im Bilde und lasse es der Einfachheit halber erstmal bei der Limitierung auf die 50 Datensätze.

Viele Grüße
Michael

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum