162 lines
4.7 KiB
JavaScript
162 lines
4.7 KiB
JavaScript
/* [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);
|