function load_advanced_search(request)
{
- $('.autocompleteTarget').hide();
+ $('.autocomplete_target').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()}
- );
+ width: $(this).width()
+ });
});
$('.autocomplete').change(function() { $(this).removeClass('hidden_valid'); });
}
}
- $(".autocomplete[name='schoolTxt']").change(function() { changeSchool('', ''); });
+ $(".autocomplete[name='school_text']").change(function() { changeSchool('', ''); });
changeSchool(request['school'], request['diploma']);
- $(".autocompleteToSelect").each(function() {
- var fieldName = $(this).attr('href');
+ $(".autocomplete_to_select").each(function() {
+ var field_name = $(this).attr('href');
- $(this).attr('href', baseurl + 'list/' + fieldName).click(function() {
- var oldval = $("input.autocompleteTarget[name='" + fieldName + "']")[0].value;
+ if ($(".autocomplete_target[name='" + field_name + "']").val()) {
+ display_list(field_name);
+ }
- $(".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);
- });
+ $(this).attr('href', baseurl + 'list/' + field_name).click(function() {
+ if ($(this).attr('title') == 'display') {
+ display_list(field_name);
+ } else {
+ var value = $("select[name='" + field_name + "']").val();
+ var text_value = $("select[name='" + field_name + "'] option:selected").text();
+ $('#' + field_name + '_list').html('');
+ $(".autocomplete[name='" + field_name + "_text']").show();
+ $('#' + field_name + '_table').attr('title', 'display');
+ if (value) {
+ $(".autocomplete_target[name='" + field_name + "']").val(value);
+ $(".autocomplete[name='" + field_name + "_text']").val(text_value).addClass('hidden_valid');
+ }
+ }
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('');
});
$('#only_referent').change(function() { changeOnlyReferent(); });
}
+function display_list(field_name)
+{
+ var value = $("input.autocomplete_target[name='" + field_name + "']").val();
+
+ $('#' + field_name + '_list').load(baseurl + 'list/' + field_name, {}, function(selectBox) {
+ $(".autocomplete_target[name='" + field_name + "']").val('');
+ $(".autocomplete[name='" + field_name + "_text']").hide().val('').removeClass('hidden_valid');
+ $("select[name='" + field_name + "']").val(value);
+ $('#' + field_name + '_table').attr('title', 'hide');
+ });
+}
+
// }}}
// {{{ Regexps to wipe out from search queries
{
$(".autocomplete[name='" + field + "']").removeClass('hidden_valid').val('').focus();
if (typeof(realfield) != 'undefined') {
- $(".autocompleteTarget[name='" + realfield + "']").val('');
+ $(".autocomplete_target[name='" + realfield + "']").val('');
}
return;
}
// when choosing autocomplete from list, must validate
function select_autocomplete(name)
{
- nameRealField = name.replace(/Txt$/, '');
+ nameRealField = name.replace(/_text$/, '');
// nothing to do if field is not a text field for a list
if (nameRealField == name) {
// When changing country or locality, open next address component.
if (nameRealField == 'country' || nameRealField == 'locality') {
return function(i) {
- nameRealField = name.replace(/Txt$/, '');
+ nameRealField = name.replace(/_text$/, '');
if (i.extra[0] < 0) {
cancel_autocomplete(name, nameRealField);
i.extra[1] = '';
if (nameRealField == 'school')
return function(i) {
if (i.extra[0] < 0) {
- cancel_autocomplete('schoolTxt', 'school');
+ cancel_autocomplete('school_text', '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$/, '');
+ nameRealField = this.field.replace(/_text$/, '');
if (i.extra[0] < 0) {
cancel_autocomplete(this.field, nameRealField);
return;
}
- $(".autocompleteTarget[name='"+nameRealField+"']").attr('value',i.extra[1]);
+ $(".autocomplete_target[name='" + nameRealField + "']").attr('value', i.extra[1]);
$(".autocomplete[name='"+this.field+"']").addClass('hidden_valid');
}
}
if (j == 3) {
$('tr#locality_text').hide()
- $("select[name='localityTxt']").attr('value', '');
+ $("select[name='locality_text']").attr('value', '');
}
$("[name='" + next_type + "']").parent().load(baseurl + 'list/' + next_type, { previous:prev_type, value:values[i] }, function() {
if (j == 3) {
$('tr#locality_text').hide();
- $("select[name='localityTxt']").attr('value', '');
+ $("select[name='locality_text']").attr('value', '');
}
$("[name='" + next_type + "']").parent().load(baseurl + 'list/' + next_type, { previous:prev_type, value:value }, function() {
$(".autocompleteTarget[name='school']").attr('value', schoolId);
if (schoolId) {
- $(".autocomplete[name='schoolTxt']").addClass('hidden_valid');
+ $(".autocomplete[name='school_text']").addClass('hidden_valid');
} else {
- $(".autocomplete[name='schoolTxt']").removeClass('hidden_valid');
+ $(".autocomplete[name='school_text']").removeClass('hidden_valid');
}
$("[name='diploma']").parent().load(baseurl + 'list/diploma/', { school:schoolId }, function() {
function searchForJobTerm(treeid, jtid, full_name)
{
$(".term_tree").remove();
- $("input[name='jobtermTxt']").val(full_name).addClass("hidden_valid").show();
+ $("input[name='jobterm_text']").val(full_name).addClass("hidden_valid").show();
$("input[name='jobterm']").val(jtid);
}
new UFBF_AddressIndex('administrative_area_level_3', 'Canton', 'ADMNISTRATIVEAREAS3'),
new UFBF_AddressIndex('administrative_area_level_2', 'Département', 'ADMNISTRATIVEAREAS2'),
new UFBF_AddressIndex('administrative_area_level_1', 'Région', 'ADMNISTRATIVEAREAS1'),
- new UFBF_AddressMixed('localityTxt', 'locality', 'Ville', 'LOCALITIES'),
- new UFBF_AddressMixed('countryTxt', 'country', 'Pays', 'COUNTRIES'),
+ new UFBF_AddressMixed('locality_text', 'locality', 'Ville', 'LOCALITIES'),
+ new UFBF_AddressMixed('country_text', 'country', 'Pays', 'COUNTRIES'),
new UFBF_JobCompany('entreprise', 'Entreprise'),
new UFBF_JobDescription('jobdescription', 'Fonction'),
new UFBF_CurrentCorps('current_corps', 'Corps actuel'),
new UFBF_CorpsRank('corps_rank', 'Grade'),
- new UFBF_Nationality('nationaliteTxt', 'nationalite', 'Nationalité'),
- new UFBF_Binet('binetTxt', 'binet', 'Binet'),
- new UFBF_Group('groupexTxt', 'groupex', 'Groupe X'),
- new UFBF_Section('sectionTxt', 'section', 'Section'),
+ new UFBF_Nationality('nationalite_text', 'nationalite', 'Nationalité'),
+ new UFBF_Binet('binet_text', 'binet', 'Binet'),
+ new UFBF_Group('groupex_text', 'groupex', 'Groupe X'),
+ new UFBF_Section('section_text', 'section', 'Section'),
- new UFBF_EducationSchool('schoolTxt', 'school', "École d'application"),
- new UFBF_EducationDegree('diplomaTxt', 'diploma', 'Diplôme'),
- new UFBF_EducationField('fieldTxt', 'field', "Domaine d'études"),
+ new UFBF_EducationSchool('school_text', 'school', "École d'application"),
+ new UFBF_EducationDegree('diploma_text', 'diploma', 'Diplôme'),
+ new UFBF_EducationField('field_text', 'field', "Domaine d'études"),
new UFBF_Comment('free', 'Commentaire'),
new UFBF_Phone('phone_number', 'Téléphone'),
}
$enums = array(
- 'binetTxt' => DirEnum::BINETS,
- 'groupexTxt' => DirEnum::GROUPESX,
- 'sectionTxt' => DirEnum::SECTIONS,
- 'networking_typeTxt' => DirEnum::NETWORKS,
- 'localityTxt' => DirEnum::LOCALITIES,
- 'countryTxt' => DirEnum::COUNTRIES,
- 'entreprise' => DirEnum::COMPANIES,
- 'jobtermTxt' => DirEnum::JOBTERMS,
- 'description' => DirEnum::JOBDESCRIPTION,
- 'nationaliteTxt' => DirEnum::NATIONALITIES,
- 'schoolTxt' => DirEnum::EDUSCHOOLS,
+ 'binet_text' => DirEnum::BINETS,
+ 'groupex_text' => DirEnum::GROUPESX,
+ 'section_text' => DirEnum::SECTIONS,
+ 'networking_type_text' => DirEnum::NETWORKS,
+ 'locality_text' => DirEnum::LOCALITIES,
+ 'country_text' => DirEnum::COUNTRIES,
+ 'entreprise' => DirEnum::COMPANIES,
+ 'jobterm_text' => DirEnum::JOBTERMS,
+ 'description' => DirEnum::JOBDESCRIPTION,
+ 'nationalite_text' => DirEnum::NATIONALITIES,
+ 'school_text' => DirEnum::EDUSCHOOLS,
);
if (!array_key_exists($type, $enums)) {
exit();
{* *}
{**************************************************************************}
-{if t($with_text_value)}
-<div>
-{/if}
<select name="{$name}"{if t($onchange)} onchange="{$onchange}"{/if}{if t($id)} id="{$id}"{/if}>
<option value=""> - </option>
{if $list}
{/iterate}
{/if}
</select>
-{if t($with_text_value)}
-<input type="hidden" value="" name="{$name}Txt" />
-</div>
-{/if}
{* vim:set et sws=2 sts=2 sw=2 enc=utf-8: *}
--- /dev/null
+{**************************************************************************}
+{* *}
+{* Copyright (C) 2003-2011 Polytechnique.org *}
+{* http://opensource.polytechnique.org/ *}
+{* *}
+{* This program is free software; you can redistribute it and/or modify *}
+{* it under the terms of the GNU General Public License as published by *}
+{* the Free Software Foundation; either version 2 of the License, or *}
+{* (at your option) any later version. *}
+{* *}
+{* This program is distributed in the hope that it will be useful, *}
+{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
+{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
+{* GNU General Public License for more details. *}
+{* *}
+{* You should have received a copy of the GNU General Public License *}
+{* along with this program; if not, write to the Free Software *}
+{* Foundation, Inc., *}
+{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
+{* *}
+{**************************************************************************}
+
+<td>{$description}</td>
+<td>
+ <span id="{$name}_list"></span>
+ <input name="{$name}_text" type="text" class="autocomplete" size="32" value="{$value_text}" />
+ <input name="{$name}" type="hidden" class="autocomplete_target" value="{$value}" />
+ <a href="{$name}" class="autocomplete_to_select" title="display" id="{$name}_table">
+ {icon name="table" title=$title}
+ </a>
+</td>
+
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
<td colspan="2" class="center"><small>Seuls les lieux où résident des camarades sont proposés ci-dessous.</small></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>
+ {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"}
</tr>
<tr id="administrative_area_level_1_list">
<td>Région, province, état…</td>
</tr>
<tr id="locality_text">
<td>Ville</td>
- <td><input type="text" class="autocomplete" name="localityTxt" size="32" value="{$smarty.request.localityTxt}" /></td>
+ <td><input type="text" class="autocomplete" name="locality_text" size="32" value="{$smarty.request.locality_text}" /></td>
</tr>
<tr id="locality_list">
<td>Ville</td>
<td><input type="text" class="autocomplete" name="jobdescription" size="32" value="{$smarty.request.jobdescription}" /></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>
+ {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"}
</tr>
{if hasPerm('directory_private')}
<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>
+ {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"}
</tr>
{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>
+ {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"}
</tr>
{/if}
<tr>
- <td>Groupe X</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>
- </td>
+ {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"}
</tr>
{if hasPerm('directory_private')}
<tr>
- <td>Section</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>
- </td>
+ {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"}
</tr>
{/if}
<tr>
- <td>Formation</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>
- </td>
+ {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>
<tr>
<td>Diplôme</td>