Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core information center entwickeln
Sie können die Suche dynamisch um eigene Konfigurationen erweitern, um flexibel zu sein und Anforderungen an Ihre Bedürfnisse umzusetzen.
agorum core liefert folgende Filterkonfigurationen mit:
Hinweis: Wenn Sie über den agorum core template manager einen neuen Filter für das information center hinzufügen, legt das System das folgende Skript automatisch mit allen Systemeinträgen an. Sie können das JavaScript danach anpassen.
/* global sc */ /* jshint unused: true */ // load base configuration for agorum core Information Center let baseFilter = require('/agorum/roi/customers/agorum.composite/js/aguila/acic/settings/base-filter'); // export the configuration exports.settings = user => { if (!user) user = sc.loginUser; let baseQuery = baseFilter.baseQuery(user); // filter for object types function filterConfig() { return { title: '<Konfigurationsprojekt> Filter', name: '<Konfigurationsprojekt-Präfix>_Filter', type: 'query', items: [ { title: 'Alle', name: '<Konfigurationsprojekt-Präfix>_FilterAll', query: '*' } ] }; } let filter = []; filter.push(filterConfig()); filter.push(baseFilter.objectTypes()); filter.push(baseFilter.createDate()); filter.push(baseFilter.lastmodifyDate()); return [ { type: 'configuration', name: '<Konfigurationsprojekt-Präfix>_FilterConfiguration', text: '<Konfigurationsprojekt-Präfix>', filter: filter, baseQuery: baseQuery, listType: 'detail', listTimeline: false, favorite: true, sort: baseFilter.defaultSort(false) } ]; };
Die Konfiguration besteht aus folgenden Elementen:
Element | Beschreibung |
---|---|
name | Definiert den Namen des Filters (intern). |
text | Definiert den Anzeigetext des Filters. |
icon | Legt optional ein Icon für den Filter aus dem Icon-Builder fest. |
filter | Filterdefinitionen, um die Suche weiter einzuschränken. |
baseQuery | Definiert eine Basis-Suche, die grundsätzlich die Objekte vorfiltert, die in diesem Filter erscheinen sollen. |
listType | Definiert die Art der Darstellung des Suchergebnisses:
|
listTimeline | Legt fest, ob die Einträge chronologisch angezeigt werden. |
favorite | Definiert, ob der Filter im Standard unter den Favoriten zu sehen ist. |
sort | Definiert optional die Sortieroptionen für einen Filter, siehe sort |
filterSelection | Definiert optional eine vordefinierte Suche, siehe filterSelection. |
results | Dient optional zur eigenen Erstellung eines Widgets zur Darstellung von Suchergebnissen. |
Für weitere Informationen zu den Parametern siehe agorum.composite.search.filterResultDetails.
Im Folgenden erstellen Sie ein Objekt, das das System finden soll, und definieren seine Metadaten, nach dessen Kriterien Sie anschließend filtern möchten.
Das Beispiel ist ein Dokument vom Typ Rechnung mit folgenden Metadaten:
Im Beispiel möchten Sie alle Objekte finden, bei denen tst_doctype den Wert Rechnung hat. Zusätzlich möchten Sie nach den Metadaten filtern. Das folgende Beispiel zeigt nur den Return-Abschnitt:
return [ { type: 'configuration', name: 'testplugin_rechnungen', text: 'Rechnungen', filter: [ { title: 'Rechnungsdaten', name: 'rechnungsDaten', type: 'query', items: [ { title: 'Rechnungsnummer', query: 'allfields:tst_rechnungs_nummer ${subQuery}', name: 'rechnungsNummer', subQuery: [ { title: 'Rechnungsnummer', name: 'tst_rechnungs_nummer', query: 'tst_rechnungs_nummer:${value}' } ] }, { title: 'Rechnungsdatum', query: 'allfields:tst_rechnungs_datum ${subQuery}', name: 'rechnungsDatum', subQuery: [ { query: '${value}', queryPart: 'tst_rechnungs_datum_date_range:[${valueFrom} TO ${valueTo}]', name: 'tst_rechnungs_datum_from_to', type: 'date-range', titleFrom: 'von', titleTo: 'bis' } ] }, { title: 'Kreditor', query: 'allfields:tst_kreditor ${subQuery}', name: 'kreditor', subQuery: [ { title: 'Kreditorname', name: 'tst_kreditor', query: 'tst_kreditor:${value}' } ] }, { title: 'Debitor', query: 'allfields:tst_debitor ${subQuery}', name: 'debitor', subQuery: [ { title: 'Debitorname', name: 'tst_debitor', query: 'tst_debitor:${value}' } ] } ] } ], baseQuery: 'tst_doctype:Rechnung', listType: 'detail', favorite: true } ]
Die erzeugte Ausgabedatei legt das System in den workspace-Ordner acic-exports und bietet sie zum Download. Das System setzt ein Ablaufdatum (expirationDate), an dem es die Datei automatisch am nächsten Tag löscht.
Im Standard erhalten Sie beim Export maximal 1000 Einträge.
Sie können für jeden Filter mehrere Export-Konfigurationen angeben. Diese erscheinen gesammelt unter der Schaltfläche Suchergebnis exportieren:
Definiert ein Array mit Export-Konfigurationen. Eine Konfiguration besteht aus einem internen eindeutigen Namen und einem Text, der in der Suche erscheint. Unter dem Abschnitt export (siehe Codebeispiele unten) können Sie alle genannten Parameter aus Output verwenden.
Wenn Sie einen Parameter nicht angeben, so lädt das System die Einstellungen aus der Definition der Suche, etwa aus dem aktiven Filter. Es ist ebenso möglich, Parameter zu überschreiben, um etwa die Suche zu ergänzen.
Über die Output-Parameter definieren Sie die zusätzlichen Inhalte, etwa den Header oder das Ausgabeformat. Dabei können Sie etwa eine bestehende metadata collection verwenden, um den Header zu definieren:
exportConfig: [ { name: 'exportconfig_all_default', text: i18n.translate('agorum.composite.acic.settings.filter.export.default'), export: { output: { resolveHeader: true, // exportMax: 100 // optional, to test export file metadataCollection: 'agorum_demo_test_collection' } } } ]
Vollständiges Beispiel anhand von ac_all
[ { type: 'configuration', name: 'ac_all', text: i18n.translate('agorum.composite.acic.settings.filter.All'), filter: baseFilter.baseFilter(), baseQuery: baseQuery, listType: 'detail', favorite: true, // sort: baseFilter.defaultSort(false), // do not use with sortConfigName sortConfigName: 'sortconfig_updatedate_desc', sortConfig: baseFilter.defaultSortConfig(), exportConfig: [ { name: 'exportconfig_all_default', text: i18n.translate('agorum.composite.acic.settings.filter.export.default'), export: { output: { resolveHeader: true, // exportMax: 100 // optional, to test export file metadataCollection: 'agorum_demo_test_collection' } } } ] } ];
Sie finden die ACLs des Filters in der MetaDB unter:
MAIN_MODULE/customers/agorum.composite.acic/settings/<[Projektordner]>/<Interner Filtername>
Zusätzlich erstellt das System eine ACL in den ACLs/Rechten in der Administration. Die ACL trägt dort den gleichen Namen wie der Filter.
Damit ein Benutzer Zugriff auf den Filter in der Suche erhält, berechtigen Sie ihn über die ACL.
agorum core liefert den Filter Aktuelles bei jeder Installation mit. Der Filter informiert über jegliche Neuerungen im System, die nicht Sie selbst vorgenommen haben.
Im Standard zeigt das System diesen Filter immer bei jedem Benutzer an. Oftmals ist es jedoch sinnvoller, Filter für spezifische Themen einzurichten; der Filter Aktuelles wird dann überflüssig, sodass Sie ihn ausblenden können.
ACLs/Rechte/agorum.composite/agorum.composite.acic.notification/
Tipp: Verwenden Sie den Filter Aktuelles für externe DataRoom-Benutzer. Dadurch sehen diese direkt, wenn sich relevante Dateien verändert haben, und arbeiten dadurch effizienter.