diff --git a/js/includes/input-facebook-contact-min.js b/js/includes/input-facebook-contact-min.js index 4721b83..39ad282 100644 --- a/js/includes/input-facebook-contact-min.js +++ b/js/includes/input-facebook-contact-min.js @@ -1,7 +1,9 @@ -function inputFacebookContact(a,b){this.container=a;this.nav_container=b}inputFacebookContact.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null};inputFacebookContact.prototype.check=function(a){return 0=a.length&&this.add({uid:a.length});this.updateNavBar()}; -inputFacebookContact.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"f_nav-contact"!=a.parentNode.id)return!1;for(var b=$$('[data-sublink="facebook"] #f_nav-contact > span.active'),c=0;c'+(1+b/10)+""}this.nav($('[data-sublink="facebook"] #f_nav-contact [data-n="'+this.selected+'"]'))}; -inputFacebookContact.prototype.attach=function(a){console.log("CONTACTS: ATTACH");lsi.createDataset("f_contacts");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; +function inputFacebookContact(a,c){this.container=a;this.nav_container=c}inputFacebookContact.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null};inputFacebookContact.prototype.check=function(a){return!isNaN(a.existing)||0"+c[b].name+"\n";this.container.innerHTML+=fContactBuilder.build(a);b=$('[data-sublink="facebook"] article.contact-panel .new-contact input[data-name="uid"][value="'+a.uid+'"] ~ span select[data-name="existing"]>option[value="'+a.existing+ +'"]');null!=b&&b.setAttribute("selected","selected");a=$$('[data-sublink="facebook"] article.contact-panel .new-contact');var d=this;for(b=0;b=a.length&&this.add({uid:a.length});this.updateNavBar()}; +inputFacebookContact.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"f_nav-contact"!=a.parentNode.id)return!1;for(var c=$$('[data-sublink="facebook"] #f_nav-contact > span.active'),b=0;b'+(1+c/10)+""}this.nav($('[data-sublink="facebook"] #f_nav-contact [data-n="'+this.selected+'"]'))}; +inputFacebookContact.prototype.attach=function(a){console.log("CONTACTS: ATTACH");lsi.createDataset("f_contacts");this.storageToFields();this.handler=a;var c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler(a.target)},!1)}; diff --git a/js/includes/input-facebook-contact.js b/js/includes/input-facebook-contact.js index d546dd3..7314538 100644 --- a/js/includes/input-facebook-contact.js +++ b/js/includes/input-facebook-contact.js @@ -20,7 +20,7 @@ inputFacebookContact.prototype = { =========================================================*/ inputFacebookContact.prototype.check = function(deflated){ /* On retourne la validité du formulaire */ - return deflated.username.length > 0; + return !isNaN(deflated.existing) || deflated.username.length > 0; } @@ -34,7 +34,7 @@ inputFacebookContact.prototype.fieldsToStorage = function(){ for( var i = 0 ; i < visibleContacts.length ; i++ ){ // {2} On initialise notre deflater pour récupérer les valeurs // - var deflater = new FormDeflater(visibleContacts[i], ['input'], ['data-name']); + var deflater = new FormDeflater(visibleContacts[i], ['input', 'select'], ['data-name']); // {3} On enregistre ce contact si le numéro n'est pas vide et soit pseudo/prénom/nom // var deflated = deflater.deflate(); @@ -47,7 +47,9 @@ inputFacebookContact.prototype.fieldsToStorage = function(){ uid: parseInt(deflated.uid), username: deflated.username, firstname: deflated.firstname, - lastname: deflated.lastname + lastname: deflated.lastname, + + existing: (!isNaN(deflated.existing)) ? parseInt(deflated.existing) : '.' }; /* (5) On calcule et ajoute le hash des données */ @@ -84,18 +86,26 @@ inputFacebookContact.prototype.add = function(objectData){ // {0} On formatte l'object // objectData.username = (objectData.username != null) ? objectData.username : ''; - objectData.firstname = (objectData.firstname != null) ? objectData.firstname : ''; - objectData.lastname = (objectData.lastname != null) ? objectData.lastname : ''; - objectData.call = (objectData.call != null) ? objectData.call : -1; - objectData.sms = (objectData.sms != null) ? objectData.sms : -1; - objectData.countcall = (objectData.countcall != null) ? objectData.countcall : 0; - objectData.countsms = (objectData.countsms != null) ? objectData.countsms : 0; + objectData.existing = (objectData.existing != null) ? objectData.existing : '.'; - // {1} On ajoute le HTML // - this.container.innerHTML += fContactBuilder.build(objectData); + // {1} On récupére la liste des contacts déja renseignés // + var existing = lsi.export('f_friends'); + var buildData = objectData; + buildData.contacts = ''; - // {2} On attache les évènements sur les formulaires // + for( var i in existing ) + buildData.contacts += "\t\t\n"; + + // {2} On ajoute le HTML // + this.container.innerHTML += fContactBuilder.build(buildData); + + // {3} On remplit @existing s'il y a une valeur // + var existingOption = $('[data-sublink="facebook"] article.contact-panel .new-contact input[data-name="uid"][value="'+objectData.uid+'"] ~ span select[data-name="existing"]>option[value="'+objectData.existing+'"]'); + if( existingOption != null ) + existingOption.setAttribute('selected', 'selected'); + + // {4} On attache les évènements sur les formulaires // var contactForms = $$('[data-sublink="facebook"] article.contact-panel .new-contact'); // On met à jour les listener (remove, puis add) diff --git a/js/includes/input-facebook-fiche-min.js b/js/includes/input-facebook-fiche-min.js index 364d0dd..10ac006 100644 --- a/js/includes/input-facebook-fiche-min.js +++ b/js/includes/input-facebook-fiche-min.js @@ -4,9 +4,10 @@ reltypeSpecial:c.reltypeSpecial,city:c.city,quartier:c.quartier,cp:c.cp,loc:c.lo inputFacebookFiche.prototype.add=function(a){console.log("FICHE: ADD");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;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], +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");for(var c=$$('[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;binput[type="radio"][data-name="famsit"]'); +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;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:d};c.valid=this.check(c);0 FICHE UPDATE"),c.timestamp=Date.now());lsi.set("f_mini-fiches",c.uid,c)}}}; +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}}; +inputFacebookMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: 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)}}}; inputFacebookMini.prototype.add=function(a){console.log("MINI FICHE: ADD");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("f_contacts",a.uid);if(!1===b)return!1;this.container.innerHTML+=fMiniFicheBuilder.build({name:b.username,countcall:b.countcall,countsms:b.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});b=$('[data-sublink="facebook"] 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="facebook"] 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");for(var c=$$('[data-sublink="facebook"] article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),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")};inputFacebookMini.prototype.storageToFields=function(){console.log("MINI FICHE: 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()}; -inputFacebookMini.prototype.sync=function(){console.log("MINI FICHE: SYNC");var a=lsi["export"]("f_contacts"),b=lsi["export"]("f_fiches"),c=[],d;for(d in b)-1==c.indexOf(b[d].contact)&&c.push(b[d].contact);for(var e in a)-1 span.active'),c=0;c'+ ++b+"");for(c in a)isNaN(c)||(b=$('[data-sublink="facebook"] #f_nav-mini [data-n="'+a[c].uid+'"]'),null!=b&&(!0===a[c].valid?b.addClass("done"):b.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.log("MINI FICHE: ATTACH");lsi.createDataset("f_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)}; +var c=lsi.get("f_contacts",a.uid);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.studies1&&(a.studies=b.studies1)}this.container.innerHTML+=fMiniFicheBuilder.build({name:c.username,uid:a.uid,reltypespecial:a.reltypeSpecial});c=$('[data-sublink="facebook"] 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="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.log("MINI FICHE: 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()}; +inputFacebookMini.prototype.sync=function(){console.log("MINI FICHE: SYNC");var a=lsi["export"]("f_contacts"),c=lsi["export"]("f_fiches"),b=[],d;for(d in c)-1==b.indexOf(c[d].contact)&&b.push(c[d].contact);for(var e in a)-1 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.log("MINI FICHE: ATTACH");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)}; diff --git a/js/includes/input-facebook-mini.js b/js/includes/input-facebook-mini.js index dd2fc21..4b23777 100644 --- a/js/includes/input-facebook-mini.js +++ b/js/includes/input-facebook-mini.js @@ -64,7 +64,7 @@ inputFacebookMini.prototype.fieldsToStorage = function(){ var obj = { uid: parseInt(deflated.uid), - sexe: deflated.sexe, // [0] Homme, [1] Femme + sexe: deflated.sexe, // [0] Homme, [1] Femme, [2] Indéterminé age: deflated.age, studies: deflated.studies, reltype: deflated.reltype, // [0] ... @@ -130,12 +130,37 @@ inputFacebookMini.prototype.add = function(objectData){ if( associatedContact === false ) return false; + // {2} Si lié à un contact d'une autre étude, on utilise ses informations // + if( !isNaN(associatedContact.existing) ){ + var existingData = lsi.get('f_friends', associatedContact.existing); + + // On récupère les données communes + associatedContact.username = existingData.name; + objectData.age = existingData.age; + objectData.sexe = existingData.sexe; + objectData.loc = existingData.dist; + + // DISTANCE (LOC) : Si valeur + if( !isNaN(existingData.reltype) ){ + objectData.reltype = existingData.reltype; + objectData.reltypeSpecial = ''; + + // DISTANCE (LOC) : Si extra + }else{ + objectData.reltype = 10; + objectData.reltypeSpecial = existingData.reltype; + } + + // On met à jour les études uniquement si 'studies1' est défini // + if( existingData.studies1 != null ) + objectData.studies = existingData.studies1; + + } + // {2} Création physique // this.container.innerHTML += fMiniFicheBuilder.build({ name: associatedContact.username, - countcall: associatedContact.countcall, - countsms: associatedContact.countsms, uid: objectData.uid, reltypespecial: objectData.reltypeSpecial }); diff --git a/js/includes/input-facebook-subject-min.js b/js/includes/input-facebook-subject-min.js index c4d26fc..2393bd8 100644 --- a/js/includes/input-facebook-subject-min.js +++ b/js/includes/input-facebook-subject-min.js @@ -1,2 +1,3 @@ -function inputFacebookSubject(a,b){this.subject_id=a;this.store_button=b}inputFacebookSubject.prototype={store_button:this.store_button,subject_id:this.subject_id};inputFacebookSubject.prototype.check=function(){return 0' */ - 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/js/includes/input-html-facebook-data-min.js b/js/includes/input-html-facebook-data-min.js index 3e1769a..5ac4879 100644 --- a/js/includes/input-html-facebook-data-min.js +++ b/js/includes/input-html-facebook-data-min.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/input-html-facebook-data.js b/js/includes/input-html-facebook-data.js index 8e77e2f..e8750a4 100644 --- a/js/includes/input-html-facebook-data.js +++ b/js/includes/input-html-facebook-data.js @@ -5,17 +5,18 @@ var fContactBuilder = new HTMLBuilder(); fContactBuilder.setLayout( "

\n"+ - "\t\n"+ + "\t\n"+ - "\t\n"+ + "\t\n"+ - "\t    ou    \n"+ + "\t    ou    \n"+ + + "\t \n"+ + "\t\n"+ - "\t \n"+ - "\t\n"+ "

\n\n"); diff --git a/js/includes/input-phone-contact-min.js b/js/includes/input-phone-contact-min.js index 2ee9ff0..16313bc 100644 --- a/js/includes/input-phone-contact-min.js +++ b/js/includes/input-phone-contact-min.js @@ -1,4 +1,4 @@ -function inputPhoneContact(a,c){this.container=a;this.nav_container=c}inputPhoneContact.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null};inputPhoneContact.prototype.check=function(a){return"."!=a.existing||0"+c[b].name+"\n"; diff --git a/js/includes/input-phone-contact.js b/js/includes/input-phone-contact.js index 5de5b88..306b5c4 100644 --- a/js/includes/input-phone-contact.js +++ b/js/includes/input-phone-contact.js @@ -20,7 +20,7 @@ inputPhoneContact.prototype = { =========================================================*/ inputPhoneContact.prototype.check = function(deflated){ /* On retourne la validité du formulaire */ - return deflated.existing != '.' || deflated.username.length > 0; + return !isNaN(deflated.existing) || deflated.username.length > 0; } diff --git a/view/js/input-min.js b/view/js/input-min.js index 4e2b3f5..3bb9304 100644 --- a/view/js/input-min.js +++ b/view/js/input-min.js @@ -4,8 +4,8 @@ b.results[g].name+" ",a+="
" var pSubjectManager,pContactManager,pMiniManager,pFicheManager,pMatriceManager; function pDynamicUpdate(a){var b=a instanceof Element,f=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(!f&&!g&&!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(),(f||b)&&pContactManager.storageToFields())}var fSubjectManager,fContactManager,fMiniManager,fFicheManager,fMatriceManager; -function fDynamicUpdate(a){var b=a instanceof Element,f=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(!f&&!g&&!b&&!0!==a)return!1;console.log("> dynamic update");fMiniManager.fieldsToStorage();fFicheManager.fieldsToStorage();fContactManager.fieldsToStorage();fMatriceManager.fieldsToStorage();fFicheManager.sync();fMiniManager.sync();fMiniManager.storageToFields(); -fFicheManager.storageToFields();fMatriceManager.storageToFields();(f||b)&&fContactManager.storageToFields()} +function fDynamicUpdate(a){var b=a instanceof Element,f=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(!f&&!g&&!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(),(f||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"] input#p_call_log-import[type="file"]').addEventListener("change",function(a){api.send({path:"upload/call_log", @@ -18,11 +18,11 @@ var b=$('[data-sublink="phone"] #p_download-target');b.download="local-phone-dat 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,d;for(d in a)if(!isNaN(d)&&(b++,!a[d].valid))return Notification.warning("Attention", "La fiche rapide "+b+" est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("p_fiches");for(d in a)if(!a[d].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(d)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;d={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(d,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-min.js",function(){include("/js/includes/input-facebook-mini-min.js",function(){include("/js/includes/input-facebook-fiche-min.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();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");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]}; +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,f;for(f in a)if(!isNaN(f)&&(b++,!a[f].valid))return Notification.warning("Attention","La fiche rapide "+b+" est incompl\u00e8te et/ou incorrecte"), !1;a=lsi["export"]("f_fiches");for(f in a)if(!a[f].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(f)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;f={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(f,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError), diff --git a/view/js/input.js b/view/js/input.js index f770d5f..0bf597d 100644 --- a/view/js/input.js +++ b/view/js/input.js @@ -198,14 +198,37 @@ function fDynamicUpdate(target){ // Supprime les contacts déja dans les FICHES fMiniManager.sync(); - /* (7) On affiche le tout */ - fMiniManager.storageToFields(); - fFicheManager.storageToFields(); - fMatriceManager.storageToFields(); + /* (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; - /* (8) On met à jour les contacts si on les a modifié on si on navigue dans les contacts */ - if( isSaveButton || isNavContact ) - fContactManager.storageToFields(); + // 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(); + 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(); + } } @@ -224,6 +247,7 @@ include('/js/includes/input-phone-subject-min.js', function(){ 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(){ @@ -636,9 +660,12 @@ include('/js/includes/input-phone-matrice-min.js', function(){ /*=========== Gestion du formulaire facebook ==============*/ /*=========================================================*/ include('/js/includes/input-facebook-subject-min.js', function(){ -include('/js/includes/input-facebook-contact-min.js', function(){ -include('/js/includes/input-facebook-mini-min.js', function(){ -include('/js/includes/input-facebook-fiche-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(){ @@ -651,7 +678,7 @@ include('/js/includes/input-facebook-matrice-min.js', function(){ ); /* (2) On le démarre */ - fSubjectManager.attach(); + fSubjectManager.attach(fDynamicUpdate); @@ -717,6 +744,7 @@ include('/js/includes/input-facebook-matrice-min.js', function(){ lsi.clear('f_mini-fiches'); lsi.clear('f_fiches'); lsi.clear('f_matrice'); + lsi.clear('f_friends'); /* (2) On met à jour l'affichage */