Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API
Mit user-settings können Sie benutzerspezifische Einstellungen Ihres Widgets, wie beispielsweise UI-Zustände, speichern und beim erneuten Öffnen automatisch wiederherstellen. Dadurch erhält jeder Anwender das Widget stets in seinem zuletzt genutzten Zustand.
Die Persistenz erfolgt, indem Sie jede zu speichernde Einstellung als Property am Widget mit passendem Event modellieren und diese Property deklarativ mit der Bibliothek verbinden.
Binden Sie die Bibliothek stets am Anfang eines Skripts ein:
let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings');
Vorgehensweise zum Persistieren von Benutzereinstellungen im Widget
persist
an den Bucket binden
Verwendungsbeispiel: Persistenter Checkbox-Zustand und Widget-Dimensionen
In diesem Beispiel wird der Zustand eines Formulars bzw. dessen Größe und der Zustand einer Checkbox (angehakt, nicht angehakt) persistiert und dem Benutzer beim nächsten Öffnen wie zuvor angezeigt.
/* global parameters */ let aguila = require('common/aguila'); let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings'); let widget = aguila.create({ properties: ['someState'], type: 'agorum.border', height: 500, width: 500, docked: { center: { title: 'center', name: 'form', type: 'agorum.composite.form.basic', elements: [ { name: 'someState', type: 'agorum.composite.form.element.boolean', text: 'Lorem ipsum', }, ], }, east: { // TODO properties: ['myProperty'], name: 'right', title: 'right', type: 'agorum.vbox', width: 200, collapsible: true, }, }, }); // register application in namespace // userSettings.application(widget, parameters.type); userSettings.application(widget, 'agorum.test.user.settings'); // .component() // get bucket and connect and persist properties setImmediate(() => { let state = userSettings.bucket(widget); state.persist('width', widget, 'width'); state.persist('height', widget, 'height'); state.persist('someState', widget, 'someState'); state.persist('right.width', widget.down('right'), 'width'); state.persist('right.collapsed', widget.down('right'), 'collapsed'); }); // ... // synchronize UI logic and properties let form = widget.down('form'); widget.on('someStateChanged', someState => form.set('someState.value', someState)); form.on('valueChanged', value => (widget.someState = value.someState)); widget;
Die Funktion application registriert ein Hauptwidget als Anwendungsnamensraum.
Syntax
userSettings.application(widget, name);
Parameter
Parameter | Beschreibung | Pflicht | Standard |
---|---|---|---|
widget | Das zu registrierende Hauptwidget | ja | - |
name | Eindeutiger Name des Anwendungsnamensraums | ja | - |
Beispiel
let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings'); userSettings.application(widget, 'agorum.test.user.settings');
Die Funktion component registriert ein Subwidget als Komponente innerhalb eines Anwendungsnamensraums.
Syntax
userSettings.component(widget, name);
Parameter
Parameter | Beschreibung | Pflicht | Standard |
---|---|---|---|
widget | Das zu registrierende Hauptwidget | ja | - |
name | Eindeutiger Name des Anwendungsnamensraums | ja | - |
Beispiel
let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings'); userSettings.component(widget, 'agorum.test.user.settings');
Die Funktion bucket erzeugt einen Bucket, der die persistierten Einstellungen für das konkrete Widget (bzw, Komponentenscope) kapselt.
Syntax
let state = userSettings.bucket(widget);
Parameter
Parameter | Beschreibung | Pflicht | Standard |
---|---|---|---|
widget | Das Widget, für dessen Scope ein Bucket erstellt werden soll. | ja | – |
Beispiel
let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings'); let state = userSettings.bucket(widget);
Rückgabe
Ein Bucket-Objekt mit verschiedenen Funktionen, insbesondere der Funktion persist.
Die Funktion persist bindet eine Property eines Widgets persistent an einen Bucket-Schlüssel.
Wichtig: Die zugehörige Property muss beim Wertwechsel ein Changed-Event auslösen.
Syntax
state.persist(key, widget, propertyName);
Parameter
Parameter | Beschreibung | Pflicht | Standard |
---|---|---|---|
key | Schlüssel der zu persistierenden Einstellung | ja | – |
widget | Das Widget, dessen Property persistiert werden soll. | ja | - |
propertyName | Name der Property (String), mit passendem Changed-Event | ja | - |
Beispiel
let userSettings = require('/agorum/roi/customers/agorum.composite/js/user-settings'); let state = userSettings.bucket(widget); state.persist('width', widget, 'width');