");
//console.log("input_type="+input_type);
//console.log("1- field_title="+field_title);
//if(field_title=="") console.log($(elem2));
errorText="Attenzione, '"+field_title+"' è un campo obbligatorio.";
$('.modal-body p').append("
");
field_title=$(elem2).parent().parent().prev().find(".col-sm-2").html();
errorText="Attenzione, il campo file di '"+field_title+"' è un campo obbligatorio.";
$('.modal-body p').append("
"+errorText+"
");
}
}
}
});
});
if($("input.city_list").length==0){
errorText="Attenzione, per salvare il curriculum devi selezionare almeno un comune nella sezione 'Seleziona i comuni in cui lavori'";
$('.city_select,.province_select').parent().addClass("has-error");
$('.modal-body p').append("
"+errorText+"
");
returnFunction = true;
}
//console.log($("input.pro_selection:checked").length);
if($("input.pro_selection:checked").length==0){
errorText="Attenzione, per salvare il curriculum devi selezionare almeno una professione nel tab 'Qualifiche'";
$('.modal-body p').append("
"+errorText+"
");
returnFunction = true;
}
//controllo esperienze - valorizzazione del campo mesi se valorrizata fascia oraria
for(var k=0; k"+errorText+"");
returnFunction = true;
}
}
}
}
if(returnFunction){
openPopup();
return false;
}
//console.log("lalalla");
confirm('Confermando aggiornerai il curriculum. Sei sicuro di voler procedere?').done(function(){
autoSave(user_code).done(function(){
semaforo_autosave=false;
manageCurriculum(user_code,0);
});
});
}
function clearTempStates(user_code){
var remoteUrl=remoteAPIurl+'/api/v1/profile/'+user_code+'/clear?api_token='+token;
$.ajax({
url: remoteUrl,
crossDomain: true,
type: "put",
//data: curriculumData,
dataType: 'json',
success: function(result, statusText, resObject){
//console.log("cleared states "+user_code);
},
error: function() { console.log('error'); }
});
}
var profession_list_change=false; //variabile che controlla se è cambiata la lista delle professioni
function manageCurriculum(user_code,mode){
var create_deferred = $.Deferred();
if(!mode) mode=0;
var professions=[];
var cities=[];
var inputs=[];
var checkboxes={};
//console.log("mode="+mode);
if(mode==0) showLoader();
//città
$("input.city_list").each(function(){
city_id=$(this).val();
cities.push(city_id);
});
//chiave valore per tutti gli input, da salvare in mongodb
$("body").find("[modified=1]").each(function(id,elem){
//console.log("1");
var icode = $(this).attr("code");
var modified = $(this).attr("modified");
//console.log("2");
//if(!modified) return true;
if(typeof icode !== typeof undefined && icode !== false){
//console.log("3");
if($(this).val()!=null) var ivalue = $(this).val();
else var ivalue="";
//console.log("4");
if($(elem).attr("type")=="hidden"){
ivalue=$(elem).attr("value");
}
//console.log("5");
if($(elem).attr("type")=="radio"){
if($(elem).prop("checked")==true){
inputs.push({
key: icode,
value: $(elem).attr("value")
});
//console.log("-------");
//console.log(inputs);
//return;
}
}else if($(elem).attr("type")=="checkbox"){
if($(elem).prop("checked")==true){
if(!checkboxes.hasOwnProperty(icode)) checkboxes[icode]="";
if(checkboxes[icode]!="") checkboxes[icode]+="," + $(elem).attr("value");
else checkboxes[icode]=$(elem).attr("value");
}else{
if(!checkboxes.hasOwnProperty(icode)) checkboxes[icode]="";
}
}else{
if($(elem).attr("type")!="file"){
inputs.push({
key: icode,
value: ivalue
});
}
else {
if($(elem).attr("video")=="video")
{
//PIPPO
if(ivalue!=""){
var filename=Math.random().toString(36).substring(7)+".mp4";
uploadFile(icode, ivalue, filename);
}
else {
var filename="";
}
inputs.push({
key: icode,
value: filename
})
//console.log(icode+ " "+ivalue);
}
}
}
//console.log("6");
}
});
$.each(checkboxes,function(id,elem){
inputs.push({
key: id,
value: elem
});
});
//console.log(checkboxes);
var professions=[]
//professioni
$("body").find(".pro_selection").each(function(){
if($(this).prop("checked")){
prof_id=$(this).parent().attr("id").replace("prof_","");
professions.push(prof_id);
}
});
//console.log("7");
var additionalPath="";
if(mode==0){
var curriculumData={
"professions": professions,
"fields": inputs,
"cities": cities
};
}else{
if(!profession_list_change){
//console.log(profession_list_change);
professions=[];
}
var curriculumData={
"professions": professions,
"fields": inputs
};
additionalPath="/autosave";
profession_list_change=false;
}
//console.log("8");
//console.log(curriculumData);
//creo il modello
//var user_code=null;
//var create_deferred = this.request.Deferred();
var remoteUrl=remoteAPIurl+'/api/v1/profile/'+user_code+additionalPath+'?api_token='+token;
//number_of_modifies=$("body").find("input[modified=1],select[modified=1],textarea[modified=1]").length;
/*if(number_of_modifies==0 && mode==1){
console.log("no modifies");
create_deferred.resolve();
return create_deferred;
}*/
//console.log(curriculumData);
//console.log(remoteUrl);
//return;
$.ajax({
url: remoteUrl,
crossDomain: true,
type: "post",
data: curriculumData,
dataType: 'json',
success: function(result, statusText, resObject){
if(result.data.fields!=undefined){
$.each(result.data.fields,function(id,elem){
var object_key=elem.key;
//console.log(object_key);
$("body").find("[code="+object_key+"]").removeAttr("modified");
});
}
//console.log(curriculumData);
//user_code=result.data.user_code;
//console.log('User created');
$('.no-internet').remove();
$('.blank1 button').removeAttr("disabled");
create_deferred.resolve();
if(mode==0) location.href="/workers/index.php?status=1";
},
error: function(xhr, ajaxOptions, thrownError) {
//console.log('error');
if($('.blank1 .no-internet').length==0) $('.blank1').append("Non c'è connessione! Per non perdere i dati non chiudere il browser e attendi il ripristino della rete. ");
$('.blank1 button').attr("disabled","disabled");
var resText=xhr.responseText;
resText=$(resText).find(".exception_message").html();
if(resText!="undefined" && xhr.status!=0){
//console.log(resText);
//console.log(xhr.status);
errorTrack(xhr.status+"@"+resText);
}
}
});
return create_deferred;
}
function checkTokenLock(user_code){
var create_deferred = $.Deferred();
var remoteUrl=remoteAPIurl+'/api/v1/profile/'+user_code+'/lock/check?api_token='+token;
$.ajax({
url: remoteUrl,
crossDomain: true,
type: "get",
//data: curriculumData,
dataType: 'json',
success: function(result, statusText, resObject){
//console.log("checked lock token");
$('.no-internet').remove();
$('.blank1 button').removeAttr("disabled");
status=result.data.status;
if(status==2){ //l'api token è diverso ma appartiene al mio utente
alertBlocked("Hai aperto il curriculum da un'altra finestra. A breve verrai rindirizzato alla home.").done(function(){
create_deferred.resolve(1);
return;
});
}else if(status==4){ //sono un operatore, e chi è in modifica è il candidato associato al cv
alertBlocked("Il curriculum attualmente è in modifica da parte del candidato a cui è associato. A breve verrai rindirizzato alla home.").done(function(){
create_deferred.resolve(1);
return;
});
}else if(status==6){ //sono un operatore, e chi è in modifica è un operatore con un ruolo maggiore al mio
alertBlocked("Il curriculum attualmente è in modifica da parte di un operatore tuo superiore. A breve verrai rindirizzato alla home.").done(function(){
//console.log("INSIDE STATUS = 6");
//console.log(create_deferred);
create_deferred.resolve(1);
return;
});
}else{
create_deferred.resolve(0);
return;
}
},
error: function() {
console.log('error');
if($('.blank1 .no-internet').length==0) $('.blank1').append("Non c'è connessione! Per non perdere i dati non chiudere il browser e attendi il ripristino della rete. ");
$('.blank1 button').attr("disabled","disabled");
}
});
return create_deferred;
}
function getCurriculumValues(user_code){
var create_deferred = $.Deferred();
$.ajax({
url: remoteAPIurl+'/api/v1/profile/'+user_code+'?api_token='+token,
crossDomain: true,
type: "get",
dataType: 'json',
success: function(result, statusText, resObject){
create_deferred.resolve(result.data);
}
});
return create_deferred;
}
function displayGroups(groups,where){
$.each(groups, function(id2,group){
if(group.master_id==null){
//if(group.model_id=="174") console.log(group.id);
var new_group="
"+group.title+"
";
$(where+' > .groups').append(new_group);
}else{
//if(group.model_id=="174") console.log(group.id);
var new_group="
"+group.title+"
";
//if(group.model_id=="174") console.log(".group[id="+group.master_id+"] > .groups");
$(".group[id="+group.master_id+"] > .groups").append(new_group);
}
$.each(group.inputs, function(id3,input){
//per saltare il video upload
if(input.code=="hl8201uo5hrrlai1sl7wjmch71fkaukrgstguo5z5wrq69szuzwem8vtabek6ycm") return true;
if(input.code=="men45avyx2guvwrnja8zhj3bjn2x2asopftupptnr9in69apjip02tblgejipb6e") return true;
$(".group[id="+group.id+"] > .group_inputs").append("");
displayInput(input,".input#"+input.id);
//console.log(input.type);
});
});
}
/*function getCities(province_slug){
if(!province_slug) province_slug="all";
var create_deferred = $.Deferred();
var token=localStorage.getItem('utoken');
$.ajax({
url: remoteAPIurl+'/api/v1/city?api_token='+token+"&slug="+province_slug,
crossDomain: true,
type: "get",
dataType: 'json',
success: function(result, statusText, resObject){
create_deferred.resolve(result);
},
error: function() { console.log('error'); }
});
return create_deferred;
}*/
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var provinces_list={};
var myProvincesList={};
var my_detailed_provinces_list={};
var first_set_provinces_list=true;
var curriculum_data;
var grantedCity=false;
var role_slug="";
var user_cities={};
var edit_user_cities={};
function displayCurriculum(user_code){
toggleDefaultLoader();
//recupera tutti i modelli
getAllModels().done(function(result){
getCurriculumValues(user_code).done(function(data){
curriculum_data=data;
var user_cities=data.cities;
var models=result;
//anagrafica
var destination='#registry';
$(destination).append("");
displayGroups(models[151].groups,destination);
//ucode è in headers.js, è lo slug del gestore che sta lavorando sul curriculum
//user_code invece è l'utente del curriculum
getUser(ucode).done(function(userResult){
getProvinces().done(function(provinceResult){
data=userResult.data;
role_slug=data.roles[0]["role_slug"];
//console.log(userResult);
//console.log(typeof(data.cities));
edit_user_cities=data.cities;
//console.log(myCities);
//console.log(typeof(myCities));
var new_group="
Seleziona i comuni in cui lavori
";
$('#registry > .groups').append(new_group);
//prelevo il ruolo
//CASO 1: sono super admin, super user o worker, vedo tutte le città e le provincie in select
if(role_slug=="super-admin" || role_slug=="super-user" || role_slug=="worker"){
//console.log("CASO 1");
$.each(provinceResult.data,function(id,province){
//if(typeof(provinces_list[province.slug])=="undefined") provinces_list[province.slug]=[];
provinces_list[province.slug]={name:province.name,cities:province.cities,tot:province.cities.length,tot_owned:0};
});
//var new_group="
Seleziona i comuni in cui lavori
";
//$('#registry > .groups').append(new_group);
edit_user_cities={};
displayProvinces('.group_provinces',provinceResult,0,edit_user_cities);
}else{
//CASO 2: tutti gli altri vedono solo le proprie città e provincie in select
//console.log("CASO 2");
//console.log("myCities="+myCities);
$.each(edit_user_cities,function(id,elem){
if(typeof(myProvincesList[elem.province_slug])=="undefined") myProvincesList[elem.province_slug]=0;
myProvincesList[elem.province_slug]++;
});
objectLength=Object.keys(myProvincesList).length;
//console.log(myProvincesList);
$.each(provinceResult.data,function(id,province){
//console.log(province.slug);
if(objectLength==0 || typeof(myProvincesList[province.slug])!="undefined"){
my_detailed_provinces_list[province.slug]={slug:province.slug,name:province.name,cities:province.cities,tot:province.cities.length,tot_owned:0};
}
provinces_list[province.slug]={name:province.name,cities:province.cities,tot:province.cities.length,tot_owned:0};
});
$.each(edit_user_cities,function(k1,v1){
//provinces_list[v1.province_slug].tot--;
my_detailed_provinces_list[v1.province_slug].tot_owned++;
//console.log(provinces_list[k1]);
});
if(objectLength==0) displayProvinces('.group_provinces',provinceResult,0,edit_user_cities);
else displayProvinces('.group_provinces',{data:my_detailed_provinces_list},0,edit_user_cities);
}
setTabAccordion("#registry");
//dati di fatturazione
var destination='#registry-2';
$(destination).append("");
var counter=0;
//var tot_groups=Object.keys(result.data.groups).length;
//console.log("---->"+tot_groups);
displayGroups(models[176].groups,destination);
//lingue
$('#languages').append("");
var counter=0;
var tot_groups=Object.keys(models[152].groups).length;
//console.log(models[152].groups);
$.each(models[152].groups, function(id2,group){
//if(group.inputs.length==0) return true;
if(counter==(tot_groups - 1)){
var new_group="
');
//var profession_id=$(this).attr("id").replace("pro_selection_","");
var profession_name=$(this).attr("name");
//recupero modello professione
$.each(models[153].groups, function(id2,group){
if(group.master_id==null){
var new_group="
"+group.title+"
";
$('#pro'+profession_id).append(new_group);
}else{
var new_group="
"+group.title+"
";
$('#pro'+profession_id+' .group#'+group.master_id+" > .groups").append(new_group);
}
$.each(group.inputs, function(id3,input){
var cloneInput = jQuery.extend(true, {}, input);
if(cloneInput.code.indexOf("P")==-1){
var temp_code=cloneInput.code+"P"+profession_id;
cloneInput.code=temp_code;
}
$('#pro'+profession_id+' .group#'+group.id+" > .group_inputs").append("");
displayInput(cloneInput,'#pro'+profession_id+" .input#"+cloneInput.id);
});
});
//recupero modello referenze lavorative
//conto quante referenze lavorative ha la scheda professionale in questione
//$('#pro'+profession_id).find("input, select, textarea").each(function(){
//});
var mainFilter="";
//console.log("-----------------");
var counter_master=0;
for(var i=0;i<3;i++){
counter_master=0;
$.each(models[154].groups, function(id2,group){
if(group.master_id==null){
counter_master++;
if(counter_master==1){
mainFilter="reference_"+getRandomInt(200,2000000000000000);
var new_group="
";
$('#pro'+profession_id).append("
"+group.title+(i+1)+"
");
$('#pro'+profession_id+" > ."+mainFilter+" .groups").append(new_group);
}
}else{
//gruppo non master
//gruppo non master e terminale, poichè ha almeno un input
if(group.inputs.length>0){
var new_group="
"+group.title+"
";
new_group+="
";
new_group+="";
new_group+="
";
new_group+="
";
$('#pro'+profession_id+' > .'+mainFilter+' .group#'+group.master_id+" > .groups").append(new_group);
}else{
var new_group="
");
//DA GESTIRE IL FATTO CHE NON POSSO CANCELLARE GLI ACCORPAMENTI CHE NON POSSIEDO COME GESTORE
if((typeof(myProvincesList[key])!="undefined" && my_detailed_provinces_list[key].tot_owned==my_detailed_provinces_list[key].tot) || grantedCity){
//console.log("inside");
$('li#'+li_id).append("");
}
$.each(value.cities,function(key2,value2){
var id2=value2.id;
//console.log("content="+id2);
$(".cities_list ul li#"+id2).remove();
if(id2!="all" && id2!=null && id2!="") $('#'+li_id).append("")
});
}
});
//itero sulle mie città per recuperare solo gli id
var myCitiesOnlyIds=[];
$.each(myCities,function(idc,city){
myCitiesOnlyIds.push(city.id);
});
//CASO 1: ci sono le mie città (sono un gestore)
if(!grantedCity){
//console.log("CASO 1");
$.each(data.cities, function(city_key,city_value){
if($('li#city_'+city_key).length==0 && $('.city_list[value='+city_key+']').length==0){
//console.log("before");
//console.log(city_value); //provinces_list
//console.log("after");
province_slug=city_value.province_slug;
$('.cities_list ul').append("
["+province_slug+"]"+city_value.name+"
");
if(myCitiesOnlyIds.indexOf(parseInt(city_value.id))>-1){
$("#city_"+city_value.id).append("");
}
}
});
}else{ //CASO 2: non ci sono: sono super user, super admin oppure candidato, le vedo e posso modificarle tutte.
$.each(data.cities, function(city_key,city_value){
if($(".city_list[value="+city_value.id+"]").length==0 && $("li#city_"+city_value.id).length==0 && $(".city_list[value="+city_value.id+"]").length==0){
province_slug=city_value.province_slug;
$('.cities_list ul').append("