Renommage '/src/upload/phone_storage' en '/src/dynamic/phone' et '/src/dynamic/phone_db'
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
"root": "/src/upload",
|
||||
"directories": [
|
||||
"call_log",
|
||||
"local_data",
|
||||
"phone_storage"
|
||||
]
|
||||
"root": "/src/upload",
|
||||
"directories": [
|
||||
"call_log",
|
||||
"local_data"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -303,19 +303,19 @@ inputFacebookFiche.prototype.storageToFields = function(){
|
|||
inputFacebookFiche.prototype.sync = function(){
|
||||
console.log('FICHE: SYNC');
|
||||
|
||||
/* (1) Mise à jour en fonction des contacts APRÈS IMPORT
|
||||
/* (1) Mise à jour en fonction des contacts Top 20
|
||||
---------------------------------------------------------*/
|
||||
/* (1) On récupère tous les CONTACTS */
|
||||
var contacts = lsi.export('f_contacts');
|
||||
var addedFicheUids = []; // Contiendra les uids des fiches qui seront crées
|
||||
|
||||
|
||||
/* (2) Mise à jour en fonction des contacts APRÈS SAISIE MANUELLE
|
||||
/* (2) Mise à jour en fonction des contacts
|
||||
---------------------------------------------------------*/
|
||||
// Nombre maximum de fiches (20, sauf si moins de 20 contacts, dans ce cas, le nombre de contacts);
|
||||
var nbMaxFiche = lsi.keys('f_contacts').length < 20 ? lsi.keys('contacts').length : 20;
|
||||
|
||||
// On complète en fonction des contacts séquentiellement APPELS, puis SMS
|
||||
// On complète en fonction des contacts séquentiellement HISTORIQUE, puis MESSENGER
|
||||
if( addedFicheUids.length < nbMaxFiche ){
|
||||
|
||||
/* (1) Pour chaque CONTACT, on met à jour/crée la FICHE associée*/
|
||||
|
|
|
@ -122,11 +122,18 @@
|
|||
|
||||
/* [0] On récupère le dictionnaire
|
||||
=========================================================*/
|
||||
$dict = json_decode( file_get_contents( __ROOT__.'/src/upload/phone_storage/dictionary.json'), true );
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/upload/phone_storage');
|
||||
|
||||
// Si erreur de lecture
|
||||
if( is_null($dict) )
|
||||
return array( 'ModuleError' => ManagerError::ParsingFailed );
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
return ManagerError::UnreachableResource;
|
||||
|
||||
/* (3) On récupère la config sous forme de tableau */
|
||||
$dict = json_decode( $dict, true );
|
||||
|
||||
/* (4) Si erreur de PARSAGE */
|
||||
if( !is_array($dict) )
|
||||
return ManagerError::ParsingFailed;
|
||||
|
||||
|
||||
// Contiendra les données de tous les sujets
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
|
||||
/* [0] On récupère l'id unique actuel
|
||||
=========================================================*/
|
||||
$funiq = fopen( __ROOT__.'/src/upload/phone_storage/uniqid', 'r+' );
|
||||
$funiq = fopen( __ROOT__.'/src/dynamic/phone/uniqid', 'r+' );
|
||||
flock($funiq, LOCK_EX); // On verrouille le fichier
|
||||
$uniqid = fgets( $funiq );
|
||||
|
||||
|
@ -92,7 +92,7 @@
|
|||
|
||||
|
||||
/* (1) On définit les 2 fichiers utiles */
|
||||
$tmpfile = __ROOT__.'/tmp/phone_storage_'.$subject['tmp_id'].'.json';
|
||||
$tmpfile = __ROOT__.'/tmp/phone_'.$subject['tmp_id'].'.json';
|
||||
|
||||
/* (2) Si on a déja crée le fichier avec le journal d'appel dedans, on le récupère */
|
||||
$storage_already = is_string($subject['tmp_id']) && strlen($subject['tmp_id']) == 40 && file_exists($tmpfile);
|
||||
|
@ -199,7 +199,220 @@
|
|||
|
||||
/* [6] On enregistre tout dans 'lightdb'
|
||||
=========================================================*/
|
||||
$db = new lightdb('db', __ROOT__.'/src/upload/phone_storage/');
|
||||
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
||||
$db->insert( $subject_id, $file );
|
||||
$db->close();
|
||||
|
||||
/* [7] On met à jour le nouvel ID unique
|
||||
=========================================================*/
|
||||
// $maxId += $offset;
|
||||
rewind($funiq); // On revient au début du fichier
|
||||
fwrite($funiq, $offset+$maxId); // On écrit la nouvelle valeur (forcément plus grande)
|
||||
flock($funiq, LOCK_UN); // On débloque le verrou
|
||||
fclose($funiq);
|
||||
|
||||
/* [8] On supprime le fichier temporaire si existe
|
||||
=========================================================*/
|
||||
if( file_exists($tmpfile) )
|
||||
unlink($tmpfile);
|
||||
|
||||
|
||||
/* [9] Gestion du retour
|
||||
=========================================================*/
|
||||
return array(
|
||||
'ModuleError' => ManagerError::Success,
|
||||
'subject_id' => $subject_id
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE FACEBOOK
|
||||
*
|
||||
* @subject<Array> Tableau contenant les données du sujet
|
||||
* @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
|
||||
*
|
||||
* @return subject_id<int> Retourne l'id sujet de l'enquête
|
||||
*
|
||||
*/
|
||||
public static function facebook($params){
|
||||
extract($params);
|
||||
|
||||
/* [0] On récupère l'id unique actuel
|
||||
=========================================================*/
|
||||
$funiq = fopen( __ROOT__.'/src/dynamic/facebook/uniqid', 'r+' );
|
||||
flock($funiq, LOCK_EX); // On verrouille le fichier
|
||||
$uniqid = fgets( $funiq );
|
||||
|
||||
if( !is_numeric($uniqid) )
|
||||
$uniqid = 0;
|
||||
|
||||
// Décalage à appliquer à tous les ids
|
||||
$offset = intval($uniqid) + 2;
|
||||
|
||||
// on enregistre l'id du sujet
|
||||
$subject_id = intval($uniqid) + 1;
|
||||
|
||||
// Contiendra la valeur de l'id maximum
|
||||
$maxId = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
/* [1] On récupère les logs s'ils existent
|
||||
=========================================================*/
|
||||
// Contiendra le contenu du fichier
|
||||
$file = array( 'logs' => array() );
|
||||
|
||||
|
||||
/* (1) On définit les 2 fichiers utiles */
|
||||
$tmpfile = __ROOT__.'/tmp/facebook_'.$subject['tmp_id'].'.json';
|
||||
|
||||
/* (2) Si on a déja crée le fichier avec le journal d'appel dedans, on le récupère */
|
||||
$storage_already = is_string($subject['tmp_id']) && strlen($subject['tmp_id']) == 40 && file_exists($tmpfile);
|
||||
|
||||
|
||||
/* (3) Si on a déja crée le fichier, on essaie de récupérer son contenu */
|
||||
if( $storage_already ){
|
||||
$file = json_decode( file_get_contents($tmpfile), true );
|
||||
|
||||
// erreur
|
||||
if( $file == null )
|
||||
return array( 'ModuleRequest' => ManagerError::ParsingFailed );
|
||||
|
||||
// On incrémente tous les ids de l'offset
|
||||
foreach($file['logs'] as $i=>$log){
|
||||
$file['logs'][$i]['id'] = $offset + $log['id'];
|
||||
|
||||
if( $log['id'] > $maxId )
|
||||
$maxId = (int) $log['id'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* [2] On enregistre les données du sujet
|
||||
=========================================================*/
|
||||
$file['subject'] = array(
|
||||
'id' => $offset + $subject_id,
|
||||
'name' => self::readableName($subject['username'], $subject['firstname'], $subject['lastname'])
|
||||
);
|
||||
|
||||
|
||||
/* [3] On enregistre les contacts des MINI
|
||||
=========================================================*/
|
||||
$file['contacts'] = array();
|
||||
|
||||
foreach($mini as $miniData){
|
||||
// On récupère les données du contact associé
|
||||
$contact = $contacts[ $miniData['uid'] ];
|
||||
|
||||
if( $miniData['uid'] > $maxId )
|
||||
$maxId = (int) $miniData['uid'];
|
||||
|
||||
// On remplit les données qui iront dans le fichier pour ce contact
|
||||
array_push($file['contacts'], array(
|
||||
'id' => $offset + $miniData['uid'],
|
||||
'name' => self::readableName($contact['username'], $contact['firstname'], $contact['lastname']),
|
||||
'sexe' => $miniData['sexe'],
|
||||
'age' => $miniData['age'],
|
||||
'studies1' => $miniData['studies'],
|
||||
'reltype' => ($miniData['reltype']==10) ? $miniData['reltypeSpecial'] : $miniData['reltype'], // si 'autre' -> valeur, sinon le code
|
||||
'dist' => $miniData['loc']
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* [4] On enregistre les contacts des FICHES
|
||||
=========================================================*/
|
||||
foreach($fiches as $ficheData){
|
||||
// On récupère les données du contact associé
|
||||
$contact = $contacts[ $ficheData['uid'] ];
|
||||
|
||||
if( $ficheData['uid'] > $maxId )
|
||||
$maxId = (int) $ficheData['uid'];
|
||||
|
||||
// On remplit les données qui iront dans le fichier pour ce contact
|
||||
array_push($file['contacts'], array(
|
||||
'id' => $offset + $ficheData['uid'],
|
||||
'name' => self::readableName($contact['username'], $contact['firstname'], $contact['lastname']),
|
||||
'sexe' => $ficheData['sexe'],
|
||||
'age' => $ficheData['age'],
|
||||
'studies2' => $ficheData['studies'],
|
||||
'reltype' => ($ficheData['reltype']==10) ? $ficheData['reltypeSpecial'] : $ficheData['reltype'], // si 'autre' -> valeur, sinon le code
|
||||
'dist' => $ficheData['loc'],
|
||||
'job' => $ficheData['job'],
|
||||
'famsit' => $ficheData['famsit'],
|
||||
'city' => $ficheData['city'],
|
||||
'cp' => $ficheData['cp'],
|
||||
'duration' => $ficheData['duration'],
|
||||
'context' => $ficheData['context'],
|
||||
'contextExtra' => $ficheData['contextSpecial'],
|
||||
'freq' => $ficheData['freq'],
|
||||
'connect' => $ficheData['connect'],
|
||||
'connectExtra' => $ficheData['connectSpecial']
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* [5] On enregistre les relations de la MATRICE
|
||||
=========================================================*/
|
||||
$file['relations'] = array();
|
||||
|
||||
foreach($matrice as $A=>$Bs)
|
||||
foreach($Bs as $B)
|
||||
array_push($file['relations'], array(
|
||||
'idA' => $offset + $A,
|
||||
'idB' => $offset + $B
|
||||
));
|
||||
|
||||
|
||||
/* [6] On enregistre tout dans 'lightdb'
|
||||
=========================================================*/
|
||||
$db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/');
|
||||
$db->insert( $subject_id, $file );
|
||||
$db->close();
|
||||
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="32px"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
id="svg3901"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="18.svg">
|
||||
<metadata
|
||||
id="metadata3914">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview3912"
|
||||
showgrid="false"
|
||||
inkscape:zoom="20.85965"
|
||||
inkscape:cx="12.887181"
|
||||
inkscape:cy="17.571155"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="icon-150-tag-checked"
|
||||
inkscape:snap-page="true" />
|
||||
<desc
|
||||
id="desc3905" />
|
||||
<defs
|
||||
id="defs3907" />
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
id="Page-1"
|
||||
stroke="none"
|
||||
stroke-width="1"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<g
|
||||
fill="#157EFB"
|
||||
id="icon-150-tag-checked"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="M 16 0.46875 C 7.4289025 0.46875 0.46875 7.4289035 0.46875 16 C 0.46875 24.571097 7.4289025 31.53125 16 31.53125 C 24.571096 31.53125 31.53125 24.571097 31.53125 16 C 31.53125 7.4289035 24.571096 0.46875 16 0.46875 z M 22.6875 9.53125 L 24.75 11.59375 L 13.875 22.46875 L 7.25 15.84375 L 9.3125 13.75 L 13.875 18.34375 L 22.6875 9.53125 z "
|
||||
id="path4447" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB |
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" ?><svg height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><path d="M6 34.5v7.5h7.5l22.13-22.13-7.5-7.5-22.13 22.13zm35.41-20.41c.78-.78.78-2.05 0-2.83l-4.67-4.67c-.78-.78-2.05-.78-2.83 0l-3.66 3.66 7.5 7.5 3.66-3.66z"/><path d="M0 0h48v48h-48z" fill="none"/></svg>
|
Before Width: | Height: | Size: 311 B |
0
src/upload/phone_storage/dictionary.json → src/dynamic/facebook/dictionary.json
Executable file → Normal file
|
@ -0,0 +1 @@
|
|||
0
|
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="100px" id="Capa_1" style="enable-background:new 0 0 96 100;" version="1.1" viewBox="0 0 96 100" width="96px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M94.456,2.028c-0.544-1.577-2.248-2.408-3.804-1.859c-1.557,0.549-2.379,2.272-1.837,3.849 c4.599,13.351-4.53,23.317-11.485,28.657l-2.817-4.072c-0.942-1.361-3.058-2.495-4.699-2.52l-15.777,0.072 c-1.64-0.026-4.085,0.735-5.43,1.689L2.123,60.786c-2.251,1.596-2.799,4.736-1.223,7.016L22.027,98.34 c1.577,2.28,4.111,2.007,6.362,0.412l46.483-32.941c1.345-0.955,2.885-3.02,3.426-4.59l4.94-15.731 c0.538-1.571,0.21-3.969-0.733-5.331l-1.717-2.481C90.139,30.451,99.841,17.665,94.456,2.028z M72.829,48.808 c-3.603,2.552-8.569,1.665-11.091-1.98c-2.523-3.648-1.648-8.672,1.957-11.227c2.859-2.027,6.573-1.879,9.246,0.088 c-1.346,0.82-2.269,1.292-2.445,1.376c-1.49,0.712-2.127,2.512-1.426,4.02c0.51,1.095,1.584,1.736,2.705,1.736 c0.426,0,0.859-0.094,1.271-0.29c0.958-0.457,1.989-1.009,3.064-1.652C76.595,43.845,75.426,46.968,72.829,48.808z"/></g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/></svg>
|
Before Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,147 @@
|
|||
{
|
||||
|
||||
|
||||
"logs": {
|
||||
"direction": { "0": "INCOMING", "1": "OUTGOING", "2": "MISSED" },
|
||||
"type": { "0": "PHONE", "1": "SMS" }
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"contacts": {
|
||||
"sexe": { "0":"Homme", "1":"Femme" },
|
||||
"age": {
|
||||
".": "NA",
|
||||
"0": "5 à 10", "1": "10 à 15", "2": "15 à 20", "3": "20 à 25", "4": "25 à 30",
|
||||
"5": "30 à 35", "6": "35 à 40", "7": "40 à 45", "8": "45 à 50", "9": "50 à 55",
|
||||
"10": "55 à 60", "11": "60 à 65", "12": "65 à 70", "13": "70 à 75", "14": "75 à 80",
|
||||
"15": "80 à 85", "16": "85 à 90", "17": "90 à 95", "18": "95 à 100"
|
||||
},
|
||||
|
||||
"studies1": {
|
||||
".": "NA",
|
||||
"0": "Inconnu",
|
||||
"1": "< BAC",
|
||||
"2": "BAC",
|
||||
"3": "BAC+2",
|
||||
"4": "BAC+3",
|
||||
"5": "BAC+4 et plus"
|
||||
},
|
||||
|
||||
"studies2": {
|
||||
".": "NA",
|
||||
"0": "Inconnue",
|
||||
"01": "Pas de scolarité",
|
||||
"02": "Aucun diplôme mais scolarité jusqu'en école primaire ou au collège",
|
||||
"03": "Aucun diplôme mais scolarité au-delà du collège",
|
||||
"04": "Certificat d'études primaires (CEP)",
|
||||
"05": "BEPC, brevet élémentaire, brevet des collèges",
|
||||
"06": "Certificat d'aptitudes professionnelles (CAP), brevet de compagnon, y compris CAPA",
|
||||
"07": "Brevet d'études professionnelles (BEP), y compris BEPA et diplômes agricoles (BAA, BPA) Diplômes sociaux (aide-soignante, auxiliaire de puériculture, travailleuse familiale)",
|
||||
"08": "Baccalauréat général, brevet supérieur BAC ( L, ES, S ou A, B , C, D, D’, E )",
|
||||
"09": "Bac technologique ou professionnel, brevet professionnel ou de technicien BAC (STI, STL, SMS, STT ou F, G, H) BEC, BEI, BEH, capacité en droit Brevet de technicien agricole (BTA)",
|
||||
"10": "Diplôme universitaire de 1er cycle BTS, DUT, DEUG Diplôme des professions sociales ou de santé, d'infirmier(ère) Diplôme universitaire propédeutique, DUEL, DUES, DEUG, PCEM",
|
||||
"11": "Diplôme universitaire de 2ème ou 3ème cycle MASTER, DOCTORAT (y compris médecine, pharmacie, dentaire), Maîtrise, DEA, DESS, CAPES, CAPET, agrégation Diplôme d'ingénieur, d'une grande école, etc."
|
||||
},
|
||||
|
||||
"job": {
|
||||
".": "NA",
|
||||
"10": "Agriculteurs exploitants (Agriculteurs, maraîchers, viticulteurs…)",
|
||||
"21": "Artisans (Maçons, électriciens, couturiers, boulangers, garagistes, coiffeurs…)",
|
||||
"22": "Commerçants et assimilés (Commerçants en détail ou en gros, buralistes, cafetiers, agents immobiliers…)",
|
||||
"23": "Chefs d'entreprise de 10 salariés ou plus",
|
||||
"31": "Professions libérales et assimilés (Médecins, avocats, notaires, architectes libéraux…)",
|
||||
"32": "Cadres de la fonction publique, professions intellectuelles et artistiques (Personnels administratifs de catégorie A, professeurs de l’enseignement secondaire ou supérieur, médecins hospitaliers, artistes…)",
|
||||
"36": "Cadres d'entreprise (Cadres administratifs, cadres commerciaux, ingénieurs…)",
|
||||
"41": "Professions intermédiaires de l'enseignement, de la santé, de la fonction publique et assimilés (Personnels administratifs de catégorie B, instituteurs, infirmiers, travailleurs sociaux…)",
|
||||
"46": "Professions intermédiaires administratives et commerciales des entreprises (Comptables, chargés de clientèles…)",
|
||||
"47": "Techniciens (Techniciens d’études, techniciens de contrôle, dessinateurs en bâtiment, géomètres…)",
|
||||
"48": "Contremaîtres, agents de maîtrise (Conducteurs de travaux, chefs d’équipe…)",
|
||||
"51": "Employés de la fonction publique (Personnels de catégorie C, agents administratifs, agents de service…)",
|
||||
"54": "Employés administratifs d'entreprise (Secrétaires, agents d’accueil…)",
|
||||
"55": "Employés de commerce (Vendeurs, caissiers…)",
|
||||
"56": "Personnels des services directs aux particuliers (Serveurs, coiffeurs, assistantes maternelles…)",
|
||||
"61": "Ouvriers qualifiés de type industriel ou artisanal (Mécaniciens, chauffeurs, cuisiniers…)",
|
||||
"66": "Ouvriers non qualifiés de type industriel ou artisanal (Ouvrier de production, manœuvres…)",
|
||||
"69": "Ouvriers agricoles (Bergers, ouvriers de la viticulture, bûcherons, ouvrier forestiers…)",
|
||||
"71": "Anciens agriculteurs exploitants",
|
||||
"72": "Anciens artisans, commerçants, chefs d'entreprise",
|
||||
"73": "Anciens cadres",
|
||||
"74": "Anciennes professions intermédiaires",
|
||||
"75": "Anciens employés",
|
||||
"76": "Anciens ouvriers",
|
||||
"81": "Chômeurs n'ayant jamais travaillé",
|
||||
"82": "Inactifs divers (autres que retraités)"
|
||||
},
|
||||
|
||||
|
||||
"context": {
|
||||
"0": "De la même famille",
|
||||
"1": "Grandi ensemble",
|
||||
"2": "Par mon mari/ma femme/relation amoureuse",
|
||||
"3": "Par mes parents",
|
||||
"4": "Par mes enfants",
|
||||
"5": "Par un ami",
|
||||
"6": "Comme voisin",
|
||||
"7": "Par d’autres membres de la famille",
|
||||
"8": "Etudes",
|
||||
"9": "Etudes supérieures",
|
||||
"10": "Au travail",
|
||||
"11": "Internet",
|
||||
"12": "Association",
|
||||
"13": "Autre"
|
||||
},
|
||||
|
||||
"famsit": {
|
||||
"0": "Seul",
|
||||
"1": "Seul avec enfant(s)",
|
||||
"2": "En couple sans enfants",
|
||||
"3": "En couple avec enfants"
|
||||
},
|
||||
|
||||
|
||||
|
||||
"reltype": {
|
||||
"0": "Père, mère ou équivalent",
|
||||
"1": "Frère ou soeur",
|
||||
"2": "Autre membre de la famille",
|
||||
"3": "Relation amoureuse",
|
||||
"4": "Collègue",
|
||||
"5": "Voisin",
|
||||
"6": "Ami proche",
|
||||
"7": "Ami",
|
||||
"8": "Relation de service (médecin, ...)",
|
||||
"9": "Inconnu"
|
||||
},
|
||||
|
||||
"dist": {
|
||||
"0": "- de 5 minutes",
|
||||
"1": "de 5 à 15 minutes",
|
||||
"2": "de 15 à 60 minutes",
|
||||
"3": "+ d'une heure"
|
||||
},
|
||||
|
||||
"freq": {
|
||||
"0": "plusieurs fois par semaine",
|
||||
"1": "1 fois par semaine",
|
||||
"2": "1 fois par mois",
|
||||
"3": "1 fois par an ou moins",
|
||||
"4": "Jamais"
|
||||
},
|
||||
|
||||
"connect": {
|
||||
"0": "Oui",
|
||||
"1": "Non"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
0
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 430 KiB |
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" ?><svg height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><path d="M12 38c0 2.21 1.79 4 4 4h16c2.21 0 4-1.79 4-4v-24h-24v24zm26-30h-7l-2-2h-10l-2 2h-7v4h28v-4z"/><path d="M0 0h48v48h-48z" fill="none"/></svg>
|
Before Width: | Height: | Size: 254 B |
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable-background="new 0 0 500 500" height="500px" id="Layer_1" version="1.1" viewBox="0 0 500 500" width="500px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path clip-rule="evenodd" d="M306.39,154.09c19.628,4.543,35.244,21.259,39.787,39.523 c1.551,8.54,8.998,14.989,17.904,14.989c9.991,0,18.168-8.175,18.168-18.17c0-13.083-10.991-32.98-25.985-47.881 c-14.719-14.537-32.252-24.802-46.695-24.802c-9.991,0-18.172,8.45-18.172,18.446C291.396,145.094,297.847,152.546,306.39,154.09z M56.629,392.312c-14.09,14.08-14.09,36.979,0,51.059c14.08,14.092,36.981,14.092,50.965,0l104.392-104.303 c24.347,15.181,53.062,23.991,83.953,23.991c87.857,0,158.995-71.142,158.995-158.999c0-87.854-71.138-158.995-158.995-158.995 c-87.856,0-158.995,71.141-158.995,158.995c0,30.802,8.819,59.606,23.992,83.953L56.629,392.312z M182.371,204.06 c0-62.687,50.875-113.568,113.568-113.568s113.569,50.881,113.569,113.568c0,62.694-50.876,113.569-113.569,113.569 S182.371,266.754,182.371,204.06z" fill="#010101" fill-rule="evenodd"/></svg>
|
Before Width: | Height: | Size: 1.2 KiB |
|
@ -1 +0,0 @@
|
|||
{"1":{"line":0,"hash":"95ad3f4b33bdef63dae17b5cafee1e39c6233314"},"69":{"line":1,"hash":"3d2eb540fa5b2c5e020f759a7627f899875df978"},"137":{"line":2,"hash":"a8529e83f05688e89e1318b443a036e97386105d"},"205":{"line":3,"hash":"0a296a89a05509be912fefda7fdcc2692a244208"},"273":{"line":4,"hash":"1b9c3317ae25f49f6cfdee6aa34fcbc381c3a7a7"}}
|
|
@ -1 +0,0 @@
|
|||
340
|
|
@ -23,5 +23,5 @@ lsi.clear("f_mini-fiches");lsi.clear("f_fiches");lsi.clear("f_matrice");fSubject
|
|||
contacts:lsi["export"]("f_contacts"),mini:lsi["export"]("f_mini-fiches"),fiches:lsi["export"]("f_fiches"),matrice:lsi["export"]("f_matrice")[0]};var c=$('[data-sublink="facebook"] #f_download-target');c.download="local-facebook-data.json";c.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));c.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);fSubjectManager.storageToFields();fContactManager.storageToFields();fMatriceManager.storageToFields();fDynamicUpdate(!0)})},!1);$('[data-sublink="facebook"] #f_submit-all').addEventListener("click",function(a){console.log("> GATHERING ALL DATA");fSubjectManager.fieldsToStorage();fContactManager.fieldsToStorage();fMiniManager.fieldsToStorage();fFicheManager.fieldsToStorage();if(!fSubjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du <i>sujet</i>"),
|
||||
!1;a=lsi["export"]("f_mini-fiches");var c=0,b;for(b in a)if(!isNaN(b)&&(c++,!a[b].valid))return Notification.warning("Attention","La <i>fiche rapide</i> <b>"+c+"</b> est incompl\u00e8te et/ou incorrecte"),!1;b={path:"input/phone",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(b,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",
|
||||
!1;a=lsi["export"]("f_mini-fiches");var c=0,b;for(b in a)if(!isNaN(b)&&(c++,!a[b].valid))return Notification.warning("Attention","La <i>fiche rapide</i> <b>"+c+"</b> est incompl\u00e8te et/ou incorrecte"),!1;b={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(b,function(a){console.log(a);if(0!=a.ModuleError)return Notification.error("ERREUR",
|
||||
a.ModuleError),!1;console.log(a)},!1)},!1)})})})})})};
|
||||
|
|
|
@ -995,7 +995,7 @@ if( pageManager.vars[0] != null && pageManager.vars[0] == 'facebook' ){
|
|||
|
||||
/* (3) On prépare la requête avec toutes les données */
|
||||
var request = {
|
||||
path: 'input/phone',
|
||||
path: 'input/facebook',
|
||||
|
||||
subject: lsi.export('f_subject')[0],
|
||||
contacts: lsi.export('f_contacts'),
|
||||
|
|