User manual

Schritt-für-Schritt-Anleitung
7. Jetzt muss festgelegt werden welche Aktionen beim Klicken des Login-Buttons ausgeführt werden.
/*========================================================================================
Beim Klicken auf den Login-Button werden zunächst die User Credentials geprüft und die
erste Messstelle innerhalb des ersten Kunden für den der Benutzer die Zugriffsberechtigung
besitzt ausgewählt. Anschließend wird das aktuelle Aufzeichnungsintervall vom Server
gelesen, zur Content-Page gewechselt und die Funktion zum Aktualisieren des Bereichs mit
den letzten Messwerten das erste Mal aufgerufen. Dieser Funktion ruft sich danach durch
Setzen des Timeouts im Sekundenintervall selbst immer wieder auf.
========================================================================================*/
$('#btn_login').click(()=>{
msg('connecting...'); // Im Bereich der Statusanzeige den Text "connecting..." anzeigen
uapi=new UAPI( // Eine neue Instanz der JavaScript-Klasse "UAPI" anlegen und
$('#login_usr').val(), // den Benutzernamen aus dem Eingabefeld in die Klasse übernehmen
$('#login_pwd').val(), // das Passwort aus dem Eingabefeld in die Klasse übernehmen
MY_HOST); // Web-Adresse des Servers von der Konstante in die Klasse übernehmen
// Globale Fehlersignalisierung festlegen
uapi.onError= (err,info)=>{ // Callback in die Instanz der JavaScript-Klasse "UAPI" übernehmen
switch(err) { // Switch des Response-Code (err) ->
// ungültige User Credentials -> In der Statusanzeige den Text "Illegal user credentals!" anzeigen
case 401: msg('Illegal user credentals!'); break;
// bei allen anderen Fehlern -> Response-Code und zusätzliche Infos in der Statusanzeige anzeigen
default : msg('ERR#'+err +' ... ' + info);
}
}
/* Liste der Kunden ermitteln, auf die der akt. Benutzer Zugriffsrechte besitzt. Die anonyme Funktion
verarbeitet den Response-Code (err) und das zurückgelieferte JSON-Objekt(me) mit der Kundenliste */
uapi.get('1/me',(err,me)=>{
if (err) return; // bei Fehler auf der Login-Page bleiben
// (Restliche Behandlung übernimmt die globale Fehlersignalisierung.)
/* Ersten Kunden aus der Liste wählen. In den folgenden Ressourcen-Pfaden wird "$cid" durch den in
die Instanz "uapi" übernommenen Kundennamen ersetzt. */
uapi.placeholders.$cid= me.customers[0];
/* Liste der Messstellen, die dem gewählten Kunden zugewiesen sind, ermitteln. Die anonyme Funktion
verarbeitet den Response-Code (err) und das JSON-Objekt(sites) mit der Messstellenliste */
uapi.get('1/customers/$cid/sites',(err,sites)=>{
if (err) return; // bei Fehler auf der Login-Page bleiben
// (Restliche Behandlung übernimmt die globale Fehlersignalisierung.)
/* Erste Messstelle aus der Liste wählen. In den folgenden Ressourcen-Pfaden wird "$sid" durch die
in die Instanz "uapi" übernommene unique ID der Messstelle ersetzt. */
uapi.placeholders.$sid= sites[0]._uid;
/* Konfig 0 der gewählten Messstelle auslesen. Die anonyme Funktion verarbeitet den Response-Code
(err) und das JSON-Objekt(x) mit den Konfigurationsparametern. */
uapi.get( '1/customers/$cid/sites/$sid/config0',(err,x)=>{
if (err) return; // bei Fehler auf der Login-Page bleiben
// (Restliche Behandlung übernimmt die globale Fehlersignalisierung.)
// Vom Server gelesenes Aufzeichnungsitv. in das Eingabefeld für das Aufzeichnungsitv schreiben
$ed_reciv.val( x.recordinterval);
msg(); //Bereich der Statusanzeige löschen
showpage('#pg_content'); //Content-Page einblenden und gleichzeitig Login-Page ausblenden
//Aktuell gewählten Kunden-, Benutzer- u. Messstellennamen im entsprechenden Bereich anzeigen
$('#me').text(
me.user.email + ' > ' +
me.customers[0] + ' > ' +
sites[0].name);
//Funktion zum Aktualisieren des Bereichs mit den letzten Messwerten das erste Mal aufrufen
poll_status();
});
});
});
});
Rev. 01 43