diff --git a/js/includes/input-html-data-min.js b/js/includes/input-html-data-min.js index 3a66e2f..750b23a 100644 --- a/js/includes/input-html-data-min.js +++ b/js/includes/input-html-data-min.js @@ -1,3 +1,3 @@ var contactBuilder=new HTMLBuilder;contactBuilder.setLayout("

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

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

@firstname @lastname @username

\n\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\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n
"); +var miniFicheBuilder=new HTMLBuilder;miniFicheBuilder.setLayout("
\n\t\n\t\n\t\n\t\n\t\n\t

@firstname @lastname @username

\n\t
\t\t10 appels\t
\t
\t\t15 sms\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\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n
"); var ficheBuilder=new HTMLBuilder;ficheBuilder.setLayout("
\n\t\n\t\n\t\n\t\n\t

@firstname @lastname @username

\n\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
\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
\n\t
\n\t\tO\u00f9 habite t-elle/il\u00a0?
\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\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
\n\t
\n\t\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
\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
\n\t
\n\t\tSMS, et \u00e9quivalents
\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
\n\t
\n\t\tFacebook ou autre r\u00e9seau social
\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-data.js b/js/includes/input-html-data.js index fc6d3ce..e06cde5 100644 --- a/js/includes/input-html-data.js +++ b/js/includes/input-html-data.js @@ -48,6 +48,13 @@ miniFicheBuilder.setLayout( "\t\n"+ "\t

@firstname @lastname @username

\n"+ + "\t
"+ + "\t\t10 appels"+ + "\t
"+ + "\t
"+ + "\t\t15 sms"+ + "\t
"+ + "\t
\n"+ "\t\t\n"+ "\t\t   \n"+ diff --git a/js/includes/input-phone-fiche-min.js b/js/includes/input-phone-fiche-min.js index 93bf7d8..26ee60f 100644 --- a/js/includes/input-phone-fiche-min.js +++ b/js/includes/input-phone-fiche-min.js @@ -1,22 +1,20 @@ function inputPhoneFiche(a,b){this.container=a;this.nav_container=b} -inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",famsit:[{status:!0},{status:!1},{status:!1}],studies:".",reltype:[{status:!0},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],reltypeSpecial:"",city:"",loc:[{status:!0},{status:!1},{status:!1},{status:!1}],loc2:[{status:!0},{status:!1},{status:!1}, -{status:!1}],duration:["",""],context:[{status:!0},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],contextSpecial:["","",""],freq:[[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}]],connect:[[{status:!1}, -{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}]],connectSpecial:["",""],timestamp:0,valid:!1}}; -inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("FICHE: FIELDS TO STORAGE");for(var a=$$("article.relation-panel .fiche-relation"),b=0;b FICHE UPDATE");c={uid:c.uid.value,firstname:e.firstname,lastname:e.lastname,username:e.username, -sexe:c.sexe,age:c.age.value,job:c.job.value,famsit:c.famsit,studies:c.studies.value,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial.value,city:c.city.value,loc:c.loc,loc2:c.loc2,duration:[c.duration[0].value,c.duration[1].value],context:c.context,contextSpecial:[c.contextSpecial[0].value,c.contextSpecial[1].value,c.contextSpecial[2].value],freq:[c.freq0,c.freq1,c.freq2,c.freq3,c.freq4],connect:[c.connect0,c.connect1,c.connect2,c.connect3,c.connect4,c.connect5],connectSpecial:[c.connectSpecial[0].value, -c.connectSpecial[1].value],hash:d};c.valid=this.check(c);c.timestamp=Date.now();lsi.set("fiches",c.uid,c)}}; -inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.city=null!=a.city?a.city:this.defaultData.city;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.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.loc2=null!=a.loc2?a.loc2:this.defaultData.loc2;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;this.container.innerHTML+=ficheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:0==a.username.length?"":"("+a.username+")",uid:a.uid,age:a.age,city:a.city,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]});var b=$('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=$('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");for(var c=$$('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"]');for(b=0;binput[type="radio"][data-name="reltype"]');for(b=0;b< -c.length&&binput[type="radio"][data-name="loc"]');for(b=0;binput[type="radio"][data-name="loc2"]');for(b=0;binput[type="radio"][data-name="context"]');for(b=0;binput[type="radio"][data-name="freq'+ -c+'"]'),b=0;binput[type="radio"][data-name="connect'+c+'"]'),b=0;bb;b++){var c=lsi.get("contacts",a[b]),d=lsi.get("fiches",a[b]);null==d&&(d=this.defaultData);d.uid=c.uid;d.firstname=c.firstname;d.lastname=c.lastname;d.username=c.username;lsi.set("fiches",a[b],d)}var a=lsi["export"]("mini-fiches"),d=lsi["export"]("fiches"),e;for(e in d)d[e].timestamp>a[e].timestamp?(a[e].sexe=d[e].sexe,a[e].age=d[e].age,a[e].job=d[e].job,a[e].loc=d[e].loc):(d[e].sexe= -a[e].sexe,d[e].age=a[e].age,d[e].job=a[e].job,d[e].loc=a[e].loc),lsi.set("mini-fiches",e,a[e]),lsi.set("fiches",e,d[e])};inputPhoneFiche.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML)||"nav-fiche"!=a.parentNode.id)return!1;for(var b=$$("#nav-fiche > span.active"),c=0;c FICHE UPDATE");c={uid:c.uid.value,sexe:c.sexe,age:c.age.value,job:c.job.value,famsit:c.famsit,studies:c.studies.value,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial.value, +city:c.city.value,loc:c.loc,loc2:c.loc2,duration:[c.duration[0].value,c.duration[1].value],context:c.context,contextSpecial:[c.contextSpecial[0].value,c.contextSpecial[1].value,c.contextSpecial[2].value],freq:[c.freq0,c.freq1,c.freq2,c.freq3,c.freq4],connect:[c.connect0,c.connect1,c.connect2,c.connect3,c.connect4,c.connect5],connectSpecial:[c.connectSpecial[0].value,c.connectSpecial[1].value],hash:d};c.valid=this.check(c);c.timestamp=Date.now();lsi.set("fiches",c.uid,c)}}}; +inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.city=null!=a.city?a.city:this.defaultData.city;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.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.loc2=null!=a.loc2?a.loc2:this.defaultData.loc2;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("contacts",a.uid);if(!1===b)return!1;this.container.innerHTML+= +ficheBuilder.build({firstname:b.firstname,lastname:b.lastname,username:0==b.username.length?"":"("+b.username+")",uid:a.uid,age:a.age,city:a.city,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=$('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=$('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");for(var c=$$('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"]');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="loc2"]');for(b=0;binput[type="radio"][data-name="context"]'); +for(b=0;binput[type="radio"][data-name="freq'+c+'"]'),b=0;binput[type="radio"][data-name="connect'+c+'"]'),b=0;bb;b++){var c=lsi.get("contacts",a[b]),d=lsi.get("fiches",a[b]);null==d&&(d=this.defaultData);d.uid=c.uid;lsi.set("fiches",a[b],d)}var a=lsi["export"]("mini-fiches"),d=lsi["export"]("fiches"),e;for(e in d)d[e].timestamp>a[e].timestamp?(a[e].sexe=d[e].sexe,a[e].age=d[e].age,a[e].job=d[e].job,a[e].loc=d[e].loc):(d[e].sexe=a[e].sexe,d[e].age=a[e].age,d[e].job=a[e].job,d[e].loc=a[e].loc), +lsi.set("mini-fiches",e,a[e]),lsi.set("fiches",e,d[e])};inputPhoneFiche.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML)||"nav-fiche"!=a.parentNode.id)return!1;for(var b=$$("#nav-fiche > span.active"),c=0;c"}for(var d in a)b=this.nav_container.children[a[d].uid],b.innerHTML=a[d].uid+1,!0===a[d].valid?b.addClass("done"):b.remClass("done");this.nav(this.nav_container.children[this.selected])}; inputPhoneFiche.prototype.check=function(a){if(isNaN(parseInt(a.age))||2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length||a.context[11].status&&2>a.contextSpecial[0].length||a.context[12].status&&2>a.contextSpecial[1].length||a.context[13].status&&2>a.contextSpecial[2].length?!1:!0}; diff --git a/js/includes/input-phone-fiche.js b/js/includes/input-phone-fiche.js index 390e7a8..2866b57 100644 --- a/js/includes/input-phone-fiche.js +++ b/js/includes/input-phone-fiche.js @@ -13,9 +13,6 @@ inputPhoneFiche.prototype = { selected: 0, // UID de la FICHE sélectionnée handler: null, // Fonction pour l'enregistrement et la synchronisation des données defaultData: { // Valeurs par défaut - firstname: '', - lastname: '', - username: '', sexe: [ {status:true}, {status:false}], age: '', job: '.', @@ -76,12 +73,9 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ // {4} On récupère les données du LSI si elles existent // var existingData = lsi.get('fiches', deflated.uid.value); - // Si n'existe pas, on initialise - if( existingData === false ){ - existingData.username = 'inconnu'; - existingData.firstname = 'inconnu'; - existingData.lastname = 'inconnu'; - } + // Si n'existe pas, on passe au suivant + if( existingData === false ) + continue; // {5} On récupère et met en forme les valeurs du deflater // @@ -94,9 +88,6 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ var obj = { uid: deflated.uid.value, - firstname: existingData.firstname, - lastname: existingData.lastname, - username: existingData.username, sexe: deflated.sexe, // Choix 1 à 2 age: deflated.age.value, job: deflated.job.value, @@ -173,9 +164,6 @@ inputPhoneFiche.prototype.add = function(objectData){ /* (0) Gestion du formattage des valeur */ // {1} Champs de texte // - objectData.firstname = (objectData.firstname != null) ? objectData.firstname : this.defaultData.firstname; - objectData.lastname = (objectData.lastname != null) ? objectData.lastname : this.defaultData.lastname; - objectData.username = (objectData.username != null) ? objectData.username : this.defaultData.username; objectData.age = (objectData.age != null) ? objectData.age : this.defaultData.age; objectData.city = (objectData.city != null) ? objectData.city : this.defaultData.city; objectData.duration[0] = (objectData.duration[0] != null) ? objectData.duration[0] : this.defaultData.duration[0]; @@ -202,11 +190,19 @@ inputPhoneFiche.prototype.add = function(objectData){ objectData.connect = (objectData.connect != null) ? objectData.connect : this.defaultData.connect; - // {1} Création physique // + // {4} On récupère username/firstname/lastname du contact associé // + var associatedContact = lsi.get('contacts', objectData.uid); + + // Si on ne trouve pas le contact, on ne fais rien + if( associatedContact === false ) + return false; + + + // {5} Création physique // this.container.innerHTML += ficheBuilder.build({ - firstname: objectData.firstname, - lastname: objectData.lastname, - username: (objectData.username.length==0) ? '' : '('+objectData.username+')', + firstname: associatedContact.firstname, + lastname: associatedContact.lastname, + username: (associatedContact.username.length==0) ? '' : '('+associatedContact.username+')', uid: objectData.uid, age: objectData.age, city: objectData.city, @@ -221,59 +217,59 @@ inputPhoneFiche.prototype.add = function(objectData){ }); - /* (2) On sélectionne la valeur dans le select (manuellement) de la PROFESSION */ + /* {6} On sélectionne la valeur dans le select (manuellement) de la PROFESSION */ var selectedOption = $('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+objectData.job+'"]'); if( selectedOption != null ) selectedOption.setAttribute('selected', 'selected'); - /* (3) On sélectionne la valeur dans le select (manuellement) des ETUDES */ + /* {7} On sélectionne la valeur dans le select (manuellement) des ETUDES */ selectedOption = $('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+objectData.studies+'"]'); if( selectedOption != null ) selectedOption.setAttribute('selected', 'selected'); - /* (4) On sélectionna la valeur des boutons pour le SEXE */ + /* {8} On sélectionna la valeur des boutons pour le SEXE */ var sexeCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'); for( var i = 0 ; i < sexeCreated.length && i < objectData.sexe.length ; i++ ) if( objectData.sexe[i].status ) sexeCreated[i].setAttribute('checked', 'checked'); else sexeCreated[i].removeAttribute('checked'); - /* (5) On sélectionna la valeur des boutons pour la SITUATION FAMILIALE */ + /* {9} On sélectionna la valeur des boutons pour la SITUATION FAMILIALE */ var famsitCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]'); for( var i = 0 ; i < famsitCreated.length && i < objectData.famsit.length ; i++ ) if( objectData.famsit[i].status ) famsitCreated[i].setAttribute('checked', 'checked'); else famsitCreated[i].removeAttribute('checked'); - /* (6) On sélectionna la valeur des boutons pour le TYPE DE RELATION */ + /* {10} On sélectionna la valeur des boutons pour le TYPE DE RELATION */ var reltypeCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]'); for( var i = 0 ; i < reltypeCreated.length && i < objectData.reltype.length ; i++ ) if( objectData.reltype[i].status ) reltypeCreated[i].setAttribute('checked', 'checked'); else reltypeCreated[i].removeAttribute('checked'); - /* (7) On sélectionna la valeur des boutons pour la LOCATION */ + /* {11} On sélectionna la valeur des boutons pour la LOCATION */ var locCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc"]'); for( var i = 0 ; i < locCreated.length && i < objectData.loc.length ; i++ ) if( objectData.loc[i].status ) locCreated[i].setAttribute('checked', 'checked'); else locCreated[i].removeAttribute('checked'); - /* (7bis) On sélectionna la valeur des boutons pour la LOCATION */ + /* {12}is) On sélectionna la valeur des boutons pour la LOCATION */ var loc2Created = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc2"]'); for( var i = 0 ; i < loc2Created.length && i < objectData.loc2.length ; i++ ) if( objectData.loc2[i].status ) loc2Created[i].setAttribute('checked', 'checked'); else loc2Created[i].removeAttribute('checked'); - /* (8) On sélectionna la valeur des boutons pour le CONTEXTE DE RENCONTRE */ + /* {13} On sélectionna la valeur des boutons pour le CONTEXTE DE RENCONTRE */ var contextCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="context"]'); for( var i = 0 ; i < contextCreated.length && i < objectData.context.length ; i++ ) if( objectData.context[i].status ) contextCreated[i].setAttribute('checked', 'checked'); else contextCreated[i].removeAttribute('checked'); - /* (9) On sélectionna la valeur des boutons pour les FREQUENCES */ + /* {14} On sélectionna la valeur des boutons pour les FREQUENCES */ for( var f = 0 ; f < objectData.freq.length ; f++ ){ var freqCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="freq'+f+'"]'); for( var i = 0 ; i < freqCreated.length && i < objectData.freq[f].length ; i++ ) @@ -281,7 +277,7 @@ inputPhoneFiche.prototype.add = function(objectData){ else freqCreated[i].removeAttribute('checked'); } - /* (10) On sélectionna la valeur des boutons pour les CONNECTIONS */ + /* {15} On sélectionna la valeur des boutons pour les CONNECTIONS */ for( var c = 0 ; c < objectData.connect.length ;c++ ){ var connectCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="connect'+c+'"]'); for( var i = 0 ; i < connectCreated.length && i < objectData.connect[c].length ; i++ ) @@ -367,11 +363,7 @@ inputPhoneFiche.prototype.sync = function(){ /* (6) On met à jour la fiche */ - ficheData.uid = contactData.uid; - ficheData.firstname = contactData.firstname; - ficheData.lastname = contactData.lastname; - ficheData.username = contactData.username; - + ficheData.uid = contactData.uid; /* (7) On enregistre les modification */ lsi.set('fiches', contactUIDs[i], ficheData); diff --git a/js/includes/input-phone-mini-min.js b/js/includes/input-phone-mini-min.js index 19f87ef..3a7f59e 100644 --- a/js/includes/input-phone-mini-min.js +++ b/js/includes/input-phone-mini-min.js @@ -1,11 +1,9 @@ -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:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",loc:[{status:!0},{status:!1},{status:!1},{status:!1}],timestamp:0,valid:!1}}; -inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b MINI UPDATE");c={uid:c.uid.value,firstname:d.firstname,lastname:d.lastname, -username:d.username,sexe:c.sexe,age:c.age.value,job:c.job.value,loc:c.loc,hash:e};c.valid=this.check(c);c.timestamp=Date.now();lsi.set("mini-fiches",c.uid,c)}}; -inputPhoneMini.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a||null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.job=null!=a.job?a.job:this.defaultData.job;a.loc=null!=a.loc?a.loc:this.defaultData.loc;this.container.innerHTML+= -miniFicheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:0==a.username.length?"":"("+a.username+")",uid:a.uid,age:a.age,job:a.job});var b=$('article.mini-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");for(var c=$$('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="loc"]');for(b=0;b span.active"),c=0;c"}for(var e in a)b=this.nav_container.children[a[e].uid],b.innerHTML=a[e].uid+1,!0===a[e].valid?b.addClass("done"):b.remClass("done");this.nav(this.nav_container.children[this.selected])}; +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:{sexe:[{status:!0},{status:!1}],age:"",job:".",loc:[{status:!0},{status:!1},{status:!1},{status:!1}],timestamp:0,valid:!1}}; +inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b MINI UPDATE");c={uid:c.uid.value,firstname:e.firstname,lastname:e.lastname,username:e.username,sexe:c.sexe,age:c.age.value, +job:c.job.value,loc:c.loc,hash:d};c.valid=this.check(c);c.timestamp=Date.now();lsi.set("mini-fiches",c.uid,c)}}}; +inputPhoneMini.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.job=null!=a.job?a.job:this.defaultData.job;a.loc=null!=a.loc?a.loc:this.defaultData.loc;var b=lsi.get("contacts",a.uid);if(!1===b)return!1;this.container.innerHTML+=miniFicheBuilder.build({firstname:b.firstname,lastname:b.lastname,username:0==b.username.length?"":"("+b.username+")",uid:a.uid,age:a.age, +job:a.job});b=$('article.mini-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");for(var c=$$('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="loc"]');for(b=0;b span.active"),c=0;c"}for(var d in a)b=this.nav_container.children[a[d].uid],b.innerHTML=a[d].uid+1,!0===a[d].valid?b.addClass("done"):b.remClass("done");this.nav(this.nav_container.children[this.selected])}; inputPhoneMini.prototype.check=function(a){return!isNaN(parseInt(a.age))&&checkRadioValue(a.sexe)&&"."!=a.job&&checkRadioValue(a.loc)?!0:!1};inputPhoneMini.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("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)}; diff --git a/js/includes/input-phone-mini.js b/js/includes/input-phone-mini.js index 7326567..c34e7b4 100644 --- a/js/includes/input-phone-mini.js +++ b/js/includes/input-phone-mini.js @@ -13,9 +13,6 @@ inputPhoneMini.prototype = { selected: 0, // 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 - firstname: '', - lastname: '', - username: '', sexe: [{status:true}, {status:false}], age: '', job: '.', @@ -49,12 +46,9 @@ inputPhoneMini.prototype.fieldsToStorage = function(){ // {4} On récupère les données du LSI si elles existent // var existingData = lsi.get('mini-fiches', deflated.uid.value); - // Si n'existe pas, on initialise - if( existingData === false ){ - existingData.username = 'inconnu'; - existingData.firstname = 'inconnu'; - existingData.lastname = 'inconnu'; - } + // Si n'existe pas, on passe à la suivante + if( existingData === false ) + continue; // {5} On récupère et met en forme les valeurs du deflater // @@ -111,38 +105,43 @@ inputPhoneMini.prototype.add = function(objectData){ return false; /* (0) Gestion du formattage des valeur */ - objectData.firstname = (objectData.firstname != null) ? objectData.firstname : this.defaultData.firstname; - objectData.lastname = (objectData.lastname != null) ? objectData.lastname : this.defaultData.lastname; - objectData.username = (objectData.username != null) ? objectData.username : this.defaultData.username; objectData.age = (objectData.age != null) ? objectData.age : this.defaultData.age; objectData.sexe = (objectData.sexe != null) ? objectData.sexe : this.defaultData.sexe; objectData.job = (objectData.job != null) ? objectData.job : this.defaultData.job; objectData.loc = (objectData.loc != null) ? objectData.loc : this.defaultData.loc; - // {1} Création physique // + // {1} On récupère username/firstname/lastname du contact associé // + var associatedContact = lsi.get('contacts', objectData.uid); + + // Si on ne trouve pas le contact, on ne fais rien + if( associatedContact === false ) + return false; + + + // {2} Création physique // this.container.innerHTML += miniFicheBuilder.build({ - firstname: objectData.firstname, - lastname: objectData.lastname, - username: (objectData.username.length==0) ? '' : '('+objectData.username+')', + firstname: associatedContact.firstname, + lastname: associatedContact.lastname, + username: (associatedContact.username.length==0) ? '' : '('+associatedContact.username+')', uid: objectData.uid, age: objectData.age, job: objectData.job }); - /* (2) On sélectionne la valeur dans le select (manuellement) de la PROFESSION */ + /* {3} On sélectionne la valeur dans le select (manuellement) de la PROFESSION */ var selectedOption = $('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+objectData.job+'"]'); if( selectedOption != null ) selectedOption.setAttribute('selected', 'selected'); - /* (3) On sélectionna la valeur des boutons pour le SEXE */ + /* {4} On sélectionna la valeur des boutons pour le SEXE */ var sexeCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'); for( var i = 0 ; i < sexeCreated.length && i < objectData.sexe.length ; i++ ) if( objectData.sexe[i].status ) sexeCreated[i].setAttribute('checked', 'checked'); else sexeCreated[i].removeAttribute('checked'); - /* (4) On sélectionna la valeur des boutons pour la LOCATION */ + /* {5} On sélectionna la valeur des boutons pour la LOCATION */ var locCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc"]'); for( var i = 0 ; i < locCreated.length && i < objectData.loc.length ; i++ ) if( objectData.loc[i].status ) locCreated[i].setAttribute('checked', 'checked'); @@ -210,10 +209,7 @@ inputPhoneMini.prototype.sync = function(){ } /* (5) On met à jour la MINI fiche */ - miniData.uid = contactData[key].uid; - miniData.firstname = contactData[key].firstname; - miniData.lastname = contactData[key].lastname; - miniData.username = contactData[key].username; + miniData.uid = contactData[key].uid; /* (6) On enregistre les modification */ diff --git a/manager/module/upload.php b/manager/module/upload.php index 8d632c5..31985b3 100644 --- a/manager/module/upload.php +++ b/manager/module/upload.php @@ -262,9 +262,6 @@ /* (5) Vérification des mini-fiches */ foreach($json['mini'] as $mini){ $checkMini = isset($mini['uid']) && is_numeric($mini['uid']); - $checkMini = $checkMini && isset($mini['username']) && is_string($mini['username']); - $checkMini = $checkMini && isset($mini['firstname']) && is_string($mini['firstname']); - $checkMini = $checkMini && isset($mini['lastname']) && is_string($mini['lastname']); $checkMini = $checkMini && isset($mini['sexe']) && is_array($mini['sexe']); $checkMini = $checkMini && isset($mini['age']) && is_string($mini['age']); $checkMini = $checkMini && isset($mini['job']) && is_string($mini['job']); @@ -280,9 +277,6 @@ /* (6) Vérification des fiches */ foreach($json['fiches'] as $fiches){ $checkFiche = isset($fiches['uid']) && is_numeric($fiches['uid']); - $checkFiche = $checkFiche && isset($fiches['username']) && is_string($fiches['username']); - $checkFiche = $checkFiche && isset($fiches['firstname']) && is_string($fiches['firstname']); - $checkFiche = $checkFiche && isset($fiches['lastname']) && is_string($fiches['lastname']); $checkFiche = $checkFiche && isset($fiches['sexe']) && is_array($fiches['sexe']); $checkFiche = $checkFiche && isset($fiches['age']) && is_string($fiches['age']); $checkFiche = $checkFiche && isset($fiches['job']) && is_string($fiches['job']); diff --git a/view/js/input-min.js b/view/js/input-min.js index 94eadca..521eba8 100644 --- a/view/js/input-min.js +++ b/view/js/input-min.js @@ -4,7 +4,7 @@ d;else if(b){console.log("> switch firstname+lastname -> username");b=a.parentNo function checkRadioValue(a){for(var c=0,b=0;b GATHERING ALL DATA");subjectManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.fieldsToStorage(); +api.send(a,function(a){console.log(a);if(0==a.ModuleError){for(var b=0;b GATHERING ALL DATA");subjectManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.fieldsToStorage(); ficheManager.fieldsToStorage();a={path:"input/phone",subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};api.send(a,function(a){console.log(a)},!1)},!1)})})})}); diff --git a/view/js/input.js b/view/js/input.js index 9ff052b..94d19d4 100644 --- a/view/js/input.js +++ b/view/js/input.js @@ -237,15 +237,15 @@ include('/js/includes/input-phone-fiche.js', function(){ return; /* (3) Pour chaque contact de l'annuaire, on ajoute un contact */ - for( var i = 0 ; i < response.directory.length ; i++ ){ + for( var i = 0 ; i < response.calls.length ; i++ ){ // On découpe le nom par espaces - var name = response.directory[i].name===null ? '' : response.directory[i].name; + var name = response.calls[i].name===null ? '' : response.calls[i].name; var splitted = name.split(' '); lsi.set('contacts', i, { uid: i, - number: response.directory[i].number, + number: response.calls[i].number, username: splitted.length == 1 ? splitted[0] : '', // Si un seul mot -> pseudo firstname: splitted.length > 1 ? splitted[0] : '', // Si plusieurs mots -> le 1er est le prénom lastname: splitted.length > 1 ? splitted.splice(1).join(' ') : '' // et les autres sont le nom