Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core JavaScript-API > agorum core smart search > Aktionen des agorum core template managers im Kontextmenü


overview widget

Hinweis: Diese Dokumentation bezieht sich auf die aktuellste Version des agorum core template managers. Aktualisieren Sie ggf. das hier beschriebene Plugin, um die Dokumentation verwenden zu können.

Mit dieser dateiabhängigen Aktion registrieren Sie ein Overview-Widget, um die angezeigten Informationen im Reiter „Übersicht“ im Detailfenster für Ihre Zwecke anzupassen.

Sie könnten die Anzeige im Reiter Übersicht etwa um weitere Informationen nach dem Muster der Anzeige des Ursprungsdokuments über andere Metadaten erweitern.

In diesem Beispiel wird der Abschnitt Ursprung nur angezeigt, wenn das entsprechende Metadatum gesetzt ist. Wenn das Metadatum vorhanden ist, wird das Ursprungsdokument angezeigt und Benutzer können über einen Klick darauf direkt zu dem Dokument gelangen.

Anzeige des Ursprungsdokuments (über das Metadatum ag_origin)

Registrieren eines Overview-Widgets


So registrieren Sie ein Overview-Widget:

Voraussetzung:

Die Aktion overview widget registrieren erleichtert Ihnen die Einrichtung eines Skripts für den Reiter Übersicht. Sie benötigen dafür:

  1. Erstellen Sie das JavaScript, das Sie verwenden wollen, um die Übersicht zu ergänzen. In der Regel bestimmen Sie in diesem Skript über einen Selektor, wann die Zusatzinformation angezeigt werden soll. Beispiel:
    let items = [
      {
        name: 'agorum.standard.agOrigin.overview',
        title: '_agorum.standard.agOrigin.overview.title',
        order: 10,
        // aguila widget that will be displayed
        aon: {
          type: 'standard.agOriginOverview',
        },
        // best practice: selection when the information will be displayed
        selector: ['[~ag_origin]'],
      },
    ];
    
    exports.settings = () => items;
  2. Speichern Sie das Skript in Ihrem Konfigurationsprojekt im Ordner js/overview.
  3. Wählen Sie im Kontextmenü agorum core template manager > Registrieren > overview widget.

    Ergebnis: Ein Dialog öffnet sich.

     

    Bestätigen der Registrierung als Overview-Widget
  4. Klicken Sie auf OK.
  5. Sie sehen ein Fenster mit dem Namen, unter dem das Overview-Widget für die Übersicht registriert wird. Bestätigen Sie mit OK.

     

    Anzeige des Namens für die Registrierung

    Ergebnis: Das System registriert das Overview-Widget. Die angezeigten Informationen in der Übersicht im Detailfenster ändern sich abhängig von den in Ihrem Skript angegebenen Bedingungen. Bei der Registrierung werden folgende Dateien/Einträge angelegt:

    • Ein MetaDB-Eintrag mit Verweis auf das Skript unter folgendem Pfad.

    MAIN_MODULE_MANAGEMENT/customers/agorum.composite.details/settings/[ <Konfigurationsprojekt> ]/<Registrierungsname>

    • Eine uninstall-Datei im Workspace des Konfigurationsprojekts:

    /agorum/roi/workspace/<Konfigurationsprojekt>/uninstall/<Registrierungsname>/<Registrierungsname>.json

aguila-Beispielskript für die Anzeige


Das folgende Skript zeigt beispielhaft, wie Sie selbst eine Card-Ansicht für den Reiter Übersicht erstellt können. In der Ansicht werden Benutzern Informationen über das Ursprungsobjekt eines Dokuments angezeigt. Der widget.synchronizer() verwaltet asynchrone Datenoperationen und reagiert auf ID-Änderungen, um den Inhalt der Anzeige dynamisch zu aktualisieren.

let aguila = require('common/aguila');
let objects = require('common/objects');
let metadata = require('common/metadata');
let decorators = require('/agorum/roi/customers/agorum.cards/js/decorators');
let i18n = require('common/i18n');

let widget = aguila.create({
  type: 'agorum.vbox',
  properties: ['id'],
  items: [
    {
      type: 'agorum.composite.form.element.text',
      readOnly: true,
      name: 'noOrigin',
      value: i18n.translate('agorum.standard.agOrigin.overview.noOrigin'),
    },
    {
      type: 'agorum.vbox',
      name: 'cardContainer',
      hidden: true,
      items: [
        {
          name: 'cardView',
          type: 'agorum.cards.view',
        },
      ],
    },
  ],
});

let noOrigin = widget.down('noOrigin');
let openContainer = widget.down('openContainer');
let cardView = widget.down('cardView');
let cardContainer = widget.down('cardContainer');

let synchronizer = widget.synchronizer();

widget.on('idChanged', id => {
  if (!id) {
    openContainer.hidden = true;
    noOrigin.hidden = false;
    return;
  }

  synchronizer
    .fork(() => {
      let obj = objects.tryFind(id);
      if (!obj) return;

      let origin = metadata()
        .load(obj, /^ag_origin$/)
        .data().ag_origin;
      if (!origin) return;

      let originObj = objects.tryFind(origin);
      if (!originObj) return;

      return {
        id: originObj.UUID,
        name: originObj.displayName,
      };
    })
    .then(data => {
      cardContainer.hidden = !data;
      noOrigin.hidden = !!data;

      cardView.replace({
        type: 'agorum.object',
        id: data && data.id,
        borderless: true,
        level: decorators.LEVEL.SMALL, // MINIMUM, SMALL, REDUCED, DEFAULT, MAXIMUM
        interactive: true,
      });
    });
});

widget;