168 lines
4.6 KiB
JavaScript
168 lines
4.6 KiB
JavaScript
/* [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 = "<input type='text' class='no-line' data-name='number' placeholder='Numéro de téléphone'> ";
|
|
root.innerHTML += "<input type='text' class='no-line' data-name='username' placeholder='Pseudo'> ";
|
|
root.innerHTML += "<input type='text' class='no-line' data-name='firstname' placeholder='Prénom'> ";
|
|
root.innerHTML += "<input type='text' class='no-line' data-name='lastname' placeholder='Nom'> ";
|
|
root.innerHTML += "<input type='submit' class='primary no-line sub-number' value='Enregistrer'>";
|
|
|
|
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);
|