Ensures requests to the Google Apps API are processed as soon as possible (and before...
[platal.git] / templates / search / adv.form.tpl
index b47a3dc..a48eb0a 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2007 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2008 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
 {javascript name="jquery"}
 {javascript name="jquery.autocomplete"}
 <script type="text/javascript">// <!-- 
-        var baseurl = "{#globals.baseurl#}/search/";
+        var baseurl = platal_baseurl + "search/";
         {literal}
-        
-        // use same form to send to search or map
-        function launch_form(url) {
-          var f = document.getElementById('recherche');
-          f.action = url;
-          f.submit();
-        }
-        
-        // display an autocomplete row : blabla (nb of found matches)
-        function format_autocomplete(row) {
-          if (row[1] == 1) {
-            return row[0];
-          }
-          return row[0] + ' ('+ row[1] + ')';
+        // display an autocomplete row&nbsp;: blabla (nb of found matches)
+        function make_format_autocomplete(block) {
+          return function(row) {
+              regexp = new RegExp('(' + RegExp.escape(block.value) + ')', 'i');
+              name = row[0].replace(regexp, '<strong>$1</strong>');
+              if (row[1] == 1) {
+                return name;
+              }
+              return name + '<em>&nbsp;&nbsp;-&nbsp;&nbsp;'+ row[1] + ' camarades</em>';
+            };
         }
         
         // when changing country, open up region choice
             $(".autocomplete[@name='countryTxt']").addClass('hidden_valid');
             $("[@name='region']").parent().load(baseurl + 'list/region/', { country:a2 }, function() {
               if ($("select[@name='region']").children("option").size() > 1) {
-                $("select[@name='region']").attr('value', '{/literal}{$smarty.request.region}{literal}').show();
+                $("select[@name='region']").attr('value', '{/literal}{$smarty.request.region}{literal}');
+                $("tr#region_ln").show();
               } else {
-                $("select[@name='region']").attr('value', '').hide();
+                $("select[@name='region']").attr('value', '');
+                $("tr#region_ln").hide();
               }
             });
           } else {
             $(".autocomplete[@name='countryTxt']").removeClass('hidden_valid');
-            $("select[@name='region']").attr('value', '').hide();
+            $("select[@name='region']").attr('value', '');
+            $("tr#region_ln").hide();
           }
         }
         
           $(".autocompleteTarget[@name='school']").attr('value',schoolId);
           if (schoolId) {
             $(".autocomplete[@name='schoolTxt']").addClass('hidden_valid');
-            $("[@name='diploma']").parent().load(parent + 'list/diploma/', { school:schoolId }, function() {
+            $("[@name='diploma']").parent().load(baseurl + 'list/diploma/', { school:schoolId }, function() {
               if ($("select[@name='diploma']").children("option").size() > 1) {
                 $("select[@name='diploma']").attr('value', '{/literal}{$smarty.request.diploma}{literal}');
+                $("tr#diploma_ln").show();
               } else {
-                $("select[@name='diploma']").attr('value', '').hide();
+                $("select[@name='diploma']").attr('value', '');
+                $("tr#diploma_ln").hide();
               }
             });
           } else {
             $(".autocomplete[@name='schoolTxt']").removeClass('hidden_valid');
-            $("select[@name='diploma']").attr('value', '').hide();
+            $("select[@name='diploma']").attr('value', '');
+            $("tr#diploma_ln").hide();
           }
         }
         
               }
               $(this).autocomplete(baseurl + "autocomplete/"+this.name,{
                 selectOnly:1,
-                formatItem:format_autocomplete,
+                formatItem:make_format_autocomplete(this),
                 field:this.name,
                 onItemSelect:select_autocomplete(this.name),
                 matchSubset:0,
     <tr>
       <td>Pays</td>
       <td>
-        <input name="countryTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="countryTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.countryTxt}"/>
         <input name="country" class="autocompleteTarget" type="hidden" value="{$smarty.request.country}"/>
         <a href="country" class="autocompleteToSelect">{icon name="table" title="Tous les pays"}</a>
       </td>
     </tr>
-    <tr>
+    <tr id="region_ln">
       <td>Région ou département</td>
       <td>
         <input name="region" type="hidden" size="32" value="{$smarty.request.region}"/>
@@ -281,7 +284,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Fonction</td>
       <td>
-        <input name="fonctionTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="fonctionTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.fonctionTxt}"/>
         <input name="fonction" class="autocompleteTarget" type="hidden" value="{$smarty.request.fonction}"/>
         <a href="fonction" class="autocompleteToSelect">{icon name="table" title="Toutes les fonctions"}</a>
       </td>
@@ -293,7 +297,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Secteur</td>
       <td>
-        <input name="secteurTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="secteurTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.secteurTxt}"/>
         <input name="secteur" class="autocompleteTarget" type="hidden" value="{$smarty.request.secteur}"/>
         <a href="secteur" class="autocompleteToSelect">{icon name="table" title="Tous les secteurs"}</a>
       </td>
@@ -314,7 +319,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Nationalité</td>
       <td>
-        <input name="nationaliteTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="nationaliteTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.nationaliteTxt}"/>
         <input name="nationalite" class="autocompleteTarget" type="hidden" value="{$smarty.request.nationalite}"/>
         <a href="nationalite" class="autocompleteToSelect">{icon name="table" title="Toutes les nationalités"}</a>
       </td>
@@ -322,7 +328,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Binet</td>
       <td>
-        <input name="binetTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="binetTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.binetTxt}"/>
         <input name="binet" class="autocompleteTarget" type="hidden" value="{$smarty.request.binet}"/>
         <a href="binet" class="autocompleteToSelect">{icon name="table" title="Tous les binets"}</a>
       </td>
@@ -330,7 +337,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Groupe X</td>
       <td>
-        <input name="groupexTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="groupexTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.groupexTxt}"/>
         <input name="groupex" class="autocompleteTarget" type="hidden" value="{$smarty.request.groupex}"/>
         <a href="groupex" class="autocompleteToSelect">{icon name="table" title="Tous les groupes X"}</a>
       </td>
@@ -338,7 +346,8 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Section</td>
       <td>
-        <input name="sectionTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="sectionTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.sectionTxt}"/>
         <input name="section" class="autocompleteTarget" type="hidden" value="{$smarty.request.section}"/>
         <a href="section" class="autocompleteToSelect">{icon name="table" title="Toutes les sections"}</a>
       </td>
@@ -346,12 +355,13 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td>Formation</td>
       <td>
-        <input name="schoolTxt" type="text" class="autocomplete" style="display:none" size="32"/>
+        <input name="schoolTxt" type="text" class="autocomplete" style="display:none" size="32"
+               value="{$smarty.request.schoolTxt}"/>
         <input name="school" class="autocompleteTarget" type="hidden" value="{$smarty.request.school}"/>
         <a href="school" class="autocompleteToSelect">{icon name="table" title="Toutes les formations"}</a>
       </td>
     </tr>
-    <tr>
+    <tr id="diploma_ln">
       <td>Diplôme</td>
       <td>
         <input name="diploma" type="hidden" size="32" value="{$smarty.request.diploma}"/>
@@ -364,7 +374,7 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     <tr>
       <td colspan="2" style="padding-top: 1.5em">
         <div style="float: right">
-          <input type="button" value="Chercher" onclick="launch_form('search/adv')"/>
+          <input type="submit" value="Chercher" />
         </div>
         {if $smarty.session.auth ge AUTH_COOKIE}
           <input type='checkbox' name='order' value='date_mod' {if $smarty.request.order eq "date_mod"}checked='checked'{/if} id="order"/>
@@ -374,9 +384,6 @@ checked="checked"{/if}/>chercher uniquement les adresses où les camarades sont
     </tr>
   </table>
 </form>
-<p class="center">
-  <input type="button" value="Voir les résultats sur une carte" onclick="launch_form('geoloc/')"/>
-</p>
 <p>
   <strong>N.B.</strong> Le caractère joker * peut remplacer une ou plusieurs lettres dans les recherches.
 </p>