Commit 289ff807 authored by Eric Seigne's avatar Eric Seigne
Browse files

version 1.6.10 - sauvegarde immat vehicule pro (modification)

parent 73831541
<?xml version='1.0' encoding='utf-8'?>
<widget id="fr.caprel.doliscan" version="1.6.9" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="fr.caprel.doliscan" version="1.6.10" 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>
......@@ -146,5 +146,5 @@
</feature>
</platform>
<plugin name="cordova-plugin-calendar" />
<preference name="OverrideUserAgent" value="Mozilla/5.0 OpenNDF/1.6.9 Android" />
<preference name="OverrideUserAgent" value="Mozilla/5.0 OpenNDF/1.6.10 Android" />
</widget>
......@@ -6,5 +6,23 @@ echo 'adb logcat | grep NDFDEBUG | grep chromium | sed s/".*NDFDEBUG : "/""/ '
echo ""
echo ""
# echo "pour regarder le contenu de la base de données :"
# echo "pour regarder l#
# debug_android.sh
#
# Copyright (c) 2021 Eric Seigne <eric.seigne@cap-rel.fr>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
e contenu de la base de données :"
# echo "sqlite3 /data/data/fr.caprel.doliscan/databases/doliscan.db"
......@@ -117,7 +117,10 @@
if (lapage == "ONSConfigEdVehicule") {
if (globalVehiculeEd.storageKey == "vehicules") {
feedKMBefore();
feedKMBefore(false);
}
else {
feedKMBefore(true);
}
let v = localGetData(globalVehiculeEd.storageKey);
......
......@@ -50,7 +50,8 @@
$('#loadingPage').fadeOut(1000);
//On affiche le message de nouvelle version si l'utilisateur ne l'a pas déjà eu
if (compareVersions(globalAppVersion, localGetData("changeLogView")) > 0) {
//on reste sur les "grosses versions" par exemple 1.4 et 1.5, pas 1.5.3 et 1.5.4
if (compareVersions(globalAppVersion, localGetData("changeLogView"), 2) > 0) {
myDebug("on affiche le changelog");
showChangelog();
}
......
......@@ -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 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 globalAppVersion="1.6.9";var dataLDF="";var dataIK="";var globalMyNavigator=undefined;var globalResumable=undefined;var globalProgressBar=undefined;var globalTypeFrais="";var globalVehiculeEd=undefined;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'];function errorHandlerCustomFile(title,message){myDebug('errorHandlerCustomFile : '+title+' -- message follow:');myDebug(message);}
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 globalAppVersion="1.6.10";var dataLDF="";var dataIK="";var globalMyNavigator=undefined;var globalResumable=undefined;var globalProgressBar=undefined;var globalTypeFrais="";var globalVehiculeEd=undefined;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'];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;}
......@@ -75,7 +75,9 @@ else{myDebug(" feedToSync no more entries!");$(formField).append(htmlFTS);}};ob
myDebug(" feedToSync : read OK, append HTML done");}
myDebug("end feedToSync ..."+htmlFTS);return htmlFTS;}
function feedAproposCustom(){myDebug("feedAproposCustom");$("#feedAproposCustom").empty();myDebug("feedAproposCustom empty ok -> feed with html now");$("#feedAproposCustom").append(localGetData('customAbout'));return;}
function feedKMBefore(){myDebug("feedKMBefore");$("#feedKMBefore").empty();let html=" <ons-row>";html+=" <ons-col>";html+=" <label for=\"kmbefore\">Kilométrage réalisé cette année dans le cadre de votre travail avec ce véhicule avant l'utilisation de doliscan (c'est pour pouvoir établir la base de calcul des indemnités qui doit prendre en compte le total de l'année civile en cours)</label>";html+=" <ons-input name=\"kmbefore\" id=\"kmbefore\" type=\"number\" placeholder=\"km\"></ons-input>";html+=" </ons-col>";html+=" </ons-row>";$("#feedKMBefore").append(html);return;}
function feedKMBefore(ispro){myDebug("feedKMBefore");$("#feedKMBefore").empty();let html=" <ons-row>";html+=" <ons-col>";if(ispro){html+=" <input type=\"hidden\" name=\"kmbefore\" id=\"kmbefore\" value=\"0\">";}
else{html+=" <label for=\"kmbefore\">Kilométrage réalisé cette année dans le cadre de votre travail avec ce véhicule avant l'utilisation de doliscan (c'est pour pouvoir établir la base de calcul des indemnités qui doit prendre en compte le total de l'année civile en cours)</label>";html+=" <ons-input name=\"kmbefore\" id=\"kmbefore\" type=\"number\" placeholder=\"km\"></ons-input>";}
html+=" </ons-col>";html+=" </ons-row>";$("#feedKMBefore").append(html);return;}
function feedDoliscanInfos(){let htmlInfos="";myDebug("feedDoliscanInfos");$("#feedDoliscanInfos").empty();myDebug("feedDoliscanInfos empty ok -> feed with html now");htmlInfos+="<p>";htmlInfos+="Compte "+localGetData("email")+"<br />";htmlInfos+="Serveur "+localGetData("name_server")+"<br />";htmlInfos+="Version "+globalAppVersion+"<br />";htmlInfos+="</p>";$("#feedDoliscanInfos").append(htmlInfos);myDebug("feedDoliscanInfos append: "+htmlInfos);myDebug("feedDoliscanInfos append, hide and show ok");return htmlInfos;}
function feedToAgendaIK(formField,dateStart,dateEnd){let htmlFTS="";myDebug("feedToAgendaIK pour "+formField);$(formField).empty();window.plugins.calendar.hasReadWritePermission(function(result){if(result==false){window.plugins.calendar.requestReadWritePermission();}})
showWait();var title=null;var loc=null;var notes=null;var startDate=new Date(dateStart);var endDate=new Date(dateEnd);window.plugins.calendar.findEvent(title,loc,notes,startDate,endDate,onSuccessAgendaIK,onErrorAgendaIK);myDebug("end feedToAgendaIK ..."+htmlFTS);}
......@@ -326,9 +328,9 @@ function basename(path){return path.replace(/\\/g,'/').replace(/.*\//,'');}
function dirname(path){return path.replace(/\\/g,'/').replace(/\/[^\/]*$/,'');;}
function computeHT(taux,destination){let ttc=$('#ttc').val();let ttcVal=parseFloat(ttc.replace(",","."));let ht=(ttcVal/((taux/100)+1)).toFixed(2);$(destination).val(ht);}
function computeHTAmount(taux,destination){let ttc=$('#ttc').val();let ttcVal=parseFloat(ttc.replace(",","."));let ht=(ttcVal/((taux/100)+1));let diff=ttcVal-ht;let arrondis=Math.round(diff*100)/100;$(destination).val(arrondis);}
function compareVersions(a,b){myDebug("compare version "+a+" et "+b+";")
function compareVersions(a,b,taille=3){myDebug("compare version "+a+" et "+b+";")
if(a==""||a===undefined||a==null||b===undefined||b==null||b==""){myDebug(" retour -2");return-2;}
var pa=a.split('.');var pb=b.split('.');for(var i=0;i<3;i++){var na=Number(pa[i]);var nb=Number(pb[i]);if(na>nb){myDebug(" retour 1");return 1;}
var pa=a.split('.');var pb=b.split('.');for(var i=0;i<taille;i++){var na=Number(pa[i]);var nb=Number(pb[i]);if(na>nb){myDebug(" retour 1");return 1;}
if(nb>na){myDebug(" retour -1");return-1;}
if(!isNaN(na)&&isNaN(nb)){myDebug(" retour 1");return 1;}
if(isNaN(na)&&!isNaN(nb)){myDebug(" retour -1");return-1;}}
......
......@@ -17,7 +17,7 @@ var globalSyncInProgress = false; // Pour savoir si on est en phase de syn
var globalPictureFileName = ""; // Le nom du fichier sans résolution (depuis ios wkbidule app:// ... on garde dans cette variable le path basique pour resumable & sync)
// **********************************************************************
//Ne pas toucher, mis à jour automatiquement à partir du config.xml
var globalAppVersion = "1.6.9"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
var globalAppVersion = "1.6.10"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
// **********************************************************************
var dataLDF = "";
var dataIK = "";
......
......@@ -4,6 +4,11 @@
* all of customizing parts
*/
/**
* Gestion de l'erreur sur la generation du fichier custom
* @param {string} title
* @param {string} message
*/
function errorHandlerCustomFile(title, message) {
myDebug('errorHandlerCustomFile : ' + title + ' -- message follow:');
myDebug(message);
......@@ -87,7 +92,10 @@ function downloadCustomCSS() {
});
}
/**
* Save custom CSS as local file
* @param {string} css
*/
function saveCSSFile(css) {
let cssFileName = '/custom.css';
// myDebug(blob.size);
......@@ -167,7 +175,11 @@ function onErrorResolveLocalFileSystemURL(error) {
myDebug('onErrorResolveLocalFileSystemURL error : ' + error.code);
}
/**
* Save logo to local file
* @param {*} data
* @param {string} format default png file
*/
function saveLogoFile(data, format = "png") {
myDebug("saveLogoFile");
......
......@@ -8,10 +8,11 @@
/**
* Recherche si une ville existe ... propose un choix le cas échéant
*
* @param {[type]} depart [depart description]
* @param {[type]} departSlug [departSlug description]
* @param {string} leform formulaire html
* @param {string} depart point de depart
* @param {string} departSlug slug du point de depart
*
* @return {[type]} [return description]
* @return {string} [return description]
*/
function searchVille(leform, ville, slug) {
myDebug("searchVille : " + ville);
......
......@@ -193,15 +193,25 @@ function feedAproposCustom() {
return;
}
function feedKMBefore() {
/**
*
* @param {boolean} ispro true if is pro
* @returns
*/
function feedKMBefore(ispro) {
myDebug("feedKMBefore");
$("#feedKMBefore").empty();
//uniquement pour les vehicules perso
let html = " <ons-row>";
html += " <ons-col>";
html += " <label for=\"kmbefore\">Kilométrage réalisé cette année dans le cadre de votre travail avec ce véhicule avant l'utilisation de doliscan (c'est pour pouvoir établir la base de calcul des indemnités qui doit prendre en compte le total de l'année civile en cours)</label>";
html += " <ons-input name=\"kmbefore\" id=\"kmbefore\" type=\"number\" placeholder=\"km\"></ons-input>";
//uniquement pour les vehicules perso
if (ispro) {
html += " <input type=\"hidden\" name=\"kmbefore\" id=\"kmbefore\" value=\"0\">";
}
else {
html += " <label for=\"kmbefore\">Kilométrage réalisé cette année dans le cadre de votre travail avec ce véhicule avant l'utilisation de doliscan (c'est pour pouvoir établir la base de calcul des indemnités qui doit prendre en compte le total de l'année civile en cours)</label>";
html += " <ons-input name=\"kmbefore\" id=\"kmbefore\" type=\"number\" placeholder=\"km\"></ons-input>";
}
html += " </ons-col>";
html += " </ons-row>";
$("#feedKMBefore").append(html);
......
......@@ -124,12 +124,13 @@ function computeHTAmount(taux, destination) {
* Fonction basique et pas terrible de comparaison de deux versions ...
* @param {*} a version a sous la forme 1.2.3
* @param {*} b version b sous la forme 1.2.4
* @param {*} taille pour savoir où on stoppe la comparaison, par exemple 1.6.2 et 1.6.4 = 0 si taille = 2 (compare 1.6 et 1.6)
* @returns -2 si a ou b sont vides ou indéfinis ou null
* -1 si b > a
* 0 si a == b
* 1 si a > b
*/
function compareVersions(a, b) {
function compareVersions(a, b, taille = 3) {
myDebug("compare version " + a + " et " + b + ";")
if (a == "" || a === undefined || a == null || b === undefined || b == null || b == "") {
myDebug(" retour -2");
......@@ -137,7 +138,7 @@ function compareVersions(a, b) {
}
var pa = a.split('.');
var pb = b.split('.');
for (var i = 0; i < 3; i++) {
for (var i = 0; i < taille; i++) {
var na = Number(pa[i]);
var nb = Number(pb[i]);
if (na > nb) {
......
Supports Markdown
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