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();