Host

Die Host-Komponente ist ein Singleton und besitzt nur eine Instanz. Der Host bildet die Grundlage der Anwendung. Der Host ist für das laden der Konfiguration, die Initialisierung der Navigation und die Bereitstellung grundlegender Funktionen verantwortlich. Die Instanz des Hosts ist über die Alvine.Registry erreichbar: Alvine.Package.Console.Host

Konfiguration

Die Konfiguration wird über die Methode Host.loadConfig(url) geladen. Wird keine url übergeben, so wird der Standardwert config.json verwendet. Die Werte der Konfiguration wird in der Registry im Schlüssel console.settings gespeichert.

Notify

Um den Benutzer direkt über ein Ergebnis einer Aktion zu informieren, bietet der Host mit der notify-Schnittstelle die Möglichkeit direkt Kundenmeldungen abzugeben. Über die Methoden Host.notifyDanger(), Host.notifySuccess(), Host.notifyWarning() und Host.notifyInfo() können unterschiedliche Meldungen angeziegt werden.

message = "Aktion konnte nicht ausgeführt werden";
icon = "fa fa-cogs";
title = "Mein Titel";
url = "http://example.com";
location = "_blank";

// Bis auf die Message sind alle Parameter optional Alvine.Package.Console.Host.notifyWarning(message, icon, title, url, location);

Die Meldung und der Titel können auch lokalisierte Texte enthalten.

Alvine.Package.Console.Host.notifyWarning('i18n:thiswarning');

Um Navigationshandler zu registrieren, muss die Methode Alvine.Package.Console.Host.register() aufgerufen werden und ein Objekt vom Type Alvine.NavigationHandler übergeben werden.

handler = new Alvine.Package.Console.NavigationHandler('shortcut', function() {
  // ... code
})

Kontext

Ein Kontext wird durch den Hash-Wert in einer URL definiert. Der Kontext in dem sich der Benutzer in der folgenden URL befindet ist dashboard. Der Kontext wird durch Argumente genauer spezifiziert. Die Argumente sind durch eine Kombination von Wertepaaren (key=value), die durch ein Semikolon getrennt sind, definiert.

http://www.example.com/page#dashboard;panel=1   

Location

Das Location-Objekt bildet einen Kontext mit seinen Argumenten ab. Ein neues Location-Objekt kann über die Funktion Location(context, contextArguments) erstellt werden. Die Argumente können entweder als Map oder als Objekt-Array übergeben werden.

location = new Alvine.Package.Console.Location('mypage', {a=1, b=1}) 

Werden keine Argumente angeben, so wird ein Location-Objekt mit der aktuelle Location des Browser-Windows erstellt.

location = new Alvine.Package.Console.Location() 

Über die Methode Location.toString() kann aus dem Location Objekt eine Zeichenkette erstellt werden. Die Methode Location.getContext() liefert den Kontext zurück. Die Argumente können über die Methode Location.getArguments() ausgelesen werden. Ein einzelnes Argument kann mit Hilfe Location.getArgument(key, defaultValue) ausgelesen und mit Hilfe von Location.setArgument(key, value) verändert werden.

Über die Methode Location.activate() wird der Kontext an den Browser übergeben und aktiviert.

Objektreferenz

Alvine.Package.Console.Location(context, contextArguments)

Beschreibung

Neues Objekt erstellen. Wird kein Kontext und keine Argumente übergeben, so wird die aktuelle Location des Browsers verwendet.


Parameter-Liste

context (String)

Eindeutige Bezeichnung des Kontext (erscheint in der URL hinter dem Hash #)

contextArguments (Alvine.Types.Map | Object)

Argumente die im Kontext verwendet werden sollen. Diese werden per Seikolon vom Kontext getrennt.


Rückgabewert

Neues Location-Objekt

Location.toString()

Beschreibung

Gibt den Kontext und die Argumente als Zeichenkette zurück.


Rückgabewert

String mit dem Kontext und den Argumenten

Location.activate()

Beschreibung

Aktiviert den Kontext des Objekts im Browserwindows.


Rückgabewert

Referenz auf Location

Location.getArguments()

Beschreibung

Argumente des Objektes holen


Rückgabewert

Gibt die Alvine.Types.Map mit den Argumenten zurück

Location.getContext()

Beschreibung

Kontext des Objekts auslesen


Rückgabewert

Gibt Kontext als String zurück

Location.setArgument(key, value)

Beschreibung

Argumente des Objekts einzeln setzen


Parameter-Liste

key (String)

Schlüssel des Arguments

value (String)

Wert des Arguments


Rückgabewert

Referenz auf Location

Location.removeArgument(key)

Beschreibung

Entfernt ein Argument


Parameter-Liste

key (String)

Schlüssel des Arguments


Rückgabewert

Referenz auf Location

Location.getArgument(key, defaultValue)

Beschreibung

Wert eines Arguments auslesen


Parameter-Liste

key (String)

Schlüssel des Arguments

defaultValue (String)

Standardwert, wenn der Schlüssel nicht gesetzt ist.


Rückgabewert

Wert des Arguments oder defaultValue

Änderung des Kontextes

Die Konsolenanwendung läft in verschiedenen Kontexten, die über den ersten Wert im Hash in der URL definiert werden. Beim Ändern des Kontextes wird der Event contextchange.HOST.DONE gesendet. Als Parameter enthält der Event eine Referenz auf den Host, den Wert des Kontextes und die Argumente.

#myhash;a=4;b=5

myhash ist der Kontext und a und b sind die Kontext-Argumente.

Will man den Kontext über das Skript ändern, so stehen mehrer Wege offen. Man kann entweder direkt über die window.location einen neuen Wert setzen oder man erstellt ein Location-Objekt und aktiviert dieses. Über den Host kann man die Methode Alvine.Package.Console.Host.changeLocation(location) verwenden.

map = new Alvine.Types.Map();
map.set('key','value');
Alvine.Package.Console.Host.changeLocation(new Alvine.Package.Console.Location('newValue', map));

Die Methode Alvine.Package.Console.Host.changeLocation(location) bietet den Vortail, das kein Location-Objekt erstellt werden muß, die Arguente können auch in Kurzform angegeben werden.

Alvine.Package.Console.Host.changeLocation('newValue', {a=1,b=1});

Will man nicht den gesamten Kontext ändern, sondern nur einzelne Werte so kann die Methode Host.setLocationArgument(key, value) verwendet werden. Über die Methode Host.removeLocationArgument(key) können Argumente entfernt werden.

Kontextänderungen

Um Änderungen des Kontextes und Änderungen der Variablen mitzubekommen, kann man im Host einen Handler registrieren. Dies erfolgt über die Methode Host.registerContextHandler(location, callback). Die Abmeldung vom Host erfolgt über die Methode Host.unregisterContextHandler(location)

function callback(location) {
// this === host
}

location = new Alvine.Package.Console.Location('demo');
Alvine.Package.Console.Host.registerContextHandler(location, callback);

Alvine.Package.Console.Host.unregisterContextHandler(location);

Für Registrierungen mit dem aktuellen Kontext gibt es die Kurzformen Host.registerCurrentContextHandler(callback) und Host.unregisterCurrentContextHandler().

Möchte man die Änderung über jeden Kontext erhalten, so kann man als Location einen Stern Host.registerCurrentContextHandler('*') übergeben.

Änderung der Location

Soll über die Kontextänderung jede Änderung der Location beobachtet werden, so kann man sich in die Eventverarbeitung zu dem Event locationchange.HOST hängen. Als Argument erhält man die aktuelle Location.

jQuery(globalContext).bind('locationchange.HOST.MYHANDLER', function (event, location) {
    // ...
});

Kontext auslesen

Über die Methode Host.getLocation() kann die aktuelle Location ausgelesen werden.

location = Alvine.Package.Console.Host.getLocation();

// Aktueller Kontext
location.getContext();

// Argumente
location.getArguments()
// -> Map mit Argumenten

Info-Icons

Im oberen Teil des Fensters können Info-Icons unterschieldiche Zustände der Anwendung anzeigen. Ein Icon ist der Zustand der Verbindung.

Hinweis

Informationsicons dürfen nur für globale Zustände der Anwendung und nicht von einzelne Module verwendet werden.

Folgende Icons werden vom Host gesetzt:

Icon Beschreibung
Offline Der Browser befindet sich im Offlinemodus
Online Der Browser befindet sich im Onlinemodus
Serviceworker In der Konsole ist ein Serviceworker registriert
Host.initInfoIcon(id, iconClass, tooltip)

Beschreibung

Diese Methode initialisiert ein neues Informations-Icon im oberen Bereich der Anwendung


Parameter-Liste

id (string)

ID des Icons

iconClass (string)

Fontawesome Icon-Klasse (ohne fal)

tooltip (string)

Anzuzeigender Tooltip


Rückgabewert

Hostobjekt

Host.showInfoIcon(id, addClass)

Beschreibung

Blendet das Info-Icon aus.


Parameter-Liste

id (String)

Anzuzeigendes Info-Icon

addClass (String|undefined)

Optionale Klasse die beim Anzeigen hinzugefügt wird (zum Beispiel Farbe)


Rückgabewert

Beschreibung

Host.hideInfoIcon(id, removeClass)

Beschreibung

Blendet das Info-Icon aus.


Parameter-Liste

id (String)

Auszublendendes Info-Icon

removeClass (String|undefined)

Klasse die aus dem Element entfernt werden soll


Rückgabewert

Beschreibung

Arbeiten mit der API

Die fetch Methode des Hosts ist ein Warapper, der zusätzliche Funktionen, wie Fortschrittsanzeige und Modal-Dialoge bereitstellt. Wird zum Beispiel die whoami aufgerufen und der Benutzer hat keine Berechtigung (403), so erscheint ein Modaldialog mit dem Hinweis auf die fehlende Berechtigung.

Ist der Benutzer jedoch nicht angemeldet (401), so erscheint ein Modaldialog mit dem Hinweis auf den Logout und der der Benutzer wird, soweit die Login-URL in der Konfiguration unter console.settings.authentication.login.url definiert wurde, auf die Loginseite weitergeleitet.

Alvine.Package.Console.Host.fetch('/api/account/whoami',{
      credentials:'include',// Cookies übergeben
      headers: {
          accept:'application/json'
      }
    });

Die Dialoge und die Fortschritsanzeige können aber auch deaktiviert werden:

Alvine.Package.Console.Host.fetch('/api/account/whoami',{
      credentials:'include',// Cookies übergeben
      disableProgress:true, // Keine Fortschritsanzeige
      disableDialog:[401],  // Kein Dialog bei 401 Meldungen
      headers: {
          accept:'application/json'
      }
    });

Das Ergebnis von fetch ist ein Promise, der entweder erfüllt wird oder einen Fehler wirft.

promise = Alvine.Package.Console.Host.fetch('/api/account/whoami');

promise.then()
       .catch();

Bei der Abfrage von json-Daten sollte man nicht auf die response.json() Funktion zurückgreifen, da diese keine gesonderte Fehlerbehandlung erlaubt. Stattdessen sollte man wie in folgendem Beispiel mit den JSON-Methoden arbeiten.

Alvine.Package.Console.Host.fetch(url, {
    }).then(response => {
        if(!response.ok) {
            throw Alvine.Exception(url+' status: '+response.statusText);
        }

        return response.text();
    }).then(responseBodyAsText => {
        try {
            return JSON.parse(responseBodyAsText);
        } catch(e) {
            throw Alvine.Exception(url+' status: unparsable ; body:'+responseBodyAsText);
        }
    }).then(function(jsonData) {
       /** */
    });
Host.fetch(input, init)

Beschreibung

Wrapper für die Standard-Methode fetch mit integrierter Statusanzeige für den Request. Für Details siehe auch Fetch bei Mozialla.

Wird vom Server der Statuscode 401 (UNAUTHORIZED) zurück gemeldet so wird unter den folgenden Bedingungen ein Redirekt auf die Login-Maske durchgeführt:

  • Die Login-URL muss im Schlüssel console.settings.authentication.login.url definiert sein
  • Der Parameter init.credentials muss auf include oder same-origin gesetzt sein

Folgender Aufruf würde im Falle eines 401 Fehlers zu einem Redirekt führen. Alvine.Package.Console.Host.fetch(myurl, {credentials:'include'})


Parameter-Liste

input (String | Request)

Resource

init (Object)

Optionen die direkt an fetch weitergereicht werden. Für die automatische Weiterleitung auf die Loginseite im 401 Fehlerfall ist die Option credentials auch für öffentliche API wichtig.

Weitere Optionen zur Steuerung des Verhaltens sind: disableProgress: deaktivert wenn übergeben und true die Fortschrittsanzeige (gültige Werte true oder false). disableDialog: deaktivert wenn der Wert ein Array mit den Werten der Fehlermeldung enthält den entsprechenden Modaldialog (z.B. [401,403]).


Rückgabewert

Original Promise von fetch

Host.browseToLogin()

Beschreibung

Diese Methode blendet den Inhalt aus und ruft die URL des Login-Dialoges auf. Die Methode funktioniert nur, wenn in der Konfiguration console.settings.authentication.login.url gesetzt wurde.

In einem jQuery-Ajax-Aufruf könnte folgendes Statement verwendet werden:


statusCode: {
    401: function() {
        Alvine.Package.Console.Host.browseToLogin();
    }
}


Rückgabewert

Host-Objekt

Fortschrittsanzeige

Der Host verfügt über eine eigene Fortschritsanzeige. Mit der Methode Host.setProgessInfo(id, progress) kann der Status des aktuellen Ladevorgangs gesetzt werden. Initialisiert werden muss progress mit dem Wert start und beendet wird die Anzeige mit dem Wert progress. Dazwischen sind die Werte 0-100 erlaubt.

Für jQuery-Ajax-Aufrufe müssen die Werte nicht manuell gesetzt werden. Hier hängt sich der Host in die Aufrufe ein und setzt die entsprechenden Werte. Möchte man eine URL von dem Verhalten ausnehmen, so muss diese URL als id über die Methode Host.disableProgressInfo(id) von der Beobachtung ausgenommen werden.

Für fetch aufrufe steht im Host der Wraper Host.fetch(requestOrURL, options) zur Verfügung. Dieser kümmert sich auch um die Ladeanzeige.

Host.disableProgressInfo(id)

Beschreibung

Deaktiviert die Beobachtung einer ID/URL


Parameter-Liste

id (String)

Schlüssel oder URL die deaktiviert werden soll


Rückgabewert

Host-Objekt

Host.setProgessInfo(id, progress)

Beschreibung

Setzt den aktuellen Fortschritt für einen Request


Parameter-Liste

id (String)

Schlüssel oder URL für die der Wert gesetzt werden soll

progress (Integer | String)

Fortschritt in Prozent von 0-100. Für den ersten Aufruf ist start und für den letzten Aufruf bei Fertigstellung done zu setzen.


Rückgabewert

Host-Objekt

Komponente

Komponenten lassen sich über die Methode Host.startComponent(componentName, componentVersion, requirements) erstellen und im Host registrieren. Die Methode Alvine.Package.Factory.startComponent(componentName, componentVersion, requirements) fügt alle Bausteiner zusammen und erlaubt so eine schnelle und sichere Umsetzung einer Komponente. Alvine.Package.Factory.startComponent(componentName, componentVersion, requirements) erwartet neben dem Namen der Komponente auch die Version und optional Abhängigkeiten.

Das folgende Beispiel zeigt einen beispielhaften Aufruf.

Alvine.Package.Console.Host.startComponent(namespace+'.'+componentName, componentVersion, {

    /** Notwendige Versionsnummern des Alvine-Framework und jQuery */
    libraries: {
        alvine: '1.9.0',
        jquery: '2.3.0'
    },

    /** Javascript-Bibliotheken die geladen werden müssen */
    externals: [
        "/app/console/js/mylib.js",
    ],

    /** Promises */
    promises: [
    ],

    /** Notwenige Funktionskomponenten die eingebunden sein müssen */
    modules: {
        'Alvine.Package.UI.Dialog.Bootstrap': '1.0.0',
        'Alvine.Package.i18n.Globalize': '1.0.0'
    },

    /** URL in der die Sprachdateien liegen */
    locales: [
        "resource/"
    ],

    component: {

        /** Wird beim Verlassen des Kontextes aufgerufen */
        cleanUp: () => {
            // do something
        }
    },

    /** Initialisierung des Views */
    view: {
        init: (configuration, doneCallback) => { var view = $this; /** do something */ doneCallback();},
        activate: configuration => { var view = $this; /** do something */ },
        template: '#template'
    }

}).catch(error => {
    Alvine.Util.Logger.logError(namespace+'.'+componentName, componentVersion, 'startComponent', error);
    Alvine.Package.Console.Host.notifyDanger('i18n:error.somethingwentwrong');
});

Sobald alle Bibliotheken, Resourcen und Externals eingebunden wurden, wird die bei init definierte Funktion aufgerufen. Sobald die Initialisierung abgeschlossen ist, muss die Funktion doneCallback() aufgerufen werden. Damit wird dem Host mitgeteilt, das alle Controls und Daten vorliegen und das der View ausgegeben werden kann.

uml diagram

Nach der Darstellung des Views wird vom Host die über activate definierte Methode aufgrufen. Hier können nun Eventhandler und DOM-Manipulationen durchgeführt werden.

Hinweis

init und activate werden im Kontext des Views aufgerufen. Der View ist über die Variable this ansprechbar.

Host.startComponent(componentName, componentVersion, requirements)

Beschreibung

Registrieren und Starten einer Komponente


Parameter-Liste

componentName (String)

Name inklusive des Namespace der Komponente

componentVersion (String)

Semantische Versionsnummer x.x.x der Komponente

requirements (Object)

Das Objekt kann folgende Schlüssel enthalten: libraries, externals, modules, locales, promises, component und view.


Rückgabewert

Host-Objekt

Views

Jeder Kontext sollte über einen View verfügen, der mittels Component.createView() erstellt wird.

<template id="template">
    <div data-container></div>
</template>

Der Methode Component.createView() können zwei Callbacks übergeben werden. Der erste Callback

/** Initialisierung der Felder, Inhalte und Controls */

var view;

function initUI(configuration) {
    panel = ...

    /** View leeren */
    view.clear();

    /** Inhalt hinzufügen */
    view.appendContent(panel);
}

/** Aktivierung der Felder, Inhalte und Controls */
function activateUI(configuration) {
}

component = Alvine.Package.Factory.createComponent(namespace + '.Demo');
view = component.createView(namespace + '.Demo.Panel', '#template',
            {'required': ['Alvine.Package.UI.Dialog.Bootstrap']}, initUI, activateUI);

Beim Erstellen und Hinzufügen des Views zum DOM wird zuerst initView aufgerufen. Zu diesem Zeitpunkt enthält das DOM noch keine Elemente aus dem View. In der InitView-Funktion können zum Beispiel Controls über View::appendContent() zum View hinzugefügt werden. Werdem dem Template über View.appendContent() Inhalte hinzugefügt, so werden diese in der Node mit dem Attribute data-container ins DOM eingefügt.

Der erste Parameter der Callback-Methoden definiert die Werte aus der Konfiguration. Wird ein optionales zweites Argument angegebn, so wird diesem Wert ein Callback übergeben. Dieser Callback muss im Funktionsbody explizit aufgerufen werden. Erst mit aufruf von done() wird der View eingehängt und activateUI() aufgerufen.

function initUI(configuration, done) {
    // muss explizit aufgerufen werden
    done();
}

Kontext verlassen

Im Rahmen eines Modules werden unterschiedliche Ressourcen reserviert. Sei es ein Eintrag in der Registry oder ein global registrierter Eventhandler. Um beim Verlassen eines Kontextes diese Ressourcen freizugeben, muss das Modul die Methode Component.cleanUp() implementieren. Diese Methode wird beim Ändern des Kontextes aufgerufen.

component = Alvine.Package.Factory.createComponent(namespace + '.' + componentName);
component.cleanUp = function () {
                // Aufräumen    
};

Modul laden

Ein Modul kann zur Laufzeit geladen werden. Dazu stellt der Host die Methode Host.loadModule(module, url) bereit.

Alvine.Package.Console.Host.loadModule('MyPackage', 'http://example.com/packages/mypackage.js');

Hinweis

Falls das Modul eine Konfiguration benötigt, muss diese vorher in der zentralen Konfiguration eingetragen werden.

ServiceWorker

Der Host kann beim Start einen Serviceworker initialisieren. Dazu muss in der Konfiguration unter dem Schlüssel serviceworker.url eine URL und ein optionaler Scope serviceworker.scope angegeben werden. Der Serviceworker wird dann registriert und die Registration ist über der ServiceWorkerWrapper erreichbar. Der gültige Wrapper kann mit der Methode Host.getServiceWorkerWrapper() geholt werden.

Cache

Um den Cache zu leeren muss die Methode ServiceWorkerWrapper.clearCache(key) aufgerufen werden. Die Methode ServiceWorkerWrapper.clearCaches(whitlist) löscht hingegen alle Caches.

sw = Alvine.Package.Console.Host.getServiceWorkerWrapper();
sw.clearCache('mycache')
   .then(function(value){
      console.log('Gelöscht: ',value);
   }).catch(function(error){
      console.log("Fehler: "+error);
   });

Objektreferenz

ServiceWorkerWrapper(registration)

Beschreibung

Der ServiceWorkerWrapper kapselt den ServiceWorker des Hosts.


Parameter-Liste

registration (Types)

Registration des ServiceWorkers


Rückgabewert

Gibt ein ServiceWorkerWrapper Objekt zurück

ServiceWorkerWrapper.getRegistration()

Beschreibung

Gibt die Registration zurück


Rückgabewert

Gibt die Registration zurück

ServiceWorkerWrapper.sendMessage(message)

Beschreibung

Diese Methode sendet eine Nachricht an den Serviceworker


Parameter-Liste

message (String | Object)

Die zu sendende Nachricht


Rückgabewert

Gibt ein Promise zurück

ServiceWorkerWrapper.clearCaches(whitelist)

Beschreibung

Diese Methode holt alle verfügbaren Caches und löscht diese. Über den Parameter


Parameter-Liste

whitelist (Array)

Ein Array, mit Namen die nicht gelöscht werden sollen.


Rückgabewert

Ein Promise mit einem Array als Promise-Wert. Das Array enthält soviele Einträge, wie Caches gelöscht wurden. Bei Erfolg steht ein true, bei Misserfolg ein false im Eintrag des Array.

ServiceWorkerWrapper.clearCache(key)

Beschreibung

Diese Methode prüft, ob es einen Cache mit dem Namen gibt und löscht diesen.


Parameter-Liste

key (String)

Name des Chaches


Rückgabewert

Promise

Internationalisierung i18n

In der Host-Komponente wird in Abhängigkeit der Sprache des Konsolen-Dokuments <html lang="de"> die Lokale-Datei mit den sprachabhängigen Zeichenketten geladen. Auf die Zeichenketten kann mittels der Methode Host.getLocaleMessage(key, default, map) zugegriffen werden. Das Laden der Locale kann über die Methode Host.loadLocale(url) oder Host.loadLocales([url]) erfolgen.

// Map mit Ersetzungen
map = new Alvine.Types.Map();
map.set('count',4);

// Lokalisierte Zeichenkette
mystring = Alvine.Package.Console.Host.getLocaleMessage('mykey','defaultvalue', map);

Über den dritten Parameter in Host.getLocaleMessage(key, default, map) kann eine Map mit Ersetzungen übergeben werden. In dem Beispiel ist in der Zeichenkette der Platzhalter %count% definiert. Dieser wird in dem Beispiel mit dem Wert aus der Map, hier 4, ersetzt.

Objektreferenz

Host.getLocation()

Beschreibung

Schlägt die aktuelle Location des Browsers nach und erstellt ein Location Objekt


Rückgabewert

Gibt 'Location'-Objekt zurück

Host.registerHandler(handler)

Beschreibung

Registriert einen Alvine.Package.Console.NavigationHandler im Host.


Parameter-Liste

handler (Alvine.Package.Console.NavigationHandler)

Zu registrierender Handler


Rückgabewert

Referenz auf den Host

Host.getLocaleMessage(key, defaultValue, map)

Beschreibung

Die Methode schlägt in der Registry Alvine.Registry.get('Locale') den Schlüssel key nach und gibt die gefundene Zeichenkette oder den Standardwert defaultValue zurück. Über die map können vorhandene Ersetzungen in der Zeichenkette durchgeführt werden.


Parameter-Liste

key (String)

Schlüssel

defaultValue (String)

Standardwert, wenn der key nicht vorhanden ist

map (Alvine.Types.Map)

Map mit Ersetzungen


Rückgabewert

Gibt String mit lokalisierte Zeichenkette oder Standardwert defaultValue zurück.

Host.notifyDanger(message, icon, title, url, target)

Beschreibung

Die Methode gibt eine Nachricht message mit Farbgebung für Probleme in der Konsole aus. Für die Darstellung kommt das Bootstrap Notify-Plugin zum Einsatz.


Parameter-Liste

message (String)

Auszugebender Text

icon (String)

CSS-Klasse, die ein Icon definiert. Wird kein Icon angegeben, so wird fa fa-times-circle verwendet.

title (String)

Titel des Nachrichtenfensters

url (String)

Wird eine URL angegeben, so wird das Meldefenster zu einer klickbaren Fläche mit der angegebenen URL als Ziel.

target (String)

Browsertarget (Mögliche Werte: _blank | _self | _parent | _top)


Rückgabewert

Gibt Referenz auf Host zurück

Host.notifyDanger(message, icon, title, url, target)

Beschreibung

Die Methode gibt eine Nachricht message mit Farbgebung für einen Erfolg in der Konsole aus. Für die Darstellung kommt das Bootstrap Notify-Plugin zum Einsatz.


Parameter-Liste

message (String)

Auszugebender Text

icon (String)

CSS-Klasse, die ein Icon definiert. Wird kein Icon angegeben, so wird fa fa-times-circle verwendet.

title (String)

Titel des Nachrichtenfensters

url (String)

Wird eine URL angegeben, so wird das Meldefenster zu einer klickbaren Fläche mit der angegebenen URL als Ziel.

target (String)

Browsertarget (Mögliche Werte: _blank | _self | _parent | _top)


Rückgabewert

Gibt Referenz auf Host zurück

Host.notifyWarning(message, icon, title, url, target)

Beschreibung

Die Methode gibt eine Nachricht message mit Farbgebung für eine Warnung in der Konsole aus. Für die Darstellung kommt das Bootstrap Notify-Plugin zum Einsatz.


Parameter-Liste

message (String)

Auszugebender Text

icon (String)

CSS-Klasse, die ein Icon definiert. Wird kein Icon angegeben, so wird fa fa-warning verwendet.

title (String)

Titel des Nachrichtenfensters

url (String)

Wird eine URL angegeben, so wird das Meldefenster zu einer klickbaren Fläche mit der angegebenen URL als Ziel.

target (String)

Browsertarget (Mögliche Werte: _blank | _self | _parent | _top)


Rückgabewert

Gibt Referenz auf Host zurück

Host.notifyInfo(message, icon, title, url, target)

Beschreibung

Die Methode gibt eine Nachricht message mit Farbgebung für eine Information in der Konsole aus. Für die Darstellung kommt das Bootstrap Notify-Plugin zum Einsatz.


Parameter-Liste

message (String)

Auszugebender Text

icon (String)

CSS-Klasse, die ein Icon definiert.

title (String)

Titel des Nachrichtenfensters

url (String)

Wird eine URL angegeben, so wird das Meldefenster zu einer klickbaren Fläche mit der angegebenen URL als Ziel.

target (String)

Browsertarget (Mögliche Werte: _blank | _self | _parent | _top)


Rückgabewert

Gibt Referenz auf Host zurück

Host.disableEasterEgg()

Beschreibung

Die Methode schaltet die Alvine-Ausgabe in der Browser-Konsole aus und speichert die Einstellung im localStorage.


Rückgabewert

Gibt die Zeichenkette OK zurück

Host.toggleFullscreen(element)

Beschreibung

Die Methode schaltet den Browser in einen Fullscreen-Mode, bzw wieder zurück.


Parameter-Liste

element (element)

DOM-Element oder jQuery-Collection


Rückgabewert

Promise der Broweserfunktion

Host.loadModule(module, url)

Beschreibung

Diese Methode lädt ein Modul mit einem Namen und der angegebenen URL


Parameter-Liste

module (String)

Name des Moduls mit Namespace

url (String)

URL, unter der das Modul zu finden ist.


Rückgabewert

Gibt ein Objekt vom Typ Alvine.Package.Module zurück.

Host.getCurrentComponentName()

Beschreibung

Gibt den Namen der aktuellen Komponente zurück. Zum Beispiel Alvine.Platform.Item


Rückgabewert

Gibt einen String mit dem Namen der Komponente zurück.

Host.registerContextHandler(location, callback)

Beschreibung

Registriert einen Kontext-Handler


Parameter-Liste

location (String | Location)

Zu registrierende Location

callback (Function)

Handler


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.unregisterContextHandler(location)

Beschreibung

Entfernt eine Registrierung für einen Kontext


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.resetCurrentNavigationHandler()

Beschreibung

Setzt den Aktuellen Navigations-Handel zurück.


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.changeLocation(location, contextArguments)

Beschreibung

Diese Methode wechselt den Kontext zu dem Wert der Location


Parameter-Liste

location (String | Location)

Neue Location


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.setLocationArgument(key, value)

Beschreibung

Mit dieser Methode kann man in der aktuellen Location des Browsers ein Kontext-Argument setzen.


Parameter-Liste

key (String)

Schlüssel des Arguments

value (String)

Wert des Arguments


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.removeLocationArgument(key)

Beschreibung

Mit dieser Methode kann man in der aktuellen Location des Browsers ein Kontext-Argument entfernt werden.


Parameter-Liste

key (String)

Schlüssel des Arguments


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.loadConfig(url)

Beschreibung

Diese Methode lädt die Konfiguration des Hosts.


Parameter-Liste

url (String)

URL der Konfiguration


Rückgabewert

Gibt Referenz auf den Host zurück.

Host.loadLocales(urls)

Beschreibung

Lädt Sprachdateien mit Schlüssel-/Wertpaaren im Format JSON. Über das Promise kann das weitere Vorgehen definiert werden. Hierzu muss eine then und catch-Methode implementiert werden.

Achtung: Es muss nur die Basisurl in dem die Dateien liegen angegeben werden. Die Funktion entscheidet selbstständig welche Datei geladen wird.

Wird die Datei nicht innerhalb von 10 Sekunden erfolgreich geladen, so wird das Promise auf fehlerhaft gesetzt. Das heißt allerdings nicht, dass die Datei nicht noch geraden wird.


Parameter-Liste

urls (Array)

Ein Array mit mehreren Basis-URLs die geladen werden sollen.


Rückgabewert

Gibt ein Promise zurück, dass sobald alle Ressourcen geladen wurde einen Erfolg vermeldet.

Host.loadLocale(url)

Beschreibung

Lädt Sprachdateien mit Schlüssel-/Wertpaaren im Format JSON. Über das Promise kann das weitere Vorgehen definiert werden. Hierzu muss eine then und catch-Methode implementiert werden.

Das Promise besitzt als ersten Wert ein Objekt mit der Eigenschaft {state:'done'} im Erfolgsfall und im Fehlerfall timeout: <timeout>, state: 'error', difference: <difference>, error: 'timeout', queue: <urls>}

Achtung: Es muss nur die Basisurl in dem die Dateien liegen angegeben werden. Die Funktion entscheidet selbstständig welche Datei geladen wird.

Wird die Datei nicht innerhalb von 10 Sekunden erfolgreich geladen, so wird das Promise auf fehlerhaft gesetzt. Das heißt allerdings nicht, dass die Datei nicht noch geaden wird.

Siehe auch Host.isLocaleQueueEmpty(timeout)


Parameter-Liste

url (String)

Eine Basis-URL an der die Sprachdatei liegt.


Rückgabewert

Gibt ein Promise zurück, das sobald alle Resource geladen wurden einen Erfolg vermeldet.

Host.setTitle(title)

Beschreibung

Browsertitel setzen


Parameter-Liste

title (String)

Titel des Browsers


Rückgabewert

Host-Objekt

Host.isLocaleQueueEmpty(timeout)

Beschreibung

Diese Methode gibt ein Promise zurück und hierüber das weitere Vorgehen definiert werden. Hierzu muss eine then und catch-Methode implementiert werden.

Das Promise besitzt als ersten Wert ein Objekt mit der Eigenschaft {state:'done'} im Erfolgsfall und im Fehlerfall timeout: <timeout>, state: 'error', difference: <difference>, error: 'timeout', queue: <urls>}

Ist die Queue nicht innerhalb von timeout Millisekunden erfolgreich geleert worden, so wird das Promise auf fehlerhaft gesetzt. Das heißt allerdings nicht, dass die Dateien aus der Queue nicht noch geladen werden.


Parameter-Liste

timeout (Integer)

Timeout


Rückgabewert

Gibt ein Promise zurück, das sobald alle Ressourcen geladen wurde einen Erfolg vermeldet.

Host.getServiceWorkerWrapper()

Beschreibung

Mit der Methode kann der ServiceWorkerWrapper geholt werden.


Rückgabewert

Gibt den im Host registrierten ServiceWorkerWrapper zurück.

Host.getIdentity()

Beschreibung

Der Host hält für verschiedene Aufgaben eine Identität vor. Diese kann über diese Funktion abgefragt werden.


Rückgabewert

Gibt die aktuell gültige Identität des Objekts zurück

Host.setIdentity(identity)

Beschreibung

Setzt die vom Host und der Anwendung zu verwendende Indentität.


Parameter-Liste

identity (Alvine.Package.Console.Security.Authentication.Identity)

Die zu setzende Identität.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Host.getTheme()

Beschreibung

Gibt das verwendete Theme-Objekt zurück. Eine detailiertere Beschreibung ist auf der Theme-Seite zu finden.


Parameter-Liste

identity (Alvine.Package.Console.Security.Authentication.Identity)

Die zu setzende Identität.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Host.getLocales()

Beschreibung

Liefert die im System verfügbaren Lokale, inklusive der des Dokuments zurück. Die Dokumentenlokale wird über das lang-Attribute des HTML-Tag ausgelesen.


Rückgabewert

Gibt eine Alvine.Types.Map mit allen verfügbaren Lokalen zurück. Liefert der Server keine weiteren Lokale, so enthält diese Map nur die aktuelle Lokale des Dokuments.

Host.getCountries()

Beschreibung

Liefert alle verfügbaren Länder als Alvine.Types.Map-Objekt zurück.


Rückgabewert

Gibt eine Alvine.Types.Map mit allen verfügbaren Ländern zurück. Liefert der Server keine Länder zurück, so ist diese Map leer.

Host.showModal(title, text, buttons, options)

Beschreibung

Diese Methode initialisiert den zentralen Modal-Dialog und zeigt diesen an.


Parameter-Liste

title (String)

Titel des Modal-Dialoges

content (String | ContainerColumn | Control)

Inhalt des Modal-Dialoges

buttons (Array | Alvine.Package.UI.Dialog.Button)

Anzuzeigende Buttons als Array von Button-Instanzen oder bei einem Button, kann dieser direkt übergeben werden.

options (Object)

Steuern des Modal-Dialoges

initShow true - zeigt den Modal-Dialog bei der Initialisierung an initFocus true - legt den Fokus auf des Modal-Dialog, wenn er initialisiert wird initKeyboard true - schließt den Modal-Dialog, wenn die Escape-Taste gedrückt wird initBackdrop true - schließt den Modal-Dialog bei klick auf den Hintergrund. Geben Sie alternativ den Wert 'static' an, damit der Dialog beim klicken auf den Hintergrund nicht schließt.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Host.hideModal()

Beschreibung

Diese Methode schließt einen geöffneten Modal-Dialog.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Host.showNothingWorksAnymoreDialog(arguments...)

Beschreibung

Dieser Dialog muss augegeben werden, wenn die Anwendung nicht mehr lauffähig ist. Zum Beispiel, wenn essentielle Komponenten oder Resourcen fehlen. Wichtig: Der Dialog darf nur ausgegeben werden, wenn zu erwarten ist, das durch einen Reload das Problem zu beheben ist.


Parameter-Liste

arguments... (Mixed)

Alle Argumente werden an den Logger übergeben.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Host.showNotFoundDialog(arguments...)

Beschreibung

Dieser Dialog wird augegeben wenn ein über die Navigation angesteuerter Kontext nicht vorhanden ist.


Parameter-Liste

arguments... (Mixed)

Alle Argumente werden an den Logger übergeben.


Rückgabewert

Gibt eine Referenz auf den Host zurück.

Ablaufdiagramm

uml diagram

Referenzen