/* [0] Constructeur -> définit le conteneur et le bouton d'ajout =========================================================*/ function inputPhoneSubject(iNumber, iUsername, iFirstname, iLastname, store_button){ this.number = iNumber; this.username = iUsername; this.firstname = iFirstname; this.lastname = iLastname; this.store_button = store_button; } /* [1] Attributs =========================================================*/ inputPhoneSubject.prototype = { store_button: this.store_button, // Bouton d'ajout d'un formulaire number: this.number, username: this.username, firstname: this.firstname, lastname: this.lastname }; /* [2] Gestion de l'enregistrement des formulaires de contact =========================================================*/ inputPhoneSubject.prototype.fieldsToStorage = function(){ console.log('SUBJECT: FIELDS TO STORAGE'); // {1} Vérification des champs // // Le numéro n'est pas vide var validForm = this.number.value.length > 0; // ET le pseudo et/ou le prénom et/ou le nom n'est pas vide validForm = validForm && this.username.value.length+this.firstname.value.length+this.lastname.value.length > 0; // Si le formulaire n'est pas valide, on ne l'enregistre pas if( !validForm ) return false; // {2} On récupère et met en forme les valeurs du deflater // var obj = { number: this.number.value, username: this.username.value, firstname: this.firstname.value, lastname: this.lastname.value }; // {3} On enregistre les données dans le 'localStorage' // lsi.set('subject', 'form', obj); }; /* [3] 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('subject', 'form'); if( subjectData == null ) return; // {2} On restore les valeurs // this.number.value = subjectData.number; this.username.value = subjectData.username; this.firstname.value = subjectData.firstname; this.lastname.value = subjectData.lastname; }; /* [4] Point d'amorçage de la gestion des contacts =========================================================*/ inputPhoneSubject.prototype.attach = function(){ console.log('SUBJECT: ATTACH'); /* (1) On initialise le jeu de données */ lsi.createDataset('subject'); /* (2) On attache l'évènement sur le bouton d'ajout de contact */ var ptr = this; this.store_button.addEventListener('click', function(e){ ptr.fieldsToStorage(); }, false); /* (3) On charge le sujet depuis la mémoire ('localStorage') */ this.storageToFields(); };