{**************************************************************************}
{* *}
-{* Copyright (C) 2003-2010 Polytechnique.org *}
+{* Copyright (C) 2003-2013 Polytechnique.org *}
{* http://opensource.polytechnique.org/ *}
{* *}
{* This program is free software; you can redistribute it and/or modify *}
Actuellement, {$mentors_number} mentors et référents se sont déclarés sur {#globals.core.sitename#}.
</p>
-{javascript name=ajax}
{javascript name=jquery.jstree}
{javascript name=jobtermstree}
<script type="text/javascript">//<![CDATA[
-var baseurl = platal_baseurl + "referent/";
+var baseurl = $.plURL("referent/");
{literal}
-var Ajax2 = new AjaxEngine();
-function setSector(sector)
+/** Hides or display tree of all job terms */
+function toggleJobTermsTree()
{
- if (sector == '') {
- document.getElementById('scat').style.display = 'none';
- document.getElementById('country').style.display = 'none';
- document.getElementById('keywords').style.display = 'none';
- document.getElementById('search_referent').disabled = 'disabled';
- } else {
- Ajax.update_html('ssect_chg', baseurl + 'ssect/' + sector);
- Ajax2.update_html('country_chg', baseurl + 'country/' + sector);
- document.getElementById('scat').style.display = '';
- document.getElementById('country').style.display = '';
- document.getElementById('keywords').style.display = '';
- document.getElementById('search_referent').disabled = '';
+ $('#mentoring_terms').closest('tr').toggle();
+ return false;
+}
+
+/** Function called by autocomplete when a term is selected */
+function selectJobTerm(id, value)
+{
+ if (value < 0) {
+ return;
}
+ chooseJobTermInTree(null, id, value);
}
-function setSSectors()
+/** Prepares display for a jobterm in select's dropdown
+ * @param row the returned row from ajax : text, nb, id
+ */
+function displayJobTerm(row)
{
- var sect = document.getElementById('sect_field').value;
- var ssect = document.getElementById('ssect_field').value;
- Ajax2.update_html('country_chg', baseurl + 'country/' + sect + '/' + ssect);
+ if (row[1] < 0) {
+ return '<em>... précise ta recherche ... <\/em>';
+ }
+ return row[0]+' ('+row[1]+' camarade'+((row[1] > 1)?'s':'')+')';
}
-function toggleJobTermsTree()
+/** Function called by job terms tree when an item is clicked */
+function chooseJobTermInTree(treeid, jtid, full_name)
{
- $('#mentoring_terms').closest('tr').toggle();
- return false;
+ $('#jobtermText').val(full_name);
+ $('#mentoring_terms').closest('tr').hide();
+ updateJobTerm(jtid, $('#country_chg select').val());
+}
+
+/** Changes job term and proposes the different countries linked */
+function updateJobTerm(jtid, country)
+{
+ $('#jobterm').val(jtid);
+ $('#country_chg').closest('tr').show();
+ $('#keywords').show();
+ $('#country_chg').load($.plURL('search/referent/countries/' + jtid), function(response, status, xhr) {
+ if (country) {
+ if (status != "error") {
+ $('#country_chg select').val(country);
+ }
+ }
+ });
+}
+
+/** Function called when validating form */
+function validateSearchForm(f)
+{
+ if (!f.jobterm.value) {
+ alert('Il faut choisir un mot clef avant de lancer la recherche.');
+ $('#jobtermText').val('').focus();
+ return false;
+ }
+ return true;
}
{/literal}
//]]></script>
-<form action="{$smarty.server.REQUEST_URI}" method="get">
- <table cellpadding="0" cellspacing="0" summary="Formulaire de recherche de referents" class="bicol">
+<form action="{$smarty.server.REQUEST_URI}" method="get" onsubmit="return validateSearchForm(this)">
+ <table cellpadding="0" cellspacing="0" summary="Formulaire de recherche de référents" class="bicol">
<tr class="impair">
<td class="titre">
Mot-clef :
</td>
<td>
- <input type="text" name="jobterm_text" id="term_search" size="32"/>
- <input type="hidden" name="jobterm" />
+ <input type="text" name="jobtermText" id="jobtermText" size="32" value="{$smarty.request.jobtermText}"/>
+ <input type="hidden" name="jobterm" id="jobterm" value="{$smarty.request.jobterm}"/>
<a id="jobTermsTreeToggle" href="#">{icon name=table title="Tous les mots-clefs"}</a>
</td>
</tr>
<div id="mentoring_terms"></div>
</td>
</tr>
+ <tr class="pair" style="display:none">
+ <td class="titre">
+ Pays bien connus du référent :
+ </td>
+ <td id="country_chg">
+ </td>
+ </tr>
+ <tr class="impair" style="display:none" id="keywords">
+ <td class="titre">
+ Expertise (recherche texte) :
+ </td>
+ <td>
+ <input type="text" value="{$smarty.request.expertise}" size="30" name="expertise" />
+ </td>
+ </tr>
</table>
<div class="center" style="margin-top: 1em;">
- <input id="search_referent" type="submit" value="Chercher" name="Chercher" />
+ <input id="search_referent" type="submit" value="Chercher" />
</div>
</form>
<script type="text/javascript">
{literal}
$(function() {
- createJobTermsTree('#mentoring_terms', 'profile/ajax/tree/jobterms/mentors', 'mentor', 'searchForJobTerm');
- $("#term_search").autocomplete(baseurl + "autocomplete",
- {
- "selectOnly":1,
- "matchSubset":0,
- "width":$("#term_search").width()
+ createJobTermsTree('#mentoring_terms', 'profile/ajax/tree/jobterms/mentors', 'mentor', 'chooseJobTermInTree');
+ $('#jobtermText').autocomplete({
+ source: $.plURL(baseurl + 'autocomplete'),
+ select: function(event, ui) {
+ selectJobTerm(ui.item.id, ui.item.value);
+ },
+ change: function(event, ui) {
+ if (ui.item != null && ui.item.field != null) {
+ $(this).val(ui.item.field);
+ }
+ }
});
$('#jobTermsTreeToggle').click(toggleJobTermsTree);
-});
{/literal}
+ {if $smarty.request.jobterm}
+ updateJobTerm("{$smarty.request.jobterm}", "{$smarty.request.country}");
+ {/if}
+{rdelim});
</script>
{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}