NxTIC/view/js/input.js

162 lines
4.7 KiB
JavaScript
Raw Normal View History

/* [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 */
2016-04-20 13:46:19 +00:00
var uploadRequest = {
path: 'upload/call_log',
file: importCallLog.files[0]
};
/* (2) On effectue l'upload (import) */
2016-04-20 13:46:19 +00:00
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);