From 0d38d1c6848ab75165f06ff517c7b2e153e3bc56 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 20 Oct 2016 14:21:46 +0200 Subject: [PATCH] =?UTF-8?q?Gestion=20du=20debug=20pour=20r=C3=A9gler=20le?= =?UTF-8?q?=20pb=20de=20timestamp=20pas=20bien=20mis=20=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public_html/js/includes/input-phone-fiche.js | 45 ++++++++++++------- public_html/js/includes/input-phone-mini.js | 32 ++++++++----- .../js/includes/min/input-phone-fiche.js | 20 ++++----- .../js/includes/min/input-phone-mini.js | 5 ++- public_html/js/lib/min/reset.js | 2 +- public_html/js/lib/reset.js | 6 +-- 6 files changed, 68 insertions(+), 42 deletions(-) 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