X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=htdocs%2Fjavascript%2Fprofile.js;h=8d1544ab2acc6fc0dda212fecea07411c3a7ae28;hb=9891bd15f772caef0c199a98f036e976bf4ab94a;hp=4e16e29e54882ae1f1d7f25bdd1cf4b0008f9046;hpb=92c3f9e5a1c480d9c25dd98aff56e792c378d0fe;p=platal.git diff --git a/htdocs/javascript/profile.js b/htdocs/javascript/profile.js index 4e16e29..8d1544a 100644 --- a/htdocs/javascript/profile.js +++ b/htdocs/javascript/profile.js @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2003-2008 Polytechnique.org * + * Copyright (C) 2003-2009 Polytechnique.org * * http://opensource.polytechnique.org/ * * * * This program is free software; you can redistribute it and/or modify * @@ -24,10 +24,15 @@ function wizPage_onLoad(id) { switch (id) { case 'general': - fillType(document.forms.prof_annu['appli1[type]'], document.forms.prof_annu['appli1[id]'].selectedIndex-1); - selectType(document.forms.prof_annu['appli1[type]'], document.forms.prof_annu['appli1_tmp'].value); - fillType(document.forms.prof_annu['appli2[type]'], document.forms.prof_annu['appli2[id]'].selectedIndex-1); - selectType(document.forms.prof_annu['appli2[type]'], document.forms.prof_annu['appli2_tmp'].value); + var i = 0; + var prefix = 'edu_'; + while ($('.' + prefix + i).length != 0) { + i++; + } + i--; + for (var j = 0; j < i; j++) { + prepareType(j); + } break; case 'poly': updateGroupSubLink(document.forms.prof_annu.groupesx_sub); @@ -46,68 +51,137 @@ function wizPage_onLoad(id) for (var i = 0 ; document.getElementById('job_' + i) != null ; ++i) { updateJobSecteur(i, 'job_' + i, 'jobs[' + i + ']', document.forms.prof_annu["jobs[" + i + "][ss_secteur]"].value); + updateJobSousSecteur(i, 'job_' + i, 'jobs[' + i + ']', + document.forms.prof_annu["jobs[" + i + "][sss_secteur]"].value); } - registerEnterpriseAutocomplete(-1); + setTimeout('registerEnterpriseAutocomplete(-1)', 100); break; } } -var applisType; -var applisTypeAll; +var educationDegree; +var educationDegreeAll; +var educationDegreeName; // General var subgrades; var names; -function fillType(selectCtrl, appli, fill) +function fillType(selectCtrl, edu, fill) { var i; - var i0=0; + var i0 = 0; - for (i = selectCtrl.options.length; i >=0; i--) { + for (i = selectCtrl.options.length; i >= 0; i--) { selectCtrl.options[i] = null; } - if (fill || appli <0) { + if (fill || edu < 0) { selectCtrl.options[0] = new Option(' '); - i0=1; + i0 = 1; + } + if (edu >= 0) { + for (i = 0; i < educationDegree[edu].length; i++) { + selectCtrl.options[i0 + i] = new Option(educationDegreeName[educationDegree[edu][i] - 1], educationDegree[edu][i]); + } + } else if (fill) { + for (i = 0; i < educationDegreeAll.length; i++) { + selectCtrl.options[i0 + i] = new Option(educationDegreeName[educationDegreeAll[i] - 1], educationDegreeAll[i]); + } } - if (appli>=0) - for (i=0; i < applisType[appli].length; i++) - selectCtrl.options[i0+i] = new Option(applisType[appli][i]); - else if (fill) - for (i=0; i < applisTypeAll.length; i++) - selectCtrl.options[i0+i] = new Option(applisTypeAll[i]); } function selectType(selectCtrl, type) { for (i = 0; i < selectCtrl.options.length; i++) { - if (selectCtrl.options[i].text == type) - selectCtrl.selectedIndex=i; + if (selectCtrl.options[i].value == type) { + selectCtrl.selectedIndex = i; + } } } +function prepareType(i) +{ + fillType(document.forms.prof_annu["edus[" + i + "][degreeid]"], document.forms.prof_annu["edus[" + i + "][eduid]"].selectedIndex - 1); + selectType(document.forms.prof_annu["edus[" + i + "][degreeid]"], document.forms.prof_annu["edu_" + i + "_tmp"].value); +} + +function displayNamesAdvanced() +{ + $('.names_advanced').show(); +} + function addSearchName() { - var i = 0; - while (document.getElementById('search_name_' + i) != null) { - i++; - } - $('#add_search_name').before('
'); - Ajax.update_html('search_name_' + i, 'profile/ajax/searchname/' + i,function(){ - $('#search_name_'+i+' input')[1].focus(); - }); + var i = 0; + while ($('#search_name_' + i).length != 0) { + i++; + } + Ajax.update_html('search_name_' + i, 'profile/ajax/searchname/' + i, function(data){ + $('#searchname').before(data); + changeNameFlag(i); + }); } function removeSearchName(i) { - if (document.getElementById('search_name_'+i+'_new') != null) { - $('#search_name_'+i).remove(); - } else { - removeObject('search_name_'+i, 'search_name['+i+']'); - } + $('#search_name_' + i).remove(); + updateNameDisplay(); +} + +function changeNameFlag(i) +{ + $('#flag_' + i).remove(); + var typeid = $('#search_name_' + i).find('select').val(); + var type = $('#search_name_' + i).find('select :selected').text(); + if ($('[@name=sn_type_' + typeid + '_' + i + ']').val() > 0) { + $('#flag_cb_' + i).after(' ' + + 'site public' + + '' + + '' + + ''); + } else { + $('#flag_cb_' + i).after(' ' + + 'site privé' + + '' + + ''); + } +} + +function updateNameDisplay() +{ + var searchnames = ''; + for (var i = 0; i < 10; i++) { + if ($('#search_name_' + i).find(':text').val()) { + searchnames += $('#search_name_' + i).find('[name*=typeid]').val() + ';'; + searchnames += $('#search_name_' + i).find(':checked').length-1 + ';'; + searchnames += $('#search_name_' + i).find(':text').val() + ';;'; + } + } + Ajax.update_html(null, 'profile/ajax/buildnames/' + searchnames, function(data){ + var name = data.split(';'); + $('#public_name').html(name[0]); + $('#private_name').html(name[0] + name[1]); + }); +} + +function delNationality(i) +{ + $('#nationalite' + i).hide().find('select').val(''); +} + +function addNationality() +{ + var i = 0; + if ($('#nationalite2').find('select').val() == "") { + i = 2; + } else if ($('#nationalite3').find('select').val() == "") { + i = 3; + } + if ((i == 2) || (i == 3)) { + $('#nationalite' + i).show(); + } } function addNetworking() @@ -237,18 +311,74 @@ function addAddress() Ajax.update_html('addresses_' + i + '_cont', 'profile/ajax/address/' + i, checkCurrentAddress); } -function addTel(id) +function addEdu() +{ + var i = 0; + var j = 0; + var prefix = 'edu_'; + var class_parity; + + while (!$('#edu_add').hasClass(prefix + i)) { + if ($('.' + prefix + i).length != 0) { + j++; + } + i++; + } + if (j % 2) { + class_parity = 'pair'; + } else { + class_parity = 'impair'; + } + $('#edu_add').removeClass(prefix + i); + i++; + $('#edu_add').addClass(prefix + i); + i--; + $.get(platal_baseurl + 'profile/ajax/edu/' + i + '/' + class_parity, + function(data) { + $('#edu_add').before(data); + prepareType(i); + }); +} + +function removeEdu(i) +{ + var prefix = 'edu_'; + $('.' + prefix + i).remove(); + while (!$('#edu_add').hasClass(prefix + i)) { + $('.' + prefix + i).toggleClass('pair'); + $('.' + prefix + i).toggleClass('impair'); + i++; + } +} + +function addTel(prefid, prefname) { var i = 0; - var adid = 'addresses_' + id; - var tel = adid + '_tel_'; - while (document.getElementById(tel + i) != null) { + var prefix = prefid + '_'; + while (document.getElementById(prefix + i) != null) { i++; } - $('#' + adid + '_add_tel').before('
'); - Ajax.update_html(tel + i, 'profile/ajax/tel/' + id + '/' + i); + $('#' + prefix + 'add').before('
'); + Ajax.update_html(prefix + i, 'profile/ajax/tel/' + prefid + '/' + prefname + '/' + i); +} + +function removeTel(id) +{ + $('#' + id).remove(); } +function addPhoneComment(id, pref) +{ + document.getElementById(id+'_comment').style.display = ''; + document.getElementById(id+'_addComment').style.display = 'none'; +} + +function removePhoneComment(id, pref) +{ + document.getElementById(id+'_comment').style.display = 'none'; + document.forms.prof_annu[pref+ '[comment]'].value = ''; + document.getElementById(id+'_addComment').style.display = ''; +} // Geoloc @@ -260,8 +390,7 @@ function validGeoloc(id, pref) document.forms.prof_annu[pref + "[parsevalid]"].value = "1"; document.forms.prof_annu[pref + "[text]"].value = document.forms.prof_annu[pref + "[geoloc]"].value; document.forms.prof_annu[pref + "[cityid]"].value = document.forms.prof_annu[pref + "[geoloc_cityid]"].value; - attachEvent(document.forms.prof_annu[pref + "[text]"], "click", - function() { document.forms.prof_annu[pref + "[text]"].blur(); }); + $(document.forms.prof_annu[pref + "[text]"]).click(function() { document.forms.prof_annu[pref + "[text]"].blur(); }); document.forms.prof_annu[pref + "[text]"].className = ''; } @@ -271,8 +400,7 @@ function validAddress(id, pref) document.getElementById(id + '_geoloc_error').style.display = 'none'; document.getElementById(id + '_geoloc_valid').style.display = 'none'; document.forms.prof_annu[pref + "[parsevalid]"].value = "1"; - attachEvent(document.forms.prof_annu[pref + "[text]"], "click", - function() { document.forms.prof_annu[pref + "[text]"].blur(); }); + $(document.forms.prof_annu[pref + "[text]"]).click(function() { document.forms.prof_annu[pref + "[text]"].blur(); }); document.forms.prof_annu[pref + "[text]"].className = ''; } @@ -414,7 +542,22 @@ function updateJobSecteur(nb, id, pref, sel) if (secteur == '') { secteur = '-1'; } - Ajax.update_html(id + '_ss_secteur', 'profile/ajax/secteur/' +nb + '/' + secteur + '/' + sel); + Ajax.update_html(id + '_ss_secteur', 'profile/ajax/secteur/' + nb + '/' + id + '/' + pref + '/' + secteur + '/' + sel); +} + +function updateJobSousSecteur(nb, id, pref, sel) +{ + var ssecteur = document.forms.prof_annu[pref + '[ss_secteur]'].value; + if (ssecteur == '') { + ssecteur = '-1'; + } + Ajax.update_html(id + '_sss_secteur', 'profile/ajax/ssecteur/' + nb + '/' + ssecteur + '/' + sel); +} + +function displayAllSector(id) +{ + $('.sector_text_' + id).remove(); + $('.sector_' + id).show(); } function makeAddJob(id) @@ -436,6 +579,10 @@ function addJob() $.get(platal_baseurl + 'profile/ajax/job/' + i, makeAddJob(i)); } +function addEntreprise(id) +{ + $('.entreprise_' + id).toggle(); +} // Skills @@ -530,13 +677,13 @@ function updateSecteur() document.getElementById('ss_secteur_sel').innerHTML = ''; return; } - $.get(platal_baseurl + 'profile/ajax/secteur/-1/' + secteur, + $.get(platal_baseurl + 'profile/ajax/secteur/-1/0/0/' + secteur, function(data) { - data = '' + data; - document.getElementById('ss_secteur_sel').innerHTML = data; - attachEvent(document.forms.prof_annu['jobs[-1][ss_secteur]'], 'change', updateSSecteur); + data = '' + data; + document.getElementById('ss_secteur_sel').innerHTML = data; + $(document.forms.prof_annu['jobs[-1][ss_secteur]']).change(updateSSecteur); }); } @@ -582,6 +729,20 @@ function registerEnterpriseAutocomplete(id) } } ); + + $(".sector_name").each( + function() { + if (id == -1 || this.name == "jobs[" + id + "][sss_secteur_name]") { + $(this).autocomplete(platal_baseurl + "search/autocomplete/sss_secteur", + { + selectOnly:1, + field:this.name, + matchSubset:0, + width:$(this).width() + }); + } + } + ); } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: