Suppression de ResourceDispatcher en cours
This commit is contained in:
parent
0bed2f351b
commit
0af02f1243
|
@ -0,0 +1,4 @@
|
|||
RewriteEngine on
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace api;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\ManagerError;
|
||||
|
||||
/* CLASSE PERMETANT L'UTILISATION DU manifest.json POUR UTILISER DES APIS DIVERSES
|
||||
|
@ -12,7 +11,7 @@
|
|||
class client{
|
||||
|
||||
// Fichier de configuration par defaut
|
||||
private $config_path = 'f/json/manifest/api';
|
||||
private $config_path = __ROOT__.'/api/manifest.json';
|
||||
public $error;
|
||||
|
||||
// liste des methodes
|
||||
|
@ -46,7 +45,7 @@
|
|||
|
||||
/* [1] On recupere le contenu du fichier de config
|
||||
=========================================================*/
|
||||
$manifest = json_decode( ResourceDispatcher::getResource($this->config_path), true );
|
||||
$manifest = json_decode( file_get_contents($this->config_path), true );
|
||||
|
||||
// Si erreur de parsage ou de fichier, on retourne une erreur
|
||||
if( $manifest === null ){
|
||||
|
@ -91,7 +90,7 @@
|
|||
=========================================================*/
|
||||
/* (1) On definit l'URL */
|
||||
$curl = curl_init($build['url']);
|
||||
|
||||
|
||||
// permet de recupere le resultat au lieu de l'afficher
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
|
@ -112,7 +111,7 @@
|
|||
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
|
||||
/* (4) On definit les donnees POST si on est pas en get */
|
||||
/* (4) On definit les donnees POST si on est pas en get */
|
||||
if( $build['method'] != 'GET' ){
|
||||
$postdata = '';
|
||||
|
||||
|
@ -212,10 +211,10 @@
|
|||
|
||||
// Si on a trouve, on remplace le nom de variable par la valeur
|
||||
if( $position !== false )
|
||||
$after = substr($after, 0, $position) . $value . substr($after, $position+strlen($name) );
|
||||
|
||||
$after = substr($after, 0, $position) . $value . substr($after, $position+strlen($name) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* [2] On retourne la nouvelle chaine
|
||||
=========================================================*/
|
||||
return $after;
|
||||
|
@ -224,4 +223,4 @@
|
|||
}
|
||||
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ManagerError;
|
||||
use \manager\Repo;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[
|
||||
|
||||
{ "icon": "f/svg/home/st/menu-side", "text": "Tableau de bord",
|
||||
{ "icon": "/src/static/menu-side/home.svg", "text": "Tableau de bord",
|
||||
"attributes": { "data-link": "dashboard", "class": "sep" },
|
||||
|
||||
"children": [
|
||||
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
|
||||
|
||||
{ "icon": "f/svg/input/st/menu-side", "text": "Acquisition",
|
||||
{ "icon": "/src/static/menu-side/input.svg", "text": "Acquisition",
|
||||
"attributes": { "data-link": "input" },
|
||||
|
||||
"children": [
|
||||
|
@ -26,7 +26,7 @@
|
|||
},
|
||||
|
||||
|
||||
{ "icon": "f/svg/charts/st/menu-side", "text": "Graphiques",
|
||||
{ "icon": "/src/static/menu-side/charts.svg", "text": "Graphiques",
|
||||
"attributes": { "data-link": "charts", "class": "sep" },
|
||||
|
||||
"children": [
|
||||
|
@ -38,7 +38,7 @@
|
|||
},
|
||||
|
||||
|
||||
{ "icon": "f/svg/analytics/st/menu-side", "text": "Données",
|
||||
{ "icon": "/src/static/menu-side/analytics.svg", "text": "Données",
|
||||
"attributes": { "data-link": "data" },
|
||||
|
||||
"children": [
|
||||
|
@ -52,7 +52,7 @@
|
|||
},
|
||||
|
||||
|
||||
{ "icon": "f/svg/settings/st/menu-side", "text": "Paramètres",
|
||||
{ "icon": "/src/static/menu-side/settings.svg", "text": "Paramètres",
|
||||
"attributes": { "data-link": "settings" },
|
||||
|
||||
"children": [
|
||||
|
|
|
@ -443,6 +443,15 @@
|
|||
"survey": { "description": "Si vaut TRUE, renvoie les sujets ResTIC.", "type": "boolean", "optional": true },
|
||||
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
|
||||
}
|
||||
},
|
||||
|
||||
"menu": {
|
||||
"description": "Contenu de la configuration du menu.",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {},
|
||||
"output": {
|
||||
"menu": { "description": "Contenu formatté de la configuration du menu.", "type": "array<mixed>" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@
|
|||
& input[type="radio"]:checked + label[for]:before,
|
||||
& input[type="checkbox"]:checked + label[for]:before{
|
||||
background-color: $theme-fg-primary;
|
||||
background-image: url('/f/svg/checked/st/container');
|
||||
background-image: url('src/static/container/checked.svg');
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -65,11 +65,11 @@
|
|||
|
||||
border-radius: 50% / 50%;
|
||||
|
||||
background: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;
|
||||
background: $theme-bg url('/src/static/header/nopic.svg') center center no-repeat;
|
||||
background-size: auto 80%;
|
||||
|
||||
// Si on est connecte
|
||||
&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }
|
||||
&.active{ background-image: url('/src/dynamic/profile/sample.svg'); background-size: auto 100%; }
|
||||
|
||||
cursor: default;
|
||||
|
||||
|
@ -88,7 +88,7 @@
|
|||
width: $header-height;
|
||||
height: $header-height;
|
||||
|
||||
background: url('/f/svg/expand/st/header/000000') center center no-repeat;
|
||||
background: url('/src/static/header/expand.svg@000000') center center no-repeat;
|
||||
background-size: 1em 1em;
|
||||
|
||||
cursor: pointer;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -6,9 +6,9 @@
|
|||
"../constants.scss"
|
||||
],
|
||||
"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\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: calc( #{$header-height}*2 - 1em );\n\t\t\t\theight: $header-height;\n\n\t\t\tpadding: 0 1em;\n\n\t\t\tcolor: #555;\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/000000') 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\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: calc( #{$header-height} - 1em );\n\t\t\tright: 0;\n\n\t\tmargin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( left .3s ease-in-out );\n\n\n\t\t/* (1) Pour chaque element du menu */\n\t\t& > span{\n\t\t\tdisplay: block;\n\t\t\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\t\t}\n\n\n\n\n\t}\n\n\t/* (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",
|
||||
"@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\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: calc( #{$header-height}*2 - 1em );\n\t\t\t\theight: $header-height;\n\n\t\t\tpadding: 0 1em;\n\n\t\t\tcolor: #555;\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('/src/static/header/nopic.svg') 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('/src/dynamic/profile/sample.svg'); 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('/src/static/header/expand.svg@000000') 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\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: calc( #{$header-height} - 1em );\n\t\t\tright: 0;\n\n\t\tmargin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( left .3s ease-in-out );\n\n\n\t\t/* (1) Pour chaque element du menu */\n\t\t& > span{\n\t\t\tdisplay: block;\n\t\t\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\t\t}\n\n\n\n\n\t}\n\n\t/* (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: #F8F8FA;\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\ttransform: $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\t-webkit-transition: $value;\n\ttransition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n\t@return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
|
||||
],
|
||||
"mappings": "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",
|
||||
"mappings": "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",
|
||||
"names": []
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -6,9 +6,9 @@
|
|||
"../constants.scss"
|
||||
],
|
||||
"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\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: calc( #{$header-height}*2 - 1em );\n\t\t\t\theight: $header-height;\n\n\t\t\tpadding: 0 1em;\n\n\t\t\tcolor: #555;\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/000000') 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\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: calc( #{$header-height} - 1em );\n\t\t\tright: 0;\n\n\t\tmargin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( left .3s ease-in-out );\n\n\n\t\t/* (1) Pour chaque element du menu */\n\t\t& > span{\n\t\t\tdisplay: block;\n\t\t\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\t\t}\n\n\n\n\n\t}\n\n\t/* (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",
|
||||
"@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\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: calc( #{$header-height}*2 - 1em );\n\t\t\t\theight: $header-height;\n\n\t\t\tpadding: 0 1em;\n\n\t\t\tcolor: #555;\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('/src/static/header/nopic.svg') 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('/src/dynamic/profile/sample.svg'); 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('/src/static/header/expand.svg@000000') 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\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: calc( #{$header-height} - 1em );\n\t\t\tright: 0;\n\n\t\tmargin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n\t\tbackground-color: #fff;\n\n\t\t@include transition( left .3s ease-in-out );\n\n\n\t\t/* (1) Pour chaque element du menu */\n\t\t& > span{\n\t\t\tdisplay: block;\n\t\t\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\t\t}\n\n\n\n\n\t}\n\n\t/* (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: #F8F8FA;\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\ttransform: $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\t-webkit-transition: $value;\n\ttransition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n\t@return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
|
||||
],
|
||||
"mappings": "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",
|
||||
"mappings": "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",
|
||||
"names": []
|
||||
}
|
|
@ -124,7 +124,7 @@ body{
|
|||
width: 35em;
|
||||
height: 10em;
|
||||
|
||||
background: url('/f/svg/iconv2/st') center center no-repeat;
|
||||
background: url('/src/static/iconv2.svg') center center no-repeat;
|
||||
background-size: auto 100%;
|
||||
}
|
||||
|
||||
|
@ -239,7 +239,7 @@ body{
|
|||
min-width: 2em;
|
||||
height: 2em;
|
||||
|
||||
background: url('/f/svg/back/st/container/555555') right center no-repeat;
|
||||
background: url('/src/static/container/back.svg@555555') right center no-repeat;
|
||||
background-size: 1em;
|
||||
|
||||
color: #555;
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -14,7 +14,7 @@
|
|||
|
||||
border-bottom: 1px solid transparent;
|
||||
|
||||
background: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;
|
||||
background: url('/src/static/menu-side/sub.svg@aaaaaa') right 1.5em center no-repeat;
|
||||
background-size: .5em .5em;
|
||||
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
/* (2) Animation de @hover */
|
||||
&:not(.active):hover{
|
||||
background-image: url('/f/svg/sub/st/menu-side/000000');
|
||||
background-image: url('/src/static/menu-side/sub.svg@000000');
|
||||
color: #000;
|
||||
|
||||
& > svg, & > svg *{
|
||||
|
@ -54,7 +54,7 @@
|
|||
// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);
|
||||
|
||||
background-color: $theme-fg-primary;
|
||||
background-image: url('/f/svg/sub-active/st/menu-side/ffffff');
|
||||
background-image: url('/src/static/menu-side/sub-active.svg@ffffff');
|
||||
color: $dark-fg-primary;
|
||||
|
||||
& > svg, & > svg *{
|
||||
|
@ -78,7 +78,7 @@
|
|||
padding: .5em 1.5em;
|
||||
padding-left: 2.5em;
|
||||
|
||||
background: #eee url('/f/svg/sub/st/menu-side/777777') 1.5em center no-repeat;;
|
||||
background: #eee url('/src/static/menu-side/sub.svg@777777') 1.5em center no-repeat;;
|
||||
background-size: .5em;
|
||||
|
||||
color: #777777;
|
||||
|
@ -92,7 +92,7 @@
|
|||
&:hover,
|
||||
&.active{
|
||||
color: #000;
|
||||
background-image: url('/f/svg/sub/st/menu-side/000000');
|
||||
background-image: url('/src/static/menu-side/sub.svg@000000');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -6,9 +6,9 @@
|
|||
"../constants.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\t@include transition( color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out );\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\t@include transition( fill .2s ease-in-out );\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: #eee url('/f/svg/sub/st/menu-side/777777') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: #777777;\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\t@include transition( color .2s ease-in-out );\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: #000;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n",
|
||||
"@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/src/static/menu-side/sub.svg@aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\t@include transition( color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out );\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\t@include transition( fill .2s ease-in-out );\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/src/static/menu-side/sub.svg@000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/src/static/menu-side/sub-active.svg@ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: #eee url('/src/static/menu-side/sub.svg@777777') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: #777777;\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\t@include transition( color .2s ease-in-out );\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: #000;\n\t\t\tbackground-image: url('/src/static/menu-side/sub.svg@000000');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\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: #F8F8FA;\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\ttransform: $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\t-webkit-transition: $value;\n\ttransition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n\t@return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
|
||||
],
|
||||
"mappings": "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",
|
||||
"mappings": "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",
|
||||
"names": []
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -6,9 +6,9 @@
|
|||
"../constants.scss"
|
||||
],
|
||||
"sourcesContent": [
|
||||
"@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\t@include transition( color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out );\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\t@include transition( fill .2s ease-in-out );\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: #eee url('/f/svg/sub/st/menu-side/777777') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: #777777;\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\t@include transition( color .2s ease-in-out );\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: #000;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n",
|
||||
"@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/src/static/menu-side/sub.svg@aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\t@include transition( color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out );\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\t@include transition( fill .2s ease-in-out );\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/src/static/menu-side/sub.svg@000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/src/static/menu-side/sub-active.svg@ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: #eee url('/src/static/menu-side/sub.svg@777777') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: #777777;\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\t@include transition( color .2s ease-in-out );\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: #000;\n\t\t\tbackground-image: url('/src/static/menu-side/sub.svg@000000');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\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: #F8F8FA;\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\ttransform: $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\t-webkit-transition: $value;\n\ttransition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n\t@return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
|
||||
],
|
||||
"mappings": "AAEA,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAAA,CACP,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,6BAAI,CAEZ,OAAO,CAAE,UAAW,CACpB,YAAY,CAAE,oBAAI,CAElB,aAAa,CAAE,qBAAsB,CAErC,UAAU,CAAE,qCAAG,CAAmC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAC9E,eAAe,CAAE,SAAU,CAG3B,KAAK,CAAE,IAAK,CACZ,SAAS,CAAE,KAAM,CCwBlB,kBAAkB,CDtBI,KAAK,CAAC,IAAG,CAAC,WAAW,CAAE,UAAU,CAAC,IAAG,CAAC,WAAW,CAAE,UAAU,CAAC,IAAG,CAAC,WAAW,CAAE,MAAM,CAAC,IAAG,CAAC,WAAW,CCuB3H,UAAU,CDvBY,KAAK,CAAC,IAAG,CAAC,WAAW,CAAE,UAAU,CAAC,IAAG,CAAC,WAAW,CAAE,UAAU,CAAC,IAAG,CAAC,WAAW,CAAE,MAAM,CAAC,IAAG,CAAC,WAAW,CAE1H,MAAM,CAAE,OAAQ,CAwChB,AA/DF,QAAQ,CAAG,UAAU,CAIhB,IAAI,CAsBH,GAAG,CA1BT,QAAQ,CAAG,UAAU,CAIhB,IAAI,CAsBM,GAAG,CAAC,CAAC,AAAA,CACjB,QAAQ,CAAE,QAAS,CAClB,GAAG,CAAE,kBAAI,CACT,IAAI,CAAE,KAAM,CACZ,KAAK,CAAE,GAAI,CACX,MAAM,CAAE,GAAI,CAEb,IAAI,CCxBW,OAAO,CDwBP,UAAU,CCU3B,kBAAkB,CDTK,IAAI,CAAC,IAAG,CAAC,WAAW,CCU3C,UAAU,CDVa,IAAI,CAAC,IAAG,CAAC,WAAW,CACzC,AAnCH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,AAAA,CACnB,gBAAgB,CAAE,qCAAG,CACrB,KAAK,CAAE,IAAK,CAKZ,AA9CH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,CAIf,GAAG,CA3CV,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,CAIN,GAAG,CAAC,CAAC,AAAA,CACjB,IAAI,CAAE,eAAgB,CACtB,AA7CJ,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,AAAA,CACP,mBAAmB,CAAE,OAAM,CAG3B,gBAAgB,CCjDA,OAAO,CDkDvB,gBAAgB,CAAE,4CAAG,CACrB,KAAK,CC7CU,IAAO,CDkDtB,AA5DH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,CAQH,GAAG,CAzDV,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,CAQM,GAAG,CAAC,CAAC,AAAA,CACjB,IAAI,CAAE,eAAgB,CACtB,AA3DJ,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAAA,CACjC,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,2BAAI,CAEZ,OAAO,CAAE,UAAW,CACpB,YAAY,CAAE,KAAM,CAEpB,UAAU,CAAE,IAAI,CAAC,qCAAG,CAAmC,KAAK,CAAC,MAAM,CAAC,SAAS,CAC7E,eAAe,CAAE,IAAK,CAEtB,KAAK,CAAE,OAAQ,CACf,SAAS,CAAE,KAAM,CAEjB,MAAM,CAAE,OAAQ,CCzCjB,kBAAkB,CD2CI,KAAK,CAAC,IAAG,CAAC,WAAW,CC1C3C,UAAU,CD0CY,KAAK,CAAC,IAAG,CAAC,WAAW,CAQ1C,AA9FF,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAmBhC,MAAM,CAzFT,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAoBhC,OAAO,AAAA,CACP,KAAK,CAAE,IAAK,CACZ,gBAAgB,CAAE,qCAAG,CACrB,AA7FH,QAAQ,CAAG,UAAU,CAiGhB,IAAI,AAAA,IAAK,CAAA,KAAK,CAAC,IAAK,CAAA,OAAO,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAAA,CAC9C,OAAO,CAAE,IAAK,CACd",
|
||||
"mappings": "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",
|
||||
"names": []
|
||||
}
|
|
@ -126,30 +126,30 @@
|
|||
|
||||
// Image pour token
|
||||
&[data-token]{
|
||||
background: url('/f/svg/token/st/container/666666') center 1em no-repeat;
|
||||
background: url('/src/static/container/token.svg@666666') center 1em no-repeat;
|
||||
// Si le token est actif
|
||||
&.active{
|
||||
background-image: url('/f/svg/token/st/container/#{color-str($theme-fg-primary)}');
|
||||
background-image: url('/src/static/container/token.svg@#{color-str($theme-fg-primary)}');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Image pour utilisateur
|
||||
&[data-user]{
|
||||
background: url('/f/svg/user/st/container/666666') center 1em no-repeat;
|
||||
background: url('/src/static/container/user.svg@666666') center 1em no-repeat;
|
||||
// Si le token est actif
|
||||
&.active{
|
||||
background-image: url('/f/svg/user/st/container/#{color-str($theme-fg-primary)}');
|
||||
background-image: url('/src/static/container/user.svg@#{color-str($theme-fg-primary)}');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Image pour utilisateur
|
||||
&[data-number]{
|
||||
background: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat;
|
||||
background: url('/src/static/container/phone_number.svg@666666') center 1em no-repeat;
|
||||
// Si le token est actif
|
||||
&.active{
|
||||
background-image: url('/f/svg/phone_number/st/container/#{color-str($theme-fg-primary)}');
|
||||
background-image: url('/src/static/container/phone_number.svg@#{color-str($theme-fg-primary)}');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -351,7 +351,7 @@
|
|||
border: none;
|
||||
border-bottom: 1px solid #333;
|
||||
|
||||
background: #fff url('/f/svg/bottom_arrow/st/container/333333') right 10px center no-repeat;
|
||||
background: #fff url('/src/static/container/bottom_arrow.svg@333333') right 10px center no-repeat;
|
||||
background-size: 10px auto;
|
||||
|
||||
overflow: hidden;
|
||||
|
@ -359,7 +359,7 @@
|
|||
// Animation de @focus
|
||||
&:focus{
|
||||
border-color: $timeline-2;
|
||||
background-image:url('/f/svg/bottom_arrow/st/container/#{color-str($timeline-2)}');
|
||||
background-image:url('/src/static/container/bottom_arrow.svg@#{color-str($timeline-2)}');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -487,7 +487,7 @@
|
|||
|
||||
margin-right: 15px;
|
||||
|
||||
background: url('/f/svg/switch-both/st/container/4e4e50') center center no-repeat;
|
||||
background: url('/src/static/container/switch-both.svg@4e4e50') center center no-repeat;
|
||||
background-size: 1em auto;
|
||||
|
||||
font-size: .8em;
|
||||
|
@ -505,7 +505,7 @@
|
|||
|
||||
margin-right: 15px;
|
||||
|
||||
background: url('/f/svg/switch-left/st/container/4e4e50') center center no-repeat;
|
||||
background: url('/src/static/container/switch-left.svg@4e4e50') center center no-repeat;
|
||||
background-size: 1em auto;
|
||||
|
||||
font-size: .8em;
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
28
index.php
28
index.php
|
@ -3,7 +3,6 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
use \router\Router;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ModuleResponse;
|
||||
use \manager\ManagerError;
|
||||
|
@ -75,6 +74,31 @@
|
|||
$R = new Router( $_GET['url'] );
|
||||
|
||||
|
||||
/* (2) Gestion des SVG avec couleur modifiée */
|
||||
// path/to/resource/filename-HEXADE.svg
|
||||
$R->get('(.+)@([a-f0-9]{6})(\.svg)', function($matches){
|
||||
$path = __ROOT__.'/'.$matches[0].$matches[2];
|
||||
|
||||
header('Content-Type: image/svg+xml');
|
||||
|
||||
// On crée la partie ajoutée
|
||||
$stylesheet = "\n<style type='text/css'>\n";
|
||||
$stylesheet .= "\t#stylisable{\n";
|
||||
$stylesheet .= "\t\tfill: #".$matches[1]." !important;\n";
|
||||
$stylesheet .= "\t\tfill-opacity: 1 !important;\n";
|
||||
$stylesheet .= "\t}\n";
|
||||
$stylesheet .= "</style></svg>";
|
||||
|
||||
// On récupère le fichier
|
||||
$file = file_get_contents($path);
|
||||
|
||||
// On ajoute le style
|
||||
$file = str_replace('</svg>', $stylesheet, $file);
|
||||
|
||||
echo $file;
|
||||
});
|
||||
|
||||
|
||||
/* [1] On cree les regles de routage
|
||||
===================================================*/
|
||||
// Racine -> page d'accueil
|
||||
|
@ -92,7 +116,7 @@
|
|||
|
||||
|
||||
// Dispatcher
|
||||
$R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });
|
||||
// $R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });
|
||||
|
||||
|
||||
// Api
|
||||
|
|
|
@ -6,4 +6,4 @@ c.length;a++)c[a].remClass("active");if(null!=b)for(b.addClass("active"),c=$$('#
|
|||
function navMenu(a){var c=$('#WRAPPER > #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",
|
||||
function(){1<=pageManager.vars.length&&null!=$('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]')?navSubMenu(pageManager.vars[0]):navSubMenu(null);var a=$("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub");null!=a&&a.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("sublink");)a=a.parentNode;a.getData("sublink")&&navSubMenu(a)},!1);DOM.HEADER.remClass("loading")},!1))}
|
||||
DOM.MENUSIDE.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("link");)a=a.parentNode;a.getData("link")&&navMenu(a.getData("link"))},!1);function reload(){navMenu(pageManager.page)}var LOGIN={show:document.getElementById("user-data"),hide:document.getElementById("login-close"),page:document.getElementById("LOGIN")};LOGIN.show.addEventListener("click",function(a){LOGIN.page.className="active"},!1);
|
||||
LOGIN.hide.addEventListener("click",function(a){LOGIN.page.className=""},!1);pageManagerClass.prototype.ajax("/f/json/menu/conf",function(a){var c=[];a=JSON.parse(a);for(var b=0;b<a.length;b++)c.push(a[b].attributes["data-link"]);pageManager=new pageManagerClass;pageManager.setPage(null,"/view",DOM.CONTAINER,c,null);navMenu(pageManager.page)},"GET");
|
||||
LOGIN.hide.addEventListener("click",function(a){LOGIN.page.className=""},!1);api.send({path:"download/menu"},function(a){if(0==a.ModuleError){pagelist=[];for(var c=0;c<a.menu.length;c++)pagelist.push(a.menu[c].attributes["data-link"]);pageManager=new pageManagerClass;pageManager.setPage(null,"/view",DOM.CONTAINER,pagelist,null);navMenu(pageManager.page)}});
|
||||
|
|
|
@ -244,16 +244,18 @@ LOGIN.hide.addEventListener('click', function(e){ LOGIN.page.className = ''; },
|
|||
|
||||
/* [7] On recupere la liste des pages et on lance pageManager
|
||||
=========================================================*/
|
||||
pageManagerClass.prototype.ajax('/f/json/menu/conf', function(pagelistSerialized){
|
||||
// On initialise la liste des pages
|
||||
var pagelist = [];
|
||||
api.send({path:'download/menu'}, function(response){
|
||||
|
||||
// On deserialise le bordel
|
||||
var pagelistObject = JSON.parse(pagelistSerialized);
|
||||
// si erreur
|
||||
if( response.ModuleError != 0 )
|
||||
return;
|
||||
|
||||
// On initialise la liste des pages
|
||||
pagelist = [];
|
||||
|
||||
// On recupere chaque page
|
||||
for( var i = 0 ; i < pagelistObject.length; i++ )
|
||||
pagelist.push( pagelistObject[i]['attributes']['data-link'] );
|
||||
for( var i = 0 ; i < response.menu.length; i++ )
|
||||
pagelist.push( response.menu[i].attributes['data-link'] );
|
||||
|
||||
/* (1) On initialisa pageManager */
|
||||
pageManager = new pageManagerClass();
|
||||
|
@ -261,4 +263,4 @@ pageManagerClass.prototype.ajax('/f/json/menu/conf', function(pagelistSerialized
|
|||
|
||||
/* (2) On charge la premiere page */
|
||||
navMenu(pageManager.page);
|
||||
}, 'GET');
|
||||
});
|
||||
|
|
|
@ -7,35 +7,35 @@
|
|||
*
|
||||
*/
|
||||
function FormDeflater(container, tags, attr){
|
||||
/* [0] Vérification des INPUT
|
||||
=========================================================*/
|
||||
var correctParams = container instanceof Element;
|
||||
correctParams = correctParams && tags instanceof Array;
|
||||
correctParams = correctParams && attr instanceof Array;
|
||||
/* [0] Vérification des INPUT
|
||||
=========================================================*/
|
||||
var correctParams = container instanceof Element;
|
||||
correctParams = correctParams && tags instanceof Array;
|
||||
correctParams = correctParams && attr instanceof Array;
|
||||
|
||||
|
||||
/* [1] On formatte les données
|
||||
=========================================================*/
|
||||
// On met les tags en minuscule
|
||||
for( var i = 0 ; i < tags.length ; i++ )
|
||||
tags[i] = tags[i].toLowerCase();
|
||||
/* [1] On formatte les données
|
||||
=========================================================*/
|
||||
// On met les tags en minuscule
|
||||
for( var i = 0 ; i < tags.length ; i++ )
|
||||
tags[i] = tags[i].toLowerCase();
|
||||
|
||||
// On met les attributs en minuscule
|
||||
for( var i = 0 ; i < attr.length ; i++ )
|
||||
attr[i] = attr[i].toLowerCase();
|
||||
// On met les attributs en minuscule
|
||||
for( var i = 0 ; i < attr.length ; i++ )
|
||||
attr[i] = attr[i].toLowerCase();
|
||||
|
||||
/* [2] On enregistre les attributs
|
||||
=========================================================*/
|
||||
this.container = container;
|
||||
this.tags = tags;
|
||||
this.attr = attr;
|
||||
/* [2] On enregistre les attributs
|
||||
=========================================================*/
|
||||
this.container = container;
|
||||
this.tags = tags;
|
||||
this.attr = attr;
|
||||
}
|
||||
|
||||
|
||||
FormDeflater.prototype = {
|
||||
container: this.container, // Contiendra le 'formulaire' (<form> 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é)
|
||||
container: this.container, // Contiendra le 'formulaire' (<form> 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é)
|
||||
};
|
||||
|
||||
|
||||
|
@ -46,66 +46,66 @@ FormDeflater.prototype = {
|
|||
*
|
||||
*/
|
||||
FormDeflater.prototype.deflate = function(){
|
||||
/* [1] On récupère tous les enfants
|
||||
=========================================================*/
|
||||
var children = this.getChildren( this.container );
|
||||
/* [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 est défini (pas null ni vide) */
|
||||
if( attr !== null && attr.length > 0 ){
|
||||
/* (3) Si l'attribut est défini (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];
|
||||
/* (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( { target: children[c], attr: this.attr[a], value: children[c].value, checked: 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 } );
|
||||
|
||||
// {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 } ];
|
||||
// {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 };
|
||||
/* (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;
|
||||
}
|
||||
// On en a fini pour cet élément
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* [4] On met en forme les données
|
||||
=========================================================*/
|
||||
object = this.cleanOutput(object);
|
||||
/* [4] On met en forme les données
|
||||
=========================================================*/
|
||||
object = this.cleanOutput(object);
|
||||
|
||||
|
||||
return object;
|
||||
return object;
|
||||
};
|
||||
|
||||
|
||||
|
@ -119,13 +119,13 @@ FormDeflater.prototype.deflate = function(){
|
|||
*
|
||||
*/
|
||||
FormDeflater.prototype.checkable = function(element){
|
||||
if( element.tagName != 'INPUT' )
|
||||
return false;
|
||||
if( element.tagName != 'INPUT' )
|
||||
return false;
|
||||
|
||||
if( ['radio', 'checkbox'].indexOf( element.getAttribute('type').toLowerCase() ) == -1 )
|
||||
return false;
|
||||
if( ['radio', 'checkbox'].indexOf( element.getAttribute('type').toLowerCase() ) == -1 )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
|
@ -139,68 +139,68 @@ FormDeflater.prototype.checkable = function(element){
|
|||
*
|
||||
*/
|
||||
FormDeflater.prototype.cleanOutput = function(input){
|
||||
var output = {};
|
||||
var output = {};
|
||||
|
||||
/* [1] On parcourt toutes les valeurs récupérées
|
||||
=========================================================*/
|
||||
for( var key in input ){
|
||||
/* [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 ){
|
||||
/* [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 = [];
|
||||
// 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);
|
||||
/* (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;
|
||||
/* (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 );
|
||||
}
|
||||
/* (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 );
|
||||
}
|
||||
/* (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{
|
||||
/* [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;
|
||||
/* (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;
|
||||
/* (2) Sinon, on met la valeur de 'value' */
|
||||
else
|
||||
output[key] = input[key].value;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return output;
|
||||
return output;
|
||||
};
|
||||
|
||||
|
||||
|
@ -217,27 +217,27 @@ FormDeflater.prototype.cleanOutput = function(input){
|
|||
*
|
||||
*/
|
||||
FormDeflater.prototype.getChildren = function(parent){
|
||||
// Si le parent n'est pas un élément, on retourne aucun enfant
|
||||
if( !(parent instanceof Element) ) return [];
|
||||
// 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);
|
||||
/* [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;
|
||||
// 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])) );
|
||||
}
|
||||
/* [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;
|
||||
/* [3] On retourne le résultat
|
||||
=========================================================*/
|
||||
return allChildren;
|
||||
};
|
||||
|
||||
|
||||
|
@ -251,19 +251,19 @@ FormDeflater.prototype.getChildren = function(parent){
|
|||
*
|
||||
*/
|
||||
FormDeflater.prototype.filterElements = function(elements){
|
||||
// Contiendra les éléments correspondants aux critères
|
||||
var filtered = [];
|
||||
// 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]);
|
||||
/* [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;
|
||||
/* [2] On retourne les éléments filtrés
|
||||
=========================================================*/
|
||||
return filtered;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
/* ATTRIBUTS STATIQUES */
|
||||
public static $config_path = array(
|
||||
'local' => 'f/json/database-local/conf',
|
||||
'remote' => 'f/json/database/conf'
|
||||
'local' => __ROOT__.'/config/database-local.json',
|
||||
'remote' => __ROOT__.'/config/database.json'
|
||||
);
|
||||
|
||||
private static $pdo;
|
||||
|
@ -49,9 +49,9 @@
|
|||
|
||||
// chargement de la configuration du server SQL
|
||||
if( !checkdnsrr($_SERVER['SERVER_NAME'], 'NS') )
|
||||
$conf = json_decode( ResourceDispatcher::getResource(self::$config_path['local']), true );
|
||||
$conf = json_decode( file_get_contents(self::$config_path['local']), true );
|
||||
else
|
||||
$conf = json_decode( ResourceDispatcher::getResource(self::$config_path['remote']), true );
|
||||
$conf = json_decode( file_get_contents(self::$config_path['remote']), true );
|
||||
|
||||
// creation de l'instance en fonction des parametres
|
||||
self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
<?php
|
||||
<?php
|
||||
|
||||
namespace manager;
|
||||
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
|
||||
class MenuManager{
|
||||
|
||||
// Constantes
|
||||
public static $config_path = 'f/json/menu/conf';
|
||||
public static $config_path = __ROOT__.'/config/menu.json';
|
||||
|
||||
|
||||
// Attributs prives utiles (initialisation)
|
||||
|
@ -28,8 +27,8 @@
|
|||
/* [0] On met a jour la configuration
|
||||
=========================================================*/
|
||||
// Categories specifiees
|
||||
$this->categories = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
||||
|
||||
$this->categories = json_decode( file_get_contents(self::$config_path), true );
|
||||
|
||||
// Gestion de l'erreur de parsage
|
||||
if( $this->categories == null ){
|
||||
$this->error = ManagerError::ParsingFailed;
|
||||
|
@ -69,15 +68,15 @@
|
|||
foreach($this->categories as $category){
|
||||
// On met les attributs
|
||||
$render .= '<span'.$this->parseAttributes($category['attributes']).'>';
|
||||
|
||||
|
||||
// On met l'icone associee
|
||||
if( isset($category['icon']) )
|
||||
$render .= ResourceDispatcher::getResource($category['icon']);
|
||||
$render .= file_get_contents(__ROOT__.$category['icon']);
|
||||
|
||||
// On met le texte de la categorie
|
||||
if( isset($category['text']) )
|
||||
$render .= $category['text'];
|
||||
|
||||
|
||||
// On ferme la balise
|
||||
$render .= '</span>';
|
||||
|
||||
|
@ -97,7 +96,7 @@
|
|||
// On ferme la liste des sous-parties
|
||||
$render .= "</div>";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -120,7 +119,7 @@
|
|||
|
||||
|
||||
/* [3] On retourne la liste des categories
|
||||
=========================================================*/
|
||||
=========================================================*/
|
||||
return $views;
|
||||
}
|
||||
|
||||
|
@ -141,7 +140,7 @@
|
|||
=========================================================*/
|
||||
foreach($this->categories as $a=>$category){
|
||||
// Contiendra les sous-parties dont on a acces
|
||||
$access_children = array();
|
||||
$access_children = array();
|
||||
|
||||
/* [2] Pour chaque sous-partie
|
||||
=========================================================*/
|
||||
|
@ -238,4 +237,4 @@
|
|||
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
class ModuleRequest{
|
||||
|
||||
// Constantes
|
||||
public static $config_path = 'f/json/modules/conf';
|
||||
public static $config_path = __ROOT__.'/config/modules.json';
|
||||
public static $default_options = array(
|
||||
'download' => false
|
||||
);
|
||||
|
@ -47,7 +47,7 @@
|
|||
/* [0] On met a jour la configuration
|
||||
=========================================================*/
|
||||
// Modules specifies
|
||||
$this->modules = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
||||
$this->modules = json_decode( file_get_contents(self::$config_path), true );
|
||||
|
||||
// Gestion de l'erreur de parsage
|
||||
if( $this->modules == null ){
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
class Repo{
|
||||
|
||||
// Constantes
|
||||
public static $config_path = 'f/json/repositories/conf';
|
||||
public static $config_path = __ROOT__.'/config/repositories.json';
|
||||
|
||||
|
||||
// Attributs prives utiles (initialisation)
|
||||
|
@ -53,7 +53,7 @@
|
|||
/* [0] On met a jour la configuration
|
||||
=========================================================*/
|
||||
// Modules specifies
|
||||
$this->repositories = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
||||
$this->repositories = json_decode( file_get_contents(self::$config_path), true );
|
||||
|
||||
// Gestion de l'erreur de parsage
|
||||
if( $this->repositories == null ){
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
namespace manager\module;
|
||||
use \manager\Database;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\ManagerError;
|
||||
use \manager\Repo;
|
||||
|
||||
|
@ -25,7 +24,7 @@
|
|||
/* [0] On récupère dans la config le chemin du fichier
|
||||
=========================================================*/
|
||||
/* (1) On récupère le fichier */
|
||||
$uploadAuth = ResourceDispatcher::getResource('f/json/upload-auth/conf');
|
||||
$uploadAuth = file_get_contents(__ROOT__.'/config/upload-auth.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $uploadAuth === false )
|
||||
|
@ -47,7 +46,7 @@
|
|||
/* [1] On récupère le dictionnaire des valeurs
|
||||
=========================================================*/
|
||||
/* (1) On récupère le fichier */
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy');
|
||||
$dict = file_get_contents(__ROOT__.'/src/dynamic/dictionary.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
namespace manager\module;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\lightdb;
|
||||
|
||||
|
||||
|
@ -18,7 +17,7 @@
|
|||
*
|
||||
*/
|
||||
private static function loadDictionary(){
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy');
|
||||
$dict = file_get_contents(__ROOT__.'/src/dynamic/dictionary.json');
|
||||
|
||||
$dict = json_decode( $dict, true );
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace manager\module;
|
||||
use \manager\Database;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
|
@ -151,7 +150,7 @@
|
|||
|
||||
/* [0] On récupère le dictionnaire
|
||||
=========================================================*/
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy');
|
||||
$dict = file_get_contents(__ROOT__.'/src/dynamic/dictionary.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
|
@ -373,7 +372,7 @@
|
|||
|
||||
/* [0] On récupère le dictionnaire
|
||||
=========================================================*/
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy');
|
||||
$dict = file_get_contents(__ROOT__.'/src/dynamic/dictionary.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
|
@ -597,6 +596,42 @@
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LE CONTENU DU MENU
|
||||
*
|
||||
*/
|
||||
public static function menu($params){
|
||||
extract($params);
|
||||
|
||||
$menu_json = json_decode( file_get_contents(__ROOT__.'/config/menu.json'), true );
|
||||
|
||||
// si erreur
|
||||
if( $menu_json == null )
|
||||
return ['ModuleError' => ManagerError::ParsingFailed];
|
||||
|
||||
// si tout bon
|
||||
return [
|
||||
'ModuleError' => ManagerError::Success,
|
||||
'menu' => $menu_json
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace manager\module;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
class module{
|
||||
|
||||
|
@ -41,7 +40,7 @@
|
|||
/* [1] Récupération de la configuration
|
||||
=========================================================*/
|
||||
// On récupère le fichier et on le parse
|
||||
$modules = json_decode( ResourceDispatcher::getResource('f/json/modules/conf'), true );
|
||||
$modules = json_decode( file_get_contents(__ROOT__.'/config/modules.json'), true );
|
||||
|
||||
// Gestion de l'erreur de parsage
|
||||
if( $modules == null )
|
||||
|
@ -97,7 +96,7 @@
|
|||
/* [0] Récupération de la configuration
|
||||
=========================================================*/
|
||||
// On récupère le fichier et on le parse
|
||||
$modules = json_decode( ResourceDispatcher::getResource('f/json/modules/conf'), true );
|
||||
$modules = json_decode( file_get_contents(__ROOT__.'/config/modules.json'), true );
|
||||
|
||||
// Gestion de l'erreur de parsage
|
||||
if( $modules == null )
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace manager\module;
|
||||
use \manager\Database;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
|
@ -26,7 +25,7 @@
|
|||
/* [1] Chargement du fichier de config
|
||||
=========================================================*/
|
||||
/* (1) On récupère le fichier */
|
||||
$uploadAuth = ResourceDispatcher::getResource('f/json/upload-auth/conf');
|
||||
$uploadAuth = file_get_contents(__ROOT__.'/config/upload-auth.json');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $uploadAuth === false )
|
||||
|
|
51
view.php
51
view.php
|
@ -1,5 +1,4 @@
|
|||
<?php use \manager\ResourceDispatcher;
|
||||
use \manager\MenuManager; ?>
|
||||
<?php use \manager\MenuManager; ?>
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -14,36 +13,36 @@
|
|||
<meta name='description' content="Tableau de bord pour une enquete sociologique sur les liens sociaux entre les reseaux sociaux et la vie hors-ligne">
|
||||
|
||||
<!-- Dépendences CSS -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/reset' /> <!-- Reset du css natif des browsers -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/font' /> <!-- Positionnement global des pages -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/layout' /> <!-- Positionnement global des pages -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/header' /> <!-- Gestion du header -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/menu-side' /> <!-- Gestion du menu -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/container' /> <!-- Gestion du container -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/global' /> <!-- Style global -->
|
||||
<link type='text/css' rel='stylesheet' href='/f/css/min/css/notif' /> <!-- Inclusion du system de notifs -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/reset/min.css' /> <!-- Reset du css natif des browsers -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/font/min.css' /> <!-- Positionnement global des pages -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/layout/min.css' /> <!-- Positionnement global des pages -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/header/min.css' /> <!-- Gestion du header -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/menu-side/min.css' /> <!-- Gestion du menu -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/container/min.css' /> <!-- Gestion du container -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/global/min.css' /> <!-- Style global -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/notif/min.css' /> <!-- Inclusion du system de notifs -->
|
||||
|
||||
|
||||
<!-- Dépendences Javascript -->
|
||||
<script type='text/javascript' src='/f/js/crc32-min/js/lib' ></script> <!-- Système de hash unique et rapide -->
|
||||
<script type='text/javascript' src='/f/js/local-storage-interface-min/js/lib' ></script> <!-- Interface de gestion du 'localStorage' -->
|
||||
<script type='text/javascript' src='/f/js/html-builder-min/js/lib' ></script> <!-- Gestion de construction de HTML -->
|
||||
<script type='text/javascript' src='/f/js/input-checker-min/js/lib' ></script> <!-- Gestion dynamique des saisies -->
|
||||
<script type='text/javascript' src='/f/js/form-deflater-min/js/lib' ></script> <!-- Gestion des formulaires js-friendly -->
|
||||
<script type='text/javascript' src='/f/js/reset-min/js/lib' ></script> <!-- Corrections Javascript natif (ajouts) -->
|
||||
<script type='text/javascript' src='/f/js/api-min/js/lib' ></script> <!-- Gestion des transactions avec le serveur -->
|
||||
<script type='text/javascript' src='/f/js/page-manager-min/js/lib' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
||||
<script type='text/javascript' src='/f/js/notif-min/js/lib' ></script> <!-- Gestion des notifications -->
|
||||
<script type='text/javascript' src='/f/js/shortcut-manager/js/lib' ></script> <!-- Gestion des raccourcis clavier -->
|
||||
<script type='text/javascript' src='/js/lib/crc32-min.js' ></script> <!-- Système de hash unique et rapide -->
|
||||
<script type='text/javascript' src='/js/lib/local-storage-interface-min.js' ></script> <!-- Interface de gestion du 'localStorage' -->
|
||||
<script type='text/javascript' src='/js/lib/html-builder-min.js' ></script> <!-- Gestion de construction de HTML -->
|
||||
<script type='text/javascript' src='/js/lib/input-checker-min.js' ></script> <!-- Gestion dynamique des saisies -->
|
||||
<script type='text/javascript' src='/js/lib/form-deflater-min.js' ></script> <!-- Gestion des formulaires js-friendly -->
|
||||
<script type='text/javascript' src='/js/lib/reset-min.js' ></script> <!-- Corrections Javascript natif (ajouts) -->
|
||||
<script type='text/javascript' src='/js/lib/api-min.js' ></script> <!-- Gestion des transactions avec le serveur -->
|
||||
<script type='text/javascript' src='/js/lib/page-manager-min.js' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
||||
<script type='text/javascript' src='/js/lib/notif-min.js' ></script> <!-- Gestion des notifications -->
|
||||
<script type='text/javascript' src='/js/lib/shortcut-manager.js' ></script> <!-- Gestion des raccourcis clavier -->
|
||||
|
||||
<!-- Dépendences Spéficiques pré-chargeables -->
|
||||
<script type='text/javascript' src='/f/js/input-html-phone-data-min/js/includes' ></script> <!-- Gestion du constructeur HTML pour la page d'acquisition 'phone' -->
|
||||
<script type='text/javascript' src='/f/js/input-html-facebook-data-min/js/includes' ></script> <!-- Gestion du constructeur HTML pour la page d'acquisition 'facebook' -->
|
||||
<script type='text/javascript' src='/js/includes/input-html-phone-data-min.js' ></script> <!-- Gestion du constructeur HTML pour la page d'acquisition 'phone' -->
|
||||
<script type='text/javascript' src='/js/includes/input-html-facebook-data-min.js' ></script> <!-- Gestion du constructeur HTML pour la page d'acquisition 'facebook' -->
|
||||
|
||||
<!-- Librairies Externes Javascript -->
|
||||
<script type='text/javascript' src='/f/js/highcharts/highcharts' ></script> <!-- Librairie pour les graphiques -->
|
||||
<script type='text/javascript' src='/f/js/exporting/highcharts/modules' ></script> <!-- Librairie pour les graphiques -->
|
||||
<script type='text/javascript' src='/f/js/_charts-min/js/lib' ></script> <!-- Librairie pour les graphiques -->
|
||||
<script type='text/javascript' src='/js/lib/highcharts/js/highcharts.js' ></script> <!-- Librairie pour les graphiques -->
|
||||
<script type='text/javascript' src='/js/highcharts/js/modules/exporting.js' ></script> <!-- Librairie pour les graphiques -->
|
||||
<script type='text/javascript' src='/js/lib/_charts-min.js' ></script> <!-- Librairie pour les graphiques -->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
@ -121,7 +120,7 @@
|
|||
|
||||
|
||||
<!-- Dépendences Javascript après chargement des éléments -->
|
||||
<script type='text/javascript' src='/f/js/action-script-min/js'></script>
|
||||
<script type='text/javascript' src='/js/action-script-min.js'></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\Repo;
|
||||
?>
|
||||
|
||||
|
@ -22,11 +21,11 @@
|
|||
<section data-sublink='presentation'>
|
||||
|
||||
<center>
|
||||
<img src='/f/svg/icon/st'/>
|
||||
<img src='/f/svg/sms/st/credits'/>
|
||||
<img src='/f/jpg/cnrs/st/credits'/>
|
||||
<img src='/f/png/univ_midi/st/credits'/>
|
||||
<img src='/f/png/ut2/st/credits'/>
|
||||
<img src='/src/static/icon.svg'/>
|
||||
<img src='/src/static/credits/sms.svg'/>
|
||||
<img src='/src/static/credits/cnrs.jpg'/>
|
||||
<img src='/src/static/credits/univ_midi.png'/>
|
||||
<img src='/src/static/credits/ut2.png'/>
|
||||
</center>
|
||||
|
||||
<p>Bienvenue sur la Web Application dévéloppée par des chercheurs du CNRS appartenant au LabEx SMS (Structuration des Mondes Sociaux) de l'université de Toulouse.</p>
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
use \manager\Repo;
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ManagerError;
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\Repo;
|
||||
debug();
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
use \manager\Repo;
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\Database;
|
||||
|
||||
debug();
|
||||
|
@ -60,11 +59,11 @@ if( permission('admin') ){
|
|||
|
||||
|
||||
echo "<div>";
|
||||
echo "<span>".$token['name']."</span>";
|
||||
echo "<span data-prefix='Expiration'>".Database::frDate($token['expires'])."</span>";
|
||||
echo "<span>".$token['name']."</span>";
|
||||
echo "<span data-prefix='Expiration'>".Database::frDate($token['expires'])."</span>";
|
||||
echo "</div><div>";
|
||||
echo "<span><span class='flag'>".$token['token']."</span></span>";
|
||||
echo "</div>";
|
||||
echo "<span><span class='flag'>".$token['token']."</span></span>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<button class='remove-token'>Supprimer</button>";
|
||||
echo "</li>";
|
||||
|
@ -138,9 +137,9 @@ if( permission('admin') ){
|
|||
|
||||
|
||||
echo "<div>";
|
||||
echo "<span data-prefix='Identifiant'>".$user['login']."</span>";
|
||||
echo "<span data-prefix='Adresse mail'>".$user['mail']."</span>";
|
||||
echo "</div>";
|
||||
echo "<span data-prefix='Identifiant'>".$user['login']."</span>";
|
||||
echo "<span data-prefix='Adresse mail'>".$user['mail']."</span>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<button class='remove-user'>Supprimer</button>";
|
||||
echo "</li>";
|
||||
|
|
Loading…
Reference in New Issue