From b2fc40bf71e93f13f30ab6bf79a134c98c4f1cce Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Tue, 27 Sep 2016 16:13:51 +0200 Subject: [PATCH] clean-up --- js/action-script-min.js | 16 +- js/action-script.js | 404 ++--- js/includes/input-phone-subject-min.js | 6 +- js/includes/input-phone-subject.js | 15 +- src/dynamic/profile/sample.svg | 1 + view/js/input-min.js | 59 +- view/js/input.js | 2113 ++++++++++++------------ 7 files changed, 1311 insertions(+), 1303 deletions(-) create mode 100644 src/dynamic/profile/sample.svg diff --git a/js/action-script-min.js b/js/action-script-min.js index d9dd125..fac5a08 100644 --- a/js/action-script-min.js +++ b/js/action-script-min.js @@ -1,9 +1,7 @@ -var DOM={WRAPPER:$("body > #WRAPPER"),HEADER:$("body > #WRAPPER > #HEADER"),MENUSIDE:$("body > #WRAPPER > #MENU-SIDE"),CONTAINER:$("body > #WRAPPER > #CONTAINER")},pageManager;api=new APIClass("/api/");Notification=new NotificationClass($("#notification-container"));Notification.defaultTimeout=4E3; -Notification.errorCodes={"-1":"Erreur de r\u00e9seau, veuillez recharger la page et r\u00e9essayer",0:"Erreur interne",1:"Erreur interne",2:"Erreur interne",3:"Le fichier est introuvable",4:"Erreur interne",5:"Erreur interne",6:"Erreur interne",7:"Erreur interne",8:"Erreur interne",9:"Certaines donn\u00e9es sont manquantes",10:"Erreur interne",11:"Erreur interne",12:"Erreur interne",13:"Erreur interne",14:"Erreur interne",15:"Erreur interne",16:"Vous n'avez pas la permission d'effectuer cette action", -17:"Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9",18:"Le fichier est invalide (format incorrect)"};lsi.setStorage(sessionStorage); -function navSubMenu(a){var c=$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+a+'"]'):b,b=null==b?$("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub > span[data-sublink]"):b;if(null==b)return!1;null!=c&&c.remClass("active");c=$$("#CONTAINER > section[data-sublink].active");for(a=0;a< -c.length;a++)c[a].remClass("active");if(null!=b)for(b.addClass("active"),c=$$('#CONTAINER > section[data-sublink="'+b.getData("sublink")+'"]'),a=0;a #MENU-SIDE > span[data-link="'+pageManager.page+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$('#WRAPPER > #MENU-SIDE > span[data-link="'+a+'"]'):b,b=null==b?$('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]'):b;if(null==b)return!1;null!=c&&c.remClass("active");null!=b&&b.addClass("active");b.getData("link")&&(DOM.HEADER.addClass("loading"),pageManager.setPage(b.getData("link")),pageManager.activeXHR.addEventListener("loadend", -function(){1<=pageManager.vars.length&&null!=$('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]')?navSubMenu(pageManager.vars[0]):navSubMenu(null);var a=$("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub");null!=a&&a.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("sublink");)a=a.parentNode;a.getData("sublink")&&navSubMenu(a)},!1);DOM.HEADER.remClass("loading")},!1))} -DOM.MENUSIDE.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("link");)a=a.parentNode;a.getData("link")&&navMenu(a.getData("link"))},!1);function reload(){navMenu(pageManager.page)}var LOGIN={show:document.getElementById("user-data"),hide:document.getElementById("login-close"),page:document.getElementById("LOGIN")};LOGIN.show.addEventListener("click",function(a){LOGIN.page.className="active"},!1); -LOGIN.hide.addEventListener("click",function(a){LOGIN.page.className=""},!1);api.send({path:"download/menu"},function(a){if(0==a.ModuleError){pagelist=[];for(var c=0;c span[data-link="+c.page+'] + div.sub > span[data-sublink="'+c.vars[0]+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$("#MENU-SIDE > span[data-link="+c.page+'] + div.sub > span[data-sublink="'+a+'"]'):b,b=null==b?$("#MENU-SIDE > span[data-link="+c.page+"] + div.sub > span[data-sublink]"):b;if(null==b)return!1;null!=d&&d.remClass("active");d=$$("#CONTAINER > section[data-sublink].active");for(a=0;a section[data-sublink="'+b.getData("sublink")+'"]'),a=0;a #MENU-SIDE > span[data-link="'+c.page+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$('#WRAPPER > #MENU-SIDE > span[data-link="'+a+'"]'):b,b=null==b?$('#WRAPPER > #MENU-SIDE > span[data-link="'+ +c.pagelist[0]+'"]'):b;if(null==b)return!1;null!=d&&d.remClass("active");null!=b&&b.addClass("active");b.getData("link")&&(e.HEADER.addClass("loading"),c.setPage(b.getData("link")),c.activeXHR.addEventListener("loadend",function(){1<=c.vars.length&&null!=$('#CONTAINER > section[data-sublink="'+c.vars[0]+'"]')?f(c.vars[0]):f(null);var a=$("#MENU-SIDE > span[data-link="+c.page+"] + div.sub");null!=a&&a.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("sublink");)a=a.parentNode; +a.getData("sublink")&&f(a)},!1);e.HEADER.remClass("loading")},!1))}var e={WRAPPER:$("body > #WRAPPER"),HEADER:$("body > #WRAPPER > #HEADER"),MENUSIDE:$("body > #WRAPPER > #MENU-SIDE"),CONTAINER:$("body > #WRAPPER > #CONTAINER")},c;api=new APIClass("/api/");Notification=new NotificationClass($("#notification-container"));Notification.defaultTimeout=4E3;Notification.errorCodes={"-1":"Erreur de r\u00e9seau, veuillez recharger la page et r\u00e9essayer",0:"Erreur interne",1:"Erreur interne",2:"Erreur interne", +3:"Le fichier est introuvable",4:"Erreur interne",5:"Erreur interne",6:"Erreur interne",7:"Erreur interne",8:"Erreur interne",9:"Certaines donn\u00e9es sont manquantes",10:"Erreur interne",11:"Erreur interne",12:"Erreur interne",13:"Erreur interne",14:"Erreur interne",15:"Erreur interne",16:"Vous n'avez pas la permission d'effectuer cette action",17:"Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9",18:"Le fichier est invalide (format incorrect)"};lsi.setStorage(sessionStorage);e.MENUSIDE.addEventListener("click", +function(a){for(a=a.target;a!=document.body&&!a.getData("link");)a=a.parentNode;a.getData("link")&&g(a.getData("link"))},!1);var k=document.getElementById("user-data"),l=document.getElementById("login-close"),h=document.getElementById("LOGIN");k.addEventListener("click",function(a){h.className="active"},!1);l.addEventListener("click",function(a){h.className=""},!1);api.send({path:"download/menu"},function(a){if(0==a.ModuleError){pagelist=[];for(var d=0;d #WRAPPER'), - HEADER: $('body > #WRAPPER > #HEADER'), - MENUSIDE: $('body > #WRAPPER > #MENU-SIDE'), - CONTAINER: $('body > #WRAPPER > #CONTAINER') +(function(){ + + /* [0] Initialisation des variables en local + =========================================================*/ + var DOM = { + WRAPPER: $('body > #WRAPPER'), + HEADER: $('body > #WRAPPER > #HEADER'), + MENUSIDE: $('body > #WRAPPER > #MENU-SIDE'), + CONTAINER: $('body > #WRAPPER > #CONTAINER') + }; + var pageManager; + + + // On cree une instance de l'api + api = new APIClass('/api/'); + + // On crée une instance du gestionnaire des notifications + Notification = new NotificationClass( $('#notification-container') ); + // Temps d'une notification : ~4s + Notification.defaultTimeout = 4000; + + // Définition des codes d'erreurs + Notification.errorCodes = { + '-1': 'Erreur de réseau, veuillez recharger la page et réessayer', + 0: 'Erreur interne', + 1: 'Erreur interne', + 2: 'Erreur interne', + 3: 'Le fichier est introuvable', + 4: 'Erreur interne', + 5: 'Erreur interne', + 6: 'Erreur interne', + 7: 'Erreur interne', + 8: 'Erreur interne', + 9: 'Certaines données sont manquantes', + 10: 'Erreur interne', + 11: 'Erreur interne', + 12: 'Erreur interne', + 13: 'Erreur interne', + 14: 'Erreur interne', + 15: 'Erreur interne', + 16: 'Vous n\'avez pas la permission d\'effectuer cette action', + 17: 'Le téléchargement a échoué', + 18: 'Le fichier est invalide (format incorrect)' }; -var pageManager; - -// On cree une instance de l'api -api = new APIClass('/api/'); - -// On crée une instance du gestionnaire des notifications -Notification = new NotificationClass( $('#notification-container') ); -// Temps d'une notification : ~4s -Notification.defaultTimeout = 4000; - -// Définition des codes d'erreurs -Notification.errorCodes = { - '-1': 'Erreur de réseau, veuillez recharger la page et réessayer', - 0: 'Erreur interne', - 1: 'Erreur interne', - 2: 'Erreur interne', - 3: 'Le fichier est introuvable', - 4: 'Erreur interne', - 5: 'Erreur interne', - 6: 'Erreur interne', - 7: 'Erreur interne', - 8: 'Erreur interne', - 9: 'Certaines données sont manquantes', - 10: 'Erreur interne', - 11: 'Erreur interne', - 12: 'Erreur interne', - 13: 'Erreur interne', - 14: 'Erreur interne', - 15: 'Erreur interne', - 16: 'Vous n\'avez pas la permission d\'effectuer cette action', - 17: 'Le téléchargement a échoué', - 18: 'Le fichier est invalide (format incorrect)' -}; - -// On définit qu'on veut utiliser le 'sessionStorage' -lsi.setStorage(sessionStorage); + // On définit qu'on veut utiliser le 'sessionStorage' + lsi.setStorage(sessionStorage); -/* [1] Toggle du sub-menu-side <-> navigation -===========================================*/ -function navSubMenu(subsection){ - /* [1] Format du param - ------------------------------------------------*/ - // Contient l'element courant - var current = $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'); + /* [1] Toggle du sub-menu-side <-> navigation + ===========================================*/ + function navSubMenu(subsection){ + /* [1] Format du param + ------------------------------------------------*/ + // Contient l'element courant + var current = $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'); - // Contiendra l'element cible - var target = null; + // Contiendra l'element cible + var target = null; - // si @subsection est un element, on le prends - target = (subsection instanceof Element) ? subsection : null; + // si @subsection est un element, on le prends + target = (subsection instanceof Element) ? subsection : null; - // Si string, on trouve l'element correspondant - target = (typeof subsection == 'string') ? $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink="'+subsection+'"]') : target; + // Si string, on trouve l'element correspondant + target = (typeof subsection == 'string') ? $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink="'+subsection+'"]') : target; - // Si rien trouve, on prend le premier element correspondant a la premiere page - target = (target == null) ? $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink]') : target; + // Si rien trouve, on prend le premier element correspondant a la premiere page + target = (target == null) ? $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub > span[data-sublink]') : target; - // Si le param n'est toujours pas bon, on retourne une erreur - if( target == null ) return false; + // Si le param n'est toujours pas bon, on retourne une erreur + if( target == null ) return false; - /* [2] Gestion de l'affichage de l'element - ------------------------------------------------*/ - // On desactive l'element courant - if( current != null ) - current.remClass('active'); + /* [2] Gestion de l'affichage de l'element + ------------------------------------------------*/ + // On desactive l'element courant + if( current != null ) + current.remClass('active'); - // On cache les sections visibles - var visibleSections = $$('#CONTAINER > section[data-sublink].active'); - for( var i = 0 ; i < visibleSections.length ; i++ ) - visibleSections[i].remClass('active'); + // On cache les sections visibles + var visibleSections = $$('#CONTAINER > section[data-sublink].active'); + for( var i = 0 ; i < visibleSections.length ; i++ ) + visibleSections[i].remClass('active'); - // On active le nouveau - if( target != null ){ - target.addClass('active'); + // On active le nouveau + if( target != null ){ + target.addClass('active'); - // On affiche les sections associées - var targetSections = $$('#CONTAINER > section[data-sublink="'+target.getData('sublink')+'"]'); - for( var i = 0 ; i < targetSections.length ; i++ ) - targetSections[i].addClass('active'); + // On affiche les sections associées + var targetSections = $$('#CONTAINER > section[data-sublink="'+target.getData('sublink')+'"]'); + for( var i = 0 ; i < targetSections.length ; i++ ) + targetSections[i].addClass('active'); + + } + + /* [3] Gestion de pageManager + ------------------------------------------------*/ + // Si element, on recupere le data-link + var page = null; + + // Si erreur, on retourne FALSE + if( !target.getData('sublink') ) return false + + var mustRefresh = pageManager.vars[0] != target.getData('sublink'); + + // On met a jour la variable page-manager si data-link trouve + pageManager.vars[0] = target.getData('sublink'); + + if( mustRefresh ) + // navMenu(pageManager.page); + pageManager.updateURL(); } - /* [3] Gestion de pageManager - ------------------------------------------------*/ - // Si element, on recupere le data-link - var page = null; - // Si erreur, on retourne FALSE - if( !target.getData('sublink') ) return false + /* [4 Toggle du side-menu <-> navigation + ===========================================*/ + function navMenu(section){ - var mustRefresh = pageManager.vars[0] != target.getData('sublink'); + /* [1] Format du param + ------------------------------------------------*/ + // Contient l'element courant + var current = $('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.page+'"]'); - // On met a jour la variable page-manager si data-link trouve - pageManager.vars[0] = target.getData('sublink'); + // Contiendra l'element cible + var target = null; - if( mustRefresh ) - // navMenu(pageManager.page); - pageManager.updateURL(); + // si @section est un element, on le prends + target = (section instanceof Element) ? section : null; -} + // Si string, on trouve l'element correspondant + target = (typeof section == 'string') ? $('#WRAPPER > #MENU-SIDE > span[data-link="'+section+'"]') : target; + + // Si rien trouve, on prend le premier element correspondant a la premiere page + target = (target == null) ? $('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]') : target; + + // Si le param n'est toujours pas bon, on retourne une erreur + if( target == null ) return false; + + /* [2] Gestion de l'affichage de l'element + ------------------------------------------------*/ + // On desactive l'element courant + if( current != null ) + current.remClass('active'); + // On active le nouveau + if( target != null ) + target.addClass('active'); + + /* [3] Gestion de pageManager + ------------------------------------------------*/ + // Si element, on recupere le data-link + var page = null; + + // On charge la page si data-link trouve + if( target.getData('link') ){ + DOM.HEADER.addClass('loading'); // Animation de chargement + + pageManager.setPage( target.getData('link') ); + + pageManager.activeXHR.addEventListener('loadend', function(){ + + // On gere la navigation du sous-menu (si defini, utilise) + var subSectionExists = pageManager.vars.length >= 1 && $('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]') != null; + if( subSectionExists ) // Si le lien du menu associe existe + navSubMenu(pageManager.vars[0]); // on charge la page associee + else // sinon + navSubMenu(null); // on charge le lien par defaut -/* [4 Toggle du side-menu <-> navigation -===========================================*/ -function navMenu(section){ + // GESTION DE LA NAVIGATION DU SOUS-MENU + // si le sous-menu existe + var smenu = $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub'); + if( smenu != null ) + smenu.addEventListener('click', function(e){ + var target = e.target; - /* [1] Format du param - ------------------------------------------------*/ - // Contient l'element courant - var current = $('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.page+'"]'); + while( target != document.body && !target.getData('sublink') ) + target = target.parentNode; - // Contiendra l'element cible - var target = null; + if( target.getData('sublink') ) + navSubMenu(target); + }, false); - // si @section est un element, on le prends - target = (section instanceof Element) ? section : null; + // On retire l'icone de chargement + DOM.HEADER.remClass('loading'); + }, false); + } - // Si string, on trouve l'element correspondant - target = (typeof section == 'string') ? $('#WRAPPER > #MENU-SIDE > span[data-link="'+section+'"]') : target; - - // Si rien trouve, on prend le premier element correspondant a la premiere page - target = (target == null) ? $('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]') : target; - - // Si le param n'est toujours pas bon, on retourne une erreur - if( target == null ) return false; - - /* [2] Gestion de l'affichage de l'element - ------------------------------------------------*/ - // On desactive l'element courant - if( current != null ) - current.remClass('active'); - // On active le nouveau - if( target != null ) - target.addClass('active'); - - /* [3] Gestion de pageManager - ------------------------------------------------*/ - // Si element, on recupere le data-link - var page = null; - - // On charge la page si data-link trouve - if( target.getData('link') ){ - DOM.HEADER.addClass('loading'); // Animation de chargement - - pageManager.setPage( target.getData('link') ); - - pageManager.activeXHR.addEventListener('loadend', function(){ - - // On gere la navigation du sous-menu (si defini, utilise) - var subSectionExists = pageManager.vars.length >= 1 && $('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]') != null; - if( subSectionExists ) // Si le lien du menu associe existe - navSubMenu(pageManager.vars[0]); // on charge la page associee - else // sinon - navSubMenu(null); // on charge le lien par defaut - - - // GESTION DE LA NAVIGATION DU SOUS-MENU - // si le sous-menu existe - var smenu = $('#MENU-SIDE > span[data-link='+pageManager.page+'] + div.sub'); - if( smenu != null ) - smenu.addEventListener('click', function(e){ - var target = e.target; - - while( target != document.body && !target.getData('sublink') ) - target = target.parentNode; - - if( target.getData('sublink') ) - navSubMenu(target); - }, false); - - // On retire l'icone de chargement - DOM.HEADER.remClass('loading'); - }, false); } -} @@ -204,63 +207,64 @@ function navMenu(section){ + /* [5] Gestion de la navigation (physique) + ===========================================*/ + DOM.MENUSIDE.addEventListener('click', function(e){ + var target = e.target; -/* [5] Gestion de la navigation (physique) -===========================================*/ -DOM.MENUSIDE.addEventListener('click', function(e){ - var target = e.target; + // On remonte dans les parents au bon niveau + while( target != document.body && !target.getData('link') ) + target = target.parentNode; - // On remonte dans les parents au bon niveau - while( target != document.body && !target.getData('link') ) - target = target.parentNode; - - // Si on a trouve l'element, on l'utilise pour la page - if( target.getData('link') ) - navMenu(target.getData('link')); -}, false); + // Si on a trouve l'element, on l'utilise pour la page + if( target.getData('link') ) + navMenu(target.getData('link')); + }, false); -/* [6] Gestion du rechargement de page -=========================================================*/ -function reload(){ navMenu( pageManager.page ); } + /* [6] Gestion du rechargement de page + =========================================================*/ + function reload(){ navMenu( pageManager.page ); } -/* [7] Gestion du toggle de la page de login -=========================================================*/ -var LOGIN = { - show: document.getElementById('user-data'), - hide: document.getElementById('login-close'), - page: document.getElementById('LOGIN') -}; + /* [7] Gestion du toggle de la page de login + =========================================================*/ + var LOGIN = { + show: document.getElementById('user-data'), + hide: document.getElementById('login-close'), + page: document.getElementById('LOGIN') + }; -/* (1) Gestion de l'affichage de la page de login */ -LOGIN.show.addEventListener('click', function(e){ LOGIN.page.className = 'active'; }, false); + /* (1) Gestion de l'affichage de la page de login */ + LOGIN.show.addEventListener('click', function(e){ LOGIN.page.className = 'active'; }, false); -/* (2) Gestion de la fermeture de la page de login */ -LOGIN.hide.addEventListener('click', function(e){ LOGIN.page.className = ''; }, false); + /* (2) Gestion de la fermeture de la page de login */ + LOGIN.hide.addEventListener('click', function(e){ LOGIN.page.className = ''; }, false); -/* [7] On recupere la liste des pages et on lance pageManager -=========================================================*/ -api.send({path:'download/menu'}, function(response){ + /* [7] On recupere la liste des pages et on lance pageManager + =========================================================*/ + api.send({path:'download/menu'}, function(response){ - // si erreur - if( response.ModuleError != 0 ) - return; + // si erreur + if( response.ModuleError != 0 ) + return; - // On initialise la liste des pages - pagelist = []; + // On initialise la liste des pages + pagelist = []; - // On recupere chaque page - for( var i = 0 ; i < response.menu.length; i++ ) - pagelist.push( response.menu[i].attributes['data-link'] ); + // On recupere chaque page + for( var i = 0 ; i < response.menu.length; i++ ) + pagelist.push( response.menu[i].attributes['data-link'] ); - /* (1) On initialisa pageManager */ - pageManager = new pageManagerClass(); - pageManager.setPage(null, '/view', DOM.CONTAINER, pagelist, null ); + /* (1) On initialisa pageManager */ + pageManager = new pageManagerClass(); + pageManager.setPage(null, '/view', DOM.CONTAINER, pagelist, null ); - /* (2) On charge la premiere page */ - navMenu(pageManager.page); -}); + /* (2) On charge la premiere page */ + navMenu(pageManager.page); + }); + +})(); diff --git a/js/includes/input-phone-subject-min.js b/js/includes/input-phone-subject-min.js index 5fbfcaa..c6b27d9 100644 --- a/js/includes/input-phone-subject-min.js +++ b/js/includes/input-phone-subject-min.js @@ -1,3 +1,3 @@ -function inputPhoneSubject(a,c,b){this.tmp_id=a;this.subject_id=c;this.store_button=b}inputPhoneSubject.prototype={store_button:this.store_button,tmp_id:this.tmp_id,subject_id:this.subject_id,handler:null};inputPhoneSubject.prototype.check=function(){return 0 0 && !isNaN(this.subject_id.value); }; @@ -36,6 +36,8 @@ inputPhoneSubject.prototype.fieldsToStorage = function(){ tmp_id: this.tmp_id.value, subject_id: this.subject_id.value }; + console.log(1, this.tmp_id); + console.log(2, this.subject_id); // {3} On enregistre les données dans le 'localStorage' // lsi.set('p_subject', 0, obj); @@ -55,8 +57,7 @@ inputPhoneSubject.prototype.storageToFields = function(){ // {1} On récupère les informations du sujet // var subjectData = lsi.get('p_subject', 0); - if( subjectData == null ) - subjectData = { tmp_id: '', subject_id: '' }; + subjectData = subjectData || { tmp_id: '', subject_id: '' }; // {2} On restore les valeurs // this.tmp_id.value = subjectData.tmp_id; @@ -78,14 +79,18 @@ inputPhoneSubject.prototype.attach = function(handler){ this.handler = handler; var ptr = this; // Handler de mise à jour quand les champs sont bons - function fts(e){ ptr.fieldsToStorage(); ptr.handler(true); ptr.storageToFields(); } + function fts(e){ + ptr.fieldsToStorage(); + ptr.handler(true); + ptr.storageToFields(); + } /* (2) On attache l'évènement sur le bouton d'enregistrement */ this.store_button.addEventListener('click', fts, false); /* (3) On attache un évènement de 'blur' sur chaque '' */ - this.subject_id.addEventListener('blur', fts, false); + // this.subject_id.addEventListener('blur', fts, false); /* (4) On charge le sujet depuis la mémoire ('localStorage') */ this.storageToFields(); diff --git a/src/dynamic/profile/sample.svg b/src/dynamic/profile/sample.svg new file mode 100644 index 0000000..95abef2 --- /dev/null +++ b/src/dynamic/profile/sample.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/view/js/input-min.js b/view/js/input-min.js index 2617333..9b6dcb9 100644 --- a/view/js/input-min.js +++ b/view/js/input-min.js @@ -1,38 +1,21 @@ -var sField=$("#search-field"),sSubmit=$("#search-subject"),sList=$('section[data-sublink="survey"] ul[data-list]'); -sSubmit.addEventListener("click",function(a){api.send({path:"subject/search",name:sField.value},function(b){if(0!=b.ModuleError)return Notification.error("Erreur","La recherche a \u00e9chou\u00e9."),!1;console.log(b);var a="",f;for(f in b.results)a+="
  • ",a+="
    SUJET
    ",a+="
    ",a+="
    "+ -b.results[f].name+"
    ",a+="
    "+b.results[f].creation+"
    ",a+="
    ",a+="
    ",a+="
    ",a+="
    ",a+="
  • ";sList.innerHTML=a})},!1); -var pSubjectManager,pContactManager,pMiniManager,pFicheManager,pMatriceManager; -function pDynamicUpdate(a){var b=a instanceof Element,g=b&&"INPUT"==a.tagName&&"submit"==a.type,f=b&&"SPAN"==a.tagName&&("p_nav-mini"==a.parentNode.id||"p_nav-fiche"==a.parentNode.id),b=b&&"SPAN"==a.tagName&&"p_nav-contact"==a.parentNode.id;if(!g&&!f&&!b&&!0!==a)return!1;console.log("> dynamic update");pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();pContactManager.fieldsToStorage();pMatriceManager.fieldsToStorage();pFicheManager.sync();pMiniManager.sync();!0===a?api.send({path:"subject/getFriends", -subject_id:pSubjectManager.subject_id.value},function(a){if(0!=a.ModuleError)return!1;lsi["import"]("p_friends",a.subjects);pMiniManager.storageToFields();pFicheManager.storageToFields();pMatriceManager.storageToFields();pContactManager.storageToFields()}):(pMiniManager.storageToFields(),pFicheManager.storageToFields(),pMatriceManager.storageToFields(),(g||b)&&pContactManager.storageToFields())}var fSubjectManager,fContactManager,fMiniManager,fFicheManager,fMatriceManager; -function fDynamicUpdate(a){var b=a instanceof Element,g=b&&"INPUT"==a.tagName&&"submit"==a.type,f=b&&"SPAN"==a.tagName&&("f_nav-mini"==a.parentNode.id||"f_nav-fiche"==a.parentNode.id),b=b&&"SPAN"==a.tagName&&"f_nav-contact"==a.parentNode.id;if(!g&&!f&&!b&&!0!==a)return!1;console.log("> dynamic update");fMiniManager.fieldsToStorage();fFicheManager.fieldsToStorage();fContactManager.fieldsToStorage();fMatriceManager.fieldsToStorage();fFicheManager.sync();fMiniManager.sync();!0===a?api.send({path:"subject/getFriends", -subject_id:fSubjectManager.subject_id.value},function(a){if(0!=a.ModuleError)return!1;lsi["import"]("f_friends",a.subjects);fMiniManager.storageToFields();fFicheManager.storageToFields();fMatriceManager.storageToFields();fContactManager.storageToFields()}):(fMiniManager.storageToFields(),fFicheManager.storageToFields(),fMatriceManager.storageToFields(),(g||b)&&fContactManager.storageToFields())} -include("/js/includes/input-phone-subject-min.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(){include("/js/includes/input-phone-matrice-min.js",function(){pSubjectManager=new inputPhoneSubject($('[data-sublink="phone"] article.subject-panel [data-name="tmp_id"]'),$('[data-sublink="phone"] article.subject-panel [data-name="subject_id"]'),$('[data-sublink="phone"] article.subject-panel [data-name="submit"]')); -pSubjectManager.attach(pDynamicUpdate);pContactManager=new inputPhoneContact($('[data-sublink="phone"] article.contact-panel'),$('[data-sublink="phone"] #p_nav-contact'));pContactManager.attach(pDynamicUpdate);pMiniManager=new inputPhoneMini($('[data-sublink="phone"] article.mini-relation-panel'),$('[data-sublink="phone"] #p_nav-mini'));pMiniManager.attach(pDynamicUpdate);pFicheManager=new inputPhoneFiche($('[data-sublink="phone"] article.relation-panel'),$('[data-sublink="phone"] #p_nav-fiche')); -pFicheManager.attach(pDynamicUpdate);pMatriceManager=new inputPhoneMatrice($('[data-sublink="phone"] article.matrice-panel'));pMatriceManager.attach(pDynamicUpdate);var a=new ShortcutManager,b=!1;a.append("s+n+a+k+e",function(){b||(b=!0,pMatriceManager.snake())});a.listen();$('[data-sublink="phone"] input#p_call_log-import[type="file"]').addEventListener("click",function(a){a.target.value=null},!1);$('[data-sublink="phone"] #p_clear-all').addEventListener("click",function(a){lsi.clear("p_subject"); -lsi.clear("p_contacts");lsi.clear("p_mini-fiches");lsi.clear("p_fiches");lsi.clear("p_matrice");lsi.clear("p_friends");pSubjectManager.storageToFields();pContactManager.storageToFields();pMiniManager.storageToFields();pFicheManager.storageToFields();pMatriceManager.storageToFields();Notification.success("OK","Les donn\u00e9es ont \u00e9t\u00e9 supprim\u00e9es")},!1);$('[data-sublink="phone"] #p_export-all').addEventListener("click",function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde"); -a={subject:lsi["export"]("p_subject")[0],contacts:lsi["export"]("p_contacts"),mini:lsi["export"]("p_mini-fiches"),fiches:lsi["export"]("p_fiches"),matrice:lsi["export"]("p_matrice")[0]};var b=$('[data-sublink="phone"] #p_download-target');b.download="local-phone-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));b.click()},!1);$('[data-sublink="phone"] #p_import-all').addEventListener("click",function(a){$('[data-sublink="phone"] #p_local-upload').click()},!1); -$('[data-sublink="phone"] #p_local-upload').addEventListener("click",function(a){a.target.value=null},!1);$('[data-sublink="phone"] #p_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="phone"] #p_local-upload').files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("Erreur",a.ModuleError),!1;lsi.set("p_subject",0,a.local_data.subject);lsi["import"]("p_contacts",a.local_data.contacts);lsi["import"]("p_mini-fiches", -a.local_data.mini);lsi["import"]("p_fiches",a.local_data.fiches);lsi.set("p_matrice",0,a.local_data.matrice);pSubjectManager.storageToFields();pContactManager.storageToFields();pMatriceManager.storageToFields();pDynamicUpdate(!0)})},!1);$('[data-sublink="phone"] #p_submit-all').addEventListener("click",function(a){console.log("> GATHERING ALL DATA");pSubjectManager.fieldsToStorage();pContactManager.fieldsToStorage();pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();if(!pSubjectManager.check())return Notification.warning("Attention", -"Vous devez saisir les informations du sujet"),!1;a=lsi["export"]("p_mini-fiches");var b=0,c;for(c in a)if(!isNaN(c)&&(b++,!a[c].valid))return Notification.warning("Attention","La fiche rapide "+b+" est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("p_fiches");for(c in a)if(!a[c].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(c)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;c={path:"input/phone",subject:lsi["export"]("p_subject")[0], -contacts:lsi["export"]("p_contacts"),mini:lsi["export"]("p_mini-fiches"),fiches:lsi["export"]("p_fiches"),matrice:lsi["export"]("p_matrice")[0]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK","L'identifiant du sujet est "+a.subject_id+" ! Tout s'est bien d\u00e9roul\u00e9.",1E4);console.log(a)},!1)},!1)})})})})}); -include("/js/includes/input-facebook-subject-min.js",function(){include("/js/includes/input-facebook-contact.js",function(){include("/js/includes/input-facebook-mini.js",function(){include("/js/includes/input-facebook-fiche.js",function(){include("/js/includes/input-facebook-matrice-min.js",function(){fSubjectManager=new inputFacebookSubject($('[data-sublink="facebook"] article.subject-panel [data-name="subject_id"]'),$('[data-sublink="facebook"] article.subject-panel [data-name="submit"]'));fSubjectManager.attach(fDynamicUpdate); -fContactManager=new inputFacebookContact($('[data-sublink="facebook"] article.contact-panel'),$('[data-sublink="facebook"] #f_nav-contact'));fContactManager.attach(fDynamicUpdate);fMiniManager=new inputFacebookMini($('[data-sublink="facebook"] article.mini-relation-panel'),$('[data-sublink="facebook"] #f_nav-mini'));fMiniManager.attach(fDynamicUpdate);fFicheManager=new inputFacebookFiche($('[data-sublink="facebook"] article.relation-panel'),$('[data-sublink="facebook"] #f_nav-fiche'));fFicheManager.attach(fDynamicUpdate); -fMatriceManager=new inputFacebookMatrice($('[data-sublink="facebook"] article.matrice-panel'));fMatriceManager.attach(fDynamicUpdate);$('[data-sublink="facebook"] #f_clear-all').addEventListener("click",function(a){lsi.clear("f_subject");lsi.clear("f_contacts");lsi.clear("f_mini-fiches");lsi.clear("f_fiches");lsi.clear("f_matrice");lsi.clear("f_friends");fSubjectManager.storageToFields();fContactManager.storageToFields();fMiniManager.storageToFields();fFicheManager.storageToFields();fMatriceManager.storageToFields(); -Notification.success("OK","Les donn\u00e9es ont \u00e9t\u00e9 supprim\u00e9es")},!1);$('[data-sublink="facebook"] #f_export-all').addEventListener("click",function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde");a={subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};var b=$('[data-sublink="facebook"] #f_download-target');b.download= -"local-facebook-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));b.click()},!1);$('[data-sublink="facebook"] #f_import-all').addEventListener("click",function(a){$('[data-sublink="facebook"] #f_local-upload').click()},!1);$('[data-sublink="facebook"] #f_local-upload').addEventListener("click",function(a){a.target.value=null},!1);$('[data-sublink="facebook"] #f_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="facebook"] #f_local-upload').files[0]}; -api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("Erreur",a.ModuleError),!1;lsi.set("f_subject",0,a.local_data.subject);lsi["import"]("f_contacts",a.local_data.contacts);lsi["import"]("f_mini-fiches",a.local_data.mini);lsi["import"]("f_fiches",a.local_data.fiches);lsi.set("f_matrice",0,a.local_data.matrice);fSubjectManager.storageToFields();fContactManager.storageToFields();fMatriceManager.storageToFields();fDynamicUpdate(!0)})},!1);$('[data-sublink="facebook"] #f_submit-all').addEventListener("click", -function(a){console.log("> GATHERING ALL DATA");fSubjectManager.fieldsToStorage();fContactManager.fieldsToStorage();fMiniManager.fieldsToStorage();fFicheManager.fieldsToStorage();if(!fSubjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du sujet"),!1;a=lsi["export"]("f_mini-fiches");var b=0,g;for(g in a)if(!isNaN(g)&&(b++,!a[g].valid))return Notification.warning("Attention","La fiche rapide "+b+" est incompl\u00e8te et/ou incorrecte"), -!1;a=lsi["export"]("f_fiches");for(g in a)if(!a[g].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(g)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;g={path:"input/facebook",subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};api.send(g,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError), -!1;console.log(a)},!1)},!1)})})})})}); -function testRoutinePhone(a){var b=lsi["export"]("p_contacts"),g=lsi["export"]("p_mini-fiches"),f=lsi["export"]("p_fiches"),c=0;if(null!=a&&a)for(var e in g)isNaN(e)||(a="",null!=b[e]&&(a=b[e].username),g=$('#p_nav-mini [data-n="'+e+'"]'),g.click(),$("#unknown_min_p_"+e).checked=0==a.length,0==a.length?($("#sexeI_mini_p_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="age"]').value=c%19,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="studies"]').value=0, -$("#reltype9_mini_p_"+e).checked=!0):(a=["H","F"][Math.floor(c%2)],$("#sexe"+a+"_mini_p_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="age"]').value=c%19,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="studies"]').value=1+c%6,a=c%10,9==a?($("#reltype10_mini_p_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 input[data-name="reltypeSpecial"]').value="autre"):$("#reltype"+a+"_mini_p_"+e).checked=!0,c++));for(var d in f)isNaN(d)||(g=$('#p_nav-fiche [data-n="'+ -d+'"]'),g.click(),a=["H","F","I"][Math.floor(c%3)],$("#sexe"+a+"_p_"+d).checked=!0,$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 select[data-name="age"]').value=c%19,b="10 21 22 23 31 32 36 41 46 47 48 51 54 55 56 61 66 69 71 72 73 74 75 76 81 82".split(" "),b=b[c%b.length],$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 select[data-name="job"]').value=b,b=(c%12).toString(),1==b.length&&(b="0"+b),$('article.fiche-relation > input[data-name="uid"][value="'+ -d+'"] ~ h5 select[data-name="studies"]').value=b,a=c%9,8==a?($("#reltype10_p_"+d).checked=!0,$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="reltypeSpecial"]').value="autre"):$("#reltype"+a+"_p_"+d).checked=!0,$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="city"]').value=(10+c).toString(),$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="cp"]').value=(1E4+c).toString(),$('article.fiche-relation > input[data-name="uid"][value="'+ -d+'"] ~ h5 input[data-name="quartier"]').value=c,$("#loc"+["A","B","C","D"][Math.floor(c%4)]+"_p_"+d).checked=!0,b=$$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="duration"]'),b[0].value=c.toString(),b[1].value=1+c.toString(),b=c%14,$("article.fiche-relation #contexte"+b+"_p_"+d).checked=!0,f=$$('article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="contextSpecial"]'),11==b&&(f[0].value="internet"),12==b&&(f[1].value="association"), -13==b&&(f[2].value="autre"),c++)} -function testRoutineFacebook(a){var b=lsi["export"]("f_contacts"),g=lsi["export"]("f_mini-fiches"),f=lsi["export"]("f_fiches"),c=0;if(null!=a&&a)for(var e in g)isNaN(e)||(a="",null!=b[e]&&(a=b[e].username),g=$('#f_nav-mini [data-n="'+e+'"]'),g.click(),$("#unknown_min_f_"+e).checked=0==a.length,0==a.length?($("#sexeI_mini_f_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="age"]').value=c%19,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="studies"]').value=0, -$("#reltype9_mini_f_"+e).checked=!0):(a=["H","F"][Math.floor(c%2)],$("#sexe"+a+"_mini_f_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="age"]').value=c%19,$('input[data-name="uid"][value="'+e+'"] ~ h5 select[data-name="studies"]').value=1+c%6,a=c%10,9==a?($("#reltype10_mini_f_"+e).checked=!0,$('input[data-name="uid"][value="'+e+'"] ~ h5 input[data-name="reltypeSpecial"]').value="autre"):$("#reltype"+a+"_mini_f_"+e).checked=!0,c++));for(var d in f)isNaN(d)||(g=$('#f_nav-fiche [data-n="'+ -d+'"]'),g.click(),a=["H","F","I"][Math.floor(c%3)],$("#sexe"+a+"_f_"+d).checked=!0,$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 select[data-name="age"]').value=c%19,b="10 21 22 23 31 32 36 41 46 47 48 51 54 55 56 61 66 69 71 72 73 74 75 76 81 82".split(" "),b=b[c%b.length],$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 select[data-name="job"]').value=b,b=(c%12).toString(),1==b.length&& -(b="0"+b),$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 select[data-name="studies"]').value=b,a=c%9,8==a?($("#reltype10_f_"+d).checked=!0,$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="reltypeSpecial"]').value="autre"):$("#reltype"+a+"_f_"+d).checked=!0,$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="city"]').value= -(10+c).toString(),$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="cp"]').value=(1E4+c).toString(),$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="quartier"]').value=c,$("#loc"+["A","B","C","D"][Math.floor(c%4)]+"_f_"+d).checked=!0,b=$$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="duration"]'), -b[0].value=c.toString(),b[1].value=1+c.toString(),b=c%14,$('section[data-sublink="facebook"] article.fiche-relation #contexte'+b+"_f_"+d).checked=!0,f=$$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+d+'"] ~ h5 input[data-name="contextSpecial"]'),11==b&&(f[0].value="internet"),12==b&&(f[1].value="association"),13==b&&(f[2].value="autre"),c++)}; +(function(){function r(b){var c=b instanceof Element,a=c&&"INPUT"==b.tagName&&"submit"==b.type,d=c&&"SPAN"==b.tagName&&("p_nav-mini"==b.parentNode.id||"p_nav-fiche"==b.parentNode.id),c=c&&"SPAN"==b.tagName&&"p_nav-contact"==b.parentNode.id;if(!a&&!d&&!c&&!0!==b)return!1;console.log("> dynamic update");e.fieldsToStorage();f.fieldsToStorage();g.fieldsToStorage();h.fieldsToStorage();f.sync();e.sync();!0===b?api.send({path:"subject/getFriends",subject_id:n.subject_id.value},function(a){if(0!=a.ModuleError)return!1; +lsi["import"]("p_friends",a.subjects);e.storageToFields();f.storageToFields();h.storageToFields();g.storageToFields()}):(e.storageToFields(),f.storageToFields(),h.storageToFields(),(a||c)&&g.storageToFields())}function t(b){var c=b instanceof Element,a=c&&"INPUT"==b.tagName&&"submit"==b.type,d=c&&"SPAN"==b.tagName&&("f_nav-mini"==b.parentNode.id||"f_nav-fiche"==b.parentNode.id),c=c&&"SPAN"==b.tagName&&"f_nav-contact"==b.parentNode.id;if(!a&&!d&&!c&&!0!==b)return!1;console.log("> dynamic update"); +k.fieldsToStorage();l.fieldsToStorage();m.fieldsToStorage();p.fieldsToStorage();l.sync();k.sync();!0===b?api.send({path:"subject/getFriends",subject_id:q.subject_id.value},function(a){if(0!=a.ModuleError)return!1;lsi["import"]("f_friends",a.subjects);k.storageToFields();l.storageToFields();p.storageToFields();m.storageToFields()}):(k.storageToFields(),l.storageToFields(),p.storageToFields(),(a||c)&&m.storageToFields())}var u=$("#search-field"),w=$("#search-subject"),x=$('section[data-sublink="survey"] ul[data-list]'), +v=function(b){api.send({path:"subject/search",name:u.value},function(b){if(0!=b.ModuleError)return Notification.error("Erreur","La recherche a \u00e9chou\u00e9."),!1;console.log(b);var a="",d;for(d in b.results)a+="
  • ",a+="
    SUJET
    ",a+="
    ",a+="
    "+b.results[d].name+"
    ", +a+="
    "+b.results[d].creation+"
    ",a+="
    ",a+="
    ",a+="
    ",a+="
    ",a+="
  • ";x.innerHTML=a})};w.addEventListener("click",v,!1);u.addEventListener("keypress", +function(b){13===b.keyCode&&v(b)},!1);var n,g,e,f,h,q,m,k,l,p;include("/js/includes/input-phone-subject-min.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(){include("/js/includes/input-phone-matrice-min.js",function(){n=new inputPhoneSubject($('[data-sublink="phone"] article.subject-panel [data-name="tmp_id"]'),$('[data-sublink="phone"] article.subject-panel [data-name="subject_id"]'), +$('[data-sublink="phone"] article.subject-panel [data-name="submit"]'));n.attach(r);g=new inputPhoneContact($('[data-sublink="phone"] article.contact-panel'),$('[data-sublink="phone"] #p_nav-contact'));g.attach(r);e=new inputPhoneMini($('[data-sublink="phone"] article.mini-relation-panel'),$('[data-sublink="phone"] #p_nav-mini'));e.attach(r);f=new inputPhoneFiche($('[data-sublink="phone"] article.relation-panel'),$('[data-sublink="phone"] #p_nav-fiche'));f.attach(r);h=new inputPhoneMatrice($('[data-sublink="phone"] article.matrice-panel')); +h.attach(r);var b=new ShortcutManager,c=!1;b.append("s+n+a+k+e",function(){c||(c=!0,h.snake())});b.listen();$('[data-sublink="phone"] #p_clear-all').addEventListener("click",function(a){lsi.clear("p_subject");lsi.clear("p_contacts");lsi.clear("p_mini-fiches");lsi.clear("p_fiches");lsi.clear("p_matrice");lsi.clear("p_friends");n.storageToFields();g.storageToFields();e.storageToFields();f.storageToFields();h.storageToFields();Notification.success("OK","Les donn\u00e9es ont \u00e9t\u00e9 supprim\u00e9es")}, +!1);$('[data-sublink="phone"] #p_export-all').addEventListener("click",function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde");a={subject:lsi["export"]("p_subject")[0],contacts:lsi["export"]("p_contacts"),mini:lsi["export"]("p_mini-fiches"),fiches:lsi["export"]("p_fiches"),matrice:lsi["export"]("p_matrice")[0]};var b=$('[data-sublink="phone"] #p_download-target');b.download="local-phone-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a)); +b.click()},!1);$('[data-sublink="phone"] #p_import-all').addEventListener("click",function(a){$('[data-sublink="phone"] #p_local-upload').click()},!1);$('[data-sublink="phone"] #p_local-upload').addEventListener("click",function(a){a.target.value=null},!1);$('[data-sublink="phone"] #p_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="phone"] #p_local-upload').files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("Erreur", +a.ModuleError),!1;lsi.set("p_subject",0,a.local_data.subject);lsi["import"]("p_contacts",a.local_data.contacts);lsi["import"]("p_mini-fiches",a.local_data.mini);lsi["import"]("p_fiches",a.local_data.fiches);lsi.set("p_matrice",0,a.local_data.matrice);n.storageToFields();g.storageToFields();h.storageToFields();r(!0)})},!1);$('[data-sublink="phone"] #p_submit-all').addEventListener("click",function(a){console.log("> GATHERING ALL DATA");n.fieldsToStorage();g.fieldsToStorage();e.fieldsToStorage();f.fieldsToStorage(); +if(!n.check())return Notification.warning("Attention","Vous devez saisir les informations du sujet"),!1;a=lsi["export"]("p_mini-fiches");var b=0,c;for(c in a)if(!isNaN(c)&&(b++,!a[c].valid))return Notification.warning("Attention","La fiche rapide "+b+" est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("p_fiches");for(c in a)if(!a[c].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(c)+1)+" est incompl\u00e8te et/ou incorrecte"), +!1;c={path:"input/phone",subject:lsi["export"]("p_subject")[0],contacts:lsi["export"]("p_contacts"),mini:lsi["export"]("p_mini-fiches"),fiches:lsi["export"]("p_fiches"),matrice:lsi["export"]("p_matrice")[0]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK","L'identifiant du sujet est "+a.subject_id+" ! Tout s'est bien d\u00e9roul\u00e9.",1E4);console.log(a)},!1)},!1)})})})})});include("/js/includes/input-facebook-subject-min.js", +function(){include("/js/includes/input-facebook-contact.js",function(){include("/js/includes/input-facebook-mini.js",function(){include("/js/includes/input-facebook-fiche.js",function(){include("/js/includes/input-facebook-matrice-min.js",function(){q=new inputFacebookSubject($('[data-sublink="facebook"] article.subject-panel [data-name="subject_id"]'),$('[data-sublink="facebook"] article.subject-panel [data-name="submit"]'));q.attach(t);m=new inputFacebookContact($('[data-sublink="facebook"] article.contact-panel'), +$('[data-sublink="facebook"] #f_nav-contact'));m.attach(t);k=new inputFacebookMini($('[data-sublink="facebook"] article.mini-relation-panel'),$('[data-sublink="facebook"] #f_nav-mini'));k.attach(t);l=new inputFacebookFiche($('[data-sublink="facebook"] article.relation-panel'),$('[data-sublink="facebook"] #f_nav-fiche'));l.attach(t);p=new inputFacebookMatrice($('[data-sublink="facebook"] article.matrice-panel'));p.attach(t);$('[data-sublink="facebook"] #f_clear-all').addEventListener("click",function(b){lsi.clear("f_subject"); +lsi.clear("f_contacts");lsi.clear("f_mini-fiches");lsi.clear("f_fiches");lsi.clear("f_matrice");lsi.clear("f_friends");q.storageToFields();m.storageToFields();k.storageToFields();l.storageToFields();p.storageToFields();Notification.success("OK","Les donn\u00e9es ont \u00e9t\u00e9 supprim\u00e9es")},!1);$('[data-sublink="facebook"] #f_export-all').addEventListener("click",function(b){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde");b={subject:lsi["export"]("f_subject")[0], +contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};var c=$('[data-sublink="facebook"] #f_download-target');c.download="local-facebook-data.json";c.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(b));c.click()},!1);$('[data-sublink="facebook"] #f_import-all').addEventListener("click",function(b){$('[data-sublink="facebook"] #f_local-upload').click()},!1);$('[data-sublink="facebook"] #f_local-upload').addEventListener("click", +function(b){b.target.value=null},!1);$('[data-sublink="facebook"] #f_local-upload').addEventListener("change",function(b){b={path:"upload/local_data",file:$('[data-sublink="facebook"] #f_local-upload').files[0]};api.send(b,function(b){console.log(b);if(0!=b.ModuleError)return Notification.error("Erreur",b.ModuleError),!1;lsi.set("f_subject",0,b.local_data.subject);lsi["import"]("f_contacts",b.local_data.contacts);lsi["import"]("f_mini-fiches",b.local_data.mini);lsi["import"]("f_fiches",b.local_data.fiches); +lsi.set("f_matrice",0,b.local_data.matrice);q.storageToFields();m.storageToFields();p.storageToFields();t(!0)})},!1);$('[data-sublink="facebook"] #f_submit-all').addEventListener("click",function(b){console.log("> GATHERING ALL DATA");q.fieldsToStorage();m.fieldsToStorage();k.fieldsToStorage();l.fieldsToStorage();if(!q.check())return Notification.warning("Attention","Vous devez saisir les informations du sujet"),!1;b=lsi["export"]("f_mini-fiches");var c=0,a;for(a in b)if(!isNaN(a)&&(c++,!b[a].valid))return Notification.warning("Attention", +"La fiche rapide "+c+" est incompl\u00e8te et/ou incorrecte"),!1;b=lsi["export"]("f_fiches");for(a in b)if(!b[a].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(a)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;a={path:"input/facebook",subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};api.send(a,function(a){console.log(a); +if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;console.log(a)},!1)},!1)})})})})})})(); diff --git a/view/js/input.js b/view/js/input.js index 04559b5..2a356ef 100644 --- a/view/js/input.js +++ b/view/js/input.js @@ -1,127 +1,150 @@ -/*=========================================================*/ -/*=========== Gestion de la recherche de sujet ============*/ -/*=========================================================*/ -var sField = $('#search-field'); -var sSubmit = $('#search-subject'); -var sList = $('section[data-sublink="survey"] ul[data-list]'); +(function(){ -sSubmit.addEventListener('click', function(e){ - /* (1) On construit la requête */ - var request = { - path: 'subject/search', - name: sField.value + /*=========================================================*/ + /*=========== Gestion de la recherche de sujet ============*/ + /*=========================================================*/ + var sField = $('#search-field'); + var sSubmit = $('#search-subject'); + var sList = $('section[data-sublink="survey"] ul[data-list]'); + + var tmpSubjectSearchListener = function(e){ + + /* (1) On construit la requête */ + var request = { + path: 'subject/search', + name: sField.value + }; + + /* (2) On effectue la requête */ + api.send(request, function(response){ + + // Si erreur + if( response.ModuleError != 0 ){ + Notification.error('Erreur', 'La recherche a échoué.') + return false; + } + + + + console.log(response); + + /* (3) On remplit la liste des résultats */ + var htmlContent = ''; + for( var id in response.results ){ + htmlContent += "
  • "; + + htmlContent += "
    SUJET
    "; + + htmlContent += "
    "; + + htmlContent += "
    "+response.results[id].name+"
    "; + + htmlContent += "
    "+response.results[id].creation+"
    "; + + htmlContent += "
    "; + htmlContent += "
    "; + + htmlContent += "
    "; + htmlContent += "
    "; + + + htmlContent += "
  • "; + } + + sList.innerHTML = htmlContent; + + }); + }; - /* (2) On effectue la requête */ - api.send(request, function(response){ + sSubmit.addEventListener('click', tmpSubjectSearchListener, false); + sField.addEventListener('keypress', function(e){ + if( e.keyCode === 13 ) + tmpSubjectSearchListener(e); + }, false); - // Si erreur - if( response.ModuleError != 0 ){ - Notification.error('Erreur', 'La recherche a échoué.') + + + + + + + + + + /* [1] Initialisation des utilitaires et variables PHONE + =========================================================* + /* (1) Initialisation des managers */ + var pSubjectManager; + var pContactManager; + var pMiniManager; + var pFicheManager; + var pMatriceManager; + + + /* (2) Fonctions utiles */ + function pDynamicUpdate(target){ + + + /* (0) Vérification de la cohérence de la @target + ---------------------------------------------------------*/ + var isElement = target instanceof Element; + var isSaveButton = isElement && target.tagName == 'INPUT' && target.type == 'submit'; + var isNavButton = isElement && target.tagName == 'SPAN' && (target.parentNode.id == 'p_nav-mini' || target.parentNode.id == 'p_nav-fiche'); + var isNavContact = isElement && target.tagName == 'SPAN' && target.parentNode.id == 'p_nav-contact'; + + // Si erreur, on retourne une erreur + if( !isSaveButton && !isNavButton && !isNavContact && target !== true ) return false; - } + console.log('> dynamic update'); - console.log(response); + /* (1) On enregistre les MINI fiches relation */ + pMiniManager.fieldsToStorage(); - /* (3) On remplit la liste des résultats */ - var htmlContent = ''; - for( var id in response.results ){ - htmlContent += "
  • "; + /* (2) On enregister les FICHES relation */ + pFicheManager.fieldsToStorage(); - htmlContent += "
    SUJET
    "; + /* (3) On enregistre les CONTACTS */ + pContactManager.fieldsToStorage(); - htmlContent += "
    "; + /* (4) On enregistre la MATRICE */ + pMatriceManager.fieldsToStorage(); - htmlContent += "
    "+response.results[id].name+"
    "; + /* (5) On synchronise les FICHE avec les CONTACTS */ + // 1. On synchronise les `mini` et `fiches` associées en fonction de la dernière date de modification + // 2. On synchronise les `fiches` dupliquées en fonction de la dernière date de modification + pFicheManager.sync(); - htmlContent += "
    "+response.results[id].creation+"
    "; + /* (6) On synchronise les MINI avec les CONTACTS */ + // Supprime les contacts déja dans les FICHES + pMiniManager.sync(); - htmlContent += "
    "; - htmlContent += "
    "; + /* (7) On récupère tous les amis du sujet */ + if( target === true ){ - htmlContent += "
    "; - htmlContent += "
    "; + api.send({ path: 'subject/getFriends', subject_id: pSubjectManager.subject_id.value }, function(response){ + // Si erreur, on quitte + if( response.ModuleError != 0 ) + return false; + + // On enregistre les contacts existants + lsi.import('p_friends', response.subjects); + + /* (8) On affiche le tout */ + pMiniManager.storageToFields(); + pFicheManager.storageToFields(); + pMatriceManager.storageToFields(); + + /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ + pContactManager.storageToFields(); + + }); - htmlContent += "
  • "; - } - - sList.innerHTML = htmlContent; - - }); - -}, false); - - - - - - - - - - -/* [1] Initialisation des utilitaires et variables PHONE -=========================================================* -/* (1) Initialisation des managers */ -var pSubjectManager; -var pContactManager; -var pMiniManager; -var pFicheManager; -var pMatriceManager; - - -/* (2) Fonctions utiles */ -function pDynamicUpdate(target){ - - - /* (0) Vérification de la cohérence de la @target - ---------------------------------------------------------*/ - var isElement = target instanceof Element; - var isSaveButton = isElement && target.tagName == 'INPUT' && target.type == 'submit'; - var isNavButton = isElement && target.tagName == 'SPAN' && (target.parentNode.id == 'p_nav-mini' || target.parentNode.id == 'p_nav-fiche'); - var isNavContact = isElement && target.tagName == 'SPAN' && target.parentNode.id == 'p_nav-contact'; - - // Si erreur, on retourne une erreur - if( !isSaveButton && !isNavButton && !isNavContact && target !== true ) - return false; - - - console.log('> dynamic update'); - - /* (1) On enregistre les MINI fiches relation */ - pMiniManager.fieldsToStorage(); - - /* (2) On enregister les FICHES relation */ - pFicheManager.fieldsToStorage(); - - /* (3) On enregistre les CONTACTS */ - pContactManager.fieldsToStorage(); - - /* (4) On enregistre la MATRICE */ - pMatriceManager.fieldsToStorage(); - - /* (5) On synchronise les FICHE avec les CONTACTS */ - // 1. On synchronise les `mini` et `fiches` associées en fonction de la dernière date de modification - // 2. On synchronise les `fiches` dupliquées en fonction de la dernière date de modification - pFicheManager.sync(); - - /* (6) On synchronise les MINI avec les CONTACTS */ - // Supprime les contacts déja dans les FICHES - pMiniManager.sync(); - - /* (7) On récupère tous les amis du sujet */ - if( target === true ){ - api.send({ path: 'subject/getFriends', subject_id: pSubjectManager.subject_id.value }, function(response){ - // Si erreur, on quitte - if( response.ModuleError != 0 ) - return false; - - // On enregistre les contacts existants - lsi.import('p_friends', response.subjects); + }else{ /* (8) On affiche le tout */ pMiniManager.storageToFields(); @@ -129,84 +152,86 @@ function pDynamicUpdate(target){ pMatriceManager.storageToFields(); /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ - pContactManager.storageToFields(); + ( isSaveButton || isNavContact ) && pContactManager.storageToFields(); - }); + } - - }else{ - /* (8) On affiche le tout */ - pMiniManager.storageToFields(); - pFicheManager.storageToFields(); - pMatriceManager.storageToFields(); - - /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ - if( isSaveButton || isNavContact ) - pContactManager.storageToFields(); } -} - -/* [2] Initialisation des utilitaires et variables FACEBEOOK -=========================================================* -/* (1) Initialisation des managers */ -var fSubjectManager; -var fContactManager; -var fMiniManager; -var fFicheManager; -var fMatriceManager; + /* [2] Initialisation des utilitaires et variables FACEBEOOK + =========================================================* + /* (1) Initialisation des managers */ + var fSubjectManager; + var fContactManager; + var fMiniManager; + var fFicheManager; + var fMatriceManager; -/* (2) Fonctions utiles */ -function fDynamicUpdate(target){ + /* (2) Fonctions utiles */ + function fDynamicUpdate(target){ - /* (0) Vérification de la cohérence de la @target - ---------------------------------------------------------*/ - var isElement = target instanceof Element; - var isSaveButton = isElement && target.tagName == 'INPUT' && target.type == 'submit'; - var isNavButton = isElement && target.tagName == 'SPAN' && (target.parentNode.id == 'f_nav-mini' || target.parentNode.id == 'f_nav-fiche'); - var isNavContact = isElement && target.tagName == 'SPAN' && target.parentNode.id == 'f_nav-contact'; + /* (0) Vérification de la cohérence de la @target + ---------------------------------------------------------*/ + var isElement = target instanceof Element; + var isSaveButton = isElement && target.tagName == 'INPUT' && target.type == 'submit'; + var isNavButton = isElement && target.tagName == 'SPAN' && (target.parentNode.id == 'f_nav-mini' || target.parentNode.id == 'f_nav-fiche'); + var isNavContact = isElement && target.tagName == 'SPAN' && target.parentNode.id == 'f_nav-contact'; - // Si erreur, on retourne une erreur - if( !isSaveButton && !isNavButton && !isNavContact && target !== true ) - return false; + // Si erreur, on retourne une erreur + if( !isSaveButton && !isNavButton && !isNavContact && target !== true ) + return false; - console.log('> dynamic update'); + console.log('> dynamic update'); - /* (1) On enregistre les MINI fiches relation */ - fMiniManager.fieldsToStorage(); + /* (1) On enregistre les MINI fiches relation */ + fMiniManager.fieldsToStorage(); - /* (2) On enregister les FICHES relation */ - fFicheManager.fieldsToStorage(); + /* (2) On enregister les FICHES relation */ + fFicheManager.fieldsToStorage(); - /* (3) On enregistre les CONTACTS */ - fContactManager.fieldsToStorage(); + /* (3) On enregistre les CONTACTS */ + fContactManager.fieldsToStorage(); - /* (4) On enregistre la MATRICE */ - fMatriceManager.fieldsToStorage(); + /* (4) On enregistre la MATRICE */ + fMatriceManager.fieldsToStorage(); - /* (5) On synchronise les FICHE avec les CONTACTS */ - // 1. On synchronise les `mini` et `fiches` associées en fonction de la dernière date de modification - // 2. On synchronise les `fiches` dupliquées en fonction de la dernière date de modification - fFicheManager.sync(); + /* (5) On synchronise les FICHE avec les CONTACTS */ + // 1. On synchronise les `mini` et `fiches` associées en fonction de la dernière date de modification + // 2. On synchronise les `fiches` dupliquées en fonction de la dernière date de modification + fFicheManager.sync(); - /* (6) On synchronise les MINI avec les CONTACTS */ - // Supprime les contacts déja dans les FICHES - fMiniManager.sync(); + /* (6) On synchronise les MINI avec les CONTACTS */ + // Supprime les contacts déja dans les FICHES + fMiniManager.sync(); - /* (7) On récupère tous les amis du sujet */ - if( target === true ){ - api.send({ path: 'subject/getFriends', subject_id: fSubjectManager.subject_id.value }, function(response){ - // Si erreur, on quitte - if( response.ModuleError != 0 ) - return false; + /* (7) On récupère tous les amis du sujet */ + if( target === true ){ - // On enregistre les contacts existants - lsi.import('f_friends', response.subjects); + api.send({ path: 'subject/getFriends', subject_id: fSubjectManager.subject_id.value }, function(response){ + // Si erreur, on quitte + if( response.ModuleError != 0 ) + return false; + + // On enregistre les contacts existants + lsi.import('f_friends', response.subjects); + + /* (8) On affiche le tout */ + fMiniManager.storageToFields(); + fFicheManager.storageToFields(); + fMatriceManager.storageToFields(); + + /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ + fContactManager.storageToFields(); + + }); + + + }else{ /* (8) On affiche le tout */ fMiniManager.storageToFields(); @@ -214,23 +239,12 @@ function fDynamicUpdate(target){ fMatriceManager.storageToFields(); /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ - fContactManager.storageToFields(); + if( isSaveButton || isNavContact ) + fContactManager.storageToFields(); + } - }); - - - }else{ - /* (8) On affiche le tout */ - fMiniManager.storageToFields(); - fFicheManager.storageToFields(); - fMatriceManager.storageToFields(); - - /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ - if( isSaveButton || isNavContact ) - fContactManager.storageToFields(); } -} @@ -238,409 +252,408 @@ function fDynamicUpdate(target){ + /*=========================================================*/ + /*========== Gestion du formulaire téléphonique ===========*/ + /*=========================================================*/ + include('/js/includes/input-phone-subject-min.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-phone-contact.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-phone-mini.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-phone-fiche.js', function(){ + include('/js/includes/input-phone-matrice-min.js', function(){ -/*=========================================================*/ -/*========== Gestion du formulaire téléphonique ===========*/ -/*=========================================================*/ -include('/js/includes/input-phone-subject-min.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-phone-contact.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-phone-mini.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-phone-fiche.js', function(){ -include('/js/includes/input-phone-matrice-min.js', function(){ + /* (1) Gestion du formulaire du sujet + ---------------------------------------------------------*/ + /* (1) On crée une instance du manager du sujet */ + pSubjectManager = new inputPhoneSubject( + $('[data-sublink="phone"] article.subject-panel [data-name="tmp_id"]'), + $('[data-sublink="phone"] article.subject-panel [data-name="subject_id"]'), + $('[data-sublink="phone"] article.subject-panel [data-name="submit"]') + ); - /* (1) Gestion du formulaire du sujet - ---------------------------------------------------------*/ - /* (1) On crée une instance du manager du sujet */ - pSubjectManager = new inputPhoneSubject( - $('[data-sublink="phone"] article.subject-panel [data-name="tmp_id"]'), - $('[data-sublink="phone"] article.subject-panel [data-name="subject_id"]'), - $('[data-sublink="phone"] article.subject-panel [data-name="submit"]') - ); + /* (2) On le démarre */ + pSubjectManager.attach(pDynamicUpdate); - /* (2) On le démarre */ - pSubjectManager.attach(pDynamicUpdate); + /* (2) Gestion des formulaires de contact + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des CONTACTS */ + pContactManager = new inputPhoneContact( + $('[data-sublink="phone"] article.contact-panel'), + $('[data-sublink="phone"] #p_nav-contact') + ); - /* (2) Gestion des formulaires de contact - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des CONTACTS */ - pContactManager = new inputPhoneContact( - $('[data-sublink="phone"] article.contact-panel'), - $('[data-sublink="phone"] #p_nav-contact') - ); + /* (2) On le démarre */ + pContactManager.attach(pDynamicUpdate); - /* (2) On le démarre */ - pContactManager.attach(pDynamicUpdate); + /* (3) Gestion des mini fiches relation + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des mini fiches relation */ + pMiniManager = new inputPhoneMini( + $('[data-sublink="phone"] article.mini-relation-panel'), + $('[data-sublink="phone"] #p_nav-mini') + ); - /* (3) Gestion des mini fiches relation - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des mini fiches relation */ - pMiniManager = new inputPhoneMini( - $('[data-sublink="phone"] article.mini-relation-panel'), - $('[data-sublink="phone"] #p_nav-mini') - ); + /* (2) On le démarre */ + pMiniManager.attach(pDynamicUpdate); - /* (2) On le démarre */ - pMiniManager.attach(pDynamicUpdate); - - /* (4) Gestion des fiches relation - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des fiches relation */ - pFicheManager = new inputPhoneFiche( - $('[data-sublink="phone"] article.relation-panel'), - $('[data-sublink="phone"] #p_nav-fiche') - ); - - /* (2) On le démarre */ - pFicheManager.attach(pDynamicUpdate); - - - /* (5) Gestion de la matrice de relations - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire de la matrice */ - pMatriceManager = new inputPhoneMatrice( - $('[data-sublink="phone"] article.matrice-panel') - ); - - /* (2) On le démarre */ - pMatriceManager.attach(pDynamicUpdate); - - - - // Listener pour snake - var smgr = new ShortcutManager(); - var snakeAlready = false; - smgr.append('s+n+a+k+e', function(){ if( !snakeAlready ){ snakeAlready = true; pMatriceManager.snake(); } }); - smgr.listen(); - - - - - - - - - - - - /* (6) Gestion de l'import du fichier - ---------------------------------------------------------*/ - // On vide l'input de type 'file' quand on clique - // $('[data-sublink="phone"] input#p_call_log-import[type="file"]').addEventListener('click', function(e){ - // e.target.value = null; - // }, false); - - // Gestion de l'upload - // $('[data-sublink="phone"] input#p_call_log-import[type="file"]').addEventListener('change', function(e){ - // /* (1) On rédige la requête */ - // var request = { - // path: 'upload/call_log', - // file: e.target.files[0] - // }; - // - // /* (2) On effectue l'upload (import) */ - // api.send(request, function(response){ - // console.log(response); - // - // var loadingNotif = null; - // - // // Si erreur, on quitte - // if( response.ModuleError != 0 ){ - // if( response.ModuleError == 9 ) - // Notification.error('Erreur', 'Il est nécessaire de saisir les informations du sujet avant d\'exporter son journal d\'appel'); - // else - // Notification.error('Erreur', response.ModuleError); - // return; - // }else - // loadingNotif = Notification.info('Info', 'Chargement du journal d\'appel'); - // - // - // /* (3) On enregistre l'identifiant temporaire du sujet */ - // pSubjectManager.tmp_id.value = response.tmp_id; - // pSubjectManager.fieldsToStorage(); - // pSubjectManager.storageToFields(); - // - // - // - // /* (3) On crée les 10 contacts les plus APPELÉS */ - // for( var i = 0 ; i < response.call.length ; i++ ){ - // - // // Données du cnotact - // var conData = response.directory[ response.call[i] ]; - // - // lsi.set('p_contacts', conData.id, { - // uid: conData.id, - // number: conData.number, - // username: conData.name, // nom - // countsms: conData.sms, // Nombre de sms - // countcall: conData.call, // Nombre d'appels - // call: i, // classement dans le top 10 des APPELS - // sms: -1 // classement dans le top 10 des SMS - // }); - // - // } - // - // - // /* (5) On crée les 10 contacts les plus SMSÉS */ - // for( var i = 0 ; i < response.sms.length ; i++ ){ - // - // // Données du cnotact - // var conData = response.directory[response.sms[i]]; - // - // // Si le contact existe déja, on lui ajoute juste 'sms' - // // Si le contact est déja dans le top 10 des appels, on lui ajoute juste le classement dans le top 10 des SMS - // var callIndex = response.call.indexOf(response.sms[i]); - // if( callIndex > -1 ){ - // var created = lsi.get('p_contacts', conData.id); - // created.sms = i; - // lsi.set('p_contacts', conData.id, created); - // continue; - // } - // - // - // lsi.set('p_contacts', conData.id, { - // uid: conData.id, - // number: conData.number, - // username: conData.name, // nom - // countsms: conData.sms, // Nombre de sms - // countcall: conData.call, // Nombre d'appels - // call: -1, // classement dans le top 10 des APPELS - // sms: i // classement dans le top 10 des SMS - // }); - // - // } - // - // /* (7) Pour chaque contact qui n'est pas dans un top 10, on l'ajoute */ - // for( var id in response.directory ){ - // - // id = parseInt(id); - // - // // Si dans top 10 des APPELS, on ne l'ajoute pas - // if( response.call.indexOf(id) > -1 ) - // continue; - // - // // Si dans top 10 des SMS, on ne l'ajoute pas - // if( response.sms.indexOf(id) > -1 ) - // continue; - // - // // On récupère les données du contact - // var conData = response.directory[id]; - // - // - // lsi.set('p_contacts', conData.id, { - // uid: conData.id, - // number: conData.number, - // username: conData.name, // nom - // countsms: conData.sms, // Nombre de sms - // countcall: conData.call, // Nombre d'appels - // call: -1, - // sms: -1 - // }); - // } - // - // /* (8) On met à jour l'affichage */ - // pContactManager.storageToFields(); - // pDynamicUpdate(true); - // - // - // /* (9) On notifie la fin du chargement */ - // // On retire la notification de chargement - // if( loadingNotif != null ) - // loadingNotif.click(); - // - // // On notifie que tout s'est bien passé - // Notification.success('OK', 'Chargement terminé'); - // - // }); - // - // }, false); - - - - /* (7) Gestion de l'effacement des données locales - ---------------------------------------------------------*/ - $('[data-sublink="phone"] #p_clear-all').addEventListener('click', function(e){ - /* (1) On vide tous les dataset de données */ - lsi.clear('p_subject'); - lsi.clear('p_contacts'); - lsi.clear('p_mini-fiches'); - lsi.clear('p_fiches'); - lsi.clear('p_matrice'); - lsi.clear('p_friends'); - - - /* (2) On met à jour l'affichage */ - pSubjectManager.storageToFields(); - pContactManager.storageToFields(); - pMiniManager.storageToFields(); - pFicheManager.storageToFields(); - pMatriceManager.storageToFields(); - - Notification.success('OK', 'Les données ont été supprimées'); - }, false); - - - - /* (8) Gestion de l'export des données locales - ---------------------------------------------------------*/ - $('[data-sublink="phone"] #p_export-all').addEventListener('click', function(e){ - - Notification.info('INFORMATION', 'Lancement du téléchargement de la sauvegarde'); - - /* (1) On construit les données */ - var data = { - subject: lsi.export('p_subject')[0], - contacts: lsi.export('p_contacts'), - mini: lsi.export('p_mini-fiches'), - fiches: lsi.export('p_fiches'), - matrice: lsi.export('p_matrice')[0] - }; - - - /* (2) On lance le téléchargement */ - var downloadTarget = $('[data-sublink="phone"] #p_download-target'); // On récupère le lien () caché qui fera le téléchargement - downloadTarget.download = 'local-phone-data.json'; // Nom du fichier qui sera téléchargé - downloadTarget.href = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(data)); // Contenu - downloadTarget.click(); // On lance le téléchargement - - }, false); - - - - - /* (9) Gestion de l'import des données locales - ---------------------------------------------------------*/ - // Le bouton lance l' file - $('[data-sublink="phone"] #p_import-all').addEventListener('click', function(e){ - $('[data-sublink="phone"] #p_local-upload').click(); - }, false); - - - // On vide l'input de type 'file' quand on clique - $('[data-sublink="phone"] #p_local-upload').addEventListener('click', function(e){ - e.target.value = null; - }, false); - - // Gestion de l'upload d'une sauvegarde de formulaire local - $('[data-sublink="phone"] #p_local-upload').addEventListener('change', function(e){ - /* (1) Rédaction de la requête d'upload */ - var request = { - path: 'upload/local_data', - file: $('[data-sublink="phone"] #p_local-upload').files[0] - }; - - /* (2) Upload et réponse */ - api.send(request, function(response){ - console.log(response); - - // Si erreur, on quitte - if( response.ModuleError != 0 ){ - Notification.error('Erreur', response.ModuleError); - return false; - } - - /* (3) On enregistre les données dans le 'localStorage' */ - lsi.set('p_subject', 0, response.local_data.subject); - lsi.import('p_contacts', response.local_data.contacts); - lsi.import('p_mini-fiches', response.local_data.mini); - lsi.import('p_fiches', response.local_data.fiches); - lsi.set('p_matrice', 0, response.local_data.matrice); - - /* (3) On met à jour l'affichage */ + /* (4) Gestion des fiches relation + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des fiches relation */ + pFicheManager = new inputPhoneFiche( + $('[data-sublink="phone"] article.relation-panel'), + $('[data-sublink="phone"] #p_nav-fiche') + ); + + /* (2) On le démarre */ + pFicheManager.attach(pDynamicUpdate); + + + /* (5) Gestion de la matrice de relations + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire de la matrice */ + pMatriceManager = new inputPhoneMatrice( + $('[data-sublink="phone"] article.matrice-panel') + ); + + /* (2) On le démarre */ + pMatriceManager.attach(pDynamicUpdate); + + + + // Listener pour snake + var smgr = new ShortcutManager(); + var snakeAlready = false; + smgr.append('s+n+a+k+e', function(){ if( !snakeAlready ){ snakeAlready = true; pMatriceManager.snake(); } }); + smgr.listen(); + + + + + + + + + + + + /* (6) Gestion de l'import du fichier + ---------------------------------------------------------*/ + // On vide l'input de type 'file' quand on clique + // $('[data-sublink="phone"] input#p_call_log-import[type="file"]').addEventListener('click', function(e){ + // e.target.value = null; + // }, false); + + // Gestion de l'upload + // $('[data-sublink="phone"] input#p_call_log-import[type="file"]').addEventListener('change', function(e){ + // /* (1) On rédige la requête */ + // var request = { + // path: 'upload/call_log', + // file: e.target.files[0] + // }; + // + // /* (2) On effectue l'upload (import) */ + // api.send(request, function(response){ + // console.log(response); + // + // var loadingNotif = null; + // + // // Si erreur, on quitte + // if( response.ModuleError != 0 ){ + // if( response.ModuleError == 9 ) + // Notification.error('Erreur', 'Il est nécessaire de saisir les informations du sujet avant d\'exporter son journal d\'appel'); + // else + // Notification.error('Erreur', response.ModuleError); + // return; + // }else + // loadingNotif = Notification.info('Info', 'Chargement du journal d\'appel'); + // + // + // /* (3) On enregistre l'identifiant temporaire du sujet */ + // pSubjectManager.tmp_id.value = response.tmp_id; + // pSubjectManager.fieldsToStorage(); + // pSubjectManager.storageToFields(); + // + // + // + // /* (3) On crée les 10 contacts les plus APPELÉS */ + // for( var i = 0 ; i < response.call.length ; i++ ){ + // + // // Données du cnotact + // var conData = response.directory[ response.call[i] ]; + // + // lsi.set('p_contacts', conData.id, { + // uid: conData.id, + // number: conData.number, + // username: conData.name, // nom + // countsms: conData.sms, // Nombre de sms + // countcall: conData.call, // Nombre d'appels + // call: i, // classement dans le top 10 des APPELS + // sms: -1 // classement dans le top 10 des SMS + // }); + // + // } + // + // + // /* (5) On crée les 10 contacts les plus SMSÉS */ + // for( var i = 0 ; i < response.sms.length ; i++ ){ + // + // // Données du cnotact + // var conData = response.directory[response.sms[i]]; + // + // // Si le contact existe déja, on lui ajoute juste 'sms' + // // Si le contact est déja dans le top 10 des appels, on lui ajoute juste le classement dans le top 10 des SMS + // var callIndex = response.call.indexOf(response.sms[i]); + // if( callIndex > -1 ){ + // var created = lsi.get('p_contacts', conData.id); + // created.sms = i; + // lsi.set('p_contacts', conData.id, created); + // continue; + // } + // + // + // lsi.set('p_contacts', conData.id, { + // uid: conData.id, + // number: conData.number, + // username: conData.name, // nom + // countsms: conData.sms, // Nombre de sms + // countcall: conData.call, // Nombre d'appels + // call: -1, // classement dans le top 10 des APPELS + // sms: i // classement dans le top 10 des SMS + // }); + // + // } + // + // /* (7) Pour chaque contact qui n'est pas dans un top 10, on l'ajoute */ + // for( var id in response.directory ){ + // + // id = parseInt(id); + // + // // Si dans top 10 des APPELS, on ne l'ajoute pas + // if( response.call.indexOf(id) > -1 ) + // continue; + // + // // Si dans top 10 des SMS, on ne l'ajoute pas + // if( response.sms.indexOf(id) > -1 ) + // continue; + // + // // On récupère les données du contact + // var conData = response.directory[id]; + // + // + // lsi.set('p_contacts', conData.id, { + // uid: conData.id, + // number: conData.number, + // username: conData.name, // nom + // countsms: conData.sms, // Nombre de sms + // countcall: conData.call, // Nombre d'appels + // call: -1, + // sms: -1 + // }); + // } + // + // /* (8) On met à jour l'affichage */ + // pContactManager.storageToFields(); + // pDynamicUpdate(true); + // + // + // /* (9) On notifie la fin du chargement */ + // // On retire la notification de chargement + // if( loadingNotif != null ) + // loadingNotif.click(); + // + // // On notifie que tout s'est bien passé + // Notification.success('OK', 'Chargement terminé'); + // + // }); + // + // }, false); + + + + /* (7) Gestion de l'effacement des données locales + ---------------------------------------------------------*/ + $('[data-sublink="phone"] #p_clear-all').addEventListener('click', function(e){ + /* (1) On vide tous les dataset de données */ + lsi.clear('p_subject'); + lsi.clear('p_contacts'); + lsi.clear('p_mini-fiches'); + lsi.clear('p_fiches'); + lsi.clear('p_matrice'); + lsi.clear('p_friends'); + + + /* (2) On met à jour l'affichage */ pSubjectManager.storageToFields(); pContactManager.storageToFields(); + pMiniManager.storageToFields(); + pFicheManager.storageToFields(); pMatriceManager.storageToFields(); - pDynamicUpdate(true); - }); - - }, false); + Notification.success('OK', 'Les données ont été supprimées'); + }, false); + /* (8) Gestion de l'export des données locales + ---------------------------------------------------------*/ + $('[data-sublink="phone"] #p_export-all').addEventListener('click', function(e){ - /* (10) Gestion de la validation et de l'envoi des données - ---------------------------------------------------------*/ - $('[data-sublink="phone"] #p_submit-all').addEventListener('click', function(e){ - console.log('> GATHERING ALL DATA'); + Notification.info('INFORMATION', 'Lancement du téléchargement de la sauvegarde'); - /* (1) On met dans la mémoire tout les champs non enregistrés */ - pSubjectManager.fieldsToStorage(); - pContactManager.fieldsToStorage(); - pMiniManager.fieldsToStorage(); - pFicheManager.fieldsToStorage(); - - /* (2) Vérification de la validité de toutes les données */ - // {1} Vérification du sujet // - if( !pSubjectManager.check() ){ - Notification.warning('Attention', 'Vous devez saisir les informations du sujet'); - return false; - } - // {2} Vérification des mini-fiches // - var mini = lsi.export('p_mini-fiches'); - var i = 0; - for( var id in mini ){ if( !isNaN(id) ){ - - i++ - - if( !mini[id].valid ){ - Notification.warning('Attention', 'La fiche rapide '+i+' est incomplète et/ou incorrecte'); - return false; - } - - }} - // {3} Vérification des fiches // - var fiches = lsi.export('p_fiches'); - for( var id in fiches ) - if( !fiches[id].valid ){ - Notification.warning('Attention', 'La fiche complète '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); - return false; - } + /* (1) On construit les données */ + var data = { + subject: lsi.export('p_subject')[0], + contacts: lsi.export('p_contacts'), + mini: lsi.export('p_mini-fiches'), + fiches: lsi.export('p_fiches'), + matrice: lsi.export('p_matrice')[0] + }; - - /* (3) On prépare la requête avec toutes les données */ - var request = { - path: 'input/phone', - - subject: lsi.export('p_subject')[0], - contacts: lsi.export('p_contacts'), - mini: lsi.export('p_mini-fiches'), - fiches: lsi.export('p_fiches'), - matrice: lsi.export('p_matrice')[0] - }; - - /* (4) On envoie la requête et traite la réponse */ - api.send(request, function(response){ - console.log(response); - - // Si erreur, on la notifie - if( response.ModuleError != 0 ){ - Notification.error('ERREUR', response.ModuleError); - return false; - } - - Notification.success('OK', "L'identifiant du sujet est "+response.subject_id+" ! Tout s'est bien déroulé.", 10000); - - console.log(response); + /* (2) On lance le téléchargement */ + var downloadTarget = $('[data-sublink="phone"] #p_download-target'); // On récupère le lien () caché qui fera le téléchargement + downloadTarget.download = 'local-phone-data.json'; // Nom du fichier qui sera téléchargé + downloadTarget.href = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(data)); // Contenu + downloadTarget.click(); // On lance le téléchargement }, false); - }, false); -}); }); }); }); }); + /* (9) Gestion de l'import des données locales + ---------------------------------------------------------*/ + // Le bouton lance l' file + $('[data-sublink="phone"] #p_import-all').addEventListener('click', function(e){ + $('[data-sublink="phone"] #p_local-upload').click(); + }, false); + + + // On vide l'input de type 'file' quand on clique + $('[data-sublink="phone"] #p_local-upload').addEventListener('click', function(e){ + e.target.value = null; + }, false); + + // Gestion de l'upload d'une sauvegarde de formulaire local + $('[data-sublink="phone"] #p_local-upload').addEventListener('change', function(e){ + /* (1) Rédaction de la requête d'upload */ + var request = { + path: 'upload/local_data', + file: $('[data-sublink="phone"] #p_local-upload').files[0] + }; + + /* (2) Upload et réponse */ + api.send(request, function(response){ + console.log(response); + + // Si erreur, on quitte + if( response.ModuleError != 0 ){ + Notification.error('Erreur', response.ModuleError); + return false; + } + + /* (3) On enregistre les données dans le 'localStorage' */ + lsi.set('p_subject', 0, response.local_data.subject); + lsi.import('p_contacts', response.local_data.contacts); + lsi.import('p_mini-fiches', response.local_data.mini); + lsi.import('p_fiches', response.local_data.fiches); + lsi.set('p_matrice', 0, response.local_data.matrice); + + /* (3) On met à jour l'affichage */ + pSubjectManager.storageToFields(); + pContactManager.storageToFields(); + pMatriceManager.storageToFields(); + pDynamicUpdate(true); + + }); + + }, false); + + + + + /* (10) Gestion de la validation et de l'envoi des données + ---------------------------------------------------------*/ + $('[data-sublink="phone"] #p_submit-all').addEventListener('click', function(e){ + console.log('> GATHERING ALL DATA'); + + /* (1) On met dans la mémoire tout les champs non enregistrés */ + pSubjectManager.fieldsToStorage(); + pContactManager.fieldsToStorage(); + pMiniManager.fieldsToStorage(); + pFicheManager.fieldsToStorage(); + + /* (2) Vérification de la validité de toutes les données */ + // {1} Vérification du sujet // + if( !pSubjectManager.check() ){ + Notification.warning('Attention', 'Vous devez saisir les informations du sujet'); + return false; + } + // {2} Vérification des mini-fiches // + var mini = lsi.export('p_mini-fiches'); + var i = 0; + for( var id in mini ){ if( !isNaN(id) ){ + + i++ + + if( !mini[id].valid ){ + Notification.warning('Attention', 'La fiche rapide '+i+' est incomplète et/ou incorrecte'); + return false; + } + + }} + // {3} Vérification des fiches // + var fiches = lsi.export('p_fiches'); + for( var id in fiches ) + if( !fiches[id].valid ){ + Notification.warning('Attention', 'La fiche complète '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); + return false; + } + + + + /* (3) On prépare la requête avec toutes les données */ + var request = { + path: 'input/phone', + + subject: lsi.export('p_subject')[0], + contacts: lsi.export('p_contacts'), + mini: lsi.export('p_mini-fiches'), + fiches: lsi.export('p_fiches'), + matrice: lsi.export('p_matrice')[0] + }; + + /* (4) On envoie la requête et traite la réponse */ + api.send(request, function(response){ + console.log(response); + + // Si erreur, on la notifie + if( response.ModuleError != 0 ){ + Notification.error('ERREUR', response.ModuleError); + return false; + } + + Notification.success('OK', "L'identifiant du sujet est "+response.subject_id+" ! Tout s'est bien déroulé.", 10000); + + console.log(response); + + }, false); + + + }, false); + + + }); }); }); }); }); @@ -656,257 +669,257 @@ include('/js/includes/input-phone-matrice-min.js', function(){ -/*=========================================================*/ -/*=========== Gestion du formulaire facebook ==============*/ -/*=========================================================*/ -include('/js/includes/input-facebook-subject-min.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-facebook-contact.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-facebook-mini.js', function(){ - //TODO: Remettre version min -include('/js/includes/input-facebook-fiche.js', function(){ -include('/js/includes/input-facebook-matrice-min.js', function(){ + /*=========================================================*/ + /*=========== Gestion du formulaire facebook ==============*/ + /*=========================================================*/ + include('/js/includes/input-facebook-subject-min.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-facebook-contact.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-facebook-mini.js', function(){ + //TODO: Remettre version min + include('/js/includes/input-facebook-fiche.js', function(){ + include('/js/includes/input-facebook-matrice-min.js', function(){ - /* (1) Gestion du formulaire du sujet - ---------------------------------------------------------*/ - /* (1) On crée une instance du manager du sujet */ - fSubjectManager = new inputFacebookSubject( - $('[data-sublink="facebook"] article.subject-panel [data-name="subject_id"]'), - $('[data-sublink="facebook"] article.subject-panel [data-name="submit"]') - ); + /* (1) Gestion du formulaire du sujet + ---------------------------------------------------------*/ + /* (1) On crée une instance du manager du sujet */ + fSubjectManager = new inputFacebookSubject( + $('[data-sublink="facebook"] article.subject-panel [data-name="subject_id"]'), + $('[data-sublink="facebook"] article.subject-panel [data-name="submit"]') + ); - /* (2) On le démarre */ - fSubjectManager.attach(fDynamicUpdate); + /* (2) On le démarre */ + fSubjectManager.attach(fDynamicUpdate); - /* (2) Gestion des formulaires de contact - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des CONTACTS */ - fContactManager = new inputFacebookContact( - $('[data-sublink="facebook"] article.contact-panel'), - $('[data-sublink="facebook"] #f_nav-contact') - ); + /* (2) Gestion des formulaires de contact + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des CONTACTS */ + fContactManager = new inputFacebookContact( + $('[data-sublink="facebook"] article.contact-panel'), + $('[data-sublink="facebook"] #f_nav-contact') + ); - /* (2) On le démarre */ - fContactManager.attach(fDynamicUpdate); + /* (2) On le démarre */ + fContactManager.attach(fDynamicUpdate); - /* (3) Gestion des mini fiches relation - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des mini fiches relation */ - fMiniManager = new inputFacebookMini( - $('[data-sublink="facebook"] article.mini-relation-panel'), - $('[data-sublink="facebook"] #f_nav-mini') - ); + /* (3) Gestion des mini fiches relation + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des mini fiches relation */ + fMiniManager = new inputFacebookMini( + $('[data-sublink="facebook"] article.mini-relation-panel'), + $('[data-sublink="facebook"] #f_nav-mini') + ); - /* (2) On le démarre */ - fMiniManager.attach(fDynamicUpdate); + /* (2) On le démarre */ + fMiniManager.attach(fDynamicUpdate); - /* (4) Gestion des fiches relation - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire des fiches relation */ - fFicheManager = new inputFacebookFiche( - $('[data-sublink="facebook"] article.relation-panel'), - $('[data-sublink="facebook"] #f_nav-fiche') - ); + /* (4) Gestion des fiches relation + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire des fiches relation */ + fFicheManager = new inputFacebookFiche( + $('[data-sublink="facebook"] article.relation-panel'), + $('[data-sublink="facebook"] #f_nav-fiche') + ); - /* (2) On le démarre */ - fFicheManager.attach(fDynamicUpdate); + /* (2) On le démarre */ + fFicheManager.attach(fDynamicUpdate); - /* (5) Gestion de la matrice de relations - ---------------------------------------------------------*/ - /* (1) On crée une instance du gestionnaire de la matrice */ - fMatriceManager = new inputFacebookMatrice( - $('[data-sublink="facebook"] article.matrice-panel') - ); + /* (5) Gestion de la matrice de relations + ---------------------------------------------------------*/ + /* (1) On crée une instance du gestionnaire de la matrice */ + fMatriceManager = new inputFacebookMatrice( + $('[data-sublink="facebook"] article.matrice-panel') + ); - /* (2) On le démarre */ - fMatriceManager.attach(fDynamicUpdate); + /* (2) On le démarre */ + fMatriceManager.attach(fDynamicUpdate); - /* (7) Gestion de l'effacement des données locales - ---------------------------------------------------------*/ - $('[data-sublink="facebook"] #f_clear-all').addEventListener('click', function(e){ - /* (1) On vide tous les dataset de données */ - lsi.clear('f_subject'); - lsi.clear('f_contacts'); - lsi.clear('f_mini-fiches'); - lsi.clear('f_fiches'); - lsi.clear('f_matrice'); - lsi.clear('f_friends'); + /* (7) Gestion de l'effacement des données locales + ---------------------------------------------------------*/ + $('[data-sublink="facebook"] #f_clear-all').addEventListener('click', function(e){ + /* (1) On vide tous les dataset de données */ + lsi.clear('f_subject'); + lsi.clear('f_contacts'); + lsi.clear('f_mini-fiches'); + lsi.clear('f_fiches'); + lsi.clear('f_matrice'); + lsi.clear('f_friends'); - /* (2) On met à jour l'affichage */ - fSubjectManager.storageToFields(); - fContactManager.storageToFields(); - fMiniManager.storageToFields(); - fFicheManager.storageToFields(); - fMatriceManager.storageToFields(); - - Notification.success('OK', 'Les données ont été supprimées'); - }, false); - - - - /* (8) Gestion de l'export des données locales - ---------------------------------------------------------*/ - $('[data-sublink="facebook"] #f_export-all').addEventListener('click', function(e){ - - Notification.info('INFORMATION', 'Lancement du téléchargement de la sauvegarde'); - - /* (1) On construit les données */ - var data = { - subject: lsi.export('f_subject')[0], - contacts: lsi.export('f_contacts'), - mini: lsi.export('f_mini-fiches'), - fiches: lsi.export('f_fiches'), - matrice: lsi.export('f_matrice')[0] - }; - - - /* (2) On lance le téléchargement */ - var downloadTarget = $('[data-sublink="facebook"] #f_download-target'); // On récupère le lien () caché qui fera le téléchargement - downloadTarget.download = 'local-facebook-data.json'; // Nom du fichier qui sera téléchargé - downloadTarget.href = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(data)); // Contenu - downloadTarget.click(); // On lance le téléchargement - - }, false); - - - - - /* (9) Gestion de l'import des données locales - ---------------------------------------------------------*/ - // Le bouton lance l' file - $('[data-sublink="facebook"] #f_import-all').addEventListener('click', function(e){ - $('[data-sublink="facebook"] #f_local-upload').click(); - }, false); - - - // On vide l'input de type 'file' quand on clique - $('[data-sublink="facebook"] #f_local-upload').addEventListener('click', function(e){ - e.target.value = null; - }, false); - - // Gestion de l'upload d'une sauvegarde de formulaire local - $('[data-sublink="facebook"] #f_local-upload').addEventListener('change', function(e){ - /* (1) Rédaction de la requête d'upload */ - var request = { - path: 'upload/local_data', - file: $('[data-sublink="facebook"] #f_local-upload').files[0] - }; - - /* (2) Upload et réponse */ - api.send(request, function(response){ - console.log(response); - - // Si erreur, on quitte - if( response.ModuleError != 0 ){ - Notification.error('Erreur', response.ModuleError); - return false; - } - - /* (3) On enregistre les données dans le 'localStorage' */ - lsi.set('f_subject', 0, response.local_data.subject); - lsi.import('f_contacts', response.local_data.contacts); - lsi.import('f_mini-fiches', response.local_data.mini); - lsi.import('f_fiches', response.local_data.fiches); - lsi.set('f_matrice', 0, response.local_data.matrice); - - /* (3) On met à jour l'affichage */ + /* (2) On met à jour l'affichage */ fSubjectManager.storageToFields(); fContactManager.storageToFields(); + fMiniManager.storageToFields(); + fFicheManager.storageToFields(); fMatriceManager.storageToFields(); - fDynamicUpdate(true); - }); - - }, false); + Notification.success('OK', 'Les données ont été supprimées'); + }, false); + /* (8) Gestion de l'export des données locales + ---------------------------------------------------------*/ + $('[data-sublink="facebook"] #f_export-all').addEventListener('click', function(e){ - /* (10) Gestion de la validation et de l'envoi des données - ---------------------------------------------------------*/ - $('[data-sublink="facebook"] #f_submit-all').addEventListener('click', function(e){ - console.log('> GATHERING ALL DATA'); + Notification.info('INFORMATION', 'Lancement du téléchargement de la sauvegarde'); - /* (1) On met dans la mémoire tout les champs non enregistrés */ - fSubjectManager.fieldsToStorage(); - fContactManager.fieldsToStorage(); - fMiniManager.fieldsToStorage(); - fFicheManager.fieldsToStorage(); - - /* (2) Vérification de la validité de toutes les données */ - // {1} Vérification du sujet // - if( !fSubjectManager.check() ){ - Notification.warning('Attention', 'Vous devez saisir les informations du sujet'); - return false; - } - // {2} Vérification des mini-fiches // - var mini = lsi.export('f_mini-fiches'); - var i = 0; - for( var id in mini ){ if( !isNaN(id) ){ - - i++ - - if( !mini[id].valid ){ - Notification.warning('Attention', 'La fiche rapide '+i+' est incomplète et/ou incorrecte'); - return false; - } - - }} - // {3} Vérification des fiches // - var fiches = lsi.export('f_fiches'); - for( var id in fiches ) - if( !fiches[id].valid ){ - Notification.warning('Attention', 'La fiche complète '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); - return false; - } + /* (1) On construit les données */ + var data = { + subject: lsi.export('f_subject')[0], + contacts: lsi.export('f_contacts'), + mini: lsi.export('f_mini-fiches'), + fiches: lsi.export('f_fiches'), + matrice: lsi.export('f_matrice')[0] + }; - - /* (3) On prépare la requête avec toutes les données */ - var request = { - path: 'input/facebook', - - subject: lsi.export('f_subject')[0], - contacts: lsi.export('f_contacts'), - mini: lsi.export('f_mini-fiches'), - fiches: lsi.export('f_fiches'), - matrice: lsi.export('f_matrice')[0] - }; - - /* (4) On envoie la requête et traite la réponse */ - api.send(request, function(response){ - console.log(response); - - // Si erreur, on la notifie - if( response.ModuleError != 0 ){ - Notification.error('ERREUR', response.ModuleError); - return false; - } - - console.log(response); + /* (2) On lance le téléchargement */ + var downloadTarget = $('[data-sublink="facebook"] #f_download-target'); // On récupère le lien () caché qui fera le téléchargement + downloadTarget.download = 'local-facebook-data.json'; // Nom du fichier qui sera téléchargé + downloadTarget.href = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(data)); // Contenu + downloadTarget.click(); // On lance le téléchargement }, false); - }, false); -}); }); }); }); }); + /* (9) Gestion de l'import des données locales + ---------------------------------------------------------*/ + // Le bouton lance l' file + $('[data-sublink="facebook"] #f_import-all').addEventListener('click', function(e){ + $('[data-sublink="facebook"] #f_local-upload').click(); + }, false); + + + // On vide l'input de type 'file' quand on clique + $('[data-sublink="facebook"] #f_local-upload').addEventListener('click', function(e){ + e.target.value = null; + }, false); + + // Gestion de l'upload d'une sauvegarde de formulaire local + $('[data-sublink="facebook"] #f_local-upload').addEventListener('change', function(e){ + /* (1) Rédaction de la requête d'upload */ + var request = { + path: 'upload/local_data', + file: $('[data-sublink="facebook"] #f_local-upload').files[0] + }; + + /* (2) Upload et réponse */ + api.send(request, function(response){ + console.log(response); + + // Si erreur, on quitte + if( response.ModuleError != 0 ){ + Notification.error('Erreur', response.ModuleError); + return false; + } + + /* (3) On enregistre les données dans le 'localStorage' */ + lsi.set('f_subject', 0, response.local_data.subject); + lsi.import('f_contacts', response.local_data.contacts); + lsi.import('f_mini-fiches', response.local_data.mini); + lsi.import('f_fiches', response.local_data.fiches); + lsi.set('f_matrice', 0, response.local_data.matrice); + + /* (3) On met à jour l'affichage */ + fSubjectManager.storageToFields(); + fContactManager.storageToFields(); + fMatriceManager.storageToFields(); + fDynamicUpdate(true); + + }); + + }, false); + + + + + /* (10) Gestion de la validation et de l'envoi des données + ---------------------------------------------------------*/ + $('[data-sublink="facebook"] #f_submit-all').addEventListener('click', function(e){ + console.log('> GATHERING ALL DATA'); + + /* (1) On met dans la mémoire tout les champs non enregistrés */ + fSubjectManager.fieldsToStorage(); + fContactManager.fieldsToStorage(); + fMiniManager.fieldsToStorage(); + fFicheManager.fieldsToStorage(); + + /* (2) Vérification de la validité de toutes les données */ + // {1} Vérification du sujet // + if( !fSubjectManager.check() ){ + Notification.warning('Attention', 'Vous devez saisir les informations du sujet'); + return false; + } + // {2} Vérification des mini-fiches // + var mini = lsi.export('f_mini-fiches'); + var i = 0; + for( var id in mini ){ if( !isNaN(id) ){ + + i++ + + if( !mini[id].valid ){ + Notification.warning('Attention', 'La fiche rapide '+i+' est incomplète et/ou incorrecte'); + return false; + } + + }} + // {3} Vérification des fiches // + var fiches = lsi.export('f_fiches'); + for( var id in fiches ) + if( !fiches[id].valid ){ + Notification.warning('Attention', 'La fiche complète '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); + return false; + } + + + + /* (3) On prépare la requête avec toutes les données */ + var request = { + path: 'input/facebook', + + subject: lsi.export('f_subject')[0], + contacts: lsi.export('f_contacts'), + mini: lsi.export('f_mini-fiches'), + fiches: lsi.export('f_fiches'), + matrice: lsi.export('f_matrice')[0] + }; + + /* (4) On envoie la requête et traite la réponse */ + api.send(request, function(response){ + console.log(response); + + // Si erreur, on la notifie + if( response.ModuleError != 0 ){ + Notification.error('ERREUR', response.ModuleError); + return false; + } + + console.log(response); + + }, false); + + + }, false); + + + }); }); }); }); }); @@ -941,357 +954,361 @@ include('/js/includes/input-facebook-matrice-min.js', function(){ -/*=========================================================*/ -/*============= Routine de test CELLULAIRE ================*/ -/*=========================================================*/ -function testRoutinePhone(doMini){ + /*=========================================================*/ + /*============= Routine de test CELLULAIRE ================*/ + /*=========================================================*/ + function testRoutinePhone(doMini){ - /* [0] Récupération des données - =========================================================*/ - var contacts = lsi.export('p_contacts'); - var mini = lsi.export('p_mini-fiches'); - var fiches = lsi.export('p_fiches'); + /* [0] Récupération des données + =========================================================*/ + var contacts = lsi.export('p_contacts'); + var mini = lsi.export('p_mini-fiches'); + var fiches = lsi.export('p_fiches'); - var count = 0; + var count = 0; - /* [1] Remplissage des mini-fiches - =========================================================*/ - if( doMini != null && doMini ){ - for( var m in mini ){ + /* [1] Remplissage des mini-fiches + =========================================================*/ + if( doMini != null && doMini ){ + for( var m in mini ){ + + /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ + if( isNaN(m) ) + continue; + + /* (1) On récupére le nom du contact associé */ + var name = ''; + if( contacts[m] != null ) + name = contacts[m].username; + + /* (2) On remplit la mini fiche */ + // {1} On se positionne sur la fiche en question // + var navBut = $('#p_nav-mini [data-n="'+m+'"]'); + navBut.click(); + + // {2} Si la personne n'a pas de nom, on met que ce contact est inconnu, puis les valeurs par défaut // + $('#unknown_min_p_'+m).checked = name.length == 0; + + + /* (3) Si personne inconnue -> valeurs indéterminées */ + if( name.length == 0 ){ + + // {1} Sexe indéterminé // + $('#sexeI_mini_p_'+m).checked = true; + + // {2} Age indéterminé // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + + // {3} Etudes indéterminées // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 0; + + // {4} Type de relation inconnue // + $('#reltype9_mini_p_'+m).checked = true; + + + + + continue; + /* (4) Si la personne est connue on incrémente les valeurs */ + }else{ + + // {1} On remplit le sexe // + var sexeVal = ['H', 'F'][ Math.floor(count % 2) ]; + $('#sexe'+sexeVal+'_mini_p_'+m).checked = true; + + // {2} On remplit l'age // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + + // {3} On remplit les études // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 1 + (count % 6); + + // {4} Type de relation // + var relVal = count % 10; + // Si AUTRE + if( relVal == 9 ){ + $('#reltype10_mini_p_'+m).checked = true; + $('input[data-name="uid"][value="'+m+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; + // Sinon + }else + $('#reltype'+relVal+'_mini_p_'+m).checked = true; + + } + + count++; + + } + } + + + + /* [2] Remplissage des fiches complètes + =========================================================*/ + for( var f in fiches ){ /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ - if( isNaN(m) ) + if( isNaN(f) ) continue; /* (1) On récupére le nom du contact associé */ var name = ''; - if( contacts[m] != null ) - name = contacts[m].username; + if( contacts[fiches[f].contact] != null ) + name = contacts[fiches[f].contact].username; - /* (2) On remplit la mini fiche */ + /* (2) On remplit la fiche */ // {1} On se positionne sur la fiche en question // - var navBut = $('#p_nav-mini [data-n="'+m+'"]'); + var navBut = $('#p_nav-fiche [data-n="'+f+'"]'); navBut.click(); - // {2} Si la personne n'a pas de nom, on met que ce contact est inconnu, puis les valeurs par défaut // - $('#unknown_min_p_'+m).checked = name.length == 0; - /* (3) Si personne inconnue -> valeurs indéterminées */ - if( name.length == 0 ){ + // {1} On remplit le sexe // + var sexeVal = ['H', 'F', 'I'][ Math.floor(count % 3) ]; + $('#sexe'+sexeVal+'_p_'+f).checked = true; - // {1} Sexe indéterminé // - $('#sexeI_mini_p_'+m).checked = true; + // {2} On remplit l'age // + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="age"]').value = count % 19; - // {2} Age indéterminé // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + // {3} On remplit la profession // + var jobVal = ['10', '21', '22', '23', '31', '32', '36', '41', '46', '47', '48', '51', '54', '55', '56', '61', '66', '69', '71', '72', '73', '74', '75', '76', '81', '82']; + jobVal = jobVal[ count % jobVal.length ]; + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="job"]').value = jobVal; - // {3} Etudes indéterminées // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 0; + // {4} On remplit les études // + var stuVal = (count % 12).toString(); + if( stuVal.length == 1 ) stuVal = '0'+stuVal; + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="studies"]').value = stuVal; - // {4} Type de relation inconnue // - $('#reltype9_mini_p_'+m).checked = true; + // {5} Type de relation // + var relVal = count % 9; + + // Si AUTRE + if( relVal == 8 ){ + $('#reltype10_p_'+f).checked = true; + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; + // Sinon + }else + $('#reltype'+relVal+'_p_'+f).checked = true; + + // {6} La ville, le CP et le quartier // + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="city"]').value = (10 + count).toString(); + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="cp"]').value = (10000 + count).toString(); + $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="quartier"]').value = count; + + // {7} Temps entre les domiciles // + var locVal = ['A', 'B', 'C', 'D'][ Math.floor(count % 4) ]; + $('#loc'+locVal+'_p_'+f).checked = true; + + // {8} Temps de connaissance // + var duration = $$('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="duration"]'); + duration[0].value = count.toString(); + duration[1].value = 1+count.toString(); + + // {9} Contexte de rencontre // + var ctxVal = count % 14; + $('article.fiche-relation #contexte'+ctxVal+'_p_'+f).checked = true; + + var ctxSpe = $$('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="contextSpecial"]'); + + // Si special1 + if( ctxVal == 11 ) + ctxSpe[0].value = 'internet'; + + // Si special2 + if( ctxVal == 12 ) + ctxSpe[1].value = 'association'; + + // Si special3 + if( ctxVal == 13 ) + ctxSpe[2].value = 'autre'; - - continue; - /* (4) Si la personne est connue on incrémente les valeurs */ - }else{ - - // {1} On remplit le sexe // - var sexeVal = ['H', 'F'][ Math.floor(count % 2) ]; - $('#sexe'+sexeVal+'_mini_p_'+m).checked = true; - - // {2} On remplit l'age // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; - - // {3} On remplit les études // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 1 + (count % 6); - - // {4} Type de relation // - var relVal = count % 10; - // Si AUTRE - if( relVal == 9 ){ - $('#reltype10_mini_p_'+m).checked = true; - $('input[data-name="uid"][value="'+m+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; - // Sinon - }else - $('#reltype'+relVal+'_mini_p_'+m).checked = true; - - } - count++; } - } - - - - /* [2] Remplissage des fiches complètes - =========================================================*/ - for( var f in fiches ){ - - /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ - if( isNaN(f) ) - continue; - - /* (1) On récupére le nom du contact associé */ - var name = ''; - if( contacts[fiches[f].contact] != null ) - name = contacts[fiches[f].contact].username; - - /* (2) On remplit la fiche */ - // {1} On se positionne sur la fiche en question // - var navBut = $('#p_nav-fiche [data-n="'+f+'"]'); - navBut.click(); - - - - // {1} On remplit le sexe // - var sexeVal = ['H', 'F', 'I'][ Math.floor(count % 3) ]; - $('#sexe'+sexeVal+'_p_'+f).checked = true; - - // {2} On remplit l'age // - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="age"]').value = count % 19; - - // {3} On remplit la profession // - var jobVal = ['10', '21', '22', '23', '31', '32', '36', '41', '46', '47', '48', '51', '54', '55', '56', '61', '66', '69', '71', '72', '73', '74', '75', '76', '81', '82']; - jobVal = jobVal[ count % jobVal.length ]; - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="job"]').value = jobVal; - - // {4} On remplit les études // - var stuVal = (count % 12).toString(); - if( stuVal.length == 1 ) stuVal = '0'+stuVal; - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="studies"]').value = stuVal; - - // {5} Type de relation // - var relVal = count % 9; - - // Si AUTRE - if( relVal == 8 ){ - $('#reltype10_p_'+f).checked = true; - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; - // Sinon - }else - $('#reltype'+relVal+'_p_'+f).checked = true; - - // {6} La ville, le CP et le quartier // - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="city"]').value = (10 + count).toString(); - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="cp"]').value = (10000 + count).toString(); - $('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="quartier"]').value = count; - - // {7} Temps entre les domiciles // - var locVal = ['A', 'B', 'C', 'D'][ Math.floor(count % 4) ]; - $('#loc'+locVal+'_p_'+f).checked = true; - - // {8} Temps de connaissance // - var duration = $$('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="duration"]'); - duration[0].value = count.toString(); - duration[1].value = 1+count.toString(); - - // {9} Contexte de rencontre // - var ctxVal = count % 14; - $('article.fiche-relation #contexte'+ctxVal+'_p_'+f).checked = true; - - var ctxSpe = $$('article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="contextSpecial"]'); - - // Si special1 - if( ctxVal == 11 ) - ctxSpe[0].value = 'internet'; - - // Si special2 - if( ctxVal == 12 ) - ctxSpe[1].value = 'association'; - - // Si special3 - if( ctxVal == 13 ) - ctxSpe[2].value = 'autre'; - - - - count++; } -} + /*=========================================================*/ + /*============== Routine de test FACEBOOK =================*/ + /*=========================================================*/ + function testRoutineFacebook(doMini){ -/*=========================================================*/ -/*============== Routine de test FACEBOOK =================*/ -/*=========================================================*/ -function testRoutineFacebook(doMini){ + /* [0] Récupération des données + =========================================================*/ + var contacts = lsi.export('f_contacts'); + var mini = lsi.export('f_mini-fiches'); + var fiches = lsi.export('f_fiches'); - /* [0] Récupération des données - =========================================================*/ - var contacts = lsi.export('f_contacts'); - var mini = lsi.export('f_mini-fiches'); - var fiches = lsi.export('f_fiches'); + var count = 0; - var count = 0; + /* [1] Remplissage des mini-fiches + =========================================================*/ + if( doMini != null && doMini ){ + for( var m in mini ){ - /* [1] Remplissage des mini-fiches - =========================================================*/ - if( doMini != null && doMini ){ - for( var m in mini ){ + /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ + if( isNaN(m) ) + continue; + + /* (1) On récupére le nom du contact associé */ + var name = ''; + if( contacts[m] != null ) + name = contacts[m].username; + + /* (2) On remplit la mini fiche */ + // {1} On se positionne sur la fiche en question // + var navBut = $('#f_nav-mini [data-n="'+m+'"]'); + navBut.click(); + + // {2} Si la personne n'a pas de nom, on met que ce contact est inconnu, puis les valeurs par défaut // + $('#unknown_min_f_'+m).checked = name.length == 0; + + + /* (3) Si personne inconnue -> valeurs indéterminées */ + if( name.length == 0 ){ + + // {1} Sexe indéterminé // + $('#sexeI_mini_f_'+m).checked = true; + + // {2} Age indéterminé // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + + // {3} Etudes indéterminées // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 0; + + // {4} Type de relation inconnue // + $('#reltype9_mini_f_'+m).checked = true; + + + + + continue; + /* (4) Si la personne est connue on incrémente les valeurs */ + }else{ + + // {1} On remplit le sexe // + var sexeVal = ['H', 'F'][ Math.floor(count % 2) ]; + $('#sexe'+sexeVal+'_mini_f_'+m).checked = true; + + // {2} On remplit l'age // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + + // {3} On remplit les études // + $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 1 + (count % 6); + + // {4} Type de relation // + var relVal = count % 10; + // Si AUTRE + if( relVal == 9 ){ + $('#reltype10_mini_f_'+m).checked = true; + $('input[data-name="uid"][value="'+m+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; + // Sinon + }else + $('#reltype'+relVal+'_mini_f_'+m).checked = true; + + } + + count++; + + } + } + + + + /* [2] Remplissage des fiches complètes + =========================================================*/ + for( var f in fiches ){ /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ - if( isNaN(m) ) + if( isNaN(f) ) continue; /* (1) On récupére le nom du contact associé */ var name = ''; - if( contacts[m] != null ) - name = contacts[m].username; + if( contacts[fiches[f].contact] != null ) + name = contacts[fiches[f].contact].username; - /* (2) On remplit la mini fiche */ + /* (2) On remplit la fiche */ // {1} On se positionne sur la fiche en question // - var navBut = $('#f_nav-mini [data-n="'+m+'"]'); + var navBut = $('#f_nav-fiche [data-n="'+f+'"]'); navBut.click(); - // {2} Si la personne n'a pas de nom, on met que ce contact est inconnu, puis les valeurs par défaut // - $('#unknown_min_f_'+m).checked = name.length == 0; - /* (3) Si personne inconnue -> valeurs indéterminées */ - if( name.length == 0 ){ + // {1} On remplit le sexe // + var sexeVal = ['H', 'F', 'I'][ Math.floor(count % 3) ]; + $('#sexe'+sexeVal+'_f_'+f).checked = true; - // {1} Sexe indéterminé // - $('#sexeI_mini_f_'+m).checked = true; + // {2} On remplit l'age // + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="age"]').value = count % 19; - // {2} Age indéterminé // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; + // {3} On remplit la profession // + var jobVal = ['10', '21', '22', '23', '31', '32', '36', '41', '46', '47', '48', '51', '54', '55', '56', '61', '66', '69', '71', '72', '73', '74', '75', '76', '81', '82']; + jobVal = jobVal[ count % jobVal.length ]; + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="job"]').value = jobVal; - // {3} Etudes indéterminées // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 0; + // {4} On remplit les études // + var stuVal = (count % 12).toString(); + if( stuVal.length == 1 ) stuVal = '0'+stuVal; + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="studies"]').value = stuVal; - // {4} Type de relation inconnue // - $('#reltype9_mini_f_'+m).checked = true; + // {5} Type de relation // + var relVal = count % 9; + + // Si AUTRE + if( relVal == 8 ){ + $('#reltype10_f_'+f).checked = true; + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; + // Sinon + }else + $('#reltype'+relVal+'_f_'+f).checked = true; + + // {6} La ville, le CP et le quartier // + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="city"]').value = (10 + count).toString(); + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="cp"]').value = (10000 + count).toString(); + $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="quartier"]').value = count; + + // {7} Temps entre les domiciles // + var locVal = ['A', 'B', 'C', 'D'][ Math.floor(count % 4) ]; + $('#loc'+locVal+'_f_'+f).checked = true; + + // {8} Temps de connaissance // + var duration = $$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="duration"]'); + duration[0].value = count.toString(); + duration[1].value = 1+count.toString(); + + // {9} Contexte de rencontre // + var ctxVal = count % 14; + $('section[data-sublink="facebook"] article.fiche-relation #contexte'+ctxVal+'_f_'+f).checked = true; + + var ctxSpe = $$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="contextSpecial"]'); + + // Si special1 + if( ctxVal == 11 ) + ctxSpe[0].value = 'internet'; + + // Si special2 + if( ctxVal == 12 ) + ctxSpe[1].value = 'association'; + + // Si special3 + if( ctxVal == 13 ) + ctxSpe[2].value = 'autre'; - - continue; - /* (4) Si la personne est connue on incrémente les valeurs */ - }else{ - - // {1} On remplit le sexe // - var sexeVal = ['H', 'F'][ Math.floor(count % 2) ]; - $('#sexe'+sexeVal+'_mini_f_'+m).checked = true; - - // {2} On remplit l'age // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="age"]').value = count % 19; - - // {3} On remplit les études // - $('input[data-name="uid"][value="'+m+'"] ~ h5 select[data-name="studies"]').value = 1 + (count % 6); - - // {4} Type de relation // - var relVal = count % 10; - // Si AUTRE - if( relVal == 9 ){ - $('#reltype10_mini_f_'+m).checked = true; - $('input[data-name="uid"][value="'+m+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; - // Sinon - }else - $('#reltype'+relVal+'_mini_f_'+m).checked = true; - - } - count++; } - } - - - - /* [2] Remplissage des fiches complètes - =========================================================*/ - for( var f in fiches ){ - - /* (0) Si la fiche n'est pas affichée, on passe à la suivante */ - if( isNaN(f) ) - continue; - - /* (1) On récupére le nom du contact associé */ - var name = ''; - if( contacts[fiches[f].contact] != null ) - name = contacts[fiches[f].contact].username; - - /* (2) On remplit la fiche */ - // {1} On se positionne sur la fiche en question // - var navBut = $('#f_nav-fiche [data-n="'+f+'"]'); - navBut.click(); - - - - // {1} On remplit le sexe // - var sexeVal = ['H', 'F', 'I'][ Math.floor(count % 3) ]; - $('#sexe'+sexeVal+'_f_'+f).checked = true; - - // {2} On remplit l'age // - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="age"]').value = count % 19; - - // {3} On remplit la profession // - var jobVal = ['10', '21', '22', '23', '31', '32', '36', '41', '46', '47', '48', '51', '54', '55', '56', '61', '66', '69', '71', '72', '73', '74', '75', '76', '81', '82']; - jobVal = jobVal[ count % jobVal.length ]; - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="job"]').value = jobVal; - - // {4} On remplit les études // - var stuVal = (count % 12).toString(); - if( stuVal.length == 1 ) stuVal = '0'+stuVal; - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 select[data-name="studies"]').value = stuVal; - - // {5} Type de relation // - var relVal = count % 9; - - // Si AUTRE - if( relVal == 8 ){ - $('#reltype10_f_'+f).checked = true; - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="reltypeSpecial"]').value = 'autre'; - // Sinon - }else - $('#reltype'+relVal+'_f_'+f).checked = true; - - // {6} La ville, le CP et le quartier // - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="city"]').value = (10 + count).toString(); - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="cp"]').value = (10000 + count).toString(); - $('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="quartier"]').value = count; - - // {7} Temps entre les domiciles // - var locVal = ['A', 'B', 'C', 'D'][ Math.floor(count % 4) ]; - $('#loc'+locVal+'_f_'+f).checked = true; - - // {8} Temps de connaissance // - var duration = $$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="duration"]'); - duration[0].value = count.toString(); - duration[1].value = 1+count.toString(); - - // {9} Contexte de rencontre // - var ctxVal = count % 14; - $('section[data-sublink="facebook"] article.fiche-relation #contexte'+ctxVal+'_f_'+f).checked = true; - - var ctxSpe = $$('section[data-sublink="facebook"] article.fiche-relation > input[data-name="uid"][value="'+f+'"] ~ h5 input[data-name="contextSpecial"]'); - - // Si special1 - if( ctxVal == 11 ) - ctxSpe[0].value = 'internet'; - - // Si special2 - if( ctxVal == 12 ) - ctxSpe[1].value = 'association'; - - // Si special3 - if( ctxVal == 13 ) - ctxSpe[2].value = 'autre'; - - - - count++; } -} + + +})();