Konfigurieren Sie einen Ereignis-Handler für eine Filterkomponente

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Konfigurieren Sie in einem technischen Dashboard einen speziellen Client-skriptbasierten Ereignishandler für eine Filterkomponente, damit ihm Listen oder Datenvisualisierungen folgen können. Es ist nicht erforderlich, einen Ereignis-Handler für Filter in Inline-Dashboards zu konfigurieren.

    Vorbereitungen

    Dieses Verfahren setzt voraus, dass die folgenden Aufgaben abgeschlossen sind:
    1. Sie haben die Filterkomponente zu hinzugefügt UI BuilderSeite sowie mindestens eine Datenvisualisierungs- oder Listenkomponente. Der Filter kann auf mehrere Datenvisualisierungen oder -Listen angewendet werden.
    2. Sie haben den Filter so konfiguriert, dass er die Quelle und die Daten, die gegebenenfalls für die Filterkomponente gefiltert werden sollen. Wenn die Filterkomponente eine Liste filtern soll, haben Sie die Tabelle angegeben, die die Listenkomponente als zu filternde Daten anzeigt.
    3. Sie haben Datenquellen für alle Datenvisualisierungskomponenten konfiguriert.
    4. Sie haben eine Tabelle für beliebige Listenkomponenten angegeben.

    Erforderliche Rolle: ui_Builder_admin, admin

    Prozedur

    1. Öffnen Sie das relevante UI BuilderSeite.
      Diese Seite kann ein technisches Dashboard sein.
    2. Navigieren Sie zu UI BuilderStatusabschnitt und fügen Sie eine Statusvariable mit dem Namen hinzu ParFilter Vom Typ JSON mit einem einfachen Array-Anfangswert [] .
    3. Fügen Sie eine zweite Statusvariable mit dem Namen hinzu EncodedQueries Vom Typ JSON mit Anfangswert {} .
    4. Navigieren Sie zum Abschnitt Clientskripts, und erstellen Sie ein anwenderdefiniertes Skript mit einem Namen wie „PAR-Filter anwenden“ und dem folgenden Inhalt oder einem funktionalen Äquivalent davon:
      function handler({ api, event, helpers, imports }) {
      	const mergePARFiltersV2 = imports["global.mergePARFilters"]().v2;
      	const { appliedFilters } = event.payload;
      	api.setState("parFilters", ({ currentValue, api }) => {
      		const { parFilters, encodedQueries } = mergePARFiltersV2(
      			currentValue,
      			appliedFilters
      		);
      		api.setState("encodedQueries", encodedQueries);
      		return parFilters;
      	});
      }
    5. Öffnen Sie im Abschnitt Clientskripts Client-Skripteinbindungen Registerkarte.

      Die Registerkarte Clientskript enthält des Bereichs Clientskripts auf einer UIB-Seite.
    6. In Fügen Sie eine Skripteinbindung hinzu Feld auswählen MergePARFilters Und klicken Sie auf Hinzufügen .

      MergePARFilters-Skripteinbindung wird hinzugefügt.
    7. Schließen Sie das Fenster zum Konfigurieren von Daten, Client-Status und Client-Skripts.
    8. In UI Builder, Wählen Sie die Filterkomponente aus.
    9. Wählen Sie aus Ereignisse Registerkarte im Konfigurationsbereich, und fügen Sie das von Ihnen erstellte Seitenskript hinzu, das in unserem Beispiel „PAR-Filter anwenden“ als Ereignis-Handler ist.

      Das Skript „PAR-Filter anwenden“ wird als Ereignishandler „Filter angewendet“ hinzugefügt.
    10. In UI Builder, Wählen Sie eine Listenkomponente aus, falls vorhanden.
    11. Wählen Sie Aus Bearbeiten Sie den festen Filter Und legen Sie diese Eigenschaft [fixedQuery] als dynamischen Bindungsausdruck fest @State.encodedQueries.<list-datasource> .
      Ersetzen Sie <list-datasource> durch die Datenquelle für die Listenkomponente. Wenn Ihre Liste beispielsweise Datensätze aus der Tabelle „Incident [Incident]“ anzeigt, geben Sie ein @state.encodedQueries.incident .
      Binden Sie im Feld fester Filter in einem Listenkonfigurationsbereich die Eigenschaft fixedQuery an den Statusparameter des encodedQueries-Clients.
    12. Wiederholen Sie die beiden vorherigen Schritte für alle anderen Listenkomponenten.
    13. Speichern Sie die Seite.