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+=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)