Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core information center entwickeln
Diese Komponente bietet eine Suche und Filtermöglichkeit, basierend auf dynamisch geladenen Suchen und Filtern, Sie über MetaDB-Schlüssel definieren. Die Filter laden Skripte, mit denen das System dann die Einstellungen bildet.
Gleichzeitig verwendet das System diese Einstellungen auch in der Komponente agorum.composite.acic-bar (Suchleiste in agorum core).
let acicWidget = aguila.create({ type: 'agorum.composite.acic' });
Definiert den Namen der Sucheinstellung, die vorausgewählt ist.
Standardwert | Beschreibung |
---|---|
ac_all | Alles |
inbox-current | Eingang (aktuell) |
inbox-all | Eingang (alles) |
Beispiel
let acicWidget = aguila.create({ type: 'agorum.composite.acic', settingName: 'inbox-all' });
Komplettes Beispiel zum Parameter „settingName“
Komplettes Beispiel für eine Templatekonfiguration
Sie können ansonsten alle weiteren Parameter von agorum.composite.search.filterResultDetails verwenden.
Komplettes Beispiel zum Parameter „settingName“
Das folgende Beispiel zeigt, wie Sie alle Einstellungen der Suche holen und wieder setzen.
let aguila = require('common/aguila'); let message = require('/agorum/roi/customers/agorum.composite/js/lib/message.js'); let saved; let w = aguila.create({ type: 'agorum.composite.acic', width: 1400, height: 800, docked: { top: { type: 'agorum.toolbar', items: [ { type: 'agorum.button', name: 'getConfig', text: 'get config' }, { type: 'agorum.button', name: 'setConfig', text: 'set config' } ] } } }); w.down('getConfig').on('clicked', () => { // get config from information center saved = { filterSelection: w.filterSelection, query: w.query, settingName: w.settingName, additionalBaseQuery: w.additionalBaseQuery }; message.alert('Hinweis', 'Suche gespeichert: ' + JSON.stringify(saved)); }); w.down('setConfig').on('clicked', () => { // set config to information center if (saved) { w.settingName = saved.settingName; w.query = saved.query; w.additionalBaseQuery = saved.additionalBaseQuery; w.filterSelection = saved.filterSelection; } }); w;
In der MetaDB existieren hierzu zwei Bereiche:
Die globalen Einstellungen (bei den von agorum core gelieferten Komponenten) finden Sie in der Administration > MetaDB unter:
MAIN_MODULE_MANAGEMENT/aguila/control/widgets/[ agorum.composite ]/agorum.composite.acic/settings
Die kundenspezifischen Konfigurationen finden Sie in der Administration > MetaDB unter:
MAIN_MODULE_MANAGEMENT/customers/agorum.composite.acic/settings
Unterhalb von settings existiert bei beiden Einstellungen folgende Struktur:
agorum.composite.acic sammelt alle Konfigurationen zusammen, die sich ergeben und auf die der Benutzer berechtigt ist, und fügt diese in das Sucheinstellungsmenü ein. Dort erscheinen die Konfigurationen dann alphabetisch sortiert.
Setting | Beschreibung |
---|---|
acl | Lädt optional die jeweilige Konfigurationsdatei je nach Rechten des Benutzers. |
js | Enthält die Konfiguration(en) für das Sucheinstellungsmenü sowie optional vorgegebene, gespeicherte Suchen. |
Dieses Beispiel verwendet folgenden Pfad in der Administration > MetaDB:
MAIN_MODULE_MANAGEMENT/customers/agorum.composite.acic/settings/test_acic_config/settings
Setting | Wert |
---|---|
acl | Published |
js | /agorum/roi/customers/test_acic/js/test_acic_config |
Unterhalb des Verzeichnis js wird die JavaScript-Datei test_acic_config.js angelegt:
// Beispiel zur Definition einer Konfiguration für die Suche // Exportieren der Konfiguration exports.settings = user => { let baseQuery = '*'; // Filter definieren let filter = [ { title: 'Objektarten', name: 'objectTypes', type: 'query', items: [ { title: 'Dokument + Mails', name: 'documentsMails', query: 'isfolder:false NOT (isfolder:true OR ancestors:(noteobject OR workflowactivity OR workflowinstance))' }, { title: 'Dokument', name: 'documents', query: 'isfolder:false NOT (isfolder:true OR ancestors:(noteobject OR workflowactivity OR workflowinstance) OR ancestors:(mailobject) OR (instanceof:maildocumentobject OR ismailattachment:true))' }, { title: 'Notiz', name: 'notes', query: 'ancestors:noteobject' }, { title: 'Ordner', name: 'folder', query: 'isfolder:true' }, { title: 'Mail', name: 'mails', query: 'ancestors:(mailobject)' }, { title: 'Mailanhänge', name: 'mailAttachments', query: '(instanceof:maildocumentobject OR ismailattachment:true)' } ] }, { title: 'Erstelldatum', name: 'createDate', type: 'query', items: [ { title: 'Heute', name: 'today', query: 'createdate_date_range:[NOW/DAY TO NOW/DAY+1DAY]' }, { 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: 'Erstelldatum (letzte 10 Tage)', name: 'createDate10Days', type: 'range', convert: 'date', formatDisplay: 'dd.MM.yyyy', formatSearch: 'yyyy-MM-dd', start: 'NOW/DAYS-10DAYS', end: 'NOW/DAYS+1DAY', gap: '+1DAY', field: 'createdate', sortOrder: 'desc' }, { title: 'Erstelldatum (Monate)', name: 'createDateMonths', type: 'range', convert: 'date', formatDisplay: 'MMMM yyyy', formatSearch: 'yyyy-MM', field: 'createdate', start: 'NOW/YEAR-10YEARS', end: 'NOW/YEAR+1YEAR', gap: '+1MONTH', sortOrder: 'desc' }, { title: 'Erstelldatum (Jahre)', name: 'createDateYears', type: 'range', convert: 'date', formatDisplay: 'yyyy', formatSearch: 'yyyy', field: 'createdate', start: 'NOW/YEAR-10YEARS', end: 'NOW/YEAR+1YEAR', gap: '+1YEAR', sortOrder: 'desc' }, { title: 'Erstelldatum - letzte 5 Wochen', name: 'createDateWeeks', type: 'range', convert: 'date', formatDisplay: '\'KW \'w \'- \'dd.MM.yyyy', start: 'NOW/DAYS-35DAY', end: 'NOW/DAYS', gap: '+7DAYS', addGapToQuery: true, field: 'createdate', sortOrder: 'asc' }, { 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 } ]; let filter2 = [ { title: 'Dateiendung', name: 'extensions', type: 'terms', field: 'nameextension_ci', limit: 200, missing: true, missingText: 'Objekte ohne Endung', maxChars: 15 } ]; // Konfigurationsbeispiele let settings = [ { type: 'configuration', name: 'config1', text: 'Sucheinstellung 1', filter: filter, baseQuery: baseQuery, listType: 'detail', sort: [ { property: 'lastModifyDate', direction: 'DESC' } ], favorite: true, default: true }, { 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', name: 'savedSearch1', text: 'Gespeicherte Suche 1', filterSelection: { documentsMails: { value: true }, extensions: { value: [ 'html' ] } }, query: 'test', configuration: 'config1', // optional, wenn Konfigurationen verwendet werden, Verweis auf config1 favorite: true } ]; return settings; };