Commit | Line | Data |
---|---|---|
46ae38a9 | 1 | /*************************************************************************** |
9f5bd98e | 2 | * Copyright (C) 2003-2010 Polytechnique.org * |
46ae38a9 FB |
3 | * http://opensource.polytechnique.org/ * |
4 | * * | |
5 | * This program is free software; you can redistribute it and/or modify * | |
6 | * it under the terms of the GNU General Public License as published by * | |
7 | * the Free Software Foundation; either version 2 of the License, or * | |
8 | * (at your option) any later version. * | |
9 | * * | |
10 | * This program is distributed in the hope that it will be useful, * | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
13 | * GNU General Public License for more details. * | |
14 | * * | |
15 | * You should have received a copy of the GNU General Public License * | |
16 | * along with this program; if not, write to the Free Software * | |
17 | * Foundation, Inc., * | |
18 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * | |
19 | ***************************************************************************/ | |
20 | ||
8c7ac79e | 21 | // Page initialization {{{1 |
46ae38a9 FB |
22 | |
23 | function wizPage_onLoad(id) | |
24 | { | |
25 | switch (id) { | |
26 | case 'general': | |
6505acf7 SJ |
27 | var i = 1; |
28 | while ($('.edu_' + i).length != 0) { | |
29 | prepareType(i - 1); | |
30 | ++i; | |
043bbacf | 31 | } |
46ae38a9 | 32 | break; |
041a5cec SJ |
33 | case 'adresses': |
34 | checkCurrentAddress(); | |
35 | break; | |
46ae38a9 | 36 | case 'poly': |
6505acf7 | 37 | updateGroupSubLink(); |
46ae38a9 FB |
38 | break; |
39 | case 'deco': | |
40 | for (var i in names) { | |
6505acf7 SJ |
41 | if ($('#medal_' + i).length != 0) { |
42 | getMedalName(i); | |
43 | buildGrade(i, $('#medal_' + i).find('[name*=medal_' + i + '_grade]').val()); | |
46ae38a9 FB |
44 | } |
45 | } | |
46 | break; | |
47 | case 'emploi': | |
6505acf7 | 48 | for (var i = 0 ; $('#job_' + i).length != 0; ++i) { |
541e8d03 | 49 | updateJobSector(i, $('#job_' + i).find("[name='jobs[" + i + "][subSector]']").val()); |
2992a284 | 50 | updateJobSubSector(i, $('#job_' + i).find("[name='jobs[" + i + "][subSubSector]']").val()); |
07e72582 | 51 | updateJobAlternates(i); |
46ae38a9 FB |
52 | } |
53 | break; | |
54 | } | |
55 | } | |
56 | ||
f711b03f SJ |
57 | var educationDegree; |
58 | var educationDegreeAll; | |
59 | var educationDegreeName; | |
46ae38a9 FB |
60 | var subgrades; |
61 | var names; | |
8c7ac79e | 62 | |
8c7ac79e SJ |
63 | // Names {{{1 |
64 | ||
e1082e20 | 65 | function toggleNamesAdvanced() |
6e32823c | 66 | { |
e1082e20 | 67 | $('.names_advanced').toggle(); |
6e32823c SJ |
68 | } |
69 | ||
04e200e0 | 70 | function addSearchName(isFemale) |
b04882ff | 71 | { |
6e32823c SJ |
72 | var i = 0; |
73 | while ($('#search_name_' + i).length != 0) { | |
74 | i++; | |
75 | } | |
04e200e0 | 76 | Ajax.update_html('search_name_' + i, 'profile/ajax/searchname/' + i + '/' + isFemale, function(data){ |
6e32823c SJ |
77 | $('#searchname').before(data); |
78 | changeNameFlag(i); | |
79 | }); | |
b04882ff | 80 | } |
46ae38a9 | 81 | |
e8a7cf31 | 82 | function removeSearchName(i, isFemale) |
b04882ff | 83 | { |
6e32823c | 84 | $('#search_name_' + i).remove(); |
e8a7cf31 | 85 | updateNameDisplay(isFemale); |
6e32823c SJ |
86 | } |
87 | ||
88 | function changeNameFlag(i) | |
89 | { | |
90 | $('#flag_' + i).remove(); | |
91 | var typeid = $('#search_name_' + i).find('select').val(); | |
92 | var type = $('#search_name_' + i).find('select :selected').text(); | |
6505acf7 | 93 | if ($('[name=sn_type_' + typeid + '_' + i + ']').val() > 0) { |
6e32823c SJ |
94 | $('#flag_cb_' + i).after('<span id="flag_' + i + '"> ' + |
95 | '<img src="images/icons/flag_green.gif" alt="site public" title="site public" />' + | |
96 | '<input type="hidden" name="search_names[' + i + '][pub]" value="1"/>' + | |
97 | '<input type="hidden" name="search_names[' + i + '][typeid]" value="' + typeid + '"/>' + | |
98 | '<input type="hidden" name="search_names[' + i + '][type]" value="' + type + '"/></span>'); | |
99 | } else { | |
100 | $('#flag_cb_' + i).after('<span id="flag_' + i + '"> ' + | |
101 | '<img src="images/icons/flag_red.gif" alt="site privé" title="site privé" />' + | |
102 | '<input type="hidden" name="search_names[' + i + '][typeid]" value="' + typeid + '"/>' + | |
103 | '<input type="hidden" name="search_names[' + i + '][type]" value="' + type + '"/></span>'); | |
104 | } | |
105 | } | |
106 | ||
e8a7cf31 | 107 | function updateNameDisplay(isFemale) |
6e32823c SJ |
108 | { |
109 | var searchnames = ''; | |
110 | for (var i = 0; i < 10; i++) { | |
111 | if ($('#search_name_' + i).find(':text').val()) { | |
112 | searchnames += $('#search_name_' + i).find('[name*=typeid]').val() + ';'; | |
6e32823c SJ |
113 | searchnames += $('#search_name_' + i).find(':text').val() + ';;'; |
114 | } | |
115 | } | |
e8a7cf31 | 116 | Ajax.update_html(null, 'profile/ajax/buildnames/' + searchnames + '/' + isFemale, function(data){ |
6e32823c SJ |
117 | var name = data.split(';'); |
118 | $('#public_name').html(name[0]); | |
119 | $('#private_name').html(name[0] + name[1]); | |
120 | }); | |
b04882ff | 121 | } |
46ae38a9 | 122 | |
09f9ebea SJ |
123 | function toggleParticle(id) |
124 | { | |
125 | if ($('#search_name_' + id).find("[name*='[particle]']").val() == '') { | |
126 | $('#search_name_' + id).find("[name*='[particle]']").val(1); | |
127 | } else { | |
128 | $('#search_name_' + id).find("[name*='[particle]']").val(''); | |
129 | } | |
130 | } | |
131 | ||
7e233317 SJ |
132 | // Promotions {{{1 |
133 | ||
134 | function togglePromotionEdition() | |
135 | { | |
136 | $(".promotion_edition").toggle(); | |
137 | } | |
138 | ||
8c7ac79e SJ |
139 | // Nationalities {{{1 |
140 | ||
8450c2aa SJ |
141 | function delNationality(i) |
142 | { | |
7996ae8c | 143 | $('#nationality' + i).hide().find('select').val(''); |
8450c2aa SJ |
144 | } |
145 | ||
146 | function addNationality() | |
147 | { | |
148 | var i = 0; | |
323b972d | 149 | if ($('#nationality2').find('select').val() == "") { |
8450c2aa | 150 | i = 2; |
323b972d | 151 | } else if ($('#nationality3').find('select').val() == "") { |
8450c2aa SJ |
152 | i = 3; |
153 | } | |
154 | if ((i == 2) || (i == 3)) { | |
323b972d | 155 | $('#nationality' + i).show(); |
8450c2aa SJ |
156 | } |
157 | } | |
158 | ||
6505acf7 SJ |
159 | // Education {{{1 |
160 | ||
161 | function prepareType(id) | |
162 | { | |
163 | var edu = $('.edu_' + id).find("[name='edus[" + id + "][eduid]']").val() - 1; | |
164 | var sel = $('.edu_' + id).find('[name=edu_' + id + '_tmp]').val(); | |
165 | var html = ''; | |
166 | var length = educationDegree[edu].length; | |
167 | for (i = 0; i < length; ++i) { | |
168 | html += '<option value="' + educationDegree[edu][i] + '"'; | |
169 | if (sel == educationDegree[edu][i]) { | |
170 | html += ' selected="selected"'; | |
171 | } | |
172 | html += '>' + educationDegreeName[educationDegree[edu][i] - 1] + '</option>'; | |
173 | } | |
174 | $('.edu_' + id).find("[name='edus[" + id + "][degreeid]']").html(html); | |
175 | } | |
176 | ||
177 | function addEdu() | |
178 | { | |
179 | var i = 0; | |
180 | var j = 0; | |
181 | var prefix = 'edu_'; | |
182 | var class_parity; | |
183 | ||
184 | while (!$('#edu_add').hasClass(prefix + i)) { | |
185 | if ($('.' + prefix + i).length != 0) { | |
186 | j++; | |
187 | } | |
188 | i++; | |
189 | } | |
190 | if (j % 2) { | |
191 | class_parity = 'pair'; | |
192 | } else { | |
193 | class_parity = 'impair'; | |
194 | } | |
195 | $('#edu_add').removeClass(prefix + i); | |
196 | i++; | |
197 | $('#edu_add').addClass(prefix + i); | |
198 | i--; | |
199 | $.get(platal_baseurl + 'profile/ajax/edu/' + i + '/' + class_parity, | |
200 | function(data) { | |
201 | $('#edu_add').before(data); | |
202 | prepareType(i); | |
203 | }); | |
204 | } | |
205 | ||
206 | function removeEdu(i) | |
207 | { | |
208 | var prefix = 'edu_'; | |
209 | $('.' + prefix + i).remove(); | |
210 | while (!$('#edu_add').hasClass(prefix + i)) { | |
211 | $('.' + prefix + i).toggleClass('pair'); | |
212 | $('.' + prefix + i).toggleClass('impair'); | |
213 | i++; | |
214 | } | |
215 | } | |
216 | ||
8c7ac79e SJ |
217 | // Networking {{{1 |
218 | ||
d1a2252a GB |
219 | function addNetworking() |
220 | { | |
221 | var i = 0; | |
6505acf7 | 222 | while ($('#networking_' + i).length != 0) { |
d1a2252a GB |
223 | i++; |
224 | } | |
92c3f9e5 | 225 | var namefirst = ''; |
d1a2252a | 226 | var html = '<tr id="networking_' + i + '">' |
92c3f9e5 GB |
227 | + ' <td colspan="2">' |
228 | + ' <div style="float: left; width: 200px;">' | |
229 | + ' <span class="flags">' | |
230 | + ' <input type="checkbox" name="networking[' + i + '][pub]"/>' | |
231 | + ' <img src="images/icons/flag_green.gif" alt="site public" title="site public">' | |
232 | + ' </span> ' | |
6505acf7 | 233 | + ' <select name="networking[' + i + '][type]" onchange="javascript:updateNetworking(' + i + ');">'; |
92c3f9e5 GB |
234 | for (nw in nw_list) { |
235 | if (namefirst == '') { | |
236 | namefirst = nw; | |
237 | } | |
238 | html += ' <option value="' + nw_list[nw] + '">' + nw + '</option>'; | |
239 | } | |
240 | html += '</select>' | |
6505acf7 | 241 | + ' <input type="hidden" name="networking[' + i + '][name]" value="' + namefirst + '"/>' |
92c3f9e5 GB |
242 | + ' </div>' |
243 | + ' <div style="float: left">' | |
244 | + ' <input type="text" name="networking[' + i + '][address]" value="" size="30"/>' | |
245 | + ' <a href="javascript:removeNetworking(' + i + ')">' | |
246 | + ' <img src="images/icons/cross.gif" alt="cross" title="Supprimer cet élément"/>' | |
247 | + ' </a>' | |
248 | + ' </div>' | |
d1a2252a GB |
249 | + ' </td>' |
250 | + '</tr>'; | |
251 | ||
92c3f9e5 | 252 | $('#networking').before(html); |
d1a2252a GB |
253 | } |
254 | ||
255 | function removeNetworking(id) | |
256 | { | |
257 | $('#networking_' + id).remove(); | |
258 | } | |
259 | ||
92c3f9e5 | 260 | function updateNetworking(i) |
d1a2252a | 261 | { |
6505acf7 | 262 | $('#networking_' + i).find("[name='networking[" + i + "][name]']").val($('#networking_' + i).find('select option:selected').text()); |
d1a2252a GB |
263 | } |
264 | ||
8c7ac79e | 265 | // Addresses {{{1 |
46ae38a9 | 266 | |
041a5cec | 267 | function toggleAddress(id, val) |
46ae38a9 | 268 | { |
041a5cec SJ |
269 | $('#addresses_' + id + '_grayed').toggle(); |
270 | $('#addresses_' + id).toggle(); | |
271 | $('#addresses_' + id + '_cont').find('[name*=removed]').val(val); | |
272 | checkCurrentAddress(); | |
46ae38a9 FB |
273 | } |
274 | ||
041a5cec | 275 | function checkCurrentAddress(id) |
46ae38a9 | 276 | { |
041a5cec | 277 | var hasCurrentAddress = id ? true : false; |
46ae38a9 | 278 | var i = 0; |
041a5cec SJ |
279 | while ($('#addresses_' + i + '_cont').length != 0) { |
280 | if ($('#addresses_' + i + '_cont').find('[name*=removed]').val() == 1) { | |
281 | $('#addresses_' + i + '_cont').find('[name*=current]').attr('checked', false); | |
282 | } | |
283 | if (!hasCurrentAddress && $('#addresses_' + i + '_cont').find('[name*=current]:checked').length != 0) { | |
284 | hasCurrentAddress = true; | |
285 | } else { | |
286 | $('#addresses_' + i + '_cont').find('[name*=current]').attr('checked', false); | |
46ae38a9 FB |
287 | } |
288 | i++; | |
289 | } | |
041a5cec | 290 | if (!hasCurrentAddress) { |
46ae38a9 | 291 | i = 0; |
041a5cec SJ |
292 | while ($('#addresses_' + i + '_cont').length != 0) { |
293 | if ($('#addresses_' + i + '_cont').find('[name*=removed]').val() == 0) { | |
294 | $('#addresses_' + i + '_cont').find('[name*=current]').attr('checked', 'checked'); | |
295 | break; | |
296 | } | |
297 | i++; | |
46ae38a9 FB |
298 | } |
299 | } | |
041a5cec SJ |
300 | if (id) { |
301 | $('#addresses_' + id + '_cont').find('[name*=current]').attr('checked', 'checked'); | |
46ae38a9 FB |
302 | } |
303 | } | |
304 | ||
46ae38a9 FB |
305 | function addAddress() |
306 | { | |
307 | var i = 0; | |
041a5cec | 308 | while ($('#addresses_' + i + '_cont').length != 0) { |
46ae38a9 FB |
309 | i++; |
310 | } | |
041a5cec SJ |
311 | $('#add_address').before('<div id="addresses_' + i + '_cont"></div>'); |
312 | Ajax.update_html('addresses_' + i + '_cont', 'profile/ajax/address/' + i, checkCurrentAddress()); | |
46ae38a9 FB |
313 | } |
314 | ||
541e8d03 | 315 | function addressChanged(prefid) |
043bbacf | 316 | { |
541e8d03 | 317 | $('#' + prefid + '_cont').find('[name*=changed]').val("1"); |
043bbacf SJ |
318 | } |
319 | ||
541e8d03 | 320 | function validGeoloc(prefid, id, geoloc) |
043bbacf | 321 | { |
041a5cec | 322 | if (geoloc == 1) { |
541e8d03 SJ |
323 | $('#' + prefid + '_cont').find('[name*=text]').val($('#' + prefid + '_cont').find('[name*=geoloc]').val()); |
324 | $('#' + prefid + '_cont').find('[name*=postalText]').val($('#' + prefid + '_cont').find('[name*=geocodedPostalText]').val()); | |
041a5cec | 325 | } |
5112531d | 326 | if (geoloc > 0) { |
541e8d03 | 327 | $('#' + prefid + '_cont').find("[name*='[geoloc]']").remove(); |
5112531d | 328 | } |
541e8d03 SJ |
329 | $('#' + prefid + '_cont').find('[name*=text]').removeClass('error'); |
330 | $('#' + prefid + '_cont').find('[name*=geoloc_choice]').val(geoloc); | |
331 | $('.' + prefid + '_geoloc').remove(); | |
043bbacf SJ |
332 | } |
333 | ||
8c7ac79e SJ |
334 | // {{{1 Phones |
335 | ||
bde2be3b | 336 | function addTel(prefid, prefname) |
46ae38a9 FB |
337 | { |
338 | var i = 0; | |
bde2be3b | 339 | var prefix = prefid + '_'; |
6505acf7 | 340 | while ($('#' + prefix + i).length != 0) { |
46ae38a9 FB |
341 | i++; |
342 | } | |
bde2be3b GB |
343 | $('#' + prefix + 'add').before('<div id="' + prefix + i + '" style="clear: both; padding-top: 4px; padding-bottom: 4px"></div>'); |
344 | Ajax.update_html(prefix + i, 'profile/ajax/tel/' + prefid + '/' + prefname + '/' + i); | |
46ae38a9 FB |
345 | } |
346 | ||
bde2be3b GB |
347 | function removeTel(id) |
348 | { | |
349 | $('#' + id).remove(); | |
350 | } | |
351 | ||
6505acf7 | 352 | function addPhoneComment(id) |
bde2be3b | 353 | { |
3cd815ca SJ |
354 | $('#' + id + '_comment').show(); |
355 | $('#' + id + '_addComment').hide(); | |
bde2be3b GB |
356 | } |
357 | ||
358 | function removePhoneComment(id, pref) | |
359 | { | |
3cd815ca SJ |
360 | $('#' + id + '_comment').hide(); |
361 | $('#' + id + '_comment').find("[name='" + pref + "[comment]']").val(''); | |
362 | $('#' + id + '_addComment').show(); | |
bde2be3b | 363 | } |
46ae38a9 | 364 | |
6505acf7 | 365 | // {{{1 Groups |
46ae38a9 | 366 | |
6505acf7 | 367 | function addBinet() |
46ae38a9 | 368 | { |
6505acf7 SJ |
369 | var id = $('#binets_table').find('[name=binets_sel]').val(); |
370 | var text = $('#binets_table').find('select option:selected').text(); | |
371 | var html = '<tr id="binets_' + id + '">' | |
372 | + ' <td>' | |
373 | + ' <input type="hidden" name="binets[' + id + ']" value="' + text + '" />' | |
374 | + ' </td>' | |
375 | + ' <td>' | |
376 | + ' <div style="float: left; width: 70%">' | |
377 | + text | |
378 | + ' </div>' | |
9fce7016 | 379 | + ' <a href="javascript:removeElement(\'binets\',' + id + ')">' |
6505acf7 SJ |
380 | + ' <img src="images/icons/cross.gif" alt="cross" title="Supprimer ce groupe" />' |
381 | + ' </a>' | |
382 | + ' </td>' | |
383 | + '</tr>'; | |
384 | $('#binets_table').after(html); | |
385 | updateElement('binets'); | |
46ae38a9 FB |
386 | } |
387 | ||
6505acf7 | 388 | function updateGroupSubLink() |
46ae38a9 | 389 | { |
6505acf7 SJ |
390 | var href = $('[name*=groupesx_sub]').val() ? $('[name*=groupesx_sub]').val() : 'http://www.polytechnique.net'; |
391 | $('#groupesx_sub').attr('href', href); | |
46ae38a9 FB |
392 | } |
393 | ||
6505acf7 | 394 | // {{{1 Medals |
46ae38a9 FB |
395 | |
396 | function updateMedal() | |
397 | { | |
6505acf7 SJ |
398 | var val = $('#medals').find('[name*=medal_sel]').val(); |
399 | if (val && ($('#medal_' + val).length == 0)) { | |
400 | $('#medal_add').show(); | |
46ae38a9 | 401 | } else { |
6505acf7 | 402 | $('#medal_add').hide(); |
46ae38a9 FB |
403 | } |
404 | } | |
405 | ||
406 | function getMedalName(id) | |
407 | { | |
6505acf7 | 408 | $('#medal_name_' + id).html(names[id]); |
46ae38a9 FB |
409 | } |
410 | ||
411 | function buildGrade(id, current) | |
412 | { | |
413 | var grade; | |
414 | var subg = subgrades[id]; | |
415 | var obj = $('#medal_grade_' + id); | |
416 | if (!subg) { | |
417 | obj.prepend('<input type="hidden" name="medals[' + id + '][grade]" value="0" />'); | |
418 | } else { | |
419 | var html = 'Agrafe : <select name="medals[' + id + '][grade]">'; | |
420 | html += '<option value="0">Non précisée</option>'; | |
421 | for (grade = 0 ; grade < subg.length ; grade++) { | |
422 | html += '<option value="' + subg[grade][0] + '"'; | |
423 | if (subg[grade][0] == current) { | |
424 | html += ' selected="selected"'; | |
425 | } | |
426 | html += '>' + subg[grade][1] + '</option>'; | |
427 | } | |
428 | ||
429 | html += '</select>'; | |
430 | obj.prepend(html); | |
431 | } | |
432 | } | |
433 | ||
434 | function makeAddProcess(id) | |
435 | { | |
436 | return function(data) | |
437 | { | |
438 | $('#medals').after(data); | |
439 | updateMedal(); | |
440 | getMedalName(id); | |
441 | buildGrade(id, 0); | |
442 | }; | |
443 | } | |
444 | ||
445 | function addMedal() | |
446 | { | |
6505acf7 | 447 | var id = $('#medals').find('[name=medal_sel]').val(); |
46ae38a9 FB |
448 | $.get(platal_baseurl + 'profile/ajax/medal/' + id, makeAddProcess(id)); |
449 | } | |
450 | ||
451 | function removeMedal(id) | |
452 | { | |
453 | $("#medal_" + id).remove(); | |
454 | updateMedal(); | |
455 | } | |
456 | ||
8c7ac79e | 457 | // Jobs {{{1 |
46ae38a9 FB |
458 | |
459 | function removeJob(id, pref) | |
460 | { | |
6505acf7 | 461 | $('#' + id + '_cont').hide(); |
00ca8c09 | 462 | if ($('#' + id).find("[name='" + pref + "[new]']").val() == '0') { |
6505acf7 | 463 | $('#' + id + '_grayed').show(); |
00ca8c09 | 464 | $('#' + id + '_grayed_name').html($('#' + id).find("[name='" + pref + "[name]']").val()); |
46ae38a9 | 465 | } |
00ca8c09 | 466 | $('#' + id).find("[name='" + pref + "[removed]']").val('1'); |
46ae38a9 FB |
467 | } |
468 | ||
469 | function restoreJob(id, pref) | |
470 | { | |
6505acf7 SJ |
471 | $('#' + id + '_cont').show(); |
472 | $('#' + id + '_grayed').hide(); | |
00ca8c09 | 473 | $('#' + id).find("[name='" + pref + "[removed]']").val('0'); |
46ae38a9 FB |
474 | } |
475 | ||
6505acf7 | 476 | function updateJobSector(id, sel) |
46ae38a9 | 477 | { |
541e8d03 | 478 | var sector = $('#job_' + id).find("[name='jobs[" + id + "][sector]']").val(); |
6505acf7 SJ |
479 | if (sector == '') { |
480 | sector = '-1'; | |
46ae38a9 | 481 | } |
541e8d03 | 482 | Ajax.update_html('job_' + id + '_subSector', 'profile/ajax/sector/' + id + '/job_' + id + '/jobs[' + id + ']/' + sector + '/' + sel); |
c7139c07 SJ |
483 | } |
484 | ||
6505acf7 | 485 | function updateJobSubSector(id, sel) |
c7139c07 | 486 | { |
541e8d03 | 487 | var subSector = $('#job_' + id).find("[name='jobs[" + id + "][subSector]']").val(); |
6505acf7 SJ |
488 | if (subSector == '') { |
489 | subSector = '-1'; | |
c7139c07 | 490 | } |
541e8d03 | 491 | Ajax.update_html('job_' + id + '_subSubSector', 'profile/ajax/sub_sector/' + id + '/' + subSector + '/' + sel); |
c7139c07 SJ |
492 | } |
493 | ||
07e72582 SJ |
494 | function updateJobAlternates(id) |
495 | { | |
496 | var subSubSector = $('#job_' + id).find("[name='jobs[" + id + "][subSubSector]']").val(); | |
497 | if (subSubSector != '') { | |
498 | Ajax.update_html('job_' + id + '_alternates', 'profile/ajax/alternates/' + id + '/' + subSubSector); | |
499 | } | |
500 | } | |
501 | ||
4018b8ab SJ |
502 | function emptyJobSubSector(id) |
503 | { | |
504 | Ajax.update_html('job_' + id + '_subSubSector', 'profile/ajax/sub_sector/' + id + '/-1/-1'); | |
505 | } | |
506 | ||
507 | function emptyJobAlternates(id) | |
508 | { | |
509 | Ajax.update_html('job_' + id + '_alternates', 'profile/ajax/alternates/' + id + '/-1'); | |
510 | } | |
511 | ||
b814a8b8 | 512 | function displayAllSector(id) |
c7139c07 | 513 | { |
b814a8b8 SJ |
514 | $('.sector_text_' + id).remove(); |
515 | $('.sector_' + id).show(); | |
46ae38a9 FB |
516 | } |
517 | ||
518 | function makeAddJob(id) | |
519 | { | |
520 | return function(data) | |
521 | { | |
522 | $('#add_job').before(data); | |
16594a1a | 523 | registerEnterpriseAutocomplete(id); |
46ae38a9 FB |
524 | }; |
525 | } | |
526 | ||
527 | function addJob() | |
528 | { | |
529 | var i = 0; | |
6505acf7 | 530 | while ($('#job_' + i).length != 0) { |
46ae38a9 FB |
531 | ++i; |
532 | } | |
533 | $.get(platal_baseurl + 'profile/ajax/job/' + i, makeAddJob(i)); | |
534 | } | |
535 | ||
b814a8b8 SJ |
536 | function addEntreprise(id) |
537 | { | |
538 | $('.entreprise_' + id).toggle(); | |
539 | } | |
46ae38a9 | 540 | |
8c7ac79e | 541 | // {{{1 Skills |
46ae38a9 | 542 | |
46ae38a9 FB |
543 | function addSkill(cat) |
544 | { | |
6505acf7 SJ |
545 | var val = $('#' + cat + '_table').find('[name=' + cat + '_sel]').val(); |
546 | var text = $('#' + cat + '_table').find('[name=' + cat + '_sel] :selected').text(); | |
46ae38a9 FB |
547 | $.get(platal_baseurl + 'profile/ajax/skill/' + cat + '/' + val, |
548 | function(data) { | |
6505acf7 SJ |
549 | $('#' + cat).append(data); |
550 | $('#' + cat + '_' + val + '_title').text(text); | |
551 | updateElement(cat); | |
46ae38a9 FB |
552 | }); |
553 | } | |
554 | ||
6505acf7 | 555 | // {{{1 Mentor |
46ae38a9 FB |
556 | |
557 | function addCountry() | |
558 | { | |
6505acf7 SJ |
559 | var val = $('#countries_table').find('[name=countries_sel] :selected').val(); |
560 | var text = $('#countries_table').find('[name=countries_sel] :selected').text(); | |
46ae38a9 | 561 | var html = '<div id="countries_' + val + '" style="clear: both; margin-bottom: 0.7em">' |
9fce7016 | 562 | + ' <a href="javascript:removeElement(\'countries\',\'' + val + '\')" style="display: block; float:right">' |
46ae38a9 FB |
563 | + ' <img src="images/icons/cross.gif" alt="" title="Supprimer ce pays" />' |
564 | + ' </a>' | |
1d414e12 PC |
565 | + ' <div style="float: left; width: 50%">' + text + '</div>' |
566 | + ' <input type="hidden" name="countries[' + val + ']" value="' + text + '" />' | |
46ae38a9 FB |
567 | + '</div>'; |
568 | $('#countries').append(html); | |
6505acf7 | 569 | updateElement('countries'); |
46ae38a9 FB |
570 | } |
571 | ||
6505acf7 | 572 | function updateSubSector() |
46ae38a9 | 573 | { |
541e8d03 | 574 | var s = $('#sectorSelection').find('[name=sectorSelection]').val(); |
bdc3d2e9 | 575 | var ss = $('#subSectorSelection').find("[name='jobs[-1][subSector]']").val(); |
541e8d03 SJ |
576 | if ((s == '' || ss == '') || $('#sectors_' + s + '_' + ss).length != 0) { |
577 | $('#addSector').hide(); | |
6505acf7 | 578 | } else { |
541e8d03 | 579 | $('#addSector').show(); |
6505acf7 | 580 | } |
46ae38a9 | 581 | } |
6505acf7 SJ |
582 | |
583 | function removeSector(s, ss) | |
46ae38a9 | 584 | { |
541e8d03 | 585 | $('#sectors_' + s + '_' + ss).remove(); |
6505acf7 | 586 | updateSubSector(); |
46ae38a9 FB |
587 | } |
588 | ||
6505acf7 | 589 | function updateSector() |
46ae38a9 | 590 | { |
541e8d03 SJ |
591 | var sector = $('#sectorSelection').find('[name=sectorSelection]').val(); |
592 | if (sector == '') { | |
593 | sector = '-1'; | |
bdc3d2e9 | 594 | $('#subSectorSelection').html(''); |
76a2858c | 595 | return; |
46ae38a9 | 596 | } |
541e8d03 | 597 | $.get(platal_baseurl + 'profile/ajax/sector/-1/0/0/' + sector, |
46ae38a9 | 598 | function(data) { |
541e8d03 | 599 | data = '<a href="javascript:addSector()" style="display: none; float: right" id="addSector">' |
bdc3d2e9 | 600 | + ' <img src="images/icons/add.gif" alt="Ajouter ce secteur" title="Ajouter ce secteur" />' |
6505acf7 | 601 | + '</a>' + data; |
bdc3d2e9 SJ |
602 | $('#subSectorSelection').html(data); |
603 | $('#subSectorSelection').find("[name='jobs[-1][subSector]']").change(updateSubSector); | |
46ae38a9 FB |
604 | }); |
605 | } | |
606 | ||
6505acf7 | 607 | function addSector() |
46ae38a9 | 608 | { |
541e8d03 | 609 | var s = $('#sectorSelection').find('[name=sectorSelection]').val(); |
bdc3d2e9 SJ |
610 | var ss = $('#subSectorSelection').find("[name='jobs[-1][subSector]']").val(); |
611 | var sst = $('#subSectorSelection').find("[name='jobs[-1][subSector]'] :selected").text(); | |
46ae38a9 | 612 | |
541e8d03 | 613 | var html = '<div id="sectors_' + s + '_' + ss + '" style="clear: both; margin-top: 0.5em" class="titre">' |
9fce7016 | 614 | + ' <a href="javascript:removeSector(\'' + s + '\',\'' + ss + '\')" style="display: block; float: right">' |
6505acf7 SJ |
615 | + ' <img src="images/icons/cross.gif" alt="" title="Supprimer ce secteur" />' |
616 | + ' </a>' | |
541e8d03 | 617 | + ' <input type="hidden" name="sectors[' + s + '][' + ss + ']" value="' + sst + '" />' |
6505acf7 SJ |
618 | + ' ' + sst |
619 | + '</div>'; | |
541e8d03 | 620 | $('#sectors').append(html); |
6505acf7 | 621 | updateSubSector(); |
46ae38a9 FB |
622 | } |
623 | ||
16594a1a FB |
624 | function registerEnterpriseAutocomplete(id) |
625 | { | |
f3b2736f | 626 | $(".enterpriseName").each( |
16594a1a | 627 | function() { |
16594a1a FB |
628 | if (id == -1 || this.name == "jobs[" + id + "][name]") { |
629 | $(this).autocomplete(platal_baseurl + "search/autocomplete/entreprise", | |
630 | { | |
6505acf7 SJ |
631 | selectOnly:1, |
632 | field:this.name, | |
633 | matchSubset:0, | |
634 | width:$(this).width() | |
16594a1a FB |
635 | }); |
636 | } | |
6505acf7 | 637 | }); |
c7139c07 | 638 | |
f3b2736f | 639 | $(".sectorName").each( |
c7139c07 | 640 | function() { |
f3b2736f | 641 | if (id == -1 || this.name == "jobs[" + id + "][subSubSectorName]") { |
541e8d03 | 642 | $(this).autocomplete(platal_baseurl + "search/autocomplete/subSubSector", |
c7139c07 | 643 | { |
6505acf7 SJ |
644 | selectOnly:1, |
645 | field:this.name, | |
646 | matchSubset:0, | |
647 | width:$(this).width() | |
c7139c07 SJ |
648 | }); |
649 | } | |
6505acf7 SJ |
650 | }); |
651 | } | |
652 | ||
653 | // {{{1 Multiusage functions | |
654 | ||
655 | function updateElement(cat) | |
656 | { | |
657 | var val = $('#' + cat + '_table').find('[name=' + cat + '_sel]').val(); | |
658 | if (val == '' || $('#' + cat + '_' + val).length != 0) { | |
659 | $('#' + cat + '_add').hide(); | |
660 | } else { | |
661 | $('#' + cat + '_add').show(); | |
662 | } | |
663 | } | |
664 | ||
665 | function removeElement(cat, id) | |
666 | { | |
667 | $('#' + cat + '_' + id).remove(); | |
668 | updateElement(cat); | |
16594a1a FB |
669 | } |
670 | ||
46ae38a9 | 671 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: |