NxTIC/js/includes/input-phone-subject.js

89 lines
2.8 KiB
JavaScript

/* [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();
};