/* [0] Constructeur -> définit le conteneur et le bouton d'ajout =========================================================*/ function inputPhoneSubject(iTmpId, iSubjectId, store_button){ this.tmp_id = iTmpId; this.subject_id = iSubjectId; this.store_button = store_button; } /* [1] Attributs =========================================================*/ inputPhoneSubject.prototype = { store_button: this.store_button, // Bouton d'ajout d'un formulaire tmp_id: this.tmp_id, subject_id: this.subject_id, handler: null }; /* [2] Vérification d'un formulaire =========================================================*/ inputPhoneSubject.prototype.check = function(){ /* (1) Le numéro n'est pas vide */ return this.subject_id.value.length > 0 && !isNaN(this.subject_id.value); }; /* [3] Gestion de l'enregistrement des formulaires de contact =========================================================*/ inputPhoneSubject.prototype.fieldsToStorage = function(){ console.log('SUBJECT: FIELDS TO STORAGE'); // {1} Si le formulaire n'est pas valide, on ne l'enregistre pas // if( !this.check() ) return false; // {2} On récupère et met en forme les valeurs du deflater // var obj = { tmp_id: this.tmp_id.value, subject_id: this.subject_id.value }; // {3} On enregistre les données dans le 'localStorage' // lsi.set('p_subject', 0, obj); }; /* [4] Gestion de l'affichage depuis le 'localStorage' =========================================================*/ inputPhoneSubject.prototype.storageToFields = function(){ console.log('SUBJECT: STORAGE TO FIELDS'); // {1} On récupère les informations du sujet // var subjectData = lsi.get('p_subject', 0); if( subjectData == null ) subjectData = { tmp_id: '', subject_id: '' }; // {2} On restore les valeurs // this.tmp_id.value = subjectData.tmp_id; this.subject_id.value = subjectData.subject_id; }; /* [5] Point d'amorçage de la gestion des contacts =========================================================*/ inputPhoneSubject.prototype.attach = function(handler){ console.log('SUBJECT: ATTACH'); /* (1) On initialise le jeu de données */ lsi.createDataset('p_subject'); lsi.createDataset('p_friends'); // Pointeur pour les scopes des addEventListener() this.handler = handler; var ptr = this; // Handler de mise à jour quand les champs sont bons function fts(e){ ptr.fieldsToStorage(); ptr.handler(true); ptr.storageToFields(); } /* (2) On attache l'évènement sur le bouton d'enregistrement */ this.store_button.addEventListener('click', fts, false); /* (3) On attache un évènement de 'blur' sur chaque '' */ this.subject_id.addEventListener('blur', fts, false); /* (4) On charge le sujet depuis la mémoire ('localStorage') */ this.storageToFields(); };