Roar - JS

Oggi volevo parlarvi di roar una classe mootools (1.2) per la visualizzazione di messaggi di notifica la cui grafica è ispirata al famosissimo programma Growl per Mac. Il suo utilizzo è molto semplice e dinamico infatti per poter usare questa classe sarà sufficiente scrivere poche righe di codice, vediamo ora un esempio:
....
var sms = new Roar({
position: 'bottomRight', //upperLeft, upperRight, bottomLeft
duration: 3000 //indica la durata della transazione
});
roar.alert([titolo],[messaggio],[opzioni]);
…
In questo modo si crea un oggetto sms di tipo Roar che grazie al metodo alert visualizzera per 3 sec. in basso a destra il messaggio [messaggio] con il titolo [titolo]. Questa classe potrebbe essere utile per visualizzare all’utente i messaggi di risposta del server in seguito ad una richiesta AJAX, vediamo attraverso un esempio com’è possibile implementare il tutto
- pagina con elenco file
- pagina php che rimuove il file con path assoluto x e restituisce tramite un echo lo stato delle sue operazioni
- richiesta AJAX + Roar
diciamo che l’elenco dei file sia così formato
<div id=”list-file”>
<ul>
<li>file1.pdf [<a class="rimuovi" href="#" path="xxx">Rimuovi</a>]</li>
<li>file2.pdf [<a class="rimuovi" href="#" path="xxx">Rimuovi</a>]</li>
<li>file3.pdf [<a class="rimuovi" href="#" path="xxx">Rimuovi</a>]</li>
</ul>
per quanto riguarda la pagina in php non ci sono grosse difficoltà di implementazione, quindi ognuno può immaginarsela come vuole, l’unica specifica che deve avere questa pagina è che deve restituire un messaggio tramite un echo.
La pagina in cui sarà incluso il codice AJAX potrebbe essere così implementata
- una parte per assegnare l’evento click ai link con classe rimuovi
- funzione per richiesta AJAX
$$('a.rimuovi').each(function(el){
el.addEvent('click',function(){
path=el.getProperty('path');
if ( confirm(path+" sta per essere rimosso.Continuare?") )
richiestaAJAX.send('path='+path);
});
});
ora vediamo come impostare la richiesta AJAX integrata con roar
var richiestaAJAX = new Request({method:'get',url:'file.php',
onSuccess: function(responseText) {
var s = new Roar({
position: 'bottomRight',
duration: 2000
});
s.alert("message",responseText);
s.chain(function(){
window.location.reload(true);
});
},
});
spero che sia stato tutto chiaro, se ci sono perplessità o riscontrate degli errori lasciate senza alcun problema un commento.