Correction arborescence + avancement feature

This commit is contained in:
xdrm-brackets 2016-10-18 13:09:39 +02:00
parent c63d025971
commit 0b6702222f
7 changed files with 160 additions and 137 deletions

View File

@ -2,7 +2,7 @@
require_once __ROOT__.'/manager/autoloader.php'; require_once __ROOT__.'/manager/autoloader.php';
use \router\Router; use \manager\router\Router;
use \manager\ModuleRequest; use \manager\ModuleRequest;
use \manager\ModuleResponse; use \manager\ModuleResponse;
use \manager\ManagerError; use \manager\ManagerError;

View File

@ -1,8 +0,0 @@
var DOM,pageManager,api,Notification,navSubMenu=function(a){var c=$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+a+'"]'):b,b=null==b?$("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub > span[data-sublink]"):b;if(null==b)return!1;null!=c&&c.remClass("active");c=$$("#CONTAINER > section[data-sublink].active");
for(a=0;a<c.length;a++)c[a].remClass("active");if(null!=b)for(b.addClass("active"),c=$$('#CONTAINER > section[data-sublink="'+b.getData("sublink")+'"]'),a=0;a<c.length;a++)c[a].addClass("active");if(!b.getData("sublink"))return!1;a=pageManager.vars[0]!=b.getData("sublink");pageManager.vars[0]=b.getData("sublink");a&&pageManager.updateURL()},navMenu=function(a){var c=$('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.page+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$('#WRAPPER > #MENU-SIDE > span[data-link="'+
a+'"]'):b,b=null==b?$('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]'):b;if(null==b)return!1;null!=c&&c.remClass("active");null!=b&&b.addClass("active");b.getData("link")&&(DOM.HEADER.addClass("loading"),pageManager.setPage(b.getData("link")),pageManager.activeXHR.addEventListener("loadend",function(){1<=pageManager.vars.length&&null!=$('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]')?navSubMenu(pageManager.vars[0]):navSubMenu(null);var a=$("#MENU-SIDE > span[data-link="+
pageManager.page+"] + div.sub");null!=a&&a.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("sublink");)a=a.parentNode;a.getData("sublink")&&navSubMenu(a)},!1);DOM.HEADER.remClass("loading")},!1))};DOM={WRAPPER:$("body > #WRAPPER"),HEADER:$("body > #WRAPPER > #HEADER"),MENUSIDE:$("body > #WRAPPER > #MENU-SIDE"),CONTAINER:$("body > #WRAPPER > #CONTAINER")};api=new APIClass("/api/");Notification=new NotificationClass($("#notification-container"));
Notification.defaultTimeout=4E3;
Notification.errorCodes={"-1":"Erreur de r\u00e9seau, veuillez recharger la page et r\u00e9essayer",0:"Erreur interne",1:"Erreur interne",2:"Erreur interne",3:"Le fichier est introuvable",4:"Erreur interne",5:"Erreur interne",6:"Erreur interne",7:"Erreur interne",8:"Erreur interne",9:"Certaines donn\u00e9es sont manquantes",10:"Erreur interne",11:"Erreur interne",12:"Erreur interne",13:"Erreur interne",14:"Erreur interne",15:"Erreur interne",16:"Vous n'avez pas la permission d'effectuer cette action",17:"Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9",
18:"Le fichier est invalide (format incorrect)"};lsi.setStorage(localStorage);DOM.MENUSIDE.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("link");)a=a.parentNode;a.getData("link")&&navMenu(a.getData("link"))},!1);function reload(){navMenu(pageManager.page)}var LOGIN={show:document.getElementById("user-data"),hide:document.getElementById("login-close"),page:document.getElementById("LOGIN")};
LOGIN.show.addEventListener("click",function(a){LOGIN.page.className="active"},!1);LOGIN.hide.addEventListener("click",function(a){LOGIN.page.className=""},!1);api.send({path:"download/menu"},function(a){if(0==a.ModuleError){pagelist=[];for(var c=0;c<a.menu.length;c++)pagelist.push(a.menu[c].attributes["data-link"]);pageManager=new pageManagerClass;pageManager.setPage(null,"/view",DOM.CONTAINER,pagelist,null);navMenu(pageManager.page)}});

View File

@ -104,9 +104,12 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) ); console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
console.warn('> FICHE UPDATE'); console.warn('> FICHE UPDATE');
// console.warn('fiche-ts', existingData.timestamp, obj.timestamp);
obj.timestamp = Date.now(); obj.timestamp = Date.now();
}else if( existingData['timestamp'] == undefined ) }else if( existingData['timestamp'] == undefined ){
// console.warn('fiche-refresh');
obj.timestamp = this.defaultData.timestamp; obj.timestamp = this.defaultData.timestamp;
}
/* (7) On enregistre les données dans le 'localStorage' */ /* (7) On enregistre les données dans le 'localStorage' */
lsi.set('p_fiches', obj.uid, obj); lsi.set('p_fiches', obj.uid, obj);
@ -341,7 +344,7 @@ inputPhoneFiche.prototype.sync = function(){
/* (2) Contiendra les uids des fiches qui seront crées */ /* (2) Contiendra les uids des fiches qui seront crées */
var addedFicheUids = []; var addedFicheUids = [];
var ficheData, contactData, miniData; var ficheData, contactData, miniData, i;
} }
@ -390,113 +393,21 @@ inputPhoneFiche.prototype.sync = function(){
ficheData = lsi.export('p_fiches'); ficheData = lsi.export('p_fiches');
miniData = lsi.export('p_mini-fiches'); miniData = lsi.export('p_mini-fiches');
// Pour chaque fiche // Pour chaque mini-fiche
for( var key in ficheData ){ for( var key in miniData ){
/* (1) On récupère le contact associé */ /* (1) On récupère le contact associé */
var associatedContact = lsi.get('p_contacts', ficheData[key].contact); var associatedContact = lsi.get('p_contacts', miniData[key].contact);
// Si erreur, on passe au suivant // Si erreur, on passe au suivant
if( !associatedContact ) if( !associatedContact )
continue; continue;
/* (3) On récupère la mini-fiche clone si existe */ /* (3) On récupère les/la fiche(s) clone(s) si existe */
var clone = null; var clone = [];
// Pour chaque mini-fiche // Pour chaque fiche
for( var i in miniData ){ for( i in ficheData ){
// 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, mini_ts-global_start_timestamp, fiche_ts-global_start_timestamp);
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, fiche_ts-global_start_timestamp, mini_ts-global_start_timestamp);
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) 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) // 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); contactData = lsi.get('p_contacts', ficheData[i].contact);
@ -510,37 +421,155 @@ inputPhoneFiche.prototype.sync = function(){
hasSameLink = !isNaN(contactData.existing) && associatedContact.existing === contactData.existing; 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) // si ont le même contact, alors on enregistre le clone (sauf si la même fiche)
( hasSameUsername || hasSameLink ) && ( clone = ficheData[i] ); ( hasSameUsername || hasSameLink ) && clone.push( ficheData[i] );
if( clone !== null )
break;
} }
// si aucun clone, on quitte
/* (4) Si c'est le clone qui a été modifié en dernier, on ne fait rien */ if( clone.length === 0 )
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; continue;
console.warn('copying fiche#'+ficheData[key].uid+' to fiche#'+clone.uid, fiche_ts-global_start_timestamp, clone_ts-global_start_timestamp);
/* (4) On récupère le modèle (dernier modifié) */
var mini_ts = ( miniData[key].hasOwnProperty('timestamp') ) ? miniData[key].timestamp : 0;
var clones_ts = []; // contiendra les temps des clones
var mini_update = true; // true si dernier modifié
for( i in clone ){
clones_ts[i] = clone[i].hasOwnProperty('timestamp') ? clone[i].timestamp : 0;
mini_update = mini_update && mini_ts > clones_ts[i];
}
var last_index = clones_ts.indexOf( Math.max.apply(Math, clones_ts) );
/* (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]);
/* (5.1) Si mini est le modèle -> On copie les données de MINI dans les CLONES */
var copied;
if( mini_update ){
for( i in clone ){
console.warn('copying mini#'+miniData[key].uid+' to fiche#'+clone[i].uid, mini_ts-global_start_timestamp, clones_ts[i]-global_start_timestamp);
copied = clone[i];
copied.age = miniData[key].age;
copied.sexe = miniData[key].sexe;
copied.loc = miniData[key].loc;
copied.reltype = miniData[key].reltype;
copied.reltypeSpecial = miniData[key].reltypeSpecial;
// copied.timestamp = Date.now();
console.warn(copied);
lsi.set('p_fiches', copied.uid, copied);
}
// clone.timestamp = copied.timestamp+1;
// lsi.set('p_mini-fiches', clone.uid, clone);
/* (5.2) Si un clone est le modèle > On copie les données de la FICHE dans la fiche (autres clones) et dans MINI */
}else if( last_index > -1 ){
// {1} On copie dans MINI //
console.warn('copying fiche#'+clone[last_index].uid+' to mini#'+miniData[key].uid, clones_ts[last_index]-global_start_timestamp, mini_ts-global_start_timestamp);
copied = miniData[key];
copied.age = clone[last_index].age;
copied.sexe = clone[last_index].sexe;
copied.loc = clone[last_index].loc;
copied.reltype = clone[last_index].reltype;
copied.reltypeSpecial = clone[last_index].reltypeSpecial;
// copied.timestamp = Date.now();
lsi.set('p_mini-fiches', copied.uid, copied);
// {2} On copie dans les autres fiches //
for( i in clone ){
// sauf le modele
if( i == last_index ) continue;
console.warn('copying fiche#'+clone[last_index].uid+' to fiche#'+clone[i].uid, clones_ts[last_index]-global_start_timestamp, clones_ts[i]-global_start_timestamp);
copied = clone[last_index];
copied.uid = clone[i].uid;
// copied.timestamp = Date.now();
lsi.set('p_fiches', copied.uid, copied);
}
}
} }
} }
// { /* (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, fiche_ts-global_start_timestamp, clone_ts-global_start_timestamp);
//
//
// /* (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(); console.groupEnd();

View File

@ -82,11 +82,14 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
// On met à jour la date de modification, si on a pas qu'@uid de différent // 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 ){ if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){
console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) ); console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) );
console.warn('> MINI UPDATE'); console.warn('> MINI UPDATE');
// console.warn('mini-ts', existingData.timestamp, obj.timestamp);
obj.timestamp = Date.now(); obj.timestamp = Date.now();
}else if( existingData['timestamp'] == undefined )
}else if( existingData['timestamp'] == undefined ){
// console.warn('mini-refresh');
obj.timestamp = this.defaultData.timestamp; obj.timestamp = this.defaultData.timestamp;
}
/* (9) On enregistre les données dans le 'localStorage' */ /* (9) On enregistre les données dans le 'localStorage' */

View File

@ -12,11 +12,10 @@ a.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]');for(c=0;c<b.length;c++)
a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(c=0;c<b.length;c++)b[c].value==a.loc?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="context"]');for(c=0;c<b.length;c++)b[c].value==a.context?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+ a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(c=0;c<b.length;c++)b[c].value==a.loc?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="context"]');for(c=0;c<b.length;c++)b[c].value==a.context?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+
a.uid+'"] ~ h5>input[type="radio"][data-name="freq"]');for(c=0;c<b.length;c++)-1<a.freq.indexOf(b[c].value)?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="connect"]');for(c=0;c<b.length;c++)-1<a.connect.indexOf(b[c].value)?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked")}; a.uid+'"] ~ h5>input[type="radio"][data-name="freq"]');for(c=0;c<b.length;c++)-1<a.freq.indexOf(b[c].value)?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('[data-sublink="phone"] article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="connect"]');for(c=0;c<b.length;c++)-1<a.connect.indexOf(b[c].value)?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked")};
inputPhoneFiche.prototype.storageToFields=function(){console.group("[phone.fiche] storage to fields");var a=lsi["export"]("p_fiches");this.container.innerHTML="";for(var c in a)a[c].uid==this.selected&&this.add(a[c]);this.updateNavBar();console.groupEnd()}; inputPhoneFiche.prototype.storageToFields=function(){console.group("[phone.fiche] storage to fields");var a=lsi["export"]("p_fiches");this.container.innerHTML="";for(var c in a)a[c].uid==this.selected&&this.add(a[c]);this.updateNavBar();console.groupEnd()};
inputPhoneFiche.prototype.sync=function(){console.group("[phone.fiche] synchronisation");var a=lsi["export"]("p_contacts"),c=[],b,e;e=lsi.keys("p_contacts").length<2*this.top_size?lsi.keys("p_contacts").length:2*this.top_size;for(var d in a){for(ficheUid=0;-1<c.indexOf(ficheUid)&&ficheUid<e;)ficheUid++;c.push(ficheUid);a=lsi.get("p_fiches",ficheUid);!a&&(a=this.defaultData);a.uid=ficheUid;a.contact=parseInt(d);lsi.set("p_fiches",ficheUid,a);if(c.length>=e)break}a=lsi["export"]("p_fiches");e=lsi["export"]("p_mini-fiches"); inputPhoneFiche.prototype.sync=function(){console.group("[phone.fiche] synchronisation");var a=lsi["export"]("p_contacts"),c=[],b,e,d=lsi.keys("p_contacts").length<2*this.top_size?lsi.keys("p_contacts").length:2*this.top_size,k;for(k in a){for(ficheUid=0;-1<c.indexOf(ficheUid)&&ficheUid<d;)ficheUid++;c.push(ficheUid);a=lsi.get("p_fiches",ficheUid);!a&&(a=this.defaultData);a.uid=ficheUid;a.contact=parseInt(k);lsi.set("p_fiches",ficheUid,a);if(c.length>=d)break}var a=lsi["export"]("p_fiches"),c=lsi["export"]("p_mini-fiches"),
for(var f in a){var g=lsi.get("p_contacts",a[f].contact);if(g){var c=null,h;for(h in e)if(b=lsi.get("p_contacts",e[h].contact))if(d=0<b.username.length&&g.username===b.username,b=!isNaN(b.existing)&&g.existing===b.existing,(d||b)&&(c=e[h]),null!==c)break;d=a[f].hasOwnProperty("timestamp")?a[f].timestamp:0;g=c instanceof Object&&c.hasOwnProperty("timestamp")?c.timestamp:0;null!==c&&(g>d?(console.warn("copying mini#"+c.uid+" to fiche#"+a[f].uid,g-global_start_timestamp,d-global_start_timestamp),d=a[f], g;for(g in c){var h=lsi.get("p_contacts",c[g].contact);if(h){d=[];for(e in a)b=lsi.get("p_contacts",a[e].contact),e!=g&&b&&(k=0<b.username.length&&h.username===b.username,b=!isNaN(b.existing)&&h.existing===b.existing,(k||b)&&d.push(a[e]));if(0!==d.length){k=c[g].hasOwnProperty("timestamp")?c[g].timestamp:0;var h=[],f=!0;for(e in d)h[e]=d[e].hasOwnProperty("timestamp")?d[e].timestamp:0,f=f&&k>h[e];b=h.indexOf(Math.max.apply(Math,h));if(f)for(e in d)console.warn("copying mini#"+c[g].uid+" to fiche#"+
d.age=c.age,d.sexe=c.sexe,d.loc=c.loc,d.reltype=c.reltype,d.reltypeSpecial=c.reltypeSpecial,d.timestamp=Date.now(),lsi.set("p_fiches",d.uid,d)):d>g&&(console.warn("copying fiche#"+a[f].uid+" to mini#"+c.uid,d-global_start_timestamp,g-global_start_timestamp),d=c,d.age=a[f].age,d.sexe=a[f].sexe,d.loc=a[f].loc,d.reltype=a[f].reltype,d.reltypeSpecial=a[f].reltypeSpecial,d.timestamp=Date.now(),lsi.set("p_mini-fiches",d.uid,d)))}}a=lsi["export"]("p_fiches");for(f in a)if(g=lsi.get("p_contacts",a[f].contact)){c= d[e].uid,k-global_start_timestamp,h[e]-global_start_timestamp),f=d[e],f.age=c[g].age,f.sexe=c[g].sexe,f.loc=c[g].loc,f.reltype=c[g].reltype,f.reltypeSpecial=c[g].reltypeSpecial,console.warn(f),lsi.set("p_fiches",f.uid,f);else if(-1<b)for(e in console.warn("copying fiche#"+d[b].uid+" to mini#"+c[g].uid,h[b]-global_start_timestamp,k-global_start_timestamp),f=c[g],f.age=d[b].age,f.sexe=d[b].sexe,f.loc=d[b].loc,f.reltype=d[b].reltype,f.reltypeSpecial=d[b].reltypeSpecial,lsi.set("p_mini-fiches",f.uid,
null;e=parseInt(a[f].uid)<this.top_size;for(h in a)if(!(e&&h<this.top_size||!e&&h>=this.top_size)&&(b=lsi.get("p_contacts",a[h].contact),h!=f&&b&&(d=0<b.username.length&&g.username===b.username,b=!isNaN(b.existing)&&g.existing===b.existing,(d||b)&&(c=a[h]),null!==c)))break;d=a[f].hasOwnProperty("timestamp")?a[f].timestamp:0;e=c instanceof Object&&c.hasOwnProperty("timestamp")?c.timestamp:0;null===c||e>d||(console.warn("copying fiche#"+a[f].uid+" to fiche#"+c.uid,d-global_start_timestamp,e-global_start_timestamp), f),d)e!=b&&(console.warn("copying fiche#"+d[b].uid+" to fiche#"+d[e].uid,h[b]-global_start_timestamp,h[e]-global_start_timestamp),f=d[b],f.uid=d[e].uid,lsi.set("p_fiches",f.uid,f))}}}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;b<c.length;b++)c[b].remClass("active");a.addClass("active");this.selected=parseInt(a.getData("n"))};
d=a[f],d.uid=c.uid,lsi.set("p_fiches",d.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;b<c.length;b++)c[b].remClass("active");a.addClass("active");this.selected=parseInt(a.getData("n"))};
inputPhoneFiche.prototype.updateNavBar=function(){var a=lsi["export"]("p_fiches");this.nav_container.innerHTML="";for(var c=Object.keys(a),b=0;b<c.length;b++){var e=parseInt(c[b]);0==e&&(this.nav_container.innerHTML+="<span>APPELS</span>");20>e&&b<c.length-1&&20<=c[b+1]?this.nav_container.innerHTML+='<span data-n="'+e+'" class="lc">'+(e%20+1)+"</span>&nbsp;&nbsp;":(20==e&&(this.nav_container.innerHTML+='<br><span class="fc">&nbsp;&nbsp; SMS &nbsp;&nbsp;</span>'),this.nav_container.innerHTML+='<span data-n="'+ inputPhoneFiche.prototype.updateNavBar=function(){var a=lsi["export"]("p_fiches");this.nav_container.innerHTML="";for(var c=Object.keys(a),b=0;b<c.length;b++){var e=parseInt(c[b]);0==e&&(this.nav_container.innerHTML+="<span>APPELS</span>");20>e&&b<c.length-1&&20<=c[b+1]?this.nav_container.innerHTML+='<span data-n="'+e+'" class="lc">'+(e%20+1)+"</span>&nbsp;&nbsp;":(20==e&&(this.nav_container.innerHTML+='<br><span class="fc">&nbsp;&nbsp; SMS &nbsp;&nbsp;</span>'),this.nav_container.innerHTML+='<span data-n="'+
e+'">'+(e%20+1)+"</span>")}for(var d in a)c=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[d].uid+'"]'),null!=c&&(!0===a[d].valid?c.addClass("done"):c.remClass("done"));this.nav($('[data-sublink="phone"] #p_nav-fiche [data-n="'+this.selected+'"]'))}; e+'">'+(e%20+1)+"</span>")}for(var d in a)c=$('[data-sublink="phone"] #p_nav-fiche [data-n="'+a[d].uid+'"]'),null!=c&&(!0===a[d].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]))&&0<a.duration[0].length||isNaN(parseInt(a.duration[1]))&&0<a.duration[1].length||0==a.duration[0].length+a.duration[1].length||"."==a.job||"."==a.studies||"."==a.age||""==a.sexe||""==a.famsit||""==a.reltype||""==a.loc||""==a.context)return!1;for(var c=0;c<a.freq.length;c++)if(""==a.freq[c])return!1;for(c=0;c<a.connect.length;c++)if(""==a.connect[c])return!1;return"10"==a.reltype&&2>a.reltypeSpecial.length|| inputPhoneFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0<a.duration[0].length||isNaN(parseInt(a.duration[1]))&&0<a.duration[1].length||0==a.duration[0].length+a.duration[1].length||"."==a.job||"."==a.studies||"."==a.age||""==a.sexe||""==a.famsit||""==a.reltype||""==a.loc||""==a.context)return!1;for(var c=0;c<a.freq.length;c++)if(""==a.freq[c])return!1;for(c=0;c<a.connect.length;c++)if(""==a.connect[c])return!1;return"10"==a.reltype&&2>a.reltypeSpecial.length||

4
router/Route.php → manager/router/Route.php Executable file → Normal file
View File

@ -3,7 +3,7 @@
/* Classe de gestion de route (match) */ /* Classe de gestion de route (match) */
/**************************************/ /**************************************/
namespace router; namespace manager\router;
class Route{ class Route{
@ -60,4 +60,4 @@ class Route{
} }
?> ?>

2
router/Router.php → manager/router/Router.php Executable file → Normal file
View File

@ -3,7 +3,7 @@
/* Classe de gestion des routes (URL/ressources) */ /* Classe de gestion des routes (URL/ressources) */
/*************************************************/ /*************************************************/
namespace router; namespace manager\router;
class Router{ class Router{
// ATTRIBUTS // ATTRIBUTS