var sField, sSubmit, sList,
pSubjectManager = null,
pContactManager = null,
pMiniManager = null,
pFicheManager = null,
pMatriceManager = null,
fSubjectManager = null,
fContactManager = null,
fMiniManager = null,
fFicheManager = null,
fMatriceManager = null;
var input_ts = Date.now();
/*=========================================================*/
/*=========== Gestion de la recherche de sujet ============*/
/*=========================================================*/
/* (1) On récupère les éléments utiles
---------------------------------------------------------*/
sField = $('#search-field');
sSubmit = $('#search-subject');
sList = $('section[data-sublink="survey"] ul[data-list]');
/* (2) Routine de recherche
---------------------------------------------------------*/
var tmpSubjectSearchListener = function(e){
/* (1) On construit la requête */
var request = {
path: 'subject/search',
name: sField.value
};
/* (2) On effectue la requête */
api.send(request, function(response){
// Si erreur
if( response.ModuleError != 0 ){
Notification.error('Erreur', 'La recherche a échoué.')
return false;
}
console.log(response);
/* (3) On remplit la liste des résultats */
var htmlContent = [];
for( var id in response.results ){
htmlContent.push("
");
htmlContent.push("SUJET
");
htmlContent.push("
");
htmlContent.push(" "+response.results[id].name+"
");
htmlContent.push(" "+response.results[id].creation+"
");
htmlContent.push(" ");
htmlContent.push("
");
htmlContent.push(" ");
htmlContent.push("
");
htmlContent.push( "");
}
sList.innerHTML = htmlContent.join('');
});
};
/* (3) Attachement des évènements
---------------------------------------------------------*/
sSubmit.addEventListener('click', tmpSubjectSearchListener, false);
sField.addEventListener('keypress', function(e){
if( e.keyCode === 13 )
tmpSubjectSearchListener(e);
}, false);
/* (4) On lance une recherche par défaut
---------------------------------------------------------*/
tmpSubjectSearchListener();
/*=========================================================*/
/*========== Gestion du formulaire téléphonique ===========*/
/*=========================================================*/
var pAlready = 0;
var pLoaded = [ 0, 0, 0, 0, 0 ];
var phoneRoutine = function(){
if( !Math.min.apply(Math, pLoaded) | pAlready )
return;
pAlready = 1;
console.groupEnd();
console.group('[phone] Initialization');
/* (1) Gestion du formulaire du sujet
---------------------------------------------------------*/
/* (1) On crée une instance du manager du sujet */
pSubjectManager = new inputPhoneSubject(
$('[data-sublink="phone"] article.subject-panel [data-name="subject_id"]'),
$('[data-sublink="phone"] article.subject-panel [data-name="submit"]')
);
/* (2) On le démarre */
pSubjectManager.attach(pDynamicUpdate);
/* (2) Gestion des formulaires de contact
---------------------------------------------------------*/
/* (1) On crée une instance du gestionnaire des CONTACTS */
pContactManager = new inputPhoneContact(
$('[data-sublink="phone"] article.contact-panel'),
$('[data-sublink="phone"] #p_nav-contact')
);
/* (2) On le démarre */
pContactManager.attach(pDynamicUpdate);
/* (3) Gestion des mini fiches relation
---------------------------------------------------------*/
/* (1) On crée une instance du gestionnaire des mini fiches relation */
pMiniManager = new inputPhoneMini(
$('[data-sublink="phone"] article.mini-relation-panel'),
$('[data-sublink="phone"] #p_nav-mini')
);
/* (2) On le démarre */
pMiniManager.attach(pDynamicUpdate);
/* (4) Gestion des fiches relation
---------------------------------------------------------*/
/* (1) On crée une instance du gestionnaire des fiches relation */
pFicheManager = new inputPhoneFiche(
$('[data-sublink="phone"] article.relation-panel'),
$('[data-sublink="phone"] #p_nav-fiche')
);
/* (2) On le démarre */
pFicheManager.top_size = 20;
pFicheManager.attach(pDynamicUpdate);
/* (5) Gestion de la matrice de relations
---------------------------------------------------------*/
/* (1) On crée une instance du gestionnaire de la matrice */
pMatriceManager = new inputPhoneMatrice(
$('[data-sublink="phone"] article.matrice-panel')
);
/* (2) On le démarre */
pMatriceManager.attach(pDynamicUpdate);
/* (7) Gestion de l'effacement des données locales
---------------------------------------------------------*/
$('[data-sublink="phone"] #p_clear-all').addEventListener('click', function(e){
/* (1) On vide tous les dataset de données */
lsi.clear('p_subject');
lsi.clear('p_contacts');
lsi.clear('p_mini-fiches');
lsi.clear('p_fiches');
lsi.clear('p_matrice');
lsi.clear('p_friends');
/* (2) On met à jour l'affichage */
pSubjectManager.storageToFields();
pContactManager.storageToFields();
pMiniManager.storageToFields();
pFicheManager.storageToFields();
pMatriceManager.storageToFields();
Notification.success('OK', 'Les données ont été supprimées');
}, false);
/* (8) Gestion de l'export des données locales
---------------------------------------------------------*/
$('[data-sublink="phone"] #p_export-all').addEventListener('click', function(e){
Notification.info('INFORMATION', 'Lancement du téléchargement de la sauvegarde');
/* (1) On construit les données */
var data = {
subject: lsi.export('p_subject')[0],
contacts: lsi.export('p_contacts'),
mini: lsi.export('p_mini-fiches'),
fiches: lsi.export('p_fiches'),
matrice: lsi.export('p_matrice')[0]
};
/* (2) On lance le téléchargement */
var downloadTarget = $('[data-sublink="phone"] #p_download-target'); // On récupère le lien (