diff --git a/js/includes/input-facebook-fiche.js b/js/includes/input-facebook-fiche.js index ca8ed68..43e8f6c 100644 --- a/js/includes/input-facebook-fiche.js +++ b/js/includes/input-facebook-fiche.js @@ -3,6 +3,7 @@ function inputFacebookFiche(container, navContainer){ this.container = container; this.nav_container = navContainer; + this.top_size = 10; } /* [1] Attributs @@ -345,90 +346,105 @@ inputFacebookFiche.prototype.storageToFields = function(){ inputFacebookFiche.prototype.sync = function(){ console.group('[facebook.fiche] synchronisation'); - /* (1) Mise à jour en fonction des contacts Top 20 + /* (1) Initialisation ---------------------------------------------------------*/ /* (1) On récupère tous les CONTACTS */ var contacts = lsi.export('f_contacts'); - var addedFicheUids = []; // Contiendra les uids des fiches qui seront crées + + /* (2) Contiendra les uids des fiches qui seront crées */ + var addedFicheUids = []; + var ficheData, contactData; - /* (2) Mise à jour en fonction des contacts + + /* (2) Mise à jour en fonction des contacts APRÈS SAISIE ---------------------------------------------------------*/ - // Nombre maximum de fiches (20, sauf si moins de 20 contacts, dans ce cas, le nombre de contacts); - var nbMaxFiche = lsi.keys('f_contacts').length < 20 ? lsi.keys('f_contacts').length : 20; + // Nombre maximum de fiches (40, sauf si moins de 40 contacts, dans ce cas, le nombre de contacts); + var nbMaxFiche = lsi.keys('f_contacts').length < 2*this.top_size ? lsi.keys('f_contacts').length : 2*this.top_size; - // On complète en fonction des contacts séquentiellement HISTORIQUE, puis MESSENGER - if( addedFicheUids.length < nbMaxFiche ){ + /* (1) Pour chaque CONTACT, on met à jour/crée la FICHE associée */ + for( var uid in contacts ){ - /* (1) Pour chaque CONTACT, on met à jour/crée la FICHE associée*/ - for( var uid in contacts ){ + /* (1) On cherche un uid de fiche non existant dans l'intervalle [0;40[ */ + ficheUid = 0; + while( addedFicheUids.indexOf(ficheUid) > -1 && ficheUid < nbMaxFiche ) + ficheUid++; - /* (2) On cherche un uid de fiche non existant dans l'intervalle 0-19 */ - var ficheUid = 0; - while( addedFicheUids.indexOf(ficheUid) > -1 && ficheUid < nbMaxFiche ) - ficheUid++; + // On enregistre le nouvel UID dans les uid crées + addedFicheUids.push(ficheUid); - // On enregistre le nouvel UID dans les uid crées - addedFicheUids.push(ficheUid); + /* (2) On récupère les informations de la FICHE (si elle existe) */ + var ficheData = lsi.get('f_fiches', ficheUid); - /* (3) On récupère les informations de la FICHE (si elle existe) */ - var ficheData = lsi.get('f_fiches', ficheUid); + // Si la fiche n'existe pas, on la crée avec les valeurs par défaut + !ficheData && ( ficheData = this.defaultData ); - // Si la fiche n'existe pas, on la crée avec les valeurs par défaut - if( ficheData == null ) - ficheData = this.defaultData; - - /* (4) On met à jour la fiche ET on l'enregistre */ - ficheData.uid = ficheUid; - ficheData.contact = parseInt(uid); - lsi.set('f_fiches', ficheUid, ficheData); + /* (3) On met à jour la fiche ET on l'enregistre */ + ficheData.uid = ficheUid; + ficheData.contact = parseInt(uid); + lsi.set('f_fiches', ficheUid, ficheData); - /* (5) Si on a déja crée 10+10 fiches, on arrête */ - if( addedFicheUids.length >= nbMaxFiche ) - break; - } - + /* (4) Si on a déja crée 20+20 fiches, on arrête */ + if( addedFicheUids.length >= nbMaxFiche ) + break; } - /* (3) Mise à jour des fiches dupliquées entre le top 10 des APPELS et celui des SMS + + /* (3) Gestion des fiches dupliquées ---------------------------------------------------------*/ ficheData = lsi.export('f_fiches'); for( var key in ficheData ){ + /* (1) On récupère le contact associé */ var associatedContact = lsi.get('f_contacts', ficheData[key].contact); // Si erreur, on passe au suivant - if( associatedContact == null ) + if( !associatedContact ) continue; - /* (2) Si la fiche n'est pas dans les 2 top 10 (APPELS et SMS) */ - if( associatedContact.sms == -1 || associatedContact.call == -1 ) - continue; // On passe au suivant + /* (3) On récupère la/les autre(s) fiche(s) (clone(s)) */ + var clone = null; + var inCall = parseInt( ficheData[key].uid ) < this.top_size; // vrai si dans les APPELS, sinon dans les SMS + for( var i in ficheData ){ - /* (3) On récupère l'autre fiche (clone) */ - var inCall = parseInt(key) < 10; // Si on est dans le top 10 des APPELS, sinon dans celui des SMS - var cloneIndex = inCall ? 10+associatedContact.sms : associatedContact.call; // Contient l'index du clone dans l'autre top (APPELS ou SMS) + // si on est pas dans le bonne tranche, on passe au suivant + if( inCall && i < this.top_size || !inCall && i >= this.top_size ) + continue; - var clone = ficheData[cloneIndex]; + // on récupère le contact associé + contactData = lsi.get('f_contacts', ficheData[i].contact); + if( i == key || !contactData ) + continue; - if( clone == null || ficheData[key] == null || clone.timestamp == null || ficheData[key].timestamp == null ) + // meme pseudo + var hasSameUsername = contactData.username.length > 0 && associatedContact.username === contactData.username; + // meme lien de contact + var hasSameLink = !isNaN(contactData.existing) && associatedContact.existing === contactData.existing; + + // si ont le même contact, alors on enregistre le clone (sauf si la même fiche) + ( hasSameUsername || hasSameLink ) && ( clone = ficheData[i] ); + + if( clone !== null ) + break; + + } + + /* (4) Si c'est le clone qui a été modifié en dernier, on ne fait rien */ + if( clone === null || clone.timestamp > ficheData[key].timestamp ) continue; - /* (4) Si le clone a été modifié en dernier, on ne fait rien */ - if( clone.timestamp >= ficheData[key].timestamp ) - continue; - - /* (5) On copie les données de la FICHE dans le clone (cas ou la fiche est modifiée en dernier) */ + /* (5) On copie les données de la FICHE dans le CLONE */ var obj = ficheData[key]; obj.uid = clone.uid; lsi.set('f_fiches', clone.uid, obj); } + console.groupEnd(); }; @@ -442,10 +458,10 @@ inputFacebookFiche.prototype.sync = function(){ =========================================================*/ inputFacebookFiche.prototype.nav = function(element){ /* (1) On vérifie que l'élément contient un nombre et existe */ - if( element == null ) + if( !(element instanceof Element) ) return false; - if( element.getData('n') === false || isNaN(element.getData('n')) || element.parentNode.id != 'f_nav-fiche' ) + if( !element.getData('n') || isNaN(element.getData('n')) || element.parentNode.id != 'f_nav-fiche' ) return false; /* (2) On désactive tous les éléments actifs */ @@ -480,22 +496,22 @@ inputFacebookFiche.prototype.updateNavBar = function(){ - // Si 1ère valeur du top 10 des APPELS, on ajoute le bandeau "APPELS" + // Si 1ère valeur du top 20 des APPELS, on ajoute le bandeau "APPELS" if( i == 0 ) this.nav_container.innerHTML += 'HISTORIQUE'; - // Si fin du top 10 des APPELS, on met un espace et un border-right - if( i < 10 && k < keys.length-1 && keys[k+1] >= 10 ) - this.nav_container.innerHTML += ''+(i%10 + 1)+'  '; + // Si fin du top 20 des APPELS, on met un espace et un border-right + if( i < 20 && k < keys.length-1 && keys[k+1] >= 20 ) + this.nav_container.innerHTML += ''+(i%20 + 1)+'  '; - // Si début du top 10 des SMS, on met le label 'SMS' et un border-left - else if( i == 10 ){ - this.nav_container.innerHTML += 'MESSENGER'; - this.nav_container.innerHTML += ''+(i%10 + 1)+''; + // Si début du top 20 des SMS, on met le label 'SMS' et un border-left + else if( i == 20 ){ + this.nav_container.innerHTML += '
MESSENGER '; + this.nav_container.innerHTML += ''+(i%20 + 1)+''; // Sinon, on ajoute juste le bouton }else - this.nav_container.innerHTML += ''+(i%10 + 1)+''; + this.nav_container.innerHTML += ''+(i%20 + 1)+''; } /* (3) On montre les FICHES qui sont correctes */ diff --git a/js/includes/input-facebook-mini.js b/js/includes/input-facebook-mini.js index cd05dec..040c2a1 100644 --- a/js/includes/input-facebook-mini.js +++ b/js/includes/input-facebook-mini.js @@ -10,7 +10,7 @@ function inputFacebookMini(container, navContainer){ inputFacebookMini.prototype = { container: this.container, // Conteneur des mini fiches relation nav_container: this.nav_container, // Conteneur de la navigation entre les MINI fiches - selected: 0, // UID de la MINI fiche sélectionnée + selected: null, // UID de la MINI fiche sélectionnée handler: null, // Fonction pour l'enregistrement et la synchronisation des données defaultData: { // Valeur par défaut sexe: '2', @@ -216,24 +216,51 @@ inputFacebookMini.prototype.add = function(objectData){ inputFacebookMini.prototype.storageToFields = function(){ console.group('[facebook.mini] storage to fields'); - // {1} Pour chaque contact du 'localStorage' // + /* (1) On charge le contact selectionné + ---------------------------------------------------------*/ var miniData = lsi.get('f_mini-fiches', this.selected); - // Si on a rien trouvé, on ne fait rien - if( miniData == null ){ - this.updateNavBar(); - return false; + /* (2.1) Si on ne trouve pas + ---------------------------------------------------------*/ + if( miniData === null ){ + + /* (2.1.1) Si `selected` est pas encore défini + ---------------------------------------------------------*/ + if( this.selected === null ){ + + var k = lsi.keys('f_mini-fiches'); + + /* (1) S'il y a au moins 1 contact -> on le prend */ + if( k.length > 0 ){ + this.selected = k[0]; + return this.storageToFields(); + + /* (2) Sinon, on quitte */ + }else + return false; + + + /* (2.1.2) S'il est déja défini, on met à jour la nav + ---------------------------------------------------------*/ + }else{ + this.updateNavBar(); + return false; + } } - // On réinitialise le HTML + + /* (2.2) Si on trouve + ---------------------------------------------------------*/ + /* (1) On réinitialise le HTML */ this.container.innerHTML = ''; - // {2} On affiche la MINI fiche sélectionnée // + /* (2) On affiche la MINI fiche sélectionnée */ this.add(miniData); - // {3} On met à jour la navigation // + /* (3) On met à jour la navigation */ this.updateNavBar(); + console.groupEnd(); }; @@ -331,10 +358,10 @@ inputFacebookMini.prototype.sync = function(){ =========================================================*/ inputFacebookMini.prototype.nav = function(element){ /* (1) On vérifie que l'élément contient un nombre et existe */ - if( element == null ) + if( !(element instanceof Element) ) return false; - if( element.getData('n') === false || isNaN(element.getData('n')) || element.parentNode.id != 'f_nav-mini' ) + if( !element.getData('n') || isNaN(element.getData('n')) || element.parentNode.id != 'f_nav-mini' ) return false; /* (2) On désactive tous les éléments actifs */ @@ -452,13 +479,12 @@ inputFacebookMini.prototype.attach = function(handler){ this.handler = handler; /* (2) On attache l'évènement sur le conteneur de navigation */ - var ptr = this; this.nav_container.addEventListener('click', function(e){ // 1. On gère la navigation - ptr.nav(e.target); + this.nav(e.target); // 2. On gere le chargement dynamique - ptr.handler(e.target); - }, false); + this.handler(e.target); + }.bind(this), false); console.groupEnd(); }; diff --git a/js/includes/input-html-facebook-data.js b/js/includes/input-html-facebook-data.js index e8750a4..7c2f921 100644 --- a/js/includes/input-html-facebook-data.js +++ b/js/includes/input-html-facebook-data.js @@ -8,7 +8,7 @@ fContactBuilder.setLayout( "\t\n"+ "\t\n"+ diff --git a/js/includes/input-html-phone-data.js b/js/includes/input-html-phone-data.js index 0b35ae8..295a42c 100644 --- a/js/includes/input-html-phone-data.js +++ b/js/includes/input-html-phone-data.js @@ -15,7 +15,7 @@ pContactBuilder.setLayout( // "\t \n"+ "\t\n"+ diff --git a/js/includes/input-phone-fiche.js b/js/includes/input-phone-fiche.js index c94015e..843d103 100644 --- a/js/includes/input-phone-fiche.js +++ b/js/includes/input-phone-fiche.js @@ -1,8 +1,9 @@ /* [0] Constructeur -> définit le conteneur et le bouton d'ajout =========================================================*/ function inputPhoneFiche(container, navContainer){ - this.container = container; + this.container = container; this.nav_container = navContainer; + this.top_size = 10; } /* [1] Attributs @@ -369,7 +370,7 @@ inputPhoneFiche.prototype.sync = function(){ /* (2) Mise à jour en fonction des contacts APRÈS SAISIE ---------------------------------------------------------*/ // Nombre maximum de fiches (40, sauf si moins de 40 contacts, dans ce cas, le nombre de contacts); - var nbMaxFiche = lsi.keys('p_contacts').length < 40 ? lsi.keys('p_contacts').length : 40; + var nbMaxFiche = lsi.keys('p_contacts').length < 2*this.top_size ? lsi.keys('p_contacts').length : 2*this.top_size; /* (1) Pour chaque CONTACT, on met à jour/crée la FICHE associée */ for( var uid in contacts ){ @@ -415,12 +416,12 @@ inputPhoneFiche.prototype.sync = function(){ /* (3) On récupère la/les autre(s) fiche(s) (clone(s)) */ var clone = null; - var inCall = parseInt( ficheData[key].uid ) < 20; // vrai si dans les APPELS, sinon dans les SMS + var inCall = parseInt( ficheData[key].uid ) < this.top_size; // vrai si dans les APPELS, sinon dans les SMS for( var i in ficheData ){ // si on est pas dans le bonne tranche, on passe au suivant - if( inCall && i < 20 || !inCall && i >= 20 ) + if( inCall && i < this.top_size || !inCall && i >= this.top_size ) continue; // on récupère le contact associé @@ -643,13 +644,12 @@ inputPhoneFiche.prototype.attach = function(handler){ this.handler = handler; /* (2) On attache l'évènement sur le bouton d'ajout de contact */ - var ptr = this; this.nav_container.addEventListener('click', function(e){ // 1. On gère la navigation - ptr.nav(e.target); + this.nav(e.target); // 2. On gere le chargement dynamique - ptr.handler(e.target); - }, false); + this.handler(e.target); + }.bind(this), false); console.groupEnd(); diff --git a/js/includes/input-phone-mini.js b/js/includes/input-phone-mini.js index d454998..a783dee 100644 --- a/js/includes/input-phone-mini.js +++ b/js/includes/input-phone-mini.js @@ -10,7 +10,7 @@ function inputPhoneMini(container, navContainer){ inputPhoneMini.prototype = { container: this.container, // Conteneur des mini fiches relation nav_container: this.nav_container, // Conteneur de la navigation entre les MINI fiches - selected: 0, // UID de la MINI fiche sélectionnée + selected: null, // UID de la MINI fiche sélectionnée handler: null, // Fonction pour l'enregistrement et la synchronisation des données defaultData: { // Valeur par défaut contact: null, @@ -225,22 +225,48 @@ inputPhoneMini.prototype.add = function(objectData){ inputPhoneMini.prototype.storageToFields = function(){ console.group('[phone.mini] storage to fields'); - // {1} Pour chaque contact du 'localStorage' // + /* (1) On charge le contact selectionné + ---------------------------------------------------------*/ var miniData = lsi.get('p_mini-fiches', this.selected); - // Si on a rien trouvé, on ne fait rien - if( miniData == null ){ - this.updateNavBar(); - return false; + /* (2.1) Si on ne trouve pas + ---------------------------------------------------------*/ + if( miniData === null ){ + + /* (2.1.1) Si `selected` est pas encore défini + ---------------------------------------------------------*/ + if( this.selected === null ){ + + var k = lsi.keys('p_mini-fiches'); + + /* (1) S'il y a au moins 1 contact -> on le prend */ + if( k.length > 0 ){ + this.selected = k[0]; + return this.storageToFields(); + + /* (2) Sinon, on quitte */ + }else + return false; + + + /* (2.1.2) S'il est déja défini, on met à jour la nav + ---------------------------------------------------------*/ + }else{ + this.updateNavBar(); + return false; + } } - // On réinitialise le HTML + + /* (2.2) Si on trouve + ---------------------------------------------------------*/ + /* (1) On réinitialise le HTML */ this.container.innerHTML = ''; - // {2} On affiche la MINI fiche sélectionnée // + /* (2) On affiche la MINI fiche sélectionnée */ this.add(miniData); - // {3} On met à jour la navigation // + /* (3) On met à jour la navigation */ this.updateNavBar(); @@ -331,10 +357,10 @@ inputPhoneMini.prototype.sync = function(){ =========================================================*/ inputPhoneMini.prototype.nav = function(element){ /* (1) On vérifie que l'élément contient un nombre et existe */ - if( element == null ) + if( !(element instanceof Element) ) return false; - if( element.getData('n') === false || isNaN(element.getData('n')) || element.parentNode.id != 'p_nav-mini' ) + if( !element.getData('n') || isNaN(element.getData('n')) || element.parentNode.id != 'p_nav-mini' ) return false; /* (2) On désactive tous les éléments actifs */ @@ -375,7 +401,7 @@ inputPhoneMini.prototype.updateNavBar = function(){ if( isNaN(key) ) continue; - var currentElement = $('[data-sublink="phone"] #p_nav-mini span[data-n="'+miniData[key].uid+'"]'); + var currentElement = $('[data-sublink="phone"] #p_nav-mini [data-n="'+miniData[key].uid+'"]'); if( currentElement == null ) continue; @@ -394,7 +420,7 @@ inputPhoneMini.prototype.updateNavBar = function(){ /* (3) On séléctionne par défaut la dernière MINI fiche sélectionnée */ - this.nav( $('[data-sublink="phone"] #p_nav-mini span[data-n="'+this.selected+'"]') ); + this.nav( $('[data-sublink="phone"] #p_nav-mini [data-n="'+this.selected+'"]') ); }; @@ -452,13 +478,12 @@ inputPhoneMini.prototype.attach = function(handler){ this.handler = handler; /* (2) On attache l'évènement sur le conteneur de navigation */ - var ptr = this; this.nav_container.addEventListener('click', function(e){ // 1. On gère la navigation - ptr.nav(e.target); + this.nav(e.target); // 2. On gere le chargement dynamique - ptr.handler(e.target); - }, false); + this.handler(e.target); + }.bind(this), false); console.groupEnd(); diff --git a/js/includes/min/input-facebook-fiche.js b/js/includes/min/input-facebook-fiche.js index d82216e..19cf95d 100644 --- a/js/includes/min/input-facebook-fiche.js +++ b/js/includes/min/input-facebook-fiche.js @@ -1,21 +1,21 @@ -function inputFacebookFiche(a,b){this.container=a;this.nav_container=b}inputFacebookFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"2",age:".",job:".",famsit:"0",studies:"0",reltype:"0",reltypeSpecial:"",city:"",quartier:"",cp:"",loc:"0",duration:["",""],context:"0",contextSpecial:["","",""],freq:["4","9","14","19","24"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],timestamp:0,valid:!1}}; -inputFacebookFiche.prototype.fieldsToStorage=function(){console.group("[facebook.fiche] fields to storage");for(var a=$$('[data-sublink="facebook"] article.relation-panel .fiche-relation'),b=0;b FICHE UPDATE"),c.timestamp=Date.now());lsi.set("f_fiches",c.uid,c)}}console.groupEnd()}; +function inputFacebookFiche(a,c){this.container=a;this.nav_container=c;this.top_size=10}inputFacebookFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"2",age:".",job:".",famsit:"0",studies:"0",reltype:"0",reltypeSpecial:"",city:"",quartier:"",cp:"",loc:"0",duration:["",""],context:"0",contextSpecial:["","",""],freq:["4","9","14","19","24"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],timestamp:0,valid:!1}}; +inputFacebookFiche.prototype.fieldsToStorage=function(){console.group("[facebook.fiche] fields to storage");for(var a=$$('[data-sublink="facebook"] article.relation-panel .fiche-relation'),c=0;c FICHE UPDATE"),b.timestamp=Date.now());lsi.set("f_fiches",b.uid,b)}}console.groupEnd()}; inputFacebookFiche.prototype.add=function(a){if(null==a.uid||isNaN(a.uid)||null==a.contact||isNaN(a.contact))return!1;a.city=null!=a.city?a.city:this.defaultData.city;a.quartier=null!=a.quartier?a.quartier:this.defaultData.quartier;a.cp=null!=a.cp?a.cp:this.defaultData.cp;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:this.defaultData.duration[1];a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial; a.contextSpecial[0]=null!=a.contextSpecial[0]?a.contextSpecial[0]:this.defaultData.contextSpecial[0];a.contextSpecial[1]=null!=a.contextSpecial[1]?a.contextSpecial[1]:this.defaultData.contextSpecial[1];a.contextSpecial[2]=null!=a.contextSpecial[2]?a.contextSpecial[2]:this.defaultData.contextSpecial[2];a.connectSpecial[0]=null!=a.connectSpecial[0]?a.connectSpecial[0]:this.defaultData.connectSpecial[0];a.connectSpecial[1]=null!=a.connectSpecial[1]?a.connectSpecial[1]:this.defaultData.connectSpecial[1]; a.job=null!=a.job?a.job:this.defaultData.job;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.famsit=null!=a.famsit?a.famsit:this.defaultData.famsit;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.context=null!=a.context?a.context:this.defaultData.context;a.freq=null!=a.freq?a.freq:this.defaultData.freq;a.connect=null!=a.connect?a.connect: -this.defaultData.connect;var b=lsi.get("f_contacts",a.contact);if(!1===b)return!1;if(!isNaN(b.existing)){var c=lsi.get("f_friends",b.existing);b.username=c.name;a.age=c.age;a.sexe=c.sexe;a.loc=c.dist;isNaN(c.reltype)?(a.reltype=10,a.reltypeSpecial=c.reltype):(a.reltype=c.reltype,a.reltypeSpecial="");null!=c.studies2&&(a.studies=c.studies2,a.job=c.job,a.famsit=c.famsit,a.city=c.city,a.cp=c.cp,a.quartier=c.quartier,a.duration[0]=c.duration[0],a.duration[1]=c.duration[1],a.context=c.context,a.contextSpecial= -c.contextExtra,a.connect=c.connect,a.connectSpecial=c.connectExtra,a.freq=c.freq)}this.container.innerHTML+=fFicheBuilder.build({name:b.username,countcall:b.countcall,countsms:b.countsms,uid:a.uid,contact:a.contact,city:a.city,quartier:a.quartier,cp:a.cp,duration0:a.duration[0],duration1:a.duration[1],reltypespecial:a.reltypeSpecial,contextspecial0:a.contextSpecial[0],contextspecial1:a.contextSpecial[1],contextspecial2:a.contextSpecial[2],connectspecial0:a.connectSpecial[0],connectspecial1:a.connectSpecial[1]}); -b=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+a.job+'"]');null!=b&&b.setAttribute("selected","selected");b=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+ -a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=b&&b.setAttribute("selected","selected");c=$$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');for(b=0;binput[type="radio"][data-name="famsit"]'); -for(b=0;binput[type="radio"][data-name="reltype"]');for(b=0;binput[type="radio"][data-name="loc"]'); -for(b=0;binput[type="radio"][data-name="context"]');for(b=0;binput[type="radio"][data-name="freq"]'); -for(b=0;binput[type="radio"][data-name="connect"]');for(b=0;blsi.keys("f_contacts").length?lsi.keys("f_contacts").length:20;if(b.length=c)break}var a=lsi["export"]("f_fiches"),f;for(f in a)b=lsi.get("f_contacts",a[f].contact),null!=b&&-1!= -b.sms&&-1!=b.call&&(b=10>parseInt(f)?10+b.sms:b.call,b=a[b],null==b||null==a[f]||null==b.timestamp||null==a[f].timestamp||b.timestamp>=a[f].timestamp||(c=a[f],c.uid=b.uid,lsi.set("f_fiches",b.uid,c)));console.groupEnd()}; -inputFacebookFiche.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"f_nav-fiche"!=a.parentNode.id)return!1;for(var b=$$('[data-sublink="facebook"] #f_nav-fiche > span.active'),c=0;cHISTORIQUE");10>e&&c'+(e%10+1)+"  ":(10==e&&(this.nav_container.innerHTML+='MESSENGER'),this.nav_container.innerHTML+=''+ -(e%10+1)+"")}for(var d in a)b=$('[data-sublink="facebook"] #f_nav-fiche [data-n="'+a[d].uid+'"]'),null!=b&&(!0===a[d].valid?b.addClass("done"):b.remClass("done"));this.nav($('[data-sublink="facebook"] #f_nav-fiche [data-n="'+this.selected+'"]'))}; -inputFacebookFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length|| -"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputFacebookFiche.prototype.attach=function(a){console.group("[facebook.fiche] attaching events");lsi.createDataset("f_fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1);console.groupEnd()}; +this.defaultData.connect;var c=lsi.get("f_contacts",a.contact);if(!1===c)return!1;if(!isNaN(c.existing)){var b=lsi.get("f_friends",c.existing);c.username=b.name;a.age=b.age;a.sexe=b.sexe;a.loc=b.dist;isNaN(b.reltype)?(a.reltype=10,a.reltypeSpecial=b.reltype):(a.reltype=b.reltype,a.reltypeSpecial="");null!=b.studies2&&(a.studies=b.studies2,a.job=b.job,a.famsit=b.famsit,a.city=b.city,a.cp=b.cp,a.quartier=b.quartier,a.duration[0]=b.duration[0],a.duration[1]=b.duration[1],a.context=b.context,a.contextSpecial= +b.contextExtra,a.connect=b.connect,a.connectSpecial=b.connectExtra,a.freq=b.freq)}this.container.innerHTML+=fFicheBuilder.build({name:c.username,countcall:c.countcall,countsms:c.countsms,uid:a.uid,contact:a.contact,city:a.city,quartier:a.quartier,cp:a.cp,duration0:a.duration[0],duration1:a.duration[1],reltypespecial:a.reltypeSpecial,contextspecial0:a.contextSpecial[0],contextspecial1:a.contextSpecial[1],contextspecial2:a.contextSpecial[2],connectspecial0:a.connectSpecial[0],connectspecial1:a.connectSpecial[1]}); +c=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+a.job+'"]');null!=c&&c.setAttribute("selected","selected");c=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=c&&c.setAttribute("selected","selected");c=$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+ +a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=c&&c.setAttribute("selected","selected");b=$$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');for(c=0;cinput[type="radio"][data-name="famsit"]'); +for(c=0;cinput[type="radio"][data-name="reltype"]');for(c=0;cinput[type="radio"][data-name="loc"]'); +for(c=0;cinput[type="radio"][data-name="context"]');for(c=0;cinput[type="radio"][data-name="freq"]'); +for(c=0;cinput[type="radio"][data-name="connect"]');for(c=0;c=d)break}var a=lsi["export"]("f_fiches"),f; +for(f in a)if(d=lsi.get("f_contacts",a[f].contact)){c=null;e=parseInt(a[f].uid)=this.top_size)&&(b=lsi.get("f_contacts",a[g].contact),g!=f&&b)){var h=0a[f].timestamp||(d=a[f],d.uid=c.uid,lsi.set("f_fiches",c.uid,d))}console.groupEnd()}; +inputFacebookFiche.prototype.nav=function(a){if(!(a instanceof Element&&a.getData("n"))||isNaN(a.getData("n"))||"f_nav-fiche"!=a.parentNode.id)return!1;for(var c=$$('[data-sublink="facebook"] #f_nav-fiche > span.active'),b=0;bHISTORIQUE");20>d&&b'+(d%20+1)+"  ":(20==d&&(this.nav_container.innerHTML+='
MESSENGER '),this.nav_container.innerHTML+=''+(d%20+1)+"")}for(var e in a)c=$('[data-sublink="facebook"] #f_nav-fiche [data-n="'+a[e].uid+'"]'),null!=c&&(!0===a[e].valid?c.addClass("done"):c.remClass("done"));this.nav($('[data-sublink="facebook"] #f_nav-fiche [data-n="'+this.selected+'"]'))}; +inputFacebookFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length|| +"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputFacebookFiche.prototype.attach=function(a){console.group("[facebook.fiche] attaching events");lsi.createDataset("f_fiches");this.storageToFields();this.handler=a;var c=this,c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler(a.target)},!1);console.groupEnd()}; diff --git a/js/includes/min/input-facebook-mini.js b/js/includes/min/input-facebook-mini.js index afbcca9..c6a565d 100644 --- a/js/includes/min/input-facebook-mini.js +++ b/js/includes/min/input-facebook-mini.js @@ -1,4 +1,4 @@ -function inputFacebookMini(a,c){this.container=a;this.nav_container=c}inputFacebookMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"2",age:".",studies:"0",loc:".",reltype:"9",unknown:!1,reltypeSpecial:"",timestamp:0,valid:!1}}; +function inputFacebookMini(a,c){this.container=a;this.nav_container=c}inputFacebookMini.prototype={container:this.container,nav_container:this.nav_container,selected:null,handler:null,defaultData:{sexe:"2",age:".",studies:"0",loc:".",reltype:"9",unknown:!1,reltypeSpecial:"",timestamp:0,valid:!1}}; inputFacebookMini.prototype.fieldsToStorage=function(){console.group("[facebook.mini] fields to storage");for(var a=$$('[data-sublink="facebook"] article.mini-relation-panel .mini-fiche-relation'),c=0;c MINI UPDATE");b={uid:parseInt(b.uid),sexe:b.sexe,age:b.age,studies:b.studies,reltype:b.reltype, reltypeSpecial:b.reltypeSpecial,loc:b.loc,unknown:null!=b.unknown,hash:d};b.valid=this.check(b);0 FICHE UPDATE"),b.timestamp=Date.now());lsi.set("f_mini-fiches",b.uid,b)}}console.groupEnd()}; inputFacebookMini.prototype.add=function(a){if(null==a||null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.unknown=null!=a.unknown?a.unknown:this.defaultData.unknown;var c=lsi.get("f_contacts", @@ -6,8 +6,8 @@ a.uid);if(!1===c)return!1;if(!isNaN(c.existing)){var b=lsi.get("f_friends",c.exi a.studies+'"]');null!=c&&c.setAttribute("selected","selected");c=$('[data-sublink="facebook"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=c&&c.setAttribute("selected","selected");b=$$('[data-sublink="facebook"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');for(c=0;cinput[type="radio"][data-name="reltype"]');for(c=0;cinput[type="radio"][data-name="loc"]');for(c=0;cinput[type="checkbox"][data-name="unknown"]');null!=c&&a.unknown&&c.setAttribute("checked","checked")}; -inputFacebookMini.prototype.storageToFields=function(){console.group("[facebook.mini] storage to fields");var a=lsi.get("f_mini-fiches",this.selected);if(null==a)return this.updateNavBar(),!1;this.container.innerHTML="";this.add(a);this.updateNavBar();console.groupEnd()}; +inputFacebookMini.prototype.storageToFields=function(){console.group("[facebook.mini] storage to fields");var a=lsi.get("f_mini-fiches",this.selected);if(null===a){if(null===this.selected)return a=lsi.keys("f_mini-fiches"),0 span.active'),b=0;b span.active'),b=0;b'+ ++c+"");for(b in a)isNaN(b)||(c=$('[data-sublink="facebook"] #f_nav-mini [data-n="'+a[b].uid+'"]'),null!=c&&(!0===a[b].valid?c.addClass("done"):c.remClass("done")));this.nav($('[data-sublink="facebook"] #f_nav-mini [data-n="'+this.selected+'"]'))}; -inputFacebookMini.prototype.check=function(a){return a.unknown?!0:""==a.sexe||"."==a.studies||"."==a.age||""==a.loc||""==a.reltype||"10"==a.reltype&&2>a.reltypeSpecial.length?!1:!0};inputFacebookMini.prototype.attach=function(a){console.group("[facebook.mini] attaching events");lsi.createDataset("f_mini-fiches");this.storageToFields();this.handler=a;var c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler(a.target)},!1);console.groupEnd()}; +inputFacebookMini.prototype.check=function(a){return a.unknown?!0:""==a.sexe||"."==a.studies||"."==a.age||""==a.loc||""==a.reltype||"10"==a.reltype&&2>a.reltypeSpecial.length?!1:!0};inputFacebookMini.prototype.attach=function(a){console.group("[facebook.mini] attaching events");lsi.createDataset("f_mini-fiches");this.storageToFields();this.handler=a;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()}; diff --git a/js/includes/min/input-html-facebook-data.js b/js/includes/min/input-html-facebook-data.js index 5ac4879..fc8e5ad 100644 --- a/js/includes/min/input-html-facebook-data.js +++ b/js/includes/min/input-html-facebook-data.js @@ -1,3 +1,3 @@ -var fContactBuilder=new HTMLBuilder;fContactBuilder.setLayout("

\n\t\n\t\n\t    ou    \n\t \n\t\n

\n\n"); +var fContactBuilder=new HTMLBuilder;fContactBuilder.setLayout("

\n\t\n\t\n\t    ou    \n\t \n\t\n

\n\n"); var fMiniFicheBuilder=new HTMLBuilder;fMiniFicheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\t\t\t
\t
\n\t\t\n\t\t   \n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\u00c0 combien de temps est-ce de chez vous ?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n
"); var fFicheBuilder=new HTMLBuilder;fFicheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\n\t\t\n\t\t   \n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\tSituation familiale:
\n\t\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\n\t\t
\n\t
\n\t
\n\t\tSi Toulouse : \n\t
\n\t
\n\t\t\u00c0 combien de temps est-ce de chez vous ?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tDepuis quand connaissez-vous cette personne ?

\n\t\tmois\n\t\tet    ans.\n\t
\n\t

Contexte de rencontre

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

Avec quelle fr\u00e9quence discutez-vous avec cette personne\u00a0?

\n\t
\n\t\tFace \u00e0 face
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tT\u00e9l\u00e9phone ou skype et \u00e9quivalent
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSMS, et \u00e9quivalents
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tCourrier \u00e9lectronique
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tFacebook ou autre r\u00e9seau social
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t

Comment \u00eates-vous \u00ab\u00a0connect\u00e9\u00a0\u00bb \u00e0 cette personne\u00a0?

\n\t
\n\t\tSes coordonn\u00e9es sont dans votre carnet d\u2019adresse
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSon num\u00e9ro de mobile est enregistr\u00e9 sur votre mobile (ou vous-m\u00eames \u00eates sur le sien)
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif r\u00e9guli\u00e8rement
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous le suivez sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez avec cette personne sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez dans autre r\u00e9seau social : \n\t
\n\t
\n\t\tVous communiquez dans un autre dispositif (blogs, jeu vid\u00e9o ou autre) : \n\t
\n
\n"); diff --git a/js/includes/min/input-html-phone-data.js b/js/includes/min/input-html-phone-data.js index c4d06a1..8f0675a 100644 --- a/js/includes/min/input-html-phone-data.js +++ b/js/includes/min/input-html-phone-data.js @@ -1,3 +1,3 @@ -var pContactBuilder=new HTMLBuilder;pContactBuilder.setLayout("

\n\t\n\t\n\t    ou    \n\t \n\t\n

\n\n"); +var pContactBuilder=new HTMLBuilder;pContactBuilder.setLayout("

\n\t\n\t\n\t    ou    \n\t \n\t\n

\n\n"); var pMiniFicheBuilder=new HTMLBuilder;pMiniFicheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\t\t\t
\t
\n\t\t\n\t\t   \n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\u00c0 combien de temps est-ce de chez vous ?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n
"); var pFicheBuilder=new HTMLBuilder;pFicheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\t\t@importedfiche\t
\t
\n\t\t\n\t\t   \n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\tSituation familiale:
\n\t\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\n\t\t
\n\t
\n\t
\n\t\tSi Toulouse : \n\t
\n\t
\n\t\t\u00c0 combien de temps est-ce de chez vous ?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tDepuis quand connaissez-vous cette personne ?

\n\t\tmois\n\t\tet    ans.\n\t
\n\t

Contexte de rencontre

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

Avec quelle fr\u00e9quence discutez-vous avec cette personne\u00a0?

\n\t
\n\t\tFace \u00e0 face
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tT\u00e9l\u00e9phone ou skype et \u00e9quivalent
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSMS, et \u00e9quivalents
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tCourrier \u00e9lectronique
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tFacebook ou autre r\u00e9seau social
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t

Comment \u00eates-vous \u00ab\u00a0connect\u00e9\u00a0\u00bb \u00e0 cette personne\u00a0?

\n\t
\n\t\tSes coordonn\u00e9es sont dans votre carnet d\u2019adresse
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSon num\u00e9ro de mobile est enregistr\u00e9 sur votre mobile (ou vous-m\u00eames \u00eates sur le sien)
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif r\u00e9guli\u00e8rement
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous le suivez sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez avec cette personne sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez dans autre r\u00e9seau social : \n\t
\n\t
\n\t\tVous communiquez dans un autre dispositif (blogs, jeu vid\u00e9o ou autre) : \n\t
\n
\n"); diff --git a/js/includes/min/input-phone-fiche.js b/js/includes/min/input-phone-fiche.js index 37b9f8a..e76b199 100644 --- a/js/includes/min/input-phone-fiche.js +++ b/js/includes/min/input-phone-fiche.js @@ -1,4 +1,4 @@ -function inputPhoneFiche(a,c){this.container=a;this.nav_container=c}inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"2",age:".",job:".",famsit:"0",studies:"0",reltype:"0",reltypeSpecial:"",city:"",quartier:"",cp:"",loc:"0",duration:["",""],context:"0",contextSpecial:["","",""],freq:["4","9","14","19","24"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],timestamp:0,valid:!1}}; +function inputPhoneFiche(a,c){this.container=a;this.nav_container=c;this.top_size=10}inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"2",age:".",job:".",famsit:"0",studies:"0",reltype:"0",reltypeSpecial:"",city:"",quartier:"",cp:"",loc:"0",duration:["",""],context:"0",contextSpecial:["","",""],freq:["4","9","14","19","24"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],timestamp:0,valid:!1}}; inputPhoneFiche.prototype.fieldsToStorage=function(){console.group("[phone.fiche] fields to storage");for(var a=$$('[data-sublink="phone"] article.relation-panel .fiche-relation'),c=0;c FICHE UPDATE"),b.timestamp=Date.now());lsi.set("p_fiches",b.uid,b)}}console.groupEnd()}; inputPhoneFiche.prototype.add=function(a){if(null==a.uid||isNaN(a.uid)||null==a.contact||isNaN(a.contact))return!1;a.city=null!=a.city?a.city:this.defaultData.city;a.quartier=null!=a.quartier?a.quartier:this.defaultData.quartier;a.cp=null!=a.cp?a.cp:this.defaultData.cp;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:this.defaultData.duration[1];a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial; @@ -12,10 +12,10 @@ a.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]');for(c=0;cinput[type="radio"][data-name="loc"]');for(c=0;cinput[type="radio"][data-name="context"]');for(c=0;cinput[type="radio"][data-name="freq"]');for(c=0;cinput[type="radio"][data-name="connect"]');for(c=0;clsi.keys("p_contacts").length?lsi.keys("p_contacts").length:40,e;for(e in a){for(ficheUid=0;-1=d)break}var a=lsi["export"]("p_fiches"),f;for(f in a)if(d=lsi.get("p_contacts", -a[f].contact)){c=null;e=20>parseInt(a[f].uid);for(var g in a)if(!(e&&20>g||!e&&20<=g)&&(b=lsi.get("p_contacts",a[g].contact),g!=f&&b)){var h=0a[f].timestamp||(d=a[f],d.uid=c.uid,lsi.set("p_fiches",c.uid,d))}console.groupEnd()}; +inputPhoneFiche.prototype.sync=function(){console.group("[phone.fiche] synchronisation");var a=lsi["export"]("p_contacts"),c=[],b,d=lsi.keys("p_contacts").length<2*this.top_size?lsi.keys("p_contacts").length:2*this.top_size,e;for(e in a){for(ficheUid=0;-1=d)break}var a=lsi["export"]("p_fiches"),f;for(f in a)if(d= +lsi.get("p_contacts",a[f].contact)){c=null;e=parseInt(a[f].uid)=this.top_size)&&(b=lsi.get("p_contacts",a[g].contact),g!=f&&b)){var h=0a[f].timestamp||(d=a[f],d.uid=c.uid,lsi.set("p_fiches",c.uid,d))}console.groupEnd()}; inputPhoneFiche.prototype.nav=function(a){if(!(a instanceof Element&&a.getData("n"))||isNaN(a.getData("n"))||"p_nav-fiche"!=a.parentNode.id)return!1;for(var c=$$('[data-sublink="phone"] #p_nav-fiche > span.active'),b=0;bAPPELS");20>d&&b'+(d%20+1)+"  ":(20==d&&(this.nav_container.innerHTML+='
   SMS   '),this.nav_container.innerHTML+=''+(d%20+1)+"")}for(var e in a)c=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[e].uid+'"]'),null!=c&&(!0===a[e].valid?c.addClass("done"):c.remClass("done"));this.nav($('[data-sublink="phone"] #p_nav-fiche [data-n="'+this.selected+'"]'))}; inputPhoneFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length|| -"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputPhoneFiche.prototype.attach=function(a){console.group("[phone.fiche] attaching events");lsi.createDataset("p_fiches");this.storageToFields();this.handler=a;var c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler(a.target)},!1);console.groupEnd()}; +"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputPhoneFiche.prototype.attach=function(a){console.group("[phone.fiche] attaching events");lsi.createDataset("p_fiches");this.storageToFields();this.handler=a;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()}; diff --git a/js/includes/min/input-phone-mini.js b/js/includes/min/input-phone-mini.js index 63e038c..081fae3 100644 --- a/js/includes/min/input-phone-mini.js +++ b/js/includes/min/input-phone-mini.js @@ -1,13 +1,13 @@ -function inputPhoneMini(a,b){this.container=a;this.nav_container=b}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{contact:null,sexe:"2",age:".",studies:"0",loc:".",reltype:"9",reltypeSpecial:"",unknown:!1,timestamp:0,valid:!1}}; -inputPhoneMini.prototype.fieldsToStorage=function(){console.group("[phone.mini] fields to storage");for(var a=$$('[data-sublink="phone"] article.mini-relation-panel .mini-fiche-relation'),b=0;b MINI UPDATE");c={uid:parseInt(c.uid),sexe:c.sexe,age:c.age,studies:c.studies,reltype:c.reltype, -reltypeSpecial:c.reltypeSpecial,loc:c.loc,unknown:null!=c.unknown,hash:e};c.valid=this.check(c);0 FICHE UPDATE"),c.timestamp=Date.now());lsi.set("p_mini-fiches",c.uid,c)}}console.groupEnd()}; -inputPhoneMini.prototype.add=function(a){if(null==a||null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.unknown=null!=a.unknown?a.unknown:this.defaultData.unknown;var b=lsi.get("p_contacts", -a.uid);if(!1===b)return!1;if(!isNaN(b.existing)){var c=lsi.get("p_friends",b.existing);b.username=c.name;a.contact=b.uid;a.age=c.age;a.sexe=c.sexe;a.loc=c.dist;isNaN(c.reltype)?(a.reltype=10,a.reltypeSpecial=c.reltype):(a.reltype=c.reltype,a.reltypeSpecial="");null!=c.studies1&&(a.studies=c.studies1)}this.container.innerHTML+=pMiniFicheBuilder.build({name:b.username,countcall:b.countcall,countsms:b.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});b=$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+ -a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=b&&b.setAttribute("selected","selected");c=$$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');for(b=0;binput[type="radio"][data-name="reltype"]');for(b=0;binput[type="radio"][data-name="loc"]');for(b=0;binput[type="checkbox"][data-name="unknown"]');null!=b&&a.unknown&&b.setAttribute("checked","checked")}; -inputPhoneMini.prototype.storageToFields=function(){console.group("[phone.mini] storage to fields");var a=lsi.get("p_mini-fiches",this.selected);if(null==a)return this.updateNavBar(),!1;this.container.innerHTML="";this.add(a);this.updateNavBar();console.groupEnd()}; -inputPhoneMini.prototype.sync=function(){console.group("[phone.mini] synchronisation");var a=lsi["export"]("p_contacts"),b;ficheIndexes=lsi.keys("p_fiches");for(b in ficheIndexes)delete a[ficheIndexes[b]];for(var c in a){var e=0==a[c].username.length?c.toString()+"-":c;b=lsi.get("p_mini-fiches",e);null==b&&(b=this.defaultData,b.contact=a[c].uid,b.valid=!1);b.uid=parseInt(c);lsi.set("p_mini-fiches",e,b)}b=lsi["export"]("p_mini-fiches");if(null==b[this.selected])for(c in b)if(!isNaN(c)){this.selected= -parseInt(c);break}console.groupEnd()};inputPhoneMini.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"p_nav-mini"!=a.parentNode.id)return!1;for(var b=$$('[data-sublink="phone"] #p_nav-mini > span.active'),c=0;c'+ ++b+"");for(c in a)isNaN(c)||(b=$('[data-sublink="phone"] #p_nav-mini span[data-n="'+a[c].uid+'"]'),null!=b&&(!0===a[c].valid?b.addClass("done"):b.remClass("done")));this.nav($('[data-sublink="phone"] #p_nav-mini span[data-n="'+this.selected+'"]'))}; -inputPhoneMini.prototype.check=function(a){return a.unknown?!0:""==a.sexe||"."==a.studies||"."==a.age||""==a.loc||""==a.reltype||"10"==a.reltype&&2>a.reltypeSpecial.length?!1:!0};inputPhoneMini.prototype.attach=function(a){console.group("[phone.mini] attaching events");lsi.createDataset("p_mini-fiches");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1);console.groupEnd()}; +function inputPhoneMini(a,c){this.container=a;this.nav_container=c}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:null,handler:null,defaultData:{contact:null,sexe:"2",age:".",studies:"0",loc:".",reltype:"9",reltypeSpecial:"",unknown:!1,timestamp:0,valid:!1}}; +inputPhoneMini.prototype.fieldsToStorage=function(){console.group("[phone.mini] fields to storage");for(var a=$$('[data-sublink="phone"] article.mini-relation-panel .mini-fiche-relation'),c=0;c MINI UPDATE");b={uid:parseInt(b.uid),sexe:b.sexe,age:b.age,studies:b.studies,reltype:b.reltype, +reltypeSpecial:b.reltypeSpecial,loc:b.loc,unknown:null!=b.unknown,hash:e};b.valid=this.check(b);0 FICHE UPDATE"),b.timestamp=Date.now());lsi.set("p_mini-fiches",b.uid,b)}}console.groupEnd()}; +inputPhoneMini.prototype.add=function(a){if(null==a||null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.unknown=null!=a.unknown?a.unknown:this.defaultData.unknown;var c=lsi.get("p_contacts", +a.uid);if(!1===c)return!1;if(!isNaN(c.existing)){var b=lsi.get("p_friends",c.existing);c.username=b.name;a.contact=c.uid;a.age=b.age;a.sexe=b.sexe;a.loc=b.dist;isNaN(b.reltype)?(a.reltype=10,a.reltypeSpecial=b.reltype):(a.reltype=b.reltype,a.reltypeSpecial="");null!=b.studies1&&(a.studies=b.studies1)}this.container.innerHTML+=pMiniFicheBuilder.build({name:c.username,countcall:c.countcall,countsms:c.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});c=$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+ +a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=c&&c.setAttribute("selected","selected");c=$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=c&&c.setAttribute("selected","selected");b=$$('[data-sublink="phone"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');for(c=0;cinput[type="radio"][data-name="reltype"]');for(c=0;cinput[type="radio"][data-name="loc"]');for(c=0;cinput[type="checkbox"][data-name="unknown"]');null!=c&&a.unknown&&c.setAttribute("checked","checked")}; +inputPhoneMini.prototype.storageToFields=function(){console.group("[phone.mini] storage to fields");console.warn(this.selected);var a=lsi.get("p_mini-fiches",this.selected);if(null===a){if(null===this.selected)return a=lsi.keys("p_mini-fiches"),0 span.active'),b=0;b'+ ++c+"");for(b in a)isNaN(b)||(c=$('[data-sublink="phone"] #p_nav-mini [data-n="'+a[b].uid+'"]'),null!=c&&(!0===a[b].valid?c.addClass("done"):c.remClass("done")));this.nav($('[data-sublink="phone"] #p_nav-mini [data-n="'+this.selected+'"]'))}; +inputPhoneMini.prototype.check=function(a){return a.unknown?!0:""==a.sexe||"."==a.studies||"."==a.age||""==a.loc||""==a.reltype||"10"==a.reltype&&2>a.reltypeSpecial.length?!1:!0};inputPhoneMini.prototype.attach=function(a){console.group("[phone.mini] attaching events");lsi.createDataset("p_mini-fiches");this.storageToFields();this.handler=a;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()}; diff --git a/view/input.php b/view/input.php index 4a7829f..6a3a1c9 100755 --- a/view/input.php +++ b/view/input.php @@ -137,6 +137,7 @@ if( $getAllR->error == ManagerError::Success )

Remplir les fiches relations complètes des contacts les plus contactés

+
diff --git a/view/js/input.js b/view/js/input.js index 49c2273..8634352 100644 --- a/view/js/input.js +++ b/view/js/input.js @@ -94,14 +94,14 @@ sField.addEventListener('keypress', function(e){ /*=========================================================*/ /*========== Gestion du formulaire téléphonique ===========*/ /*=========================================================*/ -var pAlready = false; -var pLoaded = [ false, false, false, false, false ]; +var pAlready = 0; +var pLoaded = [ 0, 0, 0, 0, 0 ]; var phoneRoutine = function(){ - if( !(pLoaded[0] && pLoaded[1] && pLoaded[2] && pLoaded[3] && pLoaded[4] && !pAlready) ) + if( !Math.min.apply(Math, pLoaded) | pAlready ) return; - pAlready = true; + pAlready = 1; console.groupEnd(); console.group('[phone] Initialization'); @@ -151,6 +151,7 @@ var phoneRoutine = function(){ ); /* (2) On le démarre */ + pFicheManager.top_size = 20; pFicheManager.attach(pDynamicUpdate); @@ -338,11 +339,11 @@ var phoneRoutine = function(){ }; -include('/js/includes/input-phone-subject.js', function(){ pLoaded[0] = true; phoneRoutine(); }); -include('/js/includes/input-phone-contact.js', function(){ pLoaded[1] = true; phoneRoutine(); }); -include('/js/includes/input-phone-mini.js', function(){ pLoaded[2] = true; phoneRoutine(); }); -include('/js/includes/input-phone-fiche.js', function(){ pLoaded[3] = true; phoneRoutine(); }); -include('/js/includes/input-phone-matrice.js', function(){ pLoaded[4] = true; phoneRoutine(); }); +include('/js/includes/input-phone-subject.js', function(){ pLoaded[0] = 1; phoneRoutine(); }); +include('/js/includes/input-phone-contact.js', function(){ pLoaded[1] = 1; phoneRoutine(); }); +include('/js/includes/input-phone-mini.js', function(){ pLoaded[2] = 1; phoneRoutine(); }); +include('/js/includes/input-phone-fiche.js', function(){ pLoaded[3] = 1; phoneRoutine(); }); +include('/js/includes/input-phone-matrice.js', function(){ pLoaded[4] = 1; phoneRoutine(); }); @@ -351,14 +352,14 @@ include('/js/includes/input-phone-matrice.js', function(){ pLoaded[4] = true; ph /*=========================================================*/ /*=========== Gestion du formulaire facebook ==============*/ /*=========================================================*/ -var fAlready = false; -var fLoaded = [ false, false, false, false, false ]; +var fAlready = 0; +var fLoaded = [ 0, 0, 0, 0, 0 ]; var facebookRoutine = function(){ - if( !(fLoaded[0] && fLoaded[1] && fLoaded[2] && fLoaded[3] && fLoaded[4] && !fAlready) ) + if( !Math.min.apply(Math, fLoaded) | fAlready ) return; - fAlready = true; + fAlready = 1; console.groupEnd(); console.group('[facebook] Initialization'); @@ -408,6 +409,7 @@ var facebookRoutine = function(){ ); /* (2) On le démarre */ + fFicheManager.top_size = 20; fFicheManager.attach(fDynamicUpdate); @@ -595,253 +597,11 @@ var facebookRoutine = function(){ }; -include('/js/includes/input-facebook-subject.js', function(){ fLoaded[0] = true; facebookRoutine(); }); -include('/js/includes/input-facebook-contact.js', function(){ fLoaded[1] = true; facebookRoutine(); }); -include('/js/includes/input-facebook-mini.js', function(){ fLoaded[2] = true; facebookRoutine(); }); -include('/js/includes/input-facebook-fiche.js', function(){ fLoaded[3] = true; facebookRoutine(); }); -include('/js/includes/input-facebook-matrice.js', function(){ fLoaded[4] = true; facebookRoutine(); }); - -// -// include('/js/includes/input-facebook-subject.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.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"]') -// ); -// -// /* (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) 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') -// ); -// -// /* (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') -// ); -// -// /* (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') -// ); -// -// /* (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'); -// -// -// /* (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 */ -// 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); -// -// -// }); }); }); }); }); -// -// +include('/js/includes/input-facebook-subject.js', function(){ fLoaded[0] = 1; facebookRoutine(); }); +include('/js/includes/input-facebook-contact.js', function(){ fLoaded[1] = 1; facebookRoutine(); }); +include('/js/includes/input-facebook-mini.js', function(){ fLoaded[2] = 1; facebookRoutine(); }); +include('/js/includes/input-facebook-fiche.js', function(){ fLoaded[3] = 1; facebookRoutine(); }); +include('/js/includes/input-facebook-matrice.js', function(){ fLoaded[4] = 1; facebookRoutine(); }); diff --git a/view/js/min/input.js b/view/js/min/input.js index 11b903d..aff08bc 100644 --- a/view/js/min/input.js +++ b/view/js/min/input.js @@ -2,24 +2,24 @@ var sField,sSubmit,sList,pSubjectManager=null,pContactManager=null,pMiniManager= var tmpSubjectSearchListener=function(a){api.send({path:"subject/search",name:sField.value},function(a){if(0!=a.ModuleError)return Notification.error("Erreur","La recherche a \u00e9chou\u00e9."),!1;console.log(a);var c=[],g;for(g in a.results)c.push("
  • "),c.push("
    SUJET
    "),c.push("
    "),c.push("
    "+ a.results[g].name+"
    "),c.push("
    "+a.results[g].creation+"
    "),c.push("
    "),c.push("
    "),c.push("
    "),c.push("
    "),c.push("
  • ");sList.innerHTML= c.join("")})};sSubmit.addEventListener("click",tmpSubjectSearchListener,!1);sField.addEventListener("keypress",function(a){13===a.keyCode&&tmpSubjectSearchListener(a)},!1); -var pAlready=!1,pLoaded=[!1,!1,!1,!1,!1],phoneRoutine=function(){pLoaded[0]&&pLoaded[1]&&pLoaded[2]&&pLoaded[3]&&pLoaded[4]&&!pAlready&&(pAlready=!0,console.groupEnd(),console.group("[phone] Initialization"),pSubjectManager=new inputPhoneSubject($('[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),$('[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-facebook-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/facebook",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),console.groupEnd())};include("/js/includes/input-phone-subject.js",function(){pLoaded[0]=!0;phoneRoutine()});include("/js/includes/input-phone-contact.js",function(){pLoaded[1]=!0;phoneRoutine()});include("/js/includes/input-phone-mini.js",function(){pLoaded[2]=!0;phoneRoutine()});include("/js/includes/input-phone-fiche.js",function(){pLoaded[3]=!0;phoneRoutine()});include("/js/includes/input-phone-matrice.js",function(){pLoaded[4]=!0;phoneRoutine()}); -var fAlready=!1,fLoaded=[!1,!1,!1,!1,!1],facebookRoutine=function(){fLoaded[0]&&fLoaded[1]&&fLoaded[2]&&fLoaded[3]&&fLoaded[4]&&!fAlready&&(fAlready=!0,console.groupEnd(),console.group("[facebook] Initialization"),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')), +var pAlready=0,pLoaded=[0,0,0,0,0],phoneRoutine=function(){!Math.min.apply(Math,pLoaded)|pAlready||(pAlready=1,console.groupEnd(),console.group("[phone] Initialization"),pSubjectManager=new inputPhoneSubject($('[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.top_size=20,pFicheManager.attach(pDynamicUpdate),pMatriceManager=new inputPhoneMatrice($('[data-sublink="phone"] article.matrice-panel')),pMatriceManager.attach(pDynamicUpdate), +$('[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-facebook-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/facebook",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),console.groupEnd())};include("/js/includes/input-phone-subject.js",function(){pLoaded[0]=1;phoneRoutine()});include("/js/includes/input-phone-contact.js",function(){pLoaded[1]=1;phoneRoutine()});include("/js/includes/input-phone-mini.js",function(){pLoaded[2]=1;phoneRoutine()});include("/js/includes/input-phone-fiche.js",function(){pLoaded[3]=1;phoneRoutine()});include("/js/includes/input-phone-matrice.js",function(){pLoaded[4]=1;phoneRoutine()}); +var fAlready=0,fLoaded=[0,0,0,0,0],facebookRoutine=function(){!Math.min.apply(Math,fLoaded)|fAlready||(fAlready=1,console.groupEnd(),console.group("[facebook] Initialization"),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.top_size=20,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-phone-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);pSubjectManager.storageToFields();pContactManager.storageToFields();pMatriceManager.storageToFields();pDynamicUpdate(!0)})},!1),$('[data-sublink="facebook"] #f_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"]("f_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"]("f_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"]("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(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),console.groupEnd())};include("/js/includes/input-facebook-subject.js",function(){fLoaded[0]=!0;facebookRoutine()});include("/js/includes/input-facebook-contact.js",function(){fLoaded[1]=!0;facebookRoutine()});include("/js/includes/input-facebook-mini.js",function(){fLoaded[2]=!0;facebookRoutine()});include("/js/includes/input-facebook-fiche.js",function(){fLoaded[3]=!0;facebookRoutine()});include("/js/includes/input-facebook-matrice.js",function(){fLoaded[4]=!0;facebookRoutine()}); +1E4);console.log(a)},!1)},!1),console.groupEnd())};include("/js/includes/input-facebook-subject.js",function(){fLoaded[0]=1;facebookRoutine()});include("/js/includes/input-facebook-contact.js",function(){fLoaded[1]=1;facebookRoutine()});include("/js/includes/input-facebook-mini.js",function(){fLoaded[2]=1;facebookRoutine()});include("/js/includes/input-facebook-fiche.js",function(){fLoaded[3]=1;facebookRoutine()});include("/js/includes/input-facebook-matrice.js",function(){fLoaded[4]=1;facebookRoutine()}); var pDynamicUpdate=function(a){var b=a instanceof Element,c=b&&"INPUT"==a.tagName&&"submit"==a.type,g=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(!c&&!g&&!b&&!0!==a)return!1;console.groupEnd();console.groupEnd();console.group("[phone] 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 console.groupEnd(),!1;lsi["import"]("p_friends",a.subjects);pMiniManager.storageToFields();pFicheManager.storageToFields();pMatriceManager.storageToFields();pContactManager.storageToFields()}):(pMiniManager.storageToFields(),pFicheManager.storageToFields(),pMatriceManager.storageToFields(),(c||b)&&pContactManager.storageToFields());console.groupEnd()}, fDynamicUpdate=function(a){var b=a instanceof Element,c=b&&"INPUT"==a.tagName&&"submit"==a.type,g=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(!c&&!g&&!b&&!0!==a)return!1;console.groupEnd();console.groupEnd();console.group("[facebook] Dynamic Update");fMiniManager.fieldsToStorage();fFicheManager.fieldsToStorage();fContactManager.fieldsToStorage();fMatriceManager.fieldsToStorage();fFicheManager.sync();