Commit dc4c1f30 authored by Eric Seigne's avatar Eric Seigne
Browse files

vehicule : ajout immat + debut de modification vehicule existant

parent aa53ac1c
......@@ -19,7 +19,14 @@
<h1>Ajout d'un véhicule personnel</h1>
<p>Note: La carte grise du véhicule doit-être à votre nom. Vous pourrez donc saisir des indemnités kilométriques.</p>
<label for="nom">Nom du véhicule</label>
<ons-input name="label" id="nom" type="text" placeholder="Nom de votre véhicule" require=""></ons-input>
<ons-input name="nom" id="nom" type="text" placeholder="Nom de votre véhicule" required></ons-input>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<label for="immat">Immatriculation</label>
<ons-input name="immat" id="immat" type="text" placeholder="Immatriculation"></ons-input>
</ons-col>
</ons-row>
......@@ -87,7 +94,7 @@
<ons-row>
<ons-col>
<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>
<ons-input name="kmbefore" id="kmbefore" type="number" placeholder="km" require=""></ons-input>
<ons-input name="kmbefore" id="kmbefore" type="number" placeholder="km"></ons-input>
</ons-col>
</ons-row>
......@@ -107,25 +114,6 @@
</div>
<script type="text/javascript">
function switchEnergie(id, nom) {
$('#energie').empty();
$('#energievalue').val(id);
$('#energie').append('Energie: <b>' + nom + "</b>");
document.querySelector('#energie-list').hideExpansion();
}
function switchPuissance(id, nom) {
$('#puissance').empty();
$('#puissancevalue').val(id);
$('#puissance').append('Puissance: <b>' + nom + "</b>");
document.querySelector('#puissance-list').hideExpansion();
}
function switchType(id, nom) {
$('#type').empty();
$('#typevalue').val(id);
$('#type').append('Type: <b>' + nom + "</b>");
document.querySelector('#type-list').hideExpansion();
}
//En attendant de trouver comment faire marcher OnsenUI + validate.js
function checkForm(leform) {
if (genericCheckForm(leform)) {
......@@ -136,8 +124,9 @@
let puissance = document.getElementById('puissancevalue').value;
let type = document.getElementById('typevalue').value;
let kmbefore = document.getElementById('kmbefore').value;
let immat = document.getElementById('immat').value;
addVehicule("vehicules", nom, energie, puissance, type, kmbefore).then(
addVehicule("vehicules", nom, energie, puissance, type, kmbefore, immat).then(
ons.notification.alert("Véhicule ajouté.", { title: "Information" }).then(
function () { closePage(true); }
)
......
......@@ -18,8 +18,15 @@
<ons-col>
<h1>Ajout d'un véhicule professionnel</h1>
<p>Note: La carte grise du véhicule est au nom de la société, vous pourrez saisir des notes de carburant mais pas d'indemnités kilométriques.</p>
<label for="nom">Nom</label>
<ons-input name="label" id="nom" type="text" placeholder="Nom de votre véhicule" require=""></ons-input>
<label for="nom">Nom du véhicule</label>
<ons-input name="nom" id="nom" type="text" placeholder="Nom de votre véhicule" required></ons-input>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<label for="immat">Immatriculation</label>
<ons-input name="immat" id="immat" type="text" placeholder="Immatriculation"></ons-input>
</ons-col>
</ons-row>
......@@ -100,24 +107,6 @@
</div>
<script type="text/javascript">
function switchEnergie(id, nom) {
$('#energie').empty();
$('#energievalue').val(id);
$('#energie').append('Energie: <b>' + nom + "</b>");
document.querySelector('#energie-list').hideExpansion();
}
function switchPuissance(id, nom) {
$('#puissance').empty();
$('#puissancevalue').val(id);
$('#puissance').append('Puissance: <b>' + nom + "</b>");
document.querySelector('#puissance-list').hideExpansion();
}
function switchType(id, nom) {
$('#type').empty();
$('#typevalue').val(id);
$('#type').append('Type: <b>' + nom + "</b>");
document.querySelector('#type-list').hideExpansion();
}
//En attendant de trouver comment faire marcher OnsenUI + validate.js
function checkForm(leform) {
......@@ -131,7 +120,9 @@
let puissance = document.getElementById('puissancevalue').value;
let type = document.getElementById('typevalue').value;
let kmbefore = 0; //En vehicule pro on s'en fiche
addVehicule("vehiculesPro", nom, energie, puissance, type, kmbefore).then(
let immat = document.getElementById('immat').value;
addVehicule("vehiculesPro", nom, energie, puissance, type, kmbefore, immat).then(
ons.notification.alert("Véhicule ajouté.", { title: "Information" }).then(
function () { closePage(true); }
)
......
<ons-page id="ONSConfigEdVehicule">
<ons-toolbar modifier="material">
<div id="titreNav" class="left" onclick="gotoPage('menu.html');">
Modification d'un véhicule
</div>
<div id="home" class="left" onclick="gotoPage('menu.html');">
<img src="img/logo_square.png" id="homeLogo" />
</div>
<div id="menuHautDroite" class="right">
<ons-toolbar-button onclick="fn.open()">
<ons-icon icon="md-menu"></ons-icon>
</ons-toolbar-button>
</div>
</ons-toolbar>
<div id="container">
<form id="leformEdVehicule" name="leformEdVehicule">
<ons-row>
<ons-col>
<h1>Modification d'un véhicule</h1>
<label for="nom">Nom du véhicule</label>
<ons-input name="nom" id="nom" type="text" placeholder="Nom de votre véhicule" required></ons-input>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<label for="immat">Immatriculation</label>
<ons-input name="immat" id="immat" type="text" placeholder="Immatriculation"></ons-input>
</ons-col>
</ons-row>
<input type="hidden" name="energievalue" id="energievalue" value="">
<input type="hidden" name="puissancevalue" id="puissancevalue" value="">
<input type="hidden" name="typevalue" id="typevalue" value="">
<ons-row>
<ons-col>
<ons-list>
<ons-list-item tappable expandable id="energie-list">
<div id="energie">Énergie :</div>
<div class="expandable-content">
<ons-list>
<ons-list-item onclick="switchEnergie('essence','Essence');" tappable>Essence</ons-list-item>
<ons-list-item onclick="switchEnergie('diesel','Diesel');" tappable>Diesel</ons-list-item>
<ons-list-item onclick="switchEnergie('electrique','Electrique');" tappable>Electrique</ons-list-item>
</ons-list>
</div>
</ons-list-item>
</ons-list>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<ons-list>
<ons-list-item tappable expandable id="puissance-list">
<div id="puissance">Puissance :</div>
<div class="expandable-content">
<ons-list>
<ons-list-item onclick="switchPuissance('1cv','1 CV');" tappable>1 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('2cv','2 CV');" tappable>2 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('3cv','3 CV');" tappable>3 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('4cv','4 CV');" tappable>4 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('5cv','5 CV');" tappable>5 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('6cv','6 CV');" tappable>6 CV</ons-list-item>
<ons-list-item onclick="switchPuissance('7cv','7 CV');" tappable>7 CV et +</ons-list-item>
</ons-list>
</div>
</ons-list-item>
</ons-list>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<ons-list>
<ons-list-item tappable expandable id="type-list">
<div id="type">Type de véhicule :</div>
<div class="expandable-content">
<ons-list>
<ons-list-item onclick="switchType('vp','VP (Particulier)');" tappable>VP (Particulier)</ons-list-item>
<ons-list-item onclick="switchType('vu','VU (Utilitaire)');" tappable>VU (Utilitaire)</ons-list-item>
<ons-list-item onclick="switchType('n1','PickUp etc.');" tappable>PickUp etc.</ons-list-item>
<ons-list-item onclick="switchType('moto','Deux roues + de 50cc.');" tappable>Deux roues + de 50cc.</ons-list-item>
<ons-list-item onclick="switchType('cyclo','Deux roues - de 50cc.');" tappable>Deux roues - de 50cc.</ons-list-item>
</ons-list>
</div>
</ons-list-item>
</ons-list>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<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>
<ons-input name="kmbefore" id="kmbefore" type="number" placeholder="km"></ons-input>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<ons-button modifier="material large" onclick="checkForm('leformEdVehicule');">Ajouter</ons-button>
</ons-col>
</ons-row>
<ons-row>
<ons-col>
<!-- <ons-button class="submit" type="submit" value="Ajouter"></ons-button> -->
&nbsp;
<ons-button modifier="material large" onclick="closePage();">Retour</ons-button>
</ons-col>
</ons-row>
</form>
</div>
<script type="text/javascript">
document.addEventListener('init', function (event) {
let lapage = event.target.id; //;event.target.pushedOptions.page;
if (lapage == "ONSConfigEdVehicule") {
let v = localGetData(globalVehiculeEd.storageKey);
if (v == null) {
return;
}
vehicules = JSON.parse(v);
let i = globalVehiculeEd.id;
let vA = vehicules[i]['nom'];
let vE = vehicules[i]['energie'];
let vP = vehicules[i]['puissance'];
let vT = vehicules[i]['type'];
let vKM = vehicules[i]['kmbefore'];
let vIMMAT = vehicules[i]['immat'];
$('#nom').val(vA);
switchEnergie(vE, vE);
switchPuissance(vP, vP);
switchType(vT, vT);
$('#kmbefore').val(vKM);
$('#immat').val(vIMMAT);
}
});
//En attendant de trouver comment faire marcher OnsenUI + validate.js
function checkForm(leform) {
if (genericCheckForm(leform)) {
if ($("#leformEdVehicule").valid()) {
// myDebug("edVehicule on passe dans le validate");
let nom = document.getElementById('nom').value;
let energie = document.getElementById('energievalue').value;
let puissance = document.getElementById('puissancevalue').value;
let type = document.getElementById('typevalue').value;
let kmbefore = document.getElementById('kmbefore').value;
let immat = document.getElementById('immat').value;
edVehicule("vehicules", nom, energie, puissance, type, kmbefore, immat).then(
ons.notification.alert("Véhicule ajouté.", { title: "Information" }).then(
function () { closePage(true); }
)
);
}
}
}
</script>
</ons-page>
This diff is collapsed.
......@@ -23,7 +23,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.0"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
var globalAppVersion = "1.6.4"; // mis à jour automatiquement à partir du fichier config.xml lors du build android
// **********************************************************************
var dataLDF = "";
var dataIK = "";
......@@ -31,6 +31,7 @@ var globalMyNavigator = undefined;
var globalResumable = undefined;
var globalProgressBar = undefined;
var globalTypeFrais = "";
var globalVehiculeEd = undefined;
//liste des donnees que le serveur peut eventuellement échanger avec nous (factorisation de code)
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',
......
......@@ -26,7 +26,8 @@ function feedVehicules(storageKey) {
let vP = vehicules[i]['puissance'];
let vT = vehicules[i]['type'];
let vKM = vehicules[i]['kmbefore'];
let option = vA + ";" + vE + ";" + vP + ";" + vT + ";" + vKM;
let vIMMAT = vehicules[i]['immat'];
let option = vA + ";" + vE + ";" + vP + ";" + vT + ";" + vKM + ";" + vIMMAT;
if (vA !== null) {
// html += ("<option value=\"" + option + "\">" + vA + "</option>");
......@@ -79,9 +80,13 @@ function feedVehiculesConfig(formField, storageKey) {
let vE = vehicules[i]['energie'];
let vP = vehicules[i]['puissance'];
let vT = vehicules[i]['type'];
let vKM = vehicules[i]['kmbefore'];
let vIMMAT = vehicules[i]['immat'];
if (vIMMAT === undefined)
vIMMAT = "";
if (vA !== null) {
html += "<li>" + vA + " (" + vT + " " + vE + " " + vP + ") - <a href=\"#\" onclick=\"rmVehicule('" + storageKey + "'," + i + ");feedVehiculesConfig('" + formField + "','" + storageKey + "');\">Supprimer</a></li>\n";
html += "<li>" + vA + " [" + vIMMAT + "] " + " (" + vT + " " + vE + " " + vP + ") <br /> <span style=\"text-align: right; display: block;\"><a href=\"#\" onclick=\"rmVehicule('" + storageKey + "'," + i + ");feedVehiculesConfig('" + formField + "','" + storageKey + "');\">Supprimer</a> - <a href=\"#\" onclick=\"edVehicule('" + storageKey + "'," + i + ");feedVehiculesConfig('" + formField + "','" + storageKey + "');\">Modifier</a></span></li>\n";
}
}
html += "</ul>";
......
......@@ -336,8 +336,8 @@ function genericCheckForm(leform = null) {
let probleme = "";
// myDebug("genericCheckForm");
//Les deux tableaux doivent etre synchro, en haut le code de l'objet en bas le message à afficher
fieldsToValidate = ['nom', 'arrivee', 'depart', 'distance', 'energievalue', 'label', 'ladate', 'email', 'password', 'puissancevalue', 'ttc', 'typeFrais', 'typevalue', 'photoFacturette'];
fieldsTexte = ["Nom", "Arrivée", "Départ", "Distance", "Type de carburant", "Objet", "La date", "Courrier électronique", "Mot de passe", "Puissance du véhicule", "Montant TTC", "Type de frais", "Type", "Photo de la facturette"];
fieldsToValidate = ['nom', 'arrivee', 'depart', 'distance', 'energievalue', 'label', 'ladate', 'email', 'password', 'puissancevalue', 'immat', 'ttc', 'typeFrais', 'typevalue', 'photoFacturette'];
fieldsTexte = ["Nom", "Arrivée", "Départ", "Distance", "Type de carburant", "Objet", "La date", "Courrier électronique", "Mot de passe", "Puissance du véhicule", "Plaque d'immatriculation", "Montant TTC", "Type de frais", "Type", "Photo de la facturette"];
//En mode developpeur la photo n'est pas indispensable
if (globalDevMode) {
......
......@@ -123,40 +123,40 @@ function gotoPage(destination, saveHistory = true) {
requestKeepAlive();
return true;
//A a jouter un check pour voir si la session est toujours valide ...
// //A a jouter un check pour voir si la session est toujours valide ...
if (saveHistory) {
historique(destination);
}
// if (saveHistory) {
// historique(destination);
// }
// $('#container').load(destination, function () {
// myDebug("gotoPage on charge " + destination);
globalCurrentPage = destination;
// //Si on est en mode modification de frais dataLDF n'est pas vide...
// //on demande donc a completer la page automatiquement
// if (dataLDF != "" && destination != "menu.html") {
// completePageAfterGoto(dataLDF);
// }
// });
let onsContent = document.getElementById('maincontent');
onsContent.innerHTML = '';
onsContent.load(destination);
//Si on arrive sur le menu on s'assure que le menu de droite est la
if (destination == "menu.html") {
//ou document.getElementById('rightmenu');
onsRightMenu.load("parts/splitter.html");
}
// else {
// // $('#container').load(destination, function () {
// // myDebug("gotoPage on charge " + destination);
// globalCurrentPage = destination;
// // //Si on est en mode modification de frais dataLDF n'est pas vide...
// // //on demande donc a completer la page automatiquement
// // if (dataLDF != "" && destination != "menu.html") {
// // completePageAfterGoto(dataLDF);
// // }
// // });
// let onsContent = document.getElementById('maincontent');
// onsContent.innerHTML = '';
// onsContent.load(destination);
// //Si on arrive sur le menu on s'assure que le menu de droite est la
// if (destination == "menu.html") {
// //ou document.getElementById('rightmenu');
// onsRightMenu.load("parts/splitter.html");
// }
// // else {
// // }
//Si on est sur un formulaire on remplace le bouton menu par un bouton save
// if (destination.indexOf("frais-") >= 0) {
// $('#menuHautDroite').replaceWith('<div id="menuHautDroite" class="right"><ons-toolbar-button onclick="checkForm();"><i class="fas fa-check"></i></ons-toolbar-button></div>');
// }
return true;
// //Si on est sur un formulaire on remplace le bouton menu par un bouton save
// // if (destination.indexOf("frais-") >= 0) {
// // $('#menuHautDroite').replaceWith('<div id="menuHautDroite" class="right"><ons-toolbar-button onclick="checkForm();"><i class="fas fa-check"></i></ons-toolbar-button></div>');
// // }
// return true;
}
......
......@@ -601,6 +601,41 @@ document.addEventListener('init', function (event) {
return;
}
// ----------- config modification de vehicule
if (lapage == 'ONSConfigEdVehicule') {
$('#nom').val("on est bien");
$('#leformEdVehicule').validate({
rules: {
onsubmit: false,
success: "valid",
nom: {
required: true,
minlength: 2
},
kmbefore: {
required: false
},
},
messages: {
nom: "Veuillez saisir cette information.",
},
invalidHandler: function (event, validator) {
// 'this' refers to the form
// myDebug("addVehicule error 2");
var errors = validator.numberOfInvalids();
// alert(errors);
},
submitHandler: function (form) {
},
});
// setPageTitle("Véhicule");
return;
}
// ------------- export compta
if (lapage == 'ONSExportCompta') {
......
......@@ -16,10 +16,10 @@ function rmVehicule(storageKey, id) {
}
//Ajoute un véhicule perso -> maximum 3 véhicules dans cette v1 !-)
function addVehicule(storageKey, nom, energie, puissance, type, kmbefore) {
function addVehicule(storageKey, nom, energie, puissance, type, kmbefore, immat) {
return new Promise((resolve, reject) => {
//On cherche une place de libre (max 4 on a dit)
let vehiculeNew = { "nom": nom, "energie": energie, "puissance": puissance, "type": type, "kmbefore": kmbefore };
let vehiculeNew = { "nom": nom, "energie": energie, "puissance": puissance, "type": type, "kmbefore": kmbefore, "immat": immat };
let vehicules = JSON.parse(localGetData(storageKey));
if (vehicules === null) {
vehicules = [];
......@@ -29,3 +29,40 @@ function addVehicule(storageKey, nom, energie, puissance, type, kmbefore) {
//window.location.replace('config.html');
});
}
/**
* Modification d'un véhicule
* @param {*} storageKey
* @param {*} id
*/
function edVehicule(storageKey, id) {
myDebug("edVehicule avec");
myDebug(storageKey);
myDebug("et id = " + id);
myDebug("edVehicule end");
globalVehiculeEd = { storageKey: storageKey, id: id };
gotoPage('config-edVehicule.html', false);
//Q: Possible de modifier le contenu de la page ?
}
function switchEnergie(id, nom) {
$('#energie').empty();
$('#energievalue').val(id);
$('#energie').append('Energie: <b>' + nom + "</b>");
document.querySelector('#energie-list').hideExpansion();
}
function switchPuissance(id, nom) {
$('#puissance').empty();
$('#puissancevalue').val(id);
$('#puissance').append('Puissance: <b>' + nom + "</b>");
document.querySelector('#puissance-list').hideExpansion();
}
function switchType(id, nom) {
$('#type').empty();
$('#typevalue').val(id);
$('#type').append('Type: <b>' + nom + "</b>");
document.querySelector('#type-list').hideExpansion();
}
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