Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core information center entwickeln


Eigene Registerkarten im Detailfenster verwalten

Das Detailfenster besteht aus den Standard-Registerkarten:

Durch Konfigurationen können Sie weitere Registerkarten hinzuzufügen oder Standard-Registerkarten entfernen.

Eine Registerkarte hinzufügen


Hinweis: Das folgende Vorgehen funktioniert ausschließlich im Detailfenster.

  1. Es wird angenommen, dass ein Plugin mit dem Namen testplugin unter folgendem Pfad vorhanden ist:
    /agorum/roi/customers
    
  2. Legen Sie unter folgendem Pfad eine JavaScript-Datei namens details-testplugin-definition.js an:
    /agorum/roi/customers/testplugin/js/details/
  3. Befüllen Sie das JavaScript mit folgendem Inhalt:
    let tab = {
      name: 'testplugin.testTab',
      title: 'Test',
      order: 900,
      items: [
        {
          aon: {
            type: 'testplugin.TestWidget'
          }
        }
      ]
    };
    
    exports.settings = () => tab;

    name
    Definiert einen eindeutigen Namen für diese Konfiguration.

    title
    Definiert den Titel, der als Details-Registerkarte erscheint.

    order
    Definiert die Reihenfolge der Registerkarten.

    Je höher die Zahl, desto weiter hinten erscheint die Registerkarte.

    type
    Definiert ein aguila-Widget, das erscheint.
  4. Legen Sie in der MetaDB ein Property-Entry unter folgendem Pfad an, um das JavaScript zu registrieren:
    MAIN_MODULE_MANAGEMENT/customers/agorum.composite.details/settings/testplugin 
    
  5. Verweisen Sie im Property-Entry auf das zuvor angelegte JavaScript:
    js=/agorum/roi/customers/testplugin/js/details/details-testplugin-definition.js

    Ergebnis: Die Registerkarte erscheint im Details-Bereich bei jedem Objekt.

    Tipps:
    • Sie können zusätzlich ein Property-Entry mit dem Namen acl anlegen.
    • Tragen Sie als Wert den Namen der ACL ein.
    • Ist ein Benutzer über die ACL berechtigt, dann lädt die Konfiguration für ihn, ansonsten nicht.

Beispiel für das Widget „testplugin.TestWidget“

Beispielhaft erscheint nachfolgend in der Registerkarte Test ein Plugin, das den Namen und die ID des aktuell gewählten Objekts ausgibt.

  1. Legen Sie unter folgendem Pfad eine JavaScript-Datei namens testplugin-test-widget.js an:
    /agorum/roi/customers/testplugin/js/aguila/
  2. Befüllen Sie das JavaScript mit folgendem Inhalt:
    let aguila = require('common/aguila');
    let objects = require('common/objects');
    
    let aon = {
      type: 'agorum.vbox',
      properties: [
        'id'
      ],
      items: [
        {
          type: 'agorum.textDisplay',
          name: 'name',
          label: 'Name'
        },
        {
          type: 'agorum.textDisplay',
          name: 'id',
          label: 'ID'
        }
      ]
    };
    
    // create the widget.
    let widget = aguila.create(aon);
    
    // fill display fields, when id is changing
    widget.on('idChanged', () => {
      let id = widget.id;
      
      aguila.fork(() => {
        let obj = objects.find(id);
        return {
          name: obj.name,
          id: obj.ID
        };
      }).then(data => {
        widget.down('name').value = data.name;
        widget.down('id').value = data.id;
      });
    });
    
    widget;
  3. Legen Sie in der MetaDB ein Property-Entry unter folgendem Pfad an, um das Widget zu registrieren:
    MAIN_MODULE_MANAGEMENT/aguila/control/widgets/testplugin.TestWidget
    
  4. Verweisen Sie im Property-Entry auf das zuvor angelegte JavaScript:
    script=/agorum/roi/customers/testplugin/js/aguila/testplugin-test-widget.js
    
  5. Klicken Sie im JavaScript-Editor auf Initialize, um das Widget zu aktivieren.

    Ergebnis: Das Widget erscheint automatisch in Details unter der Registerkarte Test, wenn ein Benutzer ein Objekt im Suchergebnis wählt.

Eine Standard-Registerkarte entfernen


agorum core liefert im Standard Registerkarten mit. Sie können diese Registerkarten entfernen.

Registerkarte Interner Name
Ansicht view
Notizen notes
Objektinfo objectInfo
Vorschau preview

Hinweis: Das folgende Vorgehen funktioniert ausschließlich im Detailfenster.

  1. Legen Sie unter folgendem Pfad eine JavaScript-Datei namens details-testplugin-no-preview-definition.js an:
    /agorum/roi/customers/testplugin/js/details/
  2. Befüllen Sie das JavaScript mit folgendem Inhalt:
    let tab = {};
    
    exports.settings = () => { return tab; };
    
  3. Legen Sie in der MetaDB ein Property-Entry mit dem internen Namen der Registerkarte unter folgendem Pfad an, um die Standard-Registerkarte (hier preview) zu überschreiben:
    MAIN_MODULE_MANAGEMENT/customers/agorum.composite.details/settings/preview
  4. Verweisen Sie im Property-Entry auf das zuvor angelegte JavaScript:
    js=/agorum/roi/customers/testplugin/js/details/details-testplugin-no-preview-definition.js
    

    Ergebnis: Die Registerkarte Vorschau erscheint nicht mehr.

    Tipps:
    • Sie können zusätzlich ein Property-Entry mit dem Namen acl anlegen.
    • Tragen Sie als Wert den Namen der ACL ein.
    • Ist ein Benutzer über die ACL berechtigt, dann lädt die Konfiguration für ihn, ansonsten nicht, d. h. Sie steuern hierüber, wer die Registerkarte Vorschau sieht und wer nicht. Alternativ kann anstelle der Vorschau ein eigenes Widget erscheinen.

Die Registerkarte „Ansicht“ in Abhängigkeit des gewählten Objekts steuern


Die Registerkarte Ansicht ist eine spezielle Registerkarte. Hier ermittelt das System über Selektoren die „beste“ Ansicht für das aktuell gewählte Objekt und stellt sie unter der Ansicht dar. Beispiele dafür sind:

Sie können, basierend auf Selektoren, spezielle Ansichten für etwa Akten hinzufügen.

Das folgende Beispiel geht davon aus, dass ein Ordner mit dem identifier Testakte vorliegt. Klickt ein Benutzer auf solch einen Ordner, soll unter Ansicht ein Aktendeckel erscheinen. Als Aktendeckel nimmt das Beispiel der Einfachheit halber das TestWidget weiter oben, das name und id ausgibt.

Hinweis: Das folgende Vorgehen funktioniert sowohl im Detailfenster als auch im Detailbereich der Suche.

  1. Legen Sie unter folgenden Pfad eine JavaScript-Datei namens view-testplugin-definition.js an:
    /agorum/roi/customers/testplugin/js/details/
  2. Befüllen Sie die JavaScript-Datei mit folgendem Inhalt:
    let items = [
      {
        name: 'testplugin.view',
        aon: {
          type: 'testplugin.TestWidget'
        },
        selector:  [ '[~identifier=Testakte][isFolder]' ]
      }
    ];
    
    exports.settings = () => items;

    name
    Definiert einen eindeutigen Namen für diese Konfiguration.

    type
    Definiert ein aguila-Widget, das erscheint.

    selector
    Definiert ein Array von Selektoren. In diesem Beispiel soll die Konfiguration greifen, wenn auf dem Ordner der identifier Testakte steht und es sich um einen Ordner (isFolder) handelt.
  3. Legen Sie in der MetaDB ein Property-Entry unter folgendem Pfad an, um die Konfiguration zu registrieren:
    MAIN_MODULE_MANAGEMENT/customers/agorum.composite.details.tabbedView/settings/testplugin
  4. Verweisen Sie im Property-Entry auf das zuvor angelegte JavaScript:
    js=/agorum/roi/customers/testplugin/js/details/view-testplugin-definition.js
    

    Ergebnis: Unter Ansicht erscheint in Details das Widget, sobald ein Benutzer auf einen Ordner mit dem identifier Testakte klickt.

    Tipps:
    • Sie können zusätzlich ein Property-Entry mit dem Namen acl anlegen.
    • Tragen Sie als Wert den Namen der ACL ein.
    • Ist ein Benutzer über die ACL berechtigt, dann lädt die Konfiguration für ihn, ansonsten nicht.