diff --git a/public_html/js/includes/input-phone-fiche.js b/public_html/js/includes/input-phone-fiche.js index 0a98ef1..dd17bb5 100644 --- a/public_html/js/includes/input-phone-fiche.js +++ b/public_html/js/includes/input-phone-fiche.js @@ -29,6 +29,7 @@ inputPhoneFiche.prototype = { context: '0', // Choix 1 à 14 contextSpecial: ['', '', ''], freq: ['3', '8', '13', '18', '23'], // 4er choix des 4 pour chaque question + irlfreq: ['3', '8', '13', '18', '23'], // 4er choix des 4 pour chaque question connect: ['1', '3', '5', '7', '9', '11'], // Le deuxième choix (Oui/Non) donc 'Non' par défaut pour chaque question connectSpecial: ['', ''], medsoc: '0', @@ -82,6 +83,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ medsoc: deflated.medsoc, contextSpecial: deflated.contextSpecial, freq: deflated.freq, + irlfreq: deflated.irlfreq, connect: deflated.connect, connectSpecial: deflated.connectSpecial, uid: parseInt(deflated.uid), @@ -158,6 +160,7 @@ inputPhoneFiche.prototype.add = function(objectData){ objectData.context = (objectData.context != null) ? objectData.context : this.defaultData.context; objectData.medsoc = (objectData.medsoc != null) ? objectData.medsoc : this.defaultData.medsoc; objectData.freq = (objectData.freq != null) ? objectData.freq : this.defaultData.freq; + objectData.irlfreq = (objectData.irlfreq != null) ? objectData.irlfreq : this.defaultData.irlfreq; objectData.connect = (objectData.connect != null) ? objectData.connect : this.defaultData.connect; @@ -207,6 +210,7 @@ inputPhoneFiche.prototype.add = function(objectData){ objectData.connect = existingData.connect; objectData.connectSpecial = existingData.connectExtra; objectData.freq = existingData.freq; + objectData.irlfreq = existingData.irlfreq; importedFiche = 'Contact importé: non modifiable!'; }else{ importedFiche = 'Contact importé (incomplet): modifiable partiellement!'; @@ -302,7 +306,14 @@ inputPhoneFiche.prototype.add = function(objectData){ if( objectData.freq.indexOf(freqCreated[i].value) > -1 ) freqCreated[i].setAttribute('checked', 'checked'); else freqCreated[i].removeAttribute('checked'); - /* {16} On sélectionna la valeur des boutons pour les CONNECTIONS */ + + /* {16} On sélectionna la valeur des boutons pour les FREQUENCES IRL */ + var irlfreqCreated = $$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="irlfreq"]'); + for( var i = 0 ; i < irlfreqCreated.length ; i++ ) + if( objectData.irlfreq.indexOf(irlfreqCreated[i].value) > -1 ) irlfreqCreated[i].setAttribute('checked', 'checked'); + else irlfreqCreated[i].removeAttribute('checked'); + + /* {17} On sélectionna la valeur des boutons pour les CONNECTIONS */ var connectCreated = $$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="connect"]'); for( var i = 0 ; i < connectCreated.length ; i++ ) if( objectData.connect.indexOf(connectCreated[i].value) > -1 ) connectCreated[i].setAttribute('checked', 'checked'); @@ -627,78 +638,82 @@ inputPhoneFiche.prototype.updateNavBar = function(){ =========================================================*/ inputPhoneFiche.prototype.check = function(ficheData){ - // {1} Vérification des // + /* {1} Vérification des */ // 1. La ville a au moins 2 caractères if( ficheData.city.length < 2 ) return false; - // 3. La durée de la relation en mois est vide ou un nombre + // 2. La durée de la relation en mois est vide ou un nombre if( isNaN(parseInt(ficheData.duration[0])) && ficheData.duration[0].length > 0 ) return false; - // 4. La durée de la relation en année est vide ou un nombre + // 3. La durée de la relation en année est vide ou un nombre if( isNaN(parseInt(ficheData.duration[1])) && ficheData.duration[1].length > 0 ) return false; - // 5. Pour la durée de la relation, au moins un des 2 n'est pas vide + // 4. Pour la durée de la relation, au moins un des 2 n'est pas vide if( ficheData.duration[0].length+ficheData.duration[1].length == 0 ) return false; - // {2} Vérification des pour la profession n'est pas indéfini + /* {2} Vérification des pour la profession n'est pas indéfini if( ficheData.job == '.' ) return false; - // 7. Le pour les études n'est pas indéfini if( ficheData.studies == '.' ) return false; - // 8. Le pour l'AGE n'est pas indéfini if( ficheData.age == '.' ) return false; - // {3} Vérification des radio // - // 9. Le SEXE a un et un seul choix + /* {3} Vérification des radio */ + // 8. Le SEXE a un et un seul choix if( ficheData.sexe == '' ) return false; - // 10. La SITUATION FAMILIALE a un et un seul choix + // 9. La SITUATION FAMILIALE a un et un seul choix if( ficheData.famsit == '' ) return false; - // 11. Le TYPE DE RELATION a un et un seul choix + // 10. Le TYPE DE RELATION a un et un seul choix if( ficheData.reltype == '' ) return false; - // 12. La DISTANCE DE DOMICILE (location) a un et un seul choix + // 11. La DISTANCE DE DOMICILE (location) a un et un seul choix if( ficheData.loc == '' ) return false; - // 13. Le CONTEXTE DE RENCONTRE a un et un seul choix + // 12. Le CONTEXTE DE RENCONTRE a un et un seul choix if( ficheData.context == '' ) return false; - // 15. L'UTILISATION DES MEDIAS SOCIAUX a un et un seul choix + // 13. L'UTILISATION DES MEDIAS SOCIAUX a un et un seul choix if( ficheData.medsoc == '' ) return false; - // 16. Les FRÉQUENCES ont un et un seul choix (par question de fréquence) + // 14. Les FRÉQUENCES ont un et un seul choix (par question de fréquence) for( var i = 0 ; i < ficheData.freq.length ; i++ ) if( ficheData.freq[i] == '' ) return false; - // 17. Les CONNECTION ont un et un seul choix (par question de connection) + // 15. Les FRÉQUENCES IRL ont un et un seul choix (par question de fréquence) + for( var i = 0 ; i < ficheData.irlfreq.length ; i++ ) + if( ficheData.irlfreq[i] == '' ) + return false; + // 16. Les CONNECTION ont un et un seul choix (par question de connection) for( var i = 0 ; i < ficheData.connect.length ; i++ ) if( ficheData.connect[i] == '' ) return false; - // {4} dépendant d'un choix d'un radio // - // 18. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère + /* {4} dépendant d'un choix d'un radio */ + // 17. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère if( ficheData.reltype == '10' && ficheData.reltypeSpecial.length < 2 ) return false; - // 19. CONTEXTE DE RELATION si est coché indice 11, contactSpecial[0] doit avoir au moins 2 caractères + // 18. CONTEXTE DE RELATION si est coché indice 11, contactSpecial[0] doit avoir au moins 2 caractères if( ficheData.context == '11' && ficheData.contextSpecial[0].length < 2 ) return false; - // 20. CONTEXTE DE RELATION si est coché indice 12, contextSpecial[1] doit avoir au moins 2 caractères + // 19. CONTEXTE DE RELATION si est coché indice 12, contextSpecial[1] doit avoir au moins 2 caractères if( ficheData.context == '12' && ficheData.contextSpecial[1].length < 2 ) return false; - // 21. CONTEXTE DE RELATION si est coché indice 13, contextSpecial[2] doit avoir au moins 2 caractères + // 20. CONTEXTE DE RELATION si est coché indice 13, contextSpecial[2] doit avoir au moins 2 caractères if( ficheData.context == '13' && ficheData.contextSpecial[2].length < 2 ) return false; - // 22. Si tout s'est bien passé, on retourne TRUE + // 21. Si tout s'est bien passé, on retourne TRUE return true; }; diff --git a/public_html/js/includes/min/input-phone-fiche.js b/public_html/js/includes/min/input-phone-fiche.js index f17a054..3d93f01 100644 --- a/public_html/js/includes/min/input-phone-fiche.js +++ b/public_html/js/includes/min/input-phone-fiche.js @@ -1,17 +1,19 @@ -function inputPhoneFiche(a,b){this.container=a;this.nav_container=b;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:["3","8","13","18","23"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],medsoc:"0",timestamp:0,valid:!1}}; +function inputPhoneFiche(a,b){this.container=a;this.nav_container=b;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:["3","8","13","18","23"],irlfreq:["3","8","13","18","23"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],medsoc:"0",timestamp:0,valid:!1}}; inputPhoneFiche.prototype.fieldsToStorage=function(){console.group("[phone.fiche] fields to storage");var a,b,c,d,e,h=$$('[data-sublink="phone"] article.relation-panel .fiche-relation');a=0;for(b=h.length;a FICHE UPDATE ("+(d.timestamp-input_ts)+")"),lsi.set("p_fiches",d.uid,d));console.groupEnd()}; +context:d.context,medsoc:d.medsoc,contextSpecial:d.contextSpecial,freq:d.freq,irlfreq:d.irlfreq,connect:d.connect,connectSpecial:d.connectSpecial,uid:parseInt(d.uid),contact:parseInt(d.contact)},e=crc32(JSON.stringify(d)),c.hasOwnProperty("hash")&&e==c.hash||(d.hash=e,d.valid=this.check(d),d.timestamp=Date.now(),console.warn("> FICHE UPDATE ("+(d.timestamp-input_ts)+")"),lsi.set("p_fiches",d.uid,d));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; 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.medsoc=null!=a.medsoc?a.medsoc:this.defaultData.medsoc;a.freq=null!=a.freq? -a.freq:this.defaultData.freq;a.connect=null!=a.connect?a.connect:this.defaultData.connect;var b=lsi.get("p_contacts",a.contact);if(!1===b)return!1;var c="";isNaN(b.existing)||(c=lsi.get("p_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.medsoc=c.medsoc,a.contextSpecial=c.contextExtra,a.connect=c.connect,a.connectSpecial=c.connectExtra,a.freq=c.freq,c="Contact import\u00e9: non modifiable!"):c="Contact import\u00e9 (incomplet): modifiable partiellement!");this.container.innerHTML+=pFicheBuilder.build({importedfiche:c,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="phone"] 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="phone"] 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="phone"] 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="phone"] 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="medsoc"]');for(b=0;binput[type="radio"][data-name="freq"]');for(b=0;binput[type="radio"][data-name="connect"]');for(b=0;bspan>select[data-name="job"]>option[value="'+a.job+'"]');null!=b&&b.setAttribute("selected","selected"); +b=$('[data-sublink="phone"] 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="phone"] 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="phone"] 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="medsoc"]');for(b=0;binput[type="radio"][data-name="freq"]'); +for(b=0;binput[type="radio"][data-name="irlfreq"]');for(b=0;binput[type="radio"][data-name="connect"]'); +for(b=0;b span.active'),c=0;cAPPELS");20>d&&c'+(d%20+1)+"  ":(20==d&&(this.nav_container.innerHTML+='
   SMS   '),this.nav_container.innerHTML+=''+(d%20+1)+"")}for(var e in a)b=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[e].uid+'"]'),null!=b&&(!0===a[e].valid?b.addClass("done"):b.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;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()}; +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;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()};