NxTIC/public_html/view/js/data.js

162 lines
4.4 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* [0] Gestion de l'export
=========================================================*/
/* (0) Initialisation des variables */
var exportSubjectList = $('#export_subject-list');
var exportSubjectAdd = $('#export_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 */
exportSubjectAdd.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;';
exportSubjectList.appendChild(newElement);
}, false);
/* (2) Export des données */
$('#export-form #export_export-all').addEventListener('click', function(e){
// {1} On récupère la liste des ids des sujets //
var subjectDeflater = new FormDeflater(exportSubjectList, ['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',
subjects: subjects,
all: deflated.group == 'all' // VRAI si on veut TOUS les sujets
};
/* (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);
/* [0] Gestion de l'export
=========================================================*/
/* (0) Initialisation des variables */
var chartsSubjectList = $('#charts_subject-list');
var chartsSubjectAdd = $('#charts_add-subject');
var chartsDeflater = new FormDeflater(
document.getElementById('charts-form'),
['input'], // éléments à éviter (tagName)
['data-name'] // Attributs par ordre de priorité
);
/* (1) Gestion de l'ajout dynamique des sujets */
chartsSubjectAdd.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;';
chartsSubjectList.appendChild(newElement);
}, false);
/* (2) Export des données */
$('#charts-form #charts_export-all').addEventListener('click', function(e){
// {1} On récupère la liste des ids des sujets //
var subjectDeflater = new FormDeflater(chartsSubjectList, ['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 = chartsDeflater.deflate();
/* (4) On construit la requête */
var request = {
path: 'download/chart',
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);