Bei Verwendung des GFI-Template "default" basierend auf HTML wird immer eine Tabelle erwartet

Issue #512 resolved
Pascal Röhling created an issue

Bei Verwendung des GFI-Templates default und den Informationen des Layers codiert in text/html, muss das HTML eine Tabelle aufweisen, damit dies geparsed werden kann.
Ersichtlich ist dies in der Funktion parseWmsHtmlGfi, wo nach dem tbody geprüft wird. Dieser wird allerdings ohne vorhandene Tabelle vom Browser wegoptimiert.

Falls dies ein gewünschtes Verhalten ist, dann müsste dies in der Dokumentation ergänzt werden.

Funktioniert:

<!DOCTYPE html>
<html>
    <head>
        <title>Titel</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <h3>Titel</h3>
        <div>
            <table>
                <tbody>
                    <tr style="font-size:18px"><td>Schlüssel</td><td>Wert</td></tr>
                    <tr style="font-size:18px"><td>Schlüssel_zwei</td><td>Wert2</td></tr>
                </tbody>
            </table>
        </div>
    </body>
</html>

Funktioniert nicht:

<!DOCTYPE html>
<html>
    <head>
        <title>Titel</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <h3>Titel</h3>
        <div style="font-size:18px">Schlüssel: <b>Wert</b></div>
        <div style="font-size:18px">Schlüssel_zwei: <b>Wert2</b></div>
    </body>
</html>

Comments (6)

  1. Stolz

    habe das Problem mit solchen GFI-Responsers auch des Öfteren.

    Meine Lösung:

    in \modules\tools\gfi\themes\model.js und hier in parseWmsHtmlGfi() statt

    if ($(data).find("tbody").children().length >= 1)

    vielleicht besser

    const domNodes = $.parseHTML(data);
    if (domNodes.length > 0) {

    VG

    D. Stolz

  2. Christopher Reder

    Hallo Pascal, die Dokumentation wurde entsprechend angepasst und im nächsten Stable ist es dann beschrieben, dass eine Tabelle erwartet wird.

    Viele Grüße Christopher

  3. Log in to comment