Commit 1ac59315 authored by Eric Seigne's avatar Eric Seigne
Browse files

version 1.8.3

parent 2977b484
# 1.8.3
- grosse amélioration pour la re-synchronisation des frais dont le justificatif n'a
pas été téléversé lors de la création de la fiche
# 1.8.2
- ajoute la possibilité de changer les taux de TVA (adaptation pour les DOM par ex.)
- interdit la saisie de date de frais dans le futur
......
<?xml version='1.0' encoding='utf-8'?>
<widget id="fr.caprel.doliscan" version="1.8.2" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="fr.caprel.doliscan" version="1.8.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>doliscan</name>
<description>DoliSCAN is a tiny app for french people looking for a free and self hosting "notes de frais/expenses report" solution.</description>
<author email="eric.seigne@cap-rel.fr" href="https://cap-rel.fr">Eric Seigne</author>
......@@ -152,5 +152,5 @@
</feature>
</platform>
<plugin name="cordova-plugin-calendar" />
<preference name="OverrideUserAgent" value="Mozilla/5.0 OpenNDF/1.8.2 Android" />
<preference name="OverrideUserAgent" value="Mozilla/5.0 OpenNDF/1.8.3 Android" />
</widget>
......@@ -2,7 +2,7 @@
* (c) Éric Seigne <eric.seigne@cap-rel.fr> - 2019-2020 - GNU AGPLv3
* full source code in src/ subfolder, this file is minifyed
*/
var globalAppVersion="1.8.2";var globalDevMode=false;var globalMyCamera;var globalpictureSource;var globaldestinationType;var globalNetworkResponse=Date.now();var globalCurrentPage="";var globalCurrentTitle="";var globalTenMinuts=60*10*1000;var globalCompatibleWithAPIVersion=4;var globalDoliScanDomain="";var globalLastInsertId="";var globalSyncInProgress=false;var globalPictureFileName="";var globalPicturesAvailable=[];var globalSyncObject=[];var dataLDF="";var dataIK="";var globalMyNavigator=undefined;var globalResumable=undefined;var globalProgressBar=undefined;var globalTypeFrais="";var globalVehiculeEd=undefined;var loginAPIKeyErrorInProgress=false;var globalSrvKeys=['email','api_token','firstname','name','adresse','cp','ville','pays','send_copy_to','compta_email','compta_ik','compta_peage','compta_hotel','compta_train','compta_carburant','compta_taxi','compta_restauration','compta_divers','compta_compteperso','compta_tvadeductible','official_app_version','official_app_message','mode_simple','compta_tva_tx1','compta_tva_tx2','compta_tva_tx3','compta_tva_tx4'];function errorHandlerCustomFile(title,message){myDebug('errorHandlerCustomFile : '+title+' -- message follow:');myDebug(message);}
var globalAppVersion="1.8.3";var globalDevMode=false;var globalMyCamera;var globalpictureSource;var globaldestinationType;var globalNetworkResponse=Date.now();var globalCurrentPage="";var globalCurrentTitle="";var globalTenMinuts=60*10*1000;var globalCompatibleWithAPIVersion=4;var globalDoliScanDomain="";var globalLastInsertId="";var globalSyncInProgress=false;var globalPictureFileName="";var globalPicturesAvailable=[];var globalSyncObject=[];var dataLDF="";var dataIK="";var globalMyNavigator=undefined;var globalResumable=undefined;var globalProgressBar=undefined;var globalTypeFrais="";var globalVehiculeEd=undefined;var loginAPIKeyErrorInProgress=false;var globalSrvKeys=['email','api_token','firstname','name','adresse','cp','ville','pays','send_copy_to','compta_email','compta_ik','compta_peage','compta_hotel','compta_train','compta_carburant','compta_taxi','compta_restauration','compta_divers','compta_compteperso','compta_tvadeductible','official_app_version','official_app_message','mode_simple','compta_tva_tx1','compta_tva_tx2','compta_tva_tx3','compta_tva_tx4'];function errorHandlerCustomFile(title,message){myDebug('errorHandlerCustomFile : '+title+' -- message follow:');myDebug(message);}
function loadCustomCSS(){if((typeof cordova=='undefined')||(cordova===null)||(cordova=="")){return;}
if((typeof cordova.file=='undefined')||(cordova.file===null)||(cordova.file=="")){return;}
if((typeof cordova.file.cacheDirectory=='undefined')||(cordova.file.cacheDirectory===null)||(cordova.file.cacheDirectory=="")){return;}
......@@ -119,7 +119,7 @@ endSendFormForUpdate(formdata,leformName);}}
function endSendFormForUpdate(formdata,leformName){formJSON=document.getElementById(leform).serializeJSON();myDebug("endSendFormForUpdate JSON : "+formJSON);dataLDF="";if(ajaxRequestUpdate)
ajaxRequestUpdate.abort();var ajaxRequestUpdate=$.ajax({url:localGetData("api_server")+"/api/LdeFrais/"+document.getElementById('updateID').value,timeout:10000,type:"PUT",data:formJSON,processData:true,cache:false,contentType:'application/json',tryCount:0,retryLimit:3,beforeSend:function(xhr){xhr.setRequestHeader('Authorization','Bearer '+localGetData("api_token"));},xhrFields:{withCredentials:true},success:function(result,textStatus,request){globalNetworkResponse=Date.now();hideWait();myDebug("Request PUT finished (success signal) : "+textStatus+'('+result.length+')');myDebug("Request PUT status (success signal) : "+request.status);if(request.status=="200"){gotoPage('messageDone.html',false);}
else{ons.notification.alert("Le serveur n'est pas accessible. Votre document est enregistré sur votre téléphone, pensez à le synchroniser avec le serveur dès que vous retrouverez une bonne connexion (utilisez le menu synchronisation à ce moment là).",{title:"Réseau lent (1)"}).then(function(){gotoPage("menu.html",true);});}},error:function(request,textStatus,errorThrown){hideWait();myDebug("Request finished (error signal) : "+textStatus);},});}
function endSendForm(formdata,filename){let subject="";myDebug('endSendForm ... avec fic = '+filename+' mais sur ios on utilisera plutot globalPictureFileName = '+globalPictureFileName);if(device!==undefined){if(device.platform=="iOS"){if(globalPictureFileName!="")
function endSendForm(formdata,filename,newOrSync="new",syncLdfID=null){let subject="";myDebug('endSendForm ... avec fic = '+filename+' mais sur ios on utilisera plutot globalPictureFileName = '+globalPictureFileName);if(device!==undefined){if(device.platform=="iOS"){if(globalPictureFileName!="")
filename=globalPictureFileName;}}
else{myDebug("device is undef !");}
if(filename==""){filename=globalPictureFileName;}
......@@ -131,9 +131,10 @@ if(!Array.isArray(objectTempToConvertFD[key])){objectTempToConvertFD[key]=[objec
objectTempToConvertFD[key].push(value);}});var els=document.getElementsByName('moyenPaiement');for(var i=0;i<els.length;i++){if(els[i].checked){objectTempToConvertFD['moyenPaiement']=els[i].value;break;}}
var formDataInJSON=JSON.stringify(objectTempToConvertFD);if(globalIndexedDB!==null&&databaseEngine=='IndexedDB'&&globalSyncInProgress==false){let url=localGetData("api_server")+"/api/LdeFrais";localStoreLDFtoSync(url,formDataInJSON,filename).then((value)=>{globalLastInsertId=value;myDebug(" endSendForm retour de localStoreLDFtoSync : globalLastInsertId="+globalLastInsertId);});}
else{if(globalSyncInProgress==true){myDebug(" endSendForm on evite de sauvegarder les donnees en BDD avant upload car on est en synchronisation...");}}
myDebug(" endSendForm on se connecte sur "+localGetData("api_server")+"/api/LdeFrais");if(ajaxRequestSendForm){ajaxRequestSendForm.abort();}
if(ajaxRequestSendForm){ajaxRequestSendForm.abort();}
if(filename!=""){gotoPage('messageUploadProgress.html',false);}
var ajaxRequestSendForm=$.ajax({url:localGetData("api_server")+"/api/LdeFrais",timeout:10000,type:"POST",data:formdata,processData:false,cache:false,contentType:false,tryCount:3,retryLimit:4,beforeSend:function(xhr){xhr.setRequestHeader('Authorization','Bearer '+localGetData("api_token"));},xhrFields:{withCredentials:true},success:function(result,textStatus,request){hideWait();globalNetworkResponse=Date.now();myDebug("Request finished (success signal) : "+textStatus+(result+'').length);myDebug("Request status (success signal) : "+request.status);myDebug("+++++++++++++++++++++++++++++++++++++++++++++++");myDebug(result.fileName);myDebug("+++++++++++++++++++++++++++++++++++++++++++++++");if(request.status=="201"){let ajaxURL=localGetData("api_server")+"/api/upload";myDebug("Request finished, creation d'un objet resumable pour envoyer le fichier");let r=newResumable(ajaxURL,result,filename);}
let apiTarget="/api/LdeFrais";if(newOrSync=="sync"){apiTarget="/api/ldfImagesMissed/"+syncLdfID;}
myDebug(" endSendForm on se connecte sur "+localGetData("api_server")+apiTarget);console.debug(" endSendForm on se connecte sur "+localGetData("api_server")+apiTarget);var ajaxRequestSendForm=$.ajax({url:localGetData("api_server")+apiTarget,timeout:10000,type:"POST",data:formdata,processData:false,cache:false,contentType:false,tryCount:3,retryLimit:4,beforeSend:function(xhr){xhr.setRequestHeader('Authorization','Bearer '+localGetData("api_token"));},xhrFields:{withCredentials:true},success:function(result,textStatus,request){hideWait();globalNetworkResponse=Date.now();myDebug("Request finished (success signal) : "+textStatus+(result+'').length);myDebug("Request status (success signal) : "+request.status);myDebug("+++++++++++++++++++++++++++++++++++++++++++++++");myDebug(result.fileName);myDebug("+++++++++++++++++++++++++++++++++++++++++++++++");if(request.status=="201"){let ajaxURL=localGetData("api_server")+"/api/upload";myDebug("Request finished, creation d'un objet resumable pour envoyer le fichier");let r=newResumable(ajaxURL,result,filename);}
else{ons.notification.alert("Erreur de transfert avec le serveur. Votre document est enregistré sur votre téléphone, pensez à le synchroniser avec le serveur dès que vous retrouverez une bonne connexion (utilisez le menu synchronisation à ce moment là).",{title:"Réseau lent (3)"}).then(function(){gotoPage("menu.html",true);});}},error:function(request,textStatus,errorThrown){hideWait();uploadErrorSaveFile(filename);myDebug("Request finished (error signal) : "+textStatus);if(textStatus=='timeout'){myDebug('timeout, try again ...');ons.notification.alert("Erreur de transfert avec le serveur. Votre document est enregistré sur votre téléphone, pensez à le synchroniser avec le serveur dès que vous retrouverez une bonne connexion (utilisez le menu synchronisation à ce moment là).",{title:"Réseau lent (4)"}).then(function(){gotoPage("menu.html",true);});return;}
if(request.status==500){ons.notification.alert("Une erreur serveur est survenue. Votre document est enregistré sur votre téléphone, pensez à le synchroniser avec le serveur un peu plus tard via le menu synchronisation. Si le problème persiste contactez-nous par mail à sav@doliscan.fr.",{title:"Réseau lent (5)"}).then(function(){gotoPage("menu.html",true);});}else{ons.notification.alert("Le serveur n'est pas accessible. Votre document est enregistré sur votre téléphone, pensez à le synchroniser avec le serveur dès que vous retrouverez une bonne connexion (utilisez le menu synchronisation à ce moment là).",{title:"Réseau lent (6)"}).then(function(){gotoPage("menu.html",true);});}}});}
function genericCheckForm(leform=null){myDebug("genericCheckForm "+leform);if(leform==null){myDebug("genericCheckForm leform null");return false;}
......@@ -174,10 +175,10 @@ $(elem).removeClass("blink");else
$(elem).addClass("blink");}
clearTimeout(function(){blinkElement(elem,times,speed);});if(times>0||times<0){setTimeout(function(){blinkElement(elem,times,speed);},speed);times-=.5;}}
var app={initialize:function(){document.addEventListener('deviceready',this.onDeviceReady.bind(this),false);},onDeviceReady:function(){document.addEventListener("backKeyDown",function(){fn.back();},false);this.receivedEvent('deviceready');},receivedEvent:function(id){var parentElement=document.getElementById(id);if(parentElement!==null){var listeningElement=parentElement.querySelector('.listening');var receivedElement=parentElement.querySelector('.received');listeningElement.setAttribute('style','display:unset;');receivedElement.setAttribute('style','display:block;');}}};app.initialize();Date.prototype.toDateInputValue=(function(){var local=new Date(this);local.setMinutes(this.getMinutes()-this.getTimezoneOffset());return local.toJSON().slice(0,10);});function loadLangFile(file,callback,errorCallback){var rawFile=new XMLHttpRequest();rawFile.overrideMimeType("application/json");rawFile.open("GET",file,true);rawFile.onreadystatechange=function(){if(rawFile.readyState===4&&rawFile.status=="200"){callback(rawFile.responseText);}
else{if(rawFile.status!="200"){console.debug("Lecture du fichier error : "+rawFile.status);errorCallback();}}};rawFile.onLangFileErrorLoaded=function(){console.debug("Lecture du fichier eonLangFileErrorLoadednd, retour null");errorCallback();};rawFile.onerror=function(){console.debug("Lecture du fichier onerror, retour null");errorCallback();};rawFile.send(null);}
function onErrorDefaultLangLoaded(){console.debug(" onErrorDefaultLangLoaded");}
function onLangFileErrorLoaded(){console.debug(" onLangFileErrorLoaded");loadLangFile("langs/en.json",onLangFileLoaded,onErrorDefaultLangLoaded);}
function translateUI(){$('.translate').each(function(i,obj){console.debug("traduction de "+$(obj).html());if($(obj).html()){let t=trans($(obj).html());$(obj).html(t.trim());}});}
else{if(rawFile.status!="200"){myDebug("Lecture du fichier error : "+rawFile.status);errorCallback();}}};rawFile.onLangFileErrorLoaded=function(){myDebug("Lecture du fichier eonLangFileErrorLoadednd, retour null");errorCallback();};rawFile.onerror=function(){myDebug("Lecture du fichier onerror, retour null");errorCallback();};rawFile.send(null);}
function onErrorDefaultLangLoaded(){myDebug(" onErrorDefaultLangLoaded");}
function onLangFileErrorLoaded(){myDebug(" onLangFileErrorLoaded");loadLangFile("langs/en.json",onLangFileLoaded,onErrorDefaultLangLoaded);}
function translateUI(){$('.translate').each(function(i,obj){myDebug("traduction de "+$(obj).html());if($(obj).html()){let t=trans($(obj).html());$(obj).html(t.trim());}});}
function trans(str){return translateStrings(str);}
function onLangFileLoaded(text){if(text===null||typeof text==="undefined"){}
else{var data=JSON.parse(text);translateStrings=i18n.create({values:data});translateUI();}}
......@@ -439,14 +440,14 @@ function rSyncOne(idToSync){showWait();globalLastInsertId=idToSync;globalSyncInP
let pathToFile=cordova.file.documentsDirectory;if(window.cordova.platformId=="android"){pathToFile=window.cordova.file.externalDataDirectory;}
myDebug(" on recherche "+pathToFile+" dans "+localFileName+"...");if(localFileName.startsWith(pathToFile)>0){myDebug(" nettoyage de pathToFile... ");pathToFile="";}
if(localFileName.startsWith("file://")>0){myDebug(" nettoyage de pathToFile (file://)... ");pathToFile="";}
endSendForm(formdata,pathToFile+localFileName);}}
endSendForm(formdata,pathToFile+localFileName,"sync",idToSync);}}
objectStore.get(idToSync).onerror=function(event){myDebug(" get idToSync Error"+JSON.stringify(event));}}
myDebug("end rsyncOne ...");}
function rSyncOneNew(idToSync,localFileName){showWait();myDebug("start rSyncOneNew ... pour idToSync = "+idToSync);let data=globalSyncObject[idToSync];globalLastInsertId=idToSync;globalSyncInProgress=true;myDebug("start rSyncOneNew ... pour globalLastInsertId = "+globalLastInsertId);var formdata=new FormData();for(var key in data){formdata.append(key,data[key]);myDebug(" rSyncOneNew data "+key+" = "+data[key]);}
myDebug(" rSyncOneNew localFileName "+localFileName);endSendForm(formdata,localFileName);}
function rSyncOneNew(id,localFileName,idToSync){showWait();myDebug("start rSyncOneNew ... pour idToSync = "+idToSync);let data=globalSyncObject[idToSync];globalLastInsertId=idToSync;globalSyncInProgress=true;myDebug("start rSyncOneNew ... pour globalLastInsertId = "+globalLastInsertId);var formdata=new FormData();for(var key in data){formdata.append(key,data[key]);myDebug(" rSyncOneNew data "+key+" = "+data[key]);}
myDebug(" rSyncOneNew localFileName "+localFileName);endSendForm(formdata,localFileName,"sync",idToSync);}
function filtreTexte(arr,requete){myDebug("filtreTexte :"+requete+" dans "+JSON.stringify(arr));return arr.filter(function(el){return el.toLowerCase().indexOf(requete.toLowerCase())!==-1;})}
function getListToSync(){showWait();globalSyncObject=[];globalSyncInProgress=true;myDebug("start getListToSync");$.ajaxSetup({timeout:10000,headers:{'X-CSRF-TOKEN':localGetData("api_token")}});if(ajaxDownloadListToSync)
ajaxDownloadListToSync.abort();let htmlFTS="";$('#feedToSync').empty();var ajaxDownloadListToSync=$.ajax({type:"GET",timeout:5000,dataType:"json",url:localGetData("api_server")+"/api/ldfImagesMissed",data:{email:localGetData("email"),},beforeSend:function(xhr){xhr.setRequestHeader('Authorization','Bearer '+localGetData("api_token"));},success:function(result){globalNetworkResponse=Date.now();myDebug('ajaxDownloadListToSync : succès ...'+JSON.stringify(result));let id=1;for(var k in result){globalSyncObject[k]=result[k];console.log(k,result[k]);let leFic=filtreTexte(globalPicturesAvailable,result[k].searchFile);myDebug("filtreTexte retour :"+leFic);if(leFic!=""){myDebug(' ajout du code HTML pour '+id);htmlFTS+="<div style=\"clear:both\">Justificatif des frais du "+result[k].ladate+" ("+result[k].label+", "+nbFR(result[k].ttc)+" ) <br /><div style=\"float:right\"><ons-button modifier=\"material\" onclick=\"rSyncOneNew("+id+",'"+leFic+"');\">Synchroniser</ons-button> </div></div><hr />\n";id++;}
ajaxDownloadListToSync.abort();let htmlFTS="";$('#feedToSync').empty();var ajaxDownloadListToSync=$.ajax({type:"GET",timeout:5000,dataType:"json",url:localGetData("api_server")+"/api/ldfImagesMissed",data:{email:localGetData("email"),},beforeSend:function(xhr){xhr.setRequestHeader('Authorization','Bearer '+localGetData("api_token"));},success:function(result){globalNetworkResponse=Date.now();myDebug('ajaxDownloadListToSync : succès ...'+JSON.stringify(result));let id=1;for(var k in result){globalSyncObject[k]=result[k];let idLdf=result[k].id;myDebug("ajaxDownloadListToSync ref distante "+idLdf);let leFic=filtreTexte(globalPicturesAvailable,result[k].searchFile);myDebug("filtreTexte retour :"+leFic);if(leFic!=""){myDebug(' ajout du code HTML pour '+id);htmlFTS+="<div style=\"clear:both\">Justificatif des frais du "+result[k].ladate+" ("+result[k].label+", "+nbFR(result[k].ttc)+" ) <br /><div style=\"float:right\"><ons-button modifier=\"material\" onclick=\"rSyncOneNew("+id+",'"+leFic+"', "+idLdf+");\">Synchroniser</ons-button> </div></div><hr />\n";id++;}
else{myDebug(' fichier introuvable '+result[k].searchFile);}}
myDebug("apres le for");hideWait();$('#feedToSync').append(htmlFTS);},error:function(result){hideWait();myDebug('ajaxDownloadListToSync : error '+result.error);}});myDebug("end getListToSync");}
function rmVehicule(storageKey,id){let vehicules=JSON.parse(localGetData(storageKey));vehicules.splice(id,1);if(vehicules.length>0)
......
......@@ -3,7 +3,7 @@
*/
// **********************************************************************
//Ne pas toucher, mis à jour automatiquement à partir du config.xml
var globalAppVersion = "1.8.2"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
var globalAppVersion = "1.8.3"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
// **********************************************************************
......
......@@ -153,8 +153,14 @@ function endSendFormForUpdate(formdata, leformName) {
});
}
function endSendForm(formdata, filename) {
/**
*
* @param {*} formdata : les données du formulaire
* @param {*} filename : le nom du fichier
* @param {*} newOrSync : un mot clé pour savoir si on est en mode "sync" (re-upload d'une pièce justificative) ou "new" (nouveau frais)
* @param {*} syncLdfID : dans le cas d'une sync, l'id du frais à synchroniser
*/
function endSendForm(formdata, filename, newOrSync = "new", syncLdfID = null) {
let subject = "";
myDebug('endSendForm ... avec fic = ' + filename + ' mais sur ios on utilisera plutot globalPictureFileName = ' + globalPictureFileName);
//TODO A verifier
......@@ -236,7 +242,6 @@ function endSendForm(formdata, filename) {
}
}
myDebug(" endSendForm on se connecte sur " + localGetData("api_server") + "/api/LdeFrais");
if (ajaxRequestSendForm) {
ajaxRequestSendForm.abort();
}
......@@ -245,8 +250,16 @@ function endSendForm(formdata, filename) {
gotoPage('messageUploadProgress.html', false);
}
let apiTarget = "/api/LdeFrais";
if (newOrSync == "sync") {
apiTarget = "/api/ldfImagesMissed/" + syncLdfID;
}
myDebug(" endSendForm on se connecte sur " + localGetData("api_server") + apiTarget);
console.debug(" endSendForm on se connecte sur " + localGetData("api_server") + apiTarget);
var ajaxRequestSendForm = $.ajax({
url: localGetData("api_server") + "/api/LdeFrais",
url: localGetData("api_server") + apiTarget,
timeout: 10000,
type: "POST",
data: formdata,
......
......@@ -2,39 +2,39 @@
* (c) Éric Seigne <eric.seigne@cap-rel.fr> - 2019-2021 - GNU AGPLv3
*/
function loadLangFile(file, callback, errorCallback) {
// console.debug("Lecture du fichier " + file);
// myDebug("Lecture du fichier " + file);
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function () {
if (rawFile.readyState === 4 && rawFile.status == "200") {
// console.debug("Lecture du fichier appel de callback " + callback);
// myDebug("Lecture du fichier appel de callback " + callback);
callback(rawFile.responseText);
}
else {
if (rawFile.status != "200") {
console.debug("Lecture du fichier error : " + rawFile.status);
myDebug("Lecture du fichier error : " + rawFile.status);
errorCallback();
}
}
};
rawFile.onLangFileErrorLoaded = function () {
console.debug("Lecture du fichier eonLangFileErrorLoadednd, retour null");
myDebug("Lecture du fichier eonLangFileErrorLoadednd, retour null");
errorCallback();
};
rawFile.onerror = function () {
console.debug("Lecture du fichier onerror, retour null");
myDebug("Lecture du fichier onerror, retour null");
errorCallback();
};
rawFile.send(null);
}
function onErrorDefaultLangLoaded() {
console.debug(" onErrorDefaultLangLoaded");
myDebug(" onErrorDefaultLangLoaded");
}
function onLangFileErrorLoaded() {
console.debug(" onLangFileErrorLoaded");
myDebug(" onLangFileErrorLoaded");
//Back to default lang file
loadLangFile("langs/en.json", onLangFileLoaded, onErrorDefaultLangLoaded);
}
......@@ -42,7 +42,7 @@ function onLangFileErrorLoaded() {
function translateUI() {
//On cherche tous les objets a traduire dans l'html
$('.translate').each(function (i, obj) {
console.debug("traduction de " + $(obj).html());
myDebug("traduction de " + $(obj).html());
// alert("on traduit [" + i + "] et " + $(obj).html());
if ($(obj).html()) {
let t = trans($(obj).html());
......@@ -56,13 +56,13 @@ function trans(str) {
}
function onLangFileLoaded(text) {
// console.debug(" onLangFileLoaded text " + text);
// myDebug(" onLangFileLoaded text " + text);
if (text === null || typeof text === "undefined") {
// console.debug(" onLangFileLoaded null ou indef");
// myDebug(" onLangFileLoaded null ou indef");
}
else {
var data = JSON.parse(text);
// console.debug(" onLangFileLoaded ok : " + text);
// myDebug(" onLangFileLoaded ok : " + text);
translateStrings = i18n.create({
values: data
});
......
......@@ -68,7 +68,7 @@ function rSyncOne(idToSync) {
myDebug(" nettoyage de pathToFile (file://)... ");
pathToFile = "";
}
endSendForm(formdata, pathToFile + localFileName);
endSendForm(formdata, pathToFile + localFileName, "sync", idToSync);
}
}
......@@ -126,7 +126,7 @@ function rSyncOne(idToSync) {
//Synchronise un élément vers le serveur, nouveau modele (c'est le serveur qui indique ce qu'il manque)
function rSyncOneNew(idToSync, localFileName) {
function rSyncOneNew(id, localFileName, idToSync) {
showWait();
myDebug("start rSyncOneNew ... pour idToSync = " + idToSync);
let data = globalSyncObject[idToSync];
......@@ -144,7 +144,8 @@ function rSyncOneNew(idToSync, localFileName) {
}
myDebug(" rSyncOneNew localFileName " + localFileName);
endSendForm(formdata, localFileName);
endSendForm(formdata, localFileName, "sync", idToSync);
}
//Tentative de recherche dans un tableau selon le masque de recherche ...
......@@ -195,14 +196,15 @@ function getListToSync() {
let id = 1;
for (var k in result) {
globalSyncObject[k] = result[k];
console.log(k, result[k]);
let idLdf = result[k].id;
myDebug("ajaxDownloadListToSync ref distante " + idLdf);
//Si un fichier local correspond ...
let leFic = filtreTexte(globalPicturesAvailable, result[k].searchFile);
myDebug("filtreTexte retour :" + leFic);
if (leFic != "") {
myDebug(' ajout du code HTML pour ' + id);
htmlFTS += "<div style=\"clear:both\">Justificatif des frais du " + result[k].ladate + " (" + result[k].label + ", " + nbFR(result[k].ttc) + " ) <br /><div style=\"float:right\"><ons-button modifier=\"material\" onclick=\"rSyncOneNew(" + id + ",'" + leFic + "');\">Synchroniser</ons-button> </div></div><hr />\n";
htmlFTS += "<div style=\"clear:both\">Justificatif des frais du " + result[k].ladate + " (" + result[k].label + ", " + nbFR(result[k].ttc) + " ) <br /><div style=\"float:right\"><ons-button modifier=\"material\" onclick=\"rSyncOneNew(" + id + ",'" + leFic + "', " + idLdf + ");\">Synchroniser</ons-button> </div></div><hr />\n";
id++;
}
else {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment