Open Source Dokumentenmanagement
Dokumentation

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


agorum.composite.search.filterResultDetails

Mit dieser Komponente können Sie Suchen in Kombination mit definierbaren Filtern konfigurieren.

Darstellung der Filter
  1. Filter
    Zeigt basierend auf dem aktuellen Suchergebnis die verfügbaren Filter.

    • Die Filter sind von der gewählten Filtereinstellung sowie dem eingegebenen Suchbegriff abhängig.
    • Die Anzahl hinter den Begriffen stellt dar, wie viele Objekte auf das Ergebnis passen.
    • Setzen Sie einen Haken bei einer Option, um das Suchergebnis auf den gewählten Filter einzuschränken.
    • Klicken Sie auf , erscheinen umgekehrt alle Ergebnisse, die nicht auf den Filter passen.
  2. Filtereinstellungen (Parameter: settings)
    Enthält vordefinierte Filter sowie vordefinierte und gespeicherte Suchen des Benutzers.
  3. Aktualisieren
    Aktualisiert das Suchergebnis.
  4. Suchleiste und Suchergebnis
    Enthält die Suchleiste und die Ergebnisübersicht, je nach Einstellung als Detail-Liste oder spaltenbasierte Explorer-Liste.
  5. Favoriten
    Favoriten erscheinen im Filter-Einstellungsmenü, alle anderen Filter, die Sie nicht als Favorit setzen, unter Weitere....
  6. Benutzerdefinierte Suchen
    Benutzerdefinierte Suchen können Sie speichern, bearbeiten, umbenennen und löschen.
  7. Mitteilungen
    Bei aktivierten Mitteilungen erhalten Benutzer Benachrichtigungen zu neuen Ergebnissen des jeweiligen Filters oder der jeweiligen Suche direkt in der Home-Bar und / oder per E-Mail.
  8. Zurücksetzen
    Sucheingaben und Filterauswahl können Sie zurücksetzen, um erneut Sucheingaben zu tätigen und Filter zu wählen.
  9. Details
    Ansicht, Vorschau, Objektinfos und Notizen zum aktuell in der Ergebnisliste markierten Objekt

Verwendung


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
});

Parameter


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

filter

Definiert Filterelemente im Filterbereich.


Beispiel

filterSearchWidget.filter = [
  {
    title: 'Objektarten',
    type: 'query',
    name: 'Eindeutiger Name des Filters',
    items: [
      {
        title: 'Ordner',
        name: 'folders',
        query: 'isfolder:true'
      }
    ]
  }
];

baseQuery

Gibt dem Filter als Start für die Suche die hier festgelegte baseQuery mit.


Beispiel

filterSearchWidget.baseQuery = '*';

additionalBaseQuery

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';

query

Definiert die Suche, die bereits im Sucheingabefeld ausgefüllt ist.

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


Beispiel

filterSearchWidget.query = 'test';

sort

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'
  }
];

sortConfig

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
  • Die Sortierung gilt für Mitteilungen.
  • Die Schaltfläche für Mitteilungen (Glockensymbol) ist aktiv.
false
  • Die Sortierung gilt nicht für Mitteilungen.
  • Die Schaltfläche für Mitteilungen (Glockensymbol) ist inaktiv.
sort Definiert ein Array von Sortierungskriterien für die Suchmaschine.
  • Regeln und Informationen siehe Parameter sort
  • Damit Mitteilungen funktionieren, muss es sich um ein Datumsfeld aus dem Suchindex handeln. 
  • Das verwendete Datumsfeld für die Ermittlung von neuen Mitteilungen muss an erster Stelle im Array von sort stehen.

Beispiele

  • updateDate
  • createDate
  • lastModifyDate


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'
        }
      ]
    }
  ]
  // .....
});

sortConfigName

Definiert die als Standardsortierung gewählte Konfiguration aus dem Parameter sortConfig (Name der Konfiguration in sortConfig).


Beispiel

filterSearchWidget.sortConfigName = 'sortconfig_createdate_desc';

showErrors

Wert Beschreibung
true Gibt Suchfehler aus.

Dazu geeignet, um während der Entwicklung Fehler zu erkennen.
false (Standard) Gibt keine Suchfehler aus.

width/height

Definiert Breite und Höhe der Komponente.

filterCollapsed

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;

detailsWidget

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
}

detailsCollapsed

siehe Parameter filterCollapsed

Sie können diesen Parameter nachträglich ändern, wodurch der Detailbereich entweder ein- oder ausklappt.


Beispiel

filterSearchWidget.detailsCollapsed = true;

listType

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';

listConfig

Definiert die Konfiguration, die das System für die Darstellung der Spalten verwendet.

results

Definiert ein Widget mit Suchergebnissen (als aon-Objekt).

Hinweise:

  • Wenn der Parameter listType definiert ist, hat dieser Parameter Priorität. Das System ignoriert dann den Parameter results.
  • Entfernen Sie den Parameter listType, damit results funktioniert.


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.

userSearchButton

Wert Beschreibung
true (Standard) Blendet die Schaltfläche für benutzerdefinierte Suchen ein.
false Blendet optional die Schaltfläche für benutzerdefinierte Suchen aus.

refreshButton

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.

resetButton

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.

favoriteButton

Wert Beschreibung
true (Standard) Blendet die Schaltfläche für die Favoriten ein.
false Blendet optional die Schaltfläche für die Favoriten aus.

customFilter

Wert Beschreibung
true Benutzer können optional eigene Filter erstellen.
false (Standard) Benutzer können keine eigenen Filter erstellen.

notification

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.

settingsMenu

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.

resultTitle

Gibt optional anstelle von Suchergebnis (123) den in resultTitle angegebenen Titel aus.

Hinterlegen Sie einen Platzhalter ($1), damit die Anzahl der Ergebnisse korrekt erscheint.

resultParameters

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;

detailsId

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';

selection

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' ];

filterSelection

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' ]
  }
};

settings

Gibt Filterkonfigurationen und vordefinierte, gespeicherte Suchen mit, die im Menü zur Auswahl stehen.


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
  }
];

settingName

Wählt eine Filterkonfiguration aus dem Parameter settings voraus, indem Sie den Namen von dieser hier setzen.

selectedSettingName

Liest den Namen der aktuell gewählten Filterkonfiguration aus.

Sie können so etwa über das Event selectedSettingNameChanged auf Änderung der Filterauswahl reagieren.

relayProperties

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
  ],
  // ....
});

exportConfig

Konfiguriert eine oder mehrere Export-Konfigurationen für die Suche (siehe exportConfig).

Events (on)


Events, die Sie vom Widget erhalten.

selectionChanged

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.

sortChanged

Löst aus, wenn sich die Sortierung ändert.

queryChanged

Löst aus, wenn sich die Query ändert.

sortConfigNameChanged

Löst aus, wenn ein Benutzer eine neue Sortierung aus der Sortierungsliste wählt.

completeQueryChanged

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 (fire)


Events, die Sie zum Widget senden können.

refresh

Aktualisiert das Suchergebnis und die Suchfilter.


Beispiel

filterSearchWidget.fire('refresh');

Komplettes Beispiel


/* 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


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.