Einstellungen für die Nutzung des WFS-T Tools

Issue #555 resolved
Stephan Schneider created an issue

Hallo zusammen,

ein frohes neues Jahr!

Wir haben begonnen das WFS-T Modul in unsere MP-Instanz in Rheinland-Pfalz zu integrieren. Leider bin ich diese Woche auf eine Hürde gestoßen die ich nicht verstehe.

Wir haben die Einstellungen in der config.json und der services.json vorgenommen:

Tool-Einstellung in config.json:

      "wfst": {
        "name": "WFS-T Bearbeitung",
        "glyphicon": "glyphicon-globe",
        "layerIds": ["302"],
        "toggleLayer": false,
        "layerSelect": "Aktueller Layer",
        "pointButton": [
          {
              "layerId": "302",
              "caption": "Punkt-TEST",
              "show": true
          }
        ],
        "edit": true,
        "delete": true
      }

Layer-Einstellung der services.json:

        {
                "id": "302",
                "name": "MINT",
                "url": "https://maps.rlp.de/geoserver/mint/wfs",
                "typ": "WFS",
                "featureNS": "mint",
                "featureType": "praevent",
                "featurePrefix": "mint",
                "outputFormat": "XML",
                "version": "1.1.0",
                "gfiAttributes": "showAll",
                "gfiTheme": "default",
                "gfiComplex": "false",
                "layerAttribution": "nicht vorhanden",
                "legendURL": "",
                "hitTolerance": 0,
                "datasets": []
        }

Beim öffnen des Tools kommt es zu folgender Fehlermeldung:

Die Konfiguration des Layers wird als fehlerhaft interpretiert. Daher hatte ich mir den Validierungspart im model.js angesehen:

/**
 * Validates the configuration of the layer
 * @param {Object} wfsLayer - wfs layer
 * @return {Boolean} flag if one of the layer attributes is configured not correct
 */
checkLayerConfig: function (wfsLayer) {
    let error = false;

    if (typeof wfsLayer === "object" && wfsLayer !== null) {
        if (typeof wfsLayer.get("url") !== "string") {
            error = true;    
        }
        else if (typeof wfsLayer.get("version") !== "string") {
            error = true;
        }
        else if (typeof wfsLayer.get("featureType") !== "string") {
            error = true;
        }
        else if (typeof wfsLayer.get("featureNS") !== "string") {
            error = true;
        }
        else if (typeof wfsLayer.get("featurePrefix") !== "string") {
            error = true;
        }
        else if ((typeof wfsLayer.get("gfiAttributes") !== "object" || wfsLayer === null) && typeof wfsLayer.get("gfiAttributes") !== "string") {
            error = true;
        }
    }
    else {
        error = true;
    }
    return error;
},

Kommt die function checklLayerConfig mit einem Fehler zurück wird der Layer in das Array incorrectIds üebrnommen und das Flag “missingLayerParam” gesetzt. In der Funktion getAlertMessage wird dann die oben dargestellte Fehlermeldung ausgegben.

Ursprünglich dachte ich es läge am “featurePrefix” da dies nur als Optionales Feld (laut Dokumentation) in der WFS-Konfiguration genutzt wird.

Kann mir jemand einen Hinweis geben an welcher Stelle ich die Konfiguration anpassen muss um das WFS-Tool zu nutzen?

Vielen Dank und viele Grüße

Stephan Schneider

Comments (15)

  1. Laura Meierkort

    Hallo Herr Schneider,

    ich habe einmal versucht den Fehler bei mir nachzustellen. Und bei mir funktioniert eigentlich alles mit ihren Konfigurationen.

    Haben Sie den Layer in der config.json unterhalb der Themenconfig auch hinzugefügt? Also haben Sie den Layer auch dem Themenbaum hinzugefügt?

    Viele Grüße

    Laura Meierkort

  2. Stephan Schneider reporter

    Hallo Frau Meierkort,

    ja, ich habe den Layer in den Themenbaum eingefügt:

        "Fachdaten": {
          "Ordner": [
            {
              "Titel": "Kriminalprävention",
              "Layer": [
                {
                 "id": "300",
                 "visibility": true,
                 "infoFormat": "text/html"
                },
                {
                 "id": "301",
                 "infoFormat": "text/html"
                },
                {"id": "302",
                 "infoFormat": "text/html"
                }
              ]
    

    Das WFS-T Modul beschwert sich auch, wenn der Layer nicht aktiviert wurde im Themenbaum:

    Wenn ich den Layer 302 über den Themenbaum aktiviere komme ich wieder zu dem Screenshot von gestern:

    Viele Grüße

    Stephan Schneider

  3. Laura Meierkort

    Hallo,

    wird der Layer denn auch wie erwartet geladen, wenn Sie ihn im Themenbaum aktivieren?

    Bekommen Sie in der Entwickler Konsole des Browsers ebenfalls Fehlermeldungen angezeigt beim aktivieren des WFS-T Moduls?

    Viele Grüße

    Laura Meierkort

  4. Stephan Schneider reporter

    Beim Öffnen des WFS-T Tools kommen keine Fehlermeldungen in der Konsole. Lediglich zwei Deprecation Meldungen. Die Fachdaten können auch abgefragt werden:

    Würde es Sinn machen, dass ich eine Debug-Version des Masterportal erstelle?

  5. Stephan Schneider reporter

    Hallo,

    ich habe eine Debug-Version des MasterPortals gebaut und auf den Server geladen. Dabei hatte ich die ursprüngliche Prüfung des Layers im WFS-T Modul deaktiviert. Nun bekomme ich folgendes Bild:

    Die oberen vier 404 gehen auf meine Konfiguration im Testsystem zurück, da stimmen manche Pfade nicht. Aber der Proxy Fehler 502 wundert mich. Wenn ich die URL kopiere und vom Browser aus versuche bekomme ich eine Antwort

    Sie schrieben ja, dass meine Konfiguration bei Ihnen funktionierte. Wäre es möglich, wenn Sie mir Ihre zukommen lassen? Dann kann ich ausschließen, dass es an einer sonstigen Einstellung von mir liegt, da diese aus einer MP 2.4 Version entstammt.

    Vielen Dank und viele Grüße

    PS: Wenn ich in dem model.js einen console.log / console.warn Aufruf einbaue, sollte doch die Meldung in der Konsole des Browsers auftauchen oder irre ich mich?

  6. Laura Meierkort

    Ich habe die Konfiguration von Ihnen für die config.json in die portal/master/config.json Datei aus dem aktuellen dev Branch hineinkopiert und den Layer unterhalb der Fachdaten dem Themenbaum hinzugefügt:

    ...
    "Fachdaten": {
          "Layer": [
            {
              "id": "6211"
            },
            ...
    

    Ich habe auch die Konfiguration des Layers von Ihnen kopiert und in meine services-layer.json eingefügt.

    Zusätzlich habe ich allerdings noch (da ich lokal teste) in der config.js folgenden Parameter hinzugefügt um keine Probleme mit der Verwendung eines Proxys zu bekommen:

    proxy: false,
    

    Könnte die Verwendung eines Proxys vielleicht das Problem bei Ihnen sein?

    Sonst habe ich an der Version v2.6.0 nichts weiter angepasst oder verändert.

    Könnten Sie mir sonst die URL zu Ihrer Debug Version zur Verfügung stellen? Dann könnte ich mal einen Blick darauf werfen.

    Zu Ihrer Frage mit dem console.log / console.warn: Ja, die Meldung sollte in der Konsole des Browsers auftauchen, wenn Sie an einer Stelle eingefügt wurde, die auch “durchlaufen” wird.

    Viele Grüße.

  7. Stephan Schneider reporter

    Ich habe den Grund für die Probleme mit dem WFS-T Modul finden können. Es liegt an der Sichtbarkeit des Layers. Wenn ich dem Themenbaum folgenden Eintrag einsetze:

    ...
    "Fachdaten": {
          "Layer": [
            {
              "id": "302"
            },
            ...
    

    und anschließend den Layer manuell aktiviere bevor ich das WFS-T Modul öffne kommt es zu folgender Fehlermeldung:

    Nun bin ich hingegangen und den Layer auf folgendes angepasst:

                {"id": "302",
                 "visibility": true
                }
    

    Nun wird das Modul richtig dargestellt:

    Es liegt daran, dass die Prüfung der Modulparameter bereits beim laden der Seite erfolgt. Das nachträgliche Selektieren eines WFS-T kompatiblen Layers führt nicht dazu, dass die Prüfung erneut durchlaufen wird und der Layer weiterhin als “fehlerhaft” gekennzeichnet bleibt.

    Daher stellt sich mir die Frage ob man das WFS-T Modul dahingehend anpassen kann, dass beim Aktivieren / Deaktivieren eines WFS-T Layers die Prüfung erneut angestoßen wird?

    Viele Grüße

  8. Laura Meierkort

    Hallo,

    anscheinend hat sich da ein Fehler eingeschlichen. Ich habe einen Pull Request mit einem Fix für das Problem gestellt (555 fix WFS-T layer activation ).

    Als Workaround können Sie, bis es eine neue Version mit dem Fix gibt, die oben beschriebene Konfiguration nutzen.

    {
      "id": "302",
      "visibility": true
    }
    

    Funktioniert das vorerst für Sie?

    Viele Grüße

  9. Stephan Schneider reporter

    Hallo,

    ja, die beschriebene Konfiguration ist für mich vollkommen OK. Vielen Dank nochmals für die Unterstützung

    viele Grüße

    Stephan

  10. Log in to comment