Optimisation de input/phone `v1` et `v2`, ne fait plus crasher mais très lent au chargement
This commit is contained in:
parent
5f8968d580
commit
76897f88d8
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -505,12 +505,12 @@
|
||||||
|
|
||||||
|
|
||||||
/* (14) Gestion de l'affichage des MINI fiches et des FICHES relations */
|
/* (14) Gestion de l'affichage des MINI fiches et des FICHES relations */
|
||||||
& article > article{
|
// & article > article{
|
||||||
display: none;
|
// display: none;
|
||||||
|
//
|
||||||
&.active{
|
// &.active{
|
||||||
display: block;
|
// display: block;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,21 +1,22 @@
|
||||||
function inputPhoneFiche(a,c){this.container=a;this.nav_container=c}
|
function inputPhoneFiche(a,b){this.container=a;this.nav_container=b}
|
||||||
inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",famsit:[{status:!0},{status:!1},{status:!1}],studies:".",reltype:[{status:!0},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],reltypeSpecial:"",city:"",loc:[{status:!0},{status:!1},{status:!1},{status:!1}],duration:["",""],context:[{status:!0},{status:!1},
|
inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",famsit:[{status:!0},{status:!1},{status:!1}],studies:".",reltype:[{status:!0},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],reltypeSpecial:"",city:"",loc:[{status:!0},{status:!1},{status:!1},{status:!1}],duration:["",""],context:[{status:!0},{status:!1},
|
||||||
{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],contextSpecial:["","",""],freq:[[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}]],connect:[[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},
|
{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1},{status:!1}],contextSpecial:["","",""],freq:[[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}],[{status:!0},{status:!1},{status:!1},{status:!1}]],connect:[[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},
|
||||||
{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}]],connectSpecial:["",""]}};
|
{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}],[{status:!1},{status:!0}]],connectSpecial:["",""]}};
|
||||||
inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("FICHE: FIELDS TO STORAGE");for(var a=$$("article.relation-panel .fiche-relation"),c=0;c<a.length;c++){var b=(new FormDeflater(a[c],["input","select"],["data-name"])).deflate();console.log(b);var d=lsi.get("fiches","form"+b.uid.value);!1===d&&(d.username="inconnu",d.firstname="inconnu",d.lastname="inconnu");b={uid:b.uid.value,firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:b.sexe,age:b.age.value,job:b.job.value,famsit:b.famsit,
|
inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("FICHE: FIELDS TO STORAGE");for(var a=$$("article.relation-panel .fiche-relation"),b=0;b<a.length;b++){var c=(new FormDeflater(a[b],["input","select"],["data-name"])).deflate();console.log(c);var d=lsi.get("fiches","form"+c.uid.value);!1===d&&(d.username="inconnu",d.firstname="inconnu",d.lastname="inconnu");c={uid:c.uid.value,firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:c.sexe,age:c.age.value,job:c.job.value,famsit:c.famsit,
|
||||||
studies:b.studies.value,reltype:b.reltype,reltypeSpecial:b.reltypeSpecial.value,city:b.city.value,loc:b.loc,duration:[b.duration[0].value,b.duration[1].value],context:b.context,contextSpecial:[b.contextSpecial[0].value,b.contextSpecial[1].value,b.contextSpecial[2].value],freq:[b.freq0,b.freq1,b.freq2,b.freq3,b.freq4],connect:[b.connect0,b.connect1,b.connect2,b.connect3,b.connect4,b.connect5],connectSpecial:[b.connectSpecial[0].value,b.connectSpecial[1].value]};lsi.set("fiches","form"+b.uid,b)}};
|
studies:c.studies.value,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial.value,city:c.city.value,loc:c.loc,duration:[c.duration[0].value,c.duration[1].value],context:c.context,contextSpecial:[c.contextSpecial[0].value,c.contextSpecial[1].value,c.contextSpecial[2].value],freq:[c.freq0,c.freq1,c.freq2,c.freq3,c.freq4],connect:[c.connect0,c.connect1,c.connect2,c.connect3,c.connect4,c.connect5],connectSpecial:[c.connectSpecial[0].value,c.connectSpecial[1].value]};c.valid=this.check(c);lsi.set("fiches",
|
||||||
|
"form"+c.uid,c)}};
|
||||||
inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.city=null!=a.city?a.city:this.defaultData.city;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:
|
inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.city=null!=a.city?a.city:this.defaultData.city;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];
|
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.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:
|
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.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;this.container.innerHTML+=ficheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age,city:a.city,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]});var c=$('article.fiche-relation input[data-name="uid"][value="'+
|
this.defaultData.freq;a.connect=null!=a.connect?a.connect:this.defaultData.connect;this.container.innerHTML+=ficheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age,city:a.city,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]});var b=$('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=$('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");for(var b=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),c=0;c<b.length&&c<a.sexe.length;c++)a.sexe[c].status?b[c].setAttribute("checked",
|
a.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+a.job+'"]');null!=b&&b.setAttribute("selected","selected");b=$('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");for(var c=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;b<c.length&&b<a.sexe.length;b++)a.sexe[b].status?c[b].setAttribute("checked",
|
||||||
"checked"):b[c].removeAttribute("checked");b=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]');for(c=0;c<b.length&&c<a.famsit.length;c++)a.famsit[c].status?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]');for(c=0;c<b.length&&c<a.reltype.length;c++)a.reltype[c].status?b[c].setAttribute("checked",
|
"checked"):c[b].removeAttribute("checked");c=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]');for(b=0;b<c.length&&b<a.famsit.length;b++)a.famsit[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked");c=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]');for(b=0;b<c.length&&b<a.reltype.length;b++)a.reltype[b].status?c[b].setAttribute("checked",
|
||||||
"checked"):b[c].removeAttribute("checked");b=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(c=0;c<b.length&&c<a.loc.length;c++)a.loc[c].status?b[c].setAttribute("checked","checked"):b[c].removeAttribute("checked");b=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="context"]');for(c=0;c<b.length&&c<a.context.length;c++)a.context[c].status?b[c].setAttribute("checked","checked"):
|
"checked"):c[b].removeAttribute("checked");c=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(b=0;b<c.length&&b<a.loc.length;b++)a.loc[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked");c=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="context"]');for(b=0;b<c.length&&b<a.context.length;b++)a.context[b].status?c[b].setAttribute("checked","checked"):
|
||||||
b[c].removeAttribute("checked");for(b=0;b<a.freq.length;b++)for(var d=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="freq'+b+'"]'),c=0;c<d.length&&c<a.freq[b].length;c++)a.freq[b][c].status?d[c].setAttribute("checked","checked"):d[c].removeAttribute("checked");for(b=0;b<a.connect.length;b++)for(d=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="connect'+b+'"]'),c=0;c<d.length&&c<a.connect[b].length;c++)a.connect[b][c].status?
|
c[b].removeAttribute("checked");for(c=0;c<a.freq.length;c++)for(var d=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="freq'+c+'"]'),b=0;b<d.length&&b<a.freq[c].length;b++)a.freq[c][b].status?d[b].setAttribute("checked","checked"):d[b].removeAttribute("checked");for(c=0;c<a.connect.length;c++)for(d=$$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="connect'+c+'"]'),b=0;b<d.length&&b<a.connect[c].length;b++)a.connect[c][b].status?
|
||||||
d[c].setAttribute("checked","checked"):d[c].removeAttribute("checked")};inputPhoneFiche.prototype.storageToFields=function(){console.log("FICHE: STORAGE TO FIELDS");var a=lsi.keys("fiches");this.container.innerHTML="";for(var c=[],b=0;b<a.length;b++){var d=lsi.get("fiches",a[b]);this.add(d);c.push(d.uid)}this.updateNavBar(c)};
|
d[b].setAttribute("checked","checked"):d[b].removeAttribute("checked")};inputPhoneFiche.prototype.storageToFields=function(){console.log("FICHE: STORAGE TO FIELDS");var a=lsi.keys("fiches");this.container.innerHTML="";for(var b=[],c=0;c<a.length;c++){var d=lsi.get("fiches",a[c]);b.push(d.uid);c==this.selected&&this.add(d)}this.updateNavBar(b)};
|
||||||
inputPhoneFiche.prototype.sync=function(){console.log("FICHE: SYNC");for(var a=lsi.keys("contacts"),c=0;c<a.length&&9>c;c++){var b=lsi.get("contacts",a[c]),d=lsi.get("fiches",a[c]);null==d&&(d=this.defaultData);d.uid=b.uid;d.firstname=b.firstname;d.lastname=b.lastname;d.username=b.username;lsi.set("fiches",a[c],d)}};
|
inputPhoneFiche.prototype.sync=function(){console.log("FICHE: SYNC");for(var a=lsi.keys("contacts"),b=0;b<a.length&&10>b;b++){var c=lsi.get("contacts",a[b]),d=lsi.get("fiches",a[b]);null==d&&(d=this.defaultData);d.uid=c.uid;d.firstname=c.firstname;d.lastname=c.lastname;d.username=c.username;lsi.set("fiches",a[b],d)}};
|
||||||
inputPhoneFiche.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML))return!1;for(var c=$$("#nav-fiche > span.active"),b=0;b<c.length;b++)c[b].remClass("active");a.addClass("active");this.selected=parseInt(a.innerHTML)-1;a=$$("article.relation-panel .fiche-relation.active");for(b=0;b<a.length;b++)a[b].remClass("active");this.container.children[this.selected].addClass("active")};
|
inputPhoneFiche.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML))return!1;for(var b=$$("#nav-fiche > span.active"),c=0;c<b.length;c++)b[c].remClass("active");a.addClass("active");this.selected=parseInt(a.innerHTML)-1};
|
||||||
inputPhoneFiche.prototype.updateNavBar=function(a){this.nav_container.innerHTML="";for(var c=0;c<a.length;c++){var b=parseInt(a[c])+1;this.nav_container.innerHTML+="<span>"+b+"</span>"}this.check();this.nav(this.nav_container.children[this.selected])};
|
inputPhoneFiche.prototype.updateNavBar=function(a){this.nav_container.innerHTML="";for(var b=0;b<a.length;b++){var c=parseInt(a[b])+1;this.nav_container.innerHTML+="<span>"+c+"</span>"}a=lsi.keys("fiches");for(b=0;b<a.length;b++)c=lsi.get("fiches",a[b]),!0===c.valid?this.nav_container.children[c.uid].addClass("done"):this.nav_container.children[c.uid].remClass("done");this.nav(this.nav_container.children[this.selected])};
|
||||||
inputPhoneFiche.prototype.check=function(){for(var a=lsi.keys("fiches"),c=0;c<a.length;c++){for(var b=lsi.get("fiches",a[c]),d=!0,d=(d=(d=(d=(d=(d=(d=(d=(d=(d=(d=(d=d&&!isNaN(parseInt(b.age)))&&2<=b.city.length)&&(!isNaN(parseInt(b.duration[0]))||""==b.duration[0].length))&&(!isNaN(parseInt(b.duration[1]))||""==b.duration[1].length))&&0<b.duration[0].length+b.duration[1].length)&&"."!=b.job)&&"."!=b.studies)&&checkRadioValue(b.sexe))&&checkRadioValue(b.famsit))&&checkRadioValue(b.reltype))&&checkRadioValue(b.loc))&&
|
inputPhoneFiche.prototype.check=function(a){if(isNaN(parseInt(a.age))||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||!checkRadioValue(a.sexe)||!checkRadioValue(a.famsit)||!checkRadioValue(a.reltype)||!checkRadioValue(a.loc)||!checkRadioValue(a.context))return!1;for(var b=0;b<a.freq.length;b++)if(!checkRadioValue(a.freq[b]))return!1;for(b=0;b<
|
||||||
checkRadioValue(b.context),c=0;c<b.freq.length;c++)d=d&&checkRadioValue(b.freq[c]);for(c=0;c<b.connect.length;c++)d=d&&checkRadioValue(b.connect[c]);(d=(d=(d=(d=d&&(!b.reltype[8].status||b.reltype[8].status&&2<=b.reltypeSpecial.length))&&(!b.context[11].status||b.context[11].status&&2<=b.contextSpecial[0].length))&&(!b.context[12].status||b.context[12].status&&2<=b.contextSpecial[1].length))&&(!b.context[13].status||b.context[13].status&&2<=b.contextSpecial[2].length))?this.nav_container.children[b.uid].addClass("done"):
|
a.connect.length;b++)if(!checkRadioValue(a.connect[b]))return!1;return a.reltype[8].status&&2>a.reltypeSpecial.length||a.context[11].status&&2>a.contextSpecial[0].length||a.context[12].status&&2>a.contextSpecial[1].length||a.context[13].status&&2>a.contextSpecial[2].length?!1:!0};
|
||||||
this.nav_container.children[b.uid].remClass("done")}};inputPhoneFiche.prototype.attach=function(a){console.log("FICHE: ATTACH");lsi.createDataset("fiches");this.storageToFields();this.handler=a;var c=this,c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler()},!1)};
|
inputPhoneFiche.prototype.attach=function(a){console.log("FICHE: ATTACH");lsi.createDataset("fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler()},!1)};
|
||||||
|
|
|
@ -125,13 +125,13 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* (6) On vérifie la validité des données et on l'enregistre dans l'objet */
|
||||||
|
obj.valid = this.check(obj);
|
||||||
|
|
||||||
// {6} On enregistre les données dans le 'localStorage' //
|
// {6} On enregistre les données dans le 'localStorage' //
|
||||||
lsi.set('fiches', 'form'+obj.uid, obj);
|
lsi.set('fiches', 'form'+obj.uid, obj);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// {7} On met à jour le rendu //
|
|
||||||
// this.storageToFields();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Gestion de l'ajout physique d'un nouveau contact
|
/* [3] Gestion de l'ajout physique d'une nouvelle fiche
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
@ -293,17 +293,19 @@ inputPhoneFiche.prototype.storageToFields = function(){
|
||||||
|
|
||||||
// On récupère les UIDS
|
// On récupère les UIDS
|
||||||
var UIDs = [];
|
var UIDs = [];
|
||||||
|
//
|
||||||
for( var i = 0 ; i < existingFiches.length ; i++ ){
|
for( var i = 0 ; i < existingFiches.length ; i++ ){
|
||||||
// {2} On récupère les informations du contact //
|
// {2} On récupère les informations du contact //
|
||||||
var ficheData = lsi.get('fiches', existingFiches[i]);
|
var ficheData = lsi.get('fiches', existingFiches[i]);
|
||||||
|
|
||||||
// {3} On ajoute un contact à la liste //
|
|
||||||
this.add(ficheData);
|
|
||||||
|
|
||||||
UIDs.push(ficheData.uid);
|
UIDs.push(ficheData.uid);
|
||||||
|
|
||||||
|
if( i == this.selected )
|
||||||
|
this.add(ficheData);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// {4} On met à jour la navigation //
|
// {4} On met à jour la navigation //
|
||||||
this.updateNavBar(UIDs);
|
this.updateNavBar(UIDs);
|
||||||
|
|
||||||
|
@ -328,7 +330,7 @@ inputPhoneFiche.prototype.sync = function(){
|
||||||
var contactUIDs = lsi.keys('contacts');
|
var contactUIDs = lsi.keys('contacts');
|
||||||
|
|
||||||
/* (2) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */
|
/* (2) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */
|
||||||
for( var i = 0 ; i < contactUIDs.length && i < 10-1; i++ ){
|
for( var i = 0 ; i < contactUIDs.length && i < 10; i++ ){
|
||||||
|
|
||||||
/* (3) On récupère les informations du CONTACT */
|
/* (3) On récupère les informations du CONTACT */
|
||||||
var contactData = lsi.get('contacts', contactUIDs[i]);
|
var contactData = lsi.get('contacts', contactUIDs[i]);
|
||||||
|
@ -381,13 +383,6 @@ inputPhoneFiche.prototype.nav = function(element){
|
||||||
element.addClass('active');
|
element.addClass('active');
|
||||||
this.selected = parseInt(element.innerHTML) - 1;
|
this.selected = parseInt(element.innerHTML) - 1;
|
||||||
|
|
||||||
/* (4) On récupère toutes les MINI fiches visibles */
|
|
||||||
var visible = $$('article.relation-panel .fiche-relation.active');
|
|
||||||
for( var i = 0 ; i < visible.length ; i++ )
|
|
||||||
visible[i].remClass('active');
|
|
||||||
|
|
||||||
/* (5) On affiche la MINI fiche associée */
|
|
||||||
this.container.children[this.selected].addClass('active');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -411,8 +406,18 @@ inputPhoneFiche.prototype.updateNavBar = function(uid_list){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (3) On montre les MINI fiches qui sont correctes */
|
/* (3) On montre les FICHES qui sont correctes */
|
||||||
this.check();
|
var ficheKeys = lsi.keys('fiches');
|
||||||
|
for( var i = 0 ; i < ficheKeys.length ; i++ ){
|
||||||
|
|
||||||
|
var ficheData = lsi.get('fiches', ficheKeys[i]);
|
||||||
|
|
||||||
|
// Si la MINI fiche est valide
|
||||||
|
if( ficheData.valid === true ) this.nav_container.children[ficheData.uid].addClass('done');
|
||||||
|
// Si elle est invalide
|
||||||
|
else this.nav_container.children[ficheData.uid].remClass('done');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* (4) On séléctionne par défaut le dernier sélectionné */
|
/* (4) On séléctionne par défaut le dernier sélectionné */
|
||||||
this.nav( this.nav_container.children[this.selected] );
|
this.nav( this.nav_container.children[this.selected] );
|
||||||
|
@ -423,77 +428,79 @@ inputPhoneFiche.prototype.updateNavBar = function(uid_list){
|
||||||
|
|
||||||
/* [8] Vérification des données du formulaire
|
/* [8] Vérification des données du formulaire
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
inputPhoneFiche.prototype.check = function(){
|
inputPhoneFiche.prototype.check = function(ficheData){
|
||||||
|
|
||||||
/* (1) On parcours toutes les fiches */
|
// {1} Vérification des <input> //
|
||||||
var ficheKeys = lsi.keys('fiches');
|
// 1. L'age est un nombre
|
||||||
|
if( isNaN(parseInt(ficheData.age)) )
|
||||||
|
return false;
|
||||||
|
// 2. La ville a au moins 2 caractères
|
||||||
|
if( ficheData.city.length < 2 )
|
||||||
|
return false;
|
||||||
|
// 3. La durée de la relation en mois est vide ou un nombre
|
||||||
|
if( isNaN(parseInt(ficheData.duration[0])) && ficheData.duration[0].length > 0 )
|
||||||
|
return false;
|
||||||
|
// 4. La durée de la relation en année est vide ou un nombre
|
||||||
|
if( isNaN(parseInt(ficheData.duration[1])) && ficheData.duration[1].length > 0 )
|
||||||
|
return false;
|
||||||
|
// 5. Pour la durée de la relation, au moins un des 2 n'est pas vide
|
||||||
|
if( ficheData.duration[0].length+ficheData.duration[1].length == 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
for( var i = 0 ; i < ficheKeys.length ; i++ ){
|
// {2} Vérification des <select> //
|
||||||
var ficheData = lsi.get('fiches', ficheKeys[i]);
|
// 6. Le <select> pour la profession n'est pas indéfini
|
||||||
|
if( ficheData.job == '.' )
|
||||||
|
return false;
|
||||||
|
// 7. Le <select> pour les études n'est pas indéfini
|
||||||
|
if( ficheData.studies == '.' )
|
||||||
|
return false;
|
||||||
|
|
||||||
/* (2) On vérifie le formulaire complet */
|
// {3} Vérification des <input> radio //
|
||||||
var validForm = true;
|
// 8. Le SEXE a un et un seul choix
|
||||||
|
if( !checkRadioValue(ficheData.sexe) )
|
||||||
|
return false;
|
||||||
|
// 9. La SITUATION FAMILIALE a un et un seul choix
|
||||||
|
if( !checkRadioValue(ficheData.famsit) )
|
||||||
|
return false;
|
||||||
|
// 10. Le TYPE DE RELATION a un et un seul choix
|
||||||
|
if( !checkRadioValue(ficheData.reltype) )
|
||||||
|
return false;
|
||||||
|
// 11. La DISTANCE DE DOMICILE (location) a un et un seul choix
|
||||||
|
if( !checkRadioValue(ficheData.loc) )
|
||||||
|
return false;
|
||||||
|
// 12. Le CONTEXTE DE RENCONTRE a un et un seul choix
|
||||||
|
if( !checkRadioValue(ficheData.context) )
|
||||||
|
return false;
|
||||||
|
// 13. Les FRÉQUENCES ont un et un seul choix (par question de fréquence)
|
||||||
|
for( var i = 0 ; i < ficheData.freq.length ; i++ )
|
||||||
|
if( !checkRadioValue( ficheData.freq[i] ) )
|
||||||
|
return false;
|
||||||
|
|
||||||
// {1} Vérification des <input> //
|
// 14. Les CONNECTION ont un et un seul choix (par question de connection)
|
||||||
// 1. L'age est un nombre
|
for( var i = 0 ; i < ficheData.connect.length ; i++ )
|
||||||
validForm = validForm && !isNaN(parseInt(ficheData.age));
|
if( !checkRadioValue( ficheData.connect[i] ) )
|
||||||
// 2. La ville a au moins 2 caractères
|
return false;
|
||||||
validForm = validForm && ficheData.city.length >= 2;
|
|
||||||
// 3. La durée de la relation en mois est vide ou un nombre
|
|
||||||
validForm = validForm && (!isNaN(parseInt(ficheData.duration[0])) || ficheData.duration[0].length == '');
|
|
||||||
// 4. La durée de la relation en année est vide ou un nombre
|
|
||||||
validForm = validForm && (!isNaN(parseInt(ficheData.duration[1])) || ficheData.duration[1].length == '');
|
|
||||||
// 5. Pour la durée de la relation, au moins un des 2 n'est pas vide
|
|
||||||
validForm = validForm && ficheData.duration[0].length+ficheData.duration[1].length > 0;
|
|
||||||
|
|
||||||
// {2} Vérification des <select> //
|
// {4} <input> dépendant d'un choix d'un <input> radio //
|
||||||
// 6. Le <select> pour la profession n'est pas indéfini
|
// 15. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère
|
||||||
validForm = validForm && ficheData.job != '.';
|
if( ficheData.reltype[8].status && ficheData.reltypeSpecial.length < 2 )
|
||||||
// 7. Le <select> pour les études n'est pas indéfini
|
return false;
|
||||||
validForm = validForm && ficheData.studies != '.';
|
// 16. CONTEXTE DE RELATION si est coché indice 11, contactSpecial[0] doit avoir au moins 2 caractères
|
||||||
|
if( ficheData.context[11].status && ficheData.contextSpecial[0].length < 2 )
|
||||||
|
return false;
|
||||||
|
|
||||||
// {3} Vérification des <input> radio //
|
// 17. CONTEXTE DE RELATION si est coché indice 12, contextSpecial[1] doit avoir au moins 2 caractères
|
||||||
// 8. Le SEXE a un et un seul choix
|
if( ficheData.context[12].status && ficheData.contextSpecial[1].length < 2 )
|
||||||
validForm = validForm && checkRadioValue(ficheData.sexe);
|
return false;
|
||||||
// 9. La SITUATION FAMILIALE a un et un seul choix
|
|
||||||
validForm = validForm && checkRadioValue(ficheData.famsit);
|
|
||||||
// 10. Le TYPE DE RELATION a un et un seul choix
|
|
||||||
validForm = validForm && checkRadioValue(ficheData.reltype);
|
|
||||||
// 11. La DISTANCE DE DOMICILE (location) a un et un seul choix
|
|
||||||
validForm = validForm && checkRadioValue(ficheData.loc);
|
|
||||||
// 12. Le CONTEXTE DE RENCONTRE a un et un seul choix
|
|
||||||
validForm = validForm && checkRadioValue(ficheData.context);
|
|
||||||
// 13. Les FRÉQUENCES ont un et un seul choix (par question de fréquence)
|
|
||||||
for( var i = 0 ; i < ficheData.freq.length ; i++ )
|
|
||||||
validForm = validForm && checkRadioValue( ficheData.freq[i] );
|
|
||||||
|
|
||||||
// 14. Les CONNECTION ont un et un seul choix (par question de connection)
|
// 18. CONTEXTE DE RELATION si est coché indice 13, contextSpecial[2] doit avoir au moins 2 caractères
|
||||||
for( var i = 0 ; i < ficheData.connect.length ; i++ )
|
if( ficheData.context[13].status && ficheData.contextSpecial[2].length < 2 )
|
||||||
validForm = validForm && checkRadioValue( ficheData.connect[i] );
|
return false;
|
||||||
|
|
||||||
// {4} <input> dépendant d'un choix d'un <input> radio //
|
|
||||||
// 15. TYPE DE RELATION si autre est coché (indice 8)
|
|
||||||
validForm = validForm && (!ficheData.reltype[8].status || ficheData.reltype[8].status && ficheData.reltypeSpecial.length >= 2);
|
|
||||||
// 16. CONTEXTE DE RELATION si est coché indice 11
|
|
||||||
validForm = validForm && (!ficheData.context[11].status || ficheData.context[11].status && ficheData.contextSpecial[0].length >= 2);
|
|
||||||
|
|
||||||
// 17. CONTEXTE DE RELATION si est coché indice 12
|
|
||||||
validForm = validForm && (!ficheData.context[12].status || ficheData.context[12].status && ficheData.contextSpecial[1].length >= 2);
|
|
||||||
|
|
||||||
// 18. CONTEXTE DE RELATION si est coché indice 13
|
|
||||||
validForm = validForm && (!ficheData.context[13].status || ficheData.context[13].status && ficheData.contextSpecial[2].length >= 2);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 19. Si tout s'est bien passé, on retourne TRUE
|
||||||
/* (3) Si le formulaire est valide, on le met en valeur dans la barre de navigation (pages) */
|
return true;
|
||||||
if( validForm )
|
|
||||||
this.nav_container.children[ficheData.uid].addClass('done');
|
|
||||||
else // sinon, on lui enlève la classe s'il l'a
|
|
||||||
this.nav_container.children[ficheData.uid].remClass('done');
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
function inputPhoneMini(a,b){this.container=a;this.nav_container=b}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",loc:[{status:!0},{status:!1},{status:!1},{status:!1}]}};
|
function inputPhoneMini(a,b){this.container=a;this.nav_container=b}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{firstname:"",lastname:"",username:"",sexe:[{status:!0},{status:!1}],age:"",job:".",loc:[{status:!0},{status:!1},{status:!1},{status:!1}]}};
|
||||||
inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b<a.length;b++){var c=(new FormDeflater(a[b],["input","select"],["data-name"])).deflate();console.log(c);var d=lsi.get("mini-fiches","form"+c.uid.value);!1===d&&(d.username="inconnu",d.firstname="inconnu",d.lastname="inconnu");c={uid:c.uid.value,firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:c.sexe,age:c.age.value,
|
inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b<a.length;b++){var c=(new FormDeflater(a[b],["input","select"],["data-name"])).deflate();console.log(c);var d=lsi.get("mini-fiches","form"+c.uid.value);!1===d&&(d.username="inconnu",d.firstname="inconnu",d.lastname="inconnu");c={uid:c.uid.value,firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:c.sexe,age:c.age.value,
|
||||||
job:c.job.value,loc:c.loc};lsi.set("mini-fiches","form"+c.uid,c)}};
|
job:c.job.value,loc:c.loc};c.valid=this.check(c);lsi.set("mini-fiches","form"+c.uid,c)}};
|
||||||
inputPhoneMini.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.job=null!=a.job?a.job:this.defaultData.job;a.loc=null!=a.loc?a.loc:this.defaultData.loc;this.container.innerHTML+=
|
inputPhoneMini.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:this.defaultData.firstname;a.lastname=null!=a.lastname?a.lastname:this.defaultData.lastname;a.username=null!=a.username?a.username:this.defaultData.username;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.job=null!=a.job?a.job:this.defaultData.job;a.loc=null!=a.loc?a.loc:this.defaultData.loc;this.container.innerHTML+=
|
||||||
miniFicheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age,job:a.job});var b=$('article.mini-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");for(var c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;b<c.length&&b<a.sexe.length;b++)a.sexe[b].status?c[b].setAttribute("checked",
|
miniFicheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age,job:a.job});var b=$('article.mini-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");for(var c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;b<c.length&&b<a.sexe.length;b++)a.sexe[b].status?c[b].setAttribute("checked",
|
||||||
"checked"):c[b].removeAttribute("checked");c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(b=0;b<c.length&&b<a.loc.length;b++)a.loc[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked")};
|
"checked"):c[b].removeAttribute("checked");c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(b=0;b<c.length&&b<a.loc.length;b++)a.loc[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked")};
|
||||||
inputPhoneMini.prototype.storageToFields=function(){console.log("MINI FICHE: STORAGE TO FIELDS");var a=lsi.keys("mini-fiches");this.container.innerHTML="";for(var b=[],c=0;c<a.length;c++){var d=lsi.get("mini-fiches",a[c]);this.add({uid:d.uid,firstname:d.firstname,lastname:d.lastname,username:d.username,age:d.age,sexe:d.sexe,job:d.job,loc:d.loc});b.push(d.uid)}this.updateNavBar(b)};
|
inputPhoneMini.prototype.storageToFields=function(){console.log("MINI FICHE: STORAGE TO FIELDS");var a=lsi.keys("mini-fiches");this.container.innerHTML="";for(var b=[],c=0;c<a.length;c++){var d=lsi.get("mini-fiches",a[c]);b.push(d.uid);c==this.selected&&this.add({uid:d.uid,firstname:d.firstname,lastname:d.lastname,username:d.username,age:d.age,sexe:d.sexe,job:d.job,loc:d.loc})}this.updateNavBar(b)};
|
||||||
inputPhoneMini.prototype.sync=function(){console.log("MINI FICHE: SYNC");for(var a=lsi.keys("contacts"),b=0;b<a.length;b++){var c=lsi.get("contacts",a[b]),d=lsi.get("mini-fiches",a[b]);null==d&&(d=this.defaultData);d.uid=c.uid;d.firstname=c.firstname;d.lastname=c.lastname;d.username=c.username;lsi.set("mini-fiches",a[b],d)}};
|
inputPhoneMini.prototype.sync=function(){console.log("MINI FICHE: SYNC");for(var a=lsi.keys("contacts"),b=0;b<a.length;b++){var c=lsi.get("contacts",a[b]),d=lsi.get("mini-fiches",a[b]);null==d&&(d=this.defaultData,d.valid=!1);d.uid=c.uid;d.firstname=c.firstname;d.lastname=c.lastname;d.username=c.username;lsi.set("mini-fiches",a[b],d)}};
|
||||||
inputPhoneMini.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML))return!1;for(var b=$$("#nav-mini > span.active"),c=0;c<b.length;c++)b[c].remClass("active");a.addClass("active");this.selected=parseInt(a.innerHTML)-1;a=$$("article.mini-relation-panel .mini-fiche-relation.active");for(c=0;c<a.length;c++)a[c].remClass("active");this.container.children[this.selected].addClass("active")};
|
inputPhoneMini.prototype.nav=function(a){if("undefined"==typeof a||isNaN(a.innerHTML))return!1;for(var b=$$("#nav-mini > span.active"),c=0;c<b.length;c++)b[c].remClass("active");a.addClass("active");this.selected=parseInt(a.innerHTML)-1};
|
||||||
inputPhoneMini.prototype.updateNavBar=function(a){this.nav_container.innerHTML="";for(var b=0;b<a.length;b++){var c=parseInt(a[b])+1;this.nav_container.innerHTML+="<span>"+c+"</span>"}this.check();this.nav(this.nav_container.children[this.selected])};
|
inputPhoneMini.prototype.updateNavBar=function(a){if(this.nav_container.children.length!=a.length){this.nav_container.innerHTML="";for(var b=0;b<a.length;b++)this.nav_container.innerHTML+="<span>"+(parseInt(a[b])+1)+"</span>"}a=lsi.keys("mini-fiches");for(b=0;b<a.length;b++){var c=lsi.get("mini-fiches",a[b]);!0===c.valid?this.nav_container.children[c.uid].addClass("done"):this.nav_container.children[c.uid].remClass("done")}this.nav(this.nav_container.children[this.selected])};
|
||||||
inputPhoneMini.prototype.check=function(){for(var a=lsi.keys("mini-fiches"),b=0;b<a.length;b++){var c=lsi.get("mini-fiches",a[b]),d=!0;(d=(d=(d=(d=d&&!isNaN(parseInt(c.age)))&&checkRadioValue(c.sexe))&&"."!=c.job)&&checkRadioValue(c.loc))?this.nav_container.children[c.uid].addClass("done"):this.nav_container.children[c.uid].remClass("done")}};
|
inputPhoneMini.prototype.check=function(a){return!isNaN(parseInt(a.age))&&checkRadioValue(a.sexe)&&"."!=a.job&&checkRadioValue(a.loc)?!0:!1};inputPhoneMini.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("mini-fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler()},!1)};
|
||||||
inputPhoneMini.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("mini-fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler()},!1)};
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
|
||||||
// {1} Pour chaque formulaire de contact présent //
|
// {1} Pour chaque formulaire de contact présent //
|
||||||
var existingMiniFiches = $$('article.mini-relation-panel .mini-fiche-relation');
|
var existingMiniFiches = $$('article.mini-relation-panel .mini-fiche-relation');
|
||||||
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
|
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
|
||||||
|
|
||||||
// {2} On initialise notre deflater pour récupérer les valeurs //
|
// {2} On initialise notre deflater pour récupérer les valeurs //
|
||||||
var deflater = new FormDeflater(existingMiniFiches[i], ['input', 'select'], ['data-name']);
|
var deflater = new FormDeflater(existingMiniFiches[i], ['input', 'select'], ['data-name']);
|
||||||
|
|
||||||
|
@ -66,13 +65,14 @@ inputPhoneMini.prototype.fieldsToStorage = function(){
|
||||||
loc: deflated.loc // [0] Choix 1 -> [3] Choix 4
|
loc: deflated.loc // [0] Choix 1 -> [3] Choix 4
|
||||||
};
|
};
|
||||||
|
|
||||||
// {6} On enregistre les données dans le 'localStorage' //
|
/* (6) On vérifie la validité des données et on l'enregistre dans l'objet */
|
||||||
|
obj.valid = this.check(obj);
|
||||||
|
|
||||||
|
|
||||||
|
// {7} On enregistre les données dans le 'localStorage' //
|
||||||
lsi.set('mini-fiches', 'form'+obj.uid, obj);
|
lsi.set('mini-fiches', 'form'+obj.uid, obj);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// {7} On met à jour le rendu //
|
|
||||||
// this.storageToFields();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,22 +163,25 @@ inputPhoneMini.prototype.storageToFields = function(){
|
||||||
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
|
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
|
||||||
// {2} On récupère les informations du contact //
|
// {2} On récupère les informations du contact //
|
||||||
var ficheData = lsi.get('mini-fiches', existingMiniFiches[i]);
|
var ficheData = lsi.get('mini-fiches', existingMiniFiches[i]);
|
||||||
|
|
||||||
// {3} On ajoute un contact à la liste //
|
|
||||||
this.add({
|
|
||||||
uid: ficheData.uid,
|
|
||||||
firstname: ficheData.firstname,
|
|
||||||
lastname: ficheData.lastname,
|
|
||||||
username: ficheData.username,
|
|
||||||
age: ficheData.age,
|
|
||||||
sexe: ficheData.sexe,
|
|
||||||
job: ficheData.job,
|
|
||||||
loc: ficheData.loc
|
|
||||||
});
|
|
||||||
|
|
||||||
UIDs.push(ficheData.uid);
|
UIDs.push(ficheData.uid);
|
||||||
|
|
||||||
|
// {3} On affiche la MINI fiche sélectionnée //
|
||||||
|
if( i == this.selected )
|
||||||
|
this.add({
|
||||||
|
uid: ficheData.uid,
|
||||||
|
firstname: ficheData.firstname,
|
||||||
|
lastname: ficheData.lastname,
|
||||||
|
username: ficheData.username,
|
||||||
|
age: ficheData.age,
|
||||||
|
sexe: ficheData.sexe,
|
||||||
|
job: ficheData.job,
|
||||||
|
loc: ficheData.loc
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// {4} On met à jour la navigation //
|
// {4} On met à jour la navigation //
|
||||||
this.updateNavBar(UIDs);
|
this.updateNavBar(UIDs);
|
||||||
|
|
||||||
|
@ -213,8 +216,10 @@ inputPhoneMini.prototype.sync = function(){
|
||||||
|
|
||||||
|
|
||||||
/* (5) Si la MINI fiche n'exise pas, on la crée avec les valeurs par défaut */
|
/* (5) Si la MINI fiche n'exise pas, on la crée avec les valeurs par défaut */
|
||||||
if( miniData == null )
|
if( miniData == null ){
|
||||||
miniData = this.defaultData;
|
miniData = this.defaultData;
|
||||||
|
miniData.valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* (6) On met à jour la MINI fiche */
|
/* (6) On met à jour la MINI fiche */
|
||||||
|
@ -255,14 +260,6 @@ inputPhoneMini.prototype.nav = function(element){
|
||||||
/* (3) On active l'élément courant */
|
/* (3) On active l'élément courant */
|
||||||
element.addClass('active');
|
element.addClass('active');
|
||||||
this.selected = parseInt(element.innerHTML) - 1;
|
this.selected = parseInt(element.innerHTML) - 1;
|
||||||
|
|
||||||
/* (4) On récupère toutes les MINI fiches visibles */
|
|
||||||
var visible = $$('article.mini-relation-panel .mini-fiche-relation.active');
|
|
||||||
for( var i = 0 ; i < visible.length ; i++ )
|
|
||||||
visible[i].remClass('active');
|
|
||||||
|
|
||||||
/* (5) On affiche la MINI fiche associée */
|
|
||||||
this.container.children[this.selected].addClass('active');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -274,22 +271,33 @@ inputPhoneMini.prototype.nav = function(element){
|
||||||
/* [7] Mise à jour de la navigation
|
/* [7] Mise à jour de la navigation
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
inputPhoneMini.prototype.updateNavBar = function(uid_list){
|
inputPhoneMini.prototype.updateNavBar = function(uid_list){
|
||||||
/* (1) On vide la nav bar */
|
/* (1) On vérifie si la barre de navigation est à jour */
|
||||||
this.nav_container.innerHTML = '';
|
var navBarUpToDate = this.nav_container.children.length == uid_list.length;
|
||||||
|
|
||||||
/* (2) On la re-remplit avec toutes les données */
|
/* (1) On vide et remplit la barre de nav, si elle n'est pas à jour */
|
||||||
for( var i = 0 ; i < uid_list.length ; i++ ){
|
if( !navBarUpToDate ){
|
||||||
// On rajoute 1 pour la lisibilité
|
this.nav_container.innerHTML = '';
|
||||||
var realIndex = parseInt(uid_list[i]) + 1;
|
|
||||||
|
|
||||||
this.nav_container.innerHTML += '<span>'+realIndex+'</span>';
|
for( var i = 0 ; i < uid_list.length ; i++ )
|
||||||
|
this.nav_container.innerHTML += '<span>'+( parseInt(uid_list[i])+1 )+'</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (3) On montre les MINI fiches qui sont correctes dans la navbar */
|
||||||
|
var miniKeys = lsi.keys('mini-fiches');
|
||||||
|
for( var i = 0 ; i < miniKeys.length ; i++ ){
|
||||||
|
|
||||||
|
var miniData = lsi.get('mini-fiches', miniKeys[i]);
|
||||||
|
|
||||||
|
// Si la MINI fiche est valide
|
||||||
|
if( miniData.valid === true ) this.nav_container.children[miniData.uid].addClass('done');
|
||||||
|
// Si elle est invalide
|
||||||
|
else this.nav_container.children[miniData.uid].remClass('done');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (3) On montre les MINI fiches qui sont correctes */
|
|
||||||
this.check();
|
|
||||||
|
|
||||||
/* (4) On séléctionne par défaut le dernier sélectionné */
|
|
||||||
|
/* (4) On séléctionne par défaut la dernière MINI fiche sélectionnée */
|
||||||
this.nav( this.nav_container.children[this.selected] );
|
this.nav( this.nav_container.children[this.selected] );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -298,36 +306,24 @@ inputPhoneMini.prototype.updateNavBar = function(uid_list){
|
||||||
|
|
||||||
/* [8] Vérification des données du formulaire
|
/* [8] Vérification des données du formulaire
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
inputPhoneMini.prototype.check = function(){
|
inputPhoneMini.prototype.check = function(miniData){
|
||||||
|
|
||||||
/* (1) On parcours toutes les fiches */
|
// 1. L'age est un nombre
|
||||||
var miniKeys = lsi.keys('mini-fiches');
|
if( isNaN(parseInt(miniData.age)) )
|
||||||
|
return false;
|
||||||
for( var i = 0 ; i < miniKeys.length ; i++ ){
|
// 2. Le sexe est défini
|
||||||
var miniData = lsi.get('mini-fiches', miniKeys[i]);
|
if( !checkRadioValue(miniData.sexe) )
|
||||||
|
return false;
|
||||||
/* (2) On vérifie le formulaire complet */
|
// 3. Le métier est défini
|
||||||
var validForm = true;
|
if( miniData.job == '.' )
|
||||||
// 1. L'age est un nombre
|
return false;
|
||||||
validForm = validForm && !isNaN(parseInt(miniData.age));
|
// 4. La distance de localisation est définie
|
||||||
// 2. Le sexe est défini
|
if( !checkRadioValue(miniData.loc) )
|
||||||
validForm = validForm && checkRadioValue(miniData.sexe);
|
return false;
|
||||||
// 3. Le métier est défini
|
|
||||||
validForm = validForm && miniData.job != '.';
|
|
||||||
// 4. La distance de localisation est définie
|
|
||||||
validForm = validForm && checkRadioValue(miniData.loc);
|
|
||||||
|
|
||||||
|
|
||||||
|
// Si aucune erreur, tout est ok
|
||||||
|
return true;
|
||||||
/* (3) Si le formulaire est valide, on le met en valeur dans la barre de navigation (pages) */
|
|
||||||
if( validForm )
|
|
||||||
this.nav_container.children[miniData.uid].addClass('done');
|
|
||||||
else // sinon, on lui enlève la classe s'il l'a
|
|
||||||
this.nav_container.children[miniData.uid].remClass('done');
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
var importCallLog=$('input#call_log-import[type="file"]'),subjectManager,contactManager,miniManager,ficheManager;function dynamicUpdate(){console.log("DYNAMIC UPDATE: UPDATING");miniManager.fieldsToStorage();ficheManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.sync();ficheManager.sync();miniManager.storageToFields();ficheManager.storageToFields();contactManager.storageToFields()}
|
var importCallLog=$('input#call_log-import[type="file"]'),subjectManager,contactManager,miniManager,ficheManager;function dynamicUpdate(){console.log("DYNAMIC UPDATE: UPDATING");miniManager.fieldsToStorage();ficheManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.sync();ficheManager.sync();miniManager.storageToFields();ficheManager.storageToFields();contactManager.storageToFields()}
|
||||||
function checkRadioValue(b){for(var a=0,c=0;c<b.length;c++)!0===b[c].status&&a++;return 1!=a?!1:!0}
|
function checkRadioValue(c){for(var a=0,b=0;b<c.length;b++)!0===c[b].status&&a++;return 1!=a?!1:!0}
|
||||||
include("/js/includes/input-phone-subject.js",function(){include("/js/includes/input-phone-contact.js",function(){include("/js/includes/input-phone-mini.js",function(){include("/js/includes/input-phone-fiche.js",function(){subjectManager=new inputPhoneSubject($('article.subject-panel [data-name="number"]'),$('article.subject-panel [data-name="username"]'),$('article.subject-panel [data-name="firstname"]'),$('article.subject-panel [data-name="lastname"]'),$('article.subject-panel [data-name="submit"]'));
|
include("/js/includes/input-phone-subject.js",function(){include("/js/includes/input-phone-contact.js",function(){include("/js/includes/input-phone-mini.js",function(){include("/js/includes/input-phone-fiche.js",function(){subjectManager=new inputPhoneSubject($('article.subject-panel [data-name="number"]'),$('article.subject-panel [data-name="username"]'),$('article.subject-panel [data-name="firstname"]'),$('article.subject-panel [data-name="lastname"]'),$('article.subject-panel [data-name="submit"]'));
|
||||||
subjectManager.attach();contactManager=new inputPhoneContact($("article.contact-panel"),$("h4.add-contact"));contactManager.attach(dynamicUpdate);miniManager=new inputPhoneMini($("article.mini-relation-panel"),$("#nav-mini"));miniManager.attach(dynamicUpdate);ficheManager=new inputPhoneFiche($("article.relation-panel"),$("#nav-fiche"));ficheManager.attach(dynamicUpdate);importCallLog.addEventListener("change",function(b){api.send({path:"upload/call_log",file:importCallLog.files[0]},function(a){0==
|
subjectManager.attach();contactManager=new inputPhoneContact($("article.contact-panel"),$("h4.add-contact"));contactManager.attach(dynamicUpdate);miniManager=new inputPhoneMini($("article.mini-relation-panel"),$("#nav-mini"));miniManager.attach(dynamicUpdate);ficheManager=new inputPhoneFiche($("article.relation-panel"),$("#nav-fiche"));ficheManager.attach(dynamicUpdate);importCallLog.addEventListener("change",function(c){api.send({path:"upload/call_log",file:importCallLog.files[0]},function(a){console.log(a);
|
||||||
a.ModuleError&&(importCallLog.addClass("active"),console.log(a),a={path:"call_log/unserialize",phone_number:$("#subject_phone_number").value},api.send(a,function(a){console.log(a)}))})},!1)})})})});
|
0==a.ModuleError&&(importCallLog.addClass("active"),a={path:"call_log/unserialize",phone_number:$("#subject_phone_number").value},api.send(a,function(b){console.log(b);if(0==b.ModuleError){for(var a=0;a<b.directory.length&&20>a;a++)lsi.set("contacts","form"+a,{uid:a,number:b.directory[a].number,username:b.directory[a].name,firstname:"",lastname:""});dynamicUpdate()}}))})},!1)})})})});
|
||||||
|
|
|
@ -147,14 +147,13 @@ include('/js/includes/input-phone-fiche.js', function(){
|
||||||
|
|
||||||
/* (2) On effectue l'upload (import) */
|
/* (2) On effectue l'upload (import) */
|
||||||
api.send(uploadRequest, function(uploadResponse){
|
api.send(uploadRequest, function(uploadResponse){
|
||||||
|
console.log(uploadResponse);
|
||||||
|
|
||||||
// Si tout est bon, on met l'input en bleu
|
// Si tout est bon, on met l'input en bleu
|
||||||
if( uploadResponse.ModuleError == 0 ){
|
if( uploadResponse.ModuleError == 0 ){
|
||||||
importCallLog.addClass('active');
|
importCallLog.addClass('active');
|
||||||
|
|
||||||
// TODO: Gestion de l'ajout des fiches relation
|
|
||||||
|
|
||||||
/* (3) On rédige la requête pour récupérer les données du fichier */
|
/* (3) On rédige la requête pour récupérer les données du fichier */
|
||||||
console.log(uploadResponse);
|
|
||||||
var getCallLogRequest = {
|
var getCallLogRequest = {
|
||||||
path: 'call_log/unserialize',
|
path: 'call_log/unserialize',
|
||||||
phone_number: $('#subject_phone_number').value
|
phone_number: $('#subject_phone_number').value
|
||||||
|
@ -163,6 +162,24 @@ include('/js/includes/input-phone-fiche.js', function(){
|
||||||
/* (4) On effectue la récupération d'informations */
|
/* (4) On effectue la récupération d'informations */
|
||||||
api.send(getCallLogRequest, function(dataResponse){
|
api.send(getCallLogRequest, function(dataResponse){
|
||||||
console.log(dataResponse);
|
console.log(dataResponse);
|
||||||
|
|
||||||
|
// Si tout est ok, on ajoute les données
|
||||||
|
if( dataResponse.ModuleError == 0 ){
|
||||||
|
|
||||||
|
/* (5) Pour chaque contact de l'annuaire, on ajoute un contact */
|
||||||
|
for( var i = 0 ; i < dataResponse.directory.length && i < 20 ; i++ ){
|
||||||
|
lsi.set('contacts', 'form'+i, {
|
||||||
|
uid: i,
|
||||||
|
number: dataResponse.directory[i].number,
|
||||||
|
username: dataResponse.directory[i].name,
|
||||||
|
firstname: '',
|
||||||
|
lastname: ''
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (6) On met à jour l'affichage */
|
||||||
|
dynamicUpdate();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue