/* [0] Gestion de l'export =========================================================*/ /* (0) Initialisation des variables */ var subjectList = $('#subject-list'); var subjectAdd = $('#add-subject'); var exportDeflater = new FormDeflater( document.getElementById('export-form'), ['input'], // éléments à éviter (tagName) ['data-name'] // Attributs par ordre de priorité ); /* (1) Gestion de l'ajout dynamique des sujets */ subjectAdd.addEventListener('click', function(e){ // On ajoute un input de sujet à la liste var newElement = document.createElement('input'); newElement.type = 'number'; newElement.dataset.name = 'subjects'; newElement.placeholder = 'Sujet'; newElement.style = 'width: 5em; display: block;'; subjectList.appendChild(newElement); }, false); /* (2) Export des données */ $('#export-form #export-all').addEventListener('click', function(e){ // {1} On récupère la liste des ids des sujets // var subjectDeflater = new FormDeflater(subjectList, ['input'], ['data-name']); var subjectDeflated = subjectDeflater.deflate()['subjects']; // {2} On supprime les valeurs incorrectes // var subjects = []; // Si on a q'une valeur, on la met en tableau if( !(subjectDeflated instanceof Array) ) subjectDeflated = [subjectDeflated]; for( var i = 0 ; i < subjectDeflated.length ; i++ ) if( subjectDeflated[i].length > 0 && !isNaN(subjectDeflated[i]) ) subjects.push( subjectDeflated[i] ); // {3} On récupère les types de données que l'on veut // var deflated = exportDeflater.deflate(); /* (4) On construit la requête */ var request = { path: 'download/multiple', phone: deflated.phone == '1', // VRAI si on veut les données téléphoniques facebook: deflated.facebook == '1', // VRAI si on veut les données facebook survey: deflated.survey == '1', // VRAI si on veut les données ResTIC all: deflated.group == 'all' // VRAI si on veut TOUS les sujets }; // On ajoute les sujets s'il y en a if( deflated.group != 'all' && subjects.length > 0 ) request.subjects = subjects; /* (5) On lance la requête */ api.send(request, function(res){ // Si erreur if( res.ModuleError != 0 ) return false; // Sinon on lance le téléchargement document.location = res.link; Notification.success('OK', 'Lancement du téléchargement..'); }); }, false);