diff --git a/.htaccess b/.htaccess index ab2545e..640cd49 100755 --- a/.htaccess +++ b/.htaccess @@ -1,4 +1,8 @@ -RewriteEngine on +# Gestion des pages d'erreur personnalisées +ErrorDocument 403 view/error.php + +# Redirection vers index.php (Router) +RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] diff --git a/automate.php b/automate.php index 5160961..771d13d 100755 --- a/automate.php +++ b/automate.php @@ -61,24 +61,25 @@ /* [2] Gestion du getter dynamique des Repos =========================================================*/ // var_dump( \manager\repo\user::getById(1) ); - // // var_dump( \manager\repo\user::getByLogin('xdrm') ); - // // var_dump( \manager\repo\subject::getById(1) ); + // var_dump( \manager\repo\user::getByLogin('xdrm') ); + // var_dump( \manager\repo\subject::getById(69) ); + // var_dump( \manager\repo\relation::getById(638, 640, 30) ); /* [3] Test de la vérification du format de fichier pour l'upload =========================================================*/ - // ?> + ?> - '01 02 03 04 05') ); // $response = $request->dispatch(); // var_dump( ManagerError::explicit($response->error) ); // diff --git a/config/.htaccess b/config/.htaccess new file mode 100644 index 0000000..93169e4 --- /dev/null +++ b/config/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Deny from all diff --git a/config/menu.json b/config/menu.json index c5b352c..17dc7da 100644 --- a/config/menu.json +++ b/config/menu.json @@ -16,24 +16,12 @@ "attributes": { "data-link": "input" }, "children": [ - { "permissions": ["admin"], "text": "Questionnaire", + { "permissions": ["admin"], "text": "Chercher le sujet", "attributes": { "data-sublink": "survey" } }, - { "permissions": ["admin"], "text": "Facebook", - "attributes": { "data-sublink": "facebook" } }, - { "permissions": ["admin"], "text": "Téléphone", - "attributes": { "data-sublink": "phone" } }, - { "permissions": ["admin"], "text": "Messenger", - "attributes": { "data-sublink": "messenger" } } - ] - }, - - - { "icon": "f/svg/analytics/st/menu-side", "text": "Statistiques", - "attributes": { "data-link": "analytics" }, - - "children": [ - { "permissions": [], "text": "Extraction de données", - "attributes": { "data-sublink": "export" } } + { "permissions": ["admin"], "text": "Données cellulaire", + "attributes": { "data-sublink": "phone" } }, + { "permissions": ["admin"], "text": "Données facebook", + "attributes": { "data-sublink": "facebook" } } ] }, @@ -42,10 +30,24 @@ "attributes": { "data-link": "charts", "class": "sep" }, "children": [ - { "permissions": [], "text": "Téléphone", + { "permissions": [], "text": "Données cellulaires", "attributes": { "data-sublink": "phone" } }, - { "permissions": [], "text": "Toutes les données", - "attributes": { "data-sublink": "all" } } + { "permissions": [], "text": "Réseau", + "attributes": { "data-sublink": "network" } } + ] + }, + + + { "icon": "f/svg/analytics/st/menu-side", "text": "Données", + "attributes": { "data-link": "data" }, + + "children": [ + { "permissions": [], "text": "Export des données", + "attributes": { "data-sublink": "export" } }, + { "permissions": [], "text": "Export des graphiques", + "attributes": { "data-sublink": "charts" } }, + { "permissions": [], "text": "Statistiques", + "attributes": { "data-sublink": "analytics" } } ] }, diff --git a/config/modules.json b/config/modules.json index 741b1d8..800dae4 100755 --- a/config/modules.json +++ b/config/modules.json @@ -181,6 +181,15 @@ "id_source": { "description": "UID de l'utilisateur doublon", "type": "id" }, "id_target": { "description": "UID de l'utilisateur déjà existant", "type": "id" } } + }, + + + "remove": { + "description": "Suppression d'un sujet d'id donné.", + "permissions": ["admin"], + "parameters": { + "id_subject": { "description": "UID du sujet à supprimer.", "type": "id" } + } } }, @@ -191,10 +200,11 @@ "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" }, - "contacts": { "description": "Données des contacts de l'enquête.", "type": "array" }, - "mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array" }, - "fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array" } + "subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" }, + "contacts": { "description": "Données des contacts de l'enquête.", "type": "array" }, + "mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array" }, + "fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array" }, + "matrice": { "description": "Matrice contenant les relations entre les plus proches contacts", "type": "array" } } } diff --git a/config/repositories.json b/config/repositories.json index 4d0ea8f..13239c6 100755 --- a/config/repositories.json +++ b/config/repositories.json @@ -13,7 +13,23 @@ "getById", "getAll", "create", - "merge" + "merge", + "remove", + "link" + ], + + "relation": [ + "getAll", + "getById", + "create", + "remove" + ], + + "category": [ + "getAll", + "getById", + "getByIntitule", + "getOrCreate" ], "Personnes": [ diff --git a/config/server.json b/config/server.json new file mode 100644 index 0000000..38ff9a2 --- /dev/null +++ b/config/server.json @@ -0,0 +1,13 @@ +{ + + "local" : { + "host" : "http://socioview", + "root" : "/" + }, + + "remote" : { + "host" : "https://socioview.xdrm.io", + "root" : "/" + } + +} diff --git a/css/header/expanded.css b/css/header/expanded.css index 09dc82b..85ab3c6 100644 --- a/css/header/expanded.css +++ b/css/header/expanded.css @@ -138,4 +138,4 @@ left: 7em; } -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9oZWFkZXIuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4jV1JBUFBFUiA+ICNIRUFERVJ7XG5cblx0LyogWzFdIEJhcnJlIGRlIHJlY2hlcmNoZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI3NlYXJjaGJhcntcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAuOGVtO1xuXHRcdFx0bGVmdDogMWVtO1xuXHRcdFx0d2lkdGg6IDIwZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdHBhZGRpbmc6IC4yZW0gMWVtO1xuXG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1iZztcblxuXHR9XG5cblx0LyogWzJdIEluZm9ybWF0aW9ucyB1dGlsaXNhdGV1clxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQvKiAoMCkgQ29udGVuZXVyICovXG5cdCYgPiAjdXNlci1kYXRhe1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtIDIqMWVtICk7XG5cblxuXHRcdC8qICgxKSBVc2VybmFtZSBkZSBsJ3V0aWxpc2F0ZXVyICovXG5cdFx0JiA+ICN1c2VyLW5hbWV7XG5cdCAgICBcdGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBcdFx0dG9wOiAwO1xuXHQgICAgXHRcdHJpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSoyIC0gMWVtICk7XG5cdCAgICBcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHQgICAgXHRwYWRkaW5nOiAwIDFlbTtcblxuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdFx0LyogKDIpIEltYWdlIGR1IHByb2ZpbCAqL1xuXHRcdCYgPiAjdXNlci1waWN0dXJle1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMWVtO1xuXHRcdFx0XHRyaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDIqMWVtICk7XG5cdFx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcblxuXHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWJnIHVybCgnL2Yvc3ZnL25vcGljL3N0L2hlYWRlcicpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDgwJTtcblxuXHRcdFx0Ly8gU2kgb24gZXN0IGNvbm5lY3RlXG5cdFx0XHQmLmFjdGl2ZXsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc2FtcGxlL2R5L3Byb2ZpbGUnKTsgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7IH1cblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0fVxuXG5cblxuXHRcdC8qICgzKSBJY29uZSBkJ2FjdGl2YXRpb24gKi9cblx0XHQmOmJlZm9yZXtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvZXhwYW5kL3N0L2hlYWRlci9mZmZmZmYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0fVxuXG5cblx0fVxuXG5cblxuXHQvKiBbM10gTWVudSBkZXJvdWxhbnQgcG91ciBsJ2FkbWluaXN0cmF0aW9uIGR1IHByb2ZpbFxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gLnVzZXItcGFuZWx7XG4gICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgXHR0b3A6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMWVtICk7XG4gICAgICAgIFx0cmlnaHQ6IDA7XG5cbiAgICAgICAgbWFyZ2luOiAuNWVtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkdGhlbWUtYmcsIDEwKTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGxlZnQgLjNzIGVhc2UtaW4tb3V0ICk7XG5cblxuICAgICAgICAvKiAoMSkgUG91ciBjaGFxdWUgZWxlbWVudCBkdSBtZW51ICovXG4gICAgICAgICYgPiBzcGFue1xuICAgICAgICBcdGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0Ly8gT24gYWpvdXRlIHVuZSBsaWduZSBlbiBkZXNzb3VzIHNhdWYgcG91ciBsZSBkZXJuaWVyXG5cdFx0XHQmOm5vdCg6bGFzdC1jaGlsZCl7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdHBhZGRpbmc6IC41ZW0gMWVtO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdFx0fVxuICAgICAgICB9XG5cblxuXG5cbiAgICB9XG5cbiAgICAvKiAoMykgR2VzdGlvbiBkZSBsJ2FjdGl2YXRpb24gb3Ugbm9uIGRlIGwndXNlciBwYW5lbCAqL1xuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVseyBkaXNwbGF5OiBub25lOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWwgKyAudXNlci1wYW5lbHsgbGVmdDogMTAwJTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbHsgbGVmdDogYXV0bzsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbDpiZWZvcmV7IGxlZnQ6IDdlbTsgfVxuXG5cblxuXG5cblxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG4kaGVhZGVyLWRhcms6ICAgICAjMzMzMzMzO1xuXG4vKiAoMykgQ291bGV1cnMgZHUgdGhlbWUgcG91ciBsYSB0aW1lbGluZSAqL1xuJHRpbWVsaW5lLWNvbG9yOiAjMzk5Y2VkO1xuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcblxuXG5cbi8qIFszXSBNaXhpbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWl4aW4gdHJhbnNmb3JtKCR2YWx1ZS4uLikge1xuICAgIHRyYW5zZm9ybTogJHZhbHVlO1xuXHQtbW96LXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtby10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1zLXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHZhbHVlO1xufVxuXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR2YWx1ZS4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHZhbHVlO1xuICAgIHRyYW5zaXRpb246ICR2YWx1ZTtcbn1cblxuLyogWzRdIEZ1bmN0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8vIFRyYW5zZm9ybWUgdW5lIGNvdWxldXIgaGV4IGVuIHN0cmluZyBzYW5zIGxlICNcbkBmdW5jdGlvbiBjb2xvci1zdHIoJGNvbG9yKXtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgjeyRjb2xvcn0sIDIsIHN0ci1sZW5ndGgoI3skY29sb3J9KSk7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFRakMsNENBQTRDO0FBRzVDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QUFNeEI7MkRBQzJEO0FBZTNEOzJEQUMyRDtBRHpDM0QsUUFBUSxHQUFHLE9BQU8sQ0FBQTtFQUVqQjs0REFDMkQ7RUFrQjNEOzREQUMyRDtFQUMzRCxtQkFBbUI7RUE0RW5COzREQUMyRDtFQTRDeEQsd0RBQXdEO0NBVzNEOztBQTNKRCxRQUFRLEdBQUcsT0FBTyxHQUliLFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxJQUFLO0VBQ1YsSUFBSSxFQUFFLEdBQUk7RUFDVixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxHQUFJO0VBRWIsT0FBTyxFQUFFLFFBQVM7RUFFbEIsTUFBTSxFQUFFLENBQUU7RUFDVixhQUFhLEVBQUUsR0FBSTtFQUVuQixnQkFBZ0IsRUNqQkMsT0FBTztDRG1CeEI7O0FBbkJGLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsS0FBSyxFQUFFLENBQUU7RUFDVCxNQUFNLEVBQUUsbUJBQUk7RUFHYixtQ0FBbUM7RUFvQm5DLHlCQUF5QjtFQXlCekIsNEJBQTRCO0NBa0I1Qjs7QUEvRkYsUUFBUSxHQUFHLE9BQU8sR0F3QmIsVUFBVSxHQVNULFVBQVUsQ0FBQTtFQUNWLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsR0FBRyxFQUFFLENBQUU7RUFDUCxLQUFLLEVBQUUsa0JBQUk7RUFDWCxNQUFNLEVDbEJLLEdBQUc7RURvQmYsT0FBTyxFQUFFLEtBQU07RUFFbEIsS0FBSyxFQUFFLElBQUs7RUFDWixXQUFXLEVDdkJJLEdBQUc7RUR3QmxCLFdBQVcsRUFBRSxNQUFPO0VBQ3BCLFdBQVcsRUFBRSxJQUFLO0VBRWxCLE1BQU0sRUFBRSxPQUFRO0NBRWhCOztBQWpESCxRQUFRLEdBQUcsT0FBTyxHQXdCYixVQUFVLEdBNkJULGFBQWEsQ0FBQTtFQUNoQixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxHQUFJO0VBQ1QsS0FBSyxFQ3JDUyxHQUFHO0VEc0NqQixLQUFLLEVBQUUsa0JBQUk7RUFDWCxNQUFNLEVBQUUsa0JBQUk7RUFHYixhQUFhLEVBQUUsU0FBVTtFQUV6QixVQUFVLEVDaEVNLE9BQU8sQ0RnRUQsNkJBQUcsQ0FBMkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0VBQzNFLGVBQWUsRUFBRSxRQUFTO0VBSzFCLE1BQU0sRUFBRSxPQUFRO0VBRWhCLFVBQVUsRUFBRSxNQUFPO0NBQ25COztBQXpFSCxRQUFRLEdBQUcsT0FBTyxHQXdCYixVQUFVLEdBNkJULGFBQWEsQUFlZixPQUFPLENBQUE7RUFBRSxnQkFBZ0IsRUFBRSwrQkFBRztFQUE4QixlQUFlLEVBQUUsU0FBVTtDQUFJOztBQXBFL0YsUUFBUSxHQUFHLE9BQU8sR0F3QmIsVUFBVSxBQXNEWixPQUFPLENBQUE7RUFDUCxPQUFPLEVBQUUsRUFBRztFQUNaLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsR0FBRyxFQUFFLENBQUU7RUFDUCxLQUFLLEVBQUUsQ0FBRTtFQUNULEtBQUssRUNoRVMsR0FBRztFRGlFakIsTUFBTSxFQ2pFUSxHQUFHO0VEbUVsQixVQUFVLEVBQUUscUNBQUcsQ0FBbUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0VBQ3pFLGVBQWUsRUFBRSxPQUFRO0VBRXpCLE1BQU0sRUFBRSxPQUFRO0NBRWhCOztBQTVGSCxRQUFRLEdBQUcsT0FBTyxHQXFHYixXQUFXLENBQUE7RUFDWCxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2YsR0FBRyxFQUFFLGdCQUFJO0VBQ1QsS0FBSyxFQUFFLENBQUU7RUFFVixNQUFNLEVBQUUsSUFBSztFQUVuQixhQUFhLEVBQUUsR0FBSTtFQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFNO0VBRWxCLGdCQUFnQixFQUFFLElBQUs7RUM1RTNCLGtCQUFrQixFRDhFTyxJQUFJLENBQUMsSUFBRyxDQUFDLFdBQVc7RUM3RTdDLFVBQVUsRUQ2RWUsSUFBSSxDQUFDLElBQUcsQ0FBQyxXQUFXO0VBR3pDLHFDQUFxQztDQXlCeEM7O0FBOUlMLFFBQVEsR0FBRyxPQUFPLEdBcUdiLFdBQVcsR0FpQkosSUFBSSxDQUFBO0VBQ1AsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQU96QixLQUFLLEVBQUUsSUFBSztFQUNaLE9BQU8sRUFBRSxRQUFTO0VBQ2xCLFlBQVksRUFBRSxHQUFJO0VBRWxCLE1BQU0sRUFBRSxPQUFRO0NBTVY7O0FBeklULFFBQVEsR0FBRyxPQUFPLEdBcUdiLFdBQVcsR0FpQkosSUFBSSxBQUtaLElBQUssQ0FBQSxXQUFXLEVBQUM7RUFDakIsYUFBYSxFQUFFLGNBQWU7Q0FDOUI7O0FBN0hKLFFBQVEsR0FBRyxPQUFPLEdBcUdiLFdBQVcsR0FpQkosSUFBSSxBQWdCWixNQUFNLENBQUE7RUFDTixnQkFBZ0IsRUFBRSxJQUFLO0NBQ3ZCOztBQXhJSixRQUFRLEdBQUcsT0FBTyxHQWlKYixrQkFBa0IsQ0FBQTtFQUFFLE9BQU8sRUFBRSxJQUFLO0NBQUk7O0FBakozQyxRQUFRLEdBQUcsT0FBTyxHQWtKYixrQkFBa0IsR0FBRyxXQUFXLENBQUE7RUFBRSxJQUFJLEVBQUUsSUFBSztDQUFJOztBQWxKdEQsUUFBUSxHQUFHLE9BQU8sR0FtSmIsa0JBQWtCLEFBQUEsUUFBUSxHQUFHLFdBQVcsQ0FBQTtFQUFFLElBQUksRUFBRSxJQUFLO0NBQUk7O0FBbko5RCxRQUFRLEdBQUcsT0FBTyxHQW9KYixrQkFBa0IsQUFBQSxRQUFRLEdBQUcsV0FBVyxBQUFBLE9BQU8sQ0FBQTtFQUFFLElBQUksRUFBRSxHQUFJO0NBQUkiLAoJIm5hbWVzIjogW10KfQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9oZWFkZXIuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4jV1JBUFBFUiA+ICNIRUFERVJ7XG5cblx0LyogWzFdIEJhcnJlIGRlIHJlY2hlcmNoZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI3NlYXJjaGJhcntcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAuOGVtO1xuXHRcdFx0bGVmdDogMWVtO1xuXHRcdFx0d2lkdGg6IDIwZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdHBhZGRpbmc6IC4yZW0gMWVtO1xuXG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1iZztcblxuXHR9XG5cblx0LyogWzJdIEluZm9ybWF0aW9ucyB1dGlsaXNhdGV1clxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQvKiAoMCkgQ29udGVuZXVyICovXG5cdCYgPiAjdXNlci1kYXRhe1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtIDIqMWVtICk7XG5cblxuXHRcdC8qICgxKSBVc2VybmFtZSBkZSBsJ3V0aWxpc2F0ZXVyICovXG5cdFx0JiA+ICN1c2VyLW5hbWV7XG5cdCAgICBcdGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBcdFx0dG9wOiAwO1xuXHQgICAgXHRcdHJpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSoyIC0gMWVtICk7XG5cdCAgICBcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHQgICAgXHRwYWRkaW5nOiAwIDFlbTtcblxuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdFx0LyogKDIpIEltYWdlIGR1IHByb2ZpbCAqL1xuXHRcdCYgPiAjdXNlci1waWN0dXJle1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMWVtO1xuXHRcdFx0XHRyaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDIqMWVtICk7XG5cdFx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcblxuXHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWJnIHVybCgnL2Yvc3ZnL25vcGljL3N0L2hlYWRlcicpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDgwJTtcblxuXHRcdFx0Ly8gU2kgb24gZXN0IGNvbm5lY3RlXG5cdFx0XHQmLmFjdGl2ZXsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc2FtcGxlL2R5L3Byb2ZpbGUnKTsgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7IH1cblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0fVxuXG5cblxuXHRcdC8qICgzKSBJY29uZSBkJ2FjdGl2YXRpb24gKi9cblx0XHQmOmJlZm9yZXtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvZXhwYW5kL3N0L2hlYWRlci9mZmZmZmYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0fVxuXG5cblx0fVxuXG5cblxuXHQvKiBbM10gTWVudSBkZXJvdWxhbnQgcG91ciBsJ2FkbWluaXN0cmF0aW9uIGR1IHByb2ZpbFxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gLnVzZXItcGFuZWx7XG4gICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgXHR0b3A6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMWVtICk7XG4gICAgICAgIFx0cmlnaHQ6IDA7XG5cbiAgICAgICAgbWFyZ2luOiAuNWVtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkdGhlbWUtYmcsIDEwKTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGxlZnQgLjNzIGVhc2UtaW4tb3V0ICk7XG5cblxuICAgICAgICAvKiAoMSkgUG91ciBjaGFxdWUgZWxlbWVudCBkdSBtZW51ICovXG4gICAgICAgICYgPiBzcGFue1xuICAgICAgICBcdGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0Ly8gT24gYWpvdXRlIHVuZSBsaWduZSBlbiBkZXNzb3VzIHNhdWYgcG91ciBsZSBkZXJuaWVyXG5cdFx0XHQmOm5vdCg6bGFzdC1jaGlsZCl7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdHBhZGRpbmc6IC41ZW0gMWVtO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdFx0fVxuICAgICAgICB9XG5cblxuXG5cbiAgICB9XG5cbiAgICAvKiAoMykgR2VzdGlvbiBkZSBsJ2FjdGl2YXRpb24gb3Ugbm9uIGRlIGwndXNlciBwYW5lbCAqL1xuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVseyBkaXNwbGF5OiBub25lOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWwgKyAudXNlci1wYW5lbHsgbGVmdDogMTAwJTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbHsgbGVmdDogYXV0bzsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbDpiZWZvcmV7IGxlZnQ6IDdlbTsgfVxuXG5cblxuXG5cblxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG4kaGVhZGVyLWRhcms6ICAgICAjMzMzMzMzO1xuXG4vKiAoMykgQ291bGV1cnMgZHUgdGhlbWUgcG91ciBsYSB0aW1lbGluZSAqL1xuJHRpbWVsaW5lLWNvbG9yOiAjNzM4Mzk0O1xuJHRpbWVsaW5lLTA6ICMzOTljZWQ7XG4kdGltZWxpbmUtMTogI2U2NGUzZTtcbiR0aW1lbGluZS0yOiAjMTBiYWEzO1xuJHRpbWVsaW5lLTM6ICNiMTRiZTc7XG4kdGltZWxpbmUtNDogIzA1M2I1ZDtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcblxuXG5cbi8qIFszXSBNaXhpbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWl4aW4gdHJhbnNmb3JtKCR2YWx1ZS4uLikge1xuICAgIHRyYW5zZm9ybTogJHZhbHVlO1xuXHQtbW96LXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtby10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1zLXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHZhbHVlO1xufVxuXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR2YWx1ZS4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHZhbHVlO1xuICAgIHRyYW5zaXRpb246ICR2YWx1ZTtcbn1cblxuLyogWzRdIEZ1bmN0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8vIFRyYW5zZm9ybWUgdW5lIGNvdWxldXIgaGV4IGVuIHN0cmluZyBzYW5zIGxlICNcbkBmdW5jdGlvbiBjb2xvci1zdHIoJGNvbG9yKXtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgjeyRjb2xvcn0sIDIsIHN0ci1sZW5ndGgoI3skY29sb3J9KSk7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFRakMsNENBQTRDO0FBUzVDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QUFNeEI7MkRBQzJEO0FBZTNEOzJEQUMyRDtBRC9DM0QsUUFBUSxHQUFHLE9BQU8sQ0FBQTtFQUVqQjs0REFDMkQ7RUFrQjNEOzREQUMyRDtFQUMzRCxtQkFBbUI7RUE0RW5COzREQUMyRDtFQTRDeEQsd0RBQXdEO0NBVzNEOztBQTNKRCxRQUFRLEdBQUcsT0FBTyxHQUliLFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxJQUFLO0VBQ1YsSUFBSSxFQUFFLEdBQUk7RUFDVixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxHQUFJO0VBRWIsT0FBTyxFQUFFLFFBQVM7RUFFbEIsTUFBTSxFQUFFLENBQUU7RUFDVixhQUFhLEVBQUUsR0FBSTtFQUVuQixnQkFBZ0IsRUNqQkMsT0FBTztDRG1CeEI7O0FBbkJGLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsS0FBSyxFQUFFLENBQUU7RUFDVCxNQUFNLEVBQUUsbUJBQUk7RUFHYixtQ0FBbUM7RUFvQm5DLHlC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 */ \ No newline at end of file diff --git a/css/header/expanded.css.map b/css/header/expanded.css.map index 841d36d..dedcbb7 100644 --- a/css/header/expanded.css.map +++ b/css/header/expanded.css.map @@ -7,8 +7,8 @@ ], "sourcesContent": [ "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n @include transition( left .3s ease-in-out );\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", - "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #399ced;\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" ], - "mappings": "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", + "mappings": "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", "names": [] } \ No newline at end of file diff --git a/css/header/min.css b/css/header/min.css index 2d9a2e8..cfadec7 100644 --- a/css/header/min.css +++ b/css/header/min.css @@ -1,3 +1,3 @@ #WRAPPER>#HEADER>#searchbar{display:inline-block;position:absolute;top:.8em;left:1em;width:20em;height:2em;padding:.2em 1em;border:0;border-radius:3px;background-color:#e8e8e8}#WRAPPER>#HEADER>#user-data{display:inline-block;position:absolute;top:0;right:0;height:calc( 100% - 2*1em)}#WRAPPER>#HEADER>#user-data>#user-name{display:block;position:absolute;top:0;right:calc( 4em*2 - 1em);height:4em;padding:0 1em;color:#fff;line-height:4em;white-space:nowrap;font-weight:bold;cursor:pointer}#WRAPPER>#HEADER>#user-data>#user-picture{display:block;position:absolute;top:1em;right:4em;width:calc( 4em - 2*1em);height:calc( 4em - 2*1em);border-radius:50% / 50%;background:#e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat;background-size:auto 80%;cursor:default;align-self:center}#WRAPPER>#HEADER>#user-data>#user-picture.active{background-image:url("/f/svg/sample/dy/profile");background-size:auto 100%}#WRAPPER>#HEADER>#user-data:before{content:'';display:block;position:absolute;top:0;right:0;width:4em;height:4em;background:url("/f/svg/expand/st/header/ffffff") center center no-repeat;background-size:1em 1em;cursor:pointer}#WRAPPER>#HEADER>.user-panel{display:block;position:absolute;top:calc( 4em - 1em);right:0;margin:.5em;border-radius:5px;border:1px solid #cfcfcf;background-color:#fff;-webkit-transition:left 0.3s ease-in-out;transition:left 0.3s ease-in-out}#WRAPPER>#HEADER>.user-panel>span{display:block;position:relative;color:#000;padding:.5em 1em;padding-left:2em;cursor:pointer}#WRAPPER>#HEADER>.user-panel>span:not(:last-child){border-bottom:1px solid #ddd}#WRAPPER>#HEADER>.user-panel>span:hover{background-color:#eee}#WRAPPER>#HEADER>#toggle-user-panel{display:none}#WRAPPER>#HEADER>#toggle-user-panel+.user-panel{left:100%}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel{left:auto}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel:before{left:7em} -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXG5cdC8qIFsxXSBCYXJyZSBkZSByZWNoZXJjaGVcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNzZWFyY2hiYXJ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogLjhlbTtcblx0XHRcdGxlZnQ6IDFlbTtcblx0XHRcdHdpZHRoOiAyMGVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRwYWRkaW5nOiAuMmVtIDFlbTtcblxuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0fVxuXG5cdC8qIFsyXSBJbmZvcm1hdGlvbnMgdXRpbGlzYXRldXJcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDApIENvbnRlbmV1ciAqL1xuXHQmID4gI3VzZXItZGF0YXtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAyKjFlbSApO1xuXG5cblx0XHQvKiAoMSkgVXNlcm5hbWUgZGUgbCd1dGlsaXNhdGV1ciAqL1xuXHRcdCYgPiAjdXNlci1uYW1le1xuXHQgICAgXHRkaXNwbGF5OiBibG9jaztcblx0ICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgXHRcdHRvcDogMDtcblx0ICAgIFx0XHRyaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0qMiAtIDFlbSApO1xuXHQgICAgXHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0ICAgIFx0cGFkZGluZzogMCAxZW07XG5cblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR9XG5cblxuXHRcdC8qICgyKSBJbWFnZSBkdSBwcm9maWwgKi9cblx0XHQmID4gI3VzZXItcGljdHVyZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDFlbTtcblx0XHRcdFx0cmlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHR3aWR0aDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXHRcdFx0XHRoZWlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMioxZW0gKTtcblxuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG5cblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1iZyB1cmwoJy9mL3N2Zy9ub3BpYy9zdC9oZWFkZXInKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA4MCU7XG5cblx0XHRcdC8vIFNpIG9uIGVzdCBjb25uZWN0ZVxuXHRcdFx0Ji5hY3RpdmV7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3NhbXBsZS9keS9wcm9maWxlJyk7IGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlOyB9XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdH1cblxuXG5cblx0XHQvKiAoMykgSWNvbmUgZCdhY3RpdmF0aW9uICovXG5cdFx0JjpiZWZvcmV7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2V4cGFuZC9zdC9oZWFkZXIvZmZmZmZmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzNdIE1lbnUgZGVyb3VsYW50IHBvdXIgbCdhZG1pbmlzdHJhdGlvbiBkdSBwcm9maWxcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IC51c2VyLXBhbmVse1xuICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIFx0dG9wOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFlbSApO1xuICAgICAgICBcdHJpZ2h0OiAwO1xuXG4gICAgICAgIG1hcmdpbjogLjVlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWJnLCAxMCk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCBsZWZ0IC4zcyBlYXNlLWluLW91dCApO1xuXG5cbiAgICAgICAgLyogKDEpIFBvdXIgY2hhcXVlIGVsZW1lbnQgZHUgbWVudSAqL1xuICAgICAgICAmID4gc3BhbntcbiAgICAgICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC8vIE9uIGFqb3V0ZSB1bmUgbGlnbmUgZW4gZGVzc291cyBzYXVmIHBvdXIgbGUgZGVybmllclxuXHRcdFx0Jjpub3QoOmxhc3QtY2hpbGQpe1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdH1cblxuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRwYWRkaW5nOiAuNWVtIDFlbTtcblx0XHRcdHBhZGRpbmctbGVmdDogMmVtO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdH1cbiAgICAgICAgfVxuXG5cblxuXG4gICAgfVxuXG4gICAgLyogKDMpIEdlc3Rpb24gZGUgbCdhY3RpdmF0aW9uIG91IG5vbiBkZSBsJ3VzZXIgcGFuZWwgKi9cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbHsgZGlzcGxheTogbm9uZTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsICsgLnVzZXItcGFuZWx7IGxlZnQ6IDEwMCU7IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWx7IGxlZnQ6IGF1dG87IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWw6YmVmb3JleyBsZWZ0OiA3ZW07IH1cblxuXG5cblxuXG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuJGhlYWRlci1kYXJrOiAgICAgIzMzMzMzMztcblxuLyogKDMpIENvdWxldXJzIGR1IHRoZW1lIHBvdXIgbGEgdGltZWxpbmUgKi9cbiR0aW1lbGluZS1jb2xvcjogIzM5OWNlZDtcblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG5cblxuXG4vKiBbM10gTWl4aW5zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQG1peGluIHRyYW5zZm9ybSgkdmFsdWUuLi4pIHtcbiAgICB0cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1vei10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW8tdHJhbnNmb3JtOiAkdmFsdWU7XG5cdC1tcy10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR2YWx1ZTtcbn1cblxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdmFsdWUuLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR2YWx1ZTtcbiAgICB0cmFuc2l0aW9uOiAkdmFsdWU7XG59XG5cbi8qIFs0XSBGdW5jdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vLyBUcmFuc2Zvcm1lIHVuZSBjb3VsZXVyIGhleCBlbiBzdHJpbmcgc2FucyBsZSAjXG5AZnVuY3Rpb24gY29sb3Itc3RyKCRjb2xvcil7XG4gICAgQHJldHVybiBzdHItc2xpY2UoI3skY29sb3J9LCAyLCBzdHItbGVuZ3RoKCN7JGNvbG9yfSkpO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLFFBQVEsQ0FBRyxPQUFPLENBSWIsVUFBVSxBQUFBLENBQ2IsT0FBTyxDQUFFLFlBQWEsQ0FDdEIsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsR0FBRyxDQUFFLElBQUssQ0FDVixJQUFJLENBQUUsR0FBSSxDQUNWLEtBQUssQ0FBRSxJQUFLLENBQ1osTUFBTSxDQUFFLEdBQUksQ0FFYixPQUFPLENBQUUsUUFBUyxDQUVsQixNQUFNLENBQUUsQ0FBRSxDQUNWLGFBQWEsQ0FBRSxHQUFJLENBRW5CLGdCQUFnQixDQ2pCQyxPQUFPLENEbUJ4QixBQW5CRixRQUFRLENBQUcsT0FBTyxDQXdCYixVQUFVLEFBQUEsQ0FDYixPQUFPLENBQUUsWUFBYSxDQUN0QixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLEtBQUssQ0FBRSxDQUFFLENBQ1QsTUFBTSxDQUFFLG1CQUFJLENBa0ViLEFBL0ZGLFFBQVEsQ0FBRyxPQUFPLENBd0JiLFVBQVUsQ0FTVCxVQUFVLEFBQUEsQ0FDVixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0FBRSxDQUFFLENBQ1AsS0FBSyxDQUFFLGtCQUFJLENBQ1gsTUFBTSxDQ2xCSyxHQUFHLENEb0JmLE9BQU8sQ0FBRSxLQUFNLENBRWxCLEtBQUssQ0FBRSxJQUFLLENBQ1osV0FBVyxDQ3ZCSSxHQUFHLENEd0JsQixXQUFXLENBQUUsTUFBTyxDQUNwQixXQUFXLENBQUUsSUFBSyxDQUVsQixNQUFNLENBQUUsT0FBUSxDQUVoQixBQWpESCxRQUFRLENBQUcsT0FBTyxDQXdCYixVQUFVLENBNkJULGFBQWEsQUFBQSxDQUNoQixPQUFPLENB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 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXG5cdC8qIFsxXSBCYXJyZSBkZSByZWNoZXJjaGVcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNzZWFyY2hiYXJ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogLjhlbTtcblx0XHRcdGxlZnQ6IDFlbTtcblx0XHRcdHdpZHRoOiAyMGVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRwYWRkaW5nOiAuMmVtIDFlbTtcblxuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0fVxuXG5cdC8qIFsyXSBJbmZvcm1hdGlvbnMgdXRpbGlzYXRldXJcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDApIENvbnRlbmV1ciAqL1xuXHQmID4gI3VzZXItZGF0YXtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAyKjFlbSApO1xuXG5cblx0XHQvKiAoMSkgVXNlcm5hbWUgZGUgbCd1dGlsaXNhdGV1ciAqL1xuXHRcdCYgPiAjdXNlci1uYW1le1xuXHQgICAgXHRkaXNwbGF5OiBibG9jaztcblx0ICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgXHRcdHRvcDogMDtcblx0ICAgIFx0XHRyaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0qMiAtIDFlbSApO1xuXHQgICAgXHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0ICAgIFx0cGFkZGluZzogMCAxZW07XG5cblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR9XG5cblxuXHRcdC8qICgyKSBJbWFnZSBkdSBwcm9maWwgKi9cblx0XHQmID4gI3VzZXItcGljdHVyZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDFlbTtcblx0XHRcdFx0cmlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHR3aWR0aDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXHRcdFx0XHRoZWlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMioxZW0gKTtcblxuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG5cblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1iZyB1cmwoJy9mL3N2Zy9ub3BpYy9zdC9oZWFkZXInKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA4MCU7XG5cblx0XHRcdC8vIFNpIG9uIGVzdCBjb25uZWN0ZVxuXHRcdFx0Ji5hY3RpdmV7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3NhbXBsZS9keS9wcm9maWxlJyk7IGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlOyB9XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdH1cblxuXG5cblx0XHQvKiAoMykgSWNvbmUgZCdhY3RpdmF0aW9uICovXG5cdFx0JjpiZWZvcmV7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2V4cGFuZC9zdC9oZWFkZXIvZmZmZmZmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzNdIE1lbnUgZGVyb3VsYW50IHBvdXIgbCdhZG1pbmlzdHJhdGlvbiBkdSBwcm9maWxcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IC51c2VyLXBhbmVse1xuICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIFx0dG9wOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFlbSApO1xuICAgICAgICBcdHJpZ2h0OiAwO1xuXG4gICAgICAgIG1hcmdpbjogLjVlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWJnLCAxMCk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCBsZWZ0IC4zcyBlYXNlLWluLW91dCApO1xuXG5cbiAgICAgICAgLyogKDEpIFBvdXIgY2hhcXVlIGVsZW1lbnQgZHUgbWVudSAqL1xuICAgICAgICAmID4gc3BhbntcbiAgICAgICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC8vIE9uIGFqb3V0ZSB1bmUgbGlnbmUgZW4gZGVzc291cyBzYXVmIHBvdXIgbGUgZGVybmllclxuXHRcdFx0Jjpub3QoOmxhc3QtY2hpbGQpe1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdH1cblxuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRwYWRkaW5nOiAuNWVtIDFlbTtcblx0XHRcdHBhZGRpbmctbGVmdDogMmVtO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdH1cbiAgICAgICAgfVxuXG5cblxuXG4gICAgfVxuXG4gICAgLyogKDMpIEdlc3Rpb24gZGUgbCdhY3RpdmF0aW9uIG91IG5vbiBkZSBsJ3VzZXIgcGFuZWwgKi9cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbHsgZGlzcGxheTogbm9uZTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsICsgLnVzZXItcGFuZWx7IGxlZnQ6IDEwMCU7IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWx7IGxlZnQ6IGF1dG87IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWw6YmVmb3JleyBsZWZ0OiA3ZW07IH1cblxuXG5cblxuXG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuJGhlYWRlci1kYXJrOiAgICAgIzMzMzMzMztcblxuLyogKDMpIENvdWxldXJzIGR1IHRoZW1lIHBvdXIgbGEgdGltZWxpbmUgKi9cbiR0aW1lbGluZS1jb2xvcjogIzczODM5NDtcbiR0aW1lbGluZS0wOiAjMzk5Y2VkO1xuJHRpbWVsaW5lLTE6ICNlNjRlM2U7XG4kdGltZWxpbmUtMjogIzEwYmFhMztcbiR0aW1lbGluZS0zOiAjYjE0YmU3O1xuJHRpbWVsaW5lLTQ6ICMwNTNiNWQ7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG5cblxuXG4vKiBbM10gTWl4aW5zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQG1peGluIHRyYW5zZm9ybSgkdmFsdWUuLi4pIHtcbiAgICB0cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1vei10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW8tdHJhbnNmb3JtOiAkdmFsdWU7XG5cdC1tcy10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR2YWx1ZTtcbn1cblxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdmFsdWUuLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR2YWx1ZTtcbiAgICB0cmFuc2l0aW9uOiAkdmFsdWU7XG59XG5cbi8qIFs0XSBGdW5jdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vLyBUcmFuc2Zvcm1lIHVuZSBjb3VsZXVyIGhleCBlbiBzdHJpbmcgc2FucyBsZSAjXG5AZnVuY3Rpb24gY29sb3Itc3RyKCRjb2xvcil7XG4gICAgQHJldHVybiBzdHItc2xpY2UoI3skY29sb3J9LCAyLCBzdHItbGVuZ3RoKCN7JGNvbG9yfSkpO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLFFBQVEsQ0FBRyxPQUFPLENBSWIsVUFBVSxBQUFBLENBQ2IsT0FBTyxDQUFFLFlBQWEsQ0FDdEIsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsR0FBRyxDQUFFLElBQUssQ0FDVixJQUFJLENBQUUsR0FBSSxDQUNWLEtBQUssQ0FBRSxJQUFLLENBQ1osTUFBTSxDQUFFLEdBQUksQ0FFYixPQUFPLENBQUUsUUFBUyxDQUVsQixNQUFNLENBQUUsQ0FBRSxDQUNWLGFBQWEsQ0FBRSxHQUFJLENBRW5CLGdCQUFnQixDQ2pCQyxPQUFPLENEbUJ4QixBQW5CRixRQUFRLENBQUcsT0FBTyxDQXdCYixVQUFVLEFBQUEsQ0FDYixPQUFPLENBQUUsWUFBYSxDQUN0QixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLEtBQUssQ0FBRSxDQUFFLENBQ1QsTUFBTSxDQUFFLG1CQUFJLENBa0ViLEFBL0ZGLFFBQVEsQ0FBRyxPQUFPLENBd0JiLFVBQVUsQ0FTVCxVQUFVLEFBQUEsQ0FDVixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0FBRSxDQUFFLENBQ1AsS0FBSyxDQUFFLGtCQUFJLENBQ1gsTUFBTSxDQ1pLLEdBQUcsQ0RjZixPQUFPLENBQUUsS0FBTSxDQUVsQixLQUFLLENBQUUsSUFBSyxDQUNaLFdBQVcsQ0NqQkksR0FBRyxDRGtCbEIsV0FBVyxDQUFF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 */ \ No newline at end of file diff --git a/css/header/min.css.map b/css/header/min.css.map index 838cc43..f4d4827 100644 --- a/css/header/min.css.map +++ b/css/header/min.css.map @@ -7,8 +7,8 @@ ], "sourcesContent": [ "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n @include transition( left .3s ease-in-out );\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", - "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #399ced;\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" ], - "mappings": "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", + "mappings": "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", "names": [] } \ No newline at end of file diff --git a/css/layout.scss b/css/layout.scss index 1620327..34ca554 100755 --- a/css/layout.scss +++ b/css/layout.scss @@ -157,7 +157,7 @@ body{ background-color: $dark-bg; color: $dark-fg-primary; - font-weight: bold; + // font-weight: bold; letter-spacing: .07em; @include transition( border .2s ease-in-out ); diff --git a/css/layout/expanded.css b/css/layout/expanded.css index 292e1d9..50971a9 100644 --- a/css/layout/expanded.css +++ b/css/layout/expanded.css @@ -129,7 +129,6 @@ body { border: 1px solid #6b6b6b; background-color: #313541; color: #ffffff; - font-weight: bold; letter-spacing: .07em; -webkit-transition: border 0.2s ease-in-out; transition: border 0.2s ease-in-out; @@ -186,4 +185,4 @@ body { cursor: pointer; } -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9sYXlvdXQuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuYm9keXtcblxuXHRmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG5cdGZvbnQtc2l6ZTogMTVweDtcbn1cblxuXG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdHotaW5kZXg6IDE7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFweCApO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkaGVhZGVyLWRhcmssIDEwKTtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItZGFyaztcblxuXHRcdHotaW5kZXg6IDEwMDtcblxuXHR9XG5cblxuXHQvKiBbMl0gU2lkZS1NZW51IGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0Ly8gR2VzdGlvbiBkdSBtZW51XG5cdCYgPiAjTUVOVS1TSURFe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXG5cdFx0Ym94LXNoYWRvdzogMnB4IDFweCAzcHggI2RkZDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBhbGwgLjNzICk7XG5cblx0XHR6LWluZGV4OiAxMDtcblx0fVxuXG5cblx0LyogWzNdIENvbnRhaW5lciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjQ09OVEFJTkVSe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdGxlZnQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gKTtcblx0XHRcdG1pbi1oZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXHRcdC8vICBtYXJnaW46IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdG92ZXJmbG93LXg6IG5vbmU7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0fVxufVxuXG5cblxuXG4vKiBbNF0gUGFnZSBkZSBsb2dpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbiNMT0dJTntcblx0ZGlzcGxheTogZmxleDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAtMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0Ly8gUXVhbmQgbGEgcGFnZSBkZSBsb2dpbiBlc3QgdmlzaWJsZVxuXHQmLmFjdGl2ZXtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxlZnQgLjNzIGVhc2UtaW4tb3V0ICk7XG5cblx0ei1pbmRleDogMTAxO1xuXG5cblxuXG5cdC8qICgxKSBMb2dvIGV0IG5vbSBkdSBzaXRlICovXG5cdCYgPiAjbG9naW4taWNvbntcblx0XHR3aWR0aDogMzVlbTtcblx0XHRoZWlnaHQ6IDEwZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9pY29udjIvc3QnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcblx0fVxuXG5cblx0LyogKDIpIEZvcm11bGFpcmUgZGUgY29ubmV4aW9uICovXG5cdCYgPiAjbG9naW4tZm9ybXtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXG5cdFx0LyogKDIuMSkgQ2hhbXBzIGRlIHRleHRlIChsb2dpbi9wYXNzd29yZCkgKi9cblx0XHQmID4gaW5wdXRbdHlwZT0ndGV4dCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHdpZHRoOiAyMGVtO1xuXG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXHRcdFx0cGFkZGluZzogMWVtIDJlbTtcblxuXHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBtaWRkbGU7XG5cblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkdGhlbWUtZmcsIDEwKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmc7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XG5cblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQgKTtcblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyL0Bmb2N1c1xuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXN7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblxuXHRcdC8qICgyLjIpIEJvdXRvbiBkZSBjb25uZXhpb24gKi9cblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMmVtIDA7XG5cblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMWVtIGRhcmtlbigkZGFyay1iZywgMTApO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiAoMykgTW90IGRlIHBhc3NlIG91YmxpZSAqL1xuXHRcdCYgPiAjbG9zdC1wYXNzd29yZHtcblx0XHRcdGNvbG9yOiAkZGFyay1mZztcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRjb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LyogKDQpIEdlc3Rpb24gZGUgbGEgZmVybWV0dXJlICovXG5cdCYgPiAjbG9naW4tY2xvc2V7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyZW07XG5cdFx0XHRyaWdodDogMmVtO1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2JhY2svc3QvY29udGFpbmVyL2ZmZmZmZicpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxZW07XG5cblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDJlbTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG4kaGVhZGVyLWRhcms6ICAgICAjMzMzMzMzO1xuXG4vKiAoMykgQ291bGV1cnMgZHUgdGhlbWUgcG91ciBsYSB0aW1lbGluZSAqL1xuJHRpbWVsaW5lLWNvbG9yOiAjNzM4Mzk0O1xuJHRpbWVsaW5lLTA6ICMzOTljZWQ7XG4kdGltZWxpbmUtMTogI2U2NGUzZTtcbiR0aW1lbGluZS0yOiAjMTBiYWEzO1xuJHRpbWVsaW5lLTM6ICNiMTRiZTc7XG4kdGltZWxpbmUtNDogIzA1M2I1ZDtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcblxuXG5cbi8qIFszXSBNaXhpbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWl4aW4gdHJhbnNmb3JtKCR2YWx1ZS4uLikge1xuICAgIHRyYW5zZm9ybTogJHZhbHVlO1xuXHQtbW96LXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtby10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1zLXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHZhbHVlO1xufVxuXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR2YWx1ZS4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHZhbHVlO1xuICAgIHRyYW5zaXRpb246ICR2YWx1ZTtcbn1cblxuLyogWzRdIEZ1bmN0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8vIFRyYW5zZm9ybWUgdW5lIGNvdWxldXIgaGV4IGVuIHN0cmluZyBzYW5zIGxlICNcbkBmdW5jdGlvbiBjb2xvci1zdHIoJGNvbG9yKXtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgjeyRjb2xvcn0sIDIsIHN0ci1sZW5ndGgoI3skY29sb3J9KSk7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFRakMsNENBQTRDO0FBUzVDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QUFNeEI7MkRBQzJEO0FBZTNEOzJEQUMyRDtBRGhEM0QsSUFBSSxDQUFBO0VBRUgsV0FBVyxFQUFFLFdBQVk7RUFDekIsU0FBUyxFQUFFLElBQUs7Q0FDaEI7O0FBSUQsUUFBUSxDQUFBO0VBQ1AsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsS0FBTTtFQUNmLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBRWQsZ0JBQWdCLEVDZkUsT0FBTztFRGlCekIsVUFBVSxFQUFFLE1BQU87RUFDbkIsVUFBVSxFQUFFLElBQUs7RUFFakIsT0FBTyxFQUFFLENBQUU7RUFHWDs2Q0FDNEM7RUFrQjVDOzZDQUM0QztFQW9CNUM7NkNBQzRDO0NBa0I1Qzs7QUEzRUQsUUFBUSxHQWtCSCxPQUFPLENBQUE7RUFDVixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxLQUFNO0VBQ2YsR0FBRyxFQUFFLENBQUU7RUFDUCxJQUFJLEVBQUUsQ0FBRTtFQUNSLEtBQUssRUFBRSxJQUFLO0VBQ1osTUFBTSxFQUFFLGdCQUFJO0VBRWIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTTtFQUUvQixnQkFBZ0IsRUN4QkEsT0FBTztFRDBCdkIsT0FBTyxFQUFFLEdBQUk7Q0FFYjs7QUFoQ0YsUUFBUSxHQXNDSCxVQUFVLENBQUE7RUFDYixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxLQUFNO0VBQ2YsR0FBRyxFQ3RCWSxHQUFHO0VEdUJsQixJQUFJLEVBQUUsQ0FBRTtFQUNSLEtBQUssRUN6QlUsSUFBSTtFRDBCbkIsTUFBTSxFQUFFLGlCQUFJO0VBRWIsVUFBVSxFQUFFLGdCQUFpQjtFQUU3QixnQkFBZ0IsRUFBRSxJQUFLO0VDYnJCLGtCQUFrQixFRGVDLEdBQUcsQ0FBQyxJQUFHO0VDZDFCLFVBQVUsRURjUyxHQUFHLENBQUMsSUFBRztFQUU1QixPQUFPLEVBQUUsRUFBRztDQUNaOztBQXJERixRQUFRLEdBMERILFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxJQUFLO0VBQ2QsUUFBUSxFQUFFLFFBQVM7RUFDbEIsR0FBRyxFQzFDWSxHQUFHO0VEMkNsQixJQUFJLEVDNUNXLElBQUk7RUQ2Q25CLEtBQUssRUFBRSxrQkFBSTtFQUNYLFVBQVUsRUFBRSxpQkFBSTtFQUlqQixjQUFjLEVBQUUsR0FBSTtFQUNwQixlQUFlLEVBQUUsYUFBYztFQUMvQixTQUFTLEVBQUUsSUFBSztFQUVoQixVQUFVLEVBQUUsSUFBSztFQUNqQixVQUFVLEVBQUUsSUFBSztDQUNqQjs7QUFNRjsyREFDMkQ7QUFDM0QsTUFBTSxDQUFBO0VBQ0wsT0FBTyxFQUFFLElBQUs7RUFDZCxRQUFRLEVBQUUsS0FBTTtFQUNmLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLEtBQU07RUFDWixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBUWQsY0FBYyxFQUFFLEdBQUk7RUFDcEIsU0FBUyxFQUFFLE1BQU87RUFDbEIsZUFBZSxFQUFFLFlBQWE7RUFDOUIsV0FBVyxFQUFFLE1BQU87RUFHcEIsZ0JBQWdCLEVDdkdDLE9BQU87RUFvQ3JCLGtCQUFrQixFRHFFQSxJQUFJLENBQUMsSUFBRyxDQUFDLFdBQVc7RUNwRXRDLFVBQVUsRURvRVEsSUFBSSxDQUFDLElBQUcsQ0FBQyxXQUFXO0VBRXpDLE9BQU8sRUFBRSxHQUFJO0VBS2IsNkJBQTZCO0VBVTdCLGlDQUFpQztFQXNGakMsaUNBQWlDO0NBbUJqQzs7QUFoSkQsTUFBTSxBQVNKLE9BQU8sQ0FBQTtFQUNQLElBQUksRUFBRSxDQUFFO0NBQ1I7O0FBWEYsTUFBTSxHQThCRCxXQUFXLENBQUE7RUFDZCxLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBRWIsVUFBVSxFQUFFLHVCQUFHLENBQXFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUztFQUMzRCxlQUFlLEVBQUUsU0FBVTtDQUMzQjs7QUFwQ0YsTUFBTSxHQXdDRCxXQUFXLENBQUE7RUFDZCxPQUFPLEVBQUUsS0FBTTtFQUdmLDRDQUE0QztFQXVDNUMsK0JBQStCO0VBMkIvQiw2QkFBNkI7Q0FhN0I7O0FBM0hGLE1BQU0sR0F3Q0QsV0FBVyxHQUtWLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVg7QUE3Q1osTUFBTSxHQXdDRCxXQUFXLEdBTVYsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZjtBQTlDWixNQUFNLEdBd0NELFdBQVcsR0FPVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWM7RUFDdkIsT0FBTyxFQUFFLElBQUs7RUFDYixLQUFLLEVBQUUsSUFBSztFQUViLE1BQU0sRUFBRSxLQUFNO0VBQ2QsT0FBTyxFQUFFLE9BQVE7RUFHakIsY0FBYyxFQUFFLE1BQU87RUFDdkIsZUFBZSxFQUFFLFlBQWE7RUFDOUIsU0FBUyxFQUFFLE1BQU87RUFDbEIsV0FBVyxFQUFFLE1BQU87RUFHcEIsYUFBYSxFQUFFLEdBQUk7RUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztFQUV6QixnQkFBZ0IsRUNuSkQsT0FBTztFRHFKdEIsS0FBSyxFQ2xKVSxPQUFPO0VEbUp0QixXQUFXLEVBQUUsSUFBSztFQUNsQixjQUFjLEVBQUUsS0FBTTtFQ25IckIsa0JBQWtCLEVEcUhFLE1BQU0sQ0FBQyxJQUFHLENBQUMsV0FBVztFQ3BIMUMsVUFBVSxFRG9IVSxNQUFNLENBQUMsSUFBRyxDQUFDLFdBQVc7RUFFM0MsTUFBTSxFQUFFLE9BQVE7Q0FRaEI7O0FBaEZILE1BQU0sR0F3Q0QsV0FBVyxHQUtWLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsQ0E4QlIsTUFBTSxFQTNFVixNQUFNLEdBd0NELFdBQVcsR0FLVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLENBK0JSLE1BQU07QUE1RVYsTUFBTSxHQXdDRCxXQUFXLEdBTVYsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZixDQTZCUixNQUFNO0FBM0VWLE1BQU0sR0F3Q0QsV0FBVyxHQU1WLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsQ0E4QlIsTUFBTTtBQTVFVixNQUFNLEdBd0NELFdBQVcsR0FPVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBNEJSLE1BQU07QUEzRVYsTUFBTSxHQXdDRCxXQUFXLEdBT1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQTZCUixNQUFNLENBQUE7RUFDTixZQUFZLEVDbktHLE9BQU87Q0RvS3RCOztBQTlFSixNQUFNLEdBd0NELFdBQVcsR0E0Q1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFjO0VBQ3ZCLEtBQUssRUFBRSxJQUFLO0VBQ1osTUFBTSxFQUFFLEtBQU07RUFFZCxNQUFNLEVBQUUsQ0FBRTtFQUVWLGdCQUFnQixFQ2hMQSxPQUFPO0VEa0x2QixLQUFLLEVDNUtVLE9BQU87RUQ2S3RCLFdBQVcsRUFBRSxJQUFLO0VBQ2xCLFVBQVUsRUFBRSxJQUFLO0VBRWpCLE1BQU0sRUFBRSxPQUFRO0NBUWhCOztBQXhHSCxNQUFNLEdBd0NELFdBQVcsR0E0Q1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQWVSLE1BQU0sQ0FBQTtFQUNOLGdCQUFnQixFQUFFLE9BQU07RUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU07Q0FDMUI7O0FBdEdKLE1BQU0sR0F3Q0QsV0FBVyxHQXVFVixjQUFjLENBQUE7RUFDakIsS0FBSyxFQ2pNVSxPQUFPO0VEbU10QixNQUFNLEVBQUUsT0FBUTtDQU9oQjs7QUF6SEgsTUFBTSxHQXdDRCxXQUFXLEdBdUVWLGNBQWMsQUFNaEIsTUFBTSxDQUFBO0VBQ04sS0FBSyxFQzVNVSxPQUFPO0VENk10QixlQUFlLEVBQUUsU0FBVTtDQUMzQjs7QUF4SEosTUFBTSxHQThIRCxZQUFZLENBQUE7RUFDZixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxHQUFJO0VBQ1QsS0FBSyxFQUFFLEdBQUk7RUFDWCxTQUFTLEVBQUUsR0FBSTtFQUNmLE1BQU0sRUFBRSxHQUFJO0VBRWIsVUFBVSxFQUFFLHNDQUFHLENBQW9DLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztFQUN6RSxlQUFlLEVBQUUsR0FBSTtFQUVyQixLQUFLLEVBQUUsSUFBSztFQUNaLGFBQWEsRUFBRSxHQUFJO0VBQ25CLFdBQVcsRUFBRSxHQUFJO0VBQ2pCLFdBQVcsRUFBRSxJQUFLO0VBRWxCLE1BQU0sRUFBRSxPQUFRO0NBQ2hCIiwKCSJuYW1lcyI6IFtdCn0= */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9sYXlvdXQuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuYm9keXtcblxuXHRmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG5cdGZvbnQtc2l6ZTogMTVweDtcbn1cblxuXG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdHotaW5kZXg6IDE7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFweCApO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkaGVhZGVyLWRhcmssIDEwKTtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItZGFyaztcblxuXHRcdHotaW5kZXg6IDEwMDtcblxuXHR9XG5cblxuXHQvKiBbMl0gU2lkZS1NZW51IGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0Ly8gR2VzdGlvbiBkdSBtZW51XG5cdCYgPiAjTUVOVS1TSURFe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXG5cdFx0Ym94LXNoYWRvdzogMnB4IDFweCAzcHggI2RkZDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBhbGwgLjNzICk7XG5cblx0XHR6LWluZGV4OiAxMDtcblx0fVxuXG5cblx0LyogWzNdIENvbnRhaW5lciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjQ09OVEFJTkVSe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdGxlZnQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gKTtcblx0XHRcdG1pbi1oZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXHRcdC8vICBtYXJnaW46IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdG92ZXJmbG93LXg6IG5vbmU7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0fVxufVxuXG5cblxuXG4vKiBbNF0gUGFnZSBkZSBsb2dpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbiNMT0dJTntcblx0ZGlzcGxheTogZmxleDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAtMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0Ly8gUXVhbmQgbGEgcGFnZSBkZSBsb2dpbiBlc3QgdmlzaWJsZVxuXHQmLmFjdGl2ZXtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxlZnQgLjNzIGVhc2UtaW4tb3V0ICk7XG5cblx0ei1pbmRleDogMTAxO1xuXG5cblxuXG5cdC8qICgxKSBMb2dvIGV0IG5vbSBkdSBzaXRlICovXG5cdCYgPiAjbG9naW4taWNvbntcblx0XHR3aWR0aDogMzVlbTtcblx0XHRoZWlnaHQ6IDEwZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9pY29udjIvc3QnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcblx0fVxuXG5cblx0LyogKDIpIEZvcm11bGFpcmUgZGUgY29ubmV4aW9uICovXG5cdCYgPiAjbG9naW4tZm9ybXtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXG5cdFx0LyogKDIuMSkgQ2hhbXBzIGRlIHRleHRlIChsb2dpbi9wYXNzd29yZCkgKi9cblx0XHQmID4gaW5wdXRbdHlwZT0ndGV4dCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHdpZHRoOiAyMGVtO1xuXG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXHRcdFx0cGFkZGluZzogMWVtIDJlbTtcblxuXHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBtaWRkbGU7XG5cblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkdGhlbWUtZmcsIDEwKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmc7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Ly8gZm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XG5cblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQgKTtcblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyL0Bmb2N1c1xuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXN7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblxuXHRcdC8qICgyLjIpIEJvdXRvbiBkZSBjb25uZXhpb24gKi9cblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMmVtIDA7XG5cblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMWVtIGRhcmtlbigkZGFyay1iZywgMTApO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiAoMykgTW90IGRlIHBhc3NlIG91YmxpZSAqL1xuXHRcdCYgPiAjbG9zdC1wYXNzd29yZHtcblx0XHRcdGNvbG9yOiAkZGFyay1mZztcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRjb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LyogKDQpIEdlc3Rpb24gZGUgbGEgZmVybWV0dXJlICovXG5cdCYgPiAjbG9naW4tY2xvc2V7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyZW07XG5cdFx0XHRyaWdodDogMmVtO1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2JhY2svc3QvY29udGFpbmVyL2ZmZmZmZicpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxZW07XG5cblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDJlbTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG4kaGVhZGVyLWRhcms6ICAgICAjMzMzMzMzO1xuXG4vKiAoMykgQ291bGV1cnMgZHUgdGhlbWUgcG91ciBsYSB0aW1lbGluZSAqL1xuJHRpbWVsaW5lLWNvbG9yOiAjNzM4Mzk0O1xuJHRpbWVsaW5lLTA6ICMzOTljZWQ7XG4kdGltZWxpbmUtMTogI2U2NGUzZTtcbiR0aW1lbGluZS0yOiAjMTBiYWEzO1xuJHRpbWVsaW5lLTM6ICNiMTRiZTc7XG4kdGltZWxpbmUtNDogIzA1M2I1ZDtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcblxuXG5cbi8qIFszXSBNaXhpbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWl4aW4gdHJhbnNmb3JtKCR2YWx1ZS4uLikge1xuICAgIHRyYW5zZm9ybTogJHZhbHVlO1xuXHQtbW96LXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtby10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1zLXRyYW5zZm9ybTogJHZhbHVlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHZhbHVlO1xufVxuXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR2YWx1ZS4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHZhbHVlO1xuICAgIHRyYW5zaXRpb246ICR2YWx1ZTtcbn1cblxuLyogWzRdIEZ1bmN0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8vIFRyYW5zZm9ybWUgdW5lIGNvdWxldXIgaGV4IGVuIHN0cmluZyBzYW5zIGxlICNcbkBmdW5jdGlvbiBjb2xvci1zdHIoJGNvbG9yKXtcbiAgICBAcmV0dXJuIHN0ci1zbGljZSgjeyRjb2xvcn0sIDIsIHN0ci1sZW5ndGgoI3skY29sb3J9KSk7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFRakMsNENBQTRDO0FBUzVDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QUFNeEI7MkRBQzJEO0FBZTNEOzJEQUMyRDtBRGhEM0QsSUFBSSxDQUFBO0VBRUgsV0FBVyxFQUFFLFdBQVk7RUFDekIsU0FBUyxFQUFFLElBQUs7Q0FDaEI7O0FBSUQsUUFBUSxDQUFBO0VBQ1AsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsS0FBTTtFQUNmLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBRWQsZ0JBQWdCLEVDZkUsT0FBTztFRGlCekIsVUFBVSxFQUFFLE1BQU87RUFDbkIsVUFBVSxFQUFFLElBQUs7RUFFakIsT0FBTyxFQUFFLENBQUU7RUFHWDs2Q0FDNEM7RUFrQjVDOzZDQUM0QztFQW9CNUM7NkNBQzRDO0NBa0I1Qzs7QUEzRUQsUUFBUSxHQWtCSCxPQUFPLENBQUE7RUFDVixP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 */ \ No newline at end of file diff --git a/css/layout/expanded.css.map b/css/layout/expanded.css.map index e7376c5..b37a9f4 100644 --- a/css/layout/expanded.css.map +++ b/css/layout/expanded.css.map @@ -6,9 +6,9 @@ "../constants.scss" ], "sourcesContent": [ - "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($header-dark, 10);\n\n\t\tbackground-color: $header-dark;\n\n\t\tz-index: 100;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( all .3s );\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\t@include transition( left .3s ease-in-out );\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/iconv2/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\t@include transition( border .2s ease-in-out );\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($header-dark, 10);\n\n\t\tbackground-color: $header-dark;\n\n\t\tz-index: 100;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( all .3s );\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\t@include transition( left .3s ease-in-out );\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/iconv2/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\t// font-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\t@include transition( border .2s ease-in-out );\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" ], - "mappings": "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", + "mappings": "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", "names": [] } \ No newline at end of file diff --git a/css/layout/min.css b/css/layout/min.css index 0628678..d8b44e0 100644 --- a/css/layout/min.css +++ b/css/layout/min.css @@ -1,3 +1,3 @@ -body{font-family:'Open Sans';font-size:15px}#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#e8e8e8;overflow-x:hidden;overflow-y:auto;z-index:1}#WRAPPER>#HEADER{display:block;position:fixed;top:0;left:0;width:100%;height:calc( 4em - 1px);border-bottom:1px solid #1a1a1a;background-color:#333;z-index:100}#WRAPPER>#MENU-SIDE{display:block;position:fixed;top:4em;left:0;width:15em;height:calc( 100% - 4em);box-shadow:2px 1px 3px #ddd;background-color:#fff;-webkit-transition:all 0.3s;transition:all 0.3s;z-index:10}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:15em;width:calc( 100% - 15em);min-height:calc( 100% - 4em);flex-direction:row;justify-content:space-between;flex-wrap:wrap;overflow-x:none;overflow-y:auto}#LOGIN{display:flex;position:fixed;top:0;left:-100%;width:100%;height:100%;flex-direction:row;flex-wrap:nowrap;justify-content:space-around;align-items:center;background-color:#313541;-webkit-transition:left 0.3s ease-in-out;transition:left 0.3s ease-in-out;z-index:101}#LOGIN.active{left:0}#LOGIN>#login-icon{width:35em;height:10em;background:url("/f/svg/iconv2/st") center center no-repeat;background-size:auto 100%}#LOGIN>#login-form{display:block}#LOGIN>#login-form>input[type='text'],#LOGIN>#login-form>input[type='password'],#LOGIN>#login-form>input[type='submit']{display:flex;width:20em;margin:2em 0;padding:1em 2em;flex-direction:column;justify-content:space-around;flex-wrap:nowrap;align-items:middle;border-radius:5px;border:1px solid #6b6b6b;background-color:#313541;color:#fff;font-weight:bold;letter-spacing:.07em;-webkit-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out;cursor:default}#LOGIN>#login-form>input[type='text']:hover,#LOGIN>#login-form>input[type='text']:focus,#LOGIN>#login-form>input[type='password']:hover,#LOGIN>#login-form>input[type='password']:focus,#LOGIN>#login-form>input[type='submit']:hover,#LOGIN>#login-form>input[type='submit']:focus{border-color:#399ced}#LOGIN>#login-form>input[type='submit']{width:100%;margin:2em 0;border:0;background-color:#399ced;color:#fff;font-weight:bold;text-align:left;cursor:pointer}#LOGIN>#login-form>input[type='submit']:hover{background-color:#1484df;box-shadow:0 0 1em #1b1d24}#LOGIN>#login-form>#lost-password{color:#939393;cursor:pointer}#LOGIN>#login-form>#lost-password:hover{color:#399ced;text-decoration:underline}#LOGIN>#login-close{display:block;position:absolute;top:2em;right:2em;min-width:2em;height:2em;background:url("/f/svg/back/st/container/ffffff") right center no-repeat;background-size:1em;color:#fff;padding-right:2em;line-height:2em;font-weight:bold;cursor:pointer} +body{font-family:'Open Sans';font-size:15px}#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#e8e8e8;overflow-x:hidden;overflow-y:auto;z-index:1}#WRAPPER>#HEADER{display:block;position:fixed;top:0;left:0;width:100%;height:calc( 4em - 1px);border-bottom:1px solid #1a1a1a;background-color:#333;z-index:100}#WRAPPER>#MENU-SIDE{display:block;position:fixed;top:4em;left:0;width:15em;height:calc( 100% - 4em);box-shadow:2px 1px 3px #ddd;background-color:#fff;-webkit-transition:all 0.3s;transition:all 0.3s;z-index:10}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:15em;width:calc( 100% - 15em);min-height:calc( 100% - 4em);flex-direction:row;justify-content:space-between;flex-wrap:wrap;overflow-x:none;overflow-y:auto}#LOGIN{display:flex;position:fixed;top:0;left:-100%;width:100%;height:100%;flex-direction:row;flex-wrap:nowrap;justify-content:space-around;align-items:center;background-color:#313541;-webkit-transition:left 0.3s ease-in-out;transition:left 0.3s ease-in-out;z-index:101}#LOGIN.active{left:0}#LOGIN>#login-icon{width:35em;height:10em;background:url("/f/svg/iconv2/st") center center no-repeat;background-size:auto 100%}#LOGIN>#login-form{display:block}#LOGIN>#login-form>input[type='text'],#LOGIN>#login-form>input[type='password'],#LOGIN>#login-form>input[type='submit']{display:flex;width:20em;margin:2em 0;padding:1em 2em;flex-direction:column;justify-content:space-around;flex-wrap:nowrap;align-items:middle;border-radius:5px;border:1px solid #6b6b6b;background-color:#313541;color:#fff;letter-spacing:.07em;-webkit-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out;cursor:default}#LOGIN>#login-form>input[type='text']:hover,#LOGIN>#login-form>input[type='text']:focus,#LOGIN>#login-form>input[type='password']:hover,#LOGIN>#login-form>input[type='password']:focus,#LOGIN>#login-form>input[type='submit']:hover,#LOGIN>#login-form>input[type='submit']:focus{border-color:#399ced}#LOGIN>#login-form>input[type='submit']{width:100%;margin:2em 0;border:0;background-color:#399ced;color:#fff;font-weight:bold;text-align:left;cursor:pointer}#LOGIN>#login-form>input[type='submit']:hover{background-color:#1484df;box-shadow:0 0 1em #1b1d24}#LOGIN>#login-form>#lost-password{color:#939393;cursor:pointer}#LOGIN>#login-form>#lost-password:hover{color:#399ced;text-decoration:underline}#LOGIN>#login-close{display:block;position:absolute;top:2em;right:2em;min-width:2em;height:2em;background:url("/f/svg/back/st/container/ffffff") right center no-repeat;background-size:1em;color:#fff;padding-right:2em;line-height:2em;font-weight:bold;cursor:pointer} -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbmJvZHl7XG5cblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuXHRmb250LXNpemU6IDE1cHg7XG59XG5cblxuXG4jV1JBUFBFUntcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWJnO1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHR6LWluZGV4OiAxO1xuXG5cblx0LyogWzFdIEhlYWRlciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjSEVBREVSe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAxcHggKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGhlYWRlci1kYXJrLCAxMCk7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLWRhcms7XG5cblx0XHR6LWluZGV4OiAxMDA7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHR0b3A6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblxuXHRcdGJveC1zaGFkb3c6IDJweCAxcHggM3B4ICNkZGQ7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggYWxsIC4zcyApO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cdH1cblxuXG5cdC8qIFszXSBDb250YWluZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0NPTlRBSU5FUntcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9ICk7XG5cdFx0XHRtaW4taGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblx0XHQvLyAgbWFyZ2luOiAxZW07XG5cblx0XHQvLyBGbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRvdmVyZmxvdy14OiBub25lO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cbn1cblxuXG5cblxuLyogWzRdIFBhZ2UgZGUgbG9naW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4jTE9HSU57XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogLTEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdC8vIFF1YW5kIGxhIHBhZ2UgZGUgbG9naW4gZXN0IHZpc2libGVcblx0Ji5hY3RpdmV7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdC8vIGZsZXggcHJvcGVydGllc1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iZztcblxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsZWZ0IC4zcyBlYXNlLWluLW91dCApO1xuXG5cdHotaW5kZXg6IDEwMTtcblxuXG5cblxuXHQvKiAoMSkgTG9nbyBldCBub20gZHUgc2l0ZSAqL1xuXHQmID4gI2xvZ2luLWljb257XG5cdFx0d2lkdGg6IDM1ZW07XG5cdFx0aGVpZ2h0OiAxMGVtO1xuXG5cdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvaWNvbnYyL3N0JykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG5cdH1cblxuXG5cdC8qICgyKSBGb3JtdWxhaXJlIGRlIGNvbm5leGlvbiAqL1xuXHQmID4gI2xvZ2luLWZvcm17XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblxuXHRcdC8qICgyLjEpIENoYW1wcyBkZSB0ZXh0ZSAobG9naW4vcGFzc3dvcmQpICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3RleHQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHR3aWR0aDogMjBlbTtcblxuXHRcdFx0bWFyZ2luOiAyZW0gMDtcblx0XHRcdHBhZGRpbmc6IDFlbSAyZW07XG5cblx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogbWlkZGxlO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJHRoZW1lLWZnLCAxMCk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xuXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0ICk7XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3Zlci9AZm9jdXNcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3Vze1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblx0XHQvKiAoMi4yKSBCb3V0b24gZGUgY29ubmV4aW9uICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDFlbSBkYXJrZW4oJGRhcmstYmcsIDEwKTtcblx0XHRcdH1cblxuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogKDMpIE1vdCBkZSBwYXNzZSBvdWJsaWUgKi9cblx0XHQmID4gI2xvc3QtcGFzc3dvcmR7XG5cdFx0XHRjb2xvcjogJGRhcmstZmc7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0Y29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qICg0KSBHZXN0aW9uIGRlIGxhIGZlcm1ldHVyZSAqL1xuXHQmID4gI2xvZ2luLWNsb3Nle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMmVtO1xuXHRcdFx0cmlnaHQ6IDJlbTtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9iYWNrL3N0L2NvbnRhaW5lci9mZmZmZmYnKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMWVtO1xuXG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuJGhlYWRlci1kYXJrOiAgICAgIzMzMzMzMztcblxuLyogKDMpIENvdWxldXJzIGR1IHRoZW1lIHBvdXIgbGEgdGltZWxpbmUgKi9cbiR0aW1lbGluZS1jb2xvcjogIzczODM5NDtcbiR0aW1lbGluZS0wOiAjMzk5Y2VkO1xuJHRpbWVsaW5lLTE6ICNlNjRlM2U7XG4kdGltZWxpbmUtMjogIzEwYmFhMztcbiR0aW1lbGluZS0zOiAjYjE0YmU3O1xuJHRpbWVsaW5lLTQ6ICMwNTNiNWQ7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG5cblxuXG4vKiBbM10gTWl4aW5zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQG1peGluIHRyYW5zZm9ybSgkdmFsdWUuLi4pIHtcbiAgICB0cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1vei10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW8tdHJhbnNmb3JtOiAkdmFsdWU7XG5cdC1tcy10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR2YWx1ZTtcbn1cblxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdmFsdWUuLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR2YWx1ZTtcbiAgICB0cmFuc2l0aW9uOiAkdmFsdWU7XG59XG5cbi8qIFs0XSBGdW5jdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vLyBUcmFuc2Zvcm1lIHVuZSBjb3VsZXVyIGhleCBlbiBzdHJpbmcgc2FucyBsZSAjXG5AZnVuY3Rpb24gY29sb3Itc3RyKCRjb2xvcil7XG4gICAgQHJldHVybiBzdHItc2xpY2UoI3skY29sb3J9LCAyLCBzdHItbGVuZ3RoKCN7JGNvbG9yfSkpO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUVBLElBQUksQUFBQSxDQUVILFdBQVcsQ0FBRSxXQUFZLENBQ3pCLFNBQVMsQ0FBRSxJQUFLLENBQ2hCLEFBSUQsUUFBUSxBQUFBLENBQ1AsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsS0FBTSxDQUNmLEdBQUcsQ0FBRSxDQUFFLENBQ1AsSUFBSSxDQUFFLENBQUUsQ0FDUixLQUFLLENBQUUsSUFBSyxDQUNaLE1BQU0sQ0FBRSxJQUFLLENBRWQsZ0JBQWdCLENDZkUsT0FBTyxDRGlCekIsVUFBVSxDQUFFLE1BQU8sQ0FDbkIsVUFBVSxDQUFFLElBQUssQ0FFakIsT0FBTyxDQUFFLENBQUUsQ0E4RFgsQUEzRUQsUUFBUSxDQWtCSCxPQUFPLEFBQUEsQ0FDVixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxLQUFNLENBQ2YsR0FBRyxDQUFFLENBQUUsQ0FDUCxJQUFJLENBQUUsQ0FBRSxDQUNSLEtBQUssQ0FBRSxJQUFLLENBQ1osTUFBTSxDQUFFLGdCQUFJLENBRWIsYUFBYSxDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTSxD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 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbmJvZHl7XG5cblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuXHRmb250LXNpemU6IDE1cHg7XG59XG5cblxuXG4jV1JBUFBFUntcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWJnO1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHR6LWluZGV4OiAxO1xuXG5cblx0LyogWzFdIEhlYWRlciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjSEVBREVSe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAxcHggKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGhlYWRlci1kYXJrLCAxMCk7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLWRhcms7XG5cblx0XHR6LWluZGV4OiAxMDA7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHR0b3A6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblxuXHRcdGJveC1zaGFkb3c6IDJweCAxcHggM3B4ICNkZGQ7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggYWxsIC4zcyApO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cdH1cblxuXG5cdC8qIFszXSBDb250YWluZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0NPTlRBSU5FUntcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9ICk7XG5cdFx0XHRtaW4taGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblx0XHQvLyAgbWFyZ2luOiAxZW07XG5cblx0XHQvLyBGbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRvdmVyZmxvdy14OiBub25lO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cbn1cblxuXG5cblxuLyogWzRdIFBhZ2UgZGUgbG9naW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4jTE9HSU57XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogLTEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdC8vIFF1YW5kIGxhIHBhZ2UgZGUgbG9naW4gZXN0IHZpc2libGVcblx0Ji5hY3RpdmV7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdC8vIGZsZXggcHJvcGVydGllc1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iZztcblxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsZWZ0IC4zcyBlYXNlLWluLW91dCApO1xuXG5cdHotaW5kZXg6IDEwMTtcblxuXG5cblxuXHQvKiAoMSkgTG9nbyBldCBub20gZHUgc2l0ZSAqL1xuXHQmID4gI2xvZ2luLWljb257XG5cdFx0d2lkdGg6IDM1ZW07XG5cdFx0aGVpZ2h0OiAxMGVtO1xuXG5cdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvaWNvbnYyL3N0JykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG5cdH1cblxuXG5cdC8qICgyKSBGb3JtdWxhaXJlIGRlIGNvbm5leGlvbiAqL1xuXHQmID4gI2xvZ2luLWZvcm17XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblxuXHRcdC8qICgyLjEpIENoYW1wcyBkZSB0ZXh0ZSAobG9naW4vcGFzc3dvcmQpICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3RleHQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHR3aWR0aDogMjBlbTtcblxuXHRcdFx0bWFyZ2luOiAyZW0gMDtcblx0XHRcdHBhZGRpbmc6IDFlbSAyZW07XG5cblx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogbWlkZGxlO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJHRoZW1lLWZnLCAxMCk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xuXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0ICk7XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3Zlci9AZm9jdXNcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3Vze1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblx0XHQvKiAoMi4yKSBCb3V0b24gZGUgY29ubmV4aW9uICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDFlbSBkYXJrZW4oJGRhcmstYmcsIDEwKTtcblx0XHRcdH1cblxuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogKDMpIE1vdCBkZSBwYXNzZSBvdWJsaWUgKi9cblx0XHQmID4gI2xvc3QtcGFzc3dvcmR7XG5cdFx0XHRjb2xvcjogJGRhcmstZmc7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0Y29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qICg0KSBHZXN0aW9uIGRlIGxhIGZlcm1ldHVyZSAqL1xuXHQmID4gI2xvZ2luLWNsb3Nle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMmVtO1xuXHRcdFx0cmlnaHQ6IDJlbTtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9iYWNrL3N0L2NvbnRhaW5lci9mZmZmZmYnKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMWVtO1xuXG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuJGhlYWRlci1kYXJrOiAgICAgIzMzMzMzMztcblxuLyogKDMpIENvdWxldXJzIGR1IHRoZW1lIHBvdXIgbGEgdGltZWxpbmUgKi9cbiR0aW1lbGluZS1jb2xvcjogIzczODM5NDtcbiR0aW1lbGluZS0wOiAjMzk5Y2VkO1xuJHRpbWVsaW5lLTE6ICNlNjRlM2U7XG4kdGltZWxpbmUtMjogIzEwYmFhMztcbiR0aW1lbGluZS0zOiAjYjE0YmU3O1xuJHRpbWVsaW5lLTQ6ICMwNTNiNWQ7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG5cblxuXG4vKiBbM10gTWl4aW5zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuQG1peGluIHRyYW5zZm9ybSgkdmFsdWUuLi4pIHtcbiAgICB0cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW1vei10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LW8tdHJhbnNmb3JtOiAkdmFsdWU7XG5cdC1tcy10cmFuc2Zvcm06ICR2YWx1ZTtcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR2YWx1ZTtcbn1cblxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdmFsdWUuLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR2YWx1ZTtcbiAgICB0cmFuc2l0aW9uOiAkdmFsdWU7XG59XG5cbi8qIFs0XSBGdW5jdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vLyBUcmFuc2Zvcm1lIHVuZSBjb3VsZXVyIGhleCBlbiBzdHJpbmcgc2FucyBsZSAjXG5AZnVuY3Rpb24gY29sb3Itc3RyKCRjb2xvcil7XG4gICAgQHJldHVybiBzdHItc2xpY2UoI3skY29sb3J9LCAyLCBzdHItbGVuZ3RoKCN7JGNvbG9yfSkpO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUVBLElBQUksQUFBQSxDQUVILFdBQVcsQ0FBRSxXQUFZLENBQ3pCLFNBQVMsQ0FBRSxJQUFLLENBQ2hCLEFBSUQsUUFBUSxBQUFBLENBQ1AsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsS0FBTSxDQUNmLEdBQUcsQ0FBRSxDQUFFLENBQ1AsSUFBSSxDQUFFLENBQUUsQ0FDUixLQUFLLENBQUUsSUFBSyxDQUNaLE1BQU0sQ0FBRSxJQUFLLENBRWQsZ0JBQWdCLENDZkUsT0FBTyxDRGlCekIsVUFBVSxDQUFFLE1BQU8sQ0FDbkIsVUFBVSxDQUFFLElBQUssQ0FFakIsT0FBTyxDQUFFLENBQUUsQ0E4RFgsQUEzRUQsUUFBUSxDQWtCSCxPQUFPLEFBQUEsQ0FDVixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxLQUFNLENBQ2YsR0FBRyxDQUFFLENBQUUsQ0FDUCxJQUFJLENBQUUsQ0FBRSxDQUNSLEtBQUssQ0FBRSxJQUFLLENBQ1osTUFBTSxDQUFFLGdCQUFJLENBRWIsYUFBYSxDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FB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 */ \ No newline at end of file diff --git a/css/layout/min.css.map b/css/layout/min.css.map index ce5f390..7c2b4c1 100644 --- a/css/layout/min.css.map +++ b/css/layout/min.css.map @@ -6,9 +6,9 @@ "../constants.scss" ], "sourcesContent": [ - "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($header-dark, 10);\n\n\t\tbackground-color: $header-dark;\n\n\t\tz-index: 100;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( all .3s );\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\t@include transition( left .3s ease-in-out );\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/iconv2/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\t@include transition( border .2s ease-in-out );\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($header-dark, 10);\n\n\t\tbackground-color: $header-dark;\n\n\t\tz-index: 100;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( all .3s );\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\t@include transition( left .3s ease-in-out );\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/iconv2/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\t// font-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\t@include transition( border .2s ease-in-out );\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n" ], - "mappings": "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", + "mappings": "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", "names": [] } \ No newline at end of file diff --git a/css/notif.scss b/css/notif.scss new file mode 100644 index 0000000..6939b22 --- /dev/null +++ b/css/notif.scss @@ -0,0 +1,104 @@ +body > #notification-container{ + + display: flex; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + + flex-direction: column; + flex-wrap: nowrap; + + z-index: 200; + pointer-events: none; + + + .notification-element{ + display: block; + position: relative; + margin: .2em auto; + padding: 0 1em; + + border-radius: 3px; + border: 1px solid #ddd; + border-bottom: 1px solid darken(#ddd, 10); + box-shadow: inset 0 0 1em #eee; + + background-color: #fff; + + pointer-events: all; + cursor: default; + + // ECARTEMENT DU BOTTOM POUR LE DERNIER + &:last-child{ + margin-bottom: 1em; + } + + + // ANIMATION DE fadeIn + fadeOut + transition: opacity .5s ease-in-out; + opacity: 0; + + &.notification-visible{ + opacity: 1; + } + + + // ANIMATION DE @HOVER + &:hover{ + box-shadow: inset 0 0 1em #eee, 0 0 1em #555; + } + + + + // TITRE ET BOULE DE COULEUR + strong:first-child{ + + text-transform: uppercase; + padding-left: 1.5em; + + &:before{ + content: ''; + display: inline-block; + position: absolute; + top: 1.2em; + left: 1em; + width: .9em; + height: .9em; + + border-radius: 50% / 50%; + box-shadow: inset -1px 1px 2px rgba(50, 50, 50, .5); + } + + } + + // DIFFERENTS THEMES + // WARNING + &[data-warning]{ + border-color: #dd6a45; + border-bottom-color: darken(#dd6a45, 10); + strong:first-child{ &:before{ background-color: #dd6a45; } } + } + // INFO + &[data-info]{ + border-color: #2195da; + border-bottom-color: darken(#2195da, 10); + strong:first-child{ &:before{ background-color: #2195da; } } + } + // SUCCESS + &[data-success]{ + border-color: #5fca4a; + border-bottom-color: darken(#5fca4a, 10); + strong:first-child{ &:before{ background-color: #5fca4a; } } + } + // ERROR + &[data-error]{ + border-color: #d94747; + border-bottom-color: darken(#d94747, 10); + strong:first-child{ &:before{ background-color: #d94747; } } + } + + + } + +} diff --git a/css/notif/expanded.css b/css/notif/expanded.css new file mode 100644 index 0000000..cef5b81 --- /dev/null +++ b/css/notif/expanded.css @@ -0,0 +1,94 @@ +body > #notification-container { + display: flex; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + flex-direction: column; + flex-wrap: nowrap; + z-index: 200; + pointer-events: none; +} + +body > #notification-container .notification-element { + display: block; + position: relative; + margin: .2em auto; + padding: 0 1em; + border-radius: 3px; + border: 1px solid #ddd; + border-bottom: 1px solid #c4c4c4; + box-shadow: inset 0 0 1em #eee; + background-color: #fff; + pointer-events: all; + cursor: default; + transition: opacity .5s ease-in-out; + opacity: 0; +} + +body > #notification-container .notification-element:last-child { + margin-bottom: 1em; +} + +body > #notification-container .notification-element.notification-visible { + opacity: 1; +} + +body > #notification-container .notification-element:hover { + box-shadow: inset 0 0 1em #eee, 0 0 1em #555; +} + +body > #notification-container .notification-element strong:first-child { + text-transform: uppercase; + padding-left: 1.5em; +} + +body > #notification-container .notification-element strong:first-child:before { + content: ''; + display: inline-block; + position: absolute; + top: 1.2em; + left: 1em; + width: .9em; + height: .9em; + border-radius: 50% / 50%; + box-shadow: inset -1px 1px 2px rgba(50, 50, 50, 0.5); +} + +body > #notification-container .notification-element[data-warning] { + border-color: #dd6a45; + border-bottom-color: #ca4d25; +} + +body > #notification-container .notification-element[data-warning] strong:first-child:before { + background-color: #dd6a45; +} + +body > #notification-container .notification-element[data-info] { + border-color: #2195da; + border-bottom-color: #1a77ae; +} + +body > #notification-container .notification-element[data-info] strong:first-child:before { + background-color: #2195da; +} + +body > #notification-container .notification-element[data-success] { + border-color: #5fca4a; + border-bottom-color: #47ae33; +} + +body > #notification-container .notification-element[data-success] strong:first-child:before { + background-color: #5fca4a; +} + +body > #notification-container .notification-element[data-error] { + border-color: #d94747; + border-bottom-color: #c42929; +} + +body > #notification-container .notification-element[data-error] strong:first-child:before { + background-color: #d94747; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9ub3RpZi5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiYm9keSA+ICNub3RpZmljYXRpb24tY29udGFpbmVye1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgei1pbmRleDogMjAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cbiAgICAubm90aWZpY2F0aW9uLWVsZW1lbnR7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW46IC4yZW0gYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMWVtO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigjZGRkLCAxMCk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxZW0gI2VlZTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAvLyBFQ0FSVEVNRU5UIERVIEJPVFRPTSBQT1VSIExFIERFUk5JRVJcbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICB9XG5cblxuICAgICAgICAvLyBBTklNQVRJT04gREUgZmFkZUluICsgZmFkZU91dFxuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAmLm5vdGlmaWNhdGlvbi12aXNpYmxle1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gQU5JTUFUSU9OIERFIEBIT1ZFUlxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDFlbSAjZWVlLCAwIDAgMWVtICM1NTU7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgLy8gVElUUkUgRVQgQk9VTEUgREUgQ09VTEVVUlxuICAgICAgICBzdHJvbmc6Zmlyc3QtY2hpbGR7XG5cbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuXG4gICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMS4yZW07XG4gICAgICAgICAgICAgICAgbGVmdDogMWVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAuOWVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogLjllbTtcblxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAtMXB4IDFweCAycHggcmdiYSg1MCwgNTAsIDUwLCAuNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERJRkZFUkVOVFMgVEhFTUVTXG4gICAgICAgIC8vIFdBUk5JTkdcbiAgICAgICAgJltkYXRhLXdhcm5pbmdde1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGQ2YTQ1O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCNkZDZhNDUsIDEwKTtcbiAgICAgICAgICAgIHN0cm9uZzpmaXJzdC1jaGlsZHsgJjpiZWZvcmV7IGJhY2tncm91bmQtY29sb3I6ICNkZDZhNDU7IH0gfVxuICAgICAgICB9XG4gICAgICAgIC8vIElORk9cbiAgICAgICAgJltkYXRhLWluZm9de1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjE5NWRhO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCMyMTk1ZGEsIDEwKTtcbiAgICAgICAgICAgIHN0cm9uZzpmaXJzdC1jaGlsZHsgJjpiZWZvcmV7IGJhY2tncm91bmQtY29sb3I6ICMyMTk1ZGE7IH0gfVxuICAgICAgICB9XG4gICAgICAgIC8vIFNVQ0NFU1NcbiAgICAgICAgJltkYXRhLXN1Y2Nlc3Nde1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNWZjYTRhO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCM1ZmNhNGEsIDEwKTtcbiAgICAgICAgICAgIHN0cm9uZzpmaXJzdC1jaGlsZHsgJjpiZWZvcmV7IGJhY2tncm91bmQtY29sb3I6ICM1ZmNhNGE7IH0gfVxuICAgICAgICAgICAgfVxuICAgICAgICAvLyBFUlJPUlxuICAgICAgICAmW2RhdGEtZXJyb3Jde1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZDk0NzQ3O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCNkOTQ3NDcsIDEwKTtcbiAgICAgICAgICAgIHN0cm9uZzpmaXJzdC1jaGlsZHsgJjpiZWZvcmV7IGJhY2tncm91bmQtY29sb3I6ICNkOTQ3NDc7IH0gfVxuICAgICAgICB9XG5cblxuICAgIH1cblxufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUFBLElBQUksR0FBRyx1QkFBdUIsQ0FBQTtFQUUxQixPQUFPLEVB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 */ \ No newline at end of file diff --git a/css/notif/expanded.css.map b/css/notif/expanded.css.map new file mode 100644 index 0000000..d4838d6 --- /dev/null +++ b/css/notif/expanded.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../notif.scss" + ], + "sourcesContent": [ + "body > #notification-container{\n\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n\n flex-direction: column;\n flex-wrap: nowrap;\n\n z-index: 200;\n pointer-events: none;\n\n\n .notification-element{\n display: block;\n position: relative;\n margin: .2em auto;\n padding: 0 1em;\n\n border-radius: 3px;\n border: 1px solid #ddd;\n border-bottom: 1px solid darken(#ddd, 10);\n box-shadow: inset 0 0 1em #eee;\n\n background-color: #fff;\n\n pointer-events: all;\n cursor: default;\n\n // ECARTEMENT DU BOTTOM POUR LE DERNIER\n &:last-child{\n margin-bottom: 1em;\n }\n\n\n // ANIMATION DE fadeIn + fadeOut\n transition: opacity .5s ease-in-out;\n opacity: 0;\n\n &.notification-visible{\n opacity: 1;\n }\n\n\n // ANIMATION DE @HOVER\n &:hover{\n box-shadow: inset 0 0 1em #eee, 0 0 1em #555;\n }\n\n\n\n // TITRE ET BOULE DE COULEUR\n strong:first-child{\n\n text-transform: uppercase;\n padding-left: 1.5em;\n\n &:before{\n content: '';\n display: inline-block;\n position: absolute;\n top: 1.2em;\n left: 1em;\n width: .9em;\n height: .9em;\n\n border-radius: 50% / 50%;\n box-shadow: inset -1px 1px 2px rgba(50, 50, 50, .5);\n }\n\n }\n\n // DIFFERENTS THEMES\n // WARNING\n &[data-warning]{\n border-color: #dd6a45;\n border-bottom-color: darken(#dd6a45, 10);\n strong:first-child{ &:before{ background-color: #dd6a45; } }\n }\n // INFO\n &[data-info]{\n border-color: #2195da;\n border-bottom-color: darken(#2195da, 10);\n strong:first-child{ &:before{ background-color: #2195da; } }\n }\n // SUCCESS\n &[data-success]{\n border-color: #5fca4a;\n border-bottom-color: darken(#5fca4a, 10);\n strong:first-child{ &:before{ background-color: #5fca4a; } }\n }\n // ERROR\n &[data-error]{\n border-color: #d94747;\n border-bottom-color: darken(#d94747, 10);\n strong:first-child{ &:before{ background-color: #d94747; } }\n }\n\n\n }\n\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/notif/min.css b/css/notif/min.css new file mode 100644 index 0000000..2e5a1da --- /dev/null +++ b/css/notif/min.css @@ -0,0 +1,3 @@ +body>#notification-container{display:flex;position:absolute;bottom:0;left:0;width:100%;flex-direction:column;flex-wrap:nowrap;z-index:200;pointer-events:none}body>#notification-container .notification-element{display:block;position:relative;margin:.2em auto;padding:0 1em;border-radius:3px;border:1px solid #ddd;border-bottom:1px solid #c4c4c4;box-shadow:inset 0 0 1em #eee;background-color:#fff;pointer-events:all;cursor:default;transition:opacity .5s ease-in-out;opacity:0}body>#notification-container .notification-element:last-child{margin-bottom:1em}body>#notification-container .notification-element.notification-visible{opacity:1}body>#notification-container .notification-element:hover{box-shadow:inset 0 0 1em #eee, 0 0 1em #555}body>#notification-container .notification-element strong:first-child{text-transform:uppercase;padding-left:1.5em}body>#notification-container .notification-element strong:first-child:before{content:'';display:inline-block;position:absolute;top:1.2em;left:1em;width:.9em;height:.9em;border-radius:50% / 50%;box-shadow:inset -1px 1px 2px rgba(50,50,50,0.5)}body>#notification-container .notification-element[data-warning]{border-color:#dd6a45;border-bottom-color:#ca4d25}body>#notification-container .notification-element[data-warning] strong:first-child:before{background-color:#dd6a45}body>#notification-container .notification-element[data-info]{border-color:#2195da;border-bottom-color:#1a77ae}body>#notification-container .notification-element[data-info] strong:first-child:before{background-color:#2195da}body>#notification-container .notification-element[data-success]{border-color:#5fca4a;border-bottom-color:#47ae33}body>#notification-container .notification-element[data-success] strong:first-child:before{background-color:#5fca4a}body>#notification-container .notification-element[data-error]{border-color:#d94747;border-bottom-color:#c42929}body>#notification-container .notification-element[data-error] strong:first-child:before{background-color:#d94747} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbm90aWYuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJImJvZHkgPiAjbm90aWZpY2F0aW9uLWNvbnRhaW5lcntcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIHotaW5kZXg6IDIwMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXG4gICAgLm5vdGlmaWNhdGlvbi1lbGVtZW50e1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luOiAuMmVtIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFlbTtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oI2RkZCwgMTApO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMWVtICNlZWU7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgLy8gRUNBUlRFTUVOVCBEVSBCT1RUT00gUE9VUiBMRSBERVJOSUVSXG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gQU5JTUFUSU9OIERFIGZhZGVJbiArIGZhZGVPdXRcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgJi5ub3RpZmljYXRpb24tdmlzaWJsZXtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIEFOSU1BVElPTiBERSBASE9WRVJcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxZW0gI2VlZSwgMCAwIDFlbSAjNTU1O1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIC8vIFRJVFJFIEVUIEJPVUxFIERFIENPVUxFVVJcbiAgICAgICAgc3Ryb25nOmZpcnN0LWNoaWxke1xuXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcblxuICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEuMmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDFlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogLjllbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IC45ZW07XG5cbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgLTFweCAxcHggMnB4IHJnYmEoNTAsIDUwLCA1MCwgLjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBESUZGRVJFTlRTIFRIRU1FU1xuICAgICAgICAvLyBXQVJOSU5HXG4gICAgICAgICZbZGF0YS13YXJuaW5nXXtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2RkNmE0NTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtlbigjZGQ2YTQ1LCAxMCk7XG4gICAgICAgICAgICBzdHJvbmc6Zmlyc3QtY2hpbGR7ICY6YmVmb3JleyBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQ2YTQ1OyB9IH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJTkZPXG4gICAgICAgICZbZGF0YS1pbmZvXXtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzIxOTVkYTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtlbigjMjE5NWRhLCAxMCk7XG4gICAgICAgICAgICBzdHJvbmc6Zmlyc3QtY2hpbGR7ICY6YmVmb3JleyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NWRhOyB9IH1cbiAgICAgICAgfVxuICAgICAgICAvLyBTVUNDRVNTXG4gICAgICAgICZbZGF0YS1zdWNjZXNzXXtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzVmY2E0YTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtlbigjNWZjYTRhLCAxMCk7XG4gICAgICAgICAgICBzdHJvbmc6Zmlyc3QtY2hpbGR7ICY6YmVmb3JleyBiYWNrZ3JvdW5kLWNvbG9yOiAjNWZjYTRhOyB9IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgLy8gRVJST1JcbiAgICAgICAgJltkYXRhLWVycm9yXXtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2Q5NDc0NztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtlbigjZDk0NzQ3LCAxMCk7XG4gICAgICAgICAgICBzdHJvbmc6Zmlyc3QtY2hpbGR7ICY6YmVmb3JleyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk0NzQ3OyB9IH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbn1cbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFBQSxJQUFJLENBQUcsdUJBQXVCLEFBQUEsQ0FFMUIsT0FBTyxDQUFFLElB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 */ \ No newline at end of file diff --git a/css/notif/min.css.map b/css/notif/min.css.map new file mode 100644 index 0000000..aa7ffa2 --- /dev/null +++ b/css/notif/min.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../notif.scss" + ], + "sourcesContent": [ + "body > #notification-container{\n\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n\n flex-direction: column;\n flex-wrap: nowrap;\n\n z-index: 200;\n pointer-events: none;\n\n\n .notification-element{\n display: block;\n position: relative;\n margin: .2em auto;\n padding: 0 1em;\n\n border-radius: 3px;\n border: 1px solid #ddd;\n border-bottom: 1px solid darken(#ddd, 10);\n box-shadow: inset 0 0 1em #eee;\n\n background-color: #fff;\n\n pointer-events: all;\n cursor: default;\n\n // ECARTEMENT DU BOTTOM POUR LE DERNIER\n &:last-child{\n margin-bottom: 1em;\n }\n\n\n // ANIMATION DE fadeIn + fadeOut\n transition: opacity .5s ease-in-out;\n opacity: 0;\n\n &.notification-visible{\n opacity: 1;\n }\n\n\n // ANIMATION DE @HOVER\n &:hover{\n box-shadow: inset 0 0 1em #eee, 0 0 1em #555;\n }\n\n\n\n // TITRE ET BOULE DE COULEUR\n strong:first-child{\n\n text-transform: uppercase;\n padding-left: 1.5em;\n\n &:before{\n content: '';\n display: inline-block;\n position: absolute;\n top: 1.2em;\n left: 1em;\n width: .9em;\n height: .9em;\n\n border-radius: 50% / 50%;\n box-shadow: inset -1px 1px 2px rgba(50, 50, 50, .5);\n }\n\n }\n\n // DIFFERENTS THEMES\n // WARNING\n &[data-warning]{\n border-color: #dd6a45;\n border-bottom-color: darken(#dd6a45, 10);\n strong:first-child{ &:before{ background-color: #dd6a45; } }\n }\n // INFO\n &[data-info]{\n border-color: #2195da;\n border-bottom-color: darken(#2195da, 10);\n strong:first-child{ &:before{ background-color: #2195da; } }\n }\n // SUCCESS\n &[data-success]{\n border-color: #5fca4a;\n border-bottom-color: darken(#5fca4a, 10);\n strong:first-child{ &:before{ background-color: #5fca4a; } }\n }\n // ERROR\n &[data-error]{\n border-color: #d94747;\n border-bottom-color: darken(#d94747, 10);\n strong:first-child{ &:before{ background-color: #d94747; } }\n }\n\n\n }\n\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/doc/migrate.py b/doc/migrate.py new file mode 100755 index 0000000..31bcaf2 --- /dev/null +++ b/doc/migrate.py @@ -0,0 +1,76 @@ +# -*- Encoding: utf-8 -*- # + + +# [0.0] Import +#=======================================================# +import os; # ls, etc +import re; # regex + + + +# [0.1] Dépendances +#=======================================================# +def filter(files, filter): + filtered = []; + for file in files: + if( re.search('\.'+filter+'$', file) != None ): + filtered.append(file); + return filtered; + + + +# [1] On récupère la racine souhaitée +#=======================================================# +new_root = raw_input('New root: '); +print "Validate '%s'" % new_root, +root_validate = raw_input('[y/n] ? '); + +# (1) Non validation de la route -> on quitte # +if( root_validate != 'y' ): + print 'Exiting.\n'; + exit(); + + + + +# [2] On récupère tous les fichiers +#=======================================================# +all_files = []; +for (dir, _, files) in os.walk('.'): + for f in files: + path = os.path.join(dir, f) + if os.path.exists(path): + all_files.append(path); + + + + + +# [3] On remplace dans tous les fichiers +#=======================================================# +# (1) Pour chaque fichier # +for filename in filter(all_files,'php')+filter(all_files,'js')+filter(all_files,'scss')+filter(all_files, 'css'): + print '%s ... ' % filename,; + + content = []; + + # (2) On lit le fichier et récupère toutes les lignes # + with open(filename, 'r') as f: + content = f.readlines(); + + # (3) Pour chaque ligne, on remplace # + for (i, line) in enumerate(content): + newline = re.sub( + '(?P["\'])([^\']+/?)(?Pf/[^\'.]+["\'])', + '\g/'+ new_root +'/\g', + line + ); + content[i] = newline; + + # (4) On écrit ce qu'on a modifié # + with open(filename, 'w') as f: + for line in content: + f.write(line); + + + print ' done'; diff --git a/doc/phone_log.json b/doc/phone_log.json new file mode 100644 index 0000000..6866e59 --- /dev/null +++ b/doc/phone_log.json @@ -0,0 +1,54 @@ +{ + "call_log": [ + { "contact":"1", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"2", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"3", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"4", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"5", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"6", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"7", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"8", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"9", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"10", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"11", "date":"2014-05-28T14:43:25", "duration":"0", "direction":"INCOMING", "type":"SMS" }, + { "contact":"12", "date":"2014-02-28T15:00:10", "duration":"125", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"13", "date":"2014-02-15T23:06:46", "duration":"0", "direction":"INGOING", "type":"PHONE" }, + { "contact":"14", "date":"2014-02-15T23:06:18", "duration":"0", "direction":"INGOING", "type":"PHONE" }, + { "contact":"15", "date":"2014-02-15T21:08:34", "duration":"349", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"16", "date":"2014-02-15T20:51:38", "duration":"0", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"17", "date":"2014-02-15T19:06:33", "duration":"657", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"18", "date":"2014-02-15T19:06:33", "duration":"657", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"19", "date":"2014-02-15T19:06:33", "duration":"657", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"20", "date":"2014-02-15T19:06:33", "duration":"657", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"21", "date":"2014-02-15T17:24:18", "duration":"276", "direction":"OUTGOING", "type":"PHONE" }, + { "contact":"22", "date":"2014-02-15T16:34:29", "duration":"36", "direction":"OUTGOING", "type":"PHONE" } + ], + + "contacts": [ + { "contact":"1", "number":"0502030405", "name":"", "sexe":"0", "age":"5", "studies":"1", "reltype":"inconnu", "dist":"5" }, + { "contact":"2", "number":"0502030561", "name":"", "sexe":"0", "age":"10", "studies":"2", "reltype":"inconnu", "dist":"5+" }, + { "contact":"3", "number":"0502030717", "name":"", "sexe":"0", "age":"15", "studies":"3", "reltype":"inconnu", "dist":"5+" }, + { "contact":"4", "number":"0502030873", "name":"", "sexe":"0", "age":"20", "studies":"4", "reltype":"inconnu", "dist":"5+" }, + { "contact":"5", "number":"0502031029", "name":"", "sexe":"0", "age":"25", "studies":"5", "reltype":"inconnu", "dist":"5" }, + { "contact":"6", "number":"0502031185", "name":"", "sexe":"0", "age":"30", "studies":"6", "reltype":"inconnu", "dist":"15" }, + { "contact":"7", "number":"0502031341", "name":"", "sexe":"0", "age":"35", "studies":"7", "reltype":"inconnu", "dist":"15" }, + { "contact":"8", "number":"0502031497", "name":"", "sexe":"0", "age":"40", "studies":"8", "reltype":"inconnu", "dist":"15" }, + { "contact":"9", "number":"0502031653", "name":"", "sexe":"0", "age":"45", "studies":"9", "reltype":"inconnu", "dist":"5" }, + { "contact":"10", "number":"0502031809", "name":"", "sexe":"0", "age":"50", "studies":"10", "reltype":"inconnu", "dist":"5" }, + { "contact":"11", "number":"0502031965", "name":"", "sexe":"0", "age":"55", "studies":"11", "reltype":"inconnu", "dist":"15+" }, + { "contact":"12", "number":"0502032121", "name":"", "sexe":"0", "age":"60", "studies":"12", "reltype":"inconnu", "dist":"15+" }, + { "contact":"13", "number":"0502032277", "name":"", "sexe":"0", "age":"65", "studies":"13", "reltype":"inconnu", "dist":"15+" }, + { "contact":"14", "number":"0502032433", "name":"", "sexe":"0", "age":"70", "studies":"14", "reltype":"inconnu", "dist":"60+" }, + { "contact":"15", "number":"0502032589", "name":"", "sexe":"0", "age":"75", "studies":"15", "reltype":"inconnu", "dist":"60+" }, + { "contact":"16", "number":"0502032745", "name":"", "sexe":"0", "age":"80", "studies":"16", "reltype":"inconnu", "dist":"60+" }, + { "contact":"17", "number":"0502032901", "name":"", "sexe":"0", "age":"85", "studies":"17", "reltype":"inconnu", "dist":"60+" }, + { "contact":"18", "number":"0502033057", "name":"", "sexe":"0", "age":"90", "studies":"18", "reltype":"inconnu", "dist":"60+" }, + { "contact":"19", "number":"0502033213", "name":"", "sexe":"0", "age":"95", "studies":"19", "reltype":"inconnu", "dist":"5" }, + { "contact":"20", "number":"0502033369", "name":"", "sexe":"0", "age":"100", "studies":"20", "reltype":"inconnu", "dist":"5" }, + { "contact":"21", "number":"0502033525", "name":"", "sexe":"0", "age":"105", "studies":"21", "reltype":"inconnu", "dist":"5" }, + { "contact":"22", "number":"0502033681", "name":"", "sexe":"0", "age":"110", "studies":"22", "reltype":"inconnu", "dist":"5" } + + ] + + +} diff --git a/doc/sample-long.xml b/doc/sample-long.xml new file mode 100644 index 0000000..8757312 --- /dev/null +++ b/doc/sample-long.xml @@ -0,0 +1,1001 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/sample.xml b/doc/sample.xml index 8757312..be43a5a 100644 --- a/doc/sample.xml +++ b/doc/sample.xml @@ -1,1001 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/js/action-script-min.js b/js/action-script-min.js index a01f3fc..ed93231 100644 --- a/js/action-script-min.js +++ b/js/action-script-min.js @@ -1,4 +1,6 @@ -var DOM={WRAPPER:$("body > #WRAPPER"),HEADER:$("body > #WRAPPER > #HEADER"),MENUSIDE:$("body > #WRAPPER > #MENU-SIDE"),CONTAINER:$("body > #WRAPPER > #CONTAINER")},pageManager;api=new APIClass("/api/"); +var DOM={WRAPPER:$("body > #WRAPPER"),HEADER:$("body > #WRAPPER > #HEADER"),MENUSIDE:$("body > #WRAPPER > #MENU-SIDE"),CONTAINER:$("body > #WRAPPER > #CONTAINER")},pageManager;api=new APIClass("/api/");Notification=new NotificationClass($("#notification-container"));Notification.defaultTimeout=4E3; +Notification.errorCodes={"-1":"Erreur de r\u00e9seau, veuillez recharger la page et r\u00e9essayer",0:"Erreur interne",1:"Erreur interne",2:"Erreur interne",3:"Le fichier est introuvable",4:"Erreur interne",5:"Erreur interne",6:"Erreur interne",7:"Erreur interne",8:"Erreur interne",9:"Certaines donn\u00e9es sont manquantes",10:"Erreur interne",11:"Erreur interne",12:"Erreur interne",13:"Erreur interne",14:"Erreur interne",15:"Erreur interne",16:"Vous n'avez pas la permission d'effectuer cette action", +17:"Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9",18:"Le fichier est invalide (format incorrect)"};lsi.setStorage(sessionStorage); function navSubMenu(a){var c=$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+a+'"]'):b,b=null==b?$("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub > span[data-sublink]"):b;if(null==b)return!1;null!=c&&c.remClass("active");c=$$("#CONTAINER > section[data-sublink].active");for(a=0;a< c.length;a++)c[a].remClass("active");if(null!=b)for(b.addClass("active"),c=$$('#CONTAINER > section[data-sublink="'+b.getData("sublink")+'"]'),a=0;a #MENU-SIDE > span[data-link="'+pageManager.page+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?$('#WRAPPER > #MENU-SIDE > span[data-link="'+a+'"]'):b,b=null==b?$('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]'):b;if(null==b)return!1;null!=c&&c.remClass("active");null!=b&&b.addClass("active");b.getData("link")&&(DOM.HEADER.addClass("loading"),pageManager.setPage(b.getData("link")),pageManager.activeXHR.addEventListener("loadend", diff --git a/js/action-script.js b/js/action-script.js index b56c5c9..5099ca8 100755 --- a/js/action-script.js +++ b/js/action-script.js @@ -12,6 +12,38 @@ var pageManager; // On cree une instance de l'api api = new APIClass('/api/'); +// On crée une instance du gestionnaire des notifications +Notification = new NotificationClass( $('#notification-container') ); +// Temps d'une notification : ~4s +Notification.defaultTimeout = 4000; + +// Définition des codes d'erreurs +Notification.errorCodes = { + '-1': 'Erreur de réseau, veuillez recharger la page et réessayer', + 0: 'Erreur interne', + 1: 'Erreur interne', + 2: 'Erreur interne', + 3: 'Le fichier est introuvable', + 4: 'Erreur interne', + 5: 'Erreur interne', + 6: 'Erreur interne', + 7: 'Erreur interne', + 8: 'Erreur interne', + 9: 'Certaines données sont manquantes', + 10: 'Erreur interne', + 11: 'Erreur interne', + 12: 'Erreur interne', + 13: 'Erreur interne', + 14: 'Erreur interne', + 15: 'Erreur interne', + 16: 'Vous n\'avez pas la permission d\'effectuer cette action', + 17: 'Le téléchargement a échoué', + 18: 'Le fichier est invalide (format incorrect)' +}; + +// On définit qu'on veut utiliser le 'sessionStorage' +lsi.setStorage(sessionStorage); + diff --git a/js/includes/input-html-data-min.js b/js/includes/input-html-data-min.js index 6b785d6..41b41b3 100644 --- a/js/includes/input-html-data-min.js +++ b/js/includes/input-html-data-min.js @@ -1,3 +1,3 @@ var contactBuilder=new HTMLBuilder;contactBuilder.setLayout("

\n\t\n\t\n\t\n\t\n\t\n\t \n\t \n\t \n\t \n\t \n\t \n\t\n

\n\n"); -var miniFicheBuilder=new HTMLBuilder;miniFicheBuilder.setLayout("
\n\t\n\t\n\t\n\t\n\t\n\t

@firstname @lastname @username

\n\t
\t\t@countcall appels\t
\t
\t\t@countsms sms\t
\t
\n\t\t\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n
"); -var ficheBuilder=new HTMLBuilder;ficheBuilder.setLayout("
\n\t\n\t\n\t\n\t\n\t\n\t

@firstname @lastname @username

\n\t
\t\t@countcall appels\t
\t
\t\t@countsms sms\t
\t
\n\t\t\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\tSituation familiale:
\n\t\t
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\n\t
\n\t
\n\t\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tDepuis quand connaissez-vous cette personne ?

\n\t\tmois\n\t\tet    ans.\n\t
\n\t

Contexte de rencontre

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

Avec quelle fr\u00e9quence discutez-vous avec cette personne\u00a0?

\n\t
\n\t\tFace \u00e0 face
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tT\u00e9l\u00e9phone ou skype et \u00e9quivalent
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSMS, et \u00e9quivalents
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tCourrier \u00e9lectronique
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tFacebook ou autre r\u00e9seau social
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t

Comment \u00eates-vous \u00ab\u00a0connect\u00e9\u00a0\u00bb \u00e0 cette personne\u00a0?

\n\t
\n\t\tSes coordonn\u00e9es sont dans votre carnet d\u2019adresse
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSon num\u00e9ro de mobile est enregistr\u00e9 sur votre mobile (ou vous-m\u00eames \u00eates sur le sien)
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif r\u00e9guli\u00e8rement
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous le suivez sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez avec cette personne sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez dans autre r\u00e9seau social : \n\t
\n\t
\n\t\tVous communiquez dans un autre dispositif (blogs, jeu vid\u00e9o ou autre) : \n\t
\n
\n"); +var miniFicheBuilder=new HTMLBuilder;miniFicheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\t\t@countcall appels\t
\t
\t\t@countsms sms\t
\t
\n\t\t\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n
"); +var ficheBuilder=new HTMLBuilder;ficheBuilder.setLayout("
\n\t\n\t\n\t

@name

\n\t
\t\t@countcall appels\t
\t
\t\t@countsms sms\t
\t
\n\t\t\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n\t
\n\t\tSituation familiale:
\n\t\t
\n\t\t   
\n\t\t   
\n\t\t   \n\t
\n\t
\n\t\t\n\t
\n\t

Type de relation

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

O\u00f9 habite t-elle/il\u00a0?

\n\t
\n\t\t\n\t\t\n\t
\n\t
\n\t\tO\u00f9 habite t-elle/il\u00a0?
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\tDepuis quand connaissez-vous cette personne ?

\n\t\tmois\n\t\tet    ans.\n\t
\n\t

Contexte de rencontre

\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t
\n\t\t   
\n\t\t   
\n\t\t   
\n\t
\n\t

Avec quelle fr\u00e9quence discutez-vous avec cette personne\u00a0?

\n\t
\n\t\tFace \u00e0 face
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tT\u00e9l\u00e9phone ou skype et \u00e9quivalent
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSMS, et \u00e9quivalents
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tCourrier \u00e9lectronique
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t
\n\t\tFacebook ou autre r\u00e9seau social
\n\t\t   \n\t\t   \n\t\t   \n\t\t   \n\t
\n\t

Comment \u00eates-vous \u00ab\u00a0connect\u00e9\u00a0\u00bb \u00e0 cette personne\u00a0?

\n\t
\n\t\tSes coordonn\u00e9es sont dans votre carnet d\u2019adresse
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tSon num\u00e9ro de mobile est enregistr\u00e9 sur votre mobile (ou vous-m\u00eames \u00eates sur le sien)
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif r\u00e9guli\u00e8rement
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous le suivez sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez avec cette personne sur Twitter
\n\t\t   \n\t\t   \n\t
\n\t
\n\t\tVous communiquez dans autre r\u00e9seau social : \n\t
\n\t
\n\t\tVous communiquez dans un autre dispositif (blogs, jeu vid\u00e9o ou autre) : \n\t
\n
\n"); diff --git a/js/includes/input-html-data.js b/js/includes/input-html-data.js index a4fc456..3680cce 100644 --- a/js/includes/input-html-data.js +++ b/js/includes/input-html-data.js @@ -46,12 +46,9 @@ miniFicheBuilder.setLayout( "
\n"+ "\t\n"+ - "\t\n"+ - "\t\n"+ - "\t\n"+ "\t\n"+ - "\t

@firstname @lastname @username

\n"+ + "\t

@name

\n"+ "\t
"+ "\t\t@countcall appels"+ @@ -61,8 +58,8 @@ miniFicheBuilder.setLayout( "\t
"+ "\t
\n"+ - "\t\t\n"+ - "\t\t   \n"+ + "\t\t\n"+ + "\t\t   \n"+ "\t
\n"+ @@ -126,24 +123,26 @@ miniFicheBuilder.setLayout( "\t

Type de relation

\n"+ "\t
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "\t
\n"+ "\t\tOù habite t-elle/il ?
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "
"); @@ -198,11 +197,8 @@ ficheBuilder.setLayout( "\t\n"+ "\t\n"+ - "\t\n"+ - "\t\n"+ - "\t\n"+ - "\t

@firstname @lastname @username

\n"+ + "\t

@name

\n"+ "\t
"+ "\t\t@countcall appels"+ @@ -212,8 +208,8 @@ ficheBuilder.setLayout( "\t
"+ "\t
\n"+ - "\t\t\n"+ - "\t\t   \n"+ + "\t\t\n"+ + "\t\t   \n"+ "\t
\n"+ @@ -288,9 +284,9 @@ ficheBuilder.setLayout( "\t
\n"+ "\t\tSituation familiale:
\n"+ "\t\t
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   \n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ @@ -326,30 +322,31 @@ ficheBuilder.setLayout( "\t

Type de relation

\n"+ "\t
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "\t

Où habite t-elle/il ?

\n"+ "\t
\n"+ "\t\t\n"+ + "\t\t\n"+ "\t
\n"+ "\t
\n"+ "\t\tOù habite t-elle/il ?
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "\t
\n"+ @@ -361,102 +358,102 @@ ficheBuilder.setLayout( "\t

Contexte de rencontre

\n"+ "\t
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "\t
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ - "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ + "\t\t   
\n"+ "\t
\n"+ "\t

Avec quelle fréquence discutez-vous avec cette personne ?

\n"+ "\t
\n"+ "\t\tFace à face
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tTéléphone ou skype et équivalent
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tSMS, et équivalents
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tCourrier électronique
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tFacebook ou autre réseau social
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t

Comment êtes-vous « connecté » à cette personne ?

\n"+ "\t
\n"+ "\t\tSes coordonnées sont dans votre carnet d’adresse
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tSon numéro de mobile est enregistré sur votre mobile (ou vous-mêmes êtes sur le sien)
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tElle figure parmi vos amis facebook
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tElle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif régulièrement
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tVous le suivez sur Twitter
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ "\t\tVous communiquez avec cette personne sur Twitter
\n"+ - "\t\t   \n"+ - "\t\t   \n"+ + "\t\t   \n"+ + "\t\t   \n"+ "\t
\n"+ "\t
\n"+ diff --git a/js/includes/input-phone-contact-min.js b/js/includes/input-phone-contact-min.js index 4b21c50..8d2f037 100644 --- a/js/includes/input-phone-contact-min.js +++ b/js/includes/input-phone-contact-min.js @@ -1,8 +1,8 @@ -function inputPhoneContact(a,c){this.container=a;this.nav_container=c}inputPhoneContact.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null}; -inputPhoneContact.prototype.fieldsToStorage=function(){console.log("CONTACTS: FIELDS TO STORAGE");for(var a=$$("article.contact-panel .new-contact"),c=0;c=a.length&&this.add({uid:a.length});this.updateNavBar()}; -inputPhoneContact.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"nav-contact"!=a.parentNode.id)return!1;for(var c=$$("#nav-contact > span.active"),b=0;b'+(1+c/10)+""}this.nav($('#nav-contact [data-n="'+this.selected+'"]'))}; -inputPhoneContact.prototype.attach=function(a){console.log("CONTACTS: ATTACH");lsi.createDataset("contacts");this.storageToFields();this.handler=a;var c=this;this.nav_container.addEventListener("click",function(a){c.nav(a.target);c.handler(a.target)},!1)}; +for(var b=this,c=0;c=a.length&&this.add({uid:a.length});this.updateNavBar()}; +inputPhoneContact.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"nav-contact"!=a.parentNode.id)return!1;for(var b=$$("#nav-contact > span.active"),c=0;c'+(1+b/10)+""}this.nav($('#nav-contact [data-n="'+this.selected+'"]'))}; +inputPhoneContact.prototype.attach=function(a){console.log("CONTACTS: ATTACH");lsi.createDataset("contacts");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; diff --git a/js/includes/input-phone-contact.js b/js/includes/input-phone-contact.js index f1f06c0..f8f9bfd 100644 --- a/js/includes/input-phone-contact.js +++ b/js/includes/input-phone-contact.js @@ -15,7 +15,21 @@ inputPhoneContact.prototype = { }; -/* [2] Gestion de l'enregistrement des formulaires de contact + +/* [2] Vérification des données d'un contact +=========================================================*/ +inputPhoneContact.prototype.check = function(deflated){ + /* (1) Le numéro n'est pas vide */ + var validForm = deflated.number.length > 0; + /* (2) ET le pseudo et/ou le prénom et/ou le nom n'est pas vide */ + validForm = validForm && deflated.username.length+deflated.firstname.length+deflated.lastname.length > 0; + + /* (3) On retourne la validité du formulaire */ + return validForm +} + + +/* [3] Gestion de l'enregistrement des formulaires de contact =========================================================*/ inputPhoneContact.prototype.fieldsToStorage = function(){ console.log('CONTACTS: FIELDS TO STORAGE'); @@ -30,34 +44,29 @@ inputPhoneContact.prototype.fieldsToStorage = function(){ // {3} On enregistre ce contact si le numéro n'est pas vide et soit pseudo/prénom/nom // var deflated = deflater.deflate(); - // Le numéro n'est pas vide - var validForm = deflated.number.value.length > 0; - // ET le pseudo et/ou le prénom et/ou le nom n'est pas vide - validForm = validForm && deflated.username.value.length+deflated.firstname.value.length+deflated.lastname.value.length > 0; - // Si le formulaire n'est pas valide, on ne l'enregistre pas - if( !validForm ) continue; + if( !this.check(deflated) ) continue; // {4} On récupère et met en forme les valeurs du deflater // var obj = { - uid: parseInt(deflated.uid.value), - number: deflated.number.value, - username: deflated.username.value, - firstname: deflated.firstname.value, - lastname: deflated.lastname.value, + uid: parseInt(deflated.uid), + number: deflated.number, + username: deflated.username, + firstname: deflated.firstname, + lastname: deflated.lastname, - call: parseInt(deflated.call.value), - sms: parseInt(deflated.sms.value), + call: parseInt(deflated.call), + sms: parseInt(deflated.sms), - countcall: parseInt(deflated.countcall.value), - countsms: parseInt(deflated.countsms.value) + countcall: parseInt(deflated.countcall), + countsms: parseInt(deflated.countsms) }; /* (5) On calcule et ajoute le hash des données */ obj.hash = crc32( JSON.stringify(obj) ); // {6} On enregistre les données dans le 'localStorage' // - lsi.set('contacts', parseInt(deflated.uid.value), obj); + lsi.set('contacts', parseInt(deflated.uid), obj); } @@ -71,7 +80,7 @@ inputPhoneContact.prototype.fieldsToStorage = function(){ -/* [3] Gestion de l'ajout physique d'un nouveau contact +/* [4] Gestion de l'ajout physique d'un nouveau contact =========================================================*/ /* * @@ -120,7 +129,7 @@ inputPhoneContact.prototype.add = function(objectData){ -/* [4] Gestion de l'affichage depuis le 'localStorage' +/* [5] Gestion de l'affichage depuis le 'localStorage' =========================================================*/ inputPhoneContact.prototype.storageToFields = function(){ console.log('CONTACTS: STORAGE TO FIELDS'); @@ -208,7 +217,7 @@ inputPhoneContact.prototype.updateNavBar = function(){ -/* [5] Point d'amorçage de la gestion des contacts +/* [8] Point d'amorçage de la gestion des contacts =========================================================*/ inputPhoneContact.prototype.attach = function(handler){ console.log('CONTACTS: ATTACH'); diff --git a/js/includes/input-phone-fiche-min.js b/js/includes/input-phone-fiche-min.js index ea2cde4..31a153e 100644 --- a/js/includes/input-phone-fiche-min.js +++ b/js/includes/input-phone-fiche-min.js @@ -1,23 +1,19 @@ -function inputPhoneFiche(a,b){this.container=a;this.nav_container=b} -inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:[defTrue,defFalse],age:".",job:".",famsit:[defTrue,defFalse,defFalse],studies:".",reltype:[defTrue,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse],reltypeSpecial:"",city:"",loc:[defTrue,defFalse,defFalse,defFalse],duration:["",""],context:[defTrue,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse, -defFalse],contextSpecial:["","",""],freq:[[defTrue,defFalse,defFalse,defFalse],[defTrue,defFalse,defFalse,defFalse],[defTrue,defFalse,defFalse,defFalse],[defTrue,defFalse,defFalse,defFalse],[defTrue,defFalse,defFalse,defFalse]],connect:[[defFalse,defTrue],[defFalse,defTrue],[defFalse,defTrue],[defFalse,defTrue],[defFalse,defTrue],[defFalse,defTrue]],connectSpecial:["",""],timestamp:0,valid:!1}}; -inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("FICHE: FIELDS TO STORAGE");for(var a=$$("article.relation-panel .fiche-relation"),b=0;b FICHE UPDATE"), -c.timestamp=Date.now());lsi.set("fiches",c.uid,c)}}}; -inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid||null==a.contact)return!1;a.city=null!=a.city?a.city:this.defaultData.city;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:this.defaultData.duration[1];a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.contextSpecial[0]=null!=a.contextSpecial[0]?a.contextSpecial[0]:this.defaultData.contextSpecial[0]; -a.contextSpecial[1]=null!=a.contextSpecial[1]?a.contextSpecial[1]:this.defaultData.contextSpecial[1];a.contextSpecial[2]=null!=a.contextSpecial[2]?a.contextSpecial[2]:this.defaultData.contextSpecial[2];a.connectSpecial[0]=null!=a.connectSpecial[0]?a.connectSpecial[0]:this.defaultData.connectSpecial[0];a.connectSpecial[1]=null!=a.connectSpecial[1]?a.connectSpecial[1]:this.defaultData.connectSpecial[1];a.job=null!=a.job?a.job:this.defaultData.job;a.studies=null!=a.studies?a.studies:this.defaultData.studies; -a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.famsit=null!=a.famsit?a.famsit:this.defaultData.famsit;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.context=null!=a.context?a.context:this.defaultData.context;a.freq=null!=a.freq?a.freq:this.defaultData.freq;a.connect=null!=a.connect?a.connect:this.defaultData.connect;var b=lsi.get("contacts",a.contact);if(!1===b)return!1;this.container.innerHTML+= -ficheBuilder.build({firstname:b.firstname,lastname:b.lastname,username:0==b.username.length?"":"("+b.username+")",countcall:b.countcall,countsms:b.countsms,uid:a.uid,contact:a.contact,city:a.city,duration0:a.duration[0],duration1:a.duration[1],reltypespecial:a.reltypeSpecial,contextspecial0:a.contextSpecial[0],contextspecial1:a.contextSpecial[1],contextspecial2:a.contextSpecial[2],connectspecial0:a.connectSpecial[0],connectspecial1:a.connectSpecial[1]});b=$('article.fiche-relation input[data-name="uid"][value="'+ +function inputPhoneFiche(a,b){this.container=a;this.nav_container=b}inputPhoneFiche.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"H",age:".",job:".",famsit:"0",studies:".",reltype:"0",reltypeSpecial:"",city:"",cp:"",loc:"0",duration:["",""],context:"0",contextSpecial:["","",""],freq:["0","4","8","12","16"],connect:"1 3 5 7 9 11".split(" "),connectSpecial:["",""],timestamp:0,valid:!1}}; +inputPhoneFiche.prototype.fieldsToStorage=function(){console.log("FICHE: FIELDS TO STORAGE");for(var a=$$("article.relation-panel .fiche-relation"),b=0;b FICHE UPDATE"),c.timestamp=Date.now());lsi.set("fiches",c.uid,c)}}}; +inputPhoneFiche.prototype.add=function(a){console.log("FICHE: ADD");if(null==a.uid||isNaN(a.uid)||null==a.contact||isNaN(a.contact))return!1;a.city=null!=a.city?a.city:this.defaultData.city;a.cp=null!=a.cp?a.cp:this.defaultData.cp;a.duration[0]=null!=a.duration[0]?a.duration[0]:this.defaultData.duration[0];a.duration[1]=null!=a.duration[1]?a.duration[1]:this.defaultData.duration[1];a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.contextSpecial[0]=null!=a.contextSpecial[0]? +a.contextSpecial[0]:this.defaultData.contextSpecial[0];a.contextSpecial[1]=null!=a.contextSpecial[1]?a.contextSpecial[1]:this.defaultData.contextSpecial[1];a.contextSpecial[2]=null!=a.contextSpecial[2]?a.contextSpecial[2]:this.defaultData.contextSpecial[2];a.connectSpecial[0]=null!=a.connectSpecial[0]?a.connectSpecial[0]:this.defaultData.connectSpecial[0];a.connectSpecial[1]=null!=a.connectSpecial[1]?a.connectSpecial[1]:this.defaultData.connectSpecial[1];a.job=null!=a.job?a.job:this.defaultData.job; +a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.famsit=null!=a.famsit?a.famsit:this.defaultData.famsit;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.loc=null!=a.loc?a.loc:this.defaultData.loc;a.context=null!=a.context?a.context:this.defaultData.context;a.freq=null!=a.freq?a.freq:this.defaultData.freq;a.connect=null!=a.connect?a.connect:this.defaultData.connect;var b=lsi.get("contacts", +a.contact);if(!1===b)return!1;this.container.innerHTML+=ficheBuilder.build({name:readableName(b.username,b.firstname,b.lastname),countcall:b.countcall,countsms:b.countsms,uid:a.uid,contact:a.contact,city:a.city,cp:a.cp,duration0:a.duration[0],duration1:a.duration[1],reltypespecial:a.reltypeSpecial,contextspecial0:a.contextSpecial[0],contextspecial1:a.contextSpecial[1],contextspecial2:a.contextSpecial[2],connectspecial0:a.connectSpecial[0],connectspecial1:a.connectSpecial[1]});b=$('article.fiche-relation input[data-name="uid"][value="'+ a.uid+'"] ~ h5>span>select[data-name="job"]>option[value="'+a.job+'"]');null!=b&&b.setAttribute("selected","selected");b=$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('article.fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+a.age+'"]');null!=b&&b.setAttribute("selected","selected");for(var c=$$('article.fiche-relation input[data-name="uid"][value="'+ -a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;binput[type="radio"][data-name="famsit"]');for(b=0;binput[type="radio"][data-name="reltype"]'); -for(b=0;binput[type="radio"][data-name="loc"]');for(b=0;binput[type="radio"][data-name="context"]');for(b=0;b< -c.length&&binput[type="radio"][data-name="freq'+c+'"]'),b=0;binput[type="radio"][data-name="connect'+c+'"]'),b=0;binput[type="radio"][data-name="sexe"]'),b=0;binput[type="radio"][data-name="famsit"]');for(b=0;binput[type="radio"][data-name="reltype"]'); +for(b=0;binput[type="radio"][data-name="loc"]');for(b=0;binput[type="radio"][data-name="context"]');for(b=0;binput[type="radio"][data-name="freq"]');for(b=0;binput[type="radio"][data-name="connect"]');for(b=0;bb.length)for(c in a){for(a=0;-1a;)a++;b.push(a);d=lsi.get("fiches", -a);null==d&&(d=this.defaultData);d.uid=a;d.contact=c;lsi.set("fiches",a,d);if(20<=b.length)break}var d=lsi["export"]("fiches"),f;for(f in d)miniData=lsi.get("mini-fiches",d[f].contact),d[f].timestamp>=miniData.timestamp?(miniData.sexe=d[f].sexe,miniData.age=d[f].age,miniData.studies=d[f].studies,miniData.loc=d[f].loc,miniData.reltype=d[f].reltype,miniData.reltypeSpecial=d[f].reltypeSpecial):(d[f].sexe=miniData.sexe,d[f].age=miniData.age,d[f].studies=miniData.studies,d[f].loc=miniData.loc,d[f].reltype= -miniData.reltype,d[f].reltypeSpecial=miniData.reltypeSpecial),lsi.set("mini-fiches",d[f].contact,miniData),lsi.set("fiches",f,d[f]);for(f in d)b=lsi.get("contacts",d[f].contact),null!=b&&-1!=b.sms&&-1!=b.call&&(b=10>parseInt(f)?10+b.sms:b.call,b=d[b],b.timestamp>=d[f].timestamp||(c=d[f],c.uid=b.uid,lsi.set("fiches",b.uid,c)))}; +a);null==d&&(d=this.defaultData);d.uid=a;d.contact=parseInt(c);lsi.set("fiches",a,d);if(20<=b.length)break}for(var f in d)b=lsi.get("contacts",d[f].contact),null!=b&&-1!=b.sms&&-1!=b.call&&(b=10>parseInt(f)?10+b.sms:b.call,b=d[b],b.timestamp>=d[f].timestamp||(c=d[f],c.uid=b.uid,lsi.set("fiches",b.uid,c)))}; inputPhoneFiche.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"nav-fiche"!=a.parentNode.id)return!1;for(var b=$$("#nav-fiche > span.active"),c=0;cAPPELS";for(var c=0;c'+(c%10+1)+"  ":(10==c&&(this.nav_container.innerHTML+='SMS'),this.nav_container.innerHTML+=''+(c%10+1)+"")}for(var e in a)b=$('#nav-fiche [data-n="'+ -a[e].uid+'"]'),null!=b&&(!0===a[e].valid?b.addClass("done"):b.remClass("done"));this.nav($('#nav-fiche [data-n="'+this.selected+'"]'))}; -inputPhoneFiche.prototype.check=function(a){if(2>a.city.length||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length||a.context[11].status&&2>a.contextSpecial[0].length||a.context[12].status&&2>a.contextSpecial[1].length||a.context[13].status&&2>a.contextSpecial[2].length?!1:!0};inputPhoneFiche.prototype.attach=function(a){console.log("FICHE: ATTACH");lsi.createDataset("fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; +inputPhoneFiche.prototype.updateNavBar=function(){var a=lsi["export"]("fiches"),b=lsi.keys("fiches").length;if($$("#nav-fiche [data-n]").length!=b){this.nav_container.innerHTML="";for(var c=0;cAPPELS"),9==c?this.nav_container.innerHTML+=''+(c%10+1)+"  ":(10==c&&(this.nav_container.innerHTML+='SMS'),this.nav_container.innerHTML+=''+(c%10+1)+"")}for(var e in a)b= +$('#nav-fiche [data-n="'+a[e].uid+'"]'),null!=b&&(!0===a[e].valid?b.addClass("done"):b.remClass("done"));this.nav($('#nav-fiche [data-n="'+this.selected+'"]'))}; +inputPhoneFiche.prototype.check=function(a){if(2>a.city.length||isNaN(a.cp)||isNaN(parseInt(a.duration[0]))&&0a.reltypeSpecial.length|| +"11"==a.context&&2>a.contextSpecial[0].length||"12"==a.context&&2>a.contextSpecial[1].length||"13"==a.context&&2>a.contextSpecial[2].length?!1:!0};inputPhoneFiche.prototype.attach=function(a){console.log("FICHE: ATTACH");lsi.createDataset("fiches");this.storageToFields();this.handler=a;var b=this,b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; diff --git a/js/includes/input-phone-fiche.js b/js/includes/input-phone-fiche.js index 29221fa..33f8bc6 100644 --- a/js/includes/input-phone-fiche.js +++ b/js/includes/input-phone-fiche.js @@ -13,37 +13,24 @@ inputPhoneFiche.prototype = { selected: 0, // UID de la FICHE sélectionnée handler: null, // Fonction pour l'enregistrement et la synchronisation des données defaultData: { // Valeurs par défaut - sexe: [ defTrue, defFalse], + sexe: 'H', age: '.', job: '.', - famsit: [ defTrue, defFalse, defFalse ], // Choix 1 à 3 + famsit: '0', // Choix 1 à 3 studies: '.', - reltype: [ defTrue, defFalse, defFalse, defFalse, defFalse, - defFalse, defFalse, defFalse, defFalse], // Choix 1 à 9 + reltype: '0', // Choix 1 à 9 reltypeSpecial: '', city: '', - loc: [ defTrue, defFalse, defFalse, defFalse ], + cp: '', + loc: '0', duration: ['', ''], - context: [ defTrue, defFalse, defFalse, defFalse, defFalse, - defFalse, defFalse, defFalse, defFalse, defFalse, - defFalse, defFalse, defFalse, defFalse], // Choix 1 à 14 + context: '0', // Choix 1 à 14 contextSpecial: ['', '', ''], - freq: [ - [ defTrue, defFalse, defFalse, defFalse ], - [ defTrue, defFalse, defFalse, defFalse ], - [ defTrue, defFalse, defFalse, defFalse ], - [ defTrue, defFalse, defFalse, defFalse ], - [ defTrue, defFalse, defFalse, defFalse ]], - connect: [ - [ defFalse, defTrue ], - [ defFalse, defTrue ], - [ defFalse, defTrue ], - [ defFalse, defTrue ], - [ defFalse, defTrue ], - [ defFalse, defTrue ]], + freq: ['0', '4', '8', '12', '16'], // 1er choix des 4 pour chaque question + connect: ['1', '3', '5', '7', '9', '11'], // Le deuxième choix (Oui/Non) donc 'Non' par défaut pour chaque question connectSpecial: ['', ''], - timestamp: 0, - valid: false + timestamp: 0, + valid: false } }; @@ -70,7 +57,7 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ // {4} On récupère les données du LSI si elles existent // - var existingData = lsi.get('fiches', deflated.uid.value); + var existingData = lsi.get('fiches', deflated.uid); // Si n'existe pas, on passe au suivant if( existingData === false ) @@ -84,47 +71,25 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ var obj = { - contact: parseInt(deflated.contact.value), - uid: parseInt(deflated.uid.value), - sexe: deflated.sexe, // Choix 1 à 2 - age: deflated.age.value, - job: deflated.job.value, - famsit: deflated.famsit, // Choix 1 à 3 - studies: deflated.studies.value, - reltype: deflated.reltype, // Choix 1 à 9 - reltypeSpecial: deflated.reltypeSpecial.value, - city: deflated.city.value, - loc: deflated.loc, // Choix 1 à 3 - duration: [ - deflated.duration[0].value, // Durée de la relation en mois - deflated.duration[1].value // Durée de la relation en années - ], - context: deflated.context, // Choix 1 à 14 - contextSpecial: [ - deflated.contextSpecial[0].value, // Valeur du contexte si context[11] - deflated.contextSpecial[1].value, // Valeur du contexte si context[12] - deflated.contextSpecial[2].value // Valeur du contexte si context[13] - ], - freq: [ - deflated.freq0, // Choix 1 à 4 - deflated.freq1, // Choix 1 à 4 - deflated.freq2, // Choix 1 à 4 - deflated.freq3, // Choix 1 à 4 - deflated.freq4 // Choix 1 à 4 - ], - connect: [ - deflated.connect0, // Choix 1 à 2 - deflated.connect1, // Choix 1 à 2 - deflated.connect2, // Choix 1 à 2 - deflated.connect3, // Choix 1 à 2 - deflated.connect4, // Choix 1 à 2 - deflated.connect5 // Choix 1 à 2 - ], - connectSpecial: [ - deflated.connectSpecial[0].value, - deflated.connectSpecial[1].value - ], - hash: deflatedHash + contact: parseInt(deflated.contact), + uid: parseInt(deflated.uid), + sexe: deflated.sexe, + age: deflated.age, + job: deflated.job, + famsit: deflated.famsit, + studies: deflated.studies, + reltype: deflated.reltype, + reltypeSpecial: deflated.reltypeSpecial, + city: deflated.city, + cp: deflated.cp, + loc: deflated.loc, + duration: deflated.duration, + context: deflated.context, + contextSpecial: deflated.contextSpecial, + freq: deflated.freq, + connect: deflated.connect, + connectSpecial: deflated.connectSpecial, + hash: deflatedHash }; @@ -132,7 +97,8 @@ inputPhoneFiche.prototype.fieldsToStorage = function(){ obj.valid = this.check(obj); // On met à jour la date de modification, si on a pas qu'@uid de différent - if( diff(existingData, obj).length > 0 ){ + if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){ + console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) ); console.warn('> FICHE UPDATE'); obj.timestamp = Date.now(); } @@ -161,12 +127,13 @@ inputPhoneFiche.prototype.add = function(objectData){ console.log('FICHE: ADD'); // Si pas d'UID ou d'UID de contact, on retourne une erreur - if( objectData.uid == null || objectData.contact == null ) + if( objectData.uid == null || isNaN(objectData.uid) || objectData.contact == null || isNaN(objectData.contact) ) return false; /* (0) Gestion du formattage des valeur */ // {1} Champs de texte // objectData.city = (objectData.city != null) ? objectData.city : this.defaultData.city; + objectData.cp = (objectData.cp != null) ? objectData.cp : this.defaultData.cp; objectData.duration[0] = (objectData.duration[0] != null) ? objectData.duration[0] : this.defaultData.duration[0]; objectData.duration[1] = (objectData.duration[1] != null) ? objectData.duration[1] : this.defaultData.duration[1]; objectData.reltypeSpecial = (objectData.reltypeSpecial != null) ? objectData.reltypeSpecial : this.defaultData.reltypeSpecial; @@ -201,14 +168,13 @@ inputPhoneFiche.prototype.add = function(objectData){ // {5} Création physique // this.container.innerHTML += ficheBuilder.build({ - firstname: associatedContact.firstname, - lastname: associatedContact.lastname, - username: (associatedContact.username.length==0) ? '' : '('+associatedContact.username+')', + name: readableName(associatedContact.username, associatedContact.firstname, associatedContact.lastname), countcall: associatedContact.countcall, countsms: associatedContact.countsms, uid: objectData.uid, contact: objectData.contact, // uid du contact associé city: objectData.city, + cp: objectData.cp, duration0: objectData.duration[0], duration1: objectData.duration[1], reltypespecial: objectData.reltypeSpecial, @@ -239,54 +205,50 @@ inputPhoneFiche.prototype.add = function(objectData){ /* {9} On sélectionna la valeur des boutons pour le SEXE */ var sexeCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'); - for( var i = 0 ; i < sexeCreated.length && i < objectData.sexe.length ; i++ ) - if( objectData.sexe[i].status ) sexeCreated[i].setAttribute('checked', 'checked'); - else sexeCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < sexeCreated.length ; i++ ) + if( sexeCreated[i].value == objectData.sexe ) sexeCreated[i].setAttribute('checked', 'checked'); + else sexeCreated[i].removeAttribute('checked'); /* {10} On sélectionna la valeur des boutons pour la SITUATION FAMILIALE */ var famsitCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="famsit"]'); - for( var i = 0 ; i < famsitCreated.length && i < objectData.famsit.length ; i++ ) - if( objectData.famsit[i].status ) famsitCreated[i].setAttribute('checked', 'checked'); - else famsitCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < famsitCreated.length ; i++ ) + if( famsitCreated[i].value == objectData.famsit ) famsitCreated[i].setAttribute('checked', 'checked'); + else famsitCreated[i].removeAttribute('checked'); /* {11} On sélectionna la valeur des boutons pour le TYPE DE RELATION */ var reltypeCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]'); - for( var i = 0 ; i < reltypeCreated.length && i < objectData.reltype.length ; i++ ) - if( objectData.reltype[i].status ) reltypeCreated[i].setAttribute('checked', 'checked'); - else reltypeCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < reltypeCreated.length ; i++ ) + if( reltypeCreated[i].value == objectData.reltype ) reltypeCreated[i].setAttribute('checked', 'checked'); + else reltypeCreated[i].removeAttribute('checked'); /* {12} On sélectionna la valeur des boutons pour la LOCATION */ var locCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc"]'); - for( var i = 0 ; i < locCreated.length && i < objectData.loc.length ; i++ ) - if( objectData.loc[i].status ) locCreated[i].setAttribute('checked', 'checked'); - else locCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < locCreated.length ; i++ ) + if( locCreated[i].value == objectData.loc ) locCreated[i].setAttribute('checked', 'checked'); + else locCreated[i].removeAttribute('checked'); /* {13} On sélectionna la valeur des boutons pour le CONTEXTE DE RENCONTRE */ var contextCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="context"]'); - for( var i = 0 ; i < contextCreated.length && i < objectData.context.length ; i++ ) - if( objectData.context[i].status ) contextCreated[i].setAttribute('checked', 'checked'); - else contextCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < contextCreated.length ; i++ ) + if( contextCreated[i].value == objectData.context ) contextCreated[i].setAttribute('checked', 'checked'); + else contextCreated[i].removeAttribute('checked'); /* {14} On sélectionna la valeur des boutons pour les FREQUENCES */ - for( var f = 0 ; f < objectData.freq.length ; f++ ){ - var freqCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="freq'+f+'"]'); - for( var i = 0 ; i < freqCreated.length && i < objectData.freq[f].length ; i++ ) - if( objectData.freq[f][i].status ) freqCreated[i].setAttribute('checked', 'checked'); - else freqCreated[i].removeAttribute('checked'); - } + var freqCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="freq"]'); + for( var i = 0 ; i < freqCreated.length ; i++ ) + if( objectData.freq.indexOf(freqCreated[i].value) > -1 ) freqCreated[i].setAttribute('checked', 'checked'); + else freqCreated[i].removeAttribute('checked'); /* {15} On sélectionna la valeur des boutons pour les CONNECTIONS */ - for( var c = 0 ; c < objectData.connect.length ;c++ ){ - var connectCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="connect'+c+'"]'); - for( var i = 0 ; i < connectCreated.length && i < objectData.connect[c].length ; i++ ) - if( objectData.connect[c][i].status ) connectCreated[i].setAttribute('checked', 'checked'); - else connectCreated[i].removeAttribute('checked'); - } + var connectCreated = $$('article.fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="connect"]'); + for( var i = 0 ; i < connectCreated.length ; i++ ) + if( objectData.connect.indexOf(connectCreated[i].value) > -1 ) connectCreated[i].setAttribute('checked', 'checked'); + else connectCreated[i].removeAttribute('checked'); @@ -419,7 +381,7 @@ inputPhoneFiche.prototype.sync = function(){ /* (4) On met à jour la fiche ET on l'enregistre */ ficheData.uid = ficheUid; - ficheData.contact = uid; + ficheData.contact = parseInt(uid); lsi.set('fiches', ficheUid, ficheData); @@ -430,45 +392,7 @@ inputPhoneFiche.prototype.sync = function(){ } - - /* (3) Mise à jour en fonction des MINI fiches - ---------------------------------------------------------*/ - /* (1) On récupère les valeurs des MINI fiches et des FICHES */ - var ficheData = lsi.export('fiches'); - - - /* (2) Pour chaque champ, on synchronise les MINI fiches avec les FICHES associées */ - for( var key in ficheData ){ - miniData = lsi.get('mini-fiches', ficheData[key].contact); - - var ficheModifiedLast = ficheData[key].timestamp >= miniData.timestamp; - - /* (3) Si la FICHE a été modifiée en dernier, on utilise ses données */ - if( ficheModifiedLast ){ - miniData.sexe = ficheData[key].sexe; - miniData.age = ficheData[key].age; - miniData.studies = ficheData[key].studies; - miniData.loc = ficheData[key].loc; - miniData.reltype = ficheData[key].reltype; - miniData.reltypeSpecial = ficheData[key].reltypeSpecial; - - /* (4) Sinon, on utilise les données de la MINI */ - }else{ - ficheData[key].sexe = miniData.sexe; - ficheData[key].age = miniData.age; - ficheData[key].studies = miniData.studies; - ficheData[key].loc = miniData.loc; - ficheData[key].reltype = miniData.reltype; - ficheData[key].reltypeSpecial = miniData.reltypeSpecial; - } - - /* (5) On enregistre les modifications */ - lsi.set('mini-fiches', ficheData[key].contact, miniData); - lsi.set('fiches', key, ficheData[key]); - } - - - /* (4) Mise à jour des fiches dupliquées entre le top 10 des APPELS et celui des SMS + /* (3) Mise à jour des fiches dupliquées entre le top 10 des APPELS et celui des SMS ---------------------------------------------------------*/ for( var key in ficheData ){ /* (1) On récupère le contact associé */ @@ -549,9 +473,13 @@ inputPhoneFiche.prototype.updateNavBar = function(){ /* (2) On vide et remplit la barre de nav, si elle n'est pas à jour */ if( !navBarUpToDate ){ - this.nav_container.innerHTML = 'APPELS'; + this.nav_container.innerHTML = ''; + + for( var i = 0 ; i < len ; i++ ){ + // Si 1ère valeur du top 10 des APPELS, on ajoute le bandeau "APPELS" + if( i == 0 ) + this.nav_container.innerHTML += 'APPELS'; - for( var i = 0 ; i < len ; i++ ) // Si fin du top 10 des APPELS, on met un espace et un border-right if( i == 9 ) this.nav_container.innerHTML += ''+(i%10 + 1)+'  '; @@ -564,6 +492,7 @@ inputPhoneFiche.prototype.updateNavBar = function(){ // Sinon, on ajoute juste le bouton }else this.nav_container.innerHTML += ''+(i%10 + 1)+''; + } } /* (3) On montre les FICHES qui sont correctes */ @@ -598,71 +527,74 @@ inputPhoneFiche.prototype.check = function(ficheData){ // 1. La ville a au moins 2 caractères if( ficheData.city.length < 2 ) return false; - // 2. La durée de la relation en mois est vide ou un nombre + // 2. Le code postal est un nombre + if( isNaN(ficheData.cp) ) + return false; + // 3. La durée de la relation en mois est vide ou un nombre if( isNaN(parseInt(ficheData.duration[0])) && ficheData.duration[0].length > 0 ) return false; - // 3. La durée de la relation en année est vide ou un nombre + // 4. La durée de la relation en année est vide ou un nombre if( isNaN(parseInt(ficheData.duration[1])) && ficheData.duration[1].length > 0 ) return false; - // 4. Pour la durée de la relation, au moins un des 2 n'est pas vide + // 5. Pour la durée de la relation, au moins un des 2 n'est pas vide if( ficheData.duration[0].length+ficheData.duration[1].length == 0 ) return false; // {2} Vérification des pour la profession n'est pas indéfini + // 6. Le pour les études n'est pas indéfini + // 7. Le pour l'AGE n'est pas indéfini + // 8. Le radio // - // 8. Le SEXE a un et un seul choix - if( !checkRadioValue(ficheData.sexe) ) + // 9. Le SEXE a un et un seul choix + if( ficheData.sexe == '' ) return false; - // 9. La SITUATION FAMILIALE a un et un seul choix - if( !checkRadioValue(ficheData.famsit) ) + // 10. La SITUATION FAMILIALE a un et un seul choix + if( ficheData.famsit == '' ) return false; - // 10. Le TYPE DE RELATION a un et un seul choix - if( !checkRadioValue(ficheData.reltype) ) + // 11. Le TYPE DE RELATION a un et un seul choix + if( ficheData.reltype == '' ) return false; - // 11. La DISTANCE DE DOMICILE (location) a un et un seul choix - if( !checkRadioValue(ficheData.loc) ) + // 12. La DISTANCE DE DOMICILE (location) a un et un seul choix + if( ficheData.loc == '' ) return false; - // 12. Le CONTEXTE DE RENCONTRE a un et un seul choix - if( !checkRadioValue(ficheData.context) ) + // 13. Le CONTEXTE DE RENCONTRE a un et un seul choix + if( ficheData.context == '' ) return false; - // 13. Les FRÉQUENCES ont un et un seul choix (par question de fréquence) + // 14. Les FRÉQUENCES ont un et un seul choix (par question de fréquence) for( var i = 0 ; i < ficheData.freq.length ; i++ ) - if( !checkRadioValue( ficheData.freq[i] ) ) + if( ficheData.freq[i] == '' ) return false; - // 14. Les CONNECTION ont un et un seul choix (par question de connection) + // 15. Les CONNECTION ont un et un seul choix (par question de connection) for( var i = 0 ; i < ficheData.connect.length ; i++ ) - if( !checkRadioValue( ficheData.connect[i] ) ) + if( ficheData.connect[i] == '' ) return false; // {4} dépendant d'un choix d'un radio // - // 15. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère - if( ficheData.reltype[8].status && ficheData.reltypeSpecial.length < 2 ) + // 16. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère + if( ficheData.reltype == '8' && ficheData.reltypeSpecial.length < 2 ) return false; - // 16. CONTEXTE DE RELATION si est coché indice 11, contactSpecial[0] doit avoir au moins 2 caractères - if( ficheData.context[11].status && ficheData.contextSpecial[0].length < 2 ) + // 17. CONTEXTE DE RELATION si est coché indice 11, contactSpecial[0] doit avoir au moins 2 caractères + if( ficheData.context == '11' && ficheData.contextSpecial[0].length < 2 ) return false; - // 17. CONTEXTE DE RELATION si est coché indice 12, contextSpecial[1] doit avoir au moins 2 caractères - if( ficheData.context[12].status && ficheData.contextSpecial[1].length < 2 ) + // 18. CONTEXTE DE RELATION si est coché indice 12, contextSpecial[1] doit avoir au moins 2 caractères + if( ficheData.context == '12' && ficheData.contextSpecial[1].length < 2 ) return false; - // 18. CONTEXTE DE RELATION si est coché indice 13, contextSpecial[2] doit avoir au moins 2 caractères - if( ficheData.context[13].status && ficheData.contextSpecial[2].length < 2 ) + // 19. CONTEXTE DE RELATION si est coché indice 13, contextSpecial[2] doit avoir au moins 2 caractères + if( ficheData.context == '13' && ficheData.contextSpecial[2].length < 2 ) return false; - // 19. Si tout s'est bien passé, on retourne TRUE + // 20. Si tout s'est bien passé, on retourne TRUE return true; }; diff --git a/js/includes/input-phone-matrice-min.js b/js/includes/input-phone-matrice-min.js index ef08f7e..ca2ed32 100644 --- a/js/includes/input-phone-matrice-min.js +++ b/js/includes/input-phone-matrice-min.js @@ -1,5 +1,5 @@ function inputPhoneMatrice(a){this.container=a}inputPhoneMatrice.prototype={container:this.container}; -inputPhoneMatrice.prototype.fieldsToStorage=function(){console.log("MATRICE: FIELDS TO STORAGE");var a=(new FormDeflater(this.container,["input"],["data-name"])).deflate();crc32(JSON.stringify(a));var d={},b;for(b in a)if(a[b]instanceof Array)for(var e in a[b])!0===a[b][e].status&&(null==d[b]&&(d[b]=[]),d[b].push(parseInt(a[b][e].value)));else!0===a[b].status&&(null==d[b]&&(d[b]=[]),d[b].push(parseInt(a[b].value)));lsi.set("matrice",0,d)}; -inputPhoneMatrice.prototype.storageToFields=function(){console.log("MATRICE: STORAGE TO FIELDS");var a=lsi["export"]("fiches"),d=lsi.get("matrice",0),b=lsi["export"]("contacts"),e=[],c;for(c in a)-1==e.indexOf(a[c].contact)&&e.push(a[c].contact);a="";for(c=0;c";0',a+=f.firstname+" "+f.lastname,a+=0",a+='',a+=g.firstname+" "+g.lastname,a+=0"):a+=""}a+=""}this.container.innerHTML= -a+"
"};inputPhoneMatrice.prototype.attach=function(){console.log("MATRICE: ATTACH");lsi.createDataset("matrice");this.storageToFields();var a=this;this.container.addEventListener("click",function(d){a.fieldsToStorage();a.storageToFields()},!1)}; +inputPhoneMatrice.prototype.fieldsToStorage=function(){console.log("MATRICE: FIELDS TO STORAGE");var a=(new FormDeflater(this.container,["input"],["data-name"])).deflate();crc32(JSON.stringify(a));var d={},b;for(b in a)if(a[b]instanceof Array)for(var e in a[b])null==d[b]&&(d[b]=[]),d[b].push(parseInt(a[b][e]));else null!==a[b]&&(null==d[b]&&(d[b]=[]),d[b].push(parseInt(a[b])));lsi.set("matrice",0,d)}; +inputPhoneMatrice.prototype.storageToFields=function(){console.log("MATRICE: STORAGE TO FIELDS");var a=lsi["export"]("fiches"),d=lsi.get("matrice",0),b=lsi["export"]("contacts"),e=[],c;for(c in a)-1==e.indexOf(a[c].contact)&&e.push(a[c].contact);a="";for(c=0;c";0',a+=readableName(f.username,f.firstname,f.lastname),a+=""):a+="";for(var h=0;h",a+='',a+=readableName(g.username,g.firstname,g.lastname),a+=""):h",a+=""):a+=""}a+=""}this.container.innerHTML=a+"
"}; +inputPhoneMatrice.prototype.attach=function(){console.log("MATRICE: ATTACH");lsi.createDataset("matrice");this.storageToFields();var a=this;this.container.addEventListener("click",function(d){a.fieldsToStorage();a.storageToFields()},!1)}; diff --git a/js/includes/input-phone-matrice.js b/js/includes/input-phone-matrice.js index dc43a15..555f0ed 100644 --- a/js/includes/input-phone-matrice.js +++ b/js/includes/input-phone-matrice.js @@ -37,20 +37,19 @@ inputPhoneMatrice.prototype.fieldsToStorage = function(){ if( deflated[i] instanceof Array ){ // Pour chacune des différentes relations, on ajoute si TRUE - for( var a in deflated[i] ) - if( deflated[i][a].status === true ){ - if( obj[i] == null ) - obj[i] = []; + for( var a in deflated[i] ){ + if( obj[i] == null ) + obj[i] = []; - obj[i].push( parseInt(deflated[i][a].value) ); - } + obj[i].push( parseInt(deflated[i][a]) ); + } // {2} Si il n'y a qu'un sujet // - }else if( deflated[i].status === true ){ + }else if( deflated[i] !== null ){ if( obj[i] == null ) obj[i] = []; - obj[i].push( parseInt(deflated[i].value) ); + obj[i].push( parseInt(deflated[i]) ); } lsi.set( 'matrice', 0, obj ); @@ -109,8 +108,7 @@ inputPhoneMatrice.prototype.storageToFields = function(){ if( A > 0 ){ // Noms sur la première ligne (abscisses) matrice_html += ''; - matrice_html += conA.firstname+' '+conA.lastname - matrice_html += (conA.username.length>0) ? ' ('+conA.username+')' : ''; + matrice_html += readableName(conA.username, conA.firstname, conA.lastname); matrice_html += ''; }else // Sinon, matrice_html += ''; @@ -123,8 +121,7 @@ inputPhoneMatrice.prototype.storageToFields = function(){ if( A == 0 ){ matrice_html += ''; matrice_html += ''; - matrice_html += conB.firstname+' '+conB.lastname; - matrice_html += (conB.username.length>0) ? ' ('+conB.username+')' : ''; + matrice_html += readableName(conB.username, conB.firstname, conB.lastname), matrice_html += ''; // {4} Valeurs des relations (boutons) // diff --git a/js/includes/input-phone-mini-min.js b/js/includes/input-phone-mini-min.js index 22a2f0f..55d860d 100644 --- a/js/includes/input-phone-mini-min.js +++ b/js/includes/input-phone-mini-min.js @@ -1,10 +1,11 @@ -function inputPhoneMini(a,b){this.container=a;this.nav_container=b}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:[defTrue,defFalse],age:".",studies:".",loc:[defTrue,defFalse,defFalse,defFalse],reltype:[defTrue,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse,defFalse],reltypeSpecial:"",timestamp:0,valid:!1}}; -inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b MINI UPDATE");c={uid:parseInt(c.uid.value),firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:c.sexe,age:c.age.value, -studies:c.studies.value,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial.value,loc:c.loc,hash:e};c.valid=this.check(c);0 FICHE UPDATE"),c.timestamp=Date.now());lsi.set("mini-fiches",c.uid,c)}}}; +function inputPhoneMini(a,b){this.container=a;this.nav_container=b}inputPhoneMini.prototype={container:this.container,nav_container:this.nav_container,selected:0,handler:null,defaultData:{sexe:"H",age:".",studies:".",loc:"0",reltype:"0",reltypeSpecial:"",timestamp:0,valid:!1}}; +inputPhoneMini.prototype.fieldsToStorage=function(){console.log("MINI FICHE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b MINI UPDATE");c={uid:parseInt(c.uid),sexe:c.sexe,age:c.age,studies:c.studies,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial, +loc:c.loc,hash:e};c.valid=this.check(c);0 FICHE UPDATE"),c.timestamp=Date.now());lsi.set("mini-fiches",c.uid,c)}}}; inputPhoneMini.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a||null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.loc=null!=a.loc?a.loc:this.defaultData.loc;var b=lsi.get("contacts",a.uid);if(!1===b)return!1; -this.container.innerHTML+=miniFicheBuilder.build({firstname:b.firstname,lastname:b.lastname,username:0==b.username.length?"":"("+b.username+")",countcall:b.countcall,countsms:b.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+ -a.age+'"]');null!=b&&b.setAttribute("selected","selected");for(var c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;binput[type="radio"][data-name="reltype"]');for(b=0;binput[type="radio"][data-name="loc"]');for(b=0;b span.active"),c=0;c'+(c+1)+""}for(var e in a)b=$('#nav-mini [data-n="'+a[e].uid+'"]'),null!=b&&(!0===a[e].valid?b.addClass("done"):b.remClass("done"));this.nav($('#nav-mini [data-n="'+this.selected+'"]'))}; -inputPhoneMini.prototype.check=function(a){return!checkRadioValue(a.sexe)||"."==a.studies||"."==a.age||!checkRadioValue(a.loc)||!checkRadioValue(a.reltype)||a.reltype[8].status&&2>a.reltypeSpecial.length?!1:!0};inputPhoneMini.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("mini-fiches");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; +this.container.innerHTML+=miniFicheBuilder.build({name:readableName(b.username,b.firstname,b.lastname),countcall:b.countcall,countsms:b.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+ +a.age+'"]');null!=b&&b.setAttribute("selected","selected");for(var c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;binput[type="radio"][data-name="reltype"]');for(b=0;binput[type="radio"][data-name="loc"]');for(b=0;b span.active"),c=0;c'+ ++b+"");for(c in a)isNaN(c)||(b=$('#nav-mini [data-n="'+a[c].uid+'"]'),null!=b&&(!0===a[c].valid?b.addClass("done"):b.remClass("done")));this.nav($('#nav-mini [data-n="'+this.selected+'"]'))}; +inputPhoneMini.prototype.check=function(a){return""==a.sexe||"."==a.studies||"."==a.age||""==a.loc||""==a.reltype||"8"==a.reltype&&2>a.reltypeSpecial.length?!1:!0};inputPhoneMini.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("mini-fiches");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)}; diff --git a/js/includes/input-phone-mini.js b/js/includes/input-phone-mini.js index 64fc97e..06cbcf5 100644 --- a/js/includes/input-phone-mini.js +++ b/js/includes/input-phone-mini.js @@ -13,15 +13,14 @@ inputPhoneMini.prototype = { selected: 0, // UID de la MINI fiche sélectionnée handler: null, // Fonction pour l'enregistrement et la synchronisation des données defaultData: { // Valeur par défaut - sexe: [defTrue, defFalse], - age: '.', - studies: '.', - loc: [defTrue, defFalse, defFalse, defFalse], - reltype: [ defTrue, defFalse, defFalse, defFalse, defFalse, - defFalse, defFalse, defFalse, defFalse], // Choix 1 à 9 + sexe: 'H', + age: '.', + studies: '.', + loc: '0', + reltype: '0', reltypeSpecial: '', - timestamp: 0, - valid: false + timestamp: 0, + valid: false } }; @@ -31,7 +30,7 @@ inputPhoneMini.prototype = { inputPhoneMini.prototype.fieldsToStorage = function(){ console.log('MINI FICHE: FIELDS TO STORAGE'); - // {1} Pour chaque formulaire de contact présent // + // {1} Pour chaque formulaire de MINI fiche à l'écran // var existingMiniFiches = $$('article.mini-relation-panel .mini-fiche-relation'); for( var i = 0 ; i < existingMiniFiches.length ; i++ ){ // {2} On initialise notre deflater pour récupérer les valeurs // @@ -47,7 +46,7 @@ inputPhoneMini.prototype.fieldsToStorage = function(){ // {4} On récupère les données du LSI si elles existent // - var existingData = lsi.get('mini-fiches', deflated.uid.value); + var existingData = lsi.get('mini-fiches', deflated.uid); // Si n'existe pas, on passe à la suivante if( existingData === false ) @@ -63,15 +62,12 @@ inputPhoneMini.prototype.fieldsToStorage = function(){ var obj = { - uid: parseInt(deflated.uid.value), - firstname: existingData.firstname, - lastname: existingData.lastname, - username: existingData.username, + uid: parseInt(deflated.uid), sexe: deflated.sexe, // [0] Homme, [1] Femme - age: deflated.age.value, - studies: deflated.studies.value, + age: deflated.age, + studies: deflated.studies, reltype: deflated.reltype, // [0] ... - reltypeSpecial: deflated.reltypeSpecial.value, + reltypeSpecial: deflated.reltypeSpecial, loc: deflated.loc, // [0] Choix 1 -> [3] Choix 4 hash: deflatedHash }; @@ -80,7 +76,8 @@ inputPhoneMini.prototype.fieldsToStorage = function(){ obj.valid = this.check(obj); // On met à jour la date de modification, si on a pas qu'@uid de différent - if( diff(existingData, obj).length > 0 ){ + if( diff(existingData, obj, ['hash', 'valid', 'timestamp']).length > 0 ){ + console.log( diff(existingData, obj, ['hash', 'valid', 'timestamp']) ); console.warn('> FICHE UPDATE'); obj.timestamp = Date.now(); } @@ -133,9 +130,7 @@ inputPhoneMini.prototype.add = function(objectData){ // {2} Création physique // this.container.innerHTML += miniFicheBuilder.build({ - firstname: associatedContact.firstname, - lastname: associatedContact.lastname, - username: (associatedContact.username.length==0) ? '' : '('+associatedContact.username+')', + name: readableName(associatedContact.username, associatedContact.firstname, associatedContact.lastname), countcall: associatedContact.countcall, countsms: associatedContact.countsms, uid: objectData.uid, @@ -155,21 +150,21 @@ inputPhoneMini.prototype.add = function(objectData){ /* {5} On sélectionna la valeur des boutons pour le SEXE */ var sexeCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'); - for( var i = 0 ; i < sexeCreated.length && i < objectData.sexe.length ; i++ ) - if( objectData.sexe[i].status ) sexeCreated[i].setAttribute('checked', 'checked'); - else sexeCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < sexeCreated.length ; i++ ) + if( sexeCreated[i].value == objectData.sexe ) sexeCreated[i].setAttribute('checked', 'checked'); + else sexeCreated[i].removeAttribute('checked'); /* {6} On sélectionna la valeur des boutons pour le TYPE DE RELATION */ var reltypeCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]'); - for( var i = 0 ; i < reltypeCreated.length && i < objectData.reltype.length ; i++ ) - if( objectData.reltype[i].status ) reltypeCreated[i].setAttribute('checked', 'checked'); - else reltypeCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < reltypeCreated.length ; i++ ) + if( reltypeCreated[i].value == objectData.reltype ) reltypeCreated[i].setAttribute('checked', 'checked'); + else reltypeCreated[i].removeAttribute('checked'); /* {7} On sélectionna la valeur des boutons pour la LOCATION */ var locCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc"]'); - for( var i = 0 ; i < locCreated.length && i < objectData.loc.length ; i++ ) - if( objectData.loc[i].status ) locCreated[i].setAttribute('checked', 'checked'); - else locCreated[i].removeAttribute('checked'); + for( var i = 0 ; i < locCreated.length ; i++ ) + if( locCreated[i].value == objectData.loc ) locCreated[i].setAttribute('checked', 'checked'); + else locCreated[i].removeAttribute('checked'); }; @@ -190,6 +185,12 @@ inputPhoneMini.prototype.storageToFields = function(){ // {1} Pour chaque contact du 'localStorage' // var miniData = lsi.get('mini-fiches', this.selected); + // Si on a rien trouvé, on ne fait rien + if( miniData == null ){ + this.updateNavBar(); + return false; + } + // On réinitialise le HTML this.container.innerHTML = ''; @@ -219,25 +220,51 @@ inputPhoneMini.prototype.sync = function(){ /* (1) On récupère les clés de tous les CONTACTS */ var contactData = lsi.export('contacts'); - /* (2) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */ + + /* (2) On enregistre les contacts qui sont déja dans les FICHES */ + var fiches = lsi.export('fiches'); + var ignoredContacts = []; + for( var id in fiches ) + if( ignoredContacts.indexOf( fiches[id].contact ) == -1 ) + ignoredContacts.push( fiches[id].contact ); + + + /* (3) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */ for( var key in contactData ){ - /* (3) On récupère les informations de la MINI (si elle existe) */ - var miniData = lsi.get('mini-fiches', key); + /* (4) Si le contact est déja dans une fiche, on le retire */ + if( ignoredContacts.indexOf(parseInt(key)) > -1 ){ + // On supprime au cas ou + lsi.del('mini-fiches', key); + continue; + } + + /* (5) Si le contact n'a aucun nominatif, on met inconnu par défaut, mais on ne l'affiche pas */ + var noName = contactData[key].username.length+contactData[key].firstname.length+contactData[key].lastname.length == 0; + + // On rajoute un '.' après pour dire qu'on affichera pas + var uid = noName ? key.toString()+'-' : key; + + /* (5) On récupère les informations de la MINI (si elle existe) */ + var miniData = lsi.get('mini-fiches', uid); - /* (4) Si la MINI fiche n'exise pas, on la crée avec les valeurs par défaut */ + /* (6) Si la MINI fiche n'exise pas, on la crée avec les valeurs par défaut */ if( miniData == null ){ miniData = this.defaultData; miniData.valid = false; + + // Si aucun nom, on met 'inconnu' par défaut pour la fiche de relation + if( isNaN(uid) ) + miniData.reltype = '9'; } - /* (5) On met à jour la MINI fiche */ - miniData.uid = contactData[key].uid; + /* (7) On met à jour la MINI fiche */ + miniData.uid = parseInt(key); - /* (6) On enregistre les modification */ - lsi.set('mini-fiches', key, miniData); + /* (8) On enregistre les modification */ + lsi.set('mini-fiches', uid, miniData); } @@ -279,24 +306,24 @@ inputPhoneMini.prototype.nav = function(element){ =========================================================*/ inputPhoneMini.prototype.updateNavBar = function(){ var miniData = lsi.export('mini-fiches'); - var len = Object.keys(miniData).length; - /* (1) On vérifie si la barre de navigation est à jour */ - var navBarUpToDate = $$('#nav-mini [data-n]').length == len; + /* (1) On vide et remplit la barre de nav, si elle n'est pas à jour */ + this.nav_container.innerHTML = ''; + var i = 0; + + for( var key in miniData ) + if( !isNaN(key) ) // On affiche que les clés numériques + this.nav_container.innerHTML += ''+(++i)+''; - /* (2) On vide et remplit la barre de nav, si elle n'est pas à jour */ - if( !navBarUpToDate ){ - this.nav_container.innerHTML = ''; - - for( var i = 0 ; i < len ; i++ ) - this.nav_container.innerHTML += ''+(i+1)+''; - } - - /* (3) On montre les MINI fiches qui sont correctes dans la navbar */ + /* (2) On montre les MINI fiches qui sont correctes dans la navbar */ for( var key in miniData ){ + // Si la clé n'est pas numérique, on ne gère pas + if( isNaN(key) ) + continue; + var currentElement = $('#nav-mini [data-n="'+miniData[key].uid+'"]'); if( currentElement == null ) @@ -315,7 +342,7 @@ inputPhoneMini.prototype.updateNavBar = function(){ - /* (4) On séléctionne par défaut la dernière MINI fiche sélectionnée */ + /* (3) On séléctionne par défaut la dernière MINI fiche sélectionnée */ this.nav( $('#nav-mini [data-n="'+this.selected+'"]') ); }; @@ -327,7 +354,7 @@ inputPhoneMini.prototype.updateNavBar = function(){ inputPhoneMini.prototype.check = function(miniData){ // 1. Le sexe est défini - if( !checkRadioValue(miniData.sexe) ) + if( miniData.sexe == '' ) return false; // 2. Le métier est défini if( miniData.studies == '.' ) @@ -336,13 +363,13 @@ inputPhoneMini.prototype.check = function(miniData){ if( miniData.age == '.' ) return false; // 4. La distance de localisation est définie - if( !checkRadioValue(miniData.loc) ) + if( miniData.loc == '' ) return false; // 5. Le TYPE DE RELATION a un et un seul choix - if( !checkRadioValue(miniData.reltype) ) + if( miniData.reltype == '' ) return false; // 6. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère - if( miniData.reltype[8].status && miniData.reltypeSpecial.length < 2 ) + if( miniData.reltype == '8' && miniData.reltypeSpecial.length < 2 ) return false; diff --git a/js/includes/input-phone-subject-min.js b/js/includes/input-phone-subject-min.js index 6dde03d..a3dacd4 100644 --- a/js/includes/input-phone-subject-min.js +++ b/js/includes/input-phone-subject-min.js @@ -1,4 +1,4 @@ -function inputPhoneSubject(a,b,c,d,e){this.number=a;this.username=b;this.firstname=c;this.lastname=d;this.store_button=e}inputPhoneSubject.prototype={store_button:this.store_button,number:this.number,username:this.username,firstname:this.firstname,lastname:this.lastname}; -inputPhoneSubject.prototype.fieldsToStorage=function(){console.log("SUBJECT: FIELDS TO STORAGE");var a=0 0; + + /* (2) ET le pseudo et/ou le prénom et/ou le nom n'est pas vide */ + validForm = validForm && this.username.value.length+this.firstname.value.length+this.lastname.value.length > 0; + + // On renvoie la validité du formulaire + return validForm; +}; + +/* [3] Gestion de l'enregistrement des formulaires de contact =========================================================*/ inputPhoneSubject.prototype.fieldsToStorage = function(){ console.log('SUBJECT: FIELDS TO STORAGE'); - // {1} Vérification des champs // - // Le numéro n'est pas vide - var validForm = this.number.value.length > 0; - // ET le pseudo et/ou le prénom et/ou le nom n'est pas vide - validForm = validForm && this.username.value.length+this.firstname.value.length+this.lastname.value.length > 0; - - // Si le formulaire n'est pas valide, on ne l'enregistre pas - if( !validForm ) return false; + // {1} Si le formulaire n'est pas valide, on ne l'enregistre pas // + if( !this.check() ) return false; // {2} On récupère et met en forme les valeurs du deflater // var obj = { @@ -52,7 +59,7 @@ inputPhoneSubject.prototype.fieldsToStorage = function(){ -/* [3] Gestion de l'affichage depuis le 'localStorage' +/* [4] Gestion de l'affichage depuis le 'localStorage' =========================================================*/ inputPhoneSubject.prototype.storageToFields = function(){ console.log('SUBJECT: STORAGE TO FIELDS'); @@ -72,7 +79,7 @@ inputPhoneSubject.prototype.storageToFields = function(){ -/* [4] Point d'amorçage de la gestion des contacts +/* [5] Point d'amorçage de la gestion des contacts =========================================================*/ inputPhoneSubject.prototype.attach = function(){ console.log('SUBJECT: ATTACH'); @@ -80,10 +87,21 @@ inputPhoneSubject.prototype.attach = function(){ /* (1) On initialise le jeu de données */ lsi.createDataset('subject'); - /* (2) On attache l'évènement sur le bouton d'ajout de contact */ + // Pointeur pour les scopes des addEventListener() var ptr = this; - this.store_button.addEventListener('click', function(e){ ptr.fieldsToStorage(); }, false); + // Handler de mise à jour quand les champs sont bons + function fts(e){ if( ptr.fieldsToStorage() ) ptr.storageToFields(); } - /* (3) On charge le sujet depuis la mémoire ('localStorage') */ + + /* (2) On attache l'évènement sur le bouton d'enregistrement */ + this.store_button.addEventListener('click', fts, false); + + /* (3) On attache un évènement de 'blur' sur chaque '' */ + this.number.addEventListener( 'blur', fts, false); + this.username.addEventListener( 'blur', fts, false); + this.firstname.addEventListener( 'blur', fts, false); + this.lastname.addEventListener( 'blur', fts, false); + + /* (4) On charge le sujet depuis la mémoire ('localStorage') */ this.storageToFields(); }; diff --git a/js/lib/api-min.js b/js/lib/api-min.js index 6106b13..5b3f503 100644 --- a/js/lib/api-min.js +++ b/js/lib/api-min.js @@ -1,3 +1,3 @@ function APIClass(b){this.target=b} -APIClass.prototype={xhr:[],send:function(b,d,g){b.hasOwnProperty("path")||d({ModuleError:4});for(var a=0;a '+ptrAPI.xhr[i].responseText); // console.log( JSON.parse(ptrAPI.xhr[i].responseText) ); diff --git a/js/lib/form-deflater-min.js b/js/lib/form-deflater-min.js index 4dce863..1b698b8 100644 --- a/js/lib/form-deflater-min.js +++ b/js/lib/form-deflater-min.js @@ -1,3 +1,5 @@ -function FormDeflater(b,c,a){for(var d=0;d ou autre) - tags: this.tags, // Contiendra les balises HTML à ne pas prendre en compte - attr: this.attr, // Contiendra la liste des attributs à prendre pour nom (par ordre de priorité) + tags: this.tags, // Contiendra les balises HTML à ne pas prendre en compte + attr: this.attr // Contiendra la liste des attributs à prendre pour nom (par ordre de priorité) +}; +/* RETOURNE UN OBJET CONTENANT LES DONNÉES DU FORMULAIRE +* +* @return form Objet correspondant aux données du formulaire +* +*/ +FormDeflater.prototype.deflate = function(){ + /* [1] On récupère tous les enfants + =========================================================*/ + var children = this.getChildren( this.container ); - /* RETOURNE UN OBJET CONTENANT LES DONNÉES DU FORMULAIRE - * - * @return form Objet correspondant aux données du formulaire - * - */ - deflate: function(){ - /* [1] On récupère tous les enfants - =========================================================*/ - var children = this.getChildren( this.container ); - - /* [2] On filtre les éléments qui ont pas le bon tag - =========================================================*/ - children = this.filterElements( children ); + /* [2] On filtre les éléments qui ont pas le bon tag + =========================================================*/ + children = this.filterElements( children ); - /* [3] On essaie de trouver les attributs primants (non vides et en premier dans la liste @this.attr) - =========================================================*/ - /* (0) On initialise l'objet de retour */ - var object = {}; + /* [3] On essaie de trouver les attributs primants (non vides et en premier dans la liste @this.attr) + =========================================================*/ + /* (0) On initialise l'objet de retour */ + var object = {}; - /* (1) Pour chacun des éléments */ - for( var c = 0 ; c < children.length ; c++ ){ + /* (1) Pour chacun des éléments */ + for( var c = 0 ; c < children.length ; c++ ){ - /* (2) Pour chacun des attributs par ordre de priorité */ - for( var a = 0 ; a < this.attr.length ; a++ ){ - // On récupère l'attribut - var attr = children[c].getAttribute(this.attr[a]); + /* (2) Pour chacun des attributs par ordre de priorité */ + for( var a = 0 ; a < this.attr.length ; a++ ){ + // On récupère l'attribut + var attr = children[c].getAttribute(this.attr[a]); - /* (3) Si l'attribut n'est pas null ni vide */ - if( attr !== null && attr.length > 0 ){ - /* (4) Si on a pas déja un champ de même nom */ - if( object.hasOwnProperty(attr) ){ - var existing = object[attr]; - // {1} Si l'existant est un tableau, on ajoute notre valeur // - if( existing instanceof Array ) - object[attr].push( { value: children[c].value, status: children[c].checked } ); + /* (3) Si l'attribut est défini (pas null ni vide) */ + if( attr !== null && attr.length > 0 ){ - // {2} Sinon, si c'est une valeur seule, on crée un tableau // - else - object[attr] = [ object[attr], { value: children[c].value, status: children[c].checked } ]; + /* (4) Si on a pas déja un champ de même nom */ + if( object.hasOwnProperty(attr) ){ + var existing = object[attr]; - /* (5) Si c'est le premier champ avec ce nom, on le crée */ - }else - object[attr] = { value: children[c].value, status: children[c].checked }; + // {1} Si l'existant est un tableau, on ajoute notre valeur // + if( existing instanceof Array ) + object[attr].push( { target: children[c], attr: this.attr[a], value: children[c].value, checked: children[c].checked } ); - // On en a fini pour cet élément - break; - } + // {2} Sinon, si c'est une valeur seule, on crée un tableau // + else + object[attr] = [ object[attr], { target: children[c], attr: this.attr[a], value: children[c].value, checked: children[c].checked } ]; + /* (5) Si c'est le premier champ avec ce nom, on le crée */ + }else + object[attr] = { target: children[c], attr: this.attr[a], value: children[c].value, checked: children[c].checked }; + + // On en a fini pour cet élément + break; } + } - - - return object; - }, - - - - - /* RETOURNE LA LISTE DE TOUS LES ÉLÉMENTS QUEL QUE SOIT LE NIVEAU HIÉRARCHIQUE - * - * @parent Parent duquel on veut les enfants - * - * @return children Tableau contenant tous les enfants - * - */ - getChildren: function(parent){ - // Si le parent n'est pas un élément, on retourne aucun enfant - if( !(parent instanceof Element) ) return []; - - /* [1] Initialisation des variables - =========================================================*/ - // Contient la liste des enfants directs - var children = [].slice.call(parent.children); - - // Contiendra la liste des enfants directs et indirects - var allChildren = children; - - /* [2] On parcourt tous les enfants - =========================================================*/ - for( var i = 0 ; i < children.length ; i++ ){ - // On relance la fonction récursivement sur tous les enfants - allChildren = allChildren.concat( [].slice.call(this.getChildren(children[i])) ); - } - - /* [3] On retourne le résultat - =========================================================*/ - return allChildren; - }, - - - - /* FILTRE LES éléments en fonction de @this.tags et @this.attr - * - * @elements Le tableau contenant les éléments à trier - * - * @return filtered Retourne le tableau des éléments filtrés - * - */ - filterElements: function(elements){ - // Contiendra les éléments correspondants aux critères - var filtered = []; - - /* [1] On parcourt tous les éléments - =========================================================*/ - for( var i = 0 ; i < elements.length ; i++ ){ - /* (1) Si l'élément a le bon tag, on le garde */ - if( this.tags.indexOf( elements[i].tagName.toLowerCase() ) > -1 ) - filtered.push(elements[i]); - } - - /* [3] On retourne les éléments filtržés - =========================================================*/ - return filtered; } + + + /* [4] On met en forme les données + =========================================================*/ + object = this.cleanOutput(object); + + + return object; +}; + + + + +/* RETOURNE SI UN ELEMENT EST UN BOUTON DE TYPE RADIO/CHECKBOX OU NON +* +* @element Element en question +* +* @return result Renvoie si TRUE or FALSE il en est un +* +*/ +FormDeflater.prototype.checkable = function(element){ + if( element.tagName != 'INPUT' ) + return false; + + if( ['radio', 'checkbox'].indexOf( element.getAttribute('type').toLowerCase() ) == -1 ) + return false; + + return true; +}; + + + + +/* NETTOIE LES DONNÉES EN SORTIE POUR QU'ELLES SOIENT UTILISABLES ET OPTIMISÉES +* +* @input Données "brutes" +* +* @return output Données sans les valeurs inutiles et explicitées +* +*/ +FormDeflater.prototype.cleanOutput = function(input){ + var output = {}; + + /* [1] On parcourt toutes les valeurs récupérées + =========================================================*/ + for( var key in input ){ + + /* [2] Si c'est un tableau + =========================================================*/ + if( input[key] instanceof Array ){ + + // VRAI si tous les éléments sont radio/checkbox + var areCheckable = true; + // Contiendra les indices des valeurs ou 'checked=TRUE' + var checkedIndexes = []; + + /* (1) On vérifie si tous les champs sont checkables */ + for( var i in input[key]) + // si pas checkable, on arrête de vérifier + if( !this.checkable(input[key][i].target) ){ + areCheckable = false; + break; + // Sinon si checkable et checked=TRUE, on incrémente @nbChecked + }else if( input[key][i].checked === true ) + checkedIndexes.push(i); + + /* (2) Si c'est que des radio ou des checkbox avec une seule valeur à TRUE */ + if( areCheckable ) + if( checkedIndexes.length == 1 ) + output[key] = input[key][checkedIndexes[0]].value; + + /* (3) Si c'est que des radio ou des checkbox avec plusieurs valeurs à TRUE */ + else{ + output[key] = []; + for( var i in checkedIndexes ) + output[key].push( input[key][checkedIndexes[i]].value ); + } + + /* (4) Si c'est pas que des radio ou des checkbox, on met les valeurs */ + else{ + output[key] = []; + for( var i in input[key] ) + output[key].push( input[key][i].value ); + } + + /* [3] S'il n'y a qu'une donnée (pas un tableau) + =========================================================*/ + }else{ + + /* (1) Si de type 'radio' ou 'checkbox', on met la valeur de 'checked' */ + if( this.checkable(input[key].target) ) + output[key] = input[key].checked ? input[key].value : null; + + /* (2) Sinon, on met la valeur de 'value' */ + else + output[key] = input[key].value; + + } + + } + + + return output; +}; + + + + + + + +/* RETOURNE LA LISTE DE TOUS LES ÉLÉMENTS QUEL QUE SOIT LE NIVEAU HIÉRARCHIQUE +* +* @parent Parent duquel on veut les enfants +* +* @return children Tableau contenant tous les enfants +* +*/ +FormDeflater.prototype.getChildren = function(parent){ + // Si le parent n'est pas un élément, on retourne aucun enfant + if( !(parent instanceof Element) ) return []; + + /* [1] Initialisation des variables + =========================================================*/ + // Contient la liste des enfants directs + var children = [].slice.call(parent.children); + + // Contiendra la liste des enfants directs et indirects + var allChildren = children; + + /* [2] On parcourt tous les enfants + =========================================================*/ + for( var i = 0 ; i < children.length ; i++ ){ + // On relance la fonction récursivement sur tous les enfants + allChildren = allChildren.concat( [].slice.call(this.getChildren(children[i])) ); + } + + /* [3] On retourne le résultat + =========================================================*/ + return allChildren; +}; + + + + +/* FILTRE LES éléments en fonction de @this.tags et @this.attr +* +* @elements Le tableau contenant les éléments à trier +* +* @return filtered Retourne le tableau des éléments filtrés +* +*/ +FormDeflater.prototype.filterElements = function(elements){ + // Contiendra les éléments correspondants aux critères + var filtered = []; + + /* [1] On parcourt tous les éléments + =========================================================*/ + for( var i = 0 ; i < elements.length ; i++ ) + // Si l'élément a le bon tag, on le garde + if( this.tags.indexOf( elements[i].tagName.toLowerCase() ) > -1 ) + filtered.push(elements[i]); + + /* [2] On retourne les éléments filtržés + =========================================================*/ + return filtered; }; diff --git a/js/lib/local-storage-interface-min.js b/js/lib/local-storage-interface-min.js index 1471e61..d6bb758 100644 --- a/js/lib/local-storage-interface-min.js +++ b/js/lib/local-storage-interface-min.js @@ -1,5 +1,5 @@ function localStorageInterface(){} -localStorageInterface.prototype={dataset:[],dataset_keys:[],set:function(a,b,d){b=b.toString();var c=this.dataset.indexOf(a);if(-1==c)return!1;-1==this.dataset_keys[c].indexOf(b)&&(this.dataset_keys[c].push(b),localStorage.setItem(a,JSON.stringify(this.dataset_keys[c])));localStorage.setItem(a+"_"+b,JSON.stringify(d));return!0},get:function(a,b){b=b.toString();return-1==this.dataset.indexOf(a)?!1:JSON.parse(localStorage.getItem(a+"_"+b))},del:function(a,b){b=b.toString();var d=this.dataset.indexOf(a); -if(-1==d)return!1;var c=this.dataset_keys[d].indexOf(b);if(-1==c)return!1;localStorage.removeItem(a+"_"+b);this.dataset_keys[d].splice(c,1);localStorage.setItem(a,JSON.stringify(this.dataset_keys[d]));return!0},createDataset:function(a){if("string"!=typeof a)return!1;if(-1 key = key.toString(); @@ -51,7 +65,7 @@ localStorageInterface.prototype = { if( this.dataset.indexOf(dataset_name) == -1 ) return false; // erreur /* (2) On propage au 'localStorage' */ - return JSON.parse( localStorage.getItem(dataset_name+'_'+key) ); + return JSON.parse( this.storage.getItem(dataset_name+'_'+key) ); }, /* SUPPRIME UN ELEMENT D'UN DATASET DONNE @@ -75,13 +89,13 @@ localStorageInterface.prototype = { if( keyIndex == -1 ) return false; // erreur si la clé n'est pas référencée /* (3) On supprime dans le 'localStorage' */ - localStorage.removeItem(dataset+'_'+key); + this.storage.removeItem(dataset+'_'+key); /* (4) On supprime la clé dans la liste des clés */ this.dataset_keys[index].splice(keyIndex, 1); /* (5) On met à jour dans le 'localStorage' */ - localStorage.setItem(dataset, JSON.stringify(this.dataset_keys[index])); + this.storage.setItem(dataset, JSON.stringify(this.dataset_keys[index])); return true; @@ -105,7 +119,7 @@ localStorageInterface.prototype = { if( datasetIndex > -1 ) return true; /* (3) On charge le dataset s'il existe */ - var storedDataset = localStorage.getItem(name); + var storedDataset = this.storage.getItem(name); if( storedDataset != null ){ // Si le dataset existe, on charge les données this.dataset.push(name); @@ -116,7 +130,7 @@ localStorageInterface.prototype = { this.dataset.push(name); this.dataset_keys.push([]); - localStorage.setItem(name, JSON.stringify([])); + this.storage.setItem(name, JSON.stringify([])); } @@ -218,7 +232,7 @@ localStorageInterface.prototype = { /* (3) Par précaution, on supprime les clés du dataset */ this.dataset_keys[index] = []; - localStorage.setItem(dataset, JSON.stringify(this.dataset_keys[index])); + this.storage.setItem(dataset, JSON.stringify(this.dataset_keys[index])); /* (4) On retourne que tout s'est bien passé */ return true; diff --git a/js/lib/notif-min.js b/js/lib/notif-min.js new file mode 100644 index 0000000..1556452 --- /dev/null +++ b/js/lib/notif-min.js @@ -0,0 +1,5 @@ +var NotificationClass=function(a){this.container=a};NotificationClass.prototype={container:this.container,stack:[],types:["warning","info","success","error"],defaultTimeout:2E3,errorCodes:{}};NotificationClass.prototype.pushStack=function(a,c,b){if(!(a instanceof Array&&b instanceof Array))return null;var e=-1,d;for(d in a)if(-1"+c+": "+b+"

";this.container.appendChild(d.element); +var f=this.pushStack(this.stack,d,[null]);d.element.id=f;var g=this;d.element.className="notification-element notification-visible";setTimeout(function(){d.element.className="notification-element"},500+e);d.timeout=setTimeout(function(){g.hide(f)},500+e+500);d.element.addEventListener("click",function(a){g.hide(f)},!1);return d.element};NotificationClass.prototype.warning=function(a,c,b){return this.show("warning",a,c,b)}; +NotificationClass.prototype.info=function(a,c,b){return this.show("info",a,c,b)};NotificationClass.prototype.success=function(a,c,b){return this.show("success",a,c,b)};NotificationClass.prototype.error=function(a,c,b){return this.show("error",a,c,b)}; diff --git a/js/lib/notif.js b/js/lib/notif.js new file mode 100644 index 0000000..f1c75fd --- /dev/null +++ b/js/lib/notif.js @@ -0,0 +1,179 @@ + +/* [0] CONSTRUCTEUR +=========================================================*/ +var NotificationClass = function(container){ + this.container = container; +}; + + + +/* [1] PROTOTYPE ET ATTRIBUTS +=========================================================*/ +NotificationClass.prototype = { + container: this.container, // Parent de la page à notifier + stack: [], // Contiendra les données de toutes les notifications actives + types: [ // Définition des différents types + 'warning', + 'info', + 'success', + 'error' + ], + defaultTimeout: 2000, // Temps d'apparition par défaut + errorCodes: {} // codes d'erreurs sous la forme {codeErreur1: texteErreur1, codeErreur2: texteErreur2, ...} +}; + + +/* [2] AJOUT D'UN ELEMENT DANS LA PILE +=========================================================*/ +/* +* +* @stack Pile dans laquelle on veut ajouter un élément +* @element Elément que l'on veut ajouter à la pile +* @emptyValues Liste des valeurs à considérer comme 'vides' +* +*/ +NotificationClass.prototype.pushStack = function(stack, element, emptyValues){ + /* (0) Vérification des INPUT + ---------------------------------------------------------*/ + /* (1) Vérification de @stack */ + if( !(stack instanceof Array) ) + return null; + /* (2) Vérification de @emptyValues */ + if( !(emptyValues instanceof Array) ) + return null; + + + /* (1) On cherche la première valeur vide dans @stack + ---------------------------------------------------------*/ + var index = -1; + for( var i in stack ) + if( emptyValues.indexOf(stack[i]) > -1 ){ + index = i; + break; + } + + /* (2) Insertion et résultat + ---------------------------------------------------------*/ + /* (1) Si on a rien trouvé, on fait un push normal */ + if( index == -1 ) + return stack.push(element) - 1; + + /* (2) Si on a trouvé, on enregistre @element et on renvoie @index */ + stack[index] = element; + return index; + +}; + + + +/* [3] SUPPRESSION D'UNE NOTIFICATION +=========================================================*/ +/* +* +* @id Id de la notification dans la pile +* +*/ +NotificationClass.prototype.hide = function(id){ + /* (0) Vérification de @id */ + if( isNaN(id) ) + return false; + + id = parseInt(id); + + /* (1) Suppression de l'élément */ + this.container.removeChild( this.stack[id].element ); + + /* (2) On supprime la notification de la pile */ + this.stack[id] = null; +}; + + +/* [4] AFFICHAGE D'UNE NOTIFICATION +=========================================================*/ +/* +* +* @type Type de notification parmi 'warning', 'info', 'success', 'error' +* @title Titre de la notification +* @message Message de la notification +* @timeout Temps d'apparition de la notification en ms (millisecondes) + 2 * 500ms (fadeIn+fadeOut) +* +*/ +NotificationClass.prototype.show = function(type, title, message, timeout){ + /* (0) Vérification des INPUT + ---------------------------------------------------------*/ + /* (1) Vérification de @type */ + type = this.types.indexOf(type) > -1 ? type : this.types[0]; + + /* (2) Vérification de @title */ + title = typeof title == 'string' ? title : ''; + + /* (3) Vérification de @message */ + message = typeof message.toString() == 'string' ? message : '...'; + + // On cherche s'il y a une occurence dans le dictionnaire + if( this.errorCodes[message] != null ) + message = this.errorCodes[message]; + + /* (4) Vérification de @timeout */ + timeout = typeof timeout == 'number' ? timeout : this.defaultTimeout; + + /* (1) Construction de l'élément + ---------------------------------------------------------*/ + /* (1) Création du set de données */ + var stackItem = { + element: document.createElement('div'), + type: type, + title: title, + message: message, + timeout: null + }; + + /* (2) Construction de l'élément */ + stackItem.element.className = 'notification-element'; + stackItem.element.setAttribute('data-'+type, ''); + stackItem.element.innerHTML = '

'+title+': '+message+'

'; + + /* (2) Ajout à la pile et au DOM + ---------------------------------------------------------*/ + this.container.appendChild(stackItem.element); + var id = this.pushStack( this.stack, stackItem, [null] ); + stackItem.element.id = id; + + /* (3) Gestion du temps d'apparition + ---------------------------------------------------------*/ + var ptr = this; + + // {1} fadeIn START // + stackItem.element.className = 'notification-element notification-visible'; + + // {2} fadeOut START // + setTimeout(function(){ + stackItem.element.className = 'notification-element'; + }, 500+timeout); + + // {3} fadeOut STOP + animation STOP // + stackItem.timeout = setTimeout(function(){ + ptr.hide(id); + }, 500+timeout+500); + + + /* (4) Gestion du clic qui ferme la notification + ---------------------------------------------------------*/ + stackItem.element.addEventListener('click', function(e){ + ptr.hide(id); + }, false); + + + /* (5) On retourne l'élément + ---------------------------------------------------------*/ + return stackItem.element; + +}; + + +/* [6] 'Raccourcis' d'accès +=========================================================*/ +NotificationClass.prototype.warning = function(title, message, timeout){ return this.show('warning', title, message, timeout); }; +NotificationClass.prototype.info = function(title, message, timeout){ return this.show('info', title, message, timeout); }; +NotificationClass.prototype.success = function(title, message, timeout){ return this.show('success', title, message, timeout); }; +NotificationClass.prototype.error = function(title, message, timeout){ return this.show('error', title, message, timeout); }; diff --git a/js/lib/reset-min.js b/js/lib/reset-min.js index 6f1db48..d6e161e 100644 --- a/js/lib/reset-min.js +++ b/js/lib/reset-min.js @@ -1,4 +1,4 @@ function $(a){return document.querySelector(a)}function $$(a){return document.querySelectorAll(a)}Element.prototype.getData=function(a){return"undefined"==typeof this.dataset?!1:this.dataset.hasOwnProperty(a)?this.dataset[a]:!1};Element.prototype.addClass=function(a){var b=this.className.split(" ");-1 EXCLUSION, SIN * * @A Premier Objet * @B Second Objet +* @ignore Tableau des clés à ignorer * * @return diff Tableau contenant les clés des valeurs différentes (uniquement les clés communes et non NULLes) * */ -function diff(A, B){ +function diff(A, B, ignore){ var dKeys = []; for( var key in A ){ // Si A[key] ou B[key] est NULL, on ne compare pas - if( B[key] == null || A[key] == null ) + if( B[key] == null || A[key] == null || ignore instanceof Array && ignore.indexOf(key) > -1 ) continue; diff --git a/manager/Database.php b/manager/Database.php index 74b921f..4736f8f 100755 --- a/manager/Database.php +++ b/manager/Database.php @@ -48,7 +48,7 @@ if( self::$instance == null || self::$error != ManagerError::Success ){ // Si aucune instance existante OU erreur de connection // chargement de la configuration du server SQL - if( !isset($_SERVER['HTTP_HOST']) || isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'socioview' ) + if( !checkdnsrr($_SERVER['SERVER_NAME'], 'NS') ) $conf = json_decode( ResourceDispatcher::getResource(self::$config_path['local']), true ); else $conf = json_decode( ResourceDispatcher::getResource(self::$config_path['remote']), true ); diff --git a/manager/ManagerError.php b/manager/ManagerError.php index 5a75e2f..a92d335 100755 --- a/manager/ManagerError.php +++ b/manager/ManagerError.php @@ -110,7 +110,7 @@ case self::UploadError: return "Une erreur d'upload est survenue."; break; case self::FormatError: return "Le fichier n'est pas au bon format."; break; - // default: return "Erreur inconnue..."; break; + default: return "Description d'erreur inconnue..."; break; } // Erreur inconnue diff --git a/manager/autoloader.php b/manager/autoloader.php index 4f4ba2a..aa43352 100755 --- a/manager/autoloader.php +++ b/manager/autoloader.php @@ -1,12 +1,36 @@ 0; } diff --git a/manager/module/call_log.php b/manager/module/call_log.php index f373d08..05e40fd 100644 --- a/manager/module/call_log.php +++ b/manager/module/call_log.php @@ -74,6 +74,7 @@ /* (2) On enregistre le contact dans l'annuaire s'il y est pas déjà */ if( !isset($phone_directory[$number]) ) $phone_directory[$number] = array( + 'name' => strlen($log['Name']) ? (string) $log['Name'] : null, 'calls' => 0, 'sms' => 0 @@ -89,8 +90,9 @@ /* (5) On complète le log */ $phone_log = array( - 'source' => ($log['Direction']=='INCOMING') ? $number : Database::formatNumber($phone_number), - 'target' => ($log['Direction']=='INCOMING') ? Database::formatNumber($phone_number) : $number, + 'source' => ($log['Direction']!='OUTCOMING') ? $number : Database::formatNumber($phone_number), + 'target' => ($log['Direction']!='OUTCOMING') ? Database::formatNumber($phone_number) : $number, + 'missed' => $log['Direction']==['MISSED'], 'type' => strtolower($log['Type']), 'date' => strtotime($log['Date']), 'duration' => (int) $log['Duration'] @@ -175,136 +177,6 @@ - - - - - - - - - - - - - - - - /* DESERIALISATION D'UN JOURNAL D'APPEL - * - * @content Le contenu du journal d'appel a deserialiser - * - * @return sms Retourne un tableau associatif contenant les sms triees - * @return call Retourne un tableau associatif contenant les appels triees - * @return contact Retourne un tableau associatif contenant les correspondances numero/nom de contact - * - */ - private static function unserializeOld($params){ - $filecontent = null; - extract($params); - - /* [2] On recupere le xml - =========================================================*/ - $xml = simplexml_load_string($filecontent); - - // Si le format XML n'est pas bon, on retourne une erreur - if( $xml === false ) - return array('ModuleError' => ManagerError::ParsingFailed); - - return array( 'ModuleError' => ManagerError::Success, 'xml' => $xml ); - - - /* [3] Initialisation des variables - =========================================================*/ - $names = array(); // Contiendra les correspondances numero/contact - $msms = array(); // Contiendra les personnes utilisant SMS/MMS - $call = array(); // Contiendra les personnes utilisant CALL - - - /* [4] On traite les donnees pour chaque champ du xml - =========================================================*/ - foreach($xml->Item as $log){ - // On recupere le numero en string - $num = (string) $log['Number']; - - // On formatte le numero - if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) ) - $num = '0'.$m[1]; - // Si pas un numero, on sort de la boucle - else - continue; - - - /* (1) Si le type est MMS ou SMS */ - if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){ - - // Si la personne n'est pas referencee, on l'ajoute - // Sinon on incremente son nombre d'apparition - if( isset($msms[$num]) ) - $msms[$num]+= 1; - else - $msms[$num] = 1; - - // On enregistre le nom si c'est pas fait - if( !isset($names[$num]) ) $names[$num] = $log['Name']; - - - /* (2) Si le type est PHONE */ - }else if( $log['Type'] == 'PHONE' ){ - - // Si la personne n'est pas referencee, on l'ajoute - // Sinon on incremente son nombre d'apparition - if( isset($call[$num]) ) - $call[$num]+= 1; - else - $call[$num] = 1; - - // On enregistre le nom si c'est pas fait - if( !isset($names[$num]) ) $names[$num] = $log['Name']; - - } - } - - - /* [4] On trie par nombre d'interactions (sms/appel) - =========================================================*/ - $tmp = $msms; - /* (1) Tri des SMS/MMS */ - $sortedMSMS = array(); - // On fait le tri pour les 10 premiers elements sauf s'il en a moins - for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ - $maxval = max($tmp); - $maxkey = array_search($maxval, $tmp); - array_push( $sortedMSMS, array($maxkey, $maxval) ); - unset($tmp[$maxkey]); - } - - - $tmp = $call; - /* (2) Tri des appels */ - $sortedCALL = array(); - // On fait le tri pour les 10 premiers elements sauf s'il en a moins - for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ - $maxval = max($tmp); - $maxkey = array_search($maxval, $tmp); - array_push( $sortedCALL, array($maxkey, $maxval) ); - unset($tmp[$maxkey]); - } - - - /* [5] Gestion du retour - =========================================================*/ - return array( - 'ModuleError' => ManagerError::Success, - 'sms' => $sortedMSMS, - 'call' => $sortedCALL, - 'contact' => $names - ); - } - - - - } diff --git a/manager/module/input.php b/manager/module/input.php index 2b7c36e..721a054 100644 --- a/manager/module/input.php +++ b/manager/module/input.php @@ -10,7 +10,6 @@ class input{ - /* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE TÉLÉPHONIQUE * * @subject Tableau contenant les données du sujet @@ -46,17 +45,141 @@ $subject_id = $create_subject_response->get('id_subject'); - /* [2] Pour chaque contact, on crée le sujet + les relations + + /* [2] On extrait les contacts des 2 top 10 (sans duplication) =========================================================*/ - // TODO : Here !! + $closest = array(); + + foreach($fiches as $i=>$fiche){ + /* (1) Si le contact n'est pas déja enregistré, on l'enregistre */ + if( !array_key_exists($fiche['contact'], $closest) ) + $closest[ $fiche['contact'] ] = array(); + + /* (2) Si c'est un lien par CALL, on l'ajoute */ + if( $i < 10 ) + array_push( $closest[ $fiche['contact'] ], 'CALL' ); + /* (3) Si c'est un lien par SMS, on l'ajoute */ + else + array_push( $closest[ $fiche['contact'] ], 'SMS' ); + } - /* [2] Gestion du retour + /* [3] On crée les contacts les plus proches + =========================================================*/ + $closest_id = array(); + // Pour chacun des top 10*2 plus proches + foreach($closest as $contact=>$relations){ + + /* (1) On rédige la requête de création de sujet*/ + $create_contact_request = new ModuleRequest('subject/create', array( + 'username' => $contacts[$contact]['username'], + 'firstname' => $contacts[$contact]['firstname'], + 'lastname' => $contacts[$contact]['lastname'], + 'number' => $contacts[$contact]['number'] + )); + + /* (2) On exécute la requête (création) */ + $create_contact_response = $create_contact_request->dispatch(); + + /* (3) Gestion de l'erreur, si erreur de création */ + if( $create_contact_response->error != ManagerError::Success ) + return array( 'ModuleError' => $create_contact_response->error ); + + /* (4) On récupère l'id du sujet */ + $closest_id[$contact] = $create_contact_response->get('id_subject'); + + + + /* [4] On crée les relations avec le sujet de l'enquête + =========================================================*/ + /* (1) Relation de type _CALL_ */ + if( in_array('CALL', $relations) ){ + $call_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_CALL_' )); + + $call_rel_response = $call_rel_request->answer(); + + // Si erreur de création de relation + if( $call_rel_response === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + } + + /* (2) Relation de type _SMS_ */ + if( in_array('SMS', $relations) ){ + $sms_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_SMS_' )); + + $sms_rel_response = $sms_rel_request->answer(); + + // Si erreur de création de relation + if( $sms_rel_response === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + } + + } + + + /* [4] Ajout des relations de la matrice + =========================================================*/ + // Pour chacun des top 10*2 plus proches + foreach($closest as $A=>$rels){ + + // Pour chaque relation avec le contact actuel (s'il y en a) + if( isset($matrice[$A]) && is_array($matrice[$A]) ){ + foreach($matrice[$A] as $B){ + $relation_request = new Repo('subject/link', array( $closest_id[$A], $closest_id[$B], '' )); + + $relation_response = $relation_request->answer(); + + // Si erreur de création de relation + if( $relation_response === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + } + } + + } + + + + + + + /* [5] Enregistrer les données des FICHES dans la base de données + =========================================================*/ + // TODO: Enregistrer les données des fiches dans la base de données + + + + + + /* [6] Enregistrement des mini-fiches dans un fichier '.json' + =========================================================*/ + $file = array(); + + /* (1) On enregistre les données des fiches */ + foreach($mini as $id=>$miniFiche){ + $data = array( + 'number' => $contacts[$id]['number'], + 'username' => $contacts[$id]['username'], + 'firstname' => $contacts[$id]['firstname'], + 'lastname' => $contacts[$id]['lastname'], + + // TODO: Finir l'implémentation du fichier XML contenant les données des MINI+des CONTACTS + ); + } + + /* (2) On enregistre les données des mini-fiches */ + + + /* [n] Gestion du retour =========================================================*/ return array( 'ModuleError' => ManagerError::Success, - 'subject_id' => $subject_id + 'subject_id' => $subject_id, + 'contacts' => $closest, + 'created' => $closest_id ); } diff --git a/manager/module/subject.php b/manager/module/subject.php index ce94c1a..795dc99 100644 --- a/manager/module/subject.php +++ b/manager/module/subject.php @@ -126,6 +126,10 @@ $remove = new Repo('subject/remove', array($id_subject)); $remove_status = $remove->answer(); + // Si erreur lors de la requête + if( $remove_status === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + /* [3] On verifie que le sujet est bien supprime =========================================================*/ diff --git a/manager/module/upload.php b/manager/module/upload.php index 383530e..2c97a10 100644 --- a/manager/module/upload.php +++ b/manager/module/upload.php @@ -279,10 +279,10 @@ /* (5) Vérification des mini-fiches */ foreach($json['mini'] as $mini){ $checkMini = isset($mini['uid']) && is_numeric($mini['uid']); - $checkMini = $checkMini && isset($mini['sexe']) && is_array($mini['sexe']); + $checkMini = $checkMini && isset($mini['sexe']) && is_string($mini['sexe']); $checkMini = $checkMini && isset($mini['age']) && is_string($mini['age']); $checkMini = $checkMini && isset($mini['studies']) && is_string($mini['studies']); - $checkMini = $checkMini && isset($mini['loc']) && is_array($mini['loc']); + $checkMini = $checkMini && isset($mini['loc']) && is_numeric($mini['loc']); // Si erreur des attributs des mini-fiches incorrects ou manquants if( !$checkMini ) @@ -295,17 +295,18 @@ foreach($json['fiches'] as $fiches){ $checkFiche = isset($fiches['uid']) && is_numeric($fiches['uid']); $checkFiche = $checkFiche && isset($fiches['contact']) && is_numeric($fiches['contact']); - $checkFiche = $checkFiche && isset($fiches['sexe']) && is_array($fiches['sexe']); + $checkFiche = $checkFiche && isset($fiches['sexe']) && is_string($fiches['sexe']); $checkFiche = $checkFiche && isset($fiches['age']) && is_string($fiches['age']); $checkFiche = $checkFiche && isset($fiches['job']) && is_string($fiches['job']); - $checkFiche = $checkFiche && isset($fiches['loc']) && is_array($fiches['loc']); + $checkFiche = $checkFiche && isset($fiches['loc']) && is_numeric($fiches['loc']); $checkFiche = $checkFiche && isset($fiches['studies']) && is_string($fiches['studies']); - $checkFiche = $checkFiche && isset($fiches['famsit']) && is_array($fiches['famsit']); - $checkFiche = $checkFiche && isset($fiches['reltype']) && is_array($fiches['reltype']); + $checkFiche = $checkFiche && isset($fiches['famsit']) && is_numeric($fiches['famsit']); + $checkFiche = $checkFiche && isset($fiches['reltype']) && is_numeric($fiches['reltype']); $checkFiche = $checkFiche && isset($fiches['reltypeSpecial']) && is_string($fiches['reltypeSpecial']); $checkFiche = $checkFiche && isset($fiches['city']) && is_string($fiches['city']); + $checkFiche = $checkFiche && isset($fiches['cp']) && is_string($fiches['cp']); $checkFiche = $checkFiche && isset($fiches['duration']) && is_array($fiches['duration']); - $checkFiche = $checkFiche && isset($fiches['context']) && is_array($fiches['context']); + $checkFiche = $checkFiche && isset($fiches['context']) && is_numeric($fiches['context']); $checkFiche = $checkFiche && isset($fiches['contextSpecial']) && is_array($fiches['contextSpecial']); $checkFiche = $checkFiche && isset($fiches['freq']) && is_array($fiches['freq']); $checkFiche = $checkFiche && isset($fiches['connect']) && is_array($fiches['connect']); diff --git a/manager/repo/category.php b/manager/repo/category.php new file mode 100644 index 0000000..3a21c2f --- /dev/null +++ b/manager/repo/category.php @@ -0,0 +1,62 @@ + Nom de la catégorie + * + * @return id Retourne l'id de la catégorie crée, FALSE si erreur + * + */ + public static function getOrCreate($intitule){ + /* [0] Vérification des INPUT + =========================================================*/ + // Si erreur de type de paramètre, on retourne FALSE + if( !Database::check('varchar(0,40)', $intitule) ) + return false; + + /* [1] Vérification qu'aucune n'a cet intitulé + =========================================================*/ + $existing = self::getByIntitule($intitule); + + /* (1) Si existe déja avec cet intitulé, on récupère l'id */ + if( is_array($existing) && count($existing) > 0 ) + return $existing[0]['idCategorie']; + + + /* [2] Création si l'intitulé n'est pas déja utilisé + =========================================================*/ + $create_r = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule) + VALUES(DEFAULT, :intitule)"); + $create_r_status = $create_r->execute( array( ':intitule' => $intitule ) ); + + // Si erreur de requête + if( $create_r_status === false ) + return false; + + + /* [3] On vérifie et renvoie l'id + =========================================================*/ + $created = self::getByIntitule($intitule); + + /* (1) Si existe déja avec cet intitulé, on récupère l'id */ + if( is_array($created) && count($created) > 0 ) + return $created[0]['idCategorie']; + + // Sinon, c'est qu'il y a une erreur + return false; + } + + + } + + +?> diff --git a/manager/repo/parentRepo.php b/manager/repo/parentRepo.php index 01fcf5a..b3e1558 100644 --- a/manager/repo/parentRepo.php +++ b/manager/repo/parentRepo.php @@ -45,6 +45,7 @@ array_push($table_columns, $column['Field']); } + /* [3] On vérifie que la valeur après 'get' est dans $table_columns =========================================================*/ $columnName = strtolower($matches[1]); @@ -56,15 +57,25 @@ // Si ni 'getAll' ni 'getSomething' -> erreur if( !$getById && !$getAll && !$getSomething ) return false; + /* [4] On rédige la requête =========================================================*/ $getRequestString = 'SELECT * FROM '.static::table_name(); // Si c'est 'getById', on ajoute une condition (clé primaire) if( $getById ){ - $getRequestString .= ' WHERE '.$table_columns['_PRIMARY_'][0].' = :value'; - // TODO: Gestion d'une clé primaire composée (plusieurs arguments) + // S'il manque un paramètre, on retourne une erreur + if( count($args) < count($table_columns['_PRIMARY_']) ) + return false; + + // Pour chaque clé primaire (si elle est composée) + foreach($table_columns['_PRIMARY_'] as $i=>$primary_column) + // Première ligne + if( $i == 0 ) $getRequestString .= ' WHERE '.$table_columns['_PRIMARY_'][$i].' = :primary'.$i; + // Lignes suivantes + else $getRequestString .= ' AND '.$table_columns['_PRIMARY_'][$i].' = :primary'.$i; + // Si c'est 'getSomething', on ajoute une condition }else if( $getSomething ) @@ -75,12 +86,24 @@ // On prépare la requête $getRequest = Database::getPDO()->prepare($getRequestString); + /* [5] On exécute la requête =========================================================*/ + // Si 'getById', on compose la clé primaire + if( $getById ){ + + $pdo_vars = array(); + + foreach($table_columns['_PRIMARY_'] as $i=>$primary_column) + $pdo_vars[':primary'.$i] = $args[$i]; + + $getRequest->execute( $pdo_vars ); + // Si 'getSomething', on ajoute le champ - $getRequest->execute(array( - ':value' => ($getSomething||$getById) ? $args[0] : null - )); + }else + $getRequest->execute(array( + ':value' => ($getSomething||$getById) ? $args[0] : null + )); /* [6] On récupère le résultat =========================================================*/ diff --git a/manager/repo/relation.php b/manager/repo/relation.php new file mode 100644 index 0000000..1abd3f2 --- /dev/null +++ b/manager/repo/relation.php @@ -0,0 +1,80 @@ + UID du sujet A + * @B UID du sujet B + * @category UID de la categorie en question + * + * @return status On retourne TRUE si tout s'est bien passé, sinon FALSE si erreur + * + */ + public static function create($A, $B, $category){ + /* [0] Vérification des INPUT + =========================================================*/ + $checkInput = Database::check('id', $A); + $checkInput = $checkInput && Database::check('id', $B); + $checkInput = $checkInput && Database::check('id', $category); + + // Si erreur de type de paramètre, on retourne FALSE + if( !$checkInput ) + return false; + + + + /* [1] On vérifie que la relation n'existe pas déja + =========================================================*/ + $exists = self::getById($A, $B, $category); + + // Si la relation existe, on retourne TRUE + if( is_array($exists) && count($exists) > 0 ) + return true; + + + /* [2] Création de la relation + =========================================================*/ + $create_relation = Database::getPDO()->prepare("INSERT INTO relations(idPersonneA, idPersonneB, idCategorie) + VALUES(:A, :B, :category)"); + $create_rel_status = $create_relation->execute( array( + ':A' => $A, + ':B' => $B, + ':category' => $category + )); + + + // Si erreur de requête -> FALSE + if( $create_rel_status === false ) + return false; + + + /* [3] On vérifie que la relation est crée + =========================================================*/ + $get_relation = self::getById($A, $B, $category); + + // Si la relation n'existe pas, on renvoie une erreur + if( !is_array($get_relation) || is_array($get_relation) && count($get_relation) == 0 ) + return false; + + + // Si tout s'est bien passé, on retourne TRUE + return true; + } + + + public static function remove(){ + + } + + } + + +?> diff --git a/manager/repo/subject.php b/manager/repo/subject.php index 61fa77d..02f2693 100644 --- a/manager/repo/subject.php +++ b/manager/repo/subject.php @@ -3,6 +3,7 @@ namespace manager\repo; use \manager\Database; use \manager\sessionManager; + use \manager\Repo; class subject extends parentRepo{ @@ -24,7 +25,11 @@ $getSubject = Database::getPDO()->prepare("SELECT idSujet, pseudo, prenom, nom, id_facebook, telephone FROM sujets WHERE idSujet = :id_subject"); - $getSubject->execute(array( ':id_subject' => $id_subject )); + $get_status = $getSubject->execute(array( ':id_subject' => $id_subject )); + + // Si erreur de requête + if( $get_status === false ) + return false; /* [2] On recupere le resultat de la requete @@ -157,12 +162,64 @@ * @id_subject UID du sujet en question * */ - // TODO: Finir l'implémentation public static function remove($id_subject){ + /* [0] Vérification des INPUT + =========================================================*/ + if( !Database::check('id', $id_subject) ) + return false; + /* [1] On effectue la suppression =========================================================*/ - $getSubject = Database::getPDO()->prepare("DELETE FROM subjects WHERE id_subject = :id_subject"); - $getSubject->execute(array( ':id_subject' => $id_subject )); + $delSubject = Database::getPDO()->prepare("DELETE FROM sujets WHERE idSujet = :id_subject"); + return $delSubject->execute(array( ':id_subject' => $id_subject )); + } + + + + + + + /* CREER UNE RELATION ENTRE 2 SUJETS + * + * @A UID du premier sujet + * @B UID du second sujet + * @category Intitulé du type de relation + * + * @return id_relation Renvoie l'id de la relation crée, sinon FALSE si erreur + * + */ + public static function link($A, $B, $category){ + /* [0] Vérification des INPUT + =========================================================*/ + $checkInput = Database::check('id', $A); + $checkInput = $checkInput && Database::check('id', $B); + $checkInput = $checkInput && Database::check('varchar(0,40)', $category); + + // Si erreur de type de paramètre, on retourne FALSE + if( !$checkInput ) + return false; + + /* [1] On récupère ou crée la catégorie + =========================================================*/ + $category_id_req = new Repo('category/getOrCreate', array($category)); + $category_id = $category_id_req->answer(); + + // Si erreur -> FALSE + if( $category_id === false ) + return false; + + + /* [2] On crée la relation + =========================================================*/ + $relation_req = new Repo('relation/create', array($A, $B, $category_id)); + $relation = $relation_req->answer(); + + // Si erreur de création -> FALSE + if( $relation === false ) + return false; + + // Si tout s'est bien passé, on retourne TRUE + return true; } } diff --git a/manager/server.php b/manager/server.php new file mode 100644 index 0000000..fc032c8 --- /dev/null +++ b/manager/server.php @@ -0,0 +1,22 @@ + diff --git a/src/upload/.htaccess b/src/upload/.htaccess new file mode 100644 index 0000000..93169e4 --- /dev/null +++ b/src/upload/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Deny from all diff --git a/src/upload/local_data/xdrm.json b/src/upload/local_data/xdrm.json index d5ef460..79ee533 100755 --- a/src/upload/local_data/xdrm.json +++ b/src/upload/local_data/xdrm.json @@ -1 +1,3063 @@ -{"subject":{"number":"06 69 05 19 10","username":"Adri","firstname":"","lastname":""},"contacts":{"0":{"uid":0,"number":"0627557790","username":"","firstname":"Cagnard","lastname":"Sophie","call":0,"sms":5,"countcall":73,"countsms":29,"hash":1169651017},"1":{"uid":1,"number":"0603900774","username":"","firstname":"Maman","lastname":"","call":1,"sms":-1,"countcall":72,"countsms":3,"hash":1380911229},"2":{"uid":2,"number":"0699884787","username":"","firstname":"Celia","lastname":"Gardent","call":2,"sms":9,"countcall":17,"countsms":20,"hash":2926012700},"3":{"uid":3,"number":"0607516488","username":"","firstname":"Morgane","lastname":"P1","call":3,"sms":6,"countcall":16,"countsms":29,"hash":190637649},"4":{"uid":4,"number":"0561866655","username":"","firstname":"Colo","lastname":"Toulouse","call":4,"sms":-1,"countcall":12,"countsms":0,"hash":1902172577},"5":{"uid":5,"number":"0633165045","username":"","firstname":"Camille","lastname":"Coulon","call":5,"sms":-1,"countcall":11,"countsms":0,"hash":345811932},"6":{"uid":6,"number":"0646412722","username":"","firstname":"Jeremy","lastname":"Kronan","call":6,"sms":0,"countcall":10,"countsms":51,"hash":820785184},"7":{"uid":7,"number":"0647926854","username":"","firstname":"Lucie","lastname":"Goeland","call":7,"sms":2,"countcall":10,"countsms":48,"hash":3099329093},"8":{"uid":8,"number":"0760076481","username":"","firstname":"Jef","lastname":"(Sncf)","call":8,"sms":-1,"countcall":10,"countsms":0,"hash":3535510436},"9":{"uid":9,"number":"0663179592","username":"Mumu","firstname":"","lastname":"","call":9,"sms":-1,"countcall":10,"countsms":0,"hash":643265720},"10":{"uid":10,"number":"0632201278","username":"","firstname":"Estelle","lastname":"Telligo","countsms":50,"countcall":1,"call":-1,"sms":1},"11":{"uid":11,"number":"0667067699","username":"","firstname":"Mehdi","lastname":"Sadki","countsms":35,"countcall":4,"call":-1,"sms":3},"12":{"uid":12,"number":"0626453451","username":"","firstname":"Charlène","lastname":"Ifec","countsms":33,"countcall":6,"call":-1,"sms":4},"13":{"uid":13,"number":"0612361631","username":"","firstname":"Joël","lastname":"Petigax","countsms":22,"countcall":2,"call":-1,"sms":7},"14":{"uid":14,"number":"0623361699","username":"","firstname":"Florence","lastname":"Ifec","countsms":20,"countcall":6,"call":-1,"sms":8},"15":{"uid":15,"number":"711","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"16":{"uid":16,"number":"4321","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"17":{"uid":17,"number":"5395","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"18":{"uid":18,"number":"8012","username":"","firstname":"","lastname":"","countsms":10,"countcall":2,"call":-1,"sms":-1},"19":{"uid":19,"number":"20193","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"20":{"uid":20,"number":"36117","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"21":{"uid":21,"number":"36121","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"22":{"uid":22,"number":"38100","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"23":{"uid":23,"number":"0664778618","username":"+33664778618","firstname":"","lastname":"","countsms":18,"countcall":4,"call":-1,"sms":-1},"24":{"uid":24,"number":"0648687718","username":"","firstname":"Zazou","lastname":"Ifec","countsms":11,"countcall":9,"call":-1,"sms":-1},"25":{"uid":25,"number":"0625093632","username":"","firstname":"Clemence","lastname":"Hupays","countsms":9,"countcall":3,"call":-1,"sms":-1},"26":{"uid":26,"number":"0642461260","username":"","firstname":"","lastname":"","countsms":2,"countcall":0,"call":-1,"sms":-1},"27":{"uid":27,"number":"0670430349","username":"","firstname":"Magali","lastname":"Greze","countsms":7,"countcall":3,"call":-1,"sms":-1},"28":{"uid":28,"number":"0620020621","username":"Annie","firstname":"","lastname":"","countsms":4,"countcall":0,"call":-1,"sms":-1},"29":{"uid":29,"number":"0683940776","username":"","firstname":"Maxime","lastname":"Claeys","countsms":10,"countcall":5,"call":-1,"sms":-1},"30":{"uid":30,"number":"0650535803","username":"","firstname":"Nadege","lastname":"Cattenoz","countsms":6,"countcall":2,"call":-1,"sms":-1},"31":{"uid":31,"number":"0676010387","username":"","firstname":"Benedicte","lastname":"Ifec","countsms":3,"countcall":2,"call":-1,"sms":-1},"32":{"uid":32,"number":"0677703097","username":"","firstname":"Chloe","lastname":"Abry","countsms":3,"countcall":4,"call":-1,"sms":-1},"33":{"uid":33,"number":"0670218752","username":"","firstname":"Flore","lastname":"Vecten","countsms":2,"countcall":0,"call":-1,"sms":-1},"34":{"uid":34,"number":"0643577104","username":"Charline","firstname":"","lastname":"","countsms":4,"countcall":4,"call":-1,"sms":-1},"35":{"uid":35,"number":"0695745757","username":"Mina","firstname":"","lastname":"","countsms":8,"countcall":0,"call":-1,"sms":-1},"36":{"uid":36,"number":"0627768064","username":"","firstname":"","lastname":"","countsms":5,"countcall":4,"call":-1,"sms":-1},"37":{"uid":37,"number":"0673843454","username":"","firstname":"Mathieu","lastname":"Berzaim","countsms":13,"countcall":4,"call":-1,"sms":-1},"38":{"uid":38,"number":"0662918113","username":"","firstname":"Quentin","lastname":"De Chaignon","countsms":11,"countcall":2,"call":-1,"sms":-1},"39":{"uid":39,"number":"0667863187","username":"","firstname":"","lastname":"","countsms":0,"countcall":4,"call":-1,"sms":-1},"40":{"uid":40,"number":"0628037107","username":"","firstname":"Marine","lastname":"Desc","countsms":4,"countcall":0,"call":-1,"sms":-1},"41":{"uid":41,"number":"0561223307","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"42":{"uid":42,"number":"0681637356","username":"Chapit","firstname":"","lastname":"","countsms":7,"countcall":0,"call":-1,"sms":-1},"43":{"uid":43,"number":"0681272316","username":"","firstname":"","lastname":"","countsms":1,"countcall":0,"call":-1,"sms":-1},"44":{"uid":44,"number":"0567738243","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"45":{"uid":45,"number":"0698130106","username":"Debeaumont","firstname":"","lastname":"","countsms":13,"countcall":0,"call":-1,"sms":-1},"46":{"uid":46,"number":"0684014351","username":"","firstname":"Lucile","lastname":"Maury","countsms":2,"countcall":0,"call":-1,"sms":-1},"47":{"uid":47,"number":"0685422405","username":"","firstname":"Clement","lastname":"Siegfried","countsms":0,"countcall":7,"call":-1,"sms":-1},"48":{"uid":48,"number":"0322765057","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"49":{"uid":49,"number":"0680341361","username":"Eloa","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"50":{"uid":50,"number":"0621681633","username":"Fanny","firstname":"","lastname":"","countsms":0,"countcall":5,"call":-1,"sms":-1},"51":{"uid":51,"number":"0630023336","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"52":{"uid":52,"number":"0663248738","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"53":{"uid":53,"number":"0689795387","username":"","firstname":"Fouquet","lastname":"Charlotte ( Sncf)","countsms":0,"countcall":8,"call":-1,"sms":-1},"54":{"uid":54,"number":"0621915797","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"55":{"uid":55,"number":"0478303590","username":"","firstname":"","lastname":"","countsms":0,"countcall":3,"call":-1,"sms":-1},"56":{"uid":56,"number":"0646642714","username":"","firstname":"","lastname":"","countsms":0,"countcall":4,"call":-1,"sms":-1},"57":{"uid":57,"number":"0153422467","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"58":{"uid":58,"number":"0627923836","username":"","firstname":"Alexandre","lastname":"(Sncf)","countsms":0,"countcall":1,"call":-1,"sms":-1},"59":{"uid":59,"number":"0652784553","username":"","firstname":"Marc","lastname":"(Sncf)","countsms":0,"countcall":4,"call":-1,"sms":-1},"60":{"uid":60,"number":"0608484023","username":"","firstname":"Alain","lastname":"Seguy Portable","countsms":0,"countcall":2,"call":-1,"sms":-1},"61":{"uid":61,"number":"Numéroprivé","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"62":{"uid":62,"number":"0681604489","username":"","firstname":"Johanna","lastname":"Benson faure","countsms":1,"countcall":2,"call":-1,"sms":-1},"63":{"uid":63,"number":"0236164994","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"64":{"uid":64,"number":"0777965641","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"65":{"uid":65,"number":"0561226764","username":"","firstname":"","lastname":"","countsms":0,"countcall":3,"call":-1,"sms":-1},"66":{"uid":66,"number":"0647864378","username":"","firstname":"Lucile","lastname":"Michoux","countsms":0,"countcall":1,"call":-1,"sms":-1},"67":{"uid":67,"number":"0664172165","username":"","firstname":"Maud","lastname":"Belambra","countsms":0,"countcall":2,"call":-1,"sms":-1},"68":{"uid":68,"number":"0322872431","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"69":{"uid":69,"number":"0679510351","username":"Mémé","firstname":"","lastname":"","countsms":0,"countcall":4,"call":-1,"sms":-1},"70":{"uid":70,"number":"0681862245","username":"","firstname":"Frederic","lastname":"Carpentier","countsms":0,"countcall":3,"call":-1,"sms":-1},"71":{"uid":71,"number":"0683689438","username":"","firstname":"Thomas","lastname":"Autissier","countsms":0,"countcall":1,"call":-1,"sms":-1},"72":{"uid":72,"number":"0561226962","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"73":{"uid":73,"number":"0659659882","username":"","firstname":"Christelle","lastname":"Choucoutou","countsms":0,"countcall":2,"call":-1,"sms":-1},"74":{"uid":74,"number":"0636828291","username":"","firstname":"Tim","lastname":"Von Scheidt","countsms":0,"countcall":8,"call":-1,"sms":-1},"75":{"uid":75,"number":"0630586730","username":"","firstname":"Antoine","lastname":"Drouvin","countsms":0,"countcall":2,"call":-1,"sms":-1},"76":{"uid":76,"number":"0628334584","username":"","firstname":"Remi","lastname":"koenig","countsms":0,"countcall":2,"call":-1,"sms":-1},"77":{"uid":77,"number":"0178391000","username":"","firstname":"","lastname":"","countsms":0,"countcall":4,"call":-1,"sms":-1},"78":{"uid":78,"number":"0481076300","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"79":{"uid":79,"number":"0562277443","username":"","firstname":"","lastname":"","countsms":0,"countcall":3,"call":-1,"sms":-1},"80":{"uid":80,"number":"0668582139","username":"Sam","firstname":"","lastname":"","countsms":0,"countcall":6,"call":-1,"sms":-1},"81":{"uid":81,"number":"0677820719","username":"","firstname":"Ingrid","lastname":"Dumoulin","countsms":0,"countcall":6,"call":-1,"sms":-1},"82":{"uid":82,"number":"0607161895","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"83":{"uid":83,"number":"0178392000","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"84":{"uid":84,"number":"0683372480","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"85":{"uid":85,"number":"0561474321","username":"","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"86":{"uid":86,"number":"0616813929","username":"papa","firstname":"","lastname":"","countsms":0,"countcall":2,"call":-1,"sms":-1},"87":{"uid":87,"number":"0427192000","username":"","firstname":"","lastname":"","countsms":0,"countcall":4,"call":-1,"sms":-1},"88":{"uid":88,"number":"0164270257","username":"","firstname":"Alain","lastname":"Seguy","countsms":0,"countcall":4,"call":-1,"sms":-1},"89":{"uid":89,"number":"0661904073","username":"","firstname":"Agathe","lastname":"Charles","countsms":0,"countcall":3,"call":-1,"sms":-1},"90":{"uid":90,"number":"0323050986","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"91":{"uid":91,"number":"0682073273","username":"Bernard","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"92":{"uid":92,"number":"0611075350","username":"","firstname":"Dylan","lastname":"Petit","countsms":0,"countcall":1,"call":-1,"sms":-1},"93":{"uid":93,"number":"0649269036","username":"Mallau","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"94":{"uid":94,"number":"0562277441","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"95":{"uid":95,"number":"0641835135","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"96":{"uid":96,"number":"0674119525","username":"","firstname":"Antoine","lastname":"Mandet","countsms":0,"countcall":5,"call":-1,"sms":-1},"97":{"uid":97,"number":"0686371201","username":"Proprio","firstname":"","lastname":"","countsms":0,"countcall":3,"call":-1,"sms":-1},"98":{"uid":98,"number":"0627722881","username":"Adequat","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"99":{"uid":99,"number":"0322874813","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"100":{"uid":100,"number":"0652906702","username":"","firstname":"Benoit","lastname":"Klamber","countsms":0,"countcall":1,"call":-1,"sms":-1},"101":{"uid":101,"number":"0652292724","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"102":{"uid":102,"number":"0610087047","username":"Mariane","firstname":"","lastname":"","countsms":0,"countcall":3,"call":-1,"sms":-1},"103":{"uid":103,"number":"0534252783","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"104":{"uid":104,"number":"0660926108","username":"","firstname":"Anne","lastname":"Estelle","countsms":0,"countcall":4,"call":-1,"sms":-1},"105":{"uid":105,"number":"0668067194","username":"","firstname":"Hugo","lastname":"Valette","countsms":0,"countcall":1,"call":-1,"sms":-1},"106":{"uid":106,"number":"0685683305","username":"","firstname":"","lastname":"","countsms":0,"countcall":8,"call":-1,"sms":-1},"107":{"uid":107,"number":"0322870674","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"108":{"uid":108,"number":"0684923614","username":"","firstname":"Julien","lastname":"Peze","countsms":0,"countcall":3,"call":-1,"sms":-1},"109":{"uid":109,"number":"0631202761","username":"","firstname":"Thomas","lastname":"Hopquin","countsms":0,"countcall":1,"call":-1,"sms":-1},"110":{"uid":110,"number":"0236164943","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"111":{"uid":111,"number":"0761921571","username":"","firstname":"Pauline","lastname":"Cath","countsms":0,"countcall":2,"call":-1,"sms":-1},"112":{"uid":112,"number":"0684648921","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"113":{"uid":113,"number":"0681585322","username":"","firstname":"maxime","lastname":"colo thales","countsms":0,"countcall":5,"call":-1,"sms":-1},"114":{"uid":114,"number":"0673042646","username":"","firstname":"Denis","lastname":"Directeur Colo Italie","countsms":0,"countcall":6,"call":-1,"sms":-1},"115":{"uid":115,"number":"0678593540","username":"","firstname":"nicolas","lastname":"colo thales","countsms":0,"countcall":6,"call":-1,"sms":-1},"116":{"uid":116,"number":"+543285154356","username":"","firstname":"","lastname":"","countsms":0,"countcall":1,"call":-1,"sms":-1},"117":{"uid":117,"number":"0642468206","username":"","firstname":"Perrine","lastname":"Petit","countsms":0,"countcall":1,"call":-1,"sms":-1}},"mini":{"0":{"uid":0,"sexe":[{"value":"on","status":true},{"value":"on","status":false}],"age":".","studies":".","reltype":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"reltypeSpecial":"","loc":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"hash":3485754619,"valid":false},"1":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":1},"2":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":2},"3":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":3},"4":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":4},"5":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":5},"6":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":6},"7":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":7},"8":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":8},"9":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":9},"10":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":10},"11":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":11},"12":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":12},"13":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":13},"14":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":14},"15":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":15},"16":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":16},"17":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":17},"18":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":18},"19":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":19},"20":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":20},"21":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":21},"22":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":22},"23":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":23},"24":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":24},"25":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":25},"26":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":26},"27":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":27},"28":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":28},"29":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":29},"30":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":30},"31":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":31},"32":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":32},"33":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":33},"34":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":34},"35":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":35},"36":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":36},"37":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":37},"38":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":38},"39":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":39},"40":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":40},"41":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":41},"42":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":42},"43":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":43},"44":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":44},"45":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":45},"46":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":46},"47":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":47},"48":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":48},"49":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":49},"50":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":50},"51":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":51},"52":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":52},"53":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":53},"54":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":54},"55":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":55},"56":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":56},"57":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":57},"58":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":58},"59":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":59},"60":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":60},"61":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":61},"62":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":62},"63":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":63},"64":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":64},"65":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":65},"66":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":66},"67":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":67},"68":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":68},"69":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":69},"70":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":70},"71":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":71},"72":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":72},"73":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":73},"74":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":74},"75":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":75},"76":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":76},"77":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":77},"78":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":78},"79":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":79},"80":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":80},"81":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":81},"82":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":82},"83":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":83},"84":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":84},"85":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":85},"86":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":86},"87":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":87},"88":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":88},"89":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":89},"90":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":90},"91":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":91},"92":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":92},"93":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":93},"94":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":94},"95":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":95},"96":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":96},"97":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":97},"98":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":98},"99":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":99},"100":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":100},"101":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":101},"102":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":102},"103":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":103},"104":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":104},"105":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":105},"106":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":106},"107":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":107},"108":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":108},"109":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":109},"110":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":110},"111":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":111},"112":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":112},"113":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":113},"114":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":114},"115":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":115},"116":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":116},"117":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","studies":".","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","timestamp":0,"valid":false,"uid":117}},"fiches":{"0":{"contact":0,"uid":0,"sexe":[{"value":"on","status":true},{"value":"on","status":false}],"age":".","job":".","famsit":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false}],"studies":".","reltype":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"reltypeSpecial":"","city":"","loc":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"duration":["",""],"context":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"contextSpecial":["","",""],"freq":[[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}]],"connect":[[{"value":"on","status":false},{"value":"on","status":true}],[{"value":"on","status":false},{"value":"on","status":true}],[{"value":"on","status":false},{"value":"on","status":true}],[{"value":"on","status":false},{"value":"on","status":true}],[{"value":"on","status":false},{"value":"on","status":true}],[{"value":"on","status":false},{"value":"on","status":true}]],"connectSpecial":["",""],"hash":3373901681,"valid":false},"1":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":1,"contact":1},"2":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":2,"contact":2},"3":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":3,"contact":3},"4":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":4,"contact":4},"5":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":5,"contact":5},"6":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":6,"contact":6},"7":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":7,"contact":7},"8":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":8,"contact":8},"9":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":9,"contact":9},"10":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":10,"contact":6},"11":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":11,"contact":10},"12":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":12,"contact":7},"13":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":13,"contact":11},"14":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":14,"contact":12},"15":{"sexe":[{"value":"on","status":true},{"value":"on","status":false}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"reltypeSpecial":"","city":"","loc":[{"value":"on","status":true},{"value":"on","status":false},{"value":"on","status":false},{"value":"on","status":false}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":15,"contact":0},"16":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":16,"contact":3},"17":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":17,"contact":13},"18":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":18,"contact":14},"19":{"sexe":[{"status":true,"value":"on"},{"status":false,"value":"on"}],"age":".","job":".","famsit":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"studies":".","reltype":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"reltypeSpecial":"","city":"","loc":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"duration":["",""],"context":[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],"contextSpecial":["","",""],"freq":[[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}],[{"status":true,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"},{"status":false,"value":"on"}]],"connect":[[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}],[{"status":false,"value":"on"},{"status":true,"value":"on"}]],"connectSpecial":["",""],"timestamp":0,"valid":false,"uid":19,"contact":2}},"matrice":{"10":[0,2,4],"11":[1,3],"12":[0,2,4],"13":[1,3],"14":[0,2,4]}} \ No newline at end of file +{ + "subject": { + "number": "06 69 05 19 10", + "username": "Adri", + "firstname": "", + "lastname": "" + }, + "contacts": { + "0": { + "uid": 0, + "number": "0627557790", + "username": "", + "firstname": "Cagnard", + "lastname": "Sophie", + "call": 0, + "sms": 5, + "countcall": 73, + "countsms": 29, + "hash": 1169651017 + }, + "1": { + "uid": 1, + "number": "0603900774", + "username": "Maman", + "firstname": "", + "lastname": "", + "call": 1, + "sms": -1, + "countcall": 72, + "countsms": 3, + "hash": 3906768908 + }, + "2": { + "uid": 2, + "number": "0699884787", + "username": "", + "firstname": "Celia", + "lastname": "Gardent", + "call": 2, + "sms": 9, + "countcall": 17, + "countsms": 20, + "hash": 2926012700 + }, + "3": { + "uid": 3, + "number": "0607516488", + "username": "", + "firstname": "Morgane", + "lastname": "P1", + "call": 3, + "sms": 6, + "countcall": 16, + "countsms": 29, + "hash": 190637649 + }, + "4": { + "uid": 4, + "number": "0561866655", + "username": "", + "firstname": "Colo", + "lastname": "Toulouse", + "call": 4, + "sms": -1, + "countcall": 12, + "countsms": 0, + "hash": 1902172577 + }, + "5": { + "uid": 5, + "number": "0633165045", + "username": "", + "firstname": "Camille", + "lastname": "Coulon", + "call": 5, + "sms": -1, + "countcall": 11, + "countsms": 0, + "hash": 345811932 + }, + "6": { + "uid": 6, + "number": "0646412722", + "username": "", + "firstname": "Jeremy", + "lastname": "Kronan", + "call": 6, + "sms": 0, + "countcall": 10, + "countsms": 51, + "hash": 820785184 + }, + "7": { + "uid": 7, + "number": "0647926854", + "username": "", + "firstname": "Lucie", + "lastname": "Goeland", + "call": 7, + "sms": 2, + "countcall": 10, + "countsms": 48, + "hash": 3099329093 + }, + "8": { + "uid": 8, + "number": "0760076481", + "username": "", + "firstname": "Jef", + "lastname": "(Sncf)", + "call": 8, + "sms": -1, + "countcall": 10, + "countsms": 0, + "hash": 3535510436 + }, + "9": { + "uid": 9, + "number": "0663179592", + "username": "Mumu", + "firstname": "", + "lastname": "", + "call": 9, + "sms": -1, + "countcall": 10, + "countsms": 0, + "hash": 643265720 + }, + "10": { + "uid": 10, + "number": "0632201278", + "username": "", + "firstname": "Estelle", + "lastname": "Telligo", + "countsms": 50, + "countcall": 1, + "call": -1, + "sms": 1 + }, + "11": { + "uid": 11, + "number": "0667067699", + "username": "", + "firstname": "Mehdi", + "lastname": "Sadki", + "countsms": 35, + "countcall": 4, + "call": -1, + "sms": 3 + }, + "12": { + "uid": 12, + "number": "0626453451", + "username": "", + "firstname": "Charlène", + "lastname": "Ifec", + "countsms": 33, + "countcall": 6, + "call": -1, + "sms": 4 + }, + "13": { + "uid": 13, + "number": "0612361631", + "username": "", + "firstname": "Joël", + "lastname": "Petigax", + "countsms": 22, + "countcall": 2, + "call": -1, + "sms": 7 + }, + "14": { + "uid": 14, + "number": "0623361699", + "username": "", + "firstname": "Florence", + "lastname": "Ifec", + "countsms": 20, + "countcall": 6, + "call": -1, + "sms": 8 + }, + "15": { + "uid": 15, + "number": "711", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "16": { + "uid": 16, + "number": "4321", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "17": { + "uid": 17, + "number": "5395", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "18": { + "uid": 18, + "number": "8012", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 10, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "19": { + "uid": 19, + "number": "20193", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "20": { + "uid": 20, + "number": "36117", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "21": { + "uid": 21, + "number": "36121", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "22": { + "uid": 22, + "number": "38100", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "23": { + "uid": 23, + "number": "0664778618", + "username": "+33664778618", + "firstname": "", + "lastname": "", + "countsms": 18, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "24": { + "uid": 24, + "number": "0648687718", + "username": "", + "firstname": "Zazou", + "lastname": "Ifec", + "countsms": 11, + "countcall": 9, + "call": -1, + "sms": -1 + }, + "25": { + "uid": 25, + "number": "0625093632", + "username": "", + "firstname": "Clemence", + "lastname": "Hupays", + "countsms": 9, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "26": { + "uid": 26, + "number": "0642461260", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 2, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "27": { + "uid": 27, + "number": "0670430349", + "username": "", + "firstname": "Magali", + "lastname": "Greze", + "countsms": 7, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "28": { + "uid": 28, + "number": "0620020621", + "username": "Annie", + "firstname": "", + "lastname": "", + "countsms": 4, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "29": { + "uid": 29, + "number": "0683940776", + "username": "", + "firstname": "Maxime", + "lastname": "Claeys", + "countsms": 10, + "countcall": 5, + "call": -1, + "sms": -1 + }, + "30": { + "uid": 30, + "number": "0650535803", + "username": "", + "firstname": "Nadege", + "lastname": "Cattenoz", + "countsms": 6, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "31": { + "uid": 31, + "number": "0676010387", + "username": "", + "firstname": "Benedicte", + "lastname": "Ifec", + "countsms": 3, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "32": { + "uid": 32, + "number": "0677703097", + "username": "", + "firstname": "Chloe", + "lastname": "Abry", + "countsms": 3, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "33": { + "uid": 33, + "number": "0670218752", + "username": "", + "firstname": "Flore", + "lastname": "Vecten", + "countsms": 2, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "34": { + "uid": 34, + "number": "0643577104", + "username": "Charline", + "firstname": "", + "lastname": "", + "countsms": 4, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "35": { + "uid": 35, + "number": "0695745757", + "username": "Mina", + "firstname": "", + "lastname": "", + "countsms": 8, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "36": { + "uid": 36, + "number": "0627768064", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 5, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "37": { + "uid": 37, + "number": "0673843454", + "username": "", + "firstname": "Mathieu", + "lastname": "Berzaim", + "countsms": 13, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "38": { + "uid": 38, + "number": "0662918113", + "username": "", + "firstname": "Quentin", + "lastname": "De Chaignon", + "countsms": 11, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "39": { + "uid": 39, + "number": "0667863187", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "40": { + "uid": 40, + "number": "0628037107", + "username": "", + "firstname": "Marine", + "lastname": "Desc", + "countsms": 4, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "41": { + "uid": 41, + "number": "0561223307", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "42": { + "uid": 42, + "number": "0681637356", + "username": "Chapit", + "firstname": "", + "lastname": "", + "countsms": 7, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "43": { + "uid": 43, + "number": "0681272316", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 1, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "44": { + "uid": 44, + "number": "0567738243", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "45": { + "uid": 45, + "number": "0698130106", + "username": "Debeaumont", + "firstname": "", + "lastname": "", + "countsms": 13, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "46": { + "uid": 46, + "number": "0684014351", + "username": "", + "firstname": "Lucile", + "lastname": "Maury", + "countsms": 2, + "countcall": 0, + "call": -1, + "sms": -1 + }, + "47": { + "uid": 47, + "number": "0685422405", + "username": "", + "firstname": "Clement", + "lastname": "Siegfried", + "countsms": 0, + "countcall": 7, + "call": -1, + "sms": -1 + }, + "48": { + "uid": 48, + "number": "0322765057", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "49": { + "uid": 49, + "number": "0680341361", + "username": "Eloa", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "50": { + "uid": 50, + "number": "0621681633", + "username": "Fanny", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 5, + "call": -1, + "sms": -1 + }, + "51": { + "uid": 51, + "number": "0630023336", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "52": { + "uid": 52, + "number": "0663248738", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "53": { + "uid": 53, + "number": "0689795387", + "username": "", + "firstname": "Fouquet", + "lastname": "Charlotte ( Sncf)", + "countsms": 0, + "countcall": 8, + "call": -1, + "sms": -1 + }, + "54": { + "uid": 54, + "number": "0621915797", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "55": { + "uid": 55, + "number": "0478303590", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "56": { + "uid": 56, + "number": "0646642714", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "57": { + "uid": 57, + "number": "0153422467", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "58": { + "uid": 58, + "number": "0627923836", + "username": "", + "firstname": "Alexandre", + "lastname": "(Sncf)", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "59": { + "uid": 59, + "number": "0652784553", + "username": "", + "firstname": "Marc", + "lastname": "(Sncf)", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "60": { + "uid": 60, + "number": "0608484023", + "username": "", + "firstname": "Alain", + "lastname": "Seguy Portable", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "61": { + "uid": 61, + "number": "Numéroprivé", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "62": { + "uid": 62, + "number": "0681604489", + "username": "", + "firstname": "Johanna", + "lastname": "Benson faure", + "countsms": 1, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "63": { + "uid": 63, + "number": "0236164994", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "64": { + "uid": 64, + "number": "0777965641", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "65": { + "uid": 65, + "number": "0561226764", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "66": { + "uid": 66, + "number": "0647864378", + "username": "", + "firstname": "Lucile", + "lastname": "Michoux", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "67": { + "uid": 67, + "number": "0664172165", + "username": "", + "firstname": "Maud", + "lastname": "Belambra", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "68": { + "uid": 68, + "number": "0322872431", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "69": { + "uid": 69, + "number": "0679510351", + "username": "Mémé", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "70": { + "uid": 70, + "number": "0681862245", + "username": "", + "firstname": "Frederic", + "lastname": "Carpentier", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "71": { + "uid": 71, + "number": "0683689438", + "username": "", + "firstname": "Thomas", + "lastname": "Autissier", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "72": { + "uid": 72, + "number": "0561226962", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "73": { + "uid": 73, + "number": "0659659882", + "username": "", + "firstname": "Christelle", + "lastname": "Choucoutou", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "74": { + "uid": 74, + "number": "0636828291", + "username": "", + "firstname": "Tim", + "lastname": "Von Scheidt", + "countsms": 0, + "countcall": 8, + "call": -1, + "sms": -1 + }, + "75": { + "uid": 75, + "number": "0630586730", + "username": "", + "firstname": "Antoine", + "lastname": "Drouvin", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "76": { + "uid": 76, + "number": "0628334584", + "username": "", + "firstname": "Remi", + "lastname": "koenig", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "77": { + "uid": 77, + "number": "0178391000", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "78": { + "uid": 78, + "number": "0481076300", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "79": { + "uid": 79, + "number": "0562277443", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "80": { + "uid": 80, + "number": "0668582139", + "username": "Sam", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 6, + "call": -1, + "sms": -1 + }, + "81": { + "uid": 81, + "number": "0677820719", + "username": "", + "firstname": "Ingrid", + "lastname": "Dumoulin", + "countsms": 0, + "countcall": 6, + "call": -1, + "sms": -1 + }, + "82": { + "uid": 82, + "number": "0607161895", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "83": { + "uid": 83, + "number": "0178392000", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "84": { + "uid": 84, + "number": "0683372480", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "85": { + "uid": 85, + "number": "0561474321", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "86": { + "uid": 86, + "number": "0616813929", + "username": "papa", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "87": { + "uid": 87, + "number": "0427192000", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "88": { + "uid": 88, + "number": "0164270257", + "username": "", + "firstname": "Alain", + "lastname": "Seguy", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "89": { + "uid": 89, + "number": "0661904073", + "username": "", + "firstname": "Agathe", + "lastname": "Charles", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "90": { + "uid": 90, + "number": "0323050986", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "91": { + "uid": 91, + "number": "0682073273", + "username": "Bernard", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "92": { + "uid": 92, + "number": "0611075350", + "username": "", + "firstname": "Dylan", + "lastname": "Petit", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "93": { + "uid": 93, + "number": "0649269036", + "username": "Mallau", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "94": { + "uid": 94, + "number": "0562277441", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "95": { + "uid": 95, + "number": "0641835135", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "96": { + "uid": 96, + "number": "0674119525", + "username": "", + "firstname": "Antoine", + "lastname": "Mandet", + "countsms": 0, + "countcall": 5, + "call": -1, + "sms": -1 + }, + "97": { + "uid": 97, + "number": "0686371201", + "username": "Proprio", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "98": { + "uid": 98, + "number": "0627722881", + "username": "Adequat", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "99": { + "uid": 99, + "number": "0322874813", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "100": { + "uid": 100, + "number": "0652906702", + "username": "", + "firstname": "Benoit", + "lastname": "Klamber", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "101": { + "uid": 101, + "number": "0652292724", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "102": { + "uid": 102, + "number": "0610087047", + "username": "Mariane", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "103": { + "uid": 103, + "number": "0534252783", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "104": { + "uid": 104, + "number": "0660926108", + "username": "", + "firstname": "Anne", + "lastname": "Estelle", + "countsms": 0, + "countcall": 4, + "call": -1, + "sms": -1 + }, + "105": { + "uid": 105, + "number": "0668067194", + "username": "", + "firstname": "Hugo", + "lastname": "Valette", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "106": { + "uid": 106, + "number": "0685683305", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 8, + "call": -1, + "sms": -1 + }, + "107": { + "uid": 107, + "number": "0322870674", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "108": { + "uid": 108, + "number": "0684923614", + "username": "", + "firstname": "Julien", + "lastname": "Peze", + "countsms": 0, + "countcall": 3, + "call": -1, + "sms": -1 + }, + "109": { + "uid": 109, + "number": "0631202761", + "username": "", + "firstname": "Thomas", + "lastname": "Hopquin", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "110": { + "uid": 110, + "number": "0236164943", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "111": { + "uid": 111, + "number": "0761921571", + "username": "", + "firstname": "Pauline", + "lastname": "Cath", + "countsms": 0, + "countcall": 2, + "call": -1, + "sms": -1 + }, + "112": { + "uid": 112, + "number": "0684648921", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "113": { + "uid": 113, + "number": "0681585322", + "username": "", + "firstname": "maxime", + "lastname": "colo thales", + "countsms": 0, + "countcall": 5, + "call": -1, + "sms": -1 + }, + "114": { + "uid": 114, + "number": "0673042646", + "username": "", + "firstname": "Denis", + "lastname": "Directeur Colo Italie", + "countsms": 0, + "countcall": 6, + "call": -1, + "sms": -1 + }, + "115": { + "uid": 115, + "number": "0678593540", + "username": "", + "firstname": "nicolas", + "lastname": "colo thales", + "countsms": 0, + "countcall": 6, + "call": -1, + "sms": -1 + }, + "116": { + "uid": 116, + "number": "+543285154356", + "username": "", + "firstname": "", + "lastname": "", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + }, + "117": { + "uid": 117, + "number": "0642468206", + "username": "", + "firstname": "Perrine", + "lastname": "Petit", + "countsms": 0, + "countcall": 1, + "call": -1, + "sms": -1 + } + }, + "mini": { + "0": { + "uid": 0, + "sexe": "H", + "age": "2", + "studies": "02", + "reltype": "2", + "reltypeSpecial": "", + "loc": "0", + "hash": 2220744370, + "valid": true + }, + "1": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 1 + }, + "2": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 2 + }, + "3": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 3 + }, + "4": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 4 + }, + "5": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 5 + }, + "6": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 6 + }, + "7": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 7 + }, + "8": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 8 + }, + "9": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 9 + }, + "10": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 10 + }, + "11": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 11 + }, + "12": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 12 + }, + "13": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 13 + }, + "14": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 14 + }, + "15": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 15 + }, + "16": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 16 + }, + "17": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 17 + }, + "18": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 18 + }, + "19": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 19 + }, + "20": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 20 + }, + "21": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 21 + }, + "22": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 22 + }, + "23": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 23 + }, + "24": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 24 + }, + "25": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 25 + }, + "26": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 26 + }, + "27": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 27 + }, + "28": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 28 + }, + "29": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 29 + }, + "30": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 30 + }, + "31": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 31 + }, + "32": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 32 + }, + "33": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 33 + }, + "34": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 34 + }, + "35": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 35 + }, + "36": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 36 + }, + "37": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 37 + }, + "38": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 38 + }, + "39": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 39 + }, + "40": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 40 + }, + "41": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 41 + }, + "42": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 42 + }, + "43": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 43 + }, + "44": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 44 + }, + "45": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 45 + }, + "46": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 46 + }, + "47": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 47 + }, + "48": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 48 + }, + "49": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 49 + }, + "50": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 50 + }, + "51": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 51 + }, + "52": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 52 + }, + "53": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 53 + }, + "54": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 54 + }, + "55": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 55 + }, + "56": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 56 + }, + "57": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 57 + }, + "58": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 58 + }, + "59": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 59 + }, + "60": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 60 + }, + "61": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 61 + }, + "62": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 62 + }, + "63": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 63 + }, + "64": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 64 + }, + "65": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 65 + }, + "66": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 66 + }, + "67": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 67 + }, + "68": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 68 + }, + "69": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 69 + }, + "70": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 70 + }, + "71": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 71 + }, + "72": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 72 + }, + "73": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 73 + }, + "74": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 74 + }, + "75": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 75 + }, + "76": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 76 + }, + "77": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 77 + }, + "78": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 78 + }, + "79": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 79 + }, + "80": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 80 + }, + "81": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 81 + }, + "82": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 82 + }, + "83": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 83 + }, + "84": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 84 + }, + "85": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 85 + }, + "86": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 86 + }, + "87": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 87 + }, + "88": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 88 + }, + "89": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 89 + }, + "90": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 90 + }, + "91": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 91 + }, + "92": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 92 + }, + "93": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 93 + }, + "94": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 94 + }, + "95": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 95 + }, + "96": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 96 + }, + "97": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 97 + }, + "98": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 98 + }, + "99": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 99 + }, + "100": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 100 + }, + "101": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 101 + }, + "102": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 102 + }, + "103": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 103 + }, + "104": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 104 + }, + "105": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 105 + }, + "106": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 106 + }, + "107": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 107 + }, + "108": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 108 + }, + "109": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 109 + }, + "110": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 110 + }, + "111": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 111 + }, + "112": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 112 + }, + "113": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 113 + }, + "114": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 114 + }, + "115": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 115 + }, + "116": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 116 + }, + "117": { + "sexe": "H", + "age": ".", + "studies": ".", + "loc": "0", + "reltype": "0", + "reltypeSpecial": "", + "timestamp": 0, + "valid": false, + "uid": 117 + } + }, + "fiches": { + "0": { + "contact": 0, + "uid": 0, + "sexe": "H", + "age": "2", + "job": "41", + "famsit": "0", + "studies": "02", + "reltype": "2", + "reltypeSpecial": "", + "city": "Toulouse", + "cp": "82000", + "loc": "0", + "duration": ["2", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "hash": 1815898307, + "valid": true, + "timestamp": 1462977646274 + }, + "1": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 1, + "contact": 1 + }, + "2": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 2, + "contact": 2 + }, + "3": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 3, + "contact": 3 + }, + "4": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 4, + "contact": 4 + }, + "5": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 5, + "contact": 5 + }, + "6": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 6, + "contact": 6 + }, + "7": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 7, + "contact": 7 + }, + "8": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 8, + "contact": 8 + }, + "9": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 9, + "contact": 9 + }, + "10": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 10, + "contact": 6 + }, + "11": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 11, + "contact": 10 + }, + "12": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 12, + "contact": 7 + }, + "13": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 13, + "contact": 11 + }, + "14": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 14, + "contact": 12 + }, + "15": { + "contact": 0, + "uid": 15, + "sexe": "H", + "age": "2", + "job": "41", + "famsit": "0", + "studies": "02", + "reltype": "2", + "reltypeSpecial": "", + "city": "Toulouse", + "cp": "82000", + "loc": "0", + "duration": ["2", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "hash": 1815898307, + "valid": true, + "timestamp": 1462977646274 + }, + "16": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 16, + "contact": 3 + }, + "17": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 17, + "contact": 13 + }, + "18": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 18, + "contact": 14 + }, + "19": { + "sexe": "H", + "age": ".", + "job": ".", + "famsit": "0", + "studies": ".", + "reltype": "0", + "reltypeSpecial": "", + "city": "", + "cp": "", + "loc": "0", + "duration": ["", ""], + "context": "0", + "contextSpecial": ["", "", ""], + "freq": ["0", "4", "8", "12", "16"], + "connect": ["1", "3", "5", "7", "9", "11"], + "connectSpecial": ["", ""], + "timestamp": 0, + "valid": false, + "uid": 19, + "contact": 2 + } + }, + "matrice": {} +} diff --git a/view.php b/view.php index 2802acd..117f6ad 100755 --- a/view.php +++ b/view.php @@ -22,6 +22,7 @@ + @@ -33,6 +34,7 @@ + @@ -70,6 +72,10 @@ + +
+ +
diff --git a/view/css/analytics.css b/view/css/data.css similarity index 100% rename from view/css/analytics.css rename to view/css/data.css diff --git a/view/analytics.php b/view/data.php similarity index 65% rename from view/analytics.php rename to view/data.php index 0675167..82760c5 100755 --- a/view/analytics.php +++ b/view/data.php @@ -27,10 +27,20 @@ $pers = $request->answer(); -
+


+

+
+
+
+ +

+
+
+ +
diff --git a/view/error.php b/view/error.php new file mode 100644 index 0000000..2d900e3 --- /dev/null +++ b/view/error.php @@ -0,0 +1,7 @@ + diff --git a/view/input.php b/view/input.php index d6b70f2..8b0b4f7 100755 --- a/view/input.php +++ b/view/input.php @@ -120,63 +120,12 @@
+ +

Saisir les matrices des relations entre les contacts les plus contactés

-
- - $contactA){ - echo ''; - - if( $A > 0 ) - echo ''; - else - echo ''; - - foreach($contacts as $B=>$contactB){ if( $B < count($contacts)-1 ){ - if( $A == 0 ) - echo ''; - }} - - echo ''; - } - - ?> -
'.$contactA[1].' '.$contactA[2].''.$contactB[1].' '.$contactB[2].''; - else if( $B < $A ) - echo ""; - else - echo "
-

- -

-
+
diff --git a/view/js/analytics-min.js b/view/js/data-min.js similarity index 100% rename from view/js/analytics-min.js rename to view/js/data-min.js diff --git a/view/js/analytics.js b/view/js/data.js similarity index 100% rename from view/js/analytics.js rename to view/js/data.js diff --git a/view/js/input-min.js b/view/js/input-min.js index 058fd2c..155d155 100644 --- a/view/js/input-min.js +++ b/view/js/input-min.js @@ -1,13 +1,15 @@ -var subjectManager,contactManager,miniManager,ficheManager,matriceManager,defTrue={status:!0,value:"on"},defFalse={status:!1,value:"on"}; -function dynamicUpdate(a){var f=a instanceof Element,b=f&&"SPAN"==a.tagName&&"switch-left"==a.className,e=f&&"SPAN"==a.tagName&&"switch-both"==a.className,c=f&&"INPUT"==a.tagName&&"submit"==a.type,d=f&&"SPAN"==a.tagName&&("nav-mini"==a.parentNode.id||"nav-fiche"==a.parentNode.id),f=f&&"SPAN"==a.tagName&&"nav-contact"==a.parentNode.id;if(!(e||b||c||d||f)&&!0!==a)return!1;if(e)console.log("> switch firstname <-> lastname"),b=a.parentNode,a=b.children[8],b=b.children[10],e=a.value,a.value=b.value,b.value= -e;else if(b){console.log("> switch firstname+lastname -> username");b=a.parentNode;e=b.children[6];a=b.children[8];b=b.children[10];if(0 dynamic update"),miniManager.fieldsToStorage(),ficheManager.fieldsToStorage(),contactManager.fieldsToStorage(),matriceManager.fieldsToStorage(),miniManager.sync(),ficheManager.sync(),miniManager.storageToFields(),ficheManager.storageToFields(), -matriceManager.storageToFields(),(c||f)&&contactManager.storageToFields()}function checkRadioValue(a){for(var f=0,b=0;b switch firstname <-> lastname"),e=b.parentNode,b=e.children[8],e=e.children[10],f=b.value,b.value=e.value,e.value= +f;else if(e){console.log("> switch firstname+lastname -> username");e=b.parentNode;f=e.children[6];b=e.children[8];e=e.children[10];if(0 dynamic update"),miniManager.fieldsToStorage(),ficheManager.fieldsToStorage(),contactManager.fieldsToStorage(),matriceManager.fieldsToStorage(),ficheManager.sync(),miniManager.sync(),miniManager.storageToFields(),ficheManager.storageToFields(), +matriceManager.storageToFields(),(g||a)&&contactManager.storageToFields()}function readableName(b,a,e){var f=a.length,g=e.length;return 0c;c++)e.push(a.calls[c].number);for(c=0;cc;c++)g.push(a.sms[c].number);for(c=0;c GATHERING ALL DATA"); -subjectManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.fieldsToStorage();ficheManager.fieldsToStorage();a={path:"input/phone",subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};api.send(a,function(a){console.log(a)},!1)},!1)})})})})}); +$('input#call_log-import[type="file"]').addEventListener("click",function(b){b.target.value=null},!1);$('input#call_log-import[type="file"]').addEventListener("change",function(b){b={path:"upload/call_log",phone_number:$("#subject_phone_number").value,file:b.target.files[0]};api.send(b,function(a){console.log(a);var b=null;if(0!=a.ModuleError)9==a.ModuleError?Notification.error("Erreur","Il est n\u00e9cessaire de saisir les informations du sujet avant d'exporter son journal d'appel"):Notification.error("Erreur", +a.ModuleError);else{for(var b=Notification.info("Info","Chargement du journal d'appel"),f=0,g=[],c=0;cc;c++)g.push(a.calls[c].number);for(c=0;cc;c++)h.push(a.sms[c].number); +for(c=0;c GATHERING ALL DATA");subjectManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.fieldsToStorage();ficheManager.fieldsToStorage();if(!subjectManager.check())return Notification.warning("Attention","Vous devez saisir les informations du sujet"),!1;b=lsi["export"]("mini-fiches");for(var a in b)if(!b[a].valid)return Notification.warning("Attention","La fiche rapide "+(parseInt(a)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;b=lsi["export"]("fiches"); +for(a in b)if(!b[a].valid)return Notification.warning("Attention","La fiche compl\u00e8te "+(parseInt(a)+1)+" est incompl\u00e8te et/ou incorrecte"),!1;a={path:"input/phone",subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches"),matrice:lsi["export"]("matrice")[0]};api.send(a,function(a){if(0!=a.ModuleError)return Notification.error("ERREUR",a.ModuleError),!1;console.log(a)},!1)},!1)})})})})}); diff --git a/view/js/input.js b/view/js/input.js index e2310ca..d79edef 100644 --- a/view/js/input.js +++ b/view/js/input.js @@ -15,10 +15,6 @@ var miniManager; var ficheManager; var matriceManager; -// CONSTANTES -var defTrue = {status: true, value: 'on'}; -var defFalse = {status: false, value: 'on'}; - /* (2) Fonctions utiles */ function dynamicUpdate(target){ @@ -95,14 +91,14 @@ function dynamicUpdate(target){ /* (4) On enregistre la MATRICE */ matriceManager.fieldsToStorage(); - /* (5) On synchronise les MINI avec les CONTACTS */ - miniManager.sync(); - - /* (6) On synchronise les FICHE avec les CONTACTS */ + /* (5) On synchronise les FICHE avec les CONTACTS */ // 1. On synchronise les `mini` et `fiches` associées en fonction de la dernière date de modification // 2. On synchronise les `fiches` dupliquées en fonction de la dernière date de modification ficheManager.sync(); + /* (6) On synchronise les MINI avec les CONTACTS */ + // Supprime les contacts déja dans les FICHES + miniManager.sync(); /* (7) On affiche le tout */ miniManager.storageToFields(); @@ -115,15 +111,40 @@ function dynamicUpdate(target){ } } -// Vérifie qu'une seule valeur vaut TRUE et les autres false (objet deflated de type ) -function checkRadioValue(selectData){ - var nbTrue = 0; - for( var i = 0 ; i < selectData.length ; i++ ) - if( selectData[i].status === true ) - nbTrue++; - if( nbTrue != 1 ) return false; - else return true; + +/* AFFICHE UN NOM EXPLICITE A PARTIR DE @u username, @f firstname, et @l lastname +* +*/ +function readableName(u, f, l){ + /* (1) On calcule les tailles des chaines */ + var ul = u.length, + fl = f.length, + ll = l.length; + + /* (2) Si @username n'est pas vide */ + if( ul > 0 ){ + + /* (3) Si @username+(@firstname et/ou @lastname) -> username (firstname lastname) */ + if( fl+ll > 0 ) + return u+' ('+(f+' '+l).trim()+')'; + + /* (4) Si @username uniquement -> username */ + else + return u; + + /* (5) Si pas @username */ + }else{ + + /* (6) Si @firstname et/ou @lastname -> firstname lastname*/ + if( fl+ll > 0 ) + return (f+' '+l).trim(); + + /* (7) Si rien -> Inconnu */ + else + return 'Inconnu'; + + } } @@ -137,17 +158,10 @@ function checkRadioValue(selectData){ - - - - - - - - /* [2] Inclusion des scripts externes et lancement =========================================================*/ +// TODO: Mettre les versions minifiées include('/js/includes/input-phone-subject.js', function(){ include('/js/includes/input-phone-contact.js', function(){ include('/js/includes/input-phone-mini.js', function(){ @@ -250,9 +264,17 @@ include('/js/includes/input-phone-matrice.js', function(){ api.send(request, function(response){ console.log(response); + var loadingNotif = null; + // Si erreur, on quitte - if( response.ModuleError != 0 ) + if( response.ModuleError != 0 ){ + if( response.ModuleError == 9 ) + Notification.error('Erreur', 'Il est nécessaire de saisir les informations du sujet avant d\'exporter son journal d\'appel'); + else + Notification.error('Erreur', response.ModuleError); return; + }else + loadingNotif = Notification.info('Info', 'Chargement du journal d\'appel'); @@ -282,6 +304,7 @@ include('/js/includes/input-phone-matrice.js', function(){ uid++; } + console.warn(1); @@ -301,14 +324,17 @@ include('/js/includes/input-phone-matrice.js', function(){ continue; } - var splittedName = response.directory[most_sms[i]].name.split(' '); + + var splittedName = ['']; + if( response.directory[most_sms[i]].name != null ) + splittedName = response.directory[most_sms[i]].name.split(' '); lsi.set('contacts', uid, { uid: uid, number: most_sms[i], - username: splittedName.length == 1 ? splittedName[0] : '', // Si un seul mot -> pseudo - firstname: splittedName.length > 1 ? splittedName[0] : '', // Si plusieurs mots -> le 1er est le prénom - lastname: splittedName.length > 1 ? splittedName.splice(1).join(' ') : '', // et les autres sont le nom + username: splittedName.length > 0 ? splittedName[0] : '', // Si un seul mot -> pseudo + firstname: splittedName.length > 0 ? splittedName[0] : '', // Si plusieurs mots -> le 1er est le prénom + lastname: splittedName.length > 1 ? splittedName.splice(1).join(' ') : '', // et les autres sont le nom countsms: response.directory[most_sms[i]].sms, // Nombre de sms countcall: response.directory[most_sms[i]].calls, // Nombre d'appels call: -1, // classement dans le top 10 des APPELS @@ -351,11 +377,20 @@ include('/js/includes/input-phone-matrice.js', function(){ uid++; } + console.warn(3); /* (8) On met à jour l'affichage */ contactManager.storageToFields(); dynamicUpdate(true); + + /* (9) On notifie la fin du chargement */ + // On retire la notification de chargement + if( loadingNotif != null ) + loadingNotif.click(); + // On notifie que tout s'est bien passé + Notification.success('OK', 'Chargement terminé'); + }); }, false); @@ -379,6 +414,8 @@ include('/js/includes/input-phone-matrice.js', function(){ miniManager.storageToFields(); ficheManager.storageToFields(); matriceManager.storageToFields(); + + Notification.success('OK', 'Les données ont été supprimées'); }, false); @@ -386,6 +423,9 @@ include('/js/includes/input-phone-matrice.js', function(){ /* (8) Gestion de l'export des données locales ---------------------------------------------------------*/ $('#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('subject')[0], @@ -433,10 +473,10 @@ include('/js/includes/input-phone-matrice.js', function(){ console.log(response); // Si erreur, on quitte - if( response.ModuleError != 0 ) + if( response.ModuleError != 0 ){ + Notification.error('Erreur', response.ModuleError); return false; - - console.log(response.local_data.matrice); + } /* (3) On enregistre les données dans le 'localStorage' */ lsi.set('subject', 0, response.local_data.subject); @@ -469,24 +509,54 @@ include('/js/includes/input-phone-matrice.js', function(){ miniManager.fieldsToStorage(); ficheManager.fieldsToStorage(); - /* (2) On prépare la requête avec toutes les données */ + /* (2) Vérification de la validité de toutes les données */ + // {1} Vérification du sujet // + if( !subjectManager.check() ){ + Notification.warning('Attention', 'Vous devez saisir les informations du sujet'); + return false; + } + // {2} Vérification des mini-fiches // + var mini = lsi.export('mini-fiches'); + for( var id in mini ) + if( !mini[id].valid ){ + Notification.warning('Attention', 'La fiche rapide '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); + return false; + } + // {3} Vérification des fiches // + var fiches = lsi.export('fiches'); + for( var id in fiches ) + if( !fiches[id].valid ){ + Notification.warning('Attention', 'La fiche complète '+(parseInt(id)+1)+' est incomplète et/ou incorrecte'); + return false; + } + + + + /* (3) On prépare la requête avec toutes les données */ var request = { path: 'input/phone', subject: lsi.export('subject')[0], contacts: lsi.export('contacts'), mini: lsi.export('mini-fiches'), - fiches: lsi.export('fiches') + fiches: lsi.export('fiches'), + matrice: lsi.export('matrice')[0] }; - /* (3) On envoie la requête et traite la réponse */ + /* (4) On envoie la requête et traite la réponse */ api.send(request, function(response){ + // Si erreur, on la notifie + if( response.ModuleError != 0 ){ + Notification.error('ERREUR', response.ModuleError); + return false; + } + console.log(response); + }, false); }, false); - }); }); }); }); });