Projet

Général

Profil

FormulaireCapture » Historique » Version 5

Jonathan Schaeffer, 20/07/2015 14:16

1 1 Jonathan Schaeffer
h1. Formulaire de capture
2
3
Cette documentation décrit les technologies et techniques employées pour construire le formulaire de captures
4
5
h2. Sélection des champs en fonction des choix précédents
6
7
Le formulaire de capture commence par une série de choix proposés à l'utilisateur. Chaque réponse conditionne les choix suivants.
8
9
Pour plus de fluidité, on reste toujours sur une seule page web et on veut un minimum de clics.
10
11
h3. Principe
12
13
On fait de l'unobstrusive javascript. 
14
15
Chaque événement de changement sur un objet de sélection déclenche une requête au serveur pour calculer la liste des choix dans l'élément suivant.
16
17
Un élément du HTML a un identifiant (par exemple @capture_theme_id option@) qui est utilisé par un code javascript pour peupler les choix listés dans cet élément.
18
19 4 Jonathan Schaeffer
Le serveur route cette requête auprès du contrôleur qui déclenche le calcul d'une vue javascript qui sera a
20 1 Jonathan Schaeffer
21
h3. Mise en oeuvre
22
23 2 Jonathan Schaeffer
Les fonctions AJAX sont écrites dans le fichier source:/app/assets/javascripts/captures.js.coffee
24 1 Jonathan Schaeffer
25 3 Jonathan Schaeffer
Un changement @.on 'change'@ sur un élément déclenche une requête @GET@ au format javascript (@.js@) avec l'option @theme_id@ positionnée à la valeur sélectionnée.
26
27 5 Jonathan Schaeffer
Dans le controleur de capture source:/app/controllers/captures_controller.rb la fonction update_points permet de donner un retour aux requêtes JS. Cette fonction prépare une liste de points et déclenche la vue liée source:/app/views/captures/update_points.js.coffee
28 3 Jonathan Schaeffer
29
Dans cette vue, le code remplace toutes les options de l'élément select @#capture_point_id@ par les noms des objets que lui a transmis le controlleur.
30 1 Jonathan Schaeffer
31
h2. Responsive : rendu du formulaire pour des supports smartphone/tablette