/* CE SCRIPT SERT A AFFICHER TOUT LE FORMULAIRE D'AJOUT D'OBJET DANS SA LISTE DE COURSE Appel :
 
*/ sl_projet_state = true; sl_timer_autocomplete = 0; sl_autocomplete_open = false; // Verifie quelques infos // Projet_id if(!vn(sl_projet_id)) sl_projet_id = 0; // Projet_id if(!$(sl_box)) sl_projet_state = false; // Photo_id if(!vn(sl_photo_id)) sl_photo_id = 0; // Etape_id if(!vn(sl_etape_id)) sl_etape_id = 0; // Piece_id if(!vn(sl_piece_id)) sl_piece_id = 0; // Produit_id if(!vn(sl_produit_id)) { sl_produit_id = 0; sl_edit_produit = 0; } else { sl_edit_produit = 1; } // Pick if(sl_pick_photo != 1) sl_pick_photo = 0; // Fonctions function sl_add_print(step) { if(sl_projet_state) { $('#sl_add_pointer').remove(); // On vire le pointeur si il en reste un. console.log('sl_add_print '+step); if(step == 1) { // Step 1 : on lance le premier formulaire if(!vn(sl_projet_id)) { file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=get_projet_id', function() { ajax_projet = html; ajax_projet_id = parseInt(ajax_projet); if(!vn(ajax_projet_id)) { $(sl_box).html(ajax_projet); } else { sl_projet_id = ajax_projet_id; if(vn(sl_projet_id)) { if(vn(sl_produit_id)) sl_add_print(2); else { file2("//www.forumconstruire.com/recits/sl_add_ajax.php?projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id, function() { $(sl_box).html(html); }); } } } }); } if(vn(sl_projet_id)) { if(vn(sl_produit_id)) sl_add_print(2); else { file2("//www.forumconstruire.com/recits/sl_add_ajax.php?projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id, function() { $(sl_box).html(html); }); } } } else if(step == 2) { // Step 2 : Saisie des infos manuelles car pas de produit ET/OU pas assez d'infos file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_info&projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id+"&edit_produit="+sl_edit_produit, function() { $(sl_box).html(html); }); } else if(step == 3) { // Step 3 : Lien entre l'utilisateur et le produit file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_info_completaires&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id, function() { $(sl_box).html(html); autosize($('#sl_add_textarea_avis')); sl_add_display_piece(); sl_add_display_shop(); }); } else if(step == 35) { // Step 3,5 : Avis sur le magasin file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_avis_shop&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id, function() { data = html; if(data == '' || vn(data)) { sl_add_print(4); } else { $(sl_box).html(data); autosize($('#sl_add_textarea_avis')); } }); } else if(step == 4) { // Step 4 : Choix des photos file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=choix_photos&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&photo_id="+sl_photo_id, function() { data = html; $(sl_box).html(data); photo_id = $(data).find('img[photo_a_tagguer=1]').attr('photo_id'); $('#image_sladd_'+photo_id).load(function() { photo_get_tag(photo_id, '16', sl_produit_id, 1, 'sladd'); }) }); } else if(step == 5) { // Step 5 : C'est fini file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=confirm", function() { $(sl_box).html(html); }); } } } function sl_add_get_info(kelkoo_type, kelkoo_id) { if(kelkoo_type != 'ean' && kelkoo_type != 'kelkoo_id' && kelkoo_type != 'kelkoo_offer_id') return(0); $('#sl_autocomplete_box').hide(); // On va cherche chez kelkoo des infos sur le produit file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=info_produit_kelkoo&type='+kelkoo_type+'&id='+kelkoo_id, function() { data = html; if(vn(data)) { sl_produit_id = data; sl_add_print(3); } else { sl_add_print(2); } }); } function sl_add_autocomplete(div, url) { //alert('#'+div); if($('#'+div).length) { /*if($('#'+div).value.length <= 2) return('');*/ // On cree le nom du div divname = "sl_autocomplete_box"; // On regarde ou est le bloc "pere" offset = $('#'+div).offset(); pos_x = Math.round(offset.left); pos_y = Math.round(offset.top+$('#'+div).height()+10); // On cree le bloc texte_chargement = '
Chargement ...
'; if(!$("#"+divname).length) { $('body').append('
'+texte_chargement+'
'); } else { $('#'+divname).html(texte_chargement); } // On affiche le bloc $("#"+divname).show(); // On place le bloc $("#"+divname).css('position', 'absolute'); $("#"+divname).css('top',pos_y+'px'); $("#"+divname).css('left',pos_x+'px'); clearTimeout(sl_timer_autocomplete); sl_timer_autocomplete = setTimeout(function() { file2(url, function() { $("#"+divname).html(html) console.log('1 - '+pos_x); console.log('2 - '+$("#"+divname).width()); console.log('3 - '+ecran_larg); if(pos_x+$("#"+divname).width()>ecran_larg) { $("#"+divname).css('left', 'auto'); $("#"+divname).css('right',5); $("#"+divname).css('max-width', ecran_larg-10); } }); }, 500); sl_autocomplete_open = true; } } function sl_add_autocomplete_deplace_close() { // On cree le nom du div divname = "sl_autocomplete_box"; if(sl_autocomplete_open) { // On detruit le bloc $("#"+divname).remove(); clearTimeout(sl_timer_autocomplete); sl_autocomplete_open = false; } } function sl_add_record_produit() { // On enregistre le produit entré par l'utilisateur $('#sl_add_error_box').hide(); url = '//www.forumconstruire.com/recits/sl_add_ajax.php' data = 'content=record_produit&projet_id='+urlencode(sl_projet_id)+'&produit_id='+urlencode($('#sl_add_product input[name=produit_id]').val())+'&marque_id='+urlencode($('#sl_add_product input[name=marque_id]').val())+'&marque='+urlencode($('#sl_add_product input[name=marque]').val())+'&nom='+urlencode($('#sl_add_product input[name=modele]').val()); //alert(url); $.ajax({ type: "POST", xhrFields: { withCredentials: true }, url: url, data: data, success: function(html) { data = html; if(vn(data)) { // OK // On met a jour les variables sl_produit_id = data; // On passe à l'etape d'apres sl_add_print(3); } else { // Pas OK $('#sl_add_error_box').show(); } } }); } function sl_add_record_avis_commerce() { // On enregistre le produit entré par l'utilisateur url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=record_avis_shop'; data = 'commerce_id='+urlencode($('#sh_add_note_commerce input[name=commerce_id]').val())+'&projet_id='+urlencode($('#sh_add_note_commerce input[name=projet_id]').val())+'¬e='+urlencode($('#sh_add_note_commerce input[name=note]').val())+'&avis='+urlencode($('#sh_add_note_commerce textarea[name=avis]').val())+''; //alert(url); $.ajax({ type: "POST", xhrFields: { withCredentials: true }, url: url, data: data, success: function(data) { sl_add_print(4); } }); } function sl_add_record_produit_info() { // On enregistre les infos que l'utilisateur a saisi sur son lien avec le produit var chaine_url = '';; $('input:checked[name=piece_id]').each(function() { chaine_url += '&piece_id[]='+urlencode($(this).val()); }); // On verifie si c'est OK pour le shop commerce_id = $('#sl_add_commerce_id').val(); commerce_name = $('#sl_add_commerce_nom').val(); // On verifie la note avis = $('#sl_add_textarea_avis').val(); note = $('#sl_add_product input[name=note]').val(); if(avis != '' && !vn(note)) { alert('Vous avez donné votre avis, mais vous n\'avez pas donné de note au produit.\nCliquez sur le nombre d\'étoiles correspondant à la note que vous souhaitez donner.'); $('#sl_add_note_span').css('background', '#75BAFF'); $('#sl_add_note_span').css('padding', '3px'); $('#sl_add_note_span').css('border-radius', '2px'); } else { $('#sl_add_note_span').css('background', 'none'); $('#sl_add_note_span').css('padding', '0'); $('#sl_add_note_span').css('border-radius', '0'); url = '//www.forumconstruire.com/recits/sl_add_ajax.php'; post = 'content=record_produit_info_complementaire&produit_id='+sl_produit_id+'&projet_id='+sl_projet_id+'&etape_id='+urlencode($('#sl_add_etape_id option:selected').val())+chaine_url+'&shop_type_id='+urlencode($('#sl_add_type_lieu_achat option:selected').val())+'&commerce_id='+urlencode($('#sl_add_product input[name=commerce_id]').val())+'&prix='+urlencode($('#sl_add_product input[name=prix]').val())+'¬e='+urlencode(note)+'&avis='+urlencode(avis); $.ajax({ type: "POST", xhrFields: { withCredentials: true }, url: url, data: post, success: function(html) { data = html; if(vn(data)) { // OK // On met a jour les variables ok = data; // On passe à l'etape d'apres sl_add_print(35); } else { // Pas OK $('#sl_add_error_box').show(); } } }); } /*if(!vn(commerce_id) && commerce_name != '') { $('#sl_add_commerce_nom').val(''); if(!confirm('La saisie du nom du commerce est erroné. Souhaitez-vous valider tout de même votre saisie ?')) { return(false); } }*/ } function sl_add_display_piece() { /* GERE LE DISPLAY DES PIECES EN FONCTION DE l'ETAPE */ piece_need = $('#sl_add_etape_id option:selected').attr('piece_needed'); if(piece_need > 0) { //console.log(piece_need); $('.sl_add_piece_box').show(200); if(piece_need == 2) { $('#sl_add_piece_id').prop('required', true); console.log("required"); } else { $('#sl_add_piece_id').prop('required', false); } } else { $('.sl_add_piece_box').hide(200); }; } var sl_add_display_shop_need_shop = false; function sl_add_display_shop(shop_type_id) { shop_id_needed = $('#sl_add_type_lieu_achat option:selected').attr('demande_commerce'); console.log('need shop ? '+shop_id_needed); if(shop_id_needed == 1) { shop_type_id = $('#sl_add_type_lieu_achat option:selected').val(); file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=recherche_commerce&shop_type_id='+shop_type_id+"&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id, function() { $('.sl_add_produit_cell_commerce_hidden').fadeIn();$('#sl_add_lieu_box').html(html); }) sl_add_display_shop_need_shop = true; } else { $('.sl_add_produit_cell_commerce_hidden').hide(); $('#sl_add_lieu_box').html(''); sl_add_display_shop_need_shop = false; } } function sl_add_commerce_reel() { // Cette fonction affiche la liste des magasins correspondants ville_id = $('#sl_add_commerce_ville_id option:selected').val(); nom = $('#sl_add_commerce input[name=commerce_name]').val(); if(!vn(ville_id)) { $('#sl_add_commerce_ville_error_box').show('fast'); } else { file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=liste_commerce_google&nom='+urlencode(nom)+'&ville_id='+urlencode(ville_id), function() { data = html; if(data != '0') { // OK // On met a jour les variables $('#sl_autocomplete_box').html(data); } else { // Pas OK $('#sl_add_commerce_ville_error_box').show(); } }) } } function sl_add_commerce_online() { // Cette fonction affiche la liste des magasins correspondants url_commerce = $('#sl_add_url_commerce').val(); url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=add_commerce_online&url='+urlencode(url_commerce); $.ajax(url, { dataType: "json", xhrFields: { withCredentials: true }, success: function(data) { commerce_id = data["commerce_id"]; commerce_nom = data["commerce"]; if(vn(commerce_id)) { // OK // On met a jour les variables $('#sl_autocomplete_box').hide('fast'); $('#sl_add_commerce_nom').val(commerce_nom); $('#sl_add_commerce_id').val(commerce_id); } else { // Pas OK alert('Impossible de retrouver les informations de ce site internet.'); $('#sl_autocomplete_box').hide('fast'); $('#sl_add_commerce_nom').val(''); $('#sl_add_commerce_id').val('0'); } } }); } function sl_add_commerce_google(place_id) { if(place_id != '') { url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=commerce_google_info&place_id='+place_id; $.ajax(url, { dataType: "json", xhrFields: { withCredentials: true }, success: function(data) { commerce_id = data["commerce_id"]; commerce_nom = data["nom"]; if(vn(commerce_id)) { // OK caca $('#sl_autocomplete_box').hide('fast'); $('#sl_add_commerce_nom').val(commerce_nom); $('#sl_add_commerce_id').val(commerce_id); } else { // Pas OK alert('Impossible de retrouver les informations de ce commerce.'); $('#sl_autocomplete_box').hide('fast'); $('#sl_add_commerce_nom').val(''); $('#sl_add_commerce_id').val('0'); } } }); } } function sl_add_piece(projet_id, nom, type_id, surface) { url = '//www.forumconstruire.com/recits/ajax.php?content=add_piece&projet_id='+projet_id+'&nom='+nom+'&type_id='+type_id+'&surface='+surface; $.ajax(url, { xhrFields: { withCredentials: true }, success: function(data) { if(data == '1') { // OK sl_add_print(3); closeBox(''); } else { // Pas OK alert('Il manque quelque chose non ?'); } } }); } function sl_photo_next(start, etape_id, piece_id) { if(!vn(start)) start = 0; if(!vn(etape_id)) etape_id = 0; if(!vn(piece_id)) piece_id = 0; $.ajax("//www.forumconstruire.com/recits/sl_add_ajax.php?content=choix_photos&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&force_etape_id="+etape_id+"&force_piece_id="+piece_id+"&start="+start+"&mode=photo", { xhrFields: { withCredentials: true }, success: function(data) { photo_id = $(data).find('img[photo_a_tagguer=1]').attr('photo_id'); //alert('ok'); $('#sl_photo_selector_photo_contener').html(data); $('#image_sladd_'+photo_id).load(function() { photo_get_tag(photo_id, '16', sl_produit_id, 1, 'sladd'); }) //sl_add_place_repere_photo(); } }); } function sl_add_pick_picture(photo_id, etape_id, piece_id, start, event) { if(!vn(photo_id)) return(0); if(!vn(etape_id)) etape_id = 0; if(!vn(piece_id)) piece_id = 0; if(!vn(start)) start = 0; // L'image var image = $('#image_sladd_'+photo_id); var container = $('#image_container_sladd_'+photo_id); // On choppe la taille de l'image image_width = image.width(); image_height = image.height(); console.log('Taille : '+image_width+' / '+image_height); // On choppe l'emplacement de l'image image_position = image.offset(); image_position_x = image_position.left; image_position_y = image_position.top; console.log('Image position : '+image_position_x+' / '+image_position_y); container_position = container.offset(); container_position_x = container_position.left; container_position_y = container_position.top; console.log('Container position : '+container_position_x+' / '+container_position_y); // On choppe la position du clic var clic_x = Math.round(event.clientX); var clic_y = Math.round(event.clientY+$(window).scrollTop()); console.log('Clic : '+clic_x+' / '+clic_y); // On calcule le ratio image_clic_x = clic_x-image_position_x; image_clic_y = clic_y-image_position_y; console.log('Clic image : '+image_clic_x+' / '+image_clic_y); // On place un pointeur container.append(''); var pointer = $('#sl_add_pointer'); pointer.css('position', 'absolute'); pointer.css('left', (image_clic_x-8)+'px'); pointer.css('top', (image_clic_y-8)+'px'); $('#image_sladd_'+sl_produit_id).remove(); // On fait le ratio ratio_x = ((image_clic_x*100)/image_width); ratio_y = ((image_clic_y*100)/image_height); console.log('Ratio : '+ratio_x+' / '+ratio_y); // On balance :) file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=position_clic&photo_id='+photo_id+'&produit_id='+sl_produit_id+'&start='+start+'&etape_id='+etape_id+'&piece_id='+piece_id+'&clic_x='+ratio_x+'&clic_y='+ratio_y+'', function() { // On change le texte du lien $('#sl_photo_selector_link_stop').html(' C\'est terminé !'); // On affiche l'image suivante setTimeout(function() { $('#sl_add_pointer').remove();sl_photo_next(Number(start)+1, etape_id, piece_id); }, 500); }); } function sl_add_pick_picture_del(photo_id) { if(!vn(photo_id)) return(0); // On balance :) file('//www.forumconstruire.com/recits/sl_add_ajax.php?content=position_clic&photo_id='+photo_id+'&produit_id='+sl_produit_id+'&del=1'); // On change le texte du lien $('#sl_photo_selector_link_stop').html(' C\'est terminé !'); // on vire le pointer $('#sl_add_pointer').remove(); // On ferme la box si elle existe closeBox(''); } function sl_add_place_repere_photo(photo_id) { // Si la photo a deja été taggue, on place le repere console.log('function ok'); photo = $('#image_'+photo_id); $('#sl_add_pointer').remove(); if(photo.length > 0) { console.log('photo ok'); x = photo.attr('x'); y = photo.attr('y'); if(vn(x) && vn(y)) { console.log('position ok'); // On choppe la taille de l'image image_width = $('#sl_photo_selector_photo img').width(); image_height = $('#sl_photo_selector_photo img').height(); console.log('Taille : '+image_width+' / '+image_height); // On choppe l'emplacement de l'image image_position = photo.offset(); image_position_x = image_position.left; image_position_y = image_position.top; // On fait le ratio pos_x = image_position_x+((image_width/100)*x); pos_y = image_position_y+((image_height/100)*y); // On place un pointeur $('body').append(''); $('#sl_add_pointer').css('position', 'absolute'); $('#sl_add_pointer').css('left', (pos_x-8)+'px'); $('#sl_add_pointer').css('top', (pos_y-8)+'px'); } } } // On lance /* var sl_projet_id = ''; // Obligatoire var sl_photo_id = ''; // Facultatif var sl_etape_id = ''; // Facultatif var sl_piece_id = ''; // Facultatif var sl_produit_id = ''; // Facultatif */ function sl_add_launch() { if(vn(sl_produit_id) && vn(sl_projet_id) && sl_pick_photo == 1) { sl_add_print(4); } else if(vn(sl_produit_id) && vn(sl_projet_id)) { sl_add_print(2); } else sl_add_print(1); $('#general_bloc').click(function() { sl_add_autocomplete_deplace_close() }) }