NxTIC/view/js/input.js

162 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* [0] Gestion des constantes et fonctions
=========================================================*/
/* (1) Contiendra le formulaire d'ajout de contact (numéro, pseudo, prénom, nom, submit) */
var newContactHTML = "<h4 data-icon='p' class='new-contact'>";
newContactHTML += "<input type='text' class='no-line' data-name='number' placeholder='Numéro de téléphone'>";
newContactHTML += "<input type='text' class='no-line' data-name='username' placeholder='Pseudo'>";
newContactHTML += "<input type='text' class='no-line' data-name='firstname' placeholder='Prénom'>";
newContactHTML += "<input type='text' class='no-line' data-name='lastname' placeholder='Nom'>";
newContactHTML += "<input type='submit' class='primary no-line sub-number' value='Valider'>";
newContactHTML += "</h4>";
/* (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);