Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > Werkzeuge für die aguila-Entwicklung
Dieses Modul bietet verschiedene Arten von Message-Boxen. Sie können die Message-Boxen so gestalten, dass Benutzer zum Bestätigen und Schließen des Dialogs die Enter-Taste und zum Abbrechen und Schließen die Escape-Taste verwenden können.
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message');
Zeigt einen Hinweistext mit einer Überschrift.
Beispielhafter Code zur Abbildung
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.alert('Alert', 'This is the text');
Rückmeldung beim Schließen
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.alert('Alert', 'This is the text').then(state => { // wird aufgerufen, wenn die Meldung geschlossen wurde });
Optionale Breite mitgeben
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.alert('Alert', 'This is the text', 500); // Breite liegt im Standard bei 300
Im then-Teil liefert das System als Parameter einen Zustand zurück, je nachdem, was der Benutzer angeklickt hat:
Zustand | Wert | Beschreibung |
---|---|---|
state | true | OK oder die Enter-Taste wurde gedrückt. |
state | undefined | Fenster wurde geschlossen (mit X oder Escape-Taste). |
Zeigt einen Hinweistext mit einer Überschrift.
Beispielhafter Code zur Abbildung
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.alertHtml('Alert', 'This is the html <b>text</b>');
Zeigt einen Hinweistext mit einer Überschriftund bietet 2 Schaltflächen für Ja /Nein.
Beispielhafter Code zur Abbildung
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.confirm('Confirm', 'Press any button').then(state => { console.log('button is pressed: ' + state); });
Im then-Teil liefert das System als Parameter einen Zustand zurück, je nachdem, was der Benutzer angeklickt hat:
Zustand | Wert | Beschreibung |
---|---|---|
state | true | Ja oder die Enter-Taste wurde gedrückt. |
state | false | Nein wurde gedrückt. |
state | undefined | Fenster wurde geschlossen (mit X oder Escape-Taste). |
Zeigt einen Hinweistext mit einer Überschrift und bietet ein Text-Eingabefeld sowie die Schaltflächen OK und Abbrechen.
Beispielhafter Code zur Abbildung
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.prompt('Prompt', 'Please input some text', 'pre-filled text').then(input => { console.log('text input: ' + input); });
Als Ergebnis des Promises können Sie im then-Teil die Eingabe auswerten:
Eingabe | Wert | Beschreibung |
---|---|---|
input | <eingegebener Text> | Die Eingabetaste oder OK wurde gedrückt. |
input | undefined | Die Escape-Taste oder Abbrechen wurde gedrückt, oder das Fenster wurde geschlossen. |
Diese Funktion ermöglicht es Ihnen, benutzerdefinierte Nachrichtenfenster mit verschiedenen Konfigurationsoptionen zu erstellen und anzuzeigen. Dadurch können Sie komplexe Dialoge erstellen.
Aufruf
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); let myMessage = message.popup('Wichtige Mitteilung');
Funktionen
Die folgenden Funktionen stehen zur Verfügung, um die Eigenschaften und das Verhalten des Nachrichtenfensters zu konfigurieren. Alle funktionen können aneinandergereiht werden und geben das Mesage-Objekt zurück.
Funktion | Beschreibung | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
text | Definiert den Textinhalt der Nachricht. | ||||||||||||||||||
icon | Definiert das Symbol für das Nachrichtenfenster.
|
||||||||||||||||||
width | Definiert die Breite des Nachrichtenfensters in Pixeln. | ||||||||||||||||||
element | Fügt ein form-element zur Nachricht hinzu.
|
||||||||||||||||||
value | Weist der Nachricht einen Wert für die form-elemente zu. | ||||||||||||||||||
focus | Definiert das Element oder die zu fokussierende Schaltfläche. | ||||||||||||||||||
button | Fügt eine Schaltfläche zur Nachricht hinzu.
|
||||||||||||||||||
accept | Setzt die Schaltfläche Akzeptieren für die Nachricht.
|
||||||||||||||||||
abort | Setzt die Schaltfläche Abbrechen für die Nachricht.
|
||||||||||||||||||
ok | Fügt die standardmäßige OK-Schaltfläche hinzu. Der Name der Schaltfläche lautet ok. Das Icon ist "mdi:check-circle;color=Green" |
||||||||||||||||||
apply | Fügt die standardmäßige Übernehmen-Schaltfläche hinzu. | ||||||||||||||||||
cancel | Fügt die standardmäßige Abbrechen-Schaltfläche hinzu. Der Name der Schaltfläche lautet cancel. |
||||||||||||||||||
yes | Fügt die standardmäßige Ja-Schaltfläche hinzu. | ||||||||||||||||||
no | Fügt die standardmäßige Nein-Schaltfläche hinzu. | ||||||||||||||||||
delete | Fügt die standardmäßige Löschen-Schaltfläche hinzu. | ||||||||||||||||||
save | Fügt die standardmäßige Speichern-Schaltfläche hinzu. Der Name der Schaltfläche lautet save. |
||||||||||||||||||
show | Zeigt die Nachricht als Pop-up an.
|
||||||||||||||||||
modal | Legt fest, ob das Popup sich modal verhält. Ein modales Fenster (modal:true) verhindert, dass der Benutzer andere Fenster oder Bereiche der Anwendung bedient, solange das Popup sichtbar ist. | ||||||||||||||||||
align | Bestimmt die Ausrichtung/Position des Fensters auf dem Bildschirm. Übergeben wird dazu ein Ausrichtungsobjekt (z. B. { top: 5} ), welches steuert, wo das Popup auf dem Bildschirm erscheint. |
Einfache Nachricht erstellen
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message.popup('Informationsmeldung').text('Dies ist eine wichtige Information für den Benutzer.').ok().show();
Nachricht mit mehreren Schaltflächen und einer Callback-Funktion
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message .popup('Bestätigung erforderlich') .text('Möchten Sie die Änderungen speichern?') .icon(message.ICONS.QUESTION) .save() .width(400) .button({ name: 'dontSave', text: 'Nicht speichern', icon: 'mdi:cancel', }) .cancel() .show(buttonName => { if (buttonName === 'save') { console.log('Änderungen wurden gespeichert.'); } else if (buttonName === 'dontSave') { console.log('Änderungen wurden nicht gespeichert.'); } else { console.log('Vorgang wurde abgebrochen.'); } });
Umfangreiches Verwendungsbeispiel inklusive Form-Elemente
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message .popup('Name eingeben') .text('Bitte geben Sie einen Namen ein') .icon('agorum:circle;color=#0069b5|mdi:edit;color=white;slot=center') // ein Textelement für den Namen hinzufügen .element({ type: 'agorum.composite.form.element.text', name: 'name', label: 'Neuer Name', validation: [ { required: true, }, ], }) // add a description element .element({ type: 'agorum.composite.form.element.text', name: 'description', label: 'Beschreibung', validation: [ { required: false, }, ], }) // set an initial value for name .value({ name: 'Alter Name', }) // den Fokus auf das name-Feld setzen .focus('name') // eine Schaltfläche zum Umbenennen hinzufügen, die das Form-Feld validieren soll .accept({ name: 'rename', text: 'Umbenennen', icon: 'ionicon:checkbox;color=LimeGreen', validate: true, }) // add a cancel button .cancel() // show the popup .show((buttonName, value) => { // Dieser Callback wird aufgerufen, wenn ein Button gedrückt wird, das Fenster geschlossen oder Escape oder Enter gedrückt wird if (buttonName === 'rename') { console.log('Umbenennen in ' + value.name + ', Beschreibung: ' + value.description); } else if (buttonName === 'cancel') { console.log('Vorgang wurde abgebrochen.'); } });
Beispiel zur Verwendung asynchroner Aufrufe im callback von show()
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); let aguila = require('common/aguila'); message .popup('Langlaufende Aktion') .text('Beispiel, mit dem demonstriert wird, dass etwas länger laufen kann im Callback von show.') .icon('ionicon:information-circle') .save() .cancel() .show(buttonName => { if (buttonName === 'save') { return aguila.fork(() => { // asynchrone Funktion. Wird der Promise von Fork als Return-Wert zurückgegeben, wartet die Maske, bis // der Fork fertig ist, bevor das Fenster geschlossen wird. // Dann kann zum Beispiel auch auf Fehler reagiert werden, ohne, dass der Dialog geschlossen wird. throw new Error('Ein Beispiel-Fehler'); }); } else { console.log('Vorgang wurde abgebrochen.'); } });
Beispiel für das Offenlassen von Dialogen nach dem Ausführen einer Aktion
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); let aguila = require('common/aguila'); message .popup('Langlaufende Aktion') .text('Beispiel, mit dem demonstriert wird, dass etwas länger laufen kann im Callback von show.') .icon(message.ICONS.SUCCESS) .width(800) .button({ name: 'error', text: 'Erzeuge Fehler', }) .button({ name: 'stayOpen', text: 'Fenster offen lassen mit fork', }) .button({ name: 'stayOpen2', text: 'Fenster offen lassen', }) .save() .cancel() .show(buttonName => { if (buttonName === 'error') { return aguila.fork(() => { // asynchrone Funktion. Wird der Promise von Fork als Return-Wert zurückgegeben, wartet die Maske, bis // der Fork fertig ist, bevor das Fenster geschlossen wird. // Dann kann zum Beispiel auch auf Fehler reagiert werden, ohne, dass der Dialog geschlossen wird. throw new Error('Ein Beispiel-Fehler'); }); } else if (buttonName === 'stayOpen') { return aguila.fork(() => { // wenn in der Callback-Funktion true zurückgeliefert wird, bleibt das Fenster offen console.log('Fenster offen lassen mit aguila.fork'); return true; }); } else if (buttonName === 'stayOpen2') { // wenn in der Callback-Funktion true zurückgeliefert wird, bleibt das Fenster offen console.log('Fenster offen lassen'); return true; } else if (buttonName === 'save') { console.log('Speichen...'); } else { console.log('Vorgang wurde abgebrochen.'); } });
Beispiel mit allen Standard-Buttons
let message = require('/agorum/roi/customers/agorum.composite/js/lib/message'); message .popup('Popup-Dialog') .text('Das ist ein Beispiel für die Standard-Buttons.') .icon(message.ICONS.SUCCESS) .width(600) .modal(true) .align({ left: 20, top: 5 }) .cancel() .ok() .apply() .yes() .no() .delete() .save() .show();