Commit | Line | Data |
---|---|---|
080632c7 RB |
1 | {**************************************************************************} |
2 | {* *} | |
3 | {* Copyright (C) 2003-2011 Polytechnique.org *} | |
4 | {* http://opensource.polytechnique.org/ *} | |
5 | {* *} | |
6 | {* This program is free software; you can redistribute it and/or modify *} | |
7 | {* it under the terms of the GNU General Public License as published by *} | |
8 | {* the Free Software Foundation; either version 2 of the License, or *} | |
9 | {* (at your option) any later version. *} | |
10 | {* *} | |
11 | {* This program is distributed in the hope that it will be useful, *} | |
12 | {* but WITHOUT ANY WARRANTY; without even the implied warranty of *} | |
13 | {* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *} | |
14 | {* GNU General Public License for more details. *} | |
15 | {* *} | |
16 | {* You should have received a copy of the GNU General Public License *} | |
17 | {* along with this program; if not, write to the Free Software *} | |
18 | {* Foundation, Inc., *} | |
19 | {* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *} | |
20 | {* *} | |
21 | {**************************************************************************} | |
22 | ||
23 | ||
24 | {if $plset_count} | |
25 | {include core=plset.tpl} | |
26 | {else} | |
27 | {include wiki=Docs.Deltaten} | |
28 | {/if} | |
29 | ||
30 | <a id="deltaten"></a> | |
31 | ||
32 | <script type="text/javascript">// <!-- | |
33 | var baseurl = $.plURL("deltaten/"); | |
34 | var baseurl_search = $.plURL("search/"); | |
35 | {literal} | |
36 | ||
37 | // display an autocomplete row : blabla (nb of found matches) | |
38 | function make_format_autocomplete(block) { | |
39 | return function(row) { | |
40 | regexp = new RegExp('(' + RegExp.escape(block.value) + ')', 'i'); | |
41 | ||
42 | name = row[0].htmlEntities().replace(regexp, '<strong>$1<\/strong>'); | |
43 | ||
44 | if (row[1] === "-1") { | |
45 | return '…'; | |
46 | } | |
47 | ||
48 | if (row[1] === "-2") { | |
49 | return '<em>aucun camarade trouvé pour '+row[0].htmlEntities()+'<\/em>'; | |
50 | } | |
51 | ||
52 | camarades = (row[1] > 1) ? "camarades" : "camarade"; | |
53 | ||
54 | return name + '<em> - ' + row[1].htmlEntities() + ' ' + camarades + '<\/em>'; | |
55 | }; | |
56 | } | |
57 | ||
58 | // when changing country, open up administrativearea choice | |
59 | function changeCountry(a2) { | |
60 | $(".autocompleteTarget[name='country']").attr('value',a2); | |
61 | ||
62 | if (a2) { | |
63 | $(".autocomplete[name='countryTxt']").addClass('hidden_valid'); | |
64 | ||
65 | $("[name='administrativearea']").parent().load(baseurl_search + 'list/administrativearea/', { country:a2 }, function() { | |
66 | if ($("select[name='administrativearea']").children("option").size() > 1) { | |
67 | $("select[name='administrativearea']").attr('value', '{/literal}{$smarty.request.administrativearea}{literal}'); | |
68 | ||
69 | $("tr#administrativearea_list").show(); | |
70 | } else { | |
71 | $("select[name='administrativearea']").attr('value', ''); | |
72 | ||
73 | $("tr#administrativearea_list").hide(); | |
74 | } | |
75 | }); | |
76 | } else { | |
77 | $(".autocomplete[name='countryTxt']").removeClass('hidden_valid'); | |
78 | ||
79 | $("select[name='administrativearea']").attr('value', ''); | |
80 | $("select[name='subadministrativearea']").attr('value', ''); | |
81 | ||
82 | $("tr#administrativearea_list").hide(); | |
83 | $("tr#subadministrativearea_list").hide(); | |
84 | } | |
85 | } | |
86 | ||
87 | // when changing administrativearea, open up subadministrativearea choice | |
88 | function changeAdministrativeArea(id) { | |
89 | if (id) { | |
90 | $("[name='subadministrativearea']").parent().load(baseurl_search + 'list/subadministrativearea/', { administrativearea:id }, function() { | |
91 | if ($("select[name='subadministrativearea']").children("option").size() > 1) { | |
92 | $("select[name='subadministrativearea']").attr('value', '{/literal}{$smarty.request.subadministrativearea}{literal}'); | |
93 | $("tr#subadministrativearea_list").show(); | |
94 | } else { | |
95 | $("select[name='subadministrativearea']").attr('value', ''); | |
96 | $("tr#subadministrativearea_list").hide(); | |
97 | } | |
98 | }); | |
99 | } else { | |
100 | $("select[name='subadministrativearea']").attr('value', ''); | |
101 | $("tr#subadministrativearea_list").hide(); | |
102 | } | |
103 | } | |
104 | ||
105 | // when changing school, open diploma choice | |
106 | function changeSchool(schoolId) { | |
107 | $(".autocompleteTarget[name='school']").attr('value',schoolId); | |
108 | ||
109 | if (schoolId) { | |
110 | $(".autocomplete[name='schoolTxt']").addClass('hidden_valid'); | |
111 | } else { | |
112 | $(".autocomplete[name='schoolTxt']").removeClass('hidden_valid'); | |
113 | } | |
114 | ||
115 | $("[name='diploma']").parent().load(baseurl_search + 'list/diploma/', { school:schoolId }, function() { | |
116 | $("select[name='diploma']").attr('value', '{/literal}{$smarty.request.diploma}{literal}'); | |
117 | }); | |
118 | } | |
119 | ||
120 | // when choosing a job term in tree, hide tree and set job term field | |
121 | function searchForJobTerm(treeid, jtid, full_name) { | |
122 | $(".term_tree").remove(); | |
123 | $("input[name='jobtermTxt']").val(full_name).addClass("hidden_valid").show(); | |
124 | $("input[name='jobterm']").val(jtid); | |
125 | } | |
126 | ||
127 | function cancel_autocomplete(field, realfield) { | |
128 | $(".autocomplete[name='"+field+"']").removeClass('hidden_valid').val('').focus(); | |
129 | if (typeof(realfield) != "undefined") { | |
130 | $(".autocompleteTarget[name='"+realfield+"']").val(''); | |
131 | } | |
132 | return; | |
133 | } | |
134 | ||
135 | // when choosing autocomplete from list, must validate | |
136 | function select_autocomplete(name) { | |
137 | nameRealField = name.replace(/Txt$/, ''); | |
138 | ||
139 | // nothing to do if field is not a text field for a list | |
140 | if (nameRealField == name) | |
141 | return null; | |
142 | ||
143 | // if changing country, might want to open administrativearea choice | |
144 | if (nameRealField == 'country') | |
145 | return function(i) { | |
146 | if (i.extra[0] < 0) { | |
147 | cancel_autocomplete('countryTxt', 'country'); | |
148 | i.extra[1] = ''; | |
149 | } | |
150 | changeCountry(i.extra[1]); | |
151 | } | |
152 | ||
153 | if (nameRealField == 'school') | |
154 | return function(i) { | |
155 | if (i.extra[0] < 0) { | |
156 | cancel_autocomplete('schoolTxt', 'school'); | |
157 | i.extra[1] = ''; | |
158 | } | |
159 | changeSchool(i.extra[1]); | |
160 | } | |
161 | ||
162 | // change field in list and display text field as valid | |
163 | return function(i) { | |
164 | nameRealField = this.field.replace(/Txt$/, ''); | |
165 | ||
166 | if (i.extra[0] < 0) { | |
167 | cancel_autocomplete(this.field, nameRealField); | |
168 | return; | |
169 | } | |
170 | ||
171 | $(".autocompleteTarget[name='"+nameRealField+"']").attr('value',i.extra[1]); | |
172 | ||
173 | $(".autocomplete[name='"+this.field+"']").addClass('hidden_valid'); | |
174 | } | |
175 | } | |
176 | ||
177 | $(function() { | |
178 | $(".autocompleteTarget").hide(); | |
179 | $(".autocomplete").show().each(function() { | |
180 | targeted = $("../.autocompleteTarget",this)[0]; | |
181 | ||
182 | if (targeted && targeted.value) { | |
183 | me = $(this); | |
184 | ||
185 | $.get(baseurl_search + 'list/'+ targeted.name +'/'+targeted.value, {},function(textValue) { | |
186 | me.attr('value', textValue); | |
187 | me.addClass('hidden_valid'); | |
188 | }); | |
189 | } | |
190 | ||
191 | $(this).autocomplete(baseurl_search + "autocomplete/"+this.name,{ | |
192 | selectOnly:1, | |
193 | formatItem:make_format_autocomplete(this), | |
194 | field:this.name, | |
195 | onItemSelect:select_autocomplete(this.name), | |
196 | matchSubset:0, | |
197 | width:$(this).width()}); | |
198 | }); | |
199 | ||
200 | $(".autocomplete").change(function() { $(this).removeClass('hidden_valid'); }); | |
201 | ||
202 | $(".autocomplete[name='countryTxt']").change(function() { changeCountry(''); }); | |
203 | ||
204 | changeCountry({/literal}'{$smarty.request.country}'{literal}); | |
205 | changeAdministrativeArea({/literal}'{$smarty.request.administrativearea}'{literal}); | |
206 | ||
207 | $(".autocomplete[name='schoolTxt']").change(function() { changeSchool(''); }); | |
208 | ||
209 | changeSchool({/literal}'{$smarty.request.school}'{literal}); | |
210 | ||
211 | $(".autocompleteToSelect").each(function() { | |
212 | var fieldName = $(this).attr('href'); | |
213 | ||
214 | $(this).attr('href', baseurl_search + 'list/'+fieldName).click(function() { | |
215 | var oldval = $("input.autocompleteTarget[name='"+fieldName+"']")[0].value; | |
216 | ||
217 | $(".autocompleteTarget[name='"+fieldName+"']").parent().load(baseurl_search + 'list/'+fieldName,{}, | |
218 | function(selectBox) { | |
219 | $(".autocompleteTarget[name='"+fieldName+"']").remove(); | |
220 | $(".autocomplete[name='"+fieldName+"Txt']").remove(); | |
221 | $("select[name='"+fieldName+"']").attr('value', oldval); | |
222 | }); | |
223 | ||
224 | return false; | |
225 | }); | |
226 | }).parent().find('.autocomplete').change(function() { | |
227 | // If we change the value in the type="text" field, then the value in the 'integer id' field must not be used, | |
228 | // to ensure that, we unset it | |
229 | $(this).parent().find('.autocompleteTarget').val(''); | |
230 | }); | |
231 | }); | |
232 | /** Regexps to wipe out from search queries */ | |
233 | var default_form_values = [ /&woman=0(&|$)/, /&[^&=]+=(&|$)/g ]; | |
234 | /** Uses javascript to clean form from all empty fields */ | |
235 | function cleanForm(f) { | |
236 | var query = $(f).formSerialize(); | |
237 | var old_query; | |
238 | for (var i in default_form_values) { | |
239 | var reg = default_form_values[i]; | |
240 | if (typeof(reg) != "undefined") { | |
241 | do { | |
242 | old_query = query; | |
243 | query = query.replace(reg, '$1'); | |
244 | } while (old_query != query); | |
245 | } | |
246 | } | |
247 | query = query.replace(/^&*(.*)&*$/, '$1'); | |
248 | if (query == "rechercher=Chercher") { | |
249 | alert("Aucun critère n'a été spécifié"); | |
250 | return false; | |
251 | } | |
252 | document.location = baseurl + 'search?' + query; | |
253 | return false; | |
254 | } | |
255 | --> | |
256 | {/literal}</script> | |
257 | <form id="recherche" action="deltaten/search" method="get" onsubmit="return cleanForm(this)"> | |
258 | <table class="bicol" cellpadding="3" summary="Recherche"> | |
259 | <tr> | |
260 | <th colspan="2"> | |
261 | Opération N N-10 | |
262 | </th> | |
263 | </tr> | |
264 | <tr> | |
265 | <td colspan="2" class="titre"> | |
266 | Cette recherche est effectuée uniquement au sein des membres de la promotion {$deltaten_promo_old} participant à l'opération N N-10. | |
267 | </td> | |
268 | </tr> | |
269 | <tr> | |
270 | <th colspan="2">Géographie</th> | |
271 | </tr> | |
272 | <tr> | |
273 | <td>Ville ou code postal</td> | |
274 | <td><input type="text" class="autocomplete" name="city" size="32" value="{$smarty.request.city}" /></td> | |
275 | </tr> | |
276 | <tr> | |
277 | <td>Pays</td> | |
278 | <td> | |
279 | <input name="countryTxt" type="text" class="autocomplete" style="display:none" size="32" | |
280 | value="{$smarty.request.countryTxt}"/> | |
281 | <input name="country" class="autocompleteTarget" type="hidden" value="{$smarty.request.country}"/> | |
282 | <a href="country" class="autocompleteToSelect">{icon name="table" title="Tous les pays"}</a> | |
283 | </td> | |
284 | </tr> | |
285 | <tr id="administrativearea_list"> | |
286 | <td>Région, province, état…</td> | |
287 | <td> | |
288 | <input name="administrativearea" type="hidden" size="32" value="{$smarty.request.administrativearea}" /> | |
289 | </td> | |
290 | </tr> | |
291 | <tr id="subadministrativearea_list"> | |
292 | <td>Département, comté…</td> | |
293 | <td> | |
294 | <input name="subadministrativearea" type="hidden" size="32" value="{$smarty.request.subadministrativearea}" /> | |
295 | </td> | |
296 | </tr> | |
297 | <tr> | |
298 | <td colspan="2"> | |
299 | <label for="only_current"> | |
300 | <input name="only_current" id="only_current" type="checkbox"{if $smarty.request.only_current} checked="checked"{/if}/> | |
301 | Chercher uniquement les adresses où les camarades sont actuellement. | |
302 | </label> | |
303 | </td> | |
304 | </tr> | |
305 | <tr> | |
306 | <th colspan="2">Activité</th> | |
307 | </tr> | |
308 | <tr> | |
309 | <td>Entreprise</td> | |
310 | <td><input type="text" class="autocomplete" name="entreprise" size="32" value="{$smarty.request.entreprise}" /></td> | |
311 | </tr> | |
312 | <tr> | |
313 | <td>Description</td> | |
314 | <td><input type="text" class="autocomplete" name="description" size="32" value="{$smarty.request.description}" /></td> | |
315 | </tr> | |
316 | <tr> | |
317 | <td>Mots-clefs</td> | |
318 | <td> | |
319 | <input name="jobtermTxt" type="text" class="autocomplete{if $smarty.request.jobterm} hidden_valid{/if}" style="display:none" size="32" | |
320 | value="{$smarty.request.jobtermTxt}"/> | |
321 | <input name="jobterm" class="autocompleteTarget" type="hidden" value="{$smarty.request.jobterm}"/> | |
322 | <a href="jobterm" class="autocompleteToSelect">{icon name="table" title="Tous les mots-clefs"}</a> | |
323 | </td> | |
324 | </tr> | |
325 | <tr> | |
326 | <th colspan="2">Divers</th> | |
327 | </tr> | |
328 | <tr> | |
329 | <td>Sexe</td> | |
330 | <td> | |
331 | <table> | |
332 | <tr> | |
333 | <td style="width:100px"> | |
334 | <input type="radio" name="woman" value="0" {if !$smarty.request.woman}checked="checked"{/if} id="woman0"/><label for="woman0">indifférent</label> | |
335 | </td> | |
336 | <td style="width:100px"> | |
337 | <input type="radio" name="woman" value="1" {if $smarty.request.woman eq 1}checked="checked"{/if} id="woman1"/><label for="woman1">homme</label> | |
338 | </td> | |
339 | <td style="width:100px"> | |
340 | <input type="radio" name="woman" value="2" {if $smarty.request.woman eq 2}checked="checked"{/if} id="woman2"/><label for="woman2">femme</label> | |
341 | </td> | |
342 | </tr> | |
343 | </table> | |
344 | </td> | |
345 | </tr> | |
346 | <tr> | |
347 | <td>Nationalité</td> | |
348 | <td> | |
349 | <input name="nationaliteTxt" type="text" class="autocomplete" style="display:none" size="32" | |
350 | value="{$smarty.request.nationaliteTxt}"/> | |
351 | <input name="nationalite" class="autocompleteTarget" type="hidden" value="{$smarty.request.nationalite}"/> | |
352 | <a href="nationalite" class="autocompleteToSelect">{icon name="table" title="Toutes les nationalités"}</a> | |
353 | </td> | |
354 | </tr> | |
355 | {if hasPerm('directory_private')} | |
356 | <tr> | |
357 | <td>Binet</td> | |
358 | <td> | |
359 | <input name="binetTxt" type="text" class="autocomplete" style="display:none" size="32" | |
360 | value="{$smarty.request.binetTxt}"/> | |
361 | <input name="binet" class="autocompleteTarget" type="hidden" value="{$smarty.request.binet}"/> | |
362 | <a href="binet" class="autocompleteToSelect">{icon name="table" title="Tous les binets"}</a> | |
363 | </td> | |
364 | </tr> | |
365 | {/if} | |
366 | <tr> | |
367 | <td>Groupe X</td> | |
368 | <td> | |
369 | <input name="groupexTxt" type="text" class="autocomplete" style="display:none" size="32" | |
370 | value="{$smarty.request.groupexTxt}"/> | |
371 | <input name="groupex" class="autocompleteTarget" type="hidden" value="{$smarty.request.groupex}"/> | |
372 | <a href="groupex" class="autocompleteToSelect">{icon name="table" title="Tous les groupes X"}</a> | |
373 | </td> | |
374 | </tr> | |
375 | {if hasPerm('directory_private')} | |
376 | <tr> | |
377 | <td>Section</td> | |
378 | <td> | |
379 | <input name="sectionTxt" type="text" class="autocomplete" style="display:none" size="32" | |
380 | value="{$smarty.request.sectionTxt}"/> | |
381 | <input name="section" class="autocompleteTarget" type="hidden" value="{$smarty.request.section}"/> | |
382 | <a href="section" class="autocompleteToSelect">{icon name="table" title="Toutes les sections"}</a> | |
383 | </td> | |
384 | </tr> | |
385 | {/if} | |
386 | <tr> | |
387 | <th colspan="2">Formation</th> | |
388 | </tr> | |
389 | <tr> | |
390 | <td>Formation</td> | |
391 | <td> | |
392 | <input name="schoolTxt" type="text" class="autocomplete" style="display:none" size="32" | |
393 | value="{$smarty.request.schoolTxt}"/> | |
394 | <input name="school" class="autocompleteTarget" type="hidden" value="{$smarty.request.school}"/> | |
395 | <a href="school" class="autocompleteToSelect">{icon name="table" title="Toutes les formations"}</a> | |
396 | </td> | |
397 | </tr> | |
398 | <tr> | |
399 | <td>Diplôme</td> | |
400 | <td> | |
401 | <input name="diploma" size="32" value="{$smarty.request.diploma}"/> | |
402 | </td> | |
403 | </tr> | |
404 | <tr> | |
405 | <th colspan="2">Opération N N-10</th> | |
406 | </tr> | |
407 | <tr> | |
408 | <td> | |
409 | Message spécifique (recherche texte) : | |
410 | </td> | |
411 | <td> | |
412 | <input type="text" value="{$smarty.request.deltaten_message}" size="30" name="deltaten_message" /> | |
413 | </td> | |
414 | </tr> | |
415 | <tr><td colspan="2"></td></tr> | |
416 | <tr> | |
417 | <td colspan="2" style="text-align: center"> | |
418 | <input type="submit" value="Chercher" /> | |
419 | </td> | |
420 | </tr> | |
421 | </table> | |
422 | </form> | |
423 | ||
424 | {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *} |