Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Creare dashboard HTML5... facile come bere un 'DRINKS' | Javascript HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare dashboard HTML5... facile come bere un 'DRINKS'

DRINKS Toolkit è una libreria JavaScript per costruire cruscotti e dashboard. Notevoli i componenti già pronti tutti realizzati in HTML5 Canvas.
DRINKS Toolkit è una libreria JavaScript per costruire cruscotti e dashboard. Notevoli i componenti già pronti tutti realizzati in HTML5 Canvas.
Link copiato negli appunti

DRINKS Toolkit è una collezione di widget realizzati con HTML5 Canvas e Javascript, progettati per rendere facile e veloce lo sviluppo di pannelli di controllo grafici dall'impatto importante sotto il profilo della grafica ma anche dell'usabilità.

Nella sua prima edizione, il toolkit mette a disposizione componenti particolarmente adatti a creare pannelli di controllo: la prima release di Drinks fornisce un set di 20 strumenti, ognuno corrispondente ad un tag.

Ciascun componente può essere ulteriormente specializzato grazie all'attributo type che serve a designarne forme o funzionalità particolari. In questo articolo esamineremo alcuni widget e vedremo alcuni scenari di utilizzo del toolkit: iniziamo elencando alcuni tra i componenti più interessanti:

Controllo Valori per l'attributo 'type'
Knob loop analog digital
Display gauge digital level thermo analog graph
Led round rect triangle
Switch toggle arc side circle rect rocker
Slider analog digital

È possibile realizzarne di nuovi utilizzando una serie di metodi presenti nel toolkit o combinare quelli già esistenti. Nel corso dell'articolo vedremo ad esempio come realizzare una plancia con indicatori analogici a lancette (gauge), display digitali (digital) e led rotondi (round

Perché utilizzare Drinks

Alcune caratteristiche tra le più interessanti del toolkit sono:

  • HTML5 Canvas
  • Ajax
  • Cross-platform
  • Open Source
  • Semplicità
  • Installazione

    Installare Drinks è semplice. Basta scaricare il toolkit, estrarre la cartella e caricarla sul server dove gira l'applicazione. Nelle pagine HTML creiamo solo il collegamento ai file JavaScript:

    <script type="text/Javascript" src="...Path/Drinks.js"></script>

    Creare la prima dashboard!

    Iniziamo inserendo una semplice manopola (knob) che controlla il valore di un gauge. Per prima cosa dobbiamo scrivere il markup per pomello (knob) e indicatore (display):

    <knob id="k1"></knob>
    <display id="gau"></display>

    Da notare che la presenza dell'id è obbligatoria: ogni widget deve avere il proprio id. Il display sarà un indicatore in stile analogico a lancette (gauge) per default, se non indichiamo diversamente nell'attributo type.

    Ora possiamo collegare i due strumenti, per pilotare il nostro display con i valori del knob. Si tratta di sfruttare l'evento onchange del knob, vediamo come:

    <knob id="k1"
          onchange="gau.value = this.value;">
    </knob>

    Possiamo fare un test inserendo tutto in una pagina Web:

    <html>
    <head>
    <script type="text/javascript" src="Drinks.js"></script>
    </head>
    <body>
    	<knob id="k1" onchange="gau.value=this.value"></knob>
    	<display id="gau"></display>
    </body>
    </html>

    Personalizzare i widget

    È possibile modificare diversi attributi per gli strumenti, ad esempio si può aggiungere una descrizione mediante l'attributo label:

    <knob id="k1" label="Turn this knob"></knob>

    Possiamo ridimensionare gli strumenti usando gli attributi width e height oppure, per quelli circolari, mediante l'attributo radius.

    <switch type="side" id="sw" width="100" height="50"></switch>
    
    <display id="gau" radius="80" ></display>

    Possiamo impostare un valore di default o lo stato iniziale del controllo:

    <display id="gau" value="37.5"></display>

    I widget inoltre convivono bene con gli elementi HTML:

    <div style="width:600px; height:300px; background-color:gray; border-radius:15px; box-shadow:1px 1px 3px #333;">
     <knob id="k1" onchange="gau.value=this.value" radius="80" style="float:left;"></knob>
     <display id="gau" radius="80" style="float:left; margin-top:55px;"></display>
    </div>

    Risulta molto utile cambiare il numero di divisioni, la precisione dello strumento e il range massimo e minimo di valori:

    <display id="gauge" divisions="20"></display>
    <display id="gauge" min_range="0.001" max_range="1" precision="3"></display>

    o impostare un range di allarme e specificare azioni al verificarsi degli eventi OnAlert e OnLeaveAlert:

    <display id="dis1" type="thermo" style="float:left;"
             max_range="50"
    		 range_from="40" range_to="50"
    		 onalert="onAlert();"
    		 onleavealert="onLeaveAlert();">
    </display>

    Infine possiamo aggiungere eventi all'occorrenza, ma questo è puro JavaScript:

    <switch id="sw" onchange="
               if(this.value==1){
    				led.on();
    			}else{
    				led.off();
    			}"></switch>
    <led id="led"></led>

    Creare componenti combinati

    Ecco un esempio di combinazione, possiamo creare un nuovo indicatore complesso semplicemente annidando i widget uno dentro l'altro:

    <display id="gau"
             max_range="200" range_from="100" range_to="130"
    		 onalert="led1.on();" onleavealert="led1.off()">
    
    	<display id="dig" type="digital"
    	         width="40" height="20"
    			 x="100" y="160"
    			 link="true" cipher="3" significative="1"></display>
    	<led id="led1" color="red" radius="5" x="112" y="170"></led>
    
    </display>

    È possibile anche creare un nuovo tag per lo strumento appena creato, ma per questo rimadiamo alla guida ufficiale.

    Drinks con Ajax

    Possiamo assegnare all'evento onchange qualsiasi azione in Javascript, quindi è facilmente realizzabile un knob o un gauge che salvino o aggiornino il proprio stato tramite Ajax, interfacciandosi con un server. Drinks fornisce la propria libreria Ajax di supporto che permette facilmente di effettuare richieste GET e POST.

    Vediamo rapidamente come sfruttare in pratica i comandi ajax.load e il meccanismo di aggiornamento automatico con refresh: facciamo un semplice esempio con la classica coppia: manopola/lancetta:

    <knob id="k1" onchange="ajax.load('knob.php?value='+this.value, null);"></knob>
    <display href="gauge.php" id="gau" refresh="5"></display>

    Nel caso del knob abbiamo sfruttato la funzione ajax.load

    <?php
    // knob.php
       $value = $_GET["value"];
       set_db_value($value);
    ?>

    Per comodità gli passiamo il valore tramite una variabile in GET, che verrà prelevato e persistito su DB.

    Per aggiornare il nostro display abbiamo impostato l'attributo refresh, in questo modo il toolkit effettua un polling ogni 5 secondi sul file gauge.php, per prelevarne il valore.

    <?php
    // gauge.php
      $gauge_value = get_from_db();
      echo $gauge_value;
    ?>

    Se sfruttiamo le caratteristiche base della libreria Ajax interna al toolkit non abbiamo bisogno di restituire i dati in un formato particolare (JSON, XML), come si vede è sufficiente ritornare un valore.

    Abbiamo effettuato una veloce ma intensa escursione tra le caratteristiche di Drinks, un toolkit senz'altro da tenere d'occhio e da approfondire sul reference manual, piuttosto completo, fornito dagli autori e dal quale abbiamo tratto anche gli esempi di questo articolo.

Ti consigliamo anche