Kleine Anpassung im Elastic Search Model, um CSS - Classen zum Stilisieren der Suchergebnisse zu ermöglichen

Issue #1110 resolved
Dietmar Sauer (Stadt Nuernberg) created an issue

Siehe auch geowerkstatt-hamburg / Masterportal / issues / #610 - Kleine Anpassung im Elastic Search Model — Bitbucket . Ich wurde Dr. Schliffke gebeten das Ticket nochmal neu aufzumachen. Hintergrund ist folgender: wir würden gerne im Elastic Search Icons vergeben, je nach Suchergebnis. Hierbei soll vom Elastic Search Backend ein Attribut für die Visualisierung mitgegeben werden. Dieses Attribute wird dann als CSS-Class interpretiert und erlaubt eine Visualisierung (siehe Bilder in Issue #610) .

Um dies zu ermöglichen müssten lediglich die Zeilen 172 und 173 unter modules/searchbar/elasticSearch/model.js vier Zeilen noch oben verschoben werden. Hierdurch würden die Attribute type und glyphicon mit dem Elastic Search Backend überschrieben werden, falls dieses entsprechend konfiguriert ist. Diese Änderung hätte keinen Einfluss auf andere Module. Ursprünglicher Code der Funktion createHit:

 createHit: function (result, hitMap, hitType, hitIcon, triggerEvent) {
        let hit = {};

        Object.keys(hitMap).forEach(key => {
            hit[key] = this.findAttributeByPath(result, hitMap[key]);
        });
        hit.type = hitType;
        hit.icon = hitIcon;
        if (Object.keys(triggerEvent).length > 0) {
            hit = Object.assign(hit, {triggerEvent: triggerEvent});
        }
        if (result._source && result._source.datasets?.[0]?.md_name) {
            hit.metaName = hit.name + " (" + result._source.datasets[0].md_name + ")";
        }

        return hit;
    },

Neuer Vorschlag:

 createHit: function (result, hitMap, hitType, hitIcon, triggerEvent) {
        let hit = {};

        hit.type = hitType;
        hit.icon = hitIcon;

        Object.keys(hitMap).forEach(key => {
            hit[key] = this.findAttributeByPath(result, hitMap[key]);
        });
        if (Object.keys(triggerEvent).length > 0) {
            hit = Object.assign(hit, {triggerEvent: triggerEvent});
        }
        if (result._source && result._source.datasets?.[0]?.md_name) {
            hit.metaName = hit.name + " (" + result._source.datasets[0].md_name + ")";
        }

        return hit;
    },

Mit freundlichen Grüßen Dietmar Sauer

Comments (6)

  1. Dietmar Sauer (Stadt Nuernberg) reporter

    Das klingt sehr gut vielen Dank. Ich schaue mir das an so bald die neue Version draußen ist

  2. Log in to comment