var idchoiced={};idchoiced.selected=false;idchoiced.thumb=[0,1,2,3,4,5]; function send_a_request_to_exports(title,page,what){ var time=1000; switch(what){ case "ebook": js_get_form_waiting(1200,'90vh','Création d\'un ebook');break; case "excel": default: js_get_form_waiting(500,'30vh');break; } js_get_form_loadingEnd(title,greenLight,true); switch(what){ case "ebook": setTimeout(send_a_request_into_a_page.bind(null,page,what),time);break; case "excel": setTimeout(send_a_request_an_export.bind(null,page,what),time);break; default: } }//c function send_a_request_to_exports(title,page,what) function send_a_request_an_export(page,action){ // appel ajax var xhr=getXMLHttpRequest(),color=greenLight,errmessage="Success";//! ranslate 07/08/2020 07:55:25 xhr.onreadystatechange = function() { var arr=checkXMLHttpRequest(xhr); if(arr[0]){ if(arr[1]==='exists'){ js_get_form_loadingEnd(''+arr[2]+'',greenLight,false); return(true); }//c if(action==='ebook') js_get_form_loadingEnd("Création",greenLight,false); } }; var call=encodeURI(page+"&action="+action); xhr.open("GET", call, false); ///xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(null); } function send_a_request_into_a_page(page,action){ // appel ajax var num=document.getElementById('identifiant_du_haut'); num=num.value; if(!num){ alert(et["choose_a_line_to_modify_below"]); js_get_form_no_display(); return(false); } page=page.replace('num=xxx','num='+num); var xhr=getXMLHttpRequest(),color=greenLight,errmessage="Success";//! ranslate 07/08/2020 07:55:25 xhr.onreadystatechange = function() { var arr=checkXMLHttpRequest(xhr); if(arr[0]){ if(arr[1]==='ebook'){///action==='ebook'){ send_a_request_into_a_page(page+'&file='+arr[2],'display'); }//c if(action==='ebook') if(arr[1]==='display'){///action==='display'){ ///var arr=xhr.responseText.split('/');//c arr[2] non du fichier PDF /* var msg=document.getElementById('id_div_js_get_form_waiting'); msg.innerHTML=xhr.responseText; msg.src='../documents/files/78/CALC-ARCHITECTE - Construction de 26 logements.pdf'; */ //c #toolbar=0 empêche l'affichage des outils en haut mais pas le enregistrer sous //c width=1000px inopérant //c https://fr.w3docs.com/snippets/html/comment-integrer-pdf-dans-html.html var src=arr[3]; /// ../../documents/files/78/CALC-ARCHITECTE - Construction de 26 logements.pdf '../documents/files/78/CALC-ARCHITECTE - Construction de 26 logements.pdf'; ///alert("source: "+src); var obj=document.getElementById('id_object_js_get_form_waiting'); obj.src=src;///obj.data=src; var href=document.getElementById('id_href_js_get_form_waiting'); if(href)href.href=src; ///var msg=document.getElementById('message_for_help'); ///msg.innerHTML=src; var arr2=src.split('/');//c arr[2] non du fichier PDF js_get_form_loadingEnd("Lecture de "+arr2[arr2.length-1],greenLight,false);//! ranslate 07/08/2020 08:24:51 ///id_object_js_get_form_waiting=data id_href_js_get_form_waiting=href } ///js_get_form_no_display(); }//c if(arr[0]) else{ var errmessage="échec de la demande ->"+xhr.responseText;//! ranslate 07/08/2020 08:09:16 color=redLight; js_get_form_loadingEnd(errmessage,color,false); } ////alert("errmessage 3: "+errmessage); ///spanmsg.innerHTML=errmessage; ///spanmsg.style.backgroundColor=color; /// return(xhr.responseText); /// document.location=document.location; }; // C:\labo\calcweb\administration\scripts\login.php /* action='ebook'; if(action==='ebook'){ js_get_form_loadingEnd('Lecture du fichier PDF',greenLight,true); } if(0&&action==='display'){ js_get_form_loadingEnd('Création du fichier PDF',greenLight,true); } */ ///alert('affiché? 1'); ///js_get_form_loadingEnd('Création du fichier PDF',greenLight,true); //alert('affiché? 2'); ///alert(msg.innerHTML); var call=encodeURI(page+"&action="+action); xhr.open("GET", call, false); ///xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(null); ///} }//c function send_a_request_into_a_page(page,action) function send_a_simple_request(sql,action){ // appel ajax js_get_form_waiting(); var xhr = getXMLHttpRequest(),color=greenLight,errmessage="Success"; xhr.onreadystatechange = function() { var arr=checkXMLHttpRequest(xhr); if(arr[0]){ /// if(xhr.responseText.substr(0,4)==='done'){ var spanmsg=document.getElementById('idmessageajax'); ////document.getElementById('idmessageajax').innerHTML=xhr.responseText; if(action==='update'){ var cells=idchoiced.values.getElementsByTagName('th'); var oldvalues=idchoiced.tds; for (var i = 0; i < cells.length-1; i++) { var input= cells[i].getElementsByTagName('input')[0].value; if(input!==oldvalues[i].innerHTML){ oldvalues[i].innerHTML=input; } } }//c if(action==='update') if(action==='insert'){ ////message="échec de la demande "+xhr.responseText; }//c if(action==='insert') if(action==='delete'){ var node=idchoiced.thisradio.parentNode.parentNode.parentNode; var child=idchoiced.thisradio.parentNode.parentNode; ////alert(req+' - '+node+' - '+child); node.removeChild(child); ///row.remove(); }//c if(action==='delete') js_get_form_no_display(); }//c if(arr[0]) else{ errmessage="échec de la demande ->"+xhr.responseText;//! ranslate 07/08/2020 08:09:44 color=redLight; } spanmsg.innerHTML=errmessage; spanmsg.style.backgroundColor=color; /// return(xhr.responseText); /// document.location=document.location; }; // C:\labo\calcweb\administration\scripts\login.php ///xhr.open("GET", "scripts/ajax_send_a_simple_request.php?sql="+sql.replace(chrrc," ")+"&action="+action, false); xhr.open("GET", "ajax/ajax_send_a_simple_request.php?sql="+sql.replace(chrrc," ")+"&action="+action, false); ///xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(null); ///} }//c function send_a_simple_request(sql) function TableDB_verify_if_selected(){ if(!idchoiced||!idchoiced.selected){ alert(iconWarning+et["choose_a_line_to_modify_below"]); return(false); } return(true); } function js_get_form_find_thumb_to_check(form,tablename,num){ js_get_form_loadingEnd("Changement de miniature",greenLight,false);//! ranslate 09/08/2020 11:35:42 var page='ajax/ajax_field_different_input.php'; var formData=new FormData(form); formData.append("action", "uploadThumb"); formData.append("tablename", "tablename"); ////formData.append("id", "77"); // appel ajax /* https://developer.mozilla.org/fr/docs/Web/Guide/Using_FormData_Objects var formElement = document.getElementById("myFormElement"); var request = new XMLHttpRequest(); request.open("POST", "submitform.php"); request.send(new FormData(formElement)); */ var xhr=getXMLHttpRequest(),color=greenLight,errmessage="Success";//! ranslate 07/08/2020 07:55:25 xhr.onreadystatechange = function() { var arr=checkXMLHttpRequest(xhr); if(arr[0]){ var tableImage=idchoiced.thisradio.parentNode.parentNode.getElementsByTagName('td')[Number(num)].getElementsByTagName('img')[0]; alert(xhr.responseText+chrrc+idchoiced.thumb[Number(num)].src+chrrc+tableImage); //c https://stackoverflow.com/questions/1077041/refresh-image-with-a-new-one-at-the-same-url var src=arr[2]; idchoiced.thumb[Number(num)].src=src;///+"&t=" + new Date().getTime();//c newImage.src = "image.jpg?t=" + new Date().getTime(); tableImage.src=src; js_get_form_loadingEnd("Miniature changée",greenLight,false);//! ranslate 09/08/2020 11:34:57 }//c if(arr[0]) return(null); }; sendXMLHttpRequest(xhr,"POST",form,page,formData); return(null); } function TableDB_Thumb_fileChange(thatFile){ var tdate=String(thatFile.files[0].lastModifiedDate); var datearr=tdate.split(' '); /* var msg=thatFile.files[0].name+'
'+thatFile.files[0].size+'
'+thatFile.files[0].lastModified+'
'+datearr[3]+' - '+thatFile.files[0].lastModifiedDate+'
'+thatFile.files[0].webkitRelativePath+'
'; ///msg+=new Date(thatFile.files[0].lastModified)+'
' //c Thu Jul 23 2020 16:36:40 GMT+0200 (heure d’été d’Europe centrale) msg+=datearr[3]+'
'; */ var msg='Nom: '+thatFile.files[0].name+'
'; msg+='Date: '+datearr[2]+'/'+datearr[1]+'/'+datearr[3]+' '+datearr[4]+'
'; msg+='Taille: '+thatFile.files[0].size+' octets'; var o=document.getElementById('id_tdInfosThumb'); if(o){ o.innerHTML=msg; } } function TableDB_Thumb_onChange(thatImage,tablename,num){ //c num= n° de ligne de table sélectionnée if(!TableDB_verify_if_selected())return(false); //c afficher un interface de upload d'1 fichier idchoiced.thumb[Number(num)]=thatImage.parentNode.getElementsByTagName('img')[0]; var formName='FormThumb'; js_get_form_waiting(500,'50vh','Choisir une image miniature',formName);//! ranslate 09/08/2020 00:00:37 lastModifiedDate js_get_form_display_imgWaiting(false); //c envoie vers ajax upload var body=''; body+=''; body+=''; body+=''; body+=''; body+='
'; body+=''; body+='
'; //c https://developer.mozilla.org/fr/docs/Web/HTML/Element/Input/file body+=''; body+='
'; body+='
'; body+=js_get_form_buttons("js_get_form_find_thumb_to_check(this.form,'"+tablename+"',"+num+");","Valider");//! ranslate 09/08/2020 00:00:37 body+='
'; ////body+=''; body+=js_get_form_inputHidden('id',document.getElementById('identifiant_du_haut').value); var o=document.getElementById(formName); if(o){o.innerHTML=body;o.setAttribute("enctype","multipart/form-data");} }//c function TableDB_Thumb_onChange(thatImage,tablename,num) function TableDB_delete_rec(thatButton,tablename){ if(!TableDB_verify_if_selected())return(false); if(!confirm(iconWarning+'Etes-vous sûr de vouloir détruire cet enregistrement?')){//! ranslate 07/08/2020 07:55:25 ///message opération abandonnée return(false); } var table=thatButton.parentNode.parentNode.parentNode.parentNode; var row=table.getElementsByTagName('thead')[2].getElementsByTagName('tr')[0]; var inp0=row.getElementsByTagName('th')[0].getElementsByTagName('input')[0]; ///alert(tablename+"\n"+inp0.getAttribute("placeholder")+"\n"+inp0.value); var req='delete from '+tablename+chrrc+'where '+inp0.getAttribute("placeholder") +"="+"'"+inp0.value+"'"; ///return(false); send_a_simple_request(encodeURI(req),'delete'); ///var node=thatButton.parentNode.parentNode.parentNode;///table.getElementsByTagName('tbody')[0]; ///var child=thatButton.parentNode.parentNode; /* sans where toute la table est supprimée DELETE FROM `utilisateur` WHERE `id` = 1 */ } function TableDB_display_ebook_rec(thatButton,tablename){ }//c function TableDB_display_ebook_rec(thatButton,tablename) function TableDB_select_onChange(thatSelect){ ////var chrrc=" \n "; var parentNode=thatSelect.parentNode; ////alert(thatSelect.value); ///alert(thatSelect.value+chrrc+thatSelect.selectedIndex+chrrc+thatSelect.options[thatSelect.selectedIndex].value /// +chrrc+parentNode.getElementsByTagName('input')[0].value); parentNode.getElementsByTagName('input')[0].value=thatSelect.options[thatSelect.selectedIndex].value; } function TableDB_insert_prepare(thatButton,tablename){ //c prépare les lignes en vue d'une insertion if(!idchoiced)idchoiced={}; ////var chrrc=" \n "; var status=thatButton.getAttribute("data-status");///document.getElementById('insertDatas').value; var table=thatButton.parentNode.parentNode.parentNode.parentNode; if(status!=="prepared"){ thatButton.setAttribute("data-status","prepared"); /// var R = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0]; } var trthead2=table.getElementsByTagName('thead')[2].getElementsByTagName('tr')[0]; var trtbody=table.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0]; var inputs = trthead2.getElementsByTagName('th'); var inp=placeholder=dataEmpty=null,fields='(',values='(';///,new_line=false; var tds = trtbody.getElementsByTagName('td'); for (var i = 0; i < inputs.length-1; i++) { inp=inputs[i].getElementsByTagName('input')[0]; if(inp.getAttribute("disabled")===''){ //// inp.setAttribute("disabled",false);// ou element.removeAttribute("disabled"); ou removeAttribute('readonly') inp.disabled=null; inp.style.backgroundColor="white"; } ////alert('inp.getAttribute( : '+inp.getAttribute("disabled")+" "+inp.value); placeholder=inp.getAttribute("placeholder"); dataEmpty=placeholder.substr(0,1);///inp.getAttribute("data-empty"); if(inp.value===''&&dataEmpty!=='!'){ /// if(!confirm('\u26a0 Le champ <'+placeholder+ " " +dataEmpty+'> peut-il être vide?')){ alert(iconWarning+'Le champ <'+placeholder+ " " +dataEmpty+'> peut-il être vide?');//! ranslate 07/08/2020 07:55:25 return(false); // } } if(!idchoiced.new_line){//c on insère la ligne var R = trtbody; ///table.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0]; var C = R.cloneNode(true); table.getElementsByTagName('tbody')[0].insertBefore(C, R); tds = trtbody.getElementsByTagName('td'); for (var j = 0; j < tds.length-1; j++) { tds[j].innerHTML=''; } idchoiced.new_line=true; } fields+=inp.getAttribute("placeholder").replace('!','')+","; values+="'"+inp.value+"',"; tds[i].innerHTML=inp.value; } fields=fields.substr(0,fields.length-1)+")"; values=values.substr(0,values.length-1)+")"; var req="insert into "+tablename+chrrc+fields+chrrc+"values"+chrrc+values; ///sql=sql.substr(0,sql.length-1); ///alert(req); send_a_simple_request(encodeURI(req),'insert'); ///insert into calc (ch&,ché,cgé) values (1,2,3)) } function click_radio(that,id){ idchoiced.selected=true; idchoiced.thisradio=that; var test=TableDB_radio_get_values(that); ////alert('test: '+test); if(test) var o=document.getElementById('memo_num_id'); if(o){ o.innerHTML=id; o=document.getElementById('identifiant_du_haut'); if(o)o.value=id; } } function TableDB_radio_get_values(thatRADIO){ //c thatTR =this.parentNode.parentNode var tds=thatRADIO.parentNode.parentNode.getElementsByTagName('td'); idchoiced.tds=tds; var radioId=document.getElementById('identifiant_du_haut'); radioId.value=tds[0].innerHTML; var table=thatRADIO.parentNode.parentNode.parentNode.parentNode; var thead0=table.getElementsByTagName('thead')[0]; var thead2=table.getElementsByTagName('thead')[2]; ///alert(thead0+'-'+thead2); if(!thead2)return(false); idchoiced.values=thead2; idchoiced.titles=sep;idchoiced.recs=sep; ////for (var i = 0; i < tds.length-1; i++) { for (var i = 1; i < tds.length-1; i++) { var thisTh=thead2.getElementsByTagName('th')[i]; /// var input= thisTh.getElementsByTagName('input')[0]; var select= thisTh.getElementsByTagName('select')[0]; var intitule=thead0.getElementsByTagName('th')[i].innerHTML; /// var selectedvalue=tds[i].innerHTML; var input=thisTh.getElementsByTagName('input')[0]; var is_input=(input); var head=tds[i].innerHTML.trim().substr(0,5); //c ''; /// input.value="IHM attendu";//! ranslate 07/08/2020 11:11:07 } else{ input.value=mjsreplaceall(tds[i].innerHTML,'html');///tds[i].innerHTML.replace(/<.*?>/g," "); input.style.minWidth='100%'; } tds[i].innerHTML=tds[i].innerHTML.replace('-','##'); if(intitule!=='?'){ idchoiced.titles+=sep+intitule; idchoiced.recs+=sep+(is_input?input.value:'NC');///selectedvalue; } else break; /// input.value=tds[i].innerHTML; /// tds[i].innerHTML=tds[i].innerHTML.replace('-','##'); /// input.style.width='100%'; if(is_input&&select){ /// input.style.display='none'; if(select.value!==input.value){ for (var j = 0; j < select.options.length; j++) { if(select.options[j].value===input.value){ select.selectedIndex=j; var opt = select.options[select.selectedIndex]; /// var selectnew=document.getElementById('select2-select-mh-container'); /// selectnew.value=select.text; // select.text=opt.text; select2-select-mh-container //c https://www.dyn-web.com/tutorials/forms/select/selected.php /// var select2=document.getElementById('message_for_help') /// select2-select-1n-result-ceqc-Mr /// select2-search__field ////alert(select.value+" - "+select.selectedIndex+" - "+select.options+" "+input.value+" "+select.text); /// opt.onclick()=true; /* /// select.options[j].setAttribute("selected", "selected");///selected=true; select.options[j].selected=true; /// select.options[j].setAttribute("selected", true); select.text=select.options[j].value; */ break; } } } //// alert(select.value+" - "+select.selectedIndex+" - "+select.options+" "+input.value); }//c if(is_input&&select) // tds[i].innerHTML=tds[i].innerHTML.replace('##','-'); // inutile la largeur reprend ses droits if(is_input&&intitule.substring(0,1)==='*'){ idchoiced.id=input.value; idchoiced.idtitle=intitule.replace('*',''); input.style.backgroundColor=redLight; /// input..getAttribute("data-status")='red'; input.disabled=true; } /// alert(intitule); ///getAttribute("data-status"); /* if ( status == "open" ) { // saisit les données } */ tds[i].innerHTML=tds[i].innerHTML.replace('##','-'); } ///alert('idchoiced.titles 1: '+idchoiced.titles); idchoiced.titles=idchoiced.titles.replace(sep+sep,''); ///idchoiced.titles='toto';///intitules; idchoiced.titles=idchoiced.titles.replace('*',''); ///idchoiced.titles='toto';///intitules; idchoiced.recs=idchoiced.recs.replace(sep+sep,''); ///idchoiced.titles='toto';///intitules; ///idchoiced.values=idchoiced.values.replace(';;',''); ///idchoiced.titles='toto';///intitules; ///alert('idchoiced.titles 2: '+idchoiced.titles); return(true); }//c function TableDB_radio_get_values(thatRADIO) function update_rec_of_table(tablename,identifiant){ //alert('1 '+idchoiced.selected); /////var chrrc=" \n "; if(!TableDB_verify_if_selected())return(false); ///alert('2 '+idchoiced.selected); /////alert('2 '+idchoiced.selected+ ' , ' + (idchoiced.selected==false)); var values=sep,changes='',changesforalert=''; var cells=idchoiced.values.getElementsByTagName('th'); var titles=idchoiced.titles.split(sep); var oldvalues=idchoiced.recs.split(sep); for (var i = 0; i < cells.length-1; i++) { var input= cells[i].getElementsByTagName('input')[0].value; if(input!==oldvalues[i]){ /// alert(input+' => '+oldvalues[i]); values+=sep+input; changes+=titles[i].replace('!','').replace('*','')+"=\'"+input+"\',"+chrrc; changesforalert+=input+" => "+oldvalues[i]+" "+chrrc;// → marche pas \u26a0 marche \U+2192 marche pas } } values=values.replace(sep+sep,''); ///alert('3 '+idchoiced.selected); if(values===idchoiced.recs){ alert("Vous n'avez pas modifié la ligne sélectionnée?"+chrrc+"Le processus va s'arrêter!");//! ranslate 07/08/2020 07:55:25 ///idchoiced={}; return(false); } changes=changes.trim(); if(changes.substr(-1,1)===',') changes=changes.substr(0,changes.length-1); changesforalert=changesforalert.trim(); if(changesforalert.substr(-1,1)===',') changesforalert=changesforalert.substr(0,changesforalert.length-1); //c http://www.trucsweb.com/tutoriels/javascript/tw304/ //c https://outils-javascript.aliasdmc.fr/encodage-icone-symbole/encode-caractere-26A0-html-css-js-autre.html //c https://www.fileformat.info/info/unicode/char/26a0/index.htm //c https://select2.org/advanced/default-adapters/selection //! ranslate 07/08/2020 07:55:25 if(changesforalert&&confirm(iconWarning+"Faut-il effectuer les modifications suivantes?"+chrrc+'new'+' (=>/remplace) '+'old '+chrrc+" "+chrrc+changesforalert)){ ////alert('\u26a0 '.toUpperCase()+changesforalert); var req="UPDATE "+tablename+chrrc +" SET"+chrrc +changes+chrrc +"WHERE"+chrrc+idchoiced.idtitle+"=\'"+idchoiced.id+"\'"; ///alert(req); ///alert('5 '+req); send_a_simple_request(encodeURI(req),'update'); /* alert(tablename+'\n'+idchoiced.idtitle+'\n'+idchoiced.id+'\n'+idchoiced.titles +'\n'+idchoiced.recs +'\n'+values+'\n'+req); */ /* UPDATE employees SET email = 'mary.patterson@classicmodelcars.com' WHERE employeeNumber = 1056; */ ///alert("result: "+result); }//c if(changesforalert&&confirm('\u26a0 '.toUpperCase()+"Faut-il else{ alert("Vous n'avez apporté aucune modification!");//! ranslate 07/08/2020 07:55:25 } }//c function update_rec_of_table(tablename,identifiant)