HTMLBuilder pour les fiches relation + initialisation et clonage sur la base des MINI fiches

This commit is contained in:
xdrm-brackets 2016-04-27 11:36:07 +02:00
parent 64618ba87f
commit 26bee734ab
7 changed files with 78 additions and 72 deletions

File diff suppressed because one or more lines are too long

View File

@ -312,88 +312,88 @@ ficheBuilder.setLayout(
"\t<h4 data-icon='b'>Avec quelle fréquence discutez-vous avec cette personne ?</h4>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tFace à face<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq01'><label for='freq01'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq02'><label for='freq02'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq03'><label for='freq03'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq04'><label for='freq04'>1 fois par an ou moins</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq01_@uid'><label for='freq01_@uid'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq02_@uid'><label for='freq02_@uid'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq03_@uid'><label for='freq03_@uid'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq0_@uid' data-name='freq0' id='freq04_@uid'><label for='freq04_@uid'>1 fois par an ou moins</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tTéléphone ou skype et équivalent<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1' id='freq11'><label for='freq11'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1' id='freq12'><label for='freq12'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1' id='freq13'><label for='freq13'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1' id='freq14'><label for='freq14'>1 fois par an ou moins</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1_@uid' data-name='freq1' id='freq11_@uid'><label for='freq11_@uid'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1_@uid' data-name='freq1' id='freq12_@uid'><label for='freq12_@uid'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1_@uid' data-name='freq1' id='freq13_@uid'><label for='freq13_@uid'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq1_@uid' data-name='freq1' id='freq14_@uid'><label for='freq14_@uid'>1 fois par an ou moins</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tSMS, et équivalents<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2' id='freq21'><label for='freq21'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2' id='freq22'><label for='freq22'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2' id='freq23'><label for='freq23'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2' id='freq24'><label for='freq24'>1 fois par an ou moins</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2_@uid' data-name='freq2 id='freq21_@uid'><label for='freq21_@uid'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2_@uid' data-name='freq2 id='freq22_@uid'><label for='freq22_@uid'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2_@uid' data-name='freq2 id='freq23_@uid'><label for='freq23_@uid'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq2_@uid' data-name='freq2 id='freq24_@uid'><label for='freq24_@uid'>1 fois par an ou moins</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tCourrier électronique<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3' id='freq31'><label for='freq31'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3' id='freq32'><label for='freq32'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3' id='freq33'><label for='freq33'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3' id='freq34'><label for='freq34'>1 fois par an ou moins</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3_@uid' data-name='freq3' id='freq31_@uid'><label for='freq31_@uid'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3_@uid' data-name='freq3' id='freq32_@uid'><label for='freq32_@uid'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3_@uid' data-name='freq3' id='freq33_@uid'><label for='freq33_@uid'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq3_@uid' data-name='freq3' id='freq34_@uid'><label for='freq34_@uid'>1 fois par an ou moins</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tFacebook ou autre réseau social<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4' id='freq41'><label for='freq41'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4' id='freq42'><label for='freq42'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4' id='freq43'><label for='freq43'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4' id='freq44'><label for='freq44'>1 fois par an ou moins</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4_@uid' data-name='freq4' id='freq41_@uid'><label for='freq41_@uid'>plusieurs fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4_@uid' data-name='freq4' id='freq42_@uid'><label for='freq42_@uid'>1 fois par semaine</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4_@uid' data-name='freq4' id='freq43_@uid'><label for='freq43_@uid'>1 fois par mois</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='freq4_@uid' data-name='freq4' id='freq44_@uid'><label for='freq44_@uid'>1 fois par an ou moins</label>\n"+
"\t</h5>\n"+
"\t<h4 data-icon='r'>Comment êtes-vous « connecté » à cette personne ?</h4>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tSes coordonnées sont dans votre carnet dadresse<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect1' id='connect11'><label for='connect11'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect1' id='connect12' checked><label for='connect12'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect1_@uid' data-name='connect1' id='connect11_@uid'><label for='connect11_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect1_@uid' data-name='connect1' id='connect12_@uid'><label for='connect12_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tSon numéro de mobile est enregistré sur votre mobile (ou vous-mêmes êtes sur le sien)<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect2' id='connect21'><label for='connect21'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect2' id='connect22' checked><label for='connect22'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect2_@uid' data-name='connect2' id='connect21_@uid'><label for='connect21_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect2_@uid' data-name='connect2' id='connect22_@uid' checked><label for='connect22_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tElle figure parmi vos amis facebook<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect3' id='connect31'><label for='connect31'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect3' id='connect32' checked><label for='connect32'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect3_@uid' data-name='connect3' id='connect31_@uid'><label for='connect31_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect3_@uid' data-name='connect3' id='connect32_@uid' checked><label for='connect32_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif régulièrement<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect4' id='connect41'><label for='connect41'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect4' id='connect42' checked><label for='connect42'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect4_@uid' data-name='connect4' id='connect41_@uid'><label for='connect41_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect4_@uid' data-name='connect4' id='connect42_@uid' checked><label for='connect42_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tVous le suivez sur Twitter<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect5' id='connect51'><label for='connect51'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect5' id='connect52' checked><label for='connect52'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect5_@uid' data-name='connect5' id='connect51_@uid'><label for='connect51_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect5_@uid' data-name='connect5' id='connect52_@uid' checked><label for='connect52_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tVous communiquez avec cette personne sur Twitter<br>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect6' id='connect61'><label for='connect61'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect6' id='connect62' checked><label for='connect62'>Non</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect6_@uid' data-name='connect6' id='connect61_@uid'><label for='connect61_@uid'>Oui</label>\n"+
"\t\t&nbsp;&nbsp;&nbsp;<input type='radio' name='connect6_@uid' data-name='connect6' id='connect62_@uid' checked><label for='connect62_@uid'>Non</label>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tVous communiquez dans autre réseau social : <input type='text' name='connectSpecial1'>\n"+
"\t\tVous communiquez dans autre réseau social : <input type='text' data-name='connectSpecial'>\n"+
"\t</h5>\n"+
"\t<h5 class='nobold color0'>\n"+
"\t\tVous communiquez dans un autre dispositif (blogs, jeu vidéo ou autre) : <input type='text' name='connectSpecial2'>\n"+
"\t\tVous communiquez dans un autre dispositif (blogs, jeu vidéo ou autre) : <input type='text' data-name='connectSpecial'>\n"+
"\t</h5>\n"+
"</article>\n");

View File

@ -1,10 +1,10 @@
function inputPhoneFiche(a,c){this.container=a;this.nav_container=c}inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null};
inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.fiche-relation-panel .fiche-fiche-relation"),c=0;c<a.length;c++){var b=(new FormDeflater(a[c],["input","select"],["data-name"])).deflate(),d=lsi.get("fiche-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[0].status,b.sexe[1].status],age:b.age.value,
job:b.job.value,loc:[b.loc[0].status,b.loc[1].status,b.loc[2].status,b.loc[3].status]};lsi.set("fiche-fiches","form"+b.uid,b)}};
inputPhoneFiche.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:"";a.lastname=null!=a.lastname?a.lastname:"";a.username=null!=a.username?a.username:"";a.age=null!=a.age?a.age:"";a.sexe=null!=a.sexe?a.sexe:[!0,!1];a.job=null!=a.job?a.job:".";a.loc=null!=a.loc?a.loc:[!0,!1,!1,!1];this.container.innerHTML+=ficheFicheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age});$('[data-name="uid"][value="'+
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[0].status,b.sexe[1].status],age:b.age.value,
job:b.job.value,loc:[b.loc[0].status,b.loc[1].status,b.loc[2].status,b.loc[3].status]};lsi.set("fiches","form"+b.uid,b)}};
inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid)return!1;a.firstname=null!=a.firstname?a.firstname:"";a.lastname=null!=a.lastname?a.lastname:"";a.username=null!=a.username?a.username:"";a.age=null!=a.age?a.age:"";a.sexe=null!=a.sexe?a.sexe:[!0,!1];a.job=null!=a.job?a.job:".";a.loc=null!=a.loc?a.loc:[!0,!1,!1,!1];this.container.innerHTML+=ficheBuilder.build({firstname:a.firstname,lastname:a.lastname,username:a.username,uid:a.uid,age:a.age});$('[data-name="uid"][value="'+
a.uid+'"] ~ h5>span>select').value=a.job;for(var c=$$('[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;b<c.length;b++)a.sexe[b]?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked");c=$$('[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(b=0;b<c.length;b++)a.loc[b]?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked")};
inputPhoneFiche.prototype.storageToFields=function(){console.log("MINI FICHE: STORAGE TO FIELDS");var a=lsi.keys("fiche-fiches");this.container.innerHTML="";for(var c=[],b=0;b<a.length;b++){var d=lsi.get("fiche-fiches",a[b]);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});c.push(d.uid)}this.updateNavBar(c)};
inputPhoneFiche.prototype.sync=function(){console.log("MINI FICHE: SYNC");for(var a=lsi.keys("contacts"),c=0;c<a.length;c++){var b=lsi.get("contacts",a[c]),d=lsi.get("fiche-fiches",a[c]);null==d?lsi.set("fiche-fiches",a[c],{uid:b.uid,firstname:b.firstname,lastname:b.lastname,username:b.username,sexe:[!0,!1],age:"",job:".",loc:[!0,!1,!1,!1]}):(d.firstname=b.firstname,d.lastname=b.lastname,d.username=b.username,lsi.set("fiche-fiches",a[c],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.fiche-relation-panel .fiche-fiche-relation.active");for(b=0;b<a.length;b++)a[b].remClass("active");this.container.children[this.selected].addClass("active")};
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.check=function(){for(var a=lsi.keys("fiche-fiches"),c=0;c<a.length;c++){var b=lsi.get("fiche-fiches",a[c]),d=!0;(d=(d=d&&!isNaN(parseInt(b.age)))&&"."!=b.job)?this.nav_container.children[b.uid].addClass("done"):this.nav_container.children[b.uid].remClass("done")}};
inputPhoneFiche.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("fiche-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.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({uid:d.uid,firstname:d.firstname,lastname:d.lastname,username:d.username,age:d.age,sexe:d.sexe,job:d.job,loc:d.loc});c.push(d.uid)}this.updateNavBar(c)};
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?lsi.set("fiches",a[c],{uid:b.uid,firstname:b.firstname,lastname:b.lastname,username:b.username,sexe:[!0,!1],age:"",job:".",loc:[!0,!1,!1,!1]}):(d.firstname=b.firstname,d.lastname=b.lastname,d.username=b.username,lsi.set("fiches",a[c],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.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.check=function(){for(var a=lsi.keys("fiches"),c=0;c<a.length;c++){var b=lsi.get("fiches",a[c]),d=!0;(d=(d=d&&!isNaN(parseInt(b.age)))&&"."!=b.job)?this.nav_container.children[b.uid].addClass("done"):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)};

View File

@ -18,10 +18,10 @@ inputPhoneFiche.prototype = {
/* [2] Gestion de l'enregistrement des formulaires fiche fiches relation
=========================================================*/
inputPhoneFiche.prototype.fieldsToStorage = function(){
console.log('MINI FICHE: FIELDS TO STORAGE');
console.log('FICHE: FIELDS TO STORAGE');
// {1} Pour chaque formulaire de contact présent //
var existingMiniFiches = $$('article.fiche-relation-panel .fiche-fiche-relation');
var existingMiniFiches = $$('article.relation-panel .fiche-relation');
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
// {2} On initialise notre deflater pour récupérer les valeurs //
@ -31,8 +31,11 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
var deflated = deflater.deflate();
console.log(deflated);
// {4} On récupère les données du LSI si elles existent //
var existingData = lsi.get('fiche-fiches', 'form'+deflated.uid.value);
var existingData = lsi.get('fiches', 'form'+deflated.uid.value);
// Si n'existe pas, on initialise
if( existingData === false ){
@ -63,7 +66,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
};
// {6} On enregistre les données dans le 'localStorage' //
lsi.set('fiche-fiches', 'form'+obj.uid, obj);
lsi.set('fiches', 'form'+obj.uid, obj);
}
@ -87,7 +90,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){
*
*/
inputPhoneFiche.prototype.add = function(objectData){
console.log('MINI FICHE: ADD');
console.log('FICHE: ADD');
// Si pas d'UID, on retourne une erreur
if( objectData.uid == null )
@ -104,7 +107,7 @@ inputPhoneFiche.prototype.add = function(objectData){
// {1} Création physique //
this.container.innerHTML += ficheFicheBuilder.build({
this.container.innerHTML += ficheBuilder.build({
firstname: objectData.firstname,
lastname: objectData.lastname,
username: objectData.username,
@ -149,10 +152,10 @@ inputPhoneFiche.prototype.add = function(objectData){
/* [4] Gestion de l'affichage depuis le 'localStorage'
=========================================================*/
inputPhoneFiche.prototype.storageToFields = function(){
console.log('MINI FICHE: STORAGE TO FIELDS');
console.log('FICHE: STORAGE TO FIELDS');
// {1} Pour chaque contact du 'localStorage' //
var existingMiniFiches = lsi.keys('fiche-fiches');
var existingMiniFiches = lsi.keys('fiches');
// On réinitialise le HTML
this.container.innerHTML = '';
@ -162,7 +165,7 @@ inputPhoneFiche.prototype.storageToFields = function(){
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
// {2} On récupère les informations du contact //
var ficheData = lsi.get('fiche-fiches', existingMiniFiches[i]);
var ficheData = lsi.get('fiches', existingMiniFiches[i]);
// {3} On ajoute un contact à la liste //
this.add({
@ -197,26 +200,26 @@ inputPhoneFiche.prototype.storageToFields = function(){
/* [5] Synchronisation des CONTACT vers les MINI fiches
=========================================================*/
inputPhoneFiche.prototype.sync = function(){
console.log('MINI FICHE: SYNC');
console.log('FICHE: SYNC');
/* (1) On récupère les clés de tous les CONTACTS */
var contactUIDs = lsi.keys('contacts');
/* (2) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */
for( var i = 0 ; i < contactUIDs.length ; i++ ){
for( var i = 0 ; i < contactUIDs.length && i < 10-1; i++ ){
/* (3) On récupère les informations du CONTACT */
var contactData = lsi.get('contacts', contactUIDs[i]);
/* (4) On récupère les informations de la MINI (si elle existe) */
var ficheData = lsi.get('fiche-fiches', contactUIDs[i]);
var ficheData = lsi.get('fiches', contactUIDs[i]);
/* (5) Cas 1 : la MINI fiche n'exise pas */
if( ficheData == null ){
// On crée la MINI fiche
lsi.set('fiche-fiches', contactUIDs[i], {
lsi.set('fiches', contactUIDs[i], {
uid: contactData.uid,
firstname: contactData.firstname,
lastname: contactData.lastname,
@ -237,7 +240,7 @@ inputPhoneFiche.prototype.sync = function(){
ficheData.username = contactData.username;
// On met à jour la MINI fiche
lsi.set('fiche-fiches', contactUIDs[i], ficheData);
lsi.set('fiches', contactUIDs[i], ficheData);
}
@ -272,7 +275,7 @@ inputPhoneFiche.prototype.nav = function(element){
this.selected = parseInt(element.innerHTML) - 1;
/* (4) On récupère toutes les MINI fiches visibles */
var visible = $$('article.fiche-relation-panel .fiche-fiche-relation.active');
var visible = $$('article.relation-panel .fiche-relation.active');
for( var i = 0 ; i < visible.length ; i++ )
visible[i].remClass('active');
@ -316,10 +319,10 @@ inputPhoneFiche.prototype.updateNavBar = function(uid_list){
inputPhoneFiche.prototype.check = function(){
/* (1) On parcours toutes les fiches */
var ficheKeys = lsi.keys('fiche-fiches');
var ficheKeys = lsi.keys('fiches');
for( var i = 0 ; i < ficheKeys.length ; i++ ){
var ficheData = lsi.get('fiche-fiches', ficheKeys[i]);
var ficheData = lsi.get('fiches', ficheKeys[i]);
/* (2) On vérifie le formulaire complet */
var validForm = true;
@ -345,10 +348,10 @@ inputPhoneFiche.prototype.check = function(){
/* [9] Point d'amorçage de la gestion des contacts
=========================================================*/
inputPhoneFiche.prototype.attach = function(handler){
console.log('MINI FICHE: ATTACH');
console.log('FICHE: ATTACH');
/* (1) On initialise le jeu de données */
lsi.createDataset('fiche-fiches');
lsi.createDataset('fiches');
/* (2) On charge les fiche fiches depuis la mémoire ('localStorage') */
this.storageToFields();

View File

@ -94,10 +94,10 @@
<h3 data-n='4' class='color4'>Remplir les fiches relations complètes des contacts les plus contactés</h3>
<!-- NAVIGATION ENTRE LES FICHES -->
<div class='arrow-container line'></div>
<div class='arrow-container line' id='nav-fiche'></div>
<article class='relation-panel'>
</article>
</section>

View File

@ -1,4 +1,5 @@
function updateListener(b,a,c){b.removeEventListener(a,c);b.addEventListener(a,c)}var importCallLog=$('input#call_log-import[type="file"]'),ficheContainer=$("article.relation-panel"),subjectManager,contactManager,miniManager,ficheManager;function dynamicUpdate(){console.log("DYNAMIC UPDATE: UPDATING");miniManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.sync();miniManager.storageToFields();contactManager.storageToFields()}
function updateListener(b,a,c){b.removeEventListener(a,c);b.addEventListener(a,c)}var importCallLog=$('input#call_log-import[type="file"]'),ficheContainer=$("article.relation-panel"),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()}
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);miniManager=new inputPhoneMini($("article.relation-panel"),$("#nav-mini"));miniManager.attach(dynamicUpdate)})})})});
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){console.log(a);0==a.ModuleError&&importCallLog.addClass("active")})},!1);

View File

@ -53,7 +53,7 @@ function dynamicUpdate(){
miniManager.fieldsToStorage();
/* (2) On enregister les FICHES relation */
// ficheManager.fieldsToStorage();
ficheManager.fieldsToStorage();
/* (3) On enregistre les CONTACTS */
contactManager.fieldsToStorage();
@ -62,11 +62,11 @@ function dynamicUpdate(){
miniManager.sync();
/* (5) On synchronise les FICHE avec les CONTACTS */
// ficheManager.sync();
ficheManager.sync();
/* (6) On affiche le tout */
miniManager.storageToFields();
// ficheManager.storageToFields();
ficheManager.storageToFields();
contactManager.storageToFields();
}
@ -134,18 +134,20 @@ include('/js/includes/input-phone-fiche.js', function(){
$('#nav-mini')
);
/* (2) On le démarre */
miniManager.attach(dynamicUpdate);
/* [6] Gestion des fiches relation
=========================================================*/
/* (1) On crée une instance du gestionnaire des fiches relation */
miniManager = new inputPhoneMini(
ficheManager = new inputPhoneFiche(
$('article.relation-panel'),
$('#nav-mini')
$('#nav-fiche')
);
miniManager.attach(dynamicUpdate);
/* (2) On le démarre */
ficheManager.attach(dynamicUpdate);