diff --git a/config/database-local.json b/config/database-local.json index 7f1e6f9..5b8cef7 100755 --- a/config/database-local.json +++ b/config/database-local.json @@ -1,6 +1,6 @@ { "host" : "localhost", - "dbname" : "socioview", + "dbname" : "nxtic", "user" : "php", "password" : "Qt358nUdyeTxLDM8" -} \ No newline at end of file +} diff --git a/config/database.json b/config/database.json index e18d45e..7df8e1c 100755 --- a/config/database.json +++ b/config/database.json @@ -1,6 +1,6 @@ { "host" : "xdrm.io", - "dbname" : "socioview", + "dbname" : "nxtic", "user" : "php", "password" : "QbzjZACndQM6NmuD" } diff --git a/js/includes/input-facebook-fiche.js b/js/includes/input-facebook-fiche.js index 7e3ef09..e06875c 100644 --- a/js/includes/input-facebook-fiche.js +++ b/js/includes/input-facebook-fiche.js @@ -171,6 +171,8 @@ inputFacebookFiche.prototype.add = function(objectData){ return false; // {2} Si lié à un contact d'une autre étude, on utilise ses informations // + var importedFiche = ''; + if( !isNaN(associatedContact.existing) ){ var existingData = lsi.get('f_friends', associatedContact.existing); @@ -206,6 +208,9 @@ inputFacebookFiche.prototype.add = function(objectData){ objectData.connect = existingData.connect; objectData.connectSpecial = existingData.connectExtra; objectData.freq = existingData.freq; + importedFiche = 'Contact importé: non modifiable!'; + }else{ + importedFiche = 'Contact importé (incomplet): modifiable partiellement!'; } } @@ -213,6 +218,7 @@ inputFacebookFiche.prototype.add = function(objectData){ // {5} Création physique // this.container.innerHTML += fFicheBuilder.build({ + importedfiche: importedFiche, name: associatedContact.username, countcall: associatedContact.countcall, countsms: associatedContact.countsms, diff --git a/js/includes/input-html-facebook-data.js b/js/includes/input-html-facebook-data.js index 7c2f921..4a2bd7c 100644 --- a/js/includes/input-html-facebook-data.js +++ b/js/includes/input-html-facebook-data.js @@ -180,6 +180,10 @@ fFicheBuilder.setLayout( "\t

@name

\n"+ + "\t
"+ + "\t\t@importedfiche"+ + "\t
"+ + "\t
\n"+ "\t\t\n"+ "\t\t   \n"+ diff --git a/js/includes/input-html-phone-data.js b/js/includes/input-html-phone-data.js index 295a42c..6ccc4ca 100644 --- a/js/includes/input-html-phone-data.js +++ b/js/includes/input-html-phone-data.js @@ -67,7 +67,7 @@ pMiniFicheBuilder.setLayout( // "\t
"+ "\t
\n"+ - "\t\t\n"+ + "\t\t\n"+ "\t\t   \n"+ "\t\t   \n"+ "\t
\n"+ diff --git a/js/includes/input-phone-fiche.js b/js/includes/input-phone-fiche.js index 892aae3..deffc68 100644 --- a/js/includes/input-phone-fiche.js +++ b/js/includes/input-phone-fiche.js @@ -332,109 +332,216 @@ inputPhoneFiche.prototype.storageToFields = function(){ inputPhoneFiche.prototype.sync = function(){ console.group('[phone.fiche] synchronisation'); - /* (1) Initialisation - ---------------------------------------------------------*/ - /* (1) On récupère tous les CONTACTS */ - var contacts = lsi.export('p_contacts'); + { /* (1) Initialisation + ---------------------------------------------------------*/ - /* (2) Contiendra les uids des fiches qui seront crées */ - var addedFicheUids = []; - var ficheData, contactData; + /* (1) On récupère tous les CONTACTS */ + var contacts = lsi.export('p_contacts'); + /* (2) Contiendra les uids des fiches qui seront crées */ + var addedFicheUids = []; + var ficheData, contactData, miniData; - - /* (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 < 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 ){ - - /* (1) On cherche un uid de fiche non existant dans l'intervalle [0;40[ */ - ficheUid = 0; - while( addedFicheUids.indexOf(ficheUid) > -1 && ficheUid < nbMaxFiche ) - 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('p_fiches', ficheUid); - - // Si la fiche n'existe pas, on la crée avec les valeurs par défaut - !ficheData && ( ficheData = this.defaultData ); - - /* (3) On met à jour la fiche ET on l'enregistre */ - ficheData.uid = ficheUid; - ficheData.contact = parseInt(uid); - lsi.set('p_fiches', ficheUid, ficheData); - - - /* (4) Si on a déja crée 20+20 fiches, on arrête */ - if( addedFicheUids.length >= nbMaxFiche ) - break; } - /* (3) Gestion des fiches dupliquées - ---------------------------------------------------------*/ - ficheData = lsi.export('p_fiches'); + { /* (2) Mise à jour en fonction des contacts APRÈS SAISIE + ---------------------------------------------------------*/ - for( var key in ficheData ){ + // 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 < 2*this.top_size ? lsi.keys('p_contacts').length : 2*this.top_size; - /* (1) On récupère le contact associé */ - var associatedContact = lsi.get('p_contacts', ficheData[key].contact); + /* (1) Pour chaque CONTACT, on met à jour/crée la FICHE associée */ + for( var uid in contacts ){ - // Si erreur, on passe au suivant - if( !associatedContact ) - continue; + /* (1) On cherche un uid de fiche non existant dans l'intervalle [0;40[ */ + ficheUid = 0; + while( addedFicheUids.indexOf(ficheUid) > -1 && ficheUid < nbMaxFiche ) + ficheUid++; - /* (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 + // On enregistre le nouvel UID dans les uid crées + addedFicheUids.push(ficheUid); - for( var i in ficheData ){ + /* (2) On récupère les informations de la FICHE (si elle existe) */ + var ficheData = lsi.get('p_fiches', ficheUid); - // si on est pas dans le bonne tranche, on passe au suivant - if( inCall && i < this.top_size || !inCall && i >= this.top_size ) - continue; + // Si la fiche n'existe pas, on la crée avec les valeurs par défaut + !ficheData && ( ficheData = this.defaultData ); - // on récupère le contact associé (si on est dans `call`, celui dans la tranche avec `sms` / et inversement) - contactData = lsi.get('p_contacts', ficheData[i].contact); + /* (3) On met à jour la fiche ET on l'enregistre */ + ficheData.uid = ficheUid; + ficheData.contact = parseInt(uid); + lsi.set('p_fiches', ficheUid, ficheData); - if( i == key || !contactData ) - continue; - // 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 ) + /* (4) Si on a déja crée 20+20 fiches, on arrête */ + if( addedFicheUids.length >= nbMaxFiche ) break; + } + + } + + + { /* (3) Gestion des liens entre mini-fiches et fiches + ---------------------------------------------------------*/ + var hasSameUsername, hasSameLink; + + ficheData = lsi.export('p_fiches'); + miniData = lsi.export('p_mini-fiches'); + + // Pour chaque fiche + for( var key in ficheData ){ + + /* (1) On récupère le contact associé */ + var associatedContact = lsi.get('p_contacts', ficheData[key].contact); + + // Si erreur, on passe au suivant + if( !associatedContact ) + continue; + + /* (3) On récupère la mini-fiche clone si existe */ + var clone = null; + + // Pour chaque mini-fiche + for( var i in miniData ){ + + // on récupère le contact associé (si on est dans `call`, celui dans la tranche avec `sms` / et inversement) + contactData = lsi.get('p_contacts', miniData[i].contact); + + if( !contactData ) + continue; + + // meme pseudo + hasSameUsername = contactData.username.length > 0 && associatedContact.username === contactData.username; + // meme lien de contact + 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 = miniData[i] ); + + if( clone !== null ) + break; + + } + + + /* (4) Si c'est le clone qui a été modifié en dernier, on ne fait rien */ + var fiche_ts = ( ficheData[key].hasOwnProperty('timestamp') ) ? ficheData[key].timestamp : 0; + var mini_ts = ( clone instanceof Object && clone.hasOwnProperty('timestamp') ) ? clone.timestamp : 0; + + if( clone === null ) + continue; + + + + /* (5.1) Si clone modifiée en dernier > On copie les données de la mini (CLONE) dans la FICHE */ + var copied; + if( mini_ts > fiche_ts ){ + + console.warn('copying mini#'+clone.uid+' to fiche#'+ficheData[key].uid); + copied = ficheData[key]; + copied.age = clone.age; + copied.sexe = clone.sexe; + copied.loc = clone.loc; + copied.reltype = clone.reltype; + copied.reltypeSpecial = clone.reltypeSpecial; + copied.timestamp = Date.now(); + lsi.set('p_fiches', copied.uid, copied); + + clone.timestamp = copied.timestamp; + lsi.set('p_mini-fiches', clone.uid, clone); + + /* (5.2) Si fiche modifiée en dernier > On copie les données de la FICHE dans la mini (CLONE) */ + }else if( fiche_ts > mini_ts ){ + + console.warn('copying fiche#'+ficheData[key].uid+' to mini#'+clone.uid); + copied = clone; + copied.age = ficheData[key].age; + copied.sexe = ficheData[key].sexe; + copied.loc = ficheData[key].loc; + copied.reltype = ficheData[key].reltype; + copied.reltypeSpecial = ficheData[key].reltypeSpecial; + copied.timestamp = Date.now(); + lsi.set('p_mini-fiches', copied.uid, copied); + + ficheData[key].timestamp = copied.timestamp; + lsi.set('p_fiches', ficheData[key].uid, ficheData[key]); + + } } + } - /* (4) Si c'est le clone qui a été modifié en dernier, on ne fait rien */ - var fiche_ts = ( ficheData[key].hasOwnProperty('timestamp') ) ? ficheData[key].timestamp : 0; - var clone_ts = ( clone instanceof Object && clone.hasOwnProperty('timestamp') ) ? clone.timestamp : 0; - if( clone === null || clone_ts > fiche_ts ) - continue; - /* (5) On copie les données de la FICHE dans le CLONE */ - var obj = ficheData[key]; - obj.uid = clone.uid; - obj.timestamp = Date.now(); - lsi.set('p_fiches', clone.uid, obj); + { /* (4) Gestion des fiches dupliquées + ---------------------------------------------------------*/ + ficheData = lsi.export('p_fiches'); + + for( var key in ficheData ){ + + /* (1) On récupère le contact associé */ + var associatedContact = lsi.get('p_contacts', ficheData[key].contact); + + // Si erreur, on passe au suivant + if( !associatedContact ) + continue; + + /* (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 ){ + + // si on est pas dans le bonne tranche, on passe au suivant + if( inCall && i < this.top_size || !inCall && i >= this.top_size ) + continue; + + // on récupère le contact associé (si on est dans `call`, celui dans la tranche avec `sms` / et inversement) + contactData = lsi.get('p_contacts', ficheData[i].contact); + + if( i == key || !contactData ) + continue; + + // meme pseudo + hasSameUsername = contactData.username.length > 0 && associatedContact.username === contactData.username; + // meme lien de contact + 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 */ + var fiche_ts = ( ficheData[key].hasOwnProperty('timestamp') ) ? ficheData[key].timestamp : 0; + var clone_ts = ( clone instanceof Object && clone.hasOwnProperty('timestamp') ) ? clone.timestamp : 0; + if( clone === null || clone_ts > fiche_ts ) + continue; + + console.warn('copying fiche#'+ficheData[key].uid+' to fiche#'+clone.uid); + + + /* (5) On copie les données de la FICHE dans le CLONE */ + var copied = ficheData[key]; + copied.uid = clone.uid; + copied.timestamp = Date.now(); + lsi.set('p_fiches', copied.uid, copied); + + ficheData[key].timestamp = copied.timestamp; + lsi.set('p_fiches', ficheData[key].uid, ficheData[key]); + + } } + + console.groupEnd(); }; diff --git a/js/includes/input-phone-mini.js b/js/includes/input-phone-mini.js index 8082c2a..e6c7ceb 100644 --- a/js/includes/input-phone-mini.js +++ b/js/includes/input-phone-mini.js @@ -65,6 +65,7 @@ inputPhoneMini.prototype.fieldsToStorage = function(){ var obj = { uid: parseInt(deflated.uid), + contact: parseInt(deflated.uid), sexe: deflated.sexe, // [0] Homme, [1] Femme, [2] Indéterminé age: deflated.age, studies: deflated.studies, @@ -292,7 +293,6 @@ inputPhoneMini.prototype.sync = function(){ var contactData = lsi.export('p_contacts'); var ficheData, miniData; - /* (2) On enregistre les contacts qui ne sont pas déja dans les FICHES */ ficheIndexes = lsi.keys('p_fiches'); @@ -343,6 +343,8 @@ inputPhoneMini.prototype.sync = function(){ } + + console.groupEnd(); }; diff --git a/js/includes/min/input-facebook-fiche.js b/js/includes/min/input-facebook-fiche.js index 1a29d30..c7364c2 100644 --- a/js/includes/min/input-facebook-fiche.js +++ b/js/includes/min/input-facebook-fiche.js @@ -4,13 +4,13 @@ reltypeSpecial:b.reltypeSpecial,city:b.city,quartier:b.quartier,cp:b.cp,loc:b.lo 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 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;cspan>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=0d||(d=a[f],d.uid=c.uid,d.timestamp= diff --git a/js/includes/min/input-html-facebook-data.js b/js/includes/min/input-html-facebook-data.js index fc8e5ad..78fae67 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 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"); +var fFicheBuilder=new HTMLBuilder;fFicheBuilder.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-html-phone-data.js b/js/includes/min/input-html-phone-data.js index 8f0675a..378318b 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 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 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 21238bd..8b92182 100644 --- a/js/includes/min/input-phone-fiche.js +++ b/js/includes/min/input-phone-fiche.js @@ -1,21 +1,23 @@ -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()}; +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:["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'),b=0;b FICHE UPDATE"),c.timestamp=Date.now());lsi.set("p_fiches",c.uid,c)}}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.freq=null!=a.freq?a.freq:this.defaultData.freq;a.connect=null!=a.connect?a.connect: -this.defaultData.connect;var c=lsi.get("p_contacts",a.contact);if(!1===c)return!1;var b="";isNaN(c.existing)||(b=lsi.get("p_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,b="Contact import\u00e9: non modifiable!"):b="Contact import\u00e9 (incomplet): modifiable partiellement!");this.container.innerHTML+=pFicheBuilder.build({importedfiche:b,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="phone"] 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="phone"] 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="phone"] 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="phone"] 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"]("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=0d||(d=a[f],d.uid=c.uid,d.timestamp=Date.now(),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|| +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.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="freq"]');for(b=0;binput[type="radio"][data-name="connect"]');for(b=0;b=f)break}a=lsi["export"]("p_fiches");f=lsi["export"]("p_mini-fiches"); +for(var e in a){var g=lsi.get("p_contacts",a[e].contact);if(g){var b=null,h;for(h in f)if(c=lsi.get("p_contacts",f[h].contact))if(d=0d?(console.warn("copying mini#"+b.uid+" to fiche#"+a[e].uid),d=a[e],d.age=b.age,d.sexe=b.sexe,d.loc=b.loc,d.reltype= +b.reltype,d.reltypeSpecial=b.reltypeSpecial,d.timestamp=Date.now(),lsi.set("p_fiches",d.uid,d),b.timestamp=d.timestamp,lsi.set("p_mini-fiches",b.uid,b)):d>g&&(console.warn("copying fiche#"+a[e].uid+" to mini#"+b.uid),d=b,d.age=a[e].age,d.sexe=a[e].sexe,d.loc=a[e].loc,d.reltype=a[e].reltype,d.reltypeSpecial=a[e].reltypeSpecial,d.timestamp=Date.now(),lsi.set("p_mini-fiches",d.uid,d),a[e].timestamp=d.timestamp,lsi.set("p_fiches",a[e].uid,a[e])))}}a=lsi["export"]("p_fiches");for(e in a)if(g=lsi.get("p_contacts", +a[e].contact)){b=null;f=parseInt(a[e].uid)=this.top_size)&&(c=lsi.get("p_contacts",a[h].contact),h!=e&&c&&(d=0d||(console.warn("copying fiche#"+a[e].uid+" to fiche#"+b.uid),d=a[e],d.uid=b.uid, +d.timestamp=Date.now(),lsi.set("p_fiches",d.uid,d),a[e].timestamp=d.timestamp,lsi.set("p_fiches",a[e].uid,a[e]))}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 b=$$('[data-sublink="phone"] #p_nav-fiche > span.active'),c=0;cAPPELS");20>f&&c'+(f%20+1)+"  ":(20==f&&(this.nav_container.innerHTML+='
   SMS   '),this.nav_container.innerHTML+=''+(f%20+1)+"")}for(var d in a)b=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[d].uid+'"]'),null!=b&&(!0===a[d].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()}; diff --git a/js/includes/min/input-phone-mini.js b/js/includes/min/input-phone-mini.js index 75dbcf7..121a0dc 100644 --- a/js/includes/min/input-phone-mini.js +++ b/js/includes/min/input-phone-mini.js @@ -1,6 +1,6 @@ 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.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),contact: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;c __ROOT__.'/config/database-local.json', - 'remote' => __ROOT__.'/config/database.json' - ]; + public static function config_path(){ + return [ + 'local' => __ROOT__.'/config/database-local.json', + 'remote' => __ROOT__.'/config/database.json' + ]; + } private static $pdo; private static $instance; @@ -49,9 +51,9 @@ // chargement de la configuration du server SQL if( !checkdnsrr($_SERVER['SERVER_NAME'], 'NS') ) - $conf = json_decode( file_get_contents(self::$config_path['local']), true ); + $conf = json_decode( file_get_contents(self::config_path()['local']), true ); else - $conf = json_decode( file_get_contents(self::$config_path['remote']), true ); + $conf = json_decode( file_get_contents(self::config_path()['remote']), true ); // creation de l'instance en fonction des parametres self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']); diff --git a/manager/MenuManager.php b/manager/MenuManager.php index 12428aa..5558efc 100644 --- a/manager/MenuManager.php +++ b/manager/MenuManager.php @@ -7,7 +7,7 @@ class MenuManager{ // Constantes - public static $config_path = __ROOT__.'/config/menu.json'; + public static function config_path(){ return __ROOT__.'/config/menu.json'; } // Attributs prives utiles (initialisation) @@ -27,7 +27,7 @@ /* [0] On met a jour la configuration =========================================================*/ // Categories specifiees - $this->categories = json_decode( file_get_contents(self::$config_path), true ); + $this->categories = json_decode( file_get_contents(self::config_path()), true ); // Gestion de l'erreur de parsage if( $this->categories == null ){ diff --git a/manager/ModuleRequest.php b/manager/ModuleRequest.php index 5dee49f..cb648bc 100755 --- a/manager/ModuleRequest.php +++ b/manager/ModuleRequest.php @@ -8,7 +8,7 @@ class ModuleRequest{ // Constantes - public static $config_path = __ROOT__.'/config/modules.json'; + public static function config_path(){ return __ROOT__.'/config/modules.json'; } public static $default_options = [ 'download' => false ]; @@ -48,7 +48,7 @@ /* [0] On met a jour la configuration =========================================================*/ // Modules specifies - $this->modules = json_decode( file_get_contents(self::$config_path), true ); + $this->modules = json_decode( file_get_contents(self::config_path()), true ); // Gestion de l'erreur de parsage if( $this->modules == null ){ diff --git a/manager/ORM/Table.php b/manager/ORM/Table.php index 995f129..06f0772 100644 --- a/manager/ORM/Table.php +++ b/manager/ORM/Table.php @@ -11,7 +11,7 @@ // CLASSE MAITRE class Table{ - private static $database = 'stefproject'; + private static $database = 'logauth'; /* RENVOIE LES DONNEES D'UNE TABLE @@ -44,7 +44,7 @@ /* (3) Si n'existe pas, on renvoie une erreur */ if( !in_array($table_name, $tables) ) - return null; + throw new \Exception('[*] Unknown table.'); /* (4) On enregistre les données */ $schema['table'] = $table_name; @@ -75,7 +75,7 @@ /* (3) Si on trouve rien, on envoie une erreur */ if( !is_array($columns) || count($columns) == 0 ) - return null; + throw new \Exception('[*] Cannot fetch columns'); /* (4) On enregistre les colonnes */ $schema['columns'] = $columns; @@ -86,6 +86,8 @@ =========================================================*/ /* (1) On récupère le texte du 'CREATE TABLE' */ $getCreateTable = Database::getPDO()->query("show create table ".$table_name); + if( is_bool($getCreateTable) ) + throw new \Exception('[*] Cannot fetch constrains'); $create_table = $getCreateTable->fetch()['Create Table']; /* (2) On découpte en lignes */ diff --git a/automate.php b/test/automate.php old mode 100755 new mode 100644 similarity index 100% rename from automate.php rename to test/automate.php diff --git a/view/input.php b/view/input.php index f2de6db..bbd1148 100755 --- a/view/input.php +++ b/view/input.php @@ -227,8 +227,6 @@ if( $getAllR->error == ManagerError::Success )
- -