{**************************************************************************}
{* *}
-{* Copyright (C) 2003-2010 Polytechnique.org *}
+{* Copyright (C) 2003-2011 Polytechnique.org *}
{* http://opensource.polytechnique.org/ *}
{* *}
{* This program is free software; you can redistribute it and/or modify *}
<p class="center"><strong>Voulez-vous télécharger le <a href="{$globals->baseurl}/search/adv/addresses{$plset_args}">tableau des adresses postales</a> pour la recette précédente ?</strong></p>
{/if}
-{javascript name=jquery.form}
+<script type="text/javascript">//<![CDATA[
+ {literal}$(function() { load_advanced_search({{/literal}{foreach from=$smarty.request key=key item=item}"{$key}":"{$item}",{/foreach}{literal}}); });{/literal}
+//]]></script>
-<script type="text/javascript">// <!--
- var baseurl = platal_baseurl + "search/";
- {literal}
- String.prototype.htmlEntities = function () {
- return this.replace(/&/g,'&').replace(new RegExp('<','g'),'<').replace(/>/g,'>');
- };
- // display an autocomplete row : blabla (nb of found matches)
- function make_format_autocomplete(block) {
- return function(row) {
- regexp = new RegExp('(' + RegExp.escape(block.value) + ')', 'i');
-
- name = row[0].htmlEntities().replace(regexp, '<strong>$1<\/strong>');
-
- if (row[1] === "-1") {
- return '…';
- }
-
- if (row[1] === "-2") {
- return '<em>aucun camarade trouvé pour '+row[0].htmlEntities()+'<\/em>';
- }
-
- camarades = (row[1] > 1) ? "camarades" : "camarade";
-
- return name + '<em> - ' + row[1].htmlEntities() + ' ' + camarades + '<\/em>';
- };
- }
-
- // when changing country, open up region choice
- function changeCountry(a2) {
- $(".autocompleteTarget[name='country']").attr('value',a2);
-
- if (a2) {
- $(".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}');
-
- $("tr#region_ln").show();
- } else {
- $("select[name='region']").attr('value', '');
-
- $("tr#region_ln").hide();
- }
- });
- } else {
- $(".autocomplete[name='countryTxt']").removeClass('hidden_valid');
-
- $("select[name='region']").attr('value', '');
-
- $("tr#region_ln").hide();
- }
- }
-
- // when changing school, open diploma choice
- function changeSchool(schoolId) {
- $(".autocompleteTarget[name='school']").attr('value',schoolId);
-
- if (schoolId) {
- $(".autocomplete[name='schoolTxt']").addClass('hidden_valid');
- } else {
- $(".autocomplete[name='schoolTxt']").removeClass('hidden_valid');
- }
-
- $("[name='diploma']").parent().load(baseurl + 'list/diploma/', { school:schoolId }, function() {
- $("select[name='diploma']").attr('value', '{/literal}{$smarty.request.diploma}{literal}');
- });
- }
-
- // when choosing a job term in tree, hide tree and set job term field
- function searchForJobTerm(treeid, jtid, full_name) {
- $(".term_tree").remove();
- $("input[name='jobtermTxt']").val(full_name).addClass("hidden_valid").show();
- $("input[name='jobterm']").val(jtid);
- }
-
- function cancel_autocomplete(field, realfield) {
- $(".autocomplete[name='"+field+"']").removeClass('hidden_valid').val('').focus();
- if (typeof(realfield) != "undefined") {
- $(".autocompleteTarget[name='"+realfield+"']").val('');
- }
- return;
- }
-
- // when choosing autocomplete from list, must validate
- function select_autocomplete(name) {
- nameRealField = name.replace(/Txt$/, '');
-
- // nothing to do if field is not a text field for a list
- if (nameRealField == name)
- return null;
-
- // if changing country, might want to open region choice
- if (nameRealField == 'country')
- return function(i) {
- if (i.extra[0] < 0) {
- cancel_autocomplete('countryTxt', 'country');
- i.extra[1] = '';
- }
- changeCountry(i.extra[1]);
- }
-
- if (nameRealField == 'school')
- return function(i) {
- if (i.extra[0] < 0) {
- cancel_autocomplete('schoolTxt', 'school');
- i.extra[1] = '';
- }
- changeSchool(i.extra[1]);
- }
-
- // change field in list and display text field as valid
- return function(i) {
- nameRealField = this.field.replace(/Txt$/, '');
-
- if (i.extra[0] < 0) {
- cancel_autocomplete(this.field, nameRealField);
- return;
- }
-
- $(".autocompleteTarget[name='"+nameRealField+"']").attr('value',i.extra[1]);
-
- $(".autocomplete[name='"+this.field+"']").addClass('hidden_valid');
- }
- }
-
- $(document).ready(function() {
- $(".autocompleteTarget").hide();
- $(".autocomplete").show().each(function() {
- targeted = $("../.autocompleteTarget",this)[0];
-
- if (targeted && targeted.value) {
- me = $(this);
-
- $.get(baseurl + 'list/'+ targeted.name +'/'+targeted.value, {},function(textValue) {
- me.attr('value', textValue);
- me.addClass('hidden_valid');
- });
- }
-
- $(this).autocomplete(baseurl + "autocomplete/"+this.name,{
- selectOnly:1,
- formatItem:make_format_autocomplete(this),
- field:this.name,
- onItemSelect:select_autocomplete(this.name),
- matchSubset:0,
- width:$(this).width()});
- });
-
- $(".autocomplete").change(function() { $(this).removeClass('hidden_valid'); });
-
- $(".autocomplete[name='countryTxt']").change(function() { changeCountry(''); });
-
- changeCountry({/literal}'{$smarty.request.country}'{literal});
-
- $(".autocomplete[name='schoolTxt']").change(function() { changeSchool(''); });
-
- changeSchool({/literal}'{$smarty.request.school}'{literal});
-
- $(".autocompleteToSelect").each(function() {
- var fieldName = $(this).attr('href');
-
- $(this).attr('href', baseurl + 'list/'+fieldName).click(function() {
- var oldval = $("input.autocompleteTarget[name='"+fieldName+"']")[0].value;
-
- $(".autocompleteTarget[name='"+fieldName+"']").parent().load(baseurl + 'list/'+fieldName,{},
- function(selectBox) {
- $(".autocompleteTarget[name='"+fieldName+"']").remove();
- $(".autocomplete[name='"+fieldName+"Txt']").remove();
- $("select[name='"+fieldName+"']").attr('value', oldval);
- });
-
- return false;
- });
- }).parent().find('.autocomplete').change(function() {
- // If we change the value in the type="text" field, then the value in the 'integer id' field must not be used,
- // to ensure that, we unset it
- $(this).parent().find('.autocompleteTarget').val('');
- });
- });
-/** Regexps to wipe out from search queries */
-var default_form_values = [ /&woman=0(&|$)/, /&subscriber=0(&|$)/, /&alive=0(&|$)/, /&egal[12]=[^&]*&promo[12]=(&|$)/g, /&networking_type=0(&|$)/, /&[^&=]+=(&|$)/g ];
-/** Uses javascript to clean form from all empty fields */
-function cleanForm(f) {
- var query = $(f).formSerialize();
- var old_query;
- for (var i in default_form_values) {
- var reg = default_form_values[i];
- if (typeof(reg) != "undefined") {
- do {
- old_query = query;
- query = query.replace(reg, '$1');
- } while (old_query != query);
- }
- }
- query = query.replace(/^&*(.*)&*$/, '$1');
- if (query == "rechercher=Chercher") {
- alert("Aucun critère n'a été spécifié");
- return false;
- }
- document.location = baseurl + 'adv?' + query;
- return false;
-}
--->
-{/literal}</script>
<p class="center">[<a href="search">Revenir à la recherche simple</a>]</p>
-<form id="recherche" action="search/adv" method="get" onsubmit="return cleanForm(this)">
+<form id="recherche" action="search/adv" method="get" onsubmit="return cleanForm(this, 'search/adv')">
<table class="bicol" cellpadding="3" summary="Recherche">
<tr>
<th colspan="2">
<input type="hidden" name="rechercher" value="Chercher"/>
<input type="submit" style="display:none"/>
<input type="text" name="name" size="32" value="{$smarty.request.name}" />
+ <select name="name_type">
+ <option value="" {if $smarty.request.name_type eq ''}selected="selected"{/if}> - </option>
+ <option value="lastname" {if $smarty.request.name_type eq 'lastname'}selected="selected"{/if}>nom</option>
+ <option value="firstname" {if $smarty.request.name_type eq 'firstname'}selected="selected"{/if}>prénom</option>
+ <option value="nickname" {if $smarty.request.name_type eq 'nickname'}selected="selected"{/if}>surnom</option>
+ </select>
</td>
</tr>
<tr>
<td>Promotion</td>
<td>
- <script type="text/javascript">/*<![CDATA[*/
- {literal}
- function updatepromofields(egal1) {
- var f = egal1.form;
- f.egal2.disabled = f.promo2.disabled = egal1.value == '=';
- f.egal2.readOnly = true;
- if (f.egal1.value == '>=') {
- f.egal2.value = '<=';
- } else {
- f.egal2.value = '>=';
- }
- }
- $(document).ready(function() { updatepromofields($('select[name=egal1]')[0]); });
- {/literal}
- /*]]>*/</script>
- <select name="egal1" onchange="updatepromofields(this)" style="text-align:center">
- <option value="=" {if $smarty.request.egal1 eq "="}selected="selected"{/if}> = </option>
- <option value=">=" {if $smarty.request.egal1 eq ">="}selected="selected"{/if}> >= </option>
- <option value="<=" {if $smarty.request.egal1 eq "<="}selected="selected"{/if}> <= </option>
- </select>
- <input type="text" name="promo1" size="4" maxlength="4" value="{$smarty.request.promo1}" />
- et
- <input type="text" name="egal2" size="1" style="text-align:center" value="{if t($smarty.request.egal2) eq '<'}<{else}>{/if}" readonly="readonly" />
- <input type="text" name="promo2" size="4" maxlength="4" value="{$smarty.request.promo2}" />
+ {include file="include/select_promo.tpl" promo_data=$smarty.request egal1="egal1" egal2="egal2" promo1="promo1" promo2="promo2" edu_type="edu_type"}
</td>
</tr>
<tr>
</td>
</tr>
<tr>
+ <td>A une redirection active</td>
+ <td>
+ <table>
+ <tr>
+ <td style="width:100px">
+ <input type="radio" name="has_email_redirect" value="0" {if !$smarty.request.has_email_redirect}checked="checked"{/if}
+ id="has_email_redirect0" /><label for="has_email_redirect0">indifférent</label>
+ </td>
+ <td style="width:100px">
+ <input type="radio" name="has_email_redirect" value="1" {if $smarty.request.has_email_redirect eq 1}checked="checked"{/if}
+ id="has_email_redirect1" /><label for="has_email_redirect1">oui</label>
+ </td>
+ <td style="width:100px">
+ <input type="radio" name="has_email_redirect" value="2" {if $smarty.request.has_email_redirect eq 2}checked="checked"{/if}
+ id="has_email_redirect2" /><label for="has_email_redirect2">non</label>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
<td>En vie</td>
<td>
<table>
<th colspan="2">Géographie</th>
</tr>
<tr>
- <td>Ville ou code postal</td>
- <td><input type="text" class="autocomplete" name="city" size="32" value="{$smarty.request.city}" /></td>
- </tr>
- <tr>
- <td>Pays</td>
- <td>
- <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>
+ <td colspan="2" class="center"><small>Seuls les lieux où résident des camarades sont proposés ci-dessous.</small></td>
</tr>
- <tr id="region_ln">
- <td>Région ou département</td>
- <td>
- <input name="region" type="hidden" size="32" value="{$smarty.request.region}"/>
- </td>
+ {include file="search/adv.form.autocomplete_select.tpl" description="Pays" name="country"
+ value_text=$smarty.request.country_text value=$smarty.request.country title="Tous les pays"}
+ {include file="search/adv.form.address_component.tpl" description="Région, province, état…" name="administrative_area_level_1"
+ value=$smarty.request.administrative_area_level_1}
+ {include file="search/adv.form.address_component.tpl" description="Département, comté…" name="administrative_area_level_2"
+ value=$smarty.request.administrative_area_level_2}
+ <tr id="locality_text">
+ <td>Ville</td>
+ <td><input type="text" class="autocomplete" name="locality_text" size="32" value="{$smarty.request.locality_text}" /></td>
</tr>
+ {include file="search/adv.form.address_component.tpl" description="Ville" name="locality" value=$smarty.request.locality}
+ {include file="search/adv.form.address_component.tpl" description="Code postal" name="postal_code" value=$smarty.request.postal_code}
<tr>
<td colspan="2">
<label for="only_current">
<input name="only_current" id="only_current" type="checkbox"{if $smarty.request.only_current} checked="checked"{/if}/>
- Chercher uniquement les adresses où les camarades sont actuellement.
+ Chercher uniquement les adresses actuelles.
</label>
</td>
</tr>
</tr>
<tr>
<td>Description</td>
- <td><input type="text" class="autocomplete" name="description" size="32" value="{$smarty.request.description}" /></td>
- </tr>
- <tr>
- <td>Mots-clefs</td>
- <td>
- <input name="jobtermTxt" type="text" class="autocomplete{if $smarty.request.jobterm} hidden_valid{/if}" style="display:none" size="32"
- value="{$smarty.request.jobtermTxt}"/>
- <input name="jobterm" class="autocompleteTarget" type="hidden" value="{$smarty.request.jobterm}"/>
- <a href="jobterm" class="autocompleteToSelect">{icon name="table" title="Tous les mots-clefs"}</a>
- </td>
+ <td><input type="text" class="autocomplete" name="jobdescription" size="32" value="{$smarty.request.jobdescription}" /></td>
</tr>
+ {include file="search/adv.form.autocomplete_select.tpl" description="Mots-clefs" name="jobterm"
+ value_text=$smarty.request.jobterm_text value=$smarty.request.jobterm title="Tous les mots-clefs"}
{if hasPerm('directory_private')}
<tr>
<td>CV contient</td>
<tr>
<th colspan="2">Divers</th>
</tr>
- <tr>
- <td>Nationalité</td>
- <td>
- <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>
- </tr>
+ {include file="search/adv.form.autocomplete_select.tpl" description="Nationalité" name="nationalite"
+ value_text=$smarty.request.nationalite_text value=$smarty.request.nationalite title="Toutes les nationalités"}
{if hasPerm('directory_private')}
- <tr>
- <td>Binet</td>
- <td>
- <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>
- </tr>
+ {include file="search/adv.form.autocomplete_select.tpl" description="Binet" name="binet"
+ value_text=$smarty.request.binet_text value=$smarty.request.binet title="Tous les binets"}
+ {/if}
+ {include file="search/adv.form.autocomplete_select.tpl" description="Groupe X" name="groupex"
+ value_text=$smarty.request.groupex_text value=$smarty.request.groupex title="Tous les groupes X"}
+ {if hasPerm('directory_private')}
+ {include file="search/adv.form.autocomplete_select.tpl" description="Section" name="section"
+ value_text=$smarty.request.section_text value=$smarty.request.section title="Toutes les sections"}
{/if}
+ {include file="search/adv.form.autocomplete_select.tpl" description="Formation" name="school"
+ value_text=$smarty.request.school_text value=$smarty.request.school title="Toutes les formations"}
<tr>
- <td>Groupe X</td>
+ <td>Diplôme</td>
<td>
- <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>
+ <input name="diploma" size="32" value="{$smarty.request.diploma}"/>
</td>
</tr>
- {if hasPerm('directory_private')}
<tr>
- <td>Section</td>
+ <td>Corps d'origine</td>
<td>
- <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>
+ <select name="origin_corps">
+ {foreach from=$origin_corps_list key=id item=corps}
+ <option value="{$id}" {if $smarty.request.origin_corps eq $id}selected="selected"{/if}>{$corps}</option>
+ {/foreach}
+ </select>
</td>
</tr>
- {/if}
<tr>
- <td>Formation</td>
+ <td>Corps actuel</td>
<td>
- <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>
+ <select name="current_corps">
+ {foreach from=$current_corps_list key=id item=corps}
+ <option value="{$id}" {if $smarty.request.current_corps eq $id}selected="selected"{/if}>{$corps}</option>
+ {/foreach}
+ </select>
</td>
</tr>
<tr>
- <td>Diplôme</td>
+ <td>Grade</td>
<td>
- <input name="diploma" size="32" value="{$smarty.request.diploma}"/>
+ <select name="corps_rank">
+ {foreach from=$corps_rank_list key=id item=corps}
+ <option value="{$id}" {if $smarty.request.corps_rank eq $id}selected="selected"{/if}>{$corps}</option>
+ {/foreach}
+ </select>
</td>
</tr>
<tr>
</table>
</td>
</tr>
- {if $smarty.session.auth ge AUTH_COOKIE}
+ {if hasPerm('admin,edit_directory')}
+ <tr>
+ <td>Matricule AX</td>
+ <td>
+ <textarea name="schoolid_ax" rows="10" cols="12">{$smarty.request.schoolid_ax}</textarea>
+ <br />
+ <i>Entrer une liste de matricules AX (un par ligne)</i>
+ </td>
+ </tr>
+ {/if}
+ {if $smarty.session.auth ge AUTH_COOKIE}
<tr>
<td colspan="2">
<input type='checkbox' name='order' value='date_mod' {if $smarty.request.order eq "date_mod"}checked='checked'{/if} id="order"/>
<label for="exact">Faire une recherche exacte.</label>
</td>
</tr>
- {/if}
+ {/if}
+ {if hasPerm('admin,edit_directory')}
+ <tr>
+ <td colspan="2">
+ <label><input type="checkbox" id="addresses_dump" onclick="addressesDump();" />Tableau des adresses postales.</label>
+ </td>
+ </tr>
+ {/if}
<tr><td colspan="2"></td></tr>
<tr>
<td colspan="2" style="text-align: center">