Apps und Bundles

Als Basis für die smart.finder-Nutzeroberfläche dient map.apps. Alle Funktionen, die für die Darstellung von smart.finder im Web-Browser erforderlich sind, werden innerhalb einer App als Bundles in map.apps integriert.

Um die Nutzeroberfläche von smart.finder anzupassen, sind deshalb einige Grundkenntnisse in map.apps erforderlich. Die wichtigsten Grundlagen, um mit der Konfiguration zu beginnen, werden im Folgenden kurz erläutert.

Grundlagen zur Konfiguration von Apps in map.apps

Web-Anwendungen auf der Basis von map.apps werden Apps genannt. Mit map.apps ist es möglich, eine beliebige Anzahl von Apps zu erstellen, die alle auf einer Menge von Programmmodulen, sogenannten Bundles, basieren. smart.finder liefert einige Bundles mit, die Sie in map.apps installieren und somit in allen Apps verwenden können.

Jede App in map.apps umfasst eine Konfigurationsdatei namens app.json. Diese legt fest, welche Bundles in die App eingebunden sind und wie diese konfiguriert sind.

Bearbeitung der App-Konfigurationsdatei

Um eine app.json zu bearbeiten, gibt es zwei Möglichkeiten.

  • Direkte Bearbeitung der Datei im Dateisystem, wenn Sie smart.finder als eigenständiges Produkt verwenden

  • Bearbeitung über den map.apps Manager, bei einer bereits vorhandenen map.apps-Instanz

Bearbeitung im Dateisystem

Wenn Sie smart.finder als eigenständiges Produkt ohne bereits vorhandene map.apps Installation verwenden, ändern Sie die app.json der jeweiligen App im Dateisystem. Die Apps, in denen sich die einzelnen app.json befinden, liegen im Verzeichnis %TOMCAT%/ct-finder-client-webapp-2.1/js/apps. Sie können die Dateien mit einem gewöhnlichen Texteditor bearbeiten.

Bearbeitung im map.apps Manager

Wenn Sie die smart.finder Bundles in map.apps installiert haben, können Sie die app.json der jeweiligen App über den map.apps Manager bearbeiten. Gehen Sie dafür wie folgt vor:

  1. Öffnen Sie den map.apps Manager. Dieser ist standardmäßig unter der Adresse https://<yourserver>/mapapps/manager erreichbar.

  2. Klicken Sie im Reiter Apps auf die App, die Sie ändern möchten.

  3. Wählen Sie App-Editor. Es öffnet sich der App-Editor mit dem Inhalt der app.json

  4. Sie können nun Änderungen an der Datei vornehmen.

  5. Speichern Sie die Datei.

Aufbau der app.json

Auf der obersten Hierarchieebene enthält die app.json die Abschnitte load und bundles.

load

In diesem Abschnitt werden sämtliche zu ladende Ressourcen inkl. Bundles aufgeführt.

bundles

In diesem Abschnitt findet die Konfiguration der Bundles statt.

Benötigte Bundles in der App

Benötigte Bundles listen Sie im load-Abschnitt unter allowedBundles auf. Zur Auswahl einer bestimmten Version können Sie an jedes Bundle ein @-Zeichen plus die gewünschte Version anhängen.

Beispiel
{
    "load": {
        "allowedBundles": [
            "<bundlename>@<versionsnummer>",
            "...weitere Bundles"
        ]
    }
}

Konfiguration der Bundles

Jedes Bundle besteht in der Regel aus einer oder mehreren Komponenten, die Sie jeweils individuell konfigurieren können. Die Bundle-Konfiguration ist deshalb in die folgenden Ebenen gegliedert:

{
    "bundles": {
        "<Bundlename>": {
            "<Komponentenname>": {
                "<konfigurierte Eigenschaft>": "<Wert>"
            }
        }
    }
}

Beispiel

In dem folgenden (nicht vollständigen) Auszug aus einer app.json werden die Bundles sf_template-main, sf_frontpage und sf_catalog geladen. Außerdem werden für die CardsCatalogConfig-Komponente des sf_catalog-Bundles die Kategorien konfiguriert.

{
    "load": {
        "allowedBundles": [
            "sf_template-main",
            "sf_frontpage",
            "sf_catalog"
        ]
    },
    "bundles": {
        "sf_catalog": {
            "CardsCatalogConfig": {
                "categories": [
                    {
                        "id": 1,
                        "name": "Wasser",
                        "value": "wasser"
                    },
                    {
                        "id": 2,
                        "name": "Natur",
                        "value": "natur"
                    }
                ]
            }
        }
    }
}

Um ein Bundle zu konfigurieren, definieren Sie in der app.json Eigenschaften von Bundle-Komponenten. Für Eigenschaften, die in der app.json nicht definiert sind, werden Standardwerte verwendet.

Dokumentation der Bundles

Die Dokumentation zu den Konfigurationsmöglichkeiten der einzelnen Bundles erhalten Sie über den folgenden Link: https://<yourserver>/ct-finder-client-webapp-2.1.0/resources/jsregistry/root

Die Namen aller smart.finder-Bundles beginnen mit dem Kürzel sf_. Das macht es einfacher sie von den map.apps Standardbundles zu unterscheiden.

Konfigurierbare Funktionen in smart.finder

Im Folgenden gehen wir auf die verschiedenen Funktionen der smart.finder-Nutzeroberfläche ein, die sich durch Konfiguration in der app.json der jeweiligen App an die eigenen Wünsche anpassen lassen.

Bitte sichern Sie die app.json, bevor Sie Änderungen daran vornehmen.

Basiskonfiguration einer App für smart.finder

Der smart.finder Client kann per map.apps Kartenanwendung, also einem Suchfeld auf einer ganzseitigen Kartenanwendung oder auch ohne Karte genutzt werden.

smart.finder mit und ohne Kartenanwendung

smartfinder map de smartfinder nomap de

Verwendung von Bundle Sets

Die beiden Varianten der smart.finder Client-Apps werden per Konfiguration verschiedener map.apps-Bundles realisiert. Um nicht jedes einzelne dieser Bundle in der app.json eintragen zu müssen, können Sie

  • das Bundle sf_bundle-set_full-screen-map verwenden für eine App mit Karte oder

  • das Bundle sf_bundle-set_full-page für eine App ohne Karte.

Das Einbinden der Bundles lädt automatisch die im Folgenden aufgelisteten Bundles:

sf_bundle-set_full-screen-map lädt die Bundles:

  • sf_themes_extension

  • sf_resultspage-content

  • sf_detailpage

  • sf_omnisearch-connector

  • sf_mapviewconfig

  • sf_spatial-extent-viewer

  • sf_window-tools

sf_bundle-set_full-page lädt die Bundles:

  • sf_themes_extension

  • sf_resultspage

  • sf_detailpage

  • sf_template-main

  • sf_frontpage

map.apps Omnisearch und mehrere smart.finder Cores

smart.finder-Nutzer beginnen normalerweise mit der Eingabe eines Suchbegriffs und der anschließenden Ergebnisanzeige:

  • Verwenden Sie smart.finder in einer map.apps-App mit Kartendarstellung, wird das Sucheingabefeld des map.apps Standardbundles omnisearch verwendet.

  • Bei einer Anwendung ohne Karte wird das Bundle omnisearch nicht verwendet.

Wenn Sie omnisearch zusammen mit smart.finder verwenden, muss das Bundle sf_omnisearch-connector zu der entsprechenden App hinzugefügt werden.

Bei der Verwendung des omnisearch-Bundles kann durch App-Konfiguration die Suche auf mehreren smart.finder Cores (zur Laufzeit) ermöglicht werden (sog. multi-core-support). Details zur Konfiguration von weiteren smart.finder Cores finden Sie in der Dokumentation zum Bundle sf_store.

Auswahl und Reihenfolge von Filterattributen (Facetten)

Nach der Suche zeigt der Client die Ergebnisliste. Hierfür können Sie einstellen, nach welchen Attributen (sog. Facetten) der Nutzer die Suchergebnisse filtern kann. Sie können auch die Reihenfolge einstellen.

facetten de

Konfigurieren Sie dafür die facetFields-Property an der DocumentStore-Instanz für den gewünschten smart.finder-Core. Weitere Informationen dazu erhalten Sie im Abschnitt Configuring the attribute filter in der Dokumentation des Bundles sf_store.

Synonyme von Facettenwerten

smart.finder kann die Werte einer Facette zusammenfassen. So können Sie die Werte shape und Shapefile der Facette Format immer als SHP in der Nutzeroberfläche anzeigen. Die Konfiguration dazu finden Sie in der Dokumentationsteil zum Server.

Lagefilter

Sie können die Hintergrundkarte und das Gebiet einstellen, das zu Beginn im Lagefilter fokussiert ist. Außerdem lässt sich das Aussehen des Rahmens in der Karte konfigurieren.

lage de

Weitere Informationen dazu finden Sie in der Dokumentation zum Bundle sf_geo-extent-filter.

Sortierung von Ergebnissen

Sie können für die Sortierfunktion auf der Ergebnisseite konfigurieren, welche Felder für die Sortierung angeboten werden.

Details finden Sie in der Dokumentation zum Bundle sf_resultlist.

Kartendarstellung der räumlichen Ausdehnung einer Ressource

Wird die smart.finder Ergebnisseite in einem Fenster innerhalb von map.apps angezeigt, kann der Nutzer mit der Maus über die einzelnen Ergebnisse fahren, um das zugehörige Gebiet in der Karte hervorzuheben.

Sie können das Aussehen des Rahmens in der Karte ändern, der die räumliche Ausdehnung repräsentiert. Details dazu in der Dokumentation zum Bundle sf_spatial-extent-viewer.

Detailansicht

Wenn der Benutzer auf einen Eintrag in der Ergebnisliste klickt, werden ihm in der Detailansicht detaillierte Informationen angezeigt.

Details finden Sie in der Dokumentation zum Bundle sf_detailpage.

Nutzung des Ergebniscenters

Die smart.finder Ergebnisseite kann, neben der Anzeige innerhalb eines Fensters über der Karte, auch über das map.apps Ergebniscenter angezeigt werden. Dabei werden die Suchergebnisse in einer Tabellenansicht angezeigt.

Die Nutzung des Ergebniscenters kann über die Eigenschaft useResultcenter:true der Komponente mit dem Namen ForwardingHandler konfiguriert werden, innerhalb des Bundles sf_omnisearch-connector. Die Details dazu können Sie in der Dokumentation zum Bundle sf_omnisearch-connector nachlesen.

Aktuell kann die Funktion zwar in Apps eingesetzt werden, welche mit einem DocumentStore und einen SmartSearchStore arbeiten, allerdings nicht mit mehreren DocumentStores. Mit anderen Worten ist die Ergebnisanzeige im map.apps Ergebniscenter nicht für mehrere smart.finder Cores möglich, abgesehen vom eben skizzierten Fall.