/* [0] Gestion des constantes et fonctions =========================================================*/ /* (1) Contiendra le formulaire d'ajout de contact (numéro, pseudo, prénom, nom, submit) */ function newContactHTMLBuilder(){ var root = document.createElement('h4'); root.dataset.icon = 'p'; root.className = 'new-contact'; root.innerHTML = " "; root.innerHTML += " "; root.innerHTML += " "; root.innerHTML += " "; root.innerHTML += ""; return root; } /* (2) TODO: Contiendra la fiche relation complète */ var ficheRelationHTML = ""; // Fonction qui met à jour un élément et son listener function updateListener(element, eventType, handler, newElement){ element.removeEventListener(eventType, handler); newElement.addEventListener(eventType, handler); return newElement; } /* [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 = $('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 = $$('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 = $('h4.add-contact'); // Fonction pour l'ajout d'un contact var contactContainer = $('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; var clen = children.length; console.log( children ); // {2} On retire les 2 derniers enfants // contactContainer.removeChild(addContact); // {3} On ajoute le nouveau contact // contactContainer.appendChild( newContactHTMLBuilder() ); // {4} On remet les enfants précédemment enlevés // contactContainer.appendChild(addContact); // {4} On met à jour notre listener // // addContact = updateListener(addContact, 'click', addNewContact, $('h4.add-contact')); } 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 = $$('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 = $('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);