Merge remote-tracking branch 'origin/dev' of https://git.xdrm.io/xdrm-brackets/nxtic
This commit is contained in:
commit
a5cbdcb429
|
@ -4,6 +4,7 @@
|
|||
use \database\core\DatabaseDriver;
|
||||
use \manager\ManagerError;
|
||||
use \api\core\Checker;
|
||||
use \database\core\Repo;
|
||||
|
||||
|
||||
class ModuleRequest{
|
||||
|
|
|
@ -116,17 +116,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* DOWNLOAD D'UN FICHIER CONTENANT LES DONNEES SELECTIONNEES
|
||||
*
|
||||
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
||||
|
@ -298,9 +287,6 @@
|
|||
/* EXPORT POUR GEPHI OU AUTRE LOGICIEL SUR LE PRINCIPE NODES+EDGES
|
||||
*
|
||||
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
||||
* @phone<Boolean> Si TRUE, prend en compte les données des questionnaires cellulaires
|
||||
* @facebook<Boolean> Si TRUE, prend en compte les données des questionnaires facebook
|
||||
* @survey<Boolean> Si TRUE, prend en compte les données des questionnaires ResTIC
|
||||
* @all<Boolean> Si TRUE, prend en compte tous les sujets (annule @subjects)
|
||||
*
|
||||
* @return data<File> Retourne une archive .zip contenant toutes les données sélectionnées
|
||||
|
@ -309,15 +295,12 @@
|
|||
extract($params);
|
||||
|
||||
/* (0) Gestion du formattage des paramètres */
|
||||
$subjects = !is_array($subjects) ? [] : $subjects;
|
||||
$phone = !is_bool($phone) ? false : $phone;
|
||||
$facebook = !is_bool($facebook) ? false : $facebook;
|
||||
$survey = !is_bool($survey) ? false : $survey;
|
||||
$all = !is_bool($all) ? false : $all;
|
||||
$subjects = !is_array($subjects) ? [] : $subjects;
|
||||
$all = !is_bool($all) ? false : $all;
|
||||
|
||||
/* [0] On récupère le dictionnaire
|
||||
=========================================================*/
|
||||
$dict = file_get_contents(__BUILD__.'/src/dynamic/dictionary.json');
|
||||
$dict = file_get_contents(__BUILD__.'/lightdb/storage/dictionary.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
|
@ -331,184 +314,114 @@
|
|||
return [ 'ModuleError' => ManagerError::ParsingFailed ];
|
||||
|
||||
|
||||
/* [1] On construit l'arborescence des données
|
||||
/* [1] Initialisation
|
||||
=========================================================*/
|
||||
/* (1) Fichiers de sortie */
|
||||
$output = [
|
||||
'common_' => [
|
||||
'contacts' => '',
|
||||
'relations' => '',
|
||||
'dict' => ''
|
||||
],
|
||||
'logs/' => [] // Contiendra les journaux d'appels
|
||||
'gephi.nodes' => '', // contiendra les contacts et leurs données
|
||||
'gephi.edges' => '', // contiendra les relations
|
||||
'dict' => '' // contiendra le dictionnaire de valeurs
|
||||
];
|
||||
|
||||
/* (2) Base de données */
|
||||
$subjectdb = new lightdb('subject');
|
||||
$contactdb = new lightdb('contact');
|
||||
|
||||
|
||||
/* [2] On construit les fichiers de chaque sujet DE TELEPHONE
|
||||
/* [2] On construit la liste des sujets
|
||||
=========================================================*/
|
||||
if( $phone ){ // Si @phone vaut TRUE
|
||||
$subjectindexes = array_keys($subjectdb->index());
|
||||
$subjectids = [];
|
||||
|
||||
// On ouvre une instance de la base de données
|
||||
$db = new lightdb('phone_db');
|
||||
/* (1) On récupère tous les sujets si c'est spécifié */
|
||||
if( $all )
|
||||
|
||||
// Si on doit prendre tous les sujets, on les récupère
|
||||
if( $all )
|
||||
$subjects = array_keys( $db->index() );
|
||||
$subjectids = $subjectindexes;
|
||||
|
||||
// Pour chaque sujet
|
||||
foreach($subjects as $s=>$subjectId){
|
||||
/* (2) Sinon on retire les ids incorrects */
|
||||
else
|
||||
|
||||
/* (1) On récupère les données du sujet en cours */
|
||||
$subjectData = $db->fetch($subjectId);
|
||||
foreach($subjects as $i=>$id)
|
||||
if( in_array($id, $subjectindexes) )
|
||||
$subjectids[] = intval($id);
|
||||
|
||||
// Si on ne trouve rien, on passe au suivant
|
||||
if( $subjectData === false )
|
||||
|
||||
|
||||
/* (3) Si aucun sujet restant -> error */
|
||||
if( count($subjectids) === 0 )
|
||||
return ['ModuleError' => ManagerError::ParamError];
|
||||
|
||||
|
||||
/* [3] Export contacts/relations des sujets selectionnés
|
||||
=========================================================*/
|
||||
foreach($subjectids as $subid){
|
||||
|
||||
/* (1) On récupère les données du sujet */
|
||||
$subject = $subjectdb->fetch($subid);
|
||||
|
||||
// si pas trouvé -> suivant
|
||||
if( $subject === false )
|
||||
continue;
|
||||
|
||||
/* (2) Si aucun contact -> suivant */
|
||||
if( !isset($subject['contacts']) || !is_array($subject['contacts']) )
|
||||
continue;
|
||||
|
||||
/* (3) Pour chaque contact */
|
||||
foreach($subject['contacts'] as $c=>$contactid){
|
||||
|
||||
// {3.1} On récupère le contact //
|
||||
$contact = $contactdb->fetch($contactid);
|
||||
|
||||
// si pas trouvé -> suivant
|
||||
if( $contact === false )
|
||||
continue;
|
||||
|
||||
/* (2) On construit le log s'il existe */
|
||||
$output['logs/'][$subjectId] = self::parseCSV($subjectData['logs'], $dict['logs']);
|
||||
// {3.2} On ajoute le contact au fichier des FICHES //
|
||||
if( array_key_exists('studies2', $contact) ){
|
||||
// On affiche les colonnes pour le premier contact uniquement
|
||||
$contact['type'] = 'fiche';
|
||||
$output['gephi.nodes'] .= self::parseCSV([$contact], $dict['contacts'], strlen($output['gephi.nodes']) == 0 );
|
||||
|
||||
/* (3) On complète les relations */
|
||||
// {1} On retire les valeurs ou le type = 0 //
|
||||
$formattedRelations = [];
|
||||
foreach($subjectData['relations'] as $i=>$relation)
|
||||
if( $relation['type'] != 0 )
|
||||
array_push($formattedRelations, [
|
||||
'source' => $relation['idA'],
|
||||
'target' => $relation['idB'],
|
||||
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||
'type' => 'Undirected'
|
||||
]);
|
||||
|
||||
// {2} On ajoute au contenu //
|
||||
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
|
||||
/* (4) On ajoute les contacts à la liste */
|
||||
$output['common_']['contacts'] .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($output['common_']['contacts']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
// {3.3} On ajoute le contact au fichier des MINI //
|
||||
}elseif( array_key_exists('studies1', $contact) ){
|
||||
// On affiche les colonnes pour le premier contact uniquement
|
||||
$contact['type'] = 'mini';
|
||||
$output['gephi.nodes'] .= self::parseCSV([$contact], $dict['contacts'], strlen($output['gephi.nodes']) == 0 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// On ferme l'instance de la base de données
|
||||
$db->close();
|
||||
/* (4) Si aucune relation -> suivant */
|
||||
if( !isset($subject['relations']) || !is_array($subject['relations']) )
|
||||
continue;
|
||||
|
||||
/* (5) On ajoute les relations */
|
||||
foreach($subject['relations'] as $r=>$rel)
|
||||
|
||||
$output['gephi.edges'] .= self::parseCSV(
|
||||
[[
|
||||
'source' => $rel['idA'],
|
||||
'target' => $rel['idB'],
|
||||
'weight' => ($rel['idA']==$subid) ? .5 : 1,
|
||||
'type' => 'Undirected'
|
||||
]],
|
||||
[],
|
||||
strlen($output['gephi.edges']) == 0
|
||||
);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* [3] On construit les fichiers de chaque sujet DE FACEBOOK
|
||||
=========================================================*/
|
||||
if( $facebook ){ // Si @facebook vaut TRUE
|
||||
|
||||
// On ouvre une instance de la base de données
|
||||
$db = new lightdb('facebook_db');
|
||||
|
||||
// Si on doit prendre tous les sujets, on les récupère
|
||||
if( $all )
|
||||
$subjects = array_keys( $db->index() );
|
||||
|
||||
// Pour chaque sujet
|
||||
foreach($subjects as $s=>$subjectId){
|
||||
|
||||
/* (1) On récupère les données du sujet en cours */
|
||||
$subjectData = $db->fetch($subjectId);
|
||||
|
||||
// Si on ne trouve rien, on passe au suivant
|
||||
if( $subjectData === false )
|
||||
continue;
|
||||
|
||||
/* (2) On complète les relations */
|
||||
// {1} On retire les valeurs ou le type = 0 //
|
||||
$formattedRelations = [];
|
||||
foreach($subjectData['relations'] as $i=>$relation)
|
||||
if( $relation['type'] != 0 )
|
||||
array_push($formattedRelations, [
|
||||
'source' => $relation['idA'],
|
||||
'target' => $relation['idB'],
|
||||
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||
'type' => 'Undirected'
|
||||
]);
|
||||
|
||||
// {2} On ajoute au contenu //
|
||||
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
|
||||
/* (3) On ajoute les contacts à la liste */
|
||||
$output['common_']['contacts'] .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($output['common_']['contacts']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
|
||||
}
|
||||
|
||||
// On ferme l'instance de la base de données
|
||||
$db->close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* [4] On construit les fichiers de chaque sujet DE FORMULAIRE
|
||||
=========================================================*/
|
||||
if( $survey ){ // Si @survey vaut TRUE
|
||||
|
||||
// On ouvre une instance de la base de données
|
||||
$db = new lightdb('survey_db');
|
||||
|
||||
// Si on doit prendre tous les sujets, on les récupère
|
||||
if( $all )
|
||||
$subjects = array_keys( $db->index() );
|
||||
|
||||
// Pour chaque sujet
|
||||
foreach($subjects as $s=>$subjectId){
|
||||
|
||||
/* (1) On récupère les données du sujet en cours */
|
||||
$subjectData = $db->fetch($subjectId);
|
||||
|
||||
// Si on ne trouve rien, on passe au suivant
|
||||
if( $subjectData === false )
|
||||
continue;
|
||||
|
||||
/* (2) On complète les relations */
|
||||
// {1} On retire les valeurs ou le type = 0 //
|
||||
$formattedRelations = [];
|
||||
foreach($subjectData['relations'] as $i=>$relation)
|
||||
if( $relation['type'] != 0 ) // On retire les relations ego/alter
|
||||
array_push($formattedRelations, [
|
||||
'source' => $relation['idA'],
|
||||
'target' => $relation['idB'],
|
||||
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||
'type' => 'Undirected'
|
||||
]);
|
||||
|
||||
// {2} On ajoute au contenu //
|
||||
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
|
||||
/* (3) On ajoute les contacts à la liste */
|
||||
$output['common_']['contacts'] .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($output['common_']['contacts']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||
|
||||
}
|
||||
|
||||
// On ferme l'instance de la base de données
|
||||
$db->close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* [5] On ajoute le dictionnaire
|
||||
=========================================================*/
|
||||
$output['common_']['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
|
||||
$output['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
|
||||
foreach($dict as $ds=>$dataset)
|
||||
foreach($dataset as $f=>$field)
|
||||
foreach($field as $key=>$value)
|
||||
$output['common_']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
|
||||
$output['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
|
||||
|
||||
|
||||
/* [6] Création de l'archive
|
||||
|
@ -517,12 +430,10 @@
|
|||
$fname = __TMP__.'/'.time().'.zip';
|
||||
$zip->open($fname, \ZipArchive::CREATE);
|
||||
|
||||
foreach($output as $folder=>$files){
|
||||
|
||||
foreach($files as $file=>$content)
|
||||
if( strlen($content) > 0 )
|
||||
$zip->addFromString($folder.$file.'.csv', $content);
|
||||
}
|
||||
foreach($output as $file=>$content)
|
||||
if( strlen($content) > 0 )
|
||||
$zip->addFromString($file.'.csv', $content);
|
||||
|
||||
$zip->close();
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE TÉLÉPHONIQUE
|
||||
*
|
||||
* @subject<Array> Tableau contenant les données du sujet
|
||||
* @subject<int> Id du sujet concerné
|
||||
* @contacts<Array> Tableau contenant les données des contacts
|
||||
* @mini<Array> Tableau contenant les données des mini fiches relation
|
||||
* @fiches<Array> Tableau contenant les données des fiches relation
|
||||
|
@ -91,7 +91,7 @@
|
|||
$offset = intval($uniqid) + 1;
|
||||
|
||||
// on enregistre l'id du sujet
|
||||
$subject_id = intval($subject['subject_id']);
|
||||
$subject_id = intval($subject);
|
||||
|
||||
// Contiendra la valeur de l'id maximum
|
||||
$maxId = $offset;
|
||||
|
@ -420,10 +420,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE FACEBOOK
|
||||
*
|
||||
* @subject<Array> Tableau contenant les données du sujet
|
||||
* @subject<id> Id du sujet concerné
|
||||
* @contacts<Array> Tableau contenant les données des contacts
|
||||
* @mini<Array> Tableau contenant les données des mini fiches relation
|
||||
* @fiches<Array> Tableau contenant les données des fiches relation
|
||||
|
@ -450,7 +449,7 @@
|
|||
$offset = intval($uniqid) + 1;
|
||||
|
||||
// on enregistre l'id du sujet
|
||||
$subject_id = intval($subject['subject_id']);
|
||||
$subject_id = intval($subject);
|
||||
|
||||
// Contiendra la valeur de l'id maximum
|
||||
$maxId = $offset;
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
|
||||
/* [1] On récupère l'id unique actuel
|
||||
=========================================================*/
|
||||
$funiq = fopen( __BUILD__.'/src/dynamic/uniqid', 'r+' );
|
||||
$funiq = fopen( __BUILD__.'/lightdb/storage/uniqid', 'r+' );
|
||||
flock($funiq, LOCK_EX); // On verrouille le fichier
|
||||
$uniqid = trim( fgets( $funiq ) );
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
51
|
||||
49
|
|
@ -88,33 +88,33 @@
|
|||
*/
|
||||
public static function explicit($error){
|
||||
switch($error){
|
||||
case self::Success: return "Tout s'est bien deroulé."; break;
|
||||
case self::Success: return "All right."; break;
|
||||
|
||||
case self::ParsingFailed: return "La lecture du fichier JSON ou XML a echouée."; break;
|
||||
case self::ParsingFailed: return "JSON/XML file format error."; break;
|
||||
|
||||
case self::InvalidFlags: return "Les spécifications (drapeaux) sont incorrects."; break;
|
||||
case self::UnreachableResource: return "La ressource n'existe pas (404)."; break;
|
||||
case self::MissingPath: return "Le chemin de délégation n'a pas été renseigné."; break;
|
||||
case self::WrongPathModule: return "Le chemin de délégation est incorrect ('nomModule/nomMethode')."; break;
|
||||
case self::WrongPathRepo: return "Le chemin de délégation est incorrect ('nomRepo/nomMethode')."; break;
|
||||
case self::UnknownModule: return "Le module n'existe pas."; break;
|
||||
case self::UnknownRepo: return "Le repo n'existe pas."; break;
|
||||
case self::UnknownMethod: return "Le methode n'existe pas."; break;
|
||||
case self::UncallableMethod: return "Le methode n'est pas amorçable."; break;
|
||||
case self::InvalidFlags: return "Flags are incorrect."; break;
|
||||
case self::UnreachableResource: return "Resource unreachable (404)."; break;
|
||||
case self::MissingPath: return "Path missing."; break;
|
||||
case self::WrongPathModule: return "Module path incorrect 'module/method'."; break;
|
||||
case self::WrongPathRepo: return "Repository path incorrect 'repo/method'."; break;
|
||||
case self::UnknownModule: return "Requested module not found."; break;
|
||||
case self::UnknownRepo: return "Requested repository not found."; break;
|
||||
case self::UnknownMethod: return "Requested method not found."; break;
|
||||
case self::UncallableMethod: return "Cannot call requested method."; break;
|
||||
|
||||
case self::ParamError: return "Un ou plusieurs paramètres sont manquants ou incorrects."; break;
|
||||
case self::ModuleError: return "Erreur lors du traitement du module."; break;
|
||||
case self::RepoError: return "Erreur lors du traitement du repo."; break;
|
||||
case self::ParamError: return "Wrong or missing parameter(s)."; break;
|
||||
case self::ModuleError: return "Module error."; break;
|
||||
case self::RepoError: return "Repository error."; break;
|
||||
|
||||
case self::PDOConnection: return "La connexion avec la base de données a echouée."; break;
|
||||
case self::PDOConnection: return "Database connection failed."; break;
|
||||
|
||||
case self::TokenError: return "Le token de connection est absent, érroné ou expiré."; break;
|
||||
case self::PermissionError: return "Vous n'avez pas la permission d'effectuer cette action."; break;
|
||||
case self::UploadError: return "Une erreur d'upload est survenue."; break;
|
||||
case self::FormatError: return "Le fichier n'est pas au bon format."; break;
|
||||
case self::Already: return "Action déja effectuée."; break;
|
||||
case self::TokenError: return "Access token wrong, missing or expired."; break;
|
||||
case self::PermissionError: return "Not granted to do so."; break;
|
||||
case self::UploadError: return "Upload error."; break;
|
||||
case self::FormatError: return "Format error."; break;
|
||||
case self::Already: return "Already done."; break;
|
||||
|
||||
default: return "Description d'erreur inconnue..."; break;
|
||||
default: return "Unknown debug error"; break;
|
||||
}
|
||||
|
||||
// Erreur inconnue
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
"parameters": {}
|
||||
},
|
||||
|
||||
|
||||
"markdown": {
|
||||
"description": "Retourne une description en markdown des différents modules de l'API",
|
||||
"permissions": [],
|
||||
|
@ -42,7 +41,6 @@
|
|||
"parameters": {}
|
||||
},
|
||||
|
||||
|
||||
"apiBlueprint": {
|
||||
"description": "Retourne une documentation de l'API au format API Blueprint.",
|
||||
"permissions": [],
|
||||
|
@ -70,7 +68,6 @@
|
|||
"parameters": {}
|
||||
},
|
||||
|
||||
|
||||
"getById": {
|
||||
"description": "Retourne les informations d'un utilisateur.",
|
||||
"permissions": ["admin"],
|
||||
|
@ -82,7 +79,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
"getAll": {
|
||||
"description": "Retourne les informations de tous les utilisateurs.",
|
||||
"permissions": ["admin"],
|
||||
|
@ -92,7 +88,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
"create": {
|
||||
"description": "Creation d'un nouvel administrateur.",
|
||||
"permissions": ["admin"],
|
||||
|
@ -106,7 +101,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
"remove": {
|
||||
"description": "Suppression d'un utilisateur.",
|
||||
"permissions": ["admin"],
|
||||
|
@ -127,7 +121,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
"generate": {
|
||||
"description": "Création d'un token de nom et de durée donnée",
|
||||
"permissions": ["admin"],
|
||||
|
@ -174,7 +167,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
"create": {
|
||||
"description": "Creation d'un nouveau sujet.",
|
||||
"permissions": ["admin"],
|
||||
|
@ -190,11 +182,26 @@
|
|||
|
||||
"input": {
|
||||
|
||||
"surveysync": {
|
||||
"description": "Enregistre les données d'une enquête lab-surveys.",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {
|
||||
"subject": { "description": "Id du sujet concerné.", "type": "id" },
|
||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||
"matrice": { "description": "Matrice contenant les relations entre les plus proches contacts", "type": "array<array>", "optional": true }
|
||||
},
|
||||
"output": {
|
||||
"subject_id": { "description": "Identifiant du sujet complété", "type": "id" }
|
||||
}
|
||||
},
|
||||
|
||||
"phone": {
|
||||
"description": "Enregistre les données d'une enquête téléphonique.",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {
|
||||
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
|
||||
"subject": { "description": "Id du sujet concerné", "type": "id" },
|
||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||
|
@ -209,7 +216,7 @@
|
|||
"description": "Enregistre les données d'une enquête facebook.",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {
|
||||
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
|
||||
"subject": { "description": "Id du sujet concerné", "type": "id" },
|
||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||
|
@ -256,9 +263,6 @@
|
|||
"options": { "download": true },
|
||||
"parameters": {
|
||||
"subjects": { "description": "Identifiants des sujets d'enquêtes à intégrer.", "type": "array<id>", "optional": true },
|
||||
"phone": { "description": "Si vaut TRUE, renvoie les sujets cellulaires.", "type": "boolean", "optional": true },
|
||||
"facebook": { "description": "Si vaut TRUE, renvoie les sujet facebook.", "type": "boolean", "optional": true },
|
||||
"survey": { "description": "Si vaut TRUE, renvoie les sujets ResTIC.", "type": "boolean", "optional": true },
|
||||
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
|
||||
}
|
||||
},
|
||||
|
|
|
@ -61,8 +61,8 @@ $pers = $request->answer();
|
|||
<h4>Exporter les données au format .csv pour un logiciel de visualisation de réseau</h4>
|
||||
|
||||
<strong>Choix des sujets</strong>
|
||||
<br><input type='radio' name='charts_subject-group' data-name='group' id='charts_group_0' value='all' ><label for='charts_group_0'>Tous les sujets</label>
|
||||
<br><input type='radio' name='charts_subject-group' data-name='group' id='charts_group_1' value='sel' checked><label for='charts_group_1'>Les sujets selectionnés uniquement</label>
|
||||
<br><input type='radio' name='charts_subject-group' data-name='group' id='charts_group_0' value='all' checked><label for='charts_group_0'>Tous les sujets</label>
|
||||
<br><input type='radio' name='charts_subject-group' data-name='group' id='charts_group_1' value='sel' ><label for='charts_group_1'>Les sujets selectionnés uniquement</label>
|
||||
<br><br>
|
||||
|
||||
<article style='display: inline;' id='charts_subject-list'>
|
||||
|
@ -70,10 +70,10 @@ $pers = $request->answer();
|
|||
</article>
|
||||
<input type='button' id='charts_add-subject' class='primary' value='+' style='padding:.2em .6em; margin: .5em 0'>
|
||||
|
||||
<br><br><br><strong>Types de données</strong>
|
||||
<!-- <br><br><br><strong>Types de données</strong>
|
||||
<br><br><input type='checkbox' data-name='phone' value='1' id='charts_phone_0' ><label for='charts_phone_0'>Données cellulaires</label>
|
||||
<br><br><input type='checkbox' data-name='facebook' value='1' id='charts_facebook_0'><label for='charts_facebook_0'>Données Facebook</label>
|
||||
<br><br><input type='checkbox' data-name='restic' value='1' id='charts_restic_0' ><label for='charts_restic_0'>Données <i>Lab Surveys</i></label>
|
||||
<br><br><input type='checkbox' data-name='restic' value='1' id='charts_restic_0' ><label for='charts_restic_0'>Données <i>Lab Surveys</i></label> -->
|
||||
|
||||
<br><br><input type='submit' class='primary hover' style='padding:.5em 2em;' value='Télécharger' id='charts_export-all'>
|
||||
</section>
|
||||
|
|
|
@ -82,7 +82,7 @@ $('#export-form #export_export-all').addEventListener('click', function(e){
|
|||
|
||||
|
||||
|
||||
/* [0] Gestion de l'export
|
||||
/* [0] Gestion de l'export GEPHI
|
||||
=========================================================*/
|
||||
/* (0) Initialisation des variables */
|
||||
var chartsSubjectList = $('#charts_subject-list');
|
||||
|
@ -90,8 +90,8 @@ 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é
|
||||
['input'], // éléments à éviter (tagName)
|
||||
['data-name'] // Attributs par ordre de priorité
|
||||
);
|
||||
|
||||
/* (1) Gestion de l'ajout dynamique des sujets */
|
||||
|
@ -134,17 +134,10 @@ $('#charts-form #charts_export-all').addEventListener('click', function(e){
|
|||
/* (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
|
||||
subjects: subjects,
|
||||
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){
|
||||
|
||||
|
|
|
@ -310,7 +310,7 @@ var phoneRoutine = function(){
|
|||
var request = {
|
||||
path: 'input/phone',
|
||||
|
||||
subject: lsi.export('p_subject')[0],
|
||||
subject: lsi.export('p_subject')[0].subject_id,
|
||||
contacts: lsi.export('p_contacts'),
|
||||
mini: lsi.export('p_mini-fiches'),
|
||||
fiches: lsi.export('p_fiches'),
|
||||
|
@ -457,7 +457,7 @@ var facebookRoutine = function(){
|
|||
|
||||
/* (1) On construit les données */
|
||||
var data = {
|
||||
subject: lsi.export('f_subject')[0],
|
||||
subject: lsi.export('f_subject')[0].subject_id,
|
||||
contacts: lsi.export('f_contacts'),
|
||||
mini: lsi.export('f_mini-fiches'),
|
||||
fiches: lsi.export('f_fiches'),
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
var exportSubjectList=$("#export_subject-list"),exportSubjectAdd=$("#export_add-subject"),exportDeflater=new FormDeflater(document.getElementById("export-form"),["input"],["data-name"]);exportSubjectAdd.addEventListener("click",function(b){b=document.createElement("input");b.type="number";b.dataset.name="subjects";b.placeholder="Sujet";b.style="width: 5em; display: block;";exportSubjectList.appendChild(b)},!1);
|
||||
$("#export-form #export_export-all").addEventListener("click",function(b){var a=(new FormDeflater(exportSubjectList,["input"],["data-name"])).deflate().subjects;b=[];a instanceof Array||(a=[a]);for(var c=0;c<a.length;c++)0<a[c].length&&!isNaN(a[c])&&b.push(a[c]);a=exportDeflater.deflate();api.send({path:"download/multiple",subjects:b,all:"all"==a.group},function(a){if(0!=a.ModuleError)return!1;document.location=a.link;Notification.success("OK","Lancement du t\u00e9l\u00e9chargement..")})},!1);
|
||||
var chartsSubjectList=$("#charts_subject-list"),chartsSubjectAdd=$("#charts_add-subject"),chartsDeflater=new FormDeflater(document.getElementById("charts-form"),["input"],["data-name"]);chartsSubjectAdd.addEventListener("click",function(b){b=document.createElement("input");b.type="number";b.dataset.name="subjects";b.placeholder="Sujet";b.style="width: 5em; display: block;";chartsSubjectList.appendChild(b)},!1);
|
||||
$("#charts-form #charts_export-all").addEventListener("click",function(b){var a=(new FormDeflater(chartsSubjectList,["input"],["data-name"])).deflate().subjects;b=[];a instanceof Array||(a=[a]);for(var c=0;c<a.length;c++)0<a[c].length&&!isNaN(a[c])&&b.push(a[c]);a=chartsDeflater.deflate();c={path:"download/chart",phone:"1"==a.phone,facebook:"1"==a.facebook,survey:"1"==a.survey,all:"all"==a.group};"all"!=a.group&&0<b.length&&(c.subjects=b);api.send(c,function(a){if(0!=a.ModuleError)return!1;document.location=
|
||||
a.link;Notification.success("OK","Lancement du t\u00e9l\u00e9chargement..")})},!1);
|
||||
var exportSubjectList=$("#export_subject-list"),exportSubjectAdd=$("#export_add-subject"),exportDeflater=new FormDeflater(document.getElementById("export-form"),["input"],["data-name"]);exportSubjectAdd.addEventListener("click",function(a){a=document.createElement("input");a.type="number";a.dataset.name="subjects";a.placeholder="Sujet";a.style="width: 5em; display: block;";exportSubjectList.appendChild(a)},!1);
|
||||
$("#export-form #export_export-all").addEventListener("click",function(a){var b=(new FormDeflater(exportSubjectList,["input"],["data-name"])).deflate().subjects;a=[];b instanceof Array||(b=[b]);for(var c=0;c<b.length;c++)0<b[c].length&&!isNaN(b[c])&&a.push(b[c]);b=exportDeflater.deflate();api.send({path:"download/multiple",subjects:a,all:"all"==b.group},function(a){if(0!=a.ModuleError)return!1;document.location=a.link;Notification.success("OK","Lancement du t\u00e9l\u00e9chargement..")})},!1);
|
||||
var chartsSubjectList=$("#charts_subject-list"),chartsSubjectAdd=$("#charts_add-subject"),chartsDeflater=new FormDeflater(document.getElementById("charts-form"),["input"],["data-name"]);chartsSubjectAdd.addEventListener("click",function(a){a=document.createElement("input");a.type="number";a.dataset.name="subjects";a.placeholder="Sujet";a.style="width: 5em; display: block;";chartsSubjectList.appendChild(a)},!1);
|
||||
$("#charts-form #charts_export-all").addEventListener("click",function(a){var b=(new FormDeflater(chartsSubjectList,["input"],["data-name"])).deflate().subjects;a=[];b instanceof Array||(b=[b]);for(var c=0;c<b.length;c++)0<b[c].length&&!isNaN(b[c])&&a.push(b[c]);b=chartsDeflater.deflate();api.send({path:"download/chart",subjects:a,all:"all"==b.group},function(a){if(0!=a.ModuleError)return!1;document.location=a.link;Notification.success("OK","Lancement du t\u00e9l\u00e9chargement..")})},!1);
|
||||
|
|
|
@ -9,17 +9,18 @@ function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargeme
|
|||
function(a){$('[data-sublink="phone"] #p_local-upload').click()},!1),$('[data-sublink="phone"] #p_local-upload').addEventListener("click",function(a){a.target.value=null},!1),$('[data-sublink="phone"] #p_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="phone"] #p_local-upload').files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("Erreur",a.ModuleError),!1;lsi.set("p_subject",0,a.local_data.subject);lsi["import"]("p_contacts",
|
||||
a.local_data.contacts);lsi["import"]("p_mini-fiches",a.local_data.mini);lsi["import"]("p_fiches",a.local_data.fiches);lsi.set("p_matrice",0,a.local_data.matrice);pSubjectManager.storageToFields();pContactManager.storageToFields();pMatriceManager.storageToFields();pDynamicUpdate(!0)})},!1),$('[data-sublink="phone"] #p_submit-all').addEventListener("click",function(a){console.log("> GATHERING ALL DATA");pContactManager.fieldsToStorage();pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();
|
||||
if(!pSubjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du <i>sujet</i>"),!1;a=lsi["export"]("p_mini-fiches");var b=0,c;for(c in a)if(!isNaN(c)&&(b++,!a[c].valid))return Notification.warning("Attention","La <i>fiche rapide</i> <b>"+b+"</b> est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("p_fiches");for(c in a)if(!a[c].valid)return Notification.warning("Attention","La <i>fiche compl\u00e8te</i> <b>"+(parseInt(c)+1)+"</b> est incompl\u00e8te et/ou incorrecte"),
|
||||
!1;c={path:"input/phone",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]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK","L'identifiant du sujet est <strong>"+a.subject_id+"</strong> ! Tout s'est bien d\u00e9roul\u00e9.",1E4);console.log(a)},!1)},!1),console.groupEnd())};
|
||||
!1;c={path:"input/phone",subject:lsi["export"]("p_subject")[0].subject_id,contacts:lsi["export"]("p_contacts"),mini:lsi["export"]("p_mini-fiches"),fiches:lsi["export"]("p_fiches"),matrice:lsi["export"]("p_matrice")[0]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK","L'identifiant du sujet est <strong>"+a.subject_id+"</strong> ! Tout s'est bien d\u00e9roul\u00e9.",1E4);console.log(a)},!1)},!1),console.groupEnd())};
|
||||
include("/js/includes/input-phone-subject.js",function(){pLoaded[0]=1;phoneRoutine()});include("/js/includes/input-phone-contact.js",function(){pLoaded[1]=1;phoneRoutine()});include("/js/includes/input-phone-mini.js",function(){pLoaded[2]=1;phoneRoutine()});include("/js/includes/input-phone-fiche.js",function(){pLoaded[3]=1;phoneRoutine()});include("/js/includes/input-phone-matrice.js",function(){pLoaded[4]=1;phoneRoutine()});
|
||||
var fAlready=0,fLoaded=[0,0,0,0,0],facebookRoutine=function(){!Math.min.apply(Math,fLoaded)|fAlready||(fAlready=1,console.groupEnd(),console.group("[facebook] Initialization"),fSubjectManager=new inputFacebookSubject($('[data-sublink="facebook"] article.subject-panel [data-name="subject_id"]'),$('[data-sublink="facebook"] article.subject-panel [data-name="submit"]')),fSubjectManager.attach(fDynamicUpdate),fContactManager=new inputFacebookContact($('[data-sublink="facebook"] article.contact-panel'),
|
||||
$('[data-sublink="facebook"] #f_nav-contact')),fContactManager.attach(fDynamicUpdate),fMiniManager=new inputFacebookMini($('[data-sublink="facebook"] article.mini-relation-panel'),$('[data-sublink="facebook"] #f_nav-mini')),fMiniManager.attach(fDynamicUpdate),fFicheManager=new inputFacebookFiche($('[data-sublink="facebook"] article.relation-panel'),$('[data-sublink="facebook"] #f_nav-fiche')),fFicheManager.top_size=20,fFicheManager.attach(fDynamicUpdate),fMatriceManager=new inputFacebookMatrice($('[data-sublink="facebook"] article.matrice-panel')),
|
||||
fMatriceManager.attach(fDynamicUpdate),$('[data-sublink="facebook"] #f_clear-all').addEventListener("click",function(a){lsi.clear("f_subject");lsi.clear("f_contacts");lsi.clear("f_mini-fiches");lsi.clear("f_fiches");lsi.clear("f_matrice");lsi.clear("f_friends");fSubjectManager.storageToFields();fContactManager.storageToFields();fMiniManager.storageToFields();fFicheManager.storageToFields();fMatriceManager.storageToFields();Notification.success("OK","Les donn\u00e9es ont \u00e9t\u00e9 supprim\u00e9es")},
|
||||
!1),$('[data-sublink="facebook"] #f_export-all').addEventListener("click",function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde");a={subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};var b=$('[data-sublink="facebook"] #f_download-target');b.download="local-facebook-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));
|
||||
b.click()},!1),$('[data-sublink="facebook"] #f_import-all').addEventListener("click",function(a){$('[data-sublink="facebook"] #f_local-upload').click()},!1),$('[data-sublink="facebook"] #f_local-upload').addEventListener("click",function(a){a.target.value=null},!1),$('[data-sublink="facebook"] #f_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="facebook"] #f_local-upload').files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("Erreur",
|
||||
a.ModuleError),!1;lsi.set("f_subject",0,a.local_data.subject);lsi["import"]("f_contacts",a.local_data.contacts);lsi["import"]("f_mini-fiches",a.local_data.mini);lsi["import"]("f_fiches",a.local_data.fiches);lsi.set("f_matrice",0,a.local_data.matrice);pSubjectManager.storageToFields();pContactManager.storageToFields();pMatriceManager.storageToFields();pDynamicUpdate(!0)})},!1),$('[data-sublink="facebook"] #f_submit-all').addEventListener("click",function(a){console.log("> GATHERING ALL DATA");pContactManager.fieldsToStorage();
|
||||
pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();if(!pSubjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du <i>sujet</i>"),!1;a=lsi["export"]("f_mini-fiches");var b=0,c;for(c in a)if(!isNaN(c)&&(b++,!a[c].valid))return Notification.warning("Attention","La <i>fiche rapide</i> <b>"+b+"</b> est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("f_fiches");for(c in a)if(!a[c].valid)return Notification.warning("Attention","La <i>fiche compl\u00e8te</i> <b>"+
|
||||
(parseInt(c)+1)+"</b> est incompl\u00e8te et/ou incorrecte"),!1;c={path:"input/facebook",subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK","L'identifiant du sujet est <strong>"+a.subject_id+"</strong> ! Tout s'est bien d\u00e9roul\u00e9.",
|
||||
1E4);console.log(a)},!1)},!1),console.groupEnd())};include("/js/includes/input-facebook-subject.js",function(){fLoaded[0]=1;facebookRoutine()});include("/js/includes/input-facebook-contact.js",function(){fLoaded[1]=1;facebookRoutine()});include("/js/includes/input-facebook-mini.js",function(){fLoaded[2]=1;facebookRoutine()});include("/js/includes/input-facebook-fiche.js",function(){fLoaded[3]=1;facebookRoutine()});include("/js/includes/input-facebook-matrice.js",function(){fLoaded[4]=1;facebookRoutine()});
|
||||
!1),$('[data-sublink="facebook"] #f_export-all').addEventListener("click",function(a){Notification.info("INFORMATION","Lancement du t\u00e9l\u00e9chargement de la sauvegarde");a={subject:lsi["export"]("f_subject")[0].subject_id,contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};var b=$('[data-sublink="facebook"] #f_download-target');b.download="local-facebook-data.json";b.href="data:application/octet-stream,"+
|
||||
encodeURIComponent(JSON.stringify(a));b.click()},!1),$('[data-sublink="facebook"] #f_import-all').addEventListener("click",function(a){$('[data-sublink="facebook"] #f_local-upload').click()},!1),$('[data-sublink="facebook"] #f_local-upload').addEventListener("click",function(a){a.target.value=null},!1),$('[data-sublink="facebook"] #f_local-upload').addEventListener("change",function(a){a={path:"upload/local_data",file:$('[data-sublink="facebook"] #f_local-upload').files[0]};api.send(a,function(a){console.log(a);
|
||||
if(0!=a.ModuleError)return Notification.error("Erreur",a.ModuleError),!1;lsi.set("f_subject",0,a.local_data.subject);lsi["import"]("f_contacts",a.local_data.contacts);lsi["import"]("f_mini-fiches",a.local_data.mini);lsi["import"]("f_fiches",a.local_data.fiches);lsi.set("f_matrice",0,a.local_data.matrice);pSubjectManager.storageToFields();pContactManager.storageToFields();pMatriceManager.storageToFields();pDynamicUpdate(!0)})},!1),$('[data-sublink="facebook"] #f_submit-all').addEventListener("click",
|
||||
function(a){console.log("> GATHERING ALL DATA");pContactManager.fieldsToStorage();pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();if(!pSubjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du <i>sujet</i>"),!1;a=lsi["export"]("f_mini-fiches");var b=0,c;for(c in a)if(!isNaN(c)&&(b++,!a[c].valid))return Notification.warning("Attention","La <i>fiche rapide</i> <b>"+b+"</b> est incompl\u00e8te et/ou incorrecte"),!1;a=lsi["export"]("f_fiches");
|
||||
for(c in a)if(!a[c].valid)return Notification.warning("Attention","La <i>fiche compl\u00e8te</i> <b>"+(parseInt(c)+1)+"</b> est incompl\u00e8te et/ou incorrecte"),!1;c={path:"input/facebook",subject:lsi["export"]("f_subject")[0],contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};api.send(c,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;Notification.success("OK",
|
||||
"L'identifiant du sujet est <strong>"+a.subject_id+"</strong> ! Tout s'est bien d\u00e9roul\u00e9.",1E4);console.log(a)},!1)},!1),console.groupEnd())};include("/js/includes/input-facebook-subject.js",function(){fLoaded[0]=1;facebookRoutine()});include("/js/includes/input-facebook-contact.js",function(){fLoaded[1]=1;facebookRoutine()});include("/js/includes/input-facebook-mini.js",function(){fLoaded[2]=1;facebookRoutine()});include("/js/includes/input-facebook-fiche.js",function(){fLoaded[3]=1;facebookRoutine()});
|
||||
include("/js/includes/input-facebook-matrice.js",function(){fLoaded[4]=1;facebookRoutine()});
|
||||
var pDynamicUpdate=function(a){var b=a instanceof Element,c=b&&"INPUT"==a.tagName&&"submit"==a.type,g=b&&"SPAN"==a.tagName&&("p_nav-mini"==a.parentNode.id||"p_nav-fiche"==a.parentNode.id),b=b&&"SPAN"==a.tagName&&"p_nav-contact"==a.parentNode.id;if(!c&&!g&&!b&&!0!==a)return!1;console.groupEnd();console.groupEnd();console.group("[phone] Dynamic Update");pMiniManager.fieldsToStorage();pFicheManager.fieldsToStorage();pContactManager.fieldsToStorage();pMatriceManager.fieldsToStorage();pFicheManager.sync();
|
||||
pMiniManager.sync();!0===a?api.send({path:"subject/getFriends",subject_id:pSubjectManager.subject_id.value},function(a){console.warn("xx",a);if(0!=a.ModuleError)return console.groupEnd(),!1;lsi["import"]("p_friends",a.subjects);pMiniManager.storageToFields();pFicheManager.storageToFields();pMatriceManager.storageToFields();pContactManager.storageToFields();pMiniManager.updateNavBar();pFicheManager.updateNavBar()}):(pMiniManager.storageToFields(),pFicheManager.storageToFields(),pMatriceManager.storageToFields(),
|
||||
pMiniManager.updateNavBar(),pFicheManager.updateNavBar(),(c||b)&&pContactManager.storageToFields());console.groupEnd()},fDynamicUpdate=function(a){var b=a instanceof Element,c=b&&"INPUT"==a.tagName&&"submit"==a.type,g=b&&"SPAN"==a.tagName&&("f_nav-mini"==a.parentNode.id||"f_nav-fiche"==a.parentNode.id),b=b&&"SPAN"==a.tagName&&"f_nav-contact"==a.parentNode.id;if(!c&&!g&&!b&&!0!==a)return!1;console.groupEnd();console.groupEnd();console.group("[facebook] Dynamic Update");fMiniManager.fieldsToStorage();
|
||||
|
|
|
@ -13,9 +13,14 @@
|
|||
|
||||
if( $LOG ){
|
||||
|
||||
var_dump('subjects');
|
||||
foreach($sl->index() as $index=>$null)
|
||||
var_dump( $index.' # '.$sl->fetch($index)['subject']['name'] );
|
||||
|
||||
$sub = $sl->fetch(1);
|
||||
|
||||
var_dump( count($sub['relations']) );
|
||||
var_dump( 'contacts: '.count($sub['contacts']) );
|
||||
var_dump( 'relations: '.count($sub['relations']) );
|
||||
|
||||
foreach($sub['relations'] as $rel){
|
||||
if( $rel['idA'] == 1 )
|
Loading…
Reference in New Issue