diff --git a/public_html/js/includes/input-phone-fiche.js b/public_html/js/includes/input-phone-fiche.js
index b151268..4633370 100644
--- a/public_html/js/includes/input-phone-fiche.js
+++ b/public_html/js/includes/input-phone-fiche.js
@@ -61,6 +61,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
// {4} On récupère les données du LSI si elles existent //
var existingData = lsi.get('p_fiches', deflated.uid);
+
// Si n'existe pas, on passe au suivant
if( existingData === false )
continue;
@@ -68,8 +69,11 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
// {5} On récupère et met en forme les valeurs du deflater //
// Si le hash est le même, on ne fait rien
- if( existingData.hash != null && existingData.hash == deflatedHash || existingData.hash === 0 )
- return;
+ if( existingData != null && existingData.hash != null )
+ if( existingData.hash === 0 )
+ console.log('FICHE#'+existingData.uid+' UPDATED BUT NO TIMESTAMP UPDATE');
+ else if( existingData.hash == deflatedHash )
+ return;
var obj = {
@@ -100,18 +104,29 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
obj.valid = this.check(obj);
// On met à jour la date de modification, si on a pas qu'@uid de différent
- if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){
- console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
+ // {6.1} Si on doit mettre à jour //
+ if( existingData.hash !== 0 ){
+
+ // Si on a des modifications, on met à jour le `timestamp` //
+ if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){
+ console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
+
+ obj.timestamp = Date.now();
+ console.warn('> FICHE UPDATE ('+(obj.timestamp-input_ts)+')');
+
+ }
+
+ if( existingData['timestamp'] == undefined || !isNaN(existingData.timestamp) )
+ obj.timestamp = Date.now();
+
+ // {6.2} Initialisation du `timestamp` si pas encore fait //
+ }else if( existingData['timestamp'] == undefined || !isNaN(existingData.timestamp) )
+ obj.timestamp = 0;
- obj.timestamp = Date.now();
- console.warn('> FICHE UPDATE ('+(obj.timestamp-input_ts)+')');
- }else if( existingData['timestamp'] == undefined ){
- console.warn('fiche#'+obj.uid);
- obj.timestamp = Date.now();
- }
/* (7) On enregistre les données dans le 'localStorage' */
+ console.warn('saving fiche#'+obj.uid+' with timestamp of '+obj.timestam+' and hash of '+existingData.hash+' and now '+obj.hash);
lsi.set('p_fiches', obj.uid, obj);
}
@@ -482,9 +497,8 @@ inputPhoneFiche.prototype.sync = function(){
if( clone[i][0] == clone[last_index][0] ){
console.warn('copying fiche#'+clone[last_index][1].uid+' to fiche#'+clone[i][1].uid, clones_ts[last_index]-input_ts, clones_ts[i]-input_ts);
- copied = clone[last_index][1];
+ copied = cloneObject( clone[last_index][1] );
copied.uid = clone[i][1].uid;
- // copied.timestamp = Date.now();
copied.hash = 0
lsi.set('p_fiches', copied.uid, copied);
@@ -492,26 +506,25 @@ inputPhoneFiche.prototype.sync = function(){
}else if( clone[last_index][0] == 'fiche' ){
console.warn('copying fiche#'+clone[last_index][1].uid+' to mini#'+clone[i][1].uid, clones_ts[last_index]-input_ts, clones_ts[i]-input_ts);
- copied = clone[i][1];
+ copied = cloneObject( clone[i][1] );
copied.age = clone[last_index][1].age;
copied.sexe = clone[last_index][1].sexe;
copied.loc = clone[last_index][1].loc;
copied.reltype = clone[last_index][1].reltype;
copied.reltypeSpecial = clone[last_index][1].reltypeSpecial;
- copied.timestamp = Date.now();
+ copied.hash = 0;
lsi.set('p_mini-fiches', copied.uid, copied);
/* (5.3) mini vers fiche */
}else{
console.warn('copying mini#'+clone[last_index][1].uid+' to fiche#'+clone[i][1].uid, clones_ts[last_index]-input_ts, clones_ts[i]-input_ts);
- copied = clone[i][1];
+ copied = cloneObject( clone[i][1] );
copied.age = clone[last_index][1].age;
copied.sexe = clone[last_index][1].sexe;
copied.loc = clone[last_index][1].loc;
copied.reltype = clone[last_index][1].reltype;
copied.reltypeSpecial = clone[last_index][1].reltypeSpecial;
- // copied.timestamp = Date.now();
copied.hash = 0;
lsi.set('p_fiches', copied.uid, copied);
diff --git a/public_html/js/includes/input-phone-mini.js b/public_html/js/includes/input-phone-mini.js
index 70e51f9..eba9b6f 100644
--- a/public_html/js/includes/input-phone-mini.js
+++ b/public_html/js/includes/input-phone-mini.js
@@ -44,7 +44,6 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
var deflatedHash = crc32(JSON.stringify(deflated));
- // console.log(deflated);
// {4} On récupère les données du LSI si elles existent //
@@ -54,11 +53,13 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
if( existingData === false )
continue;
-
// {5} On récupère et met en forme les valeurs du deflater //
// Si le hash est le même, on ne fait rien
- if( existingData != null && existingData.hash != null && existingData.hash == deflatedHash )
- return;
+ if( existingData != null && existingData.hash != null )
+ if( existingData.hash === 0 )
+ console.log('MINI#'+existingData.uid+' UPDATED BUT NO TIMESTAMP UPDATE');
+ else if( existingData.hash == deflatedHash )
+ return;
var obj = {
@@ -78,17 +79,28 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
obj.valid = this.check(obj);
// On met à jour la date de modification, si on a pas qu'@uid de différent
- if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){
- console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
+ // {8.1} Si on doit mettre à jour //
+ if( existingData.hash !== 0 ){
- obj.timestamp = Date.now();
- console.warn('> MINI UPDATE ('+(obj.timestamp-input_ts)+')');
+ // Si on a des modifications, on met à jour le `timestamp` //
+ if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){
+ console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
- }else if( existingData['timestamp'] == undefined )
- obj.timestamp = Date.now();
+ obj.timestamp = Date.now();
+ console.warn('> MINI UPDATE ('+(obj.timestamp-input_ts)+')');
+
+ }
+
+ if( existingData['timestamp'] == undefined || !isNaN(existingData.timestamp) )
+ obj.timestamp = Date.now();
+
+ // {6.2} Initialisation du `timestamp` si pas encore fait //
+ }else if( existingData['timestamp'] == undefined || !isNaN(existingData.timestamp) )
+ obj.timestamp = 0;
/* (9) On enregistre les données dans le 'localStorage' */
+ console.warn('saving mini#'+obj.uid+' with timestamp of '+obj.timestam+' and hash of '+existingData.hash+' and now '+obj.hash);
lsi.set('p_mini-fiches', obj.uid, obj);
}
diff --git a/public_html/js/includes/min/input-phone-fiche.js b/public_html/js/includes/min/input-phone-fiche.js
index 4860f9f..1efbe86 100644
--- a/public_html/js/includes/min/input-phone-fiche.js
+++ b/public_html/js/includes/min/input-phone-fiche.js
@@ -1,7 +1,7 @@
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-input_ts)+")")):void 0==h.timestamp&&(console.warn("fiche#"+b.uid),b.timestamp=
-Date.now());lsi.set("p_fiches",b.uid,b)}}console.groupEnd()};
+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-
+input_ts)+")")),void 0!=g.timestamp&&isNaN(g.timestamp)||(b.timestamp=Date.now())):void 0!=g.timestamp&&isNaN(g.timestamp)||(b.timestamp=0);console.warn("saving fiche#"+b.uid+" with timestamp of "+b.timestam+" and hash of "+g.hash+" and now "+b.hash);lsi.set("p_fiches",b.uid,b)}}console.groupEnd()};
inputPhoneFiche.prototype.add=function(a){if(null==a.uid||isNaN(a.uid)||null==a.contact||isNaN(a.contact))return!1;a.city=null!=a.city?a.city:this.defaultData.city;a.quartier=null!=a.quartier?a.quartier:this.defaultData.quartier;a.cp=null!=a.cp?a.cp:this.defaultData.cp;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:this.defaultData.duration[1];a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;
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:
@@ -13,12 +13,12 @@ a.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]');for(c=0;cinput[type="radio"][data-name="loc"]');for(c=0;cinput[type="radio"][data-name="context"]');for(c=0;cinput[type="radio"][data-name="freq"]');for(c=0;cinput[type="radio"][data-name="connect"]');for(c=0;c=g)break}var d,e,k,g={};h={};var a=lsi["export"]("p_fiches"),
-c=lsi["export"]("p_mini-fiches"),l;for(l in a)if(d=lsi.get("p_contacts",a[l].contact),!(0 span.active'),b=0;bAPPELS");20>g&&b'+(g%20+1)+" ":(20==g&&(this.nav_container.innerHTML+='
SMS '),this.nav_container.innerHTML+=''+(g%20+1)+"")}for(var h in a)c=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[h].uid+'"]'),null!=c&&(!0===a[h].valid?c.addClass("done"):c.remClass("done"));this.nav($('[data-sublink="phone"] #p_nav-fiche [data-n="'+this.selected+'"]'))};
+inputPhoneFiche.prototype.sync=function(){console.group("[phone.fiche] synchronisation");var a=lsi["export"]("p_contacts"),c=[],b,h=lsi.keys("p_contacts").length<2*this.top_size?lsi.keys("p_contacts").length:2*this.top_size,g;for(g in a){for(ficheUid=0;-1=h)break}var d,e,k,h={};g={};var a=lsi["export"]("p_fiches"),
+c=lsi["export"]("p_mini-fiches"),l;for(l in a)if(d=lsi.get("p_contacts",a[l].contact),!(0 span.active'),b=0;bAPPELS");20>h&&b'+(h%20+1)+" ":(20==h&&(this.nav_container.innerHTML+='
SMS '),this.nav_container.innerHTML+=''+(h%20+1)+"")}for(var g in a)c=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[g].uid+'"]'),null!=c&&(!0===a[g].valid?c.addClass("done"):c.remClass("done"));this.nav($('[data-sublink="phone"] #p_nav-fiche [data-n="'+this.selected+'"]'))};
inputPhoneFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length||
"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputPhoneFiche.prototype.attach=function(a){console.group("[phone.fiche] attaching events");lsi.createDataset("p_fiches");this.storageToFields();this.handler=a;this.nav_container.addEventListener("click",function(a){this.nav(a.target);this.handler(a.target)}.bind(this),!1);console.groupEnd()};
diff --git a/public_html/js/includes/min/input-phone-mini.js b/public_html/js/includes/min/input-phone-mini.js
index b7e7a64..80db3b5 100644
--- a/public_html/js/includes/min/input-phone-mini.js
+++ b/public_html/js/includes/min/input-phone-mini.js
@@ -1,6 +1,7 @@
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.timestamp-input_ts)+")")):void 0==d.timestamp&&(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.timestamp-input_ts)+")")),void 0!=d.timestamp&&isNaN(d.timestamp)||(b.timestamp=Date.now())):void 0!=d.timestamp&&isNaN(d.timestamp)||(b.timestamp=0);console.warn("saving mini#"+
+b.uid+" with timestamp of "+b.timestam+" and hash of "+d.hash+" and now "+b.hash);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