Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

Eigene Schaltflächen für Bedienoberflächen erstellen

Hinweis: Sobald Sie eigene Schaltflächen definieren, können Sie keine Metadaten mehr verwenden. Sie müssen also alle für diese Bedienoberfläche benötigten Schaltflächen definieren.

Über den Konfigurator können Sie eigene Schaltflächen für Eingabemasken erstellen.

Die Schaltflächen können bei allen Bedienoberflächen definiert werden, die im agorum core smart assistant konfigurator möglich sind. Die Schaltflächen gelten für folgende Bereiche:

Schaltfläche definieren Sie in der Registerkarte JavaScript (Initialisierung). Dazu definieren Sie im Rückgabewert dieser Registerkarte das Array _buttons, das die Beschreibung der Schaltflächen enthält.

Aufbau des Arrays „_button“ in der Registerkarte „JavaScript (Initialisierung)“


Das Array _button kann aus beliebig vielen JavaScript-Objekten bestehen. Diese Objekte sind wie folgt aufgebaut:

Element Beschreibung
name Definiert den internen Namen der Schaltfläche, mit dem die Sie die Schaltfläche abfragen können.
text Definiert den Text (oder den Textkey zum Übersetzen), der auf der Schaltfläche ausgegeben wird.
defaultButton Definiert, ob die Schaltfläche als Standard-Schaltfläche verwendet wird (true: ja / false: nein (Standard)).

Die Schaltfläche reagiert damit auf die Enter-Taste. 

Beispiele


Hinweis: Die folgenden Skripte dienen als Beispiele und dürfen nicht kopiert werden, da zum Teil vordefinierte Metadaten oder Objekte verwendet werden.

Beispiel: JavaScript-Objekt, das 1 Schaltfläche beschreibt

    {
      name: 'prev',
      text: 'zurück',
      defaultButton: true
    }

Beispiel des Arrays „_button“, mit den 2 Schaltflächen definiert werden

/* global sessionController, sessionControllerAdmin, folder, objects */

// Rückgabewert von JavaScript (Initialisierung) im gleichnamigen JavaScript
({
  _buttons: [
    {
      name: 'prev',
      text: 'zurück',
      defaultButton: true
    },
    {
      name: 'next',
      text: 'Weiter',
    }
  ]
});

Beispiel mit Schaltflächen, Eingabefelder und Belegen der Eingabefelder

/* global sessionController, sessionControllerAdmin, folder, objects */

let beans = require('common/beans');

({
  // Vorbelegung der Eingabefelder
  name: objects[0].name,
  description: objects[0].description,
  acmf_dokumentType: beans.get(objects[0],'~acmf_dokumentType'),

  // Definition der Eingabefelder
  _fields: [
    {
      name: 'name',
      readOnly: true,
      displayName: 'Dateiname',      
      /*
        name: interner Name
        displayName: angezeigter Name
        readOnly: Nur lesen
        restricted: Eingeschränkt auf Werte aus der Datenquelle
        optional: Optionales Feld      
      */
    },
    'description',
    'acmf_dokumentType'
  ],

  // Definition der Buttons
  _buttons: [
    {
      name: 'prev',
      text: 'zurück',
      defaultButton: true
    },
    {
      name: 'next',
      text: 'Weiter',
    }
  ]
});

Abfrage der selbst definierten Schaltflächen in der Registerkarte „JavaScript“, „JavaScript (zuvor)Å oder „JavaScript (danach)“


Je nach Bereich können die eigenen Schaltflächen in den Registerkarten JavaScript, JavaScript (zuvor) oder JavaScript (danach) abgefragt werden. Die gedrückte Schaltfläche wird in data an das JavaScript als einfache String-Variable _button übergeben. Darauf kann dann das JavaScript reagieren.

Beispiel eines JavaScripts, das auf eine selbstdefinierte Schaltfläche reagiert

/* global sessionController, sessionControllerAdmin, folder, objects, data */

// Buttons abfragen in Reiter: JavaScript

switch (data._button) {
  case 'next':
    // Weiter
    switch (data.acmf_dokumentType) {
      case 'Vertrag':
        ret.push('action:_Formular01_Vertrag:' + object);
        break;
    }
    break;
  case 'prev':
    // zurück
    break;
  default:
    break;
}

Beispiel als Gegenstück zum vorherigen Beispiel

/* global sessionController, sessionControllerAdmin, folder, objects, data */

let object = objects[0];
let ret = [];

// hier werden die selbst definierten Eingabefelder wie normale Metadaten gespeichert
let metadata = require('filingassistant/metadata');
metadata(data).save(object);

ret.push('refresh:'+object);
let next = '';

switch (data._button) {
  case 'next':
    // Weiter
    // Hier wird auf das selbst definierte Eingabefeld 'acmf_dokumentType' verwendet
    // - gleich wie wenn dieses im Bereich "Metadaten" stehen würde.
    switch(data.acmf_dokumentType) {
      case 'Vertrag':
        ret.push('action:_Formular01_Vertrag:' + object);
       break;
    }
    break;
  case 'prev':
    // zurück
    break;
  default:
    break;
}

ret;