// STRUCTURE DU localStorage // subject -> contient les données du sujet // contacts -> contient les données de tous les contacts // fiches -> contient les données de toutes les fiches /* (3) Fonction qui met à jour un élément et son listener */ function updateListener(element, eventType, handler){ element.removeEventListener(eventType, handler); element.addEventListener(eventType, handler); } /* [1] Initialisation des utilitaires et variables =========================================================*/ /* (1) Input de type fichier pour l'import */ var importCallLog = $('input#call_log-import[type="file"]'); /* (2) Conteneur des fiches relation */ var ficheContainer = $('article.relation-panel'); /* (3) Initialisation des managers */ var subjectManager; var contactManager; var miniManager; var ficheManager; function dynamicUpdate(){ console.log('DYNAMIC UPDATE: UPDATING'); /* (1) On enregistre les MINI fiches relation */ miniManager.fieldsToStorage(); /* (2) On enregister les FICHES relation */ // ficheManager.fieldsToStorage(); /* (3) On enregistre les CONTACTS */ contactManager.fieldsToStorage(); /* (4) On synchronise les MINI avec les CONTACTS */ miniManager.sync(); /* (5) On synchronise les FICHE avec les CONTACTS */ // ficheManager.sync(); /* (6) On affiche le tout */ miniManager.storageToFields(); // ficheManager.storageToFields(); contactManager.storageToFields(); } /* [2] Inclusion des scripts externes et lancement =========================================================*/ include('/js/includes/input-phone-subject.js', function(){ include('/js/includes/input-phone-contact.js', function(){ include('/js/includes/input-phone-mini.js', function(){ include('/js/includes/input-phone-fiche.js', function(){ /* [3] Gestion du formulaire du sujet =========================================================*/ /* (1) On crée une instance du manager du sujet */ subjectManager = new inputPhoneSubject( $('article.subject-panel [data-name="number"]'), $('article.subject-panel [data-name="username"]'), $('article.subject-panel [data-name="firstname"]'), $('article.subject-panel [data-name="lastname"]'), $('article.subject-panel [data-name="submit"]') ); /* (2) On le démarre */ subjectManager.attach(); /* [4] Gestion des formulaires de contact =========================================================*/ /* (1) On crée une instance du gestionnaire des CONTACTS */ contactManager = new inputPhoneContact( $('article.contact-panel'), $('h4.add-contact') ); /* (2) On le démarre */ contactManager.attach(dynamicUpdate); /* [5] Gestion des mini fiches relation =========================================================*/ /* (1) On crée une instance du gestionnaire des mini fiches relation */ miniManager = new inputPhoneMini( $('article.mini-relation-panel'), $('#nav-mini') ); miniManager.attach(dynamicUpdate); /* [6] Gestion des fiches relation =========================================================*/ /* (1) On crée une instance du gestionnaire des fiches relation */ miniManager = new inputPhoneMini( $('article.relation-panel'), $('#nav-mini') ); miniManager.attach(dynamicUpdate); }) }) }) }); // ETAPE 1 : INITIALISATION (ON RESTAURE LES DONNEES) // 1. contact.storageToFields(); // 2. contact.add(); // 3. mini.storageToFields(); // 4. fiche.storageToFields(); // ETAPE 2 : ENREGISTREMENT + MISE À JOUR // 1. mini.fieldsToStorage(); // 2. fiche.fieldsToStorage(); // 3. contact.fieldsToStorage(); // 4. mini.sync(); // 5. fiche.sync(); /* [6] 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);