/* [0] Gestion des constantes et fonctions =========================================================*/ /* (1) Contiendra le formulaire d'ajout de contact (numéro, pseudo, prénom, nom, submit) */ var newContactHTML = "

"; newContactHTML += ""; newContactHTML += ""; newContactHTML += ""; newContactHTML += ""; newContactHTML += ""; newContactHTML += "

"; /* (2) TODO: Contiendra la fiche relation complète */ var ficheRelationHTML = ""; /* [1] Initialisation des utilitaires =========================================================*/ /* (1) Instanciation de inputChecker */ var ic = new inputChecker(); /* (2) Paramètres de FormDeflater */ var FormDeflaterP = { tags: ['input'], attr: ['data-name'] }; /* [2] Indexation des inputs =========================================================*/ /* (1) Input de type fichier pour l'import */ var importCallLog = document.querySelector('input#call_log-import[type="file"]'); /* (2) Contiendra les formulaires des contacts ajoutés */ var contactDeflaters = []; // Contiendra les deflaters de chaque formulaire d'ajout de contact function contactForms(){ // {1} On récupère les formulaires // var contactForms = document.querySelectorAll('h4.new-contact'); // {2} Mise à jour des deflaters // contactDeflaters = []; for( var i = 0 ; i < contactForms.length ; i++ ) contactDeflaters.push( new FormDeflater( contactForms[i], FormDeflaterP.tags, FormDeflaterP.attr )); // {3} On retourne la liste des formulaires // return contactForms; } /* (3) Bouton d'ajout de contact */ var addContact = document.querySelector('h4.add-contact'); // Fonction pour l'ajout d'un contact var contactContainer = document.querySelector('article.contact-panel'); function addNewContact(){ console.log('adding New Contact'); // {1} On récupère les éléments (dont les contacts) // var children = contactContainer.children; // {2} On les parcours pour ajouter le nouveau avant le bouton d'ajout // var newContent = ""; for( var i = 0 ; i < children.length ; i++ ){ if( children[i].className == 'add-contact' ) newContent += newContactHTML; // Dans tous les cas, on ajoute l'élément newContent += children[i].outerHTML; } // {3} On affiche le résultat // contactContainer.innerHTML = newContent; // {4} On met à jour notre listener // addContact.removeEventListener('click', addNewContact, false); // {5} On le met a jour avec le nouvel élément // addContact = document.querySelector('h4.add-contact'); addContact.addEventListener('click', addNewContact, false); } addContact.addEventListener('click', addNewContact, false); /* (4) Contiendra les formulaires de fiche relation */ var relationDeflaters = []; // Contiendra les deflaters de chaque formulaire de fiche de relation function relationForms(){ // {1} On récupère les formulaires // var relationForms = document.querySelectorAll('h4.fiche-relation'); // {2} Mise à jour des deflaters // relationDeflaters = []; for( var i = 0 ; i < relationForms.length ; i++ ) relationDeflaters.push( new FormDeflater( relationForms[i], FormDeflaterP.tags, FormDeflaterP.attr )); // {3} On retourne la liste des formulaires // return relationForms; } /* [3] Gestion de l'import du fichier =========================================================*/ importCallLog.addEventListener('change', function(e){ /* (1) On rédige la requête */ var uploadRequest = { path: 'upload/call_log', file: importCallLog.files[0] }; /* (2) On effectue l'upload (import) */ api.send(uploadRequest, function(response){ console.log( response ); // Si tout est bon, on met l'input en bleu if( response.ModuleError == 0 ) importCallLog.addClass('active'); // TODO: Gestion de l'ajout des fiches relation }); }, false); // var number = document.querySelector('input.number[type="text"]'); // ic.append(number, format_number, '06 06 06 06 06'); // // format_number -> format pour les numéros de téléphones // // number.addEventListener('keyup', function(e){ // ic.correct(number, false); // }, false);