Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

agorum.composite.search.filter

Mit dieser aguila-Komponente stellen Sie einen Filter basierend auf einer Suche und einer Definition von Kriterien dar (Faceting / Gruppierung).

Verwendung


let filterWidget = aguila.create({
  type: 'agorum.composite.search.filter',
  filter: [ .. ],
  filterSelection: [ .. ],
  query: '*',
  showErrors: false
});

Informationen zu den Filtern und dem Filterbereich siehe Filterdefinitionen für agorum.composite.search.filter konfigurieren

Parameter


filter

Definiert die Filterelemente im Filterbereich.

Sie können diesen Parameter nachträglich ändern.

filterWidget.filter = { ... };

 

Beispiel

filter: [
  {
    title: 'Objektarten',
    name: 'objectTypes',
    type: 'query',
    items: [
      {
        title: 'Ordner',
        name: 'folders,
        query: 'isfolder:true'
      }
    ]
  }
];

filterSelection

Definiert, dass das System eine vordefinierte Suche lädt.

js/aguila/filter-search-result-details/sample-save-load.js
filterWidget.filterSelection = { ... };


Beispiel

filterSelection: {   
  documentsMails: {
    value: true   
  },   
  extensions: {     
    value: [ 'html' ]   
  } 
};

query

Definiert die Basis-Query, mit der das System den Filter lädt.

Sie können diesen Parameter nachträglich ändern.


Beispiel

filterWidget.query = 'neue query';

total

Holt die Ergebnismenge der letzten Suche (ReadOnly).


Beispiel

let totalResult = filterWidget.total;

Events (fire)


Events, die Sie zum Widget senden können.

refresh

Führt die Suche mit den eingestellten Parametern erneut aus.


Beispiel

filterWidget.fire('refresh');

Events (on)


Events, die das Widget sendet und auf die Sie reagieren können.

filterQueryChanged

Löst aus, sobald ein Benutzer im Filter eine Änderung vornimmt, d. h. ein Feld aus- oder abwählt.

Durch die Eigenschaft filterQuery holen Sie die neue Query des Filters.


Beispiel

filterWidget.on('filterQueryChanged', () => {
  // Hier kann jetzt etwas mit der Query des Filters gemacht werden
  let filterQuery = filterWidget.filterQuery; // Query, die sich aus den gewählten Elementen des Filters ergibt
  let filterSelection = filterWidget.filterSelection; // Selektierte Filter
  ...
});

totalChanged

Löst aus, sobald ein Benutzer im Filter eine Suche ausführt.

Die Eigenschaft total enthält die aktuelle Suchergebnismenge.


Beispiel

filterWidget.on('totalChanged', () => {
  let total = filterWidget.total; // Anzahl der gefundenen Objekte, basierend auf dem Filter und dem Suchtext
  ...
});

Komplettes Beispiel


Beispiel einer Oberfläche

JavaScript zum kompletten Beispiel

let aguila = require('common/aguila');
let common = require('/agorum/roi/customers/agorum.composite/js/common');

// Alle Dateiendungen des Systems gruppiert als Filter anzeigen
let filter = [
  {  
    title: 'Dateiendung',
    name: 'nameextension',
    type: 'terms',
    field: 'nameextension',
    limit: 200,
    maxChars: 15,
    missing: true,
    missingText: 'Objekte ohne Endung'
  }
];

// HTML bereits im Filter vorauswaehlen
let filterSelection = {
  nameextension: {
    value: [ 'html' ]
  }
};

// Filterwidget erstellen
let filterWidget = aguila.create({
  type: 'agorum.composite.search.filter',
  filter: filter,
  filterSelection: filterSelection,
  query: '*',
  showErrors: false,
  width: 400,
  height: 600
});

// Auf Filter-Aenderung reagieren und erstellte Query anzeigen
filterWidget.on('filterQueryChanged', () => {
  common.msg('Debug', filterWidget.filterQuery);
});

filterWidget;