Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core information center entwickeln > Filterdefinitionen für agorum.composite.search.filter konfigurieren
Mit dieser Komponente können Sie Suchen in Kombination mit definierbaren Filtern konfigurieren.
let filterSearchWidget = aguila.create({ type: 'agorum.composite.search.filterResultDetails', filter: [ ... ], filterSelection: { ... }, settings: [ ... ], baseQuery: '*', query: 'test', sort: [ { property: 'lastModifyDate', direction: 'DESC' } ], showErrors: false, width: 1300, height: 600, detailsWidget: { type: 'agorum.composite.details', width: 600 }, filterCollapsed: false, detailsCollapsed: false, listType: 'explorer', listConfig: 'Standard', userSearchButton: true, refreshButton: true, settingsMenu: true });
Informationen zu den Filtern und dem Filterbereich siehe Filterdefinitionen für agorum.composite.search.filter konfigurieren.
Definiert Filterelemente im Filterbereich.
Beispiel
filterSearchWidget.filter = [ { title: 'Objektarten', type: 'query', name: 'Eindeutiger Name des Filters', items: [ { title: 'Ordner', name: 'folders', query: 'isfolder:true' } ] } ];
Gibt dem Filter als Start für die Suche die hier festgelegte baseQuery mit.
Beispiel
filterSearchWidget.baseQuery = '*';
Fügt der eigentlichen Query abhängig vom Filter eine zusätzlich definierbare baseQuery hinzu.
Sie können diesen Parameter nachträglich ändern.
Beispiel
filterSearchWidget.additionalBaseQuery = 'inpath:9999';
Definiert die Suche, die bereits im Sucheingabefeld ausgefüllt ist.
Sie können diesen Parameter nachträglich ändern.
Beispiel
filterSearchWidget.query = 'test';
Definiert optional die Sortieroptionen für einen Filter aus dem agorum core information center.
Im Standard sortiert das System nach folgenden Eigenschaften:
Beispiel
filterSearchWidget.sort = [ { property: 'lastModifyDate', direction: 'DESC' } ];
Definiert optional eine Reihe von Sortierkonfigurationen, die der Benutzer wählen kann.
[ ..., { name: 'sortconfig_updatedate_desc', text: 'Änderungsdatum (absteigend)', notification: true, sort: [ { property: 'updateDate', direction: 'DESC' } ] }, ... ]
Parameter | Beschreibung |
---|---|
name | Definiert einen eindeutigen Namen für die Sortierung. |
text | Definiert den Anzeigenamen in der Sortierauswahl für den Benutzer. |
notification | true
|
sort | Definiert ein Array von Sortierungskriterien für die Suchmaschine.
Beispiele
|
Beispiel
let filterSearchWidget = aguila.create({ type: 'agorum.composite.search.filterResultDetails', filter: [ ... ], filterSelection: { ... }, // ..... sortConfig: [ { name: 'sortconfig_updatedate_asc', text: 'update date (ASC)', sort: [ { property: 'updateDate', direction: 'ASC' } ] }, { name: 'sortconfig_updatedate_desc', text: 'update date (DESC)', notification: true, sort: [ { property: 'updateDate', direction: 'DESC' } ] }, { name: 'sortconfig_createdate_asc', text: 'create date (ASC)', sort: [ { property: 'createDate', direction: 'ASC' } ] }, { name: 'sortconfig_createdate_desc', text: 'create date (DESC)', notification: true, sort: [ { property: 'createDate', direction: 'DESC' } ] } ] // ..... });
Definiert die als Standardsortierung gewählte Konfiguration aus dem Parameter sortConfig (Name der Konfiguration in sortConfig).
Beispiel
filterSearchWidget.sortConfigName = 'sortconfig_createdate_desc';
Wert | Beschreibung |
---|---|
true | Gibt Suchfehler aus. Dazu geeignet, um während der Entwicklung Fehler zu erkennen. |
false (Standard) | Gibt keine Suchfehler aus. |
Definiert Breite und Höhe der Komponente.
Wert | Beschreibung |
---|---|
true | Blendet Filter aus. |
false (Standard) | Blendet Filter ein. |
Sie können diesen Parameter nachträglich ändern, wodurch der Filter entweder ein- oder ausklappt.
Beispiel
filterSearchWidget.filterCollapsed = true;
Definiert optional ein aguila-Widget, das das System für die Detaildarstellung verwendet, wenn ein Benutzer ein Element aus der Liste der Suchergebnisse markiert hat.
Beispiel
detailsWidget: { type: 'agorum.composite.details', width: 600 }
siehe Parameter filterCollapsed
Sie können diesen Parameter nachträglich ändern, wodurch der Detailbereich entweder ein- oder ausklappt.
Beispiel
filterSearchWidget.detailsCollapsed = true;
Wert | Beschreibung |
---|---|
Standard | Stellt das Suchergebnis als Detail-Liste dar. |
explorer | Stellt das Suchergebnis als Explorer-Liste dar. |
Hinweis: Die explorer-Liste verwendet eine neue Implementierung. Die alte Implementierung ist weiterhin über den listType legacyExplorer möglich.
Beispiel
filterSearchWidget.listConfig = 'Standard'; filterSearchWidget.listType = 'explorer';
Definiert die Konfiguration, die das System für die Darstellung der Spalten verwendet.
Definiert ein Widget mit Suchergebnissen (als aon-Objekt).
Hinweise:
Beispiele
let aguila = require('common/aguila'); let filterSearchWidget = aguila.create({ type: 'agorum.composite.search.filterResultDetails', width: 1400, height: 800, // filter: [ ... ], // filterSelection: { ... }, // settings: [ ... ], baseQuery: '*', query: 'test', detailsWidget: { type: 'agorum.composite.details', width: 600 }, results: { type: 'other.widget.name' } }); filterSearchWidget;
Das Widget other.widget.name erhält als Standard-Property query.
Beispiel für dieses Widget
let aguila = require('common/aguila'); let widget = aguila.create({ type: 'agorum.vbox', properties: [ 'query', 'selection' ], items: [ { type: 'agorum.vbox', cls: 'aguila-noborder', border: true, items: [ // TODO: put in your widget for displaying the result, depending on query { type: 'agorum.textDisplay', name: 'queryDisplay' } ] }, { type: 'agorum.composite.search.result', name: 'result', flexible: true, listType: 'explorer', list: 'Standard', sort: [ { property: 'lastModifyDate', direction: 'DESC' } ] } ] }); let result = widget.down('result'); let queryDisplay = widget.down('queryDisplay'); // outer > inner widget.on('queryChanged', query => { // TODO: do something, when query has changed queryDisplay.value = 'Query: ' + query; }); widget.on('refresh', () => { // TODO: do something on refresh event }); // TODO: trigger details result.on('selectionChanged', selection => { widget.selection = selection; }); // TODO: trigger loading //widget.fire('loading'); // TODO: trigger loaded, when loading is finished //widget.fire('loaded'); widget;
Eingehende Property „query“
Definiert die vollständig gefilterte Suchanfrage.
Eingehendes Event „refresh“
Aktualisiert das Suchergebnis.
Ausgehendes Event „selected“
Greift bei Selektionsänderung.
Ausgehende Events „loading“ und „loaded“
Signalisiert Aktivität.
Wert | Beschreibung |
---|---|
true (Standard) | Blendet die Schaltfläche für benutzerdefinierte Suchen ein. |
false | Blendet optional die Schaltfläche für benutzerdefinierte Suchen aus. |
Wert | Beschreibung |
---|---|
true (Standard) | Blendet die Schaltfläche für das Aktualisieren der Suche ein. |
false | Blendet optional die Schaltfläche für das Aktualisieren der Suche aus. |
Wert | Beschreibung |
---|---|
true (Standard) | Blendet die Schaltfläche für das Zurücksetzen der Suche ein. |
false | Blendet optional die Schaltfläche für das Zurücksetzen der Suche aus. |
Wert | Beschreibung |
---|---|
true (Standard) | Blendet die Schaltfläche für die Favoriten ein. |
false | Blendet optional die Schaltfläche für die Favoriten aus. |
Wert | Beschreibung |
---|---|
true | Benutzer können optional eigene Filter erstellen. |
false (Standard) | Benutzer können keine eigenen Filter erstellen. |
Wert | Beschreibung |
---|---|
true | Benutzer können optional eigene Mitteilungen basierend auf gespeicherten Suchen erstellen. |
false (Standard) | Benutzer können keine eigenen Mitteilungen basierend auf gespeicherten Suchen erstellen. |
Wert | Beschreibung |
---|---|
true (Standard) | Blendet das Menü für die Filtereinstellungen und gespeicherten Suchen ein. |
false | Blendet das Menü optional für die Filtereinstellungen und gespeicherten Suchen aus. |
Gibt optional anstelle von Suchergebnis (123) den in resultTitle angegebenen Titel aus.
Hinterlegen Sie einen Platzhalter ($1), damit die Anzahl der Ergebnisse korrekt erscheint.
Sie können Parameter an die Ergebnis-Liste, die cards anzeigen, übergeben, etwa den Parameter level.
Hinweis: resultParameters kann nur bei der Erstellung des Widgets mitgegeben und nicht nachträglich geändert werden.
Beispiel
let aguila = require('common/aguila'); let decorators = require('/agorum/roi/customers/agorum.cards/js/decorators'); let acicWidget = aguila.create({ type: 'agorum.composite.acic', resultParameters: { level: decorators.LEVEL.SMALL, }, }); acicWidget;
Gibt optional im Detailbereich beim initialen Öffnen eine ID mit, sodass am Anfang ein Objekt erscheint.
Hinweis: Die manuelle Änderung der Details-ID wirkt nur bis zur nächsten Änderung der Selektion in der Ergebnisliste. Danach erscheint im Detailbereich wieder das zuletzt selektierte Objekt.
Beispiel
filterSearchWidget.detailsId = '1234';
Gibt optional im Detailbereich beim initialen Öffnen eine ID mit, sodass am Anfang ein Objekt erscheint. Das System versucht bei einer Explorer-Liste, das Element mit dieser ID zu wählen (sofern es im dargestellten Bereich der Liste ist und Sie nur 1 Element übergeben). Übergeben Sie mehrere Elemente im Array, führt das System keine Selektierung in der Liste durch.
Beispiel
filterSearchWidget.selection = [ '1234' ];
Belegt optional Filter vor.
js/aguila/search/filter-result-details/sample-save-load.js
Beispiel
filterSearchWidget.filterSelection = { documentsMails: { value: true }, extensions: { value: [ 'html' ], valueNot: [ 'txt' ] } };
Gibt Filterkonfigurationen und vordefinierte, gespeicherte Suchen mit, die im Menü zur Auswahl stehen.
zusätzlich Suchkonfigurationen mitgeben, entfernt das System die Parameter baseQuery, filter, listType und listConfig und ändert sie entsprechend der Auswahl des Benutzers.
Beispiel
let settings = [ { type: 'configuration', // Typ-Konfiguration name: 'config1', // muss systemweit eindeutig sein text: 'Sucheinstellung 1', filter: filter, baseQuery: baseQuery, listType: 'detail', favorite: true, default: true // setzt diese Einstellung als Standard (kann vom Benutzer überschrieben werden) }, { type: 'configuration', name: 'config2', text: 'Sucheinstellung 2', filter: filter, baseQuery: baseQuery, listType: 'explorer', listConfig: 'Standard', favorite: true }, { type: 'configuration', name: 'config3', text: 'Sucheinstellung 3', filter: filter2, baseQuery: 'test', listType: 'explorer', listConfig: 'Standard', favorite: false }, { type: 'search', // Typ Suche name: 'savedSearch1', // muss systemweit eindeutig sein text: 'Gespeicherte Suche 1', filterSelection: { documentsMails: { value: true }, extensions: { value: [ 'html' ] } }, query: 'test', configuration: 'config1', // optional, Name der Konfiguration, die verwendet werden soll, ist dies nicht angegeben, so wird die aktuell gewählt Konfiguration genutzt favorite: true } ];
Wählt eine Filterkonfiguration aus dem Parameter settings voraus, indem Sie den Namen von dieser hier setzen.
Liest den Namen der aktuell gewählten Filterkonfiguration aus.
Sie können so etwa über das Event selectedSettingNameChanged auf Änderung der Filterauswahl reagieren.
Gibt Eigenschaften als String-Array an, die das System an das detailsWidget und an das resultWidget reicht, wenn Sie diese auf dieses Widget (filterResultDetails) setzen.
Sie können diesen Parameter nachträglich nicht ändern.
Beispiel
let filterSearchWidget = aguila.create({ type: 'agorum.composite.search.filterResultDetails', // ..., properties: [ 'id', 'templateId' ], relayProperties: [ 'templateId', // reicht templateId weiter an details und results, wenn es geändert wird 'query' // reicht query weiter an details, wenn diese geändert wird ], // .... });
Konfiguriert eine oder mehrere Export-Konfigurationen für die Suche (siehe exportConfig).
Events, die Sie vom Widget erhalten.
Löst aus, wenn sich die ID des Detailbereichs ändert, etwa wenn ein Benutzer ein Element aus der Ergebnisliste wählt.
Sie erhalten ein Array von IDs.
Löst aus, wenn sich die Sortierung ändert.
Löst aus, wenn sich die Query ändert.
Löst aus, wenn ein Benutzer eine neue Sortierung aus der Sortierungsliste wählt.
Löst aus, wenn sich die Query durch Änderung der Suche / Auswahl von Filtern ändert.
Sie erhalten die komplett generierte Query für die Suchmaschine.
Beispiel
filterSearchWidget.on('completeQueryChanged', query => { console.log('query', query); });
Events, die Sie zum Widget senden können.
Aktualisiert das Suchergebnis und die Suchfilter.
Beispiel
filterSearchWidget.fire('refresh');
/* global parameters */ let aguila = require('common/aguila'); let objects = require('common/objects'); // Fuer Entwicklungszwecke, um Query Fehler bei der Solr Suchmaschine zu erkennen const SHOW_ERRORS = true; // Basis query, die immer mitgeliefert wird bei jeder Suche, unabhaengig von der Eingabe des Benutzers let baseQuery = '*'; // Filter definieren let filter = [ { title: 'Objektarten', name: 'objectTypes', type: 'query', items: [ { title: 'Dokument + Mails', name: 'documentsMails', query: 'classname:(fileobject OR mailobject OR amailmail OR MailDocumentObject OR ASmbFile OR FaxFile OR ALfsFile)' }, { title: 'Dokument', name: 'documents', query: 'classname:(fileobject OR ASmbFile OR FaxFile OR ALfsFile)' }, { title: 'Notiz', name: 'notes', query: 'classname:(noteobject)' }, { title: 'Ordner', name: 'folder', query: 'classname:(folderobject OR ASmbFolder OR ALfsFolder OR ALfsMountPoint)' }, { title: 'Mail', name: 'mails', query: 'classname:(mailobject OR amailmail)' }, { title: 'Mailanhänge', name: 'mailAttachments', query: 'classname:(MailDocumentObject)' } ] }, { title: 'Erstelldatum', name: 'createDate', type: 'query', items: [ { title: 'Heute', name: 'today', query: 'createdate_date_range:[NOW/DAY-1DAY TO NOW/DAY]' }, { title: 'Gestern', name: 'yesterday', query: 'createdate_date_range:[NOW/DAY-2DAY TO NOW/DAY-1DAY]' }, { title: '1 Woche', name: 'oneWeek', query: 'createdate_date_range:[NOW/DAY-7DAY TO NOW/DAY]' }, { title: '1 Monat', name: 'oneMonth', query: 'createdate_date_range:[NOW/MONTH-1MONTH TO NOW/MONTH]' } ] }, { title: 'Tags', name: 'tags', type: 'terms', field: 'ag_tags_ci', limit: 10 }, { title: 'Dateiendung', name: 'extensions', type: 'terms', field: 'nameextension_ci', limit: 200, missing: true, missingText: 'Objekte ohne Endung', maxChars: 15 } ]; // Widget erstellen let filterSearchWidget = aguila.create({ type: 'agorum.composite.search.filterResultDetails', filter: filter, query: '', baseQuery: baseQuery, showErrors: SHOW_ERRORS, width: 1300, height: 600, detailsWidget: { type: 'agorum.composite.details' }, listType: 'detail', filterCollapsed: false, listConfig: 'Standard' }); filterSearchWidget;
Weitere Beispiele mit Skripten finden Sie unter:
/agorum/roi/customers/agorum.composite/js/aguila/search/filter-result-details
Skript | Beschreibung |
---|---|
sample.js | Beispiel mit einem vordefinierten Filter |
sample-no-filter.js | Beispiel ohne Filter |
sample.js | Beispiel mit einem vordefinierten Filter |
sample-no-filter.js | Beispiel ohne Filter |
sample-save-load.js | Beispiel für das manuelle Speichern und Laden von Suchen. |
sample-search-settings.js | Beispiel für die Verwendung von Sucheinstellungen. |
sample-search-settings-search-only.js | Beispiel für die Verwendung eines Standardfilters und einer vordefinierten gespeicherten Suche. |