Relevés

{% comment %} Snippet : lcr-releve-ascenseur.liquid Inclure avec : {% render 'lcr-releve-ascenseur' %} Nécessite que la page contienne un élément #page-root avec les champs du formulaire, ainsi que #photoUpload, #photoGallery, #photoLimitNotice, #status, #dateReleve. {% endcomment %}
' ); printWindow.document.close(); // Fallback si onload ne se déclenche pas (certains navigateurs) setTimeout(function () { if (printWindow && !printWindow.closed) { try { printWindow.focus(); printWindow.print(); } catch (e) {} } }, 800); } // ─── Envoi email ───────────────────────────────────────────────────────────── function sendByEmail() { var data = getFormData(); var body = [ 'Bonjour,', '', 'Veuillez trouver ci-dessous le résumé du relevé ascenseur :', '', '--- INFORMATIONS GÉNÉRALES ---', 'Date du relevé : ' + (data.dateReleve || '—'), 'Nom du technicien / releveur : ' + (data.nomTechnicien || '—'), 'Nom du chantier : ' + (data.chantier || '—'), "Client / donneur d'ordre : " + (data.client || '—'), 'Contact sur site : ' + (data.contact || '—'), 'Adresse du site : ' + (data.adresse || '—'), 'Bâtiment / cage / entrée : ' + (data.batiment || '—'), 'Référence appareil / repère : ' + (data.appareil || '—'), '', "--- CARACTÉRISTIQUES DE L'APPAREIL ---", "Type d'appareil : " + (data.typeAppareil || '—'), 'Nombre de niveaux : ' + (data.nbNiveaux || '—'), "Nombre d'accès cabine : " + (data.nbAcces || '—'), 'Charge (kg) : ' + (data.charge || '—'), 'Vitesse (m/s) : ' + (data.vitesse || '—'), 'Présence machinerie : ' + (data.machinerie || '—'), '', '--- DIMENSIONS PRINCIPALES ---', 'Trémie largeur (mm) : ' + (data.tremieLargeur || '—'), 'Trémie profondeur (mm) : ' + (data.tremieProfondeur || '—'), 'Hauteur gaine totale (mm) : ' + (data.gaineHauteur || '—'), 'Fosse (mm) : ' + (data.fosse || '—'), 'Hauteur sous dalle dernier niveau (mm) : ' + (data.hdc || '—'), 'Course approximative (mm) : ' + (data.course || '—'), '', '--- CABINE ET PORTES ---', 'Cabine largeur (mm) : ' + (data.cabineLargeur || '—'), 'Cabine profondeur (mm) : ' + (data.cabineProfondeur || '—'), 'Cabine hauteur (mm) : ' + (data.cabineHauteur || '—'), 'Passage libre porte (mm) : ' + (data.passageLibre || '—'), 'Hauteur porte (mm) : ' + (data.hauteurPorte || '—'), 'Type de portes palières : ' + (data.typePorte || '—'), '', '--- OBSERVATIONS ---', 'Travaux envisagés / besoin client : ' + (data.travauxPrevus || '—'), 'Contraintes techniques relevées : ' + (data.contraintes || '—'), 'Notes complémentaires : ' + (data.notes || '—'), '', '--- VALIDATION ---', 'Nom du releveur : ' + (data.signatureReleveur || '—'), 'Nom du client / représentant : ' + (data.signatureClient || '—'), 'Commentaire de validation : ' + (data.validationCommentaire || '—'), '', 'Nombre de photos ajoutées : ' + (data.photos ? data.photos.length : 0), '', // BUG 1 CORRIGÉ : apostrophes typographiques remplacées "NB : les photos ne peuvent pas être jointes automatiquement via mailto depuis le navigateur.", "Elles doivent être ajoutées manuellement à l'email si nécessaire." ].join('\n'); var subject = 'Relevé ascenseur - ' + (data.chantier || 'Sans chantier'); window.location.href = 'mailto:?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body); } // ─── Exposition globale des fonctions (boutons HTML via onclick="...") ──────── window.lcrAscenseur = { save: saveForm, load: loadForm, reset: resetForm, print: openPrintView, email: sendByEmail }; // BUG 3 CORRIGÉ : listeners attachés après chargement du DOM document.addEventListener('DOMContentLoaded', function () { var photoUpload = document.getElementById('photoUpload'); if (photoUpload) { photoUpload.addEventListener('change', handlePhotoUpload); } var dateField = document.getElementById('dateReleve'); if (dateField) { dateField.value = new Date().toISOString().split('T')[0]; } }); })();