<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.odelia-technologies.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>odelia technologies - Prototype</title>
 <link>http://www.odelia-technologies.com/taxonomy/term/47/0</link>
 <description></description>
 <language>fr</language>
<item>
 <title>Messagerie instantanée avec Google Talk et Grails</title>
 <link>http://www.odelia-technologies.com/node/160</link>
 <description>&lt;p&gt;Cet article décrit un exemple d&amp;#39;intégration du protocole de messagerie instantanée XMPP/Jabber dans une application Grails : cet exemple consiste à permettre à tout internaute de dialoguer avec un utilisateur précis Jabber, à partir d&amp;#39;une page web mise à jour grâce à la technologie AJAX ; en l&amp;#39;occurrence, cette démonstration étant en ligne sur le site web &lt;a class=&quot;lien_externe&quot; href=&quot;http://www.grailsworks.com/&quot; target=&quot;_blank&quot;&gt;GrailsWorks&lt;/a&gt;, vous pourrez effectivement converser avec l&amp;#39;auteur de cet article via la page &lt;a class=&quot;lien_externe&quot; href=&quot;http://www.grailsworks.com/grailsbox/chatBot&quot; target=&quot;_blank&quot;&gt;ChatBot&lt;/a&gt;. De mon côté, si je suis bien connecté et disponible, vos messages me parviendront au travers de &lt;a class=&quot;lien_externe&quot; href=&quot;http://www.google.com/talk/intl/fr/&quot; target=&quot;_blank&quot;&gt;Google Talk&lt;/a&gt;, dont j&amp;#39;utilise le client.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.odelia-technologies.com/node/160&quot;&gt;en lire plus&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.odelia-technologies.com/node/160#comment</comments>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/33">AJAX</category>
 <category domain="http://www.odelia-technologies.com/GrailsBox">GrailsWorks</category>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/47">Prototype</category>
 <category domain="http://www.odelia-technologies.com/Grails">Grails</category>
 <category domain="http://www.odelia-technologies.com/Groovy">Groovy</category>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/86">XMPP</category>
 <pubDate>Tue, 06 May 2008 22:30:10 +0200</pubDate>
 <dc:creator>odelia technologies</dc:creator>
 <guid isPermaLink="false">160 at http://www.odelia-technologies.com</guid>
</item>
<item>
 <title>Valider facilement des formulaires web avec style</title>
 <link>http://www.odelia-technologies.com/node/112</link>
 <description>&lt;p&gt;Andrew Tetlaw décrit dans le billet &lt;a class=&quot;lien_externe&quot; href=&quot;http://tetlaw.id.au/view/javascript/really-easy-field-validation&quot; target=&quot;_blank&quot;&gt;Really easy field validation&lt;/a&gt; de son blog &lt;a class=&quot;lien_externe&quot; href=&quot;http://tetlaw.id.au/view/home/&quot; target=&quot;_blank&quot;&gt;DEXAGOGO&lt;/a&gt;, une librairie JavaScript permettant de valider facilement les champs d&amp;#39;un formulaire web.&lt;/p&gt;
&lt;p&gt;
L&#039;idée principale est d&#039;associer des classes CSS particulières aux contrôles d&#039;entrée HTML, pour que la librairie puisse en valider le contenu.&lt;br/&gt;
Par exemple, si vous souhaitez que dans une zone d&#039;édition du formulaire, l&#039;utilisateur saisisse obligatoirement une adresse électronique valide, vous utiliserez les classes CSS prédéfinies &lt;code class=&quot;geshifilter&quot;&gt;required&lt;/code&gt; et &lt;code class=&quot;geshifilter&quot;&gt;validate-email&lt;/code&gt;, comme ceci :&lt;/p&gt;
&lt;p&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;required validate-email&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Adresse électronique&amp;quot;&lt;/span&gt;/&lt;span class=&quot;kw2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Au moment de la validation (par défaut au moment de la soumission du formulaire), si une donnée saisie se révèle invalide, la librairie fait apparaître un message d&#039;erreur prédéfini ou bien celui que vous avez indiqué.&lt;br/&gt;Ce message apparaît avec un effet de type &quot;fade-in&quot;, si vous avez référencé la librairie &lt;code class=&quot;geshifilter&quot;&gt;effects.js&lt;/code&gt; de &lt;a class=&quot;lien_externe&quot; href=&quot;http://script.aculo.us/&quot; target=&quot;_blank&quot;&gt;Scriptaculous&lt;/a&gt; dans l&#039;en-tête de la page HTML. 
&lt;/p&gt;
&lt;p&gt;
Voici un exemple de formulaire web très simple utilisant cette librairie en version 1.5.4.1, avec l&#039;option qui demande la validation d&#039;un champ lorsque celui-ci perd le focus :
&lt;/p&gt;
&lt;p&gt;
  &lt;form id=&quot;test&quot; action=&quot;#&quot; method=&quot;get&quot;&gt;
    &lt;div&gt;&lt;label for=&quot;champ1&quot;&gt;Champ requis&lt;/label&gt; :&lt;/div&gt;
    &lt;div&gt;&lt;input class=&quot;required&quot; id=&quot;champ1&quot; name=&quot;champ1&quot; title=&quot;Champ1&quot;/&gt;&lt;/div&gt;
			
    &lt;div&gt;&lt;label for=&quot;champ2&quot;&gt;Champ requis avec message personnalisé &lt;/label&gt; :&lt;/div&gt;						
    &lt;div&gt;&lt;input class=&quot;required&quot; id=&quot;champ2&quot; name=&quot;champ2&quot; title=&quot;Champ2&quot;/&gt;&lt;/div&gt;
    &lt;div id=&quot;advice-required-champ2&quot; style=&quot;display:none&quot;&gt;Ce champ est obligatoire !&lt;/div&gt;
			
    &lt;div&gt;&lt;label for=&quot;champ3&quot;&gt;Votre adresse électronique&lt;/label&gt; :&lt;/div&gt;									
    &lt;div&gt;&lt;input class=&quot;required validate-email&quot; id=&quot;champ3&quot; name=&quot;champ3&quot; title=&quot;Champ3&quot;/&gt;&lt;/div&gt;
						
    &lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;Test&quot;/&gt;&lt;/p&gt;
  &lt;/form&gt;
  &lt;script type=&quot;text/javascript&quot;&gt;
    new Validation(&#039;test&#039;, {immediate : true}); // ou new Validation(document.forms[0], {immediate : true});
  &lt;/script&gt;    		        
&lt;/p&gt;</description>
 <comments>http://www.odelia-technologies.com/node/112#comment</comments>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/48">CSS</category>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/34">JavaScript</category>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/47">Prototype</category>
 <category domain="http://www.odelia-technologies.com/taxonomy/term/49">Scriptaculous</category>
 <pubDate>Wed, 07 Mar 2007 22:49:23 +0100</pubDate>
 <dc:creator>odelia technologies</dc:creator>
 <guid isPermaLink="false">112 at http://www.odelia-technologies.com</guid>
</item>
</channel>
</rss>
