Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core information center entwickeln


agorum.composite.acic

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).

Verwendung


let acicWidget = aguila.create({
  type: 'agorum.composite.acic'
});

Optionale Parameter


settingName

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;

Einstellungen zur Suche hinzufügen


In der MetaDB existieren hierzu zwei Bereiche:

Globale Einstellungen

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

Kundenspezifische Konfigurationen

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.

Erläuterung der Settings


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.

Komplettes Beispiel für eine Templatekonfiguration


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