Upgrade framework's structure

This commit is contained in:
xdrm-brackets 2016-10-18 16:03:03 +02:00
parent 8ad88f6676
commit 2cf46983a3
172 changed files with 2019 additions and 1939 deletions

1
.gitignore vendored
View File

@ -1,4 +1,3 @@
.sass-cache/
*.css.map
.htaccess
.tags

3
.htaccess Executable file
View File

@ -0,0 +1,3 @@
RewriteEngine on
RewriteRule ^(.*)$ public_html/$1 [QSA,L]

View File

@ -2,7 +2,10 @@
/* [0] On definit la racine __ROOT__ si c'est pas deja fait
=========================================================*/
if( !defined('__ROOT__') ) define('__ROOT__', dirname(dirname(__FILE__)) );
if( !defined('__ROOT__') ) define('__ROOT__', dirname(__FILE__) );
if( !defined('__CONFIG__') ) define('__CONFIG__', __ROOT__.'/config' );
if( !defined('__BUILD__') ) define('__BUILD__', __ROOT__.'/build' );
if( !defined('__PUBLIC__') ) define('__PUBLIC__', __ROOT__.'/public_html' );
@ -56,7 +59,7 @@
===============================================*/
// On remplace les '\' par des '/'
$path = str_replace('\\', '/', $className) . '.php';
$path = __ROOT__.'/'.$path;
$path = __BUILD__.'/'.$path;
// Si le fichier existe
if( file_exists($path) )

2
build/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

View File

@ -1,8 +1,8 @@
<?php
namespace manager;
namespace api\core;
use \manager\Repo;
use \database\core\Repo;

View File

@ -1,6 +1,6 @@
<?php
namespace manager;
namespace api\core;
class Checker{

View File

@ -1,8 +1,9 @@
<?php
namespace manager;
use \manager\Database;
use \manager\Authentification;
namespace api\core;
use \database\core\Database;
use \api\core\Authentification;
use \manager\ManagerError;
class ModuleRequest{
@ -523,7 +524,7 @@
*
*/
private function getFunctionCaller(){
return [ '\\manager\\module\\'.$this->path['module'], $this->path['method'] ];
return [ '\\api\\module\\'.$this->path['module'], $this->path['method'] ];
}

View File

@ -1,6 +1,7 @@
<?php
namespace manager;
namespace api\core;
use \manager\ManagerError;
// FORMAT:

View File

@ -1,11 +1,11 @@
<?php
namespace manager\module;
use \manager\Database;
namespace api\module;
use \database\core\Database;
use \manager\sessionManager;
use \manager\Authentification;
use \api\core\Authentification;
use \manager\ManagerError;
use \manager\Repo;
use \database\core\Repo;
use \manager\repo\cluster as clusterRepo;
class authentificationDefault{

View File

@ -1,11 +1,11 @@
<?php
namespace manager\module;
use \manager\ViewManager;
use \manager\Database;
namespace api\module;
use \viewer\core\Viewer;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
use \database\core\Repo;
use \manager\repo\cluster as clusterRepo;
class clusterDefault{

View File

@ -1,10 +1,10 @@
<?php
namespace manager\module;
use \manager\Database;
namespace api\module;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
use \database\core\Repo;
use \manager\repo\cluster as clusterRepo;
class machineDefault{

View File

@ -1,6 +1,6 @@
<?php
namespace manager\module;
namespace api\module;
use \manager\ManagerError;
use \manager\ResourceDispatcher;

View File

@ -1,10 +1,10 @@
<?php
namespace manager\module;
use \manager\Database;
namespace api\module;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
use \database\core\Repo;
class userDefault{

View File

@ -1,6 +1,7 @@
<?php
namespace manager;
namespace database\core;
use \manager\ManagerError;
class Database{

View File

@ -1,8 +1,9 @@
<?php
namespace manager;
namespace database\core;
use \manager\Authentification;
use \manager\ManagerError;
use \api\core\Authentification;
// FORMAT:
@ -194,7 +195,7 @@
*
*/
private function getFunctionCaller(){
return [ '\\manager\\repo\\'.$this->path['repo'], $this->path['method'] ];
return [ '\\database\\repo\\'.$this->path['repo'], $this->path['method'] ];
}

View File

@ -1,8 +1,8 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\repo\cluster as clusterRepo;

View File

@ -1,11 +1,11 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \orm\core\Table;
use \orm\core\Rows;
class action_merge extends parentRepo{

View File

@ -1,10 +1,10 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \orm\core\Table;
use \orm\core\Rows;
class admin extends parentRepo{

View File

@ -1,11 +1,11 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \orm\core\Table;
use \orm\core\Rows;
class chip extends parentRepo{

View File

@ -1,8 +1,8 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\repo\cluster as clusterRepo;

View File

@ -1,11 +1,11 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \manager\Checker;
use \orm\core\Table;
use \orm\core\Rows;
use \api\core\Checker;
use \manager\repo\cluster as clusterRepo;
class machine extends parentRepo{

View File

@ -1,11 +1,11 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
use \manager\ManagerError;
use \manager\Repo;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \database\core\Repo;
use \orm\core\Table;
use \orm\core\Rows;
class machine_cluster extends parentRepo{

View File

@ -1,7 +1,7 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
class parentRepo{

View File

@ -1,8 +1,8 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\repo\cluster as clusterRepo;

View File

@ -1,8 +1,8 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\Repo;
namespace database\repo;
use \database\core\Database;
use \database\core\Repo;
use \manager\ManagerError;
use \manager\repo\cluster as clusterRepo;

View File

@ -1,9 +1,9 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\ORM\Table;
use \manager\ORM\Rows;
namespace database\repo;
use \database\core\Database;
use \orm\core\Table;
use \orm\core\Rows;
class user extends parentRepo{

View File

@ -1,11 +1,11 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
use \manager\ManagerError;
use \manager\Repo;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \database\core\Repo;
use \orm\core\Table;
use \orm\core\Rows;
class user_cluster extends parentRepo{

View File

@ -1,10 +1,10 @@
<?php
namespace manager\repo;
use \manager\Database;
namespace database\repo;
use \database\core\Database;
use \manager\sessionManager;
use \manager\ORM\Table;
use \manager\ORM\Rows;
use \orm\core\Table;
use \orm\core\Rows;
class warehouse extends parentRepo{

View File

@ -1,9 +1,9 @@
<?php
namespace manager\ORM;
namespace orm\core;
use \manager\Database;
use \manager\ORM\SQLBuilder;
use \database\core\Database;
use \orm\core\SQLBuilder;
class Rows{

View File

@ -1,9 +1,9 @@
<?php
namespace manager\ORM;
namespace orm\core;
use \manager\Database;
use \manager\ORM\Rows;
use \database\core\Database;
use \orm\core\Rows;
class SQLBuilder{

View File

@ -1,17 +1,17 @@
<?php
namespace manager\ORM;
namespace orm\core;
use \manager\Database;
use \database\core\Database;
use \manager\ManagerError;
use \manager\ORM\Rows;
use \orm\core\Rows;
// CLASSE MAITRE
class Table{
private static $database = 'stefproject';
private static $database = 'logauth';
/* RENVOIE LES DONNEES D'UNE TABLE
@ -110,22 +110,86 @@
// // USE CASE :: ACCESS TABLE
// ORM::Table = ORM::Table('user');
/*** USE CASE :: ACCESS TABLE `user` ***/
// ORM::Table('user');
/**** USE CASE :: WHERE ****/
// WHERE `username` = 'someUsername'
// ORM::Table('user')->whereUsername('someUsername');
// EQUIVALENT TO
// ORM::Table('user')->whereUsername('someUsername', Rows::COND_EQUAL);
// WHERE `id_user` < 100
// ORM::Table('user')->whereIdUser(100, Rows::COND_INF);
// WHERE `id_user` <= 100
// ORM::Table('user')->whereIdUser(100, Rows::COND_INFEQ);
// WHERE `id_user` > 10
// ORM::Table('user')->whereIdUser(10, Rows::COND_SUP);
// WHERE `id_user` >= 10
// ORM::Table('user')->whereIdUser(10, Rows::COND_SUPEQ);
// WHERE `id_user` in (1, 2, 3, 8)
// ORM::Table('user')->whereIdUser([1, 2, 3, 8], Rows::COND_IN);
// WHERE `id_user` LIKE 'John %'
// ORM::Table('user')->whereIdUser('John %', Rows::COND_LIKE);
/*** USE CASE :: ORDER BY ****/
// ORDER BY `a` ASC, `b` DESC
// Table::get('someTable')
// ->orderby('a', Rows::ORDER_ASC)
// ->orderby('b', Rows::ORDER_DESC);
//
// // USE CASE :: getBy{ATTRIBUTE}
// ORM::Row = ORM::Table->getByUsername('someUsername'); // ORM_FETCH by default
// ORM::Row = ORM::Table->getByUsername('someUsername', ORM_FETCH);
// ORM::Column = ORM::Table->getByUsername('someUsername', ORM_FETCHALL);
//
// // USE CASE :: getById -> primary key(s)
// ORM::Row = ORM::Table->getById(5, 7); // because PRIMARY KEY is composed by '5' and '7'
//
// // USE CASE :: getAll
// ORM::Column = ORM::Table->getAll();
//
// // USE CASE :: select(FIELD)
// mixed = ORM::Row->select('username');
//
// // USE CASE :: select(FIELD1, FIELD2, ...)
// mixed = ORM::Row->select('id_user', 'username');
// Note: `Rows::ORDER_ASC` is set by default if the given FLAG is invalid
/**** USE CASE :: SELECT ****/
// SELECT id_user, username
// Table::get('user')
// ->select('id_user')
// ->select('username');
/**** USE CASE :: AGGREGATION FUNCTIONS ****/
// SELECT COUNT(`count`)
// Table::get('user')->select('count', Rows::SEL_COUNT)
// SELECT SUM(distinct `count`)
// Table::get('user')->select('count', Rows::SEL_SUM, Rows::SEL_DISTINCT);
// SELECT AVG(`count`)
// Table::get('user')->select('count', Rows::SEL_AVG);
// SELECT MAX(`id_user`)
// Table::get('user')->select('id_user', Rows::SEL_MAX);
// SELECT MIN(`id_user`)
// Table::get('user')->select('id_user', Rows::SEL_MIN);
// SELECT GROUP_CONCAT(`count`)
// Table::get('user')->select('count', Rows::SEL_CONCAT);
/**** USE CASE :: FETCH ****/
// SELECT ... FROM ... WHERE ... ORDERBY ... LIMIT ...
// Table::get('user')
// ->select('id_user')
// ->fetch();
// SELECT UNIQUE ... FROM ... WHERE ... ORDERBY ... LIMIT ...
// Table::get('user')
// ->select('id_user')
// ->unique->fetch();
/**** USE CASE :: TABLE JOIN ****/
// WHERE `user`.`id_user` = `user_merge`.`id_user`
// Table::get('user_merge')->join(
// Table::get('user')->whereIdUser(1, Rows::COND_SUP)
// );

View File

@ -3,7 +3,7 @@
/* Classe de gestion de route (match) */
/**************************************/
namespace router;
namespace router\core;
class Route{

View File

@ -3,7 +3,7 @@
/* Classe de gestion des routes (URL/ressources) */
/*************************************************/
namespace router;
namespace router\core;
class Router{
// ATTRIBUTS

View File

@ -1,14 +1,14 @@
<?php
namespace manager;
namespace viewer\core;
use \manager\ViewManager;
use \viewer\core\Viewer;
use \manager\ManagerError;
class ViewManager{
class Viewer{
public $error = ManagerError::Success;
@ -105,7 +105,7 @@
/* [2] On vérifie que le template existe
=========================================================*/
$class = '\\manager\\views\\'.$match[1].'\\'.$match[1].'_'.$match[2];
$class = '\\viewer\\view\\'.$match[1].'\\'.$match[1].'_'.$match[2];
$method = 'view';
/* (1) On vérifie que la classe existe */
@ -181,7 +181,7 @@
// USE case
//
// $myView = new ViewManager('templateParent.templateModel', [
// $myView = new Viewer('templateParent.templateModel', [
// 'myVar' => 1,
// 'helloMsg' => 'Hello',
// ]);

View File

@ -1,10 +1,10 @@
<?php
namespace manager\views\group;
use \manager\ViewManager;
use \manager\ModuleRequest;
namespace viewer\view\group;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \manager\ManagerError;
use \manager\Authentification;
use \api\core\Authentification;
use \manager\repo\cluster as clusterRepo;
class group_groupChoice{
@ -49,7 +49,7 @@
/* (2) Si on ne le trouve pas, on retourne une erreur */
if( $getUserClusters->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère les données du groupe */
$USERCLUSTERS = $getUserClusters->get('clusters');
@ -59,7 +59,7 @@
$USERCLUSTERS[$c]['id_cluster'] = $cluster['id_user_cluster'];
/* (5) On construit la vue */
$user_view = ViewManager::replaceMultiple(
$user_view = Viewer::replaceMultiple(
self::template('clusterlist'),
$USERCLUSTERS,
[
@ -79,7 +79,7 @@
/* (2) Si on ne le trouve pas, on retourne une erreur */
if( $getMachineClusters->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère les données du groupe */
$MACHINECLUSTERS = $getMachineClusters->get('clusters');
@ -89,7 +89,7 @@
$MACHINECLUSTERS[$c]['id_cluster'] = $cluster['id_machine_cluster'];
/* (5) On construit la vue */
$machine_view = ViewManager::replaceMultiple(
$machine_view = Viewer::replaceMultiple(
self::template('clusterlist'),
$MACHINECLUSTERS,
[
@ -101,7 +101,7 @@
/* [3] On renvoie la vue globale
=========================================================*/
return ViewManager::replaceSingle(
return Viewer::replaceSingle(
self::template(), [
'clusters' => $user_view.$machine_view
]

View File

@ -1,10 +1,10 @@
<?php
namespace manager\views\group;
use \manager\ViewManager;
use \manager\ModuleRequest;
namespace viewer\view\group;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \manager\ManagerError;
use \manager\Authentification;
use \api\core\Authentification;
use \manager\repo\cluster as clusterRepo;
class group_membersChoice{
@ -79,7 +79,7 @@
=========================================================*/
/* (1) On vérifie les paramètres */
if( !isset($params['id_cluster']) || !is_numeric($params['id_cluster']) || !isset($params['class']) || !is_numeric($params['class']) )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (2) On initialise les vues */
$view = '';
@ -99,7 +99,7 @@
/* (2) Si on ne le trouve pas, on retourne une erreur */
if( $checktypeResponse->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère les données du groupe */
$currentCluster = $checktypeResponse->get('cluster');
@ -117,7 +117,7 @@
/* (2) Si erreur, on retourne l'erreur */
if( $getmembersResponse->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère la liste des UID uniquement */
$members_id = [];
@ -138,7 +138,7 @@
/* (2) si erreur, on affiche l'explicitation */
if( $getusersResponse->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère la liste des utilisateurs */
$USERLIST = $getusersResponse->get('users');
@ -153,7 +153,7 @@
/* (2) On génère la vue */
$header = self::template('userheader');
$members_view = ViewManager::replaceMultiple(
$members_view = Viewer::replaceMultiple(
self::template('userlist'),
$USERLIST
);
@ -171,7 +171,7 @@
/* (2) si erreur, on affiche l'explicitation */
if( $getmachinesResponse->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On récupère la liste des machines */
$MACHINELIST = $getmachinesResponse->get('machines');
@ -186,7 +186,7 @@
/* (2) On génère la vue */
$header = self::template('machineheader');
$members_view = ViewManager::replaceMultiple(
$members_view = Viewer::replaceMultiple(
self::template('machinelist'),
$MACHINELIST
);
@ -195,7 +195,7 @@
return ViewManager::replaceSingle(
return Viewer::replaceSingle(
self::template(), [
'id_cluster' => $params['id_cluster'],
'class' => $params['class'],

View File

@ -1,9 +1,9 @@
<?php
namespace manager\views\group;
use \manager\ViewManager;
use \manager\ModuleRequest;
use \manager\Authentification;
namespace viewer\view\group;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \api\core\Authentification;
use \manager\ManagerError;
class group_view{
@ -92,7 +92,7 @@
/* (2) si erreur, on affiche l'explicitation */
if( $getAllUsers->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On enregistre le résultat */
$USERCLUSTERS = $getAllUsers->get('clusters');
@ -107,7 +107,7 @@
/* (2) si erreur, on affiche l'explicitation */
if( $getAllMachines->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
/* (3) On enregistre le résultat */
$MACHINECLUSTERS = $getAllMachines->get('clusters');
@ -128,7 +128,7 @@
else $members = [];
/* (3) On crées les vues des membres (utilisateurs) */
$USERCLUSTERS[$u]['users'] = ViewManager::replaceMultiple(
$USERCLUSTERS[$u]['users'] = Viewer::replaceMultiple(
self::template('user'),
$members,
[ 'id_cluster' => 'u'.$cluster['id_user_cluster'] ]
@ -137,17 +137,17 @@
/* (4) On ajoute les attributs utiles */
$USERCLUSTERS[$u]['id_cluster'] = 'u'.$cluster['id_user_cluster'];
$USERCLUSTERS[$u]['members'] = (count($members)<2) ? count($members).' utilisateur' : count($members).' utilisateurs';
$USERCLUSTERS[$u]['icon_type'] = file_get_contents(__ROOT__.'/src/static/menu-side/users.svg');
$USERCLUSTERS[$u]['icon_type'] = file_get_contents(__PUBLIC__.'/src/static/menu-side/users.svg');
}
/* (5) On crée la vue de la liste des tous les groupes d'utilisateurs */
$user_clusters = ViewManager::replaceMultiple(
$user_clusters = Viewer::replaceMultiple(
self::template('user_cluster'),
$USERCLUSTERS, [
'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/users.svg' ),
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' )
'icon_type' => file_get_contents( __PUBLIC__.'/src/static/menu-side/users.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' )
]);
@ -169,7 +169,7 @@
else $members = [];
/* (3) On crées les vues des membres (machines) */
$MACHINECLUSTERS[$u]['machines'] = ViewManager::replaceMultiple(
$MACHINECLUSTERS[$u]['machines'] = Viewer::replaceMultiple(
self::template('machine'),
$members,
[ 'id_cluster' => 'm'.$cluster['id_machine_cluster'] ]
@ -178,24 +178,24 @@
/* (4) On ajoute les attributs utiles */
$MACHINECLUSTERS[$u]['id_cluster'] = 'm'.$cluster['id_machine_cluster'];
$MACHINECLUSTERS[$u]['members'] = (count($members)<2) ? count($members).' machine' : count($members).' machines';
$MACHINECLUSTERS[$u]['icon_type'] = file_get_contents(__ROOT__.'/src/static/menu-side/machines.svg');
$MACHINECLUSTERS[$u]['icon_type'] = file_get_contents(__PUBLIC__.'/src/static/menu-side/machines.svg');
}
/* (5) On crée la vue de la liste des tous les groupes de machines */
$machine_clusters = ViewManager::replaceMultiple(
$machine_clusters = Viewer::replaceMultiple(
self::template('machine_cluster'),
$MACHINECLUSTERS, [
'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/device.svg' ),
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' )
'icon_type' => file_get_contents( __PUBLIC__.'/src/static/menu-side/device.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' )
]);
return ViewManager::replaceSingle(self::template(), [ 'clusterlist' => $user_clusters.''.$machine_clusters ]);
return Viewer::replaceSingle(self::template(), [ 'clusterlist' => $user_clusters.''.$machine_clusters ]);
}

View File

@ -1,9 +1,9 @@
<?php
namespace manager\views\machine;
use \manager\ViewManager;
use \manager\ModuleRequest;
use \manager\Authentification;
namespace viewer\view\machine;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \api\core\Authentification;
use \manager\ManagerError;
class machine_groups{
@ -62,7 +62,7 @@
// si erreur, on affiche l'explicitation
if( $answer->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
$CLUSTERLIST = $answer->get('clusters');
@ -80,7 +80,7 @@
$CLUSTERLIST[$c]['count'] = count($machines);
$CLUSTERLIST[$c]['machines'] = ViewManager::replaceMultiple(
$CLUSTERLIST[$c]['machines'] = Viewer::replaceMultiple(
self::template('machine'),
$machines,
[ 'id_cluster' => $cluster['id_machine_cluster'] ]
@ -88,20 +88,20 @@
}
$view_cluster = ViewManager::replaceMultiple(
$view_cluster = Viewer::replaceMultiple(
self::template('machine_cluster'),
$CLUSTERLIST, [
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' ),
'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/device.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' ),
'icon_type' => file_get_contents( __PUBLIC__.'/src/static/menu-side/device.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
]);
return ViewManager::replaceSingle(self::template(), [ 'clusterlist' => $view_cluster ]);
return Viewer::replaceSingle(self::template(), [ 'clusterlist' => $view_cluster ]);
}

View File

@ -1,9 +1,9 @@
<?php
namespace manager\views\machine;
use \manager\ViewManager;
use \manager\ModuleRequest;
use \manager\Authentification;
namespace viewer\view\machine;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \api\core\Authentification;
use \manager\ManagerError;
class machine_view{
@ -55,7 +55,7 @@
// si erreur, on affiche l'explicitation
if( $answer->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
$MACHINELIST = $answer->get('machines');
@ -68,7 +68,7 @@
if( $clustersRes->error == ManagerError::Success ) $clusters = $clustersRes->get('clusters');
else $clusters = [];
$MACHINELIST[$u]['grouplist'] = ViewManager::replaceMultiple(
$MACHINELIST[$u]['grouplist'] = Viewer::replaceMultiple(
self::template('cluster'),
$clusters,
[ 'id_machine' => $machine['id_machine'] ]
@ -76,19 +76,19 @@
}
$view_machine = ViewManager::replaceMultiple(
$view_machine = Viewer::replaceMultiple(
self::template('machine'),
$MACHINELIST, [
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
]);
return ViewManager::replaceSingle(self::template(), [ 'machinelist' => $view_machine ]);
return Viewer::replaceSingle(self::template(), [ 'machinelist' => $view_machine ]);
}

View File

@ -1,9 +1,9 @@
<?php
namespace manager\views\user;
use \manager\ViewManager;
use \manager\ModuleRequest;
use \manager\Authentification;
namespace viewer\view\user;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \api\core\Authentification;
use \manager\ManagerError;
class user_groups{
@ -62,7 +62,7 @@
// si erreur, on affiche l'explicitation
if( $answer->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
$CLUSTERLIST = $answer->get('clusters');
@ -80,7 +80,7 @@
$CLUSTERLIST[$c]['count'] = count($users);
$CLUSTERLIST[$c]['users'] = ViewManager::replaceMultiple(
$CLUSTERLIST[$c]['users'] = Viewer::replaceMultiple(
self::template('user'),
$users,
[ 'id_cluster' => $cluster['id_user_cluster'] ]
@ -88,20 +88,20 @@
}
$view_cluster = ViewManager::replaceMultiple(
$view_cluster = Viewer::replaceMultiple(
self::template('user_cluster'),
$CLUSTERLIST, [
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' ),
'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/users.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' ),
'icon_type' => file_get_contents( __PUBLIC__.'/src/static/menu-side/users.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
]);
return ViewManager::replaceSingle(self::template(), [ 'clusterlist' => $view_cluster ]);
return Viewer::replaceSingle(self::template(), [ 'clusterlist' => $view_cluster ]);
}

View File

@ -1,9 +1,9 @@
<?php
namespace manager\views\user;
use \manager\ViewManager;
use \manager\ModuleRequest;
use \manager\Authentification;
namespace viewer\view\user;
use \viewer\core\Viewer;
use \api\core\ModuleRequest;
use \api\core\Authentification;
use \manager\ManagerError;
class user_view{
@ -68,7 +68,7 @@
// si erreur, on affiche l'explicitation
if( $answer->error != ManagerError::Success )
return ViewManager::$htmlError;
return Viewer::$htmlError;
$USERLIST = $answer->get('users');
@ -80,7 +80,7 @@
if( $clustersRes->error == ManagerError::Success ) $clusters = $clustersRes->get('clusters');
else $clusters = [];
$USERLIST[$u]['grouplist'] = ViewManager::replaceMultiple(
$USERLIST[$u]['grouplist'] = Viewer::replaceMultiple(
self::template('cluster'),
$clusters,
[ 'id_user' => $user['id_user'] ]
@ -88,21 +88,21 @@
}
$view_user = ViewManager::replaceMultiple(
$view_user = Viewer::replaceMultiple(
self::template('user'),
$USERLIST, [
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' ),
'icon_card' => file_get_contents( __ROOT__.'/src/static/container/card.svg' ),
'icon_mail' => file_get_contents( __ROOT__.'/src/static/container/mail.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_remove' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/remove.svg' ),
'icon_edit' => file_get_contents( __PUBLIC__.'/src/static/sub-menu-side/edit.svg' ),
'icon_card' => file_get_contents( __PUBLIC__.'/src/static/container/card.svg' ),
'icon_mail' => file_get_contents( __PUBLIC__.'/src/static/container/mail.svg' ),
'icon_group' => file_get_contents( __PUBLIC__.'/src/static/container/group.svg' ),
]);
return ViewManager::replaceSingle(self::template(), [ 'userlist' => $view_user ]);
return Viewer::replaceSingle(self::template(), [ 'userlist' => $view_user ]);
}

2
config/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

View File

@ -1,6 +1,6 @@
{
"host" : "localhost",
"dbname" : "stefproject",
"dbname" : "logauth",
"user" : "php",
"password" : "Qt358nUdyeTxLDM8"
}

View File

@ -1,6 +1,6 @@
{
"host" : "xdrm.io",
"dbname" : "stefproject",
"dbname" : "logauth",
"user" : "php",
"password" : "QbzjZACndQM6NmuD"
}

View File

@ -1,7 +0,0 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2Y0NGYwNjtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUFBLHNCQUFzQjtBQUd0QiwwQkFBMEI7QUFHMUIseUJBQXlCO0FBR3pCLGlCQUFpQjtBQU9qQiwyQkFBMkIiLAoJIm5hbWVzIjogW10KfQ== */

View File

@ -1,2 +0,0 @@
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiIiwKCSJuYW1lcyI6IFtdCn0= */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,31 +0,0 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER > #HEADER {
/* Animation de chargement qudnd chargement ajax */
}
#WRAPPER > #HEADER > .icon {
display: block;
position: absolute;
top: 0;
left: 0;
width: 4em;
height: 4em;
background-color: #c23f05;
background-image: url("/src/static/iconv2.svg");
background-position: center center;
background-repeat: no-repeat;
background-size: 50% 50%;
cursor: pointer;
transition: all .3s;
}
#WRAPPER > #HEADER.loading > .icon {
background-image: url("/src/static/loaderv2.svg");
background-size: 70% 70%;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9oZWFkZXIuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4jV1JBUFBFUiA+ICNIRUFERVJ7XG5cdC8vIEljb25lIGR1IHNpdGVcblx0JiA+IC5pY29ue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdGhlaWdodDogJG1lbnUtc2lkZS13aWR0aDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkdGhlbWUtY29sb3IsIDEwKTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9zcmMvc3RhdGljL2ljb252Mi5zdmcnKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiA1MCUgNTAlO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcztcblxuXHR9XG5cblx0LyogQW5pbWF0aW9uIGRlIGNoYXJnZW1lbnQgcXVkbmQgY2hhcmdlbWVudCBhamF4ICovXG5cdCYubG9hZGluZyA+IC5pY29ue1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3NyYy9zdGF0aWMvbG9hZGVydjIuc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1zaXplOiA3MCUgNzAlO1xuXHR9XG5cbn1cbiIsCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2Y0NGYwNjtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBLHNCQUFzQjtBQUd0QiwwQkFBMEI7QUFHMUIseUJBQXlCO0FBR3pCLGlCQUFpQjtBQU9qQiwyQkFBMkI7QURiM0IsQUFBVyxRQUFILEdBQUcsT0FBTyxDQUFBO0VBc0JqQixtREFBbUQ7Q0FNbkQ7O0FBNUJELEFBRUssUUFGRyxHQUFHLE9BQU8sR0FFYixLQUFLLENBQUE7RUFDUixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVDT1UsR0FBRztFRE5sQixNQUFNLEVDTVMsR0FBRztFREpuQixnQkFBZ0IsRUFBRSxPQUFNO0VBQ3hCLGdCQUFnQixFQUFFLDZCQUFHO0VBQ3JCLG1CQUFtQixFQUFFLGFBQWM7RUFDbkMsaUJBQWlCLEVBQUUsU0FBVTtFQUM3QixlQUFlLEVBQUUsT0FBUTtFQUV6QixNQUFNLEVBQUUsT0FBUTtFQUVoQixVQUFVLEVBQUUsT0FBUTtDQUVwQjs7QUFwQkYsQUF1QmEsUUF2QkwsR0FBRyxPQUFPLEFBdUJoQixRQUFRLEdBQUcsS0FBSyxDQUFBO0VBQ2hCLGdCQUFnQixFQUFFLCtCQUFHO0VBQ3JCLGVBQWUsRUFBRSxPQUFRO0NBQ3pCIiwKCSJuYW1lcyI6IFtdCn0= */

View File

@ -1,3 +0,0 @@
#WRAPPER>#HEADER>.icon{display:block;position:absolute;top:0;left:0;width:4em;height:4em;background-color:#c23f05;background-image:url("/src/static/iconv2.svg");background-position:center center;background-repeat:no-repeat;background-size:50% 50%;cursor:pointer;transition:all .3s}#WRAPPER>#HEADER.loading>.icon{background-image:url("/src/static/loaderv2.svg");background-size:70% 70%}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXHQvLyBJY29uZSBkdSBzaXRlXG5cdCYgPiAuaWNvbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWNvbG9yLCAxMCk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvc3JjL3N0YXRpYy9pY29udjIuc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNTAlIDUwJTtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0fVxuXG5cdC8qIEFuaW1hdGlvbiBkZSBjaGFyZ2VtZW50IHF1ZG5kIGNoYXJnZW1lbnQgYWpheCAqL1xuXHQmLmxvYWRpbmcgPiAuaWNvbntcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9zcmMvc3RhdGljL2xvYWRlcnYyLnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNzAlIDcwJTtcblx0fVxuXG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFHQSxBQUVLLFFBRkcsQ0FBRyxPQUFPLENBRWIsS0FBSyxBQUFBLENBQ1IsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQ09VLEdBQUcsQ0RObEIsTUFBTSxDQ01TLEdBQUcsQ0RKbkIsZ0JBQWdCLENBQUUsT0FBTSxDQUN4QixnQkFBZ0IsQ0FBRSw2QkFBRyxDQUNyQixtQkFBbUIsQ0FBRSxhQUFjLENBQ25DLGlCQUFpQixDQUFFLFNBQVUsQ0FDN0IsZUFBZSxDQUFFLE9BQVEsQ0FFekIsTUFBTSxDQUFFLE9BQVEsQ0FFaEIsVUFBVSxDQUFFLE9BQVEsQ0FFcEIsQUFwQkYsQUF1QmEsUUF2QkwsQ0FBRyxPQUFPLEFBdUJoQixRQUFRLENBQUcsS0FBSyxBQUFBLENBQ2hCLGdCQUFnQixDQUFFLCtCQUFHLENBQ3JCLGVBQWUsQ0FBRSxPQUFRLENBQ3pCIiwKCSJuYW1lcyI6IFtdCn0= */

View File

@ -1,62 +0,0 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #edf0f5;
font-family: 'Open Sans', 'Ubuntu';
/* [1] Header de la page
==========================================*/
/* [2] Side-Menu de la page
==========================================*/
/* [3] Container de la page
==========================================*/
}
#WRAPPER > #HEADER {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: calc( 4em - 1px);
border-bottom: 1px solid #c23f05;
background-color: #f44f06;
z-index: 10;
}
#WRAPPER > #MENU-SIDE {
display: block;
position: absolute;
top: 4em;
left: 0;
width: 4em;
height: 100%;
box-shadow: 2px 1px 3px #ddd;
background-color: #fff;
transition: all .3s;
z-index: 9;
}
#WRAPPER > #CONTAINER {
display: flex;
position: absolute;
top: 4em;
left: 4em;
width: calc( 100% - 4em - 2*1em);
height: calc( 100% - 4em - 2*1em);
padding: 1em;
flex-direction: row;
justify-content: space-between;
overflow-x: none;
overflow-y: auto;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9sYXlvdXQuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuI1dSQVBQRVJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdGJhY2tncm91bmQtY29sb3I6ICNlZGYwZjU7XG5cblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnVWJ1bnR1JztcblxuXG5cdC8qIFsxXSBIZWFkZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0hFQURFUntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoICN7JG1lbnUtc2lkZS13aWR0aH0gLSAxcHggKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWNvbG9yLCAxMCk7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtY29sb3I7XG5cblx0XHR6LWluZGV4OiAxMDtcblxuXHR9XG5cblxuXHQvKiBbMl0gU2lkZS1NZW51IGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0Ly8gR2VzdGlvbiBkdSBtZW51XG5cdCYgPiAjTUVOVS1TSURFe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdGhlaWdodDogMTAwJTtcblxuXHRcdGJveC1zaGFkb3c6IDJweCAxcHggM3B4ICNkZGQ7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcztcblxuXHRcdHotaW5kZXg6IDk7XG5cdH1cblxuXG5cdC8qIFszXSBDb250YWluZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0NPTlRBSU5FUntcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdGxlZnQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gLSAyKjFlbSApO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skbWVudS1zaWRlLXdpZHRofSAtIDIqMWVtICk7XG5cdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0Ly8gRmxleCBwcm9wZXJ0aWVzXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRvdmVyZmxvdy14OiBub25lO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cbn1cbiIsCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2Y0NGYwNjtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBLHNCQUFzQjtBQUd0QiwwQkFBMEI7QUFHMUIseUJBQXlCO0FBR3pCLGlCQUFpQjtBQU9qQiwyQkFBMkI7QURkM0IsQUFBQSxRQUFRLENBQUE7RUFDUCxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxLQUFNO0VBQ2YsR0FBRyxFQUFFLENBQUU7RUFDUCxJQUFJLEVBQUUsQ0FBRTtFQUNSLEtBQUssRUFBRSxJQUFLO0VBQ1osTUFBTSxFQUFFLElBQUs7RUFFZCxnQkFBZ0IsRUFBRSxPQUFRO0VBRTFCLFdBQVcsRUFBRSxxQkFBc0I7RUFHbkM7NkNBQzRDO0VBa0I1Qzs2Q0FDNEM7RUFvQjVDOzZDQUM0QztDQWlCNUM7O0FBdkVELEFBZUssUUFmRyxHQWVILE9BQU8sQ0FBQTtFQUNWLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsR0FBRyxFQUFFLENBQUU7RUFDUCxJQUFJLEVBQUUsQ0FBRTtFQUNSLEtBQUssRUFBRSxJQUFLO0VBQ1osTUFBTSxFQUFFLGdCQUFJO0VBRWIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTTtFQUUvQixnQkFBZ0IsRUMxQkosT0FBTztFRDRCbkIsT0FBTyxFQUFFLEVBQUc7Q0FFWjs7QUE3QkYsQUFtQ0ssUUFuQ0csR0FtQ0gsVUFBVSxDQUFBO0VBQ2IsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVDdkJZLEdBQUc7RUR3QmxCLElBQUksRUFBRSxDQUFFO0VBQ1IsS0FBSyxFQ3pCVSxHQUFHO0VEMEJsQixNQUFNLEVBQUUsSUFBSztFQUVkLFVBQVUsRUFBRSxnQkFBaUI7RUFFN0IsZ0JBQWdCLEVBQUUsSUFBSztFQUV2QixVQUFVLEVBQUUsT0FBUTtFQUVwQixPQUFPLEVBQUUsQ0FBRTtDQUNYOztBQWxERixBQXVESyxRQXZERyxHQXVESCxVQUFVLENBQUE7RUFDYixPQUFPLEVBQUUsSUFBSztFQUNkLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUMzQ1ksR0FBRztFRDRDbEIsSUFBSSxFQzVDVyxHQUFHO0VENkNsQixLQUFLLEVBQUUseUJBQUk7RUFDWCxNQUFNLEVBQUUseUJBQUk7RUFDYixPQUFPLEVBQUUsR0FBSTtFQUdiLGNBQWMsRUFBRSxHQUFJO0VBQ3BCLGVBQWUsRUFBRSxhQUFjO0VBRS9CLFVBQVUsRUFBRSxJQUFLO0VBQ2pCLFVBQVUsRUFBRSxJQUFLO0NBQ2pCIiwKCSJuYW1lcyI6IFtdCn0= */

View File

@ -1,3 +0,0 @@
#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#edf0f5;font-family:'Open Sans', 'Ubuntu'}#WRAPPER>#HEADER{display:block;position:absolute;top:0;left:0;width:100%;height:calc( 4em - 1px);border-bottom:1px solid #c23f05;background-color:#f44f06;z-index:10}#WRAPPER>#MENU-SIDE{display:block;position:absolute;top:4em;left:0;width:4em;height:100%;box-shadow:2px 1px 3px #ddd;background-color:#fff;transition:all .3s;z-index:9}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:4em;width:calc( 100% - 4em - 2*1em);height:calc( 100% - 4em - 2*1em);padding:1em;flex-direction:row;justify-content:space-between;overflow-x:none;overflow-y:auto}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmMGY1O1xuXG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ1VidW50dSc7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMXB4ICk7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCR0aGVtZS1jb2xvciwgMTApO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWNvbG9yO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRib3gtc2hhZG93OiAycHggMXB4IDNweCAjZGRkO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0XHR6LWluZGV4OiA5O1xuXHR9XG5cblxuXHQvKiBbM10gQ29udGFpbmVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNDT05UQUlORVJ7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMioxZW0gKTtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gLSAyKjFlbSApO1xuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdFx0b3ZlcmZsb3cteDogbm9uZTtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFFQSxBQUFBLFFBQVEsQUFBQSxDQUNQLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLEtBQU0sQ0FDZixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsSUFBSyxDQUVkLGdCQUFnQixDQUFFLE9BQVEsQ0FFMUIsV0FBVyxDQUFFLHFCQUFzQixDQTZEbkMsQUF2RUQsQUFlSyxRQWZHLENBZUgsT0FBTyxBQUFBLENBQ1YsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsZ0JBQUksQ0FFYixhQUFhLENBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFNLENBRS9CLGdCQUFnQixDQzFCSixPQUFPLENENEJuQixPQUFPLENBQUUsRUFBRyxDQUVaLEFBN0JGLEFBbUNLLFFBbkNHLENBbUNILFVBQVUsQUFBQSxDQUNiLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsR0FBRyxDQ3ZCWSxHQUFHLENEd0JsQixJQUFJLENBQUUsQ0FBRSxDQUNSLEtBQUssQ0N6QlUsR0FBRyxDRDBCbEIsTUFBTSxDQUFFLElBQUssQ0FFZCxVQUFVLENBQUUsZ0JBQWlCLENBRTdCLGdCQUFnQixDQUFFLElBQUssQ0FFdkIsVUFBVSxDQUFFLE9BQVEsQ0FFcEIsT0FBTyxDQUFFLENBQUUsQ0FDWCxBQWxERixBQXVESyxRQXZERyxDQXVESCxVQUFVLEFBQUEsQ0FDYixPQUFPLENBQUUsSUFBSyxDQUNkLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0MzQ1ksR0FBRyxDRDRDbEIsSUFBSSxDQzVDVyxHQUFHLENENkNsQixLQUFLLENBQUUseUJBQUksQ0FDWCxNQUFNLENBQUUseUJBQUksQ0FDYixPQUFPLENBQUUsR0FBSSxDQUdiLGNBQWMsQ0FBRSxHQUFJLENBQ3BCLGVBQWUsQ0FBRSxhQUFjLENBRS9CLFVBQVUsQ0FBRSxJQUFLLENBQ2pCLFVBQVUsQ0FBRSxJQUFLLENBQ2pCIiwKCSJuYW1lcyI6IFtdCn0= */

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

View File

@ -1,54 +0,0 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#CONTAINER > .sub-menu-side {
display: block;
position: relative;
}
#CONTAINER > .sub-menu-side > span[data-sublink] {
display: block;
position: relative;
width: 7.5em;
padding: .3em 1em .3em 2em;
margin: 1em;
border-radius: 3px;
color: #5b5e63;
text-shadow: 1px 1px white;
white-space: nowrap;
transition: all .2s;
cursor: pointer;
overflow: hidden;
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg {
display: inline-block;
position: absolute;
left: .5em;
top: 50%;
width: 1em;
height: 1em;
transform: translateY(-50%);
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg path {
fill: #5b5e63 !important;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:hover, #CONTAINER > .sub-menu-side > span[data-sublink].active {
color: #121213;
background-color: #d8deea;
box-shadow: inset 0 0 4px #c8ced9;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:hover > .svg > svg path, #CONTAINER > .sub-menu-side > span[data-sublink].active > .svg > svg path {
fill: #121213 !important;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:nth-child(1) {
margin-top: 1em;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9zdWJtZW51LXNpZGUuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4jQ09OVEFJTkVSID4gLnN1Yi1tZW51LXNpZGV7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ly8gTGVzIGxpZW5zIGR1IG1lbnVcblx0JiA+IHNwYW5bZGF0YS1zdWJsaW5rXXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogNy41ZW07XG5cblx0XHRwYWRkaW5nOiAuM2VtIDFlbSAuM2VtIDJlbTtcblx0XHRtYXJnaW46IDFlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGNvbG9yOiAkc3ViLW1lbnUtY29sb3I7XG5cdFx0dGV4dC1zaGFkb3c6IDFweCAxcHggd2hpdGU7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuMnM7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0Ly8gRGltZW5zaW9uL1Bvc2l0aW9uIGRlcyBzdmcgKGljb25lcylcblx0XHQmID4gLnN2ZyA+IHN2Z3tcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogLjVlbTtcblx0XHRcdFx0Ly8gbGVmdDogMTAwJTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdHdpZHRoOiAxZW07XG5cdFx0XHRcdGhlaWdodDogMWVtO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdC8vIENvbG9yYXRpb24gcG91ciB0b3VzIGxlcyBlbGVtZW50cyBkdSBzdmdcblx0XHRcdCYgcGF0aHtcblx0XHRcdFx0ZmlsbDogJHN1Yi1tZW51LWNvbG9yICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcixcblx0XHQmLmFjdGl2ZXtcblx0XHRcdGNvbG9yOiBkYXJrZW4oJHN1Yi1tZW51LWNvbG9yLCAzMCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkZWVhO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDRweCAjYzhjZWQ5O1xuXG5cdFx0XHQmID4gLnN2ZyA+IHN2ZyBwYXRoe1xuXHRcdFx0XHRmaWxsOiBkYXJrZW4oJHN1Yi1tZW51LWNvbG9yLCAzMCkgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cblxuXHQvLyBPbiBkZWNhbGUgbGUgcHJlbWllclxuXHQmID4gc3BhbltkYXRhLXN1YmxpbmtdOm50aC1jaGlsZCgxKXtcblx0XHRtYXJnaW4tdG9wOiAxZW07XG5cdH1cblxufVxuIiwKCQkiLyogQ09VTEVVUiBEVSBUSEVNRSAqL1xuJHRoZW1lLWNvbG9yOiAjZTYzMzIxO1xuXG4vKiBDT1VMRVVSIERVIFNPVVMtTUVOVSAqL1xuJHN1Yi1tZW51LWNvbG9yOiAjNWI1ZTYzO1xuXG4vKiBDT1VMRVVSIERFUyBFUlJFVVJTICovXG4kZXJyb3ItY29sb3I6ICNjYzU4NTc7XG5cbi8qIEZPUk1VTEFJUkVTICovXG4kZm9ybS12YWxpZC1jb2xvcjogICAjMjdhNTYwO1xuJGZvcm0tbmV1dHJhbC1jb2xvcjogIzIxOTNlNjtcbiRmb3JtLXNlYXJjaC1jb2xvcjogICM1NjMwZWQ7XG4kZm9ybS1pbnZhbGlkLWNvbG9yOiAjZDUyOTE4O1xuXG5cbi8qIEdFU1RJT04gREVTIExPTkdVRVVSUyAqL1xuJG1lbnUtc2lkZS13aWR0aDogNGVtO1xuXG5cbi8vIFBPVVIgUkVTT1VSQ0VfRElTUEFUQ0hFUlxuJHJkLWZvcm0tdmFsaWQtY29sb3I6ICAgJzI3YTU2MCc7XG4kcmQtZm9ybS1uZXV0cmFsLWNvbG9yOiAnMjE5M2U2JztcbiRyZC1mb3JtLXNlYXJjaC1jb2xvcjogICc1NjMwZWQnO1xuJHJkLWZvcm0taW52YWxpZC1jb2xvcjogJ2Q1MjkxOCc7XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUEsc0JBQXNCO0FBR3RCLDBCQUEwQjtBQUcxQix5QkFBeUI7QUFHekIsaUJBQWlCO0FBT2pCLDJCQUEyQjtBRGIzQixBQUFhLFVBQUgsR0FBRyxjQUFjLENBQUE7RUFDMUIsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztDQTZEbkI7O0FBL0RELEFBS3NCLFVBTFosR0FBRyxjQUFjLEdBS3RCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxFQUFhO0VBQ3JCLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsS0FBSyxFQUFFLEtBQU07RUFFZCxPQUFPLEVBQUUsaUJBQWtCO0VBQzNCLE1BQU0sRUFBRSxHQUFJO0VBRVosYUFBYSxFQUFFLEdBQUk7RUFFbkIsS0FBSyxFQ2RVLE9BQU87RURldEIsV0FBVyxFQUFFLGFBQWM7RUFDM0IsV0FBVyxFQUFFLE1BQU87RUFFcEIsVUFBVSxFQUFFLE9BQVE7RUFFcEIsTUFBTSxFQUFFLE9BQVE7RUFFaEIsUUFBUSxFQUFFLE1BQU87Q0FnQ2pCOztBQXZERixBQTBCYSxVQTFCSCxHQUFHLGNBQWMsR0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLElBcUJKLElBQUksR0FBRyxHQUFHLENBQUE7RUFDYixPQUFPLEVBQUUsWUFBYTtFQUN0QixRQUFRLEVBQUUsUUFBUztFQUNsQixJQUFJLEVBQUUsSUFBSztFQUVYLEdBQUcsRUFBRSxHQUFJO0VBQ1QsS0FBSyxFQUFFLEdBQUk7RUFDWCxNQUFNLEVBQUUsR0FBSTtFQUViLFNBQVMsRUFBRSxnQkFBVTtDQU1yQjs7QUF6Q0gsQUFzQ0ssVUF0Q0ssR0FBRyxjQUFjLEdBS3RCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxJQXFCSixJQUFJLEdBQUcsR0FBRyxDQVlYLElBQUksQ0FBQTtFQUNMLElBQUksRUN0Q1MsT0FBTyxDRHNDRSxVQUFVO0NBQ2hDOztBQXhDSixBQUtzQixVQUxaLEdBQUcsY0FBYyxHQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0FzQ1AsTUFBTSxFQTNDVCxBQUtzQixVQUxaLEdBQUcsY0FBYyxHQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0F1Q1AsT0FBTyxDQUFBO0VBQ1AsS0FBSyxFQUFFLE9BQU07RUFDYixnQkFBZ0IsRUFBRSxPQUFRO0VBQzFCLFVBQVUsRUFBRSxxQkFBc0I7Q0FNbEM7O0FBckRILEFBaURrQixVQWpEUixHQUFHLGNBQWMsR0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sR0FNRixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksRUFqRHRCLEFBaURrQixVQWpEUixHQUFHLGNBQWMsR0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sR0FLSCxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQTtFQUNsQixJQUFJLEVBQUUsT0FBTSxDQUFzQixVQUFVO0NBQzVDOztBQW5ESixBQTJEbUMsVUEzRHpCLEdBQUcsY0FBYyxHQTJEdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBQWEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxFQUFDO0VBQ2xDLFVBQVUsRUFBRSxHQUFJO0NBQ2hCIiwKCSJuYW1lcyI6IFtdCn0= */

View File

@ -1,3 +0,0 @@
#CONTAINER>.sub-menu-side{display:block;position:relative}#CONTAINER>.sub-menu-side>span[data-sublink]{display:block;position:relative;width:7.5em;padding:.3em 1em .3em 2em;margin:1em;border-radius:3px;color:#5b5e63;text-shadow:1px 1px white;white-space:nowrap;transition:all .2s;cursor:pointer;overflow:hidden}#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg{display:inline-block;position:absolute;left:.5em;top:50%;width:1em;height:1em;transform:translateY(-50%)}#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg path{fill:#5b5e63 !important}#CONTAINER>.sub-menu-side>span[data-sublink]:hover,#CONTAINER>.sub-menu-side>span[data-sublink].active{color:#121213;background-color:#d8deea;box-shadow:inset 0 0 4px #c8ced9}#CONTAINER>.sub-menu-side>span[data-sublink]:hover>.svg>svg path,#CONTAINER>.sub-menu-side>span[data-sublink].active>.svg>svg path{fill:#121213 !important}#CONTAINER>.sub-menu-side>span[data-sublink]:nth-child(1){margin-top:1em}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vc3VibWVudS1zaWRlLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI0NPTlRBSU5FUiA+IC5zdWItbWVudS1zaWRle1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8vIExlcyBsaWVucyBkdSBtZW51XG5cdCYgPiBzcGFuW2RhdGEtc3VibGlua117XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IDcuNWVtO1xuXG5cdFx0cGFkZGluZzogLjNlbSAxZW0gLjNlbSAyZW07XG5cdFx0bWFyZ2luOiAxZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRjb2xvcjogJHN1Yi1tZW51LWNvbG9yO1xuXHRcdHRleHQtc2hhZG93OiAxcHggMXB4IHdoaXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC8vIERpbWVuc2lvbi9Qb3NpdGlvbiBkZXMgc3ZnIChpY29uZXMpXG5cdFx0JiA+IC5zdmcgPiBzdmd7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IC41ZW07XG5cdFx0XHRcdC8vIGxlZnQ6IDEwMCU7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHR3aWR0aDogMWVtO1xuXHRcdFx0XHRoZWlnaHQ6IDFlbTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHQvLyBDb2xvcmF0aW9uIHBvdXIgdG91cyBsZXMgZWxlbWVudHMgZHUgc3ZnXG5cdFx0XHQmIHBhdGh7XG5cdFx0XHRcdGZpbGw6ICRzdWItbWVudS1jb2xvciAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIsXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRjb2xvcjogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q4ZGVlYTtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCA0cHggI2M4Y2VkOTtcblxuXHRcdFx0JiA+IC5zdmcgPiBzdmcgcGF0aHtcblx0XHRcdFx0ZmlsbDogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cblx0Ly8gT24gZGVjYWxlIGxlIHByZW1pZXJcblx0JiA+IHNwYW5bZGF0YS1zdWJsaW5rXTpudGgtY2hpbGQoMSl7XG5cdFx0bWFyZ2luLXRvcDogMWVtO1xuXHR9XG5cbn1cbiIsCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2U2MzMyMTtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQWEsVUFBSCxDQUFHLGNBQWMsQUFBQSxDQUMxQixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBNkRuQixBQS9ERCxBQUtzQixVQUxaLENBQUcsY0FBYyxDQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0FBYSxDQUNyQixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEtBQUssQ0FBRSxLQUFNLENBRWQsT0FBTyxDQUFFLGlCQUFrQixDQUMzQixNQUFNLENBQUUsR0FBSSxDQUVaLGFBQWEsQ0FBRSxHQUFJLENBRW5CLEtBQUssQ0NkVSxPQUFPLENEZXRCLFdBQVcsQ0FBRSxhQUFjLENBQzNCLFdBQVcsQ0FBRSxNQUFPLENBRXBCLFVBQVUsQ0FBRSxPQUFRLENBRXBCLE1BQU0sQ0FBRSxPQUFRLENBRWhCLFFBQVEsQ0FBRSxNQUFPLENBZ0NqQixBQXZERixBQTBCYSxVQTFCSCxDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLEVBcUJKLElBQUksQ0FBRyxHQUFHLEFBQUEsQ0FDYixPQUFPLENBQUUsWUFBYSxDQUN0QixRQUFRLENBQUUsUUFBUyxDQUNsQixJQUFJLENBQUUsSUFBSyxDQUVYLEdBQUcsQ0FBRSxHQUFJLENBQ1QsS0FBSyxDQUFFLEdBQUksQ0FDWCxNQUFNLENBQUUsR0FBSSxDQUViLFNBQVMsQ0FBRSxnQkFBVSxDQU1yQixBQXpDSCxBQXNDSyxVQXRDSyxDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLEVBcUJKLElBQUksQ0FBRyxHQUFHLENBWVgsSUFBSSxBQUFBLENBQ0wsSUFBSSxDQ3RDUyxPQUFPLENEc0NFLFVBQVUsQ0FDaEMsQUF4Q0osQUFLc0IsVUFMWixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sQ0EzQ1QsQUFLc0IsVUFMWixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sQUFBQSxDQUNQLEtBQUssQ0FBRSxPQUFNLENBQ2IsZ0JBQWdCLENBQUUsT0FBUSxDQUMxQixVQUFVLENBQUUscUJBQXNCLENBTWxDLEFBckRILEFBaURrQixVQWpEUixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sQ0FNRixJQUFJLENBQUcsR0FBRyxDQUFDLElBQUksQ0FqRHRCLEFBaURrQixVQWpEUixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sQ0FLSCxJQUFJLENBQUcsR0FBRyxDQUFDLElBQUksQUFBQSxDQUNsQixJQUFJLENBQUUsT0FBTSxDQUFzQixVQUFVLENBQzVDLEFBbkRKLEFBMkRtQyxVQTNEekIsQ0FBRyxjQUFjLENBMkR0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0FBYSxVQUFXLENBQUEsQUFBQSxDQUFDLENBQUMsQ0FDbEMsVUFBVSxDQUFFLEdBQUksQ0FDaEIiLAoJIm5hbWVzIjogW10KfQ== */

View File

@ -1,5 +0,0 @@
function FormDeflater(b,c,a){for(var d=0;d<c.length;d++)c[d]=c[d].toLowerCase();for(d=0;d<a.length;d++)a[d]=a[d].toLowerCase();this.container=b;this.tags=c;this.attr=a}FormDeflater.prototype={container:this.container,tags:this.tags,attr:this.attr};
FormDeflater.prototype.deflate=function(){for(var b=this.getChildren(this.container),b=this.filterElements(b),c={},a=0;a<b.length;a++)for(var d=0;d<this.attr.length;d++){var e=b[a].getAttribute(this.attr[d]);if(null!==e&&0<e.length){c.hasOwnProperty(e)?c[e]instanceof Array?c[e].push({target:b[a],attr:this.attr[d],value:b[a].value,checked:b[a].checked}):c[e]=[c[e],{target:b[a],attr:this.attr[d],value:b[a].value,checked:b[a].checked}]:c[e]={target:b[a],attr:this.attr[d],value:b[a].value,checked:b[a].checked};
break}}return c=this.cleanOutput(c)};FormDeflater.prototype.checkable=function(b){return"INPUT"!=b.tagName||-1==["radio","checkbox"].indexOf(b.getAttribute("type").toLowerCase())?!1:!0};
FormDeflater.prototype.cleanOutput=function(b){var c={},a;for(a in b)if(b[a]instanceof Array){var d=!0,e=[],f;for(f in b[a])if(this.checkable(b[a][f].target))!0===b[a][f].checked&&e.push(f);else{d=!1;break}if(d)if(1==e.length)c[a]=b[a][e[0]].value;else for(f in c[a]=[],e)c[a].push(b[a][e[f]].value);else for(f in c[a]=[],b[a])c[a].push(b[a][f].value)}else this.checkable(b[a].target)?c[a]=b[a].checked?b[a].value:null:c[a]=b[a].value;return c};
FormDeflater.prototype.getChildren=function(b){if(!(b instanceof Element))return[];for(var c=b=[].slice.call(b.children),a=0;a<b.length;a++)c=c.concat([].slice.call(this.getChildren(b[a])));return c};FormDeflater.prototype.filterElements=function(b){for(var c=[],a=0;a<b.length;a++)-1<this.tags.indexOf(b[a].tagName.toLowerCase())&&c.push(b[a]);return c};

View File

@ -1,5 +0,0 @@
function localStorageInterface(){}
localStorageInterface.prototype={dataset:[],dataset_keys:[],storage:localStorage,setStorage:function(a){if(a!=localStorage&&a!=sessionStorage)return!1;this.storage=a},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),this.storage.setItem(a,JSON.stringify(this.dataset_keys[c])));this.storage.setItem(a+"_"+b,JSON.stringify(d));return!0},get:function(a,b){if(null==b)return null;b=b.toString();return-1==
this.dataset.indexOf(a)?!1:JSON.parse(this.storage.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;this.storage.removeItem(a+"_"+b);this.dataset_keys[d].splice(c,1);this.storage.setItem(a,JSON.stringify(this.dataset_keys[d]));return!0},createDataset:function(a){if("string"!=typeof a)return!1;if(-1<this.dataset.indexOf(a))return!0;var b=this.storage.getItem(a);null!=b?(this.dataset.push(a),this.dataset_keys.push(JSON.parse(b))):
(this.dataset.push(a),this.dataset_keys.push([]),this.storage.setItem(a,JSON.stringify([])));return!0},keys:function(a){a=this.dataset.indexOf(a);return-1==a?!1:this.dataset_keys[a]},"export":function(a){var b=this.dataset.indexOf(a);if(-1==b)return!1;for(var d={},c=0;c<this.dataset_keys[b].length;c++)d[this.dataset_keys[b][c]]=this.get(a,this.dataset_keys[b][c]);return d},"import":function(a,b){-1==this.dataset.indexOf(a)?this.createDataset(a):this.clear(a);for(var d in b)this.set(a,d,b[d]);return!0},
clear:function(a){var b=this.dataset.indexOf(a);if(-1==b)return!1;var d=this["export"](a),c;for(c in d)this.del(a,c);this.dataset_keys[b]=[];this.storage.setItem(a,JSON.stringify(this.dataset_keys[b]));return!0}};var lsi=new localStorageInterface;

View File

@ -1,9 +0,0 @@
function pageManagerClass(){}var ptrPageManagerClass;
pageManagerClass.prototype={depJS:null,depCSS:null,xhr:[],activeXHR:null,page:null,vars:[],path:"",jsPath:"js",cssPath:"css",pagelist:null,container:null,ajax:function(b,c,f,a){for(var d=0;d<this.xhr.length;d++)this.xhr=this.xhr.slice(0,d-1).concat(this.xhr.slice(d,this.xhr.length-1));var e;e=window.XMLHttpRequest?this.xhr.push(new XMLHttpRequest)-1:this.xhr.push(new ActiveXObject("Microsoft.XMLHttpRequest"))-1;this.activeXHR=this.xhr[e];var g=this;this.xhr[e].onreadystatechange=function(){4==g.xhr[e].readyState&&
(-1<[0,200].indexOf(g.xhr[e].status)?c(g.xhr[e].responseText):c())};f="string"==typeof f&&/^POST|GET$/i.test(f)?f.toUpperCase():"POST";a="POST"==f&&"object"==typeof a&&a instanceof FormData?a:null;this.xhr[e].open(f,b,!0);this.xhr[e].send(a);return this},explodeURL:function(b){b=1<=arguments.length?b:document.URL;if(null!=this.pagelist&&/^(?:(?:https?:\/\/)?[^\/]+)\/([a-z0-9_]+)\/?(?:\/((?:.+\/)+)\/?)?(?:#(.+))?$/i.test(b)){for(var c=RegExp.$2.split("/");""==c[c.length-1];)c.pop();return-1<this.pagelist.indexOf(RegExp.$1)?
{page:RegExp.$1,"var":c}:null}return null},loadDependencies:function(){"object"==typeof this.depCSS&&this.depCSS instanceof Element&&this.depCSS.parentNode==document.head&&document.head.removeChild(this.depCSS);"object"==typeof this.depJS&&this.depJS instanceof Element&&this.depJS.parentNode==document.head&&document.head.removeChild(this.depJS);ptrPageManagerClass=this;this.ajax(this.path+"/"+this.cssPath+"/"+this.page+".css",function(b){null!=b?(ptrPageManagerClass.depCSS=document.createElement("link"),
ptrPageManagerClass.depCSS.rel="stylesheet",ptrPageManagerClass.depCSS.type="text/css",ptrPageManagerClass.depCSS.href=ptrPageManagerClass.path+"/"+ptrPageManagerClass.cssPath+"/"+ptrPageManagerClass.page+".css",document.head.appendChild(ptrPageManagerClass.depCSS)):console.warn("[loadDependencies_Error] - ("+ptrPageManagerClass.path+"/"+ptrPageManagerClass.cssPath+"/"+ptrPageManagerClass.page+".css)")});this.ajax(this.path+"/"+this.jsPath+"/"+this.page+".js",function(b){null!=b?(ptrPageManagerClass.depJS=
document.createElement("script"),ptrPageManagerClass.depJS.type="text/javascript",ptrPageManagerClass.depJS.src=ptrPageManagerClass.path+"/"+ptrPageManagerClass.jsPath+"/"+ptrPageManagerClass.page+".js",document.head.appendChild(ptrPageManagerClass.depJS)):console.warn("[loadDependencies_Error] - ("+ptrPageManagerClass.path+"/"+ptrPageManagerClass.jsPath+"/"+ptrPageManagerClass.page+".js)")})},updateURL:function(){0<this.vars.length?window.history.pushState(this.page,this.page,"/"+this.page+"/"+this.vars.join("/")+
"/"):window.history.pushState(this.page,this.page,"/"+this.page+"/")},setPage:function(b,c,f,a){var d="object"==typeof a&&a instanceof Array?a:null;if(null!=d)for(a=0;a<d.length&&(d="string"==typeof d[a]&&/^[a-z0-9_]+$/i.test(d[a])?d:null,null!=d);a++);this.pagelist=null!=d?d:this.pagelist;this.page=this.pagelist[0];this.path="string"==typeof c?c:this.path;this.container="object"==typeof f&&f instanceof Element?f:this.container;if(null!=this.pagelist&&null!=this.container)if("string"==typeof b&&-1<
this.pagelist.indexOf(b)){this.page=b;var e=this;b=new FormData;for(a=0;a<this.vars.length;a++)b.append(this.vars[a],null);this.ajax(this.path+"/"+this.page+".php",function(a){e.container.innerHTML=a;e.loadDependencies()},"POST",b);this.updateURL()}else if(c=this.explodeURL(),null!=c){this.page=c.page;var g=this;b=new FormData;for(a=this.vars.length=0;a<c["var"].length;a++)this.vars[a]=c["var"][a],b.append(this.vars[a],null);this.ajax(this.path+"/"+this.page+".php",function(a){g.container.innerHTML=
a;g.loadDependencies()},"POST",b);this.updateURL()}else this.setPage(this.pagelist[0]);else console.warn("pagelist et container manquant");return this},refresh:function(){this.setPage(this.page);return this}};

View File

@ -5,7 +5,7 @@
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0';
require_once __ROOT__.'/manager/autoloader.php';
require_once __ROOT__.'/autoloader.php';

View File

@ -6,59 +6,59 @@
/* [1] AUTO_INCREMENT
=========================================================*/
public function testAutoIncrementSizeInfCorrect(){
$this->assertTrue( \manager\Checker::run('auto_increment_id', -2147483647) );
$this->assertTrue( \api\core\Checker::run('auto_increment_id', -2147483647) );
}
public function testAutoIncrementSizeInfStringCorrect(){
$this->assertTrue( \manager\Checker::run('auto_increment_id', '-2147483647') );
$this->assertTrue( \api\core\Checker::run('auto_increment_id', '-2147483647') );
}
public function testAutoIncrementSizeSupCorrect(){
$this->assertTrue( \manager\Checker::run('auto_increment_id', 2147483647) );
$this->assertTrue( \api\core\Checker::run('auto_increment_id', 2147483647) );
}
public function testAutoIncrementSizeSupStringCorrect(){
$this->assertTrue( \manager\Checker::run('auto_increment_id', '2147483647') );
$this->assertTrue( \api\core\Checker::run('auto_increment_id', '2147483647') );
}
public function testAutoIncrementSizeLtInfIncorrect(){
$this->assertFalse( \manager\Checker::run('auto_increment_id', -2147483647-1) );
$this->assertFalse( \api\core\Checker::run('auto_increment_id', -2147483647-1) );
}
public function testAutoIncrementSizeLtInfStringIncorrect(){
$this->assertFalse( \manager\Checker::run('auto_increment_id', '-2147483648') );
$this->assertFalse( \api\core\Checker::run('auto_increment_id', '-2147483648') );
}
public function testAutoIncrementSizeGtSupIncorrect(){
$this->assertFalse( \manager\Checker::run('auto_increment_id', 2147483647+1) );
$this->assertFalse( \api\core\Checker::run('auto_increment_id', 2147483647+1) );
}
public function testAutoIncrementSizeGtSupStringIncorrect(){
$this->assertFalse( \manager\Checker::run('auto_increment_id', '2147483648') );
$this->assertFalse( \api\core\Checker::run('auto_increment_id', '2147483648') );
}
/* [1] Code RFID
=========================================================*/
public function testUserCodeSize4(){
$this->assertTrue( \manager\Checker::run('user.code', '01-23-AB-CD') );
$this->assertTrue( \api\core\Checker::run('user.code', '01-23-AB-CD') );
}
public function testUserCodeSize6(){
$this->assertTrue( \manager\Checker::run('user.code', '01-23-45-67-89-AB') );
$this->assertTrue( \api\core\Checker::run('user.code', '01-23-45-67-89-AB') );
}
public function testUserCodeSize4WrongCharacter(){
$this->assertFalse( \manager\Checker::run('user.code', '01-23-AB-CG') );
$this->assertFalse( \api\core\Checker::run('user.code', '01-23-AB-CG') );
}
public function testUserCodeSizeGreaterThan6(){
$this->assertFalse( \manager\Checker::run('user.code', '01-23-45-67-89-AB-CD') );
$this->assertFalse( \api\core\Checker::run('user.code', '01-23-45-67-89-AB-CD') );
}
public function testUserCodeSize6WrongCharacter(){
$this->assertFalse( \manager\Checker::run('user.code', '01-23-45-67-89-AG') );
$this->assertFalse( \api\core\Checker::run('user.code', '01-23-45-67-89-AG') );
}
@ -67,91 +67,91 @@
=========================================================*/
/* (1) Type */
public function testUsernameTypeStringCorrect(){
$this->assertTrue( \manager\Checker::run('user.username', '012') );
$this->assertTrue( \api\core\Checker::run('user.username', '012') );
}
public function testUsernameTypeIntIncorrect(){
$this->assertFalse( \manager\Checker::run('user.username', 012) );
$this->assertFalse( \api\core\Checker::run('user.username', 012) );
}
/* (2) Content */
public function testUsernameContentCorrect(){
$this->assertTrue( \manager\Checker::run('user.username', '0123456789_-') );
$this->assertTrue( \manager\Checker::run('user.username', 'abcdefghijklmnopqrstuvwxyz') );
$this->assertTrue( \manager\Checker::run('user.username', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') );
$this->assertTrue( \api\core\Checker::run('user.username', '0123456789_-') );
$this->assertTrue( \api\core\Checker::run('user.username', 'abcdefghijklmnopqrstuvwxyz') );
$this->assertTrue( \api\core\Checker::run('user.username', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') );
}
public function testUsernameContentIncorrect(){
$illegal_chars = '{}[]()=+.,\'\\"/:;|!@#$%^&* ';
foreach(str_split($illegal_chars) as $char) // Teste les caracteres enonces plus haut
$this->assertFalse( \manager\Checker::run('user.username', 'abc'.$char) );
$this->assertFalse( \api\core\Checker::run('user.username', 'abc'.$char) );
}
/* (3) Size */
public function testUsernameSize3Correct(){
$this->assertEquals( 3, strlen('012') );
$this->assertTrue( \manager\Checker::run('user.username', '012') );
$this->assertTrue( \api\core\Checker::run('user.username', '012') );
}
public function testUsernameSize30Correct(){
$this->assertEquals( 30, strlen('0123456789abcdefghijklmno_-sda') );
$this->assertTrue( \manager\Checker::run('user.username', '0123456789abcdefghijklmno_-sda') );
$this->assertTrue( \api\core\Checker::run('user.username', '0123456789abcdefghijklmno_-sda') );
}
public function testUsernameSizeLt3Incorrect(){
$this->assertLessThan( 3, strlen('') );
$this->assertFalse( \manager\Checker::run('user.username', '') );
$this->assertFalse( \api\core\Checker::run('user.username', '') );
}
public function testUsernameSizeGt30Incorrect(){
$this->assertGreaterThan( 30, strlen('0123456789abcdefghijklmno_-sdaa') );
$this->assertFalse( \manager\Checker::run('user.username', '0123456789abcdefghijklmno_-sdaa') );
$this->assertFalse( \api\core\Checker::run('user.username', '0123456789abcdefghijklmno_-sdaa') );
}
/* [3] firstname / lastname
=========================================================*/
/* (1) Type */
public function testFirstnameTypeStringCorrect(){
$this->assertTrue( \manager\Checker::run('user.firstname', 'abc') );
$this->assertTrue( \api\core\Checker::run('user.firstname', 'abc') );
}
public function testFirstnameTypeIntIncorrect(){
$this->assertFalse( \manager\Checker::run('user.firstname', 01932) );
$this->assertFalse( \api\core\Checker::run('user.firstname', 01932) );
}
/* (2) Content */
public function testFirstnameContentCorrect(){
$this->assertTrue( \manager\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz') );
$this->assertTrue( \manager\Checker::run('user.firstname', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') );
$this->assertTrue( \api\core\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz') );
$this->assertTrue( \api\core\Checker::run('user.firstname', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') );
}
public function testFirstnameContentIncorrect(){
$illegal_chars = '{}[]()=_+.,\'\\"/:;|!@#$%^&*0123456789';
foreach(str_split($illegal_chars) as $char) // Teste les caracteres enonces plus haut
$this->assertFalse( \manager\Checker::run('user.firstname', 'abc'.$char) );
$this->assertFalse( \api\core\Checker::run('user.firstname', 'abc'.$char) );
}
/* (3) Size */
public function testFirstnameSize3Correct(){
$this->assertEquals( 3, strlen('abc') );
$this->assertTrue( \manager\Checker::run('user.firstname', 'abc') );
$this->assertTrue( \api\core\Checker::run('user.firstname', 'abc') );
}
public function testFirstnameSize30Correct(){
$this->assertEquals( 30, strlen('abcdefghijklmnopqrstuvwxyz-k s') );
$this->assertTrue( \manager\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz-k s') );
$this->assertTrue( \api\core\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz-k s') );
}
public function testFirstnameSizeLt3Incorrect(){
$this->assertLessThan( 3, strlen('ab') );
$this->assertFalse( \manager\Checker::run('user.firstname', 'ab') );
$this->assertFalse( \api\core\Checker::run('user.firstname', 'ab') );
}
public function testFirstnameSizeGt30Incorrect(){
$this->assertGreaterThan( 30, strlen('abcdefghijklmnopqrstuvwxyz-k ss') );
$this->assertFalse( \manager\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz-k ss') );
$this->assertFalse( \api\core\Checker::run('user.firstname', 'abcdefghijklmnopqrstuvwxyz-k ss') );
}
/* [4] Adresse mail
@ -159,25 +159,25 @@
/* (1) Size */
public function testMailSizeEqCorrect(){
$this->assertLessThanOrEqual( 50, 'nom-prenom.mot@domaine-d.gouv' );
$this->assertTrue( \manager\Checker::run('user.mail', 'nom-prenom.mot@domaine-d.gouv') );
$this->assertTrue( \api\core\Checker::run('user.mail', 'nom-prenom.mot@domaine-d.gouv') );
}
public function testMailSizeSupCorrect(){
$this->assertGreaterThan( 50, strlen('ab12345678901234567890nom-prenom.mot@domaine-d.gouv') );
$this->assertFalse( \manager\Checker::run('user.mail', 'ab12345678901234567890nom-prenom.mot@domaine-d.gouv') );
$this->assertFalse( \api\core\Checker::run('user.mail', 'ab12345678901234567890nom-prenom.mot@domaine-d.gouv') );
}
/* (2) Content */
public function testMailContentCorrect(){
$this->assertTrue( \manager\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.gouv') );
$this->assertTrue( \api\core\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.gouv') );
}
public function testMailContentIncorrect1(){
$this->assertFalse( \manager\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.gouve') );
$this->assertFalse( \api\core\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.gouve') );
}
public function testMailContentIncorrect2(){
$this->assertFalse( \manager\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.g') );
$this->assertFalse( \api\core\Checker::run('user.mail', '0nom-prenom.mot@domaine-d.g') );
}
@ -188,31 +188,31 @@
$password_hash = \manager\sessionManager::secure_hash('monmotdepasse');
$this->assertEquals( 40, strlen($password_hash) );
$this->assertTrue( \manager\Checker::run('user.password', $password_hash) );
$this->assertTrue( \api\core\Checker::run('user.password', $password_hash) );
}
public function testPasswordSizeInfIncorrect(){
$password_hash = 'a';
$this->assertLessThan( 40, strlen($password_hash) );
$this->assertFalse( \manager\Checker::run('user.password', $password_hash) );
$this->assertFalse( \api\core\Checker::run('user.password', $password_hash) );
}
public function testPasswordSizeSupIncorrect(){
$password_hash = \manager\sessionManager::secure_hash('monmotdepasse').'a';
$this->assertGreaterThan( 40, strlen($password_hash) );
$this->assertFalse( \manager\Checker::run('user.password', $password_hash) );
$this->assertFalse( \api\core\Checker::run('user.password', $password_hash) );
}
public function testPasswordContentCorrect(){
$this->assertTrue( \manager\Checker::run('user.password', 'dd629d39c4576731a2bef003c72ff89d6fc2a99a') );
$this->assertTrue( \api\core\Checker::run('user.password', 'dd629d39c4576731a2bef003c72ff89d6fc2a99a') );
}
public function testPasswordContentIncorrect(){
$this->assertContains( 'g', 'dd629d39c4576731a2bef003c72ff89d6fc2a9g' );
$this->assertFalse( \manager\Checker::run('user.password', 'dd629d39c4576731a2bef003c72ff89d6fc2a9g') );
$this->assertFalse( \api\core\Checker::run('user.password', 'dd629d39c4576731a2bef003c72ff89d6fc2a9g') );
}
@ -221,42 +221,42 @@
=========================================================*/
/* (1) Type */
public function testStatusTypeIntCorrect(){
$this->assertTrue( \manager\Checker::run('user.status', 1) );
$this->assertTrue( \api\core\Checker::run('user.status', 1) );
}
public function testStatusTypeStringCorrect(){
$this->assertTrue( \manager\Checker::run('user.status', '1') );
$this->assertTrue( \api\core\Checker::run('user.status', '1') );
}
public function testStatusTypeIntIncorrect(){
$this->assertFalse( \manager\Checker::run('user.status', 1.03) );
$this->assertFalse( \api\core\Checker::run('user.status', 1.03) );
}
public function testStatusTypeStringIncorrect(){
$this->assertFalse( \manager\Checker::run('user.status', '1.03') );
$this->assertFalse( \api\core\Checker::run('user.status', '1.03') );
}
/* (2) Size */
public function testStatusSizeInfCorrect(){
$this->assertGreaterThanOrEqual( 0, 0 );
$this->assertTrue( \manager\Checker::run('user.status', 0) );
$this->assertTrue( \api\core\Checker::run('user.status', 0) );
}
public function testStatusSizeSupCorrect(){
$this->assertLessThanOrEqual( 100, 100 );
$this->assertTrue( \manager\Checker::run('user.status', 100) );
$this->assertTrue( \api\core\Checker::run('user.status', 100) );
}
public function testStatusSizeInfIncorrect(){
$this->assertLessThan( 0, -1 );
$this->assertFalse( \manager\Checker::run('user.status', -1) );
$this->assertFalse( \api\core\Checker::run('user.status', -1) );
}
public function testStatusSizeSupIncorrect(){
$this->assertGreaterThan( 100, 101 );
$this->assertFalse( \manager\Checker::run('user.status', 101) );
$this->assertFalse( \api\core\Checker::run('user.status', 101) );
}

View File

@ -5,17 +5,17 @@
/* [1] Verification du chargement de la config
=========================================================*/
public function testGetInstanceWithNoSERVER(){
$instance = \manager\Database::getInstance();
$instance = \database\core\Database::getInstance();
$this->assertEquals( 'localhost', $instance->getConfig()['host'] );
}
public function testGetInstanceWithSERVERLocal(){
// Pour regenerer une instance, on definit une erreur
\manager\Database::$error = \manager\ManagerError::PDOConnection;
\database\core\Database::$error = \manager\ManagerError::PDOConnection;
$instance = \manager\Database::getInstance();
$instance = \database\core\Database::getInstance();
$this->assertEquals( 'localhost', $instance->getConfig()['host'] );
}
@ -25,20 +25,20 @@
/* [2] Verification du singleton (getInstance)
=========================================================*/
public function testInstancePersistence(){
\manager\Database::$error = \manager\ManagerError::PDOConnection;
\database\core\Database::$error = \manager\ManagerError::PDOConnection;
$instance_construct = \manager\Database::getInstance();
$instance_nextuse = \manager\Database::getInstance();
$instance_construct = \database\core\Database::getInstance();
$instance_nextuse = \database\core\Database::getInstance();
$this->assertSame( $instance_construct, $instance_nextuse );
}
public function testInstancePersistenceRefutation(){
\manager\Database::$error = \manager\ManagerError::PDOConnection;
$instance_construct = \manager\Database::getInstance();
\database\core\Database::$error = \manager\ManagerError::PDOConnection;
$instance_construct = \database\core\Database::getInstance();
\manager\Database::$error = \manager\ManagerError::PDOConnection;
$instance_nextuse = \manager\Database::getInstance();
\database\core\Database::$error = \manager\ManagerError::PDOConnection;
$instance_nextuse = \database\core\Database::getInstance();
$this->assertNotSame( $instance_construct, $instance_nextuse );
}
@ -48,7 +48,7 @@
/* [3] Verification de l'objet PDO
=========================================================*/
public function testPDO(){
$pdo = \manager\Database::getPDO();
$pdo = \database\core\Database::getPDO();
$this->assertGreaterThan( 10, count($pdo->query('SELECT * FROM user')->fetchAll()), '[!] Moins de 10 utilisateurs trouves.');
}

View File

@ -5,11 +5,11 @@
/* [0] Verification du type
=========================================================*/
public function testTypeInt(){
$this->assertEquals( [], \manager\Database::delNumeric(10) );
$this->assertEquals( [], \database\core\Database::delNumeric(10) );
}
public function testTypeString(){
$this->assertEquals( [], \manager\Database::delNumeric('notarray') );
$this->assertEquals( [], \database\core\Database::delNumeric('notarray') );
}
/* [1] Verification pour 2 dimensions
@ -23,7 +23,7 @@
1 => 'Jean Dupont',
]];
$computed_array = \manager\Database::delNumeric( $fetchData );
$computed_array = \database\core\Database::delNumeric( $fetchData );
$this->assertArrayHasKey( 'id', $computed_array[0] );
$this->assertArrayHasKey( 'nom', $computed_array[0] );
@ -46,7 +46,7 @@
7 => 'Bla'
]];
$computed_array = \manager\Database::delNumeric( $fetchData );
$computed_array = \database\core\Database::delNumeric( $fetchData );
$this->assertArrayHasKey( 'id', $computed_array[0] );
$this->assertArrayHasKey( 'nom', $computed_array[0] );
@ -73,7 +73,7 @@
1 => 'Jean Dupont'
];
$computed_array = \manager\Database::delNumeric( $fetchData );
$computed_array = \database\core\Database::delNumeric( $fetchData );
$this->assertArrayHasKey( 'id', $computed_array );
$this->assertArrayHasKey( 'nom', $computed_array );
@ -96,7 +96,7 @@
7 => 'Bla'
];
$computed_array = \manager\Database::delNumeric( $fetchData );
$computed_array = \database\core\Database::delNumeric( $fetchData );
$this->assertArrayHasKey( 'id', $computed_array );
$this->assertArrayHasKey( 'nom', $computed_array );

4
public_html/.htaccess Normal file
View File

@ -0,0 +1,4 @@
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

View File

@ -0,0 +1,7 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29uc3RhbnRzLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFBQSxzQkFBc0I7QUFHdEIsMEJBQTBCO0FBRzFCLHlCQUF5QjtBQUd6QixpQkFBaUI7QUFPakIsMkJBQTJCIiwKCSJuYW1lcyI6IFtdCn0= */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZ2xvYmFsLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZ2xvYmFsLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIiCgldLAoJIm1hcHBpbmdzIjogIiIsCgkibmFtZXMiOiBbXQp9 */

View File

@ -0,0 +1,31 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER > #HEADER {
/* Animation de chargement qudnd chargement ajax */
}
#WRAPPER > #HEADER > .icon {
display: block;
position: absolute;
top: 0;
left: 0;
width: 4em;
height: 4em;
background-color: #c23f05;
background-image: url("/src/static/iconv2.svg");
background-position: center center;
background-repeat: no-repeat;
background-size: 50% 50%;
cursor: pointer;
transition: all .3s;
}
#WRAPPER > #HEADER.loading > .icon {
background-image: url("/src/static/loaderv2.svg");
background-size: 70% 70%;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiaGVhZGVyLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXHQvLyBJY29uZSBkdSBzaXRlXG5cdCYgPiAuaWNvbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWNvbG9yLCAxMCk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvc3JjL3N0YXRpYy9pY29udjIuc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNTAlIDUwJTtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0fVxuXG5cdC8qIEFuaW1hdGlvbiBkZSBjaGFyZ2VtZW50IHF1ZG5kIGNoYXJnZW1lbnQgYWpheCAqL1xuXHQmLmxvYWRpbmcgPiAuaWNvbntcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9zcmMvc3RhdGljL2xvYWRlcnYyLnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNzAlIDcwJTtcblx0fVxuXG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQSxzQkFBc0I7QUFHdEIsMEJBQTBCO0FBRzFCLHlCQUF5QjtBQUd6QixpQkFBaUI7QUFPakIsMkJBQTJCO0FEYjNCLEFBQVcsUUFBSCxHQUFHLE9BQU8sQ0FBQTtFQXNCakIsbURBQW1EO0NBTW5EOztBQTVCRCxBQUVLLFFBRkcsR0FBRyxPQUFPLEdBRWIsS0FBSyxDQUFBO0VBQ1IsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVBQUUsQ0FBRTtFQUNQLElBQUksRUFBRSxDQUFFO0VBQ1IsS0FBSyxFQ09VLEdBQUc7RURObEIsTUFBTSxFQ01TLEdBQUc7RURKbkIsZ0JBQWdCLEVBQUUsT0FBTTtFQUN4QixnQkFBZ0IsRUFBRSw2QkFBRztFQUNyQixtQkFBbUIsRUFBRSxhQUFjO0VBQ25DLGlCQUFpQixFQUFFLFNBQVU7RUFDN0IsZUFBZSxFQUFFLE9BQVE7RUFFekIsTUFBTSxFQUFFLE9BQVE7RUFFaEIsVUFBVSxFQUFFLE9BQVE7Q0FFcEI7O0FBcEJGLEFBdUJhLFFBdkJMLEdBQUcsT0FBTyxBQXVCaEIsUUFBUSxHQUFHLEtBQUssQ0FBQTtFQUNoQixnQkFBZ0IsRUFBRSwrQkFBRztFQUNyQixlQUFlLEVBQUUsT0FBUTtDQUN6QiIsCgkibmFtZXMiOiBbXQp9 */

View File

@ -0,0 +1,62 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #edf0f5;
font-family: 'Open Sans', 'Ubuntu';
/* [1] Header de la page
==========================================*/
/* [2] Side-Menu de la page
==========================================*/
/* [3] Container de la page
==========================================*/
}
#WRAPPER > #HEADER {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: calc( 4em - 1px);
border-bottom: 1px solid #c23f05;
background-color: #f44f06;
z-index: 10;
}
#WRAPPER > #MENU-SIDE {
display: block;
position: absolute;
top: 4em;
left: 0;
width: 4em;
height: 100%;
box-shadow: 2px 1px 3px #ddd;
background-color: #fff;
transition: all .3s;
z-index: 9;
}
#WRAPPER > #CONTAINER {
display: flex;
position: absolute;
top: 4em;
left: 4em;
width: calc( 100% - 4em - 2*1em);
height: calc( 100% - 4em - 2*1em);
padding: 1em;
flex-direction: row;
justify-content: space-between;
overflow-x: none;
overflow-y: auto;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmMGY1O1xuXG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ1VidW50dSc7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMXB4ICk7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCR0aGVtZS1jb2xvciwgMTApO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWNvbG9yO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRib3gtc2hhZG93OiAycHggMXB4IDNweCAjZGRkO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0XHR6LWluZGV4OiA5O1xuXHR9XG5cblxuXHQvKiBbM10gQ29udGFpbmVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNDT05UQUlORVJ7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMioxZW0gKTtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gLSAyKjFlbSApO1xuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdFx0b3ZlcmZsb3cteDogbm9uZTtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQSxzQkFBc0I7QUFHdEIsMEJBQTBCO0FBRzFCLHlCQUF5QjtBQUd6QixpQkFBaUI7QUFPakIsMkJBQTJCO0FEZDNCLEFBQUEsUUFBUSxDQUFBO0VBQ1AsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsS0FBTTtFQUNmLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBRWQsZ0JBQWdCLEVBQUUsT0FBUTtFQUUxQixXQUFXLEVBQUUscUJBQXNCO0VBR25DOzZDQUM0QztFQWtCNUM7NkNBQzRDO0VBb0I1Qzs2Q0FDNEM7Q0FpQjVDOztBQXZFRCxBQWVLLFFBZkcsR0FlSCxPQUFPLENBQUE7RUFDVixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxnQkFBSTtFQUViLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU07RUFFL0IsZ0JBQWdCLEVDMUJKLE9BQU87RUQ0Qm5CLE9BQU8sRUFBRSxFQUFHO0NBRVo7O0FBN0JGLEFBbUNLLFFBbkNHLEdBbUNILFVBQVUsQ0FBQTtFQUNiLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsR0FBRyxFQ3ZCWSxHQUFHO0VEd0JsQixJQUFJLEVBQUUsQ0FBRTtFQUNSLEtBQUssRUN6QlUsR0FBRztFRDBCbEIsTUFBTSxFQUFFLElBQUs7RUFFZCxVQUFVLEVBQUUsZ0JBQWlCO0VBRTdCLGdCQUFnQixFQUFFLElBQUs7RUFFdkIsVUFBVSxFQUFFLE9BQVE7RUFFcEIsT0FBTyxFQUFFLENBQUU7Q0FDWDs7QUFsREYsQUF1REssUUF2REcsR0F1REgsVUFBVSxDQUFBO0VBQ2IsT0FBTyxFQUFFLElBQUs7RUFDZCxRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVDM0NZLEdBQUc7RUQ0Q2xCLElBQUksRUM1Q1csR0FBRztFRDZDbEIsS0FBSyxFQUFFLHlCQUFJO0VBQ1gsTUFBTSxFQUFFLHlCQUFJO0VBQ2IsT0FBTyxFQUFFLEdBQUk7RUFHYixjQUFjLEVBQUUsR0FBSTtFQUNwQixlQUFlLEVBQUUsYUFBYztFQUUvQixVQUFVLEVBQUUsSUFBSztFQUNqQixVQUFVLEVBQUUsSUFBSztDQUNqQiIsCgkibmFtZXMiOiBbXQp9 */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,54 @@
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#CONTAINER > .sub-menu-side {
display: block;
position: relative;
}
#CONTAINER > .sub-menu-side > span[data-sublink] {
display: block;
position: relative;
width: 7.5em;
padding: .3em 1em .3em 2em;
margin: 1em;
border-radius: 3px;
color: #5b5e63;
text-shadow: 1px 1px white;
white-space: nowrap;
transition: all .2s;
cursor: pointer;
overflow: hidden;
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg {
display: inline-block;
position: absolute;
left: .5em;
top: 50%;
width: 1em;
height: 1em;
transform: translateY(-50%);
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg path {
fill: #5b5e63 !important;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:hover, #CONTAINER > .sub-menu-side > span[data-sublink].active {
color: #121213;
background-color: #d8deea;
box-shadow: inset 0 0 4px #c8ced9;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:hover > .svg > svg path, #CONTAINER > .sub-menu-side > span[data-sublink].active > .svg > svg path {
fill: #121213 !important;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:nth-child(1) {
margin-top: 1em;
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAic3VibWVudS1zaWRlLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vc3VibWVudS1zaWRlLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI0NPTlRBSU5FUiA+IC5zdWItbWVudS1zaWRle1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8vIExlcyBsaWVucyBkdSBtZW51XG5cdCYgPiBzcGFuW2RhdGEtc3VibGlua117XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IDcuNWVtO1xuXG5cdFx0cGFkZGluZzogLjNlbSAxZW0gLjNlbSAyZW07XG5cdFx0bWFyZ2luOiAxZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRjb2xvcjogJHN1Yi1tZW51LWNvbG9yO1xuXHRcdHRleHQtc2hhZG93OiAxcHggMXB4IHdoaXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC8vIERpbWVuc2lvbi9Qb3NpdGlvbiBkZXMgc3ZnIChpY29uZXMpXG5cdFx0JiA+IC5zdmcgPiBzdmd7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IC41ZW07XG5cdFx0XHRcdC8vIGxlZnQ6IDEwMCU7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHR3aWR0aDogMWVtO1xuXHRcdFx0XHRoZWlnaHQ6IDFlbTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHQvLyBDb2xvcmF0aW9uIHBvdXIgdG91cyBsZXMgZWxlbWVudHMgZHUgc3ZnXG5cdFx0XHQmIHBhdGh7XG5cdFx0XHRcdGZpbGw6ICRzdWItbWVudS1jb2xvciAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIsXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRjb2xvcjogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q4ZGVlYTtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCA0cHggI2M4Y2VkOTtcblxuXHRcdFx0JiA+IC5zdmcgPiBzdmcgcGF0aHtcblx0XHRcdFx0ZmlsbDogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cblx0Ly8gT24gZGVjYWxlIGxlIHByZW1pZXJcblx0JiA+IHNwYW5bZGF0YS1zdWJsaW5rXTpudGgtY2hpbGQoMSl7XG5cdFx0bWFyZ2luLXRvcDogMWVtO1xuXHR9XG5cbn1cbiIsCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2Y0NGYwNjtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBLHNCQUFzQjtBQUd0QiwwQkFBMEI7QUFHMUIseUJBQXlCO0FBR3pCLGlCQUFpQjtBQU9qQiwyQkFBMkI7QURiM0IsQUFBYSxVQUFILEdBQUcsY0FBYyxDQUFBO0VBQzFCLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7Q0E2RG5COztBQS9ERCxBQUtzQixVQUxaLEdBQUcsY0FBYyxHQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsRUFBYTtFQUNyQixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEtBQUssRUFBRSxLQUFNO0VBRWQsT0FBTyxFQUFFLGlCQUFrQjtFQUMzQixNQUFNLEVBQUUsR0FBSTtFQUVaLGFBQWEsRUFBRSxHQUFJO0VBRW5CLEtBQUssRUNkVSxPQUFPO0VEZXRCLFdBQVcsRUFBRSxhQUFjO0VBQzNCLFdBQVcsRUFBRSxNQUFPO0VBRXBCLFVBQVUsRUFBRSxPQUFRO0VBRXBCLE1BQU0sRUFBRSxPQUFRO0VBRWhCLFFBQVEsRUFBRSxNQUFPO0NBZ0NqQjs7QUF2REYsQUEwQmEsVUExQkgsR0FBRyxjQUFjLEdBS3RCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxJQXFCSixJQUFJLEdBQUcsR0FBRyxDQUFBO0VBQ2IsT0FBTyxFQUFFLFlBQWE7RUFDdEIsUUFBUSxFQUFFLFFBQVM7RUFDbEIsSUFBSSxFQUFFLElBQUs7RUFFWCxHQUFHLEVBQUUsR0FBSTtFQUNULEtBQUssRUFBRSxHQUFJO0VBQ1gsTUFBTSxFQUFFLEdBQUk7RUFFYixTQUFTLEVBQUUsZ0JBQVU7Q0FNckI7O0FBekNILEFBc0NLLFVBdENLLEdBQUcsY0FBYyxHQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsSUFxQkosSUFBSSxHQUFHLEdBQUcsQ0FZWCxJQUFJLENBQUE7RUFDTCxJQUFJLEVDdENTLE9BQU8sQ0RzQ0UsVUFBVTtDQUNoQzs7QUF4Q0osQUFLc0IsVUFMWixHQUFHLGNBQWMsR0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sRUEzQ1QsQUFLc0IsVUFMWixHQUFHLGNBQWMsR0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sQ0FBQTtFQUNQLEtBQUssRUFBRSxPQUFNO0VBQ2IsZ0JBQWdCLEVBQUUsT0FBUTtFQUMxQixVQUFVLEVBQUUscUJBQXNCO0NBTWxDOztBQXJESCxBQWlEa0IsVUFqRFIsR0FBRyxjQUFjLEdBS3RCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxDQXNDUCxNQUFNLEdBTUYsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBakR0QixBQWlEa0IsVUFqRFIsR0FBRyxjQUFjLEdBS3RCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxDQXVDUCxPQUFPLEdBS0gsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUE7RUFDbEIsSUFBSSxFQUFFLE9BQU0sQ0FBc0IsVUFBVTtDQUM1Qzs7QUFuREosQUEyRG1DLFVBM0R6QixHQUFHLGNBQWMsR0EyRHRCLElBQUksQ0FBQSxBQUFBLFlBQUMsQUFBQSxDQUFhLFVBQVcsQ0FBQSxBQUFBLENBQUMsRUFBQztFQUNsQyxVQUFVLEVBQUUsR0FBSTtDQUNoQiIsCgkibmFtZXMiOiBbXQp9 */

View File

@ -0,0 +1,2 @@
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29uc3RhbnRzLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiIiwKCSJuYW1lcyI6IFtdCn0= */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZ2xvYmFsLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZ2xvYmFsLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIiCgldLAoJIm1hcHBpbmdzIjogIiIsCgkibmFtZXMiOiBbXQp9 */

View File

@ -0,0 +1,3 @@
#WRAPPER>#HEADER>.icon{display:block;position:absolute;top:0;left:0;width:4em;height:4em;background-color:#c23f05;background-image:url("/src/static/iconv2.svg");background-position:center center;background-repeat:no-repeat;background-size:50% 50%;cursor:pointer;transition:all .3s}#WRAPPER>#HEADER.loading>.icon{background-image:url("/src/static/loaderv2.svg");background-size:70% 70%}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiaGVhZGVyLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXHQvLyBJY29uZSBkdSBzaXRlXG5cdCYgPiAuaWNvbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWNvbG9yLCAxMCk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvc3JjL3N0YXRpYy9pY29udjIuc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNTAlIDUwJTtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0fVxuXG5cdC8qIEFuaW1hdGlvbiBkZSBjaGFyZ2VtZW50IHF1ZG5kIGNoYXJnZW1lbnQgYWpheCAqL1xuXHQmLmxvYWRpbmcgPiAuaWNvbntcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9zcmMvc3RhdGljL2xvYWRlcnYyLnN2ZycpO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNzAlIDcwJTtcblx0fVxuXG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFHQSxBQUVLLFFBRkcsQ0FBRyxPQUFPLENBRWIsS0FBSyxBQUFBLENBQ1IsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQ09VLEdBQUcsQ0RObEIsTUFBTSxDQ01TLEdBQUcsQ0RKbkIsZ0JBQWdCLENBQUUsT0FBTSxDQUN4QixnQkFBZ0IsQ0FBRSw2QkFBRyxDQUNyQixtQkFBbUIsQ0FBRSxhQUFjLENBQ25DLGlCQUFpQixDQUFFLFNBQVUsQ0FDN0IsZUFBZSxDQUFFLE9BQVEsQ0FFekIsTUFBTSxDQUFFLE9BQVEsQ0FFaEIsVUFBVSxDQUFFLE9BQVEsQ0FFcEIsQUFwQkYsQUF1QmEsUUF2QkwsQ0FBRyxPQUFPLEFBdUJoQixRQUFRLENBQUcsS0FBSyxBQUFBLENBQ2hCLGdCQUFnQixDQUFFLCtCQUFHLENBQ3JCLGVBQWUsQ0FBRSxPQUFRLENBQ3pCIiwKCSJuYW1lcyI6IFtdCn0= */

View File

@ -0,0 +1,3 @@
#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#edf0f5;font-family:'Open Sans', 'Ubuntu'}#WRAPPER>#HEADER{display:block;position:absolute;top:0;left:0;width:100%;height:calc( 4em - 1px);border-bottom:1px solid #c23f05;background-color:#f44f06;z-index:10}#WRAPPER>#MENU-SIDE{display:block;position:absolute;top:4em;left:0;width:4em;height:100%;box-shadow:2px 1px 3px #ddd;background-color:#fff;transition:all .3s;z-index:9}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:4em;width:calc( 100% - 4em - 2*1em);height:calc( 100% - 4em - 2*1em);padding:1em;flex-direction:row;justify-content:space-between;overflow-x:none;overflow-y:auto}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibGF5b3V0LmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmMGY1O1xuXG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ1VidW50dSc7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMXB4ICk7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCR0aGVtZS1jb2xvciwgMTApO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWNvbG9yO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRib3gtc2hhZG93OiAycHggMXB4IDNweCAjZGRkO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0XHR6LWluZGV4OiA5O1xuXHR9XG5cblxuXHQvKiBbM10gQ29udGFpbmVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNDT05UQUlORVJ7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9IC0gMioxZW0gKTtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gLSAyKjFlbSApO1xuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdFx0b3ZlcmZsb3cteDogbm9uZTtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG59XG4iLAoJCSIvKiBDT1VMRVVSIERVIFRIRU1FICovXG4kdGhlbWUtY29sb3I6ICNmNDRmMDY7XG5cbi8qIENPVUxFVVIgRFUgU09VUy1NRU5VICovXG4kc3ViLW1lbnUtY29sb3I6ICM1YjVlNjM7XG5cbi8qIENPVUxFVVIgREVTIEVSUkVVUlMgKi9cbiRlcnJvci1jb2xvcjogI2NjNTg1NztcblxuLyogRk9STVVMQUlSRVMgKi9cbiRmb3JtLXZhbGlkLWNvbG9yOiAgICMyN2E1NjA7XG4kZm9ybS1uZXV0cmFsLWNvbG9yOiAjMjE5M2U2O1xuJGZvcm0tc2VhcmNoLWNvbG9yOiAgIzU2MzBlZDtcbiRmb3JtLWludmFsaWQtY29sb3I6ICNkNTI5MTg7XG5cblxuLyogR0VTVElPTiBERVMgTE9OR1VFVVJTICovXG4kbWVudS1zaWRlLXdpZHRoOiA0ZW07XG5cblxuLy8gUE9VUiBSRVNPVVJDRV9ESVNQQVRDSEVSXG4kcmQtZm9ybS12YWxpZC1jb2xvcjogICAnMjdhNTYwJztcbiRyZC1mb3JtLW5ldXRyYWwtY29sb3I6ICcyMTkzZTYnO1xuJHJkLWZvcm0tc2VhcmNoLWNvbG9yOiAgJzU2MzBlZCc7XG4kcmQtZm9ybS1pbnZhbGlkLWNvbG9yOiAnZDUyOTE4JztcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFFQSxBQUFBLFFBQVEsQUFBQSxDQUNQLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLEtBQU0sQ0FDZixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsSUFBSyxDQUVkLGdCQUFnQixDQUFFLE9BQVEsQ0FFMUIsV0FBVyxDQUFFLHFCQUFzQixDQTZEbkMsQUF2RUQsQUFlSyxRQWZHLENBZUgsT0FBTyxBQUFBLENBQ1YsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsZ0JBQUksQ0FFYixhQUFhLENBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFNLENBRS9CLGdCQUFnQixDQzFCSixPQUFPLENENEJuQixPQUFPLENBQUUsRUFBRyxDQUVaLEFBN0JGLEFBbUNLLFFBbkNHLENBbUNILFVBQVUsQUFBQSxDQUNiLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsR0FBRyxDQ3ZCWSxHQUFHLENEd0JsQixJQUFJLENBQUUsQ0FBRSxDQUNSLEtBQUssQ0N6QlUsR0FBRyxDRDBCbEIsTUFBTSxDQUFFLElBQUssQ0FFZCxVQUFVLENBQUUsZ0JBQWlCLENBRTdCLGdCQUFnQixDQUFFLElBQUssQ0FFdkIsVUFBVSxDQUFFLE9BQVEsQ0FFcEIsT0FBTyxDQUFFLENBQUUsQ0FDWCxBQWxERixBQXVESyxRQXZERyxDQXVESCxVQUFVLEFBQUEsQ0FDYixPQUFPLENBQUUsSUFBSyxDQUNkLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0MzQ1ksR0FBRyxDRDRDbEIsSUFBSSxDQzVDVyxHQUFHLENENkNsQixLQUFLLENBQUUseUJBQUksQ0FDWCxNQUFNLENBQUUseUJBQUksQ0FDYixPQUFPLENBQUUsR0FBSSxDQUdiLGNBQWMsQ0FBRSxHQUFJLENBQ3BCLGVBQWUsQ0FBRSxhQUFjLENBRS9CLFVBQVUsQ0FBRSxJQUFLLENBQ2pCLFVBQVUsQ0FBRSxJQUFLLENBQ2pCIiwKCSJuYW1lcyI6IFtdCn0= */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
#CONTAINER>.sub-menu-side{display:block;position:relative}#CONTAINER>.sub-menu-side>span[data-sublink]{display:block;position:relative;width:7.5em;padding:.3em 1em .3em 2em;margin:1em;border-radius:3px;color:#5b5e63;text-shadow:1px 1px white;white-space:nowrap;transition:all .2s;cursor:pointer;overflow:hidden}#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg{display:inline-block;position:absolute;left:.5em;top:50%;width:1em;height:1em;transform:translateY(-50%)}#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg path{fill:#5b5e63 !important}#CONTAINER>.sub-menu-side>span[data-sublink]:hover,#CONTAINER>.sub-menu-side>span[data-sublink].active{color:#121213;background-color:#d8deea;box-shadow:inset 0 0 4px #c8ced9}#CONTAINER>.sub-menu-side>span[data-sublink]:hover>.svg>svg path,#CONTAINER>.sub-menu-side>span[data-sublink].active>.svg>svg path{fill:#121213 !important}#CONTAINER>.sub-menu-side>span[data-sublink]:nth-child(1){margin-top:1em}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAic3VibWVudS1zaWRlLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vc3VibWVudS1zaWRlLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI0NPTlRBSU5FUiA+IC5zdWItbWVudS1zaWRle1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8vIExlcyBsaWVucyBkdSBtZW51XG5cdCYgPiBzcGFuW2RhdGEtc3VibGlua117XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IDcuNWVtO1xuXG5cdFx0cGFkZGluZzogLjNlbSAxZW0gLjNlbSAyZW07XG5cdFx0bWFyZ2luOiAxZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRjb2xvcjogJHN1Yi1tZW51LWNvbG9yO1xuXHRcdHRleHQtc2hhZG93OiAxcHggMXB4IHdoaXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC8vIERpbWVuc2lvbi9Qb3NpdGlvbiBkZXMgc3ZnIChpY29uZXMpXG5cdFx0JiA+IC5zdmcgPiBzdmd7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IC41ZW07XG5cdFx0XHRcdC8vIGxlZnQ6IDEwMCU7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHR3aWR0aDogMWVtO1xuXHRcdFx0XHRoZWlnaHQ6IDFlbTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHQvLyBDb2xvcmF0aW9uIHBvdXIgdG91cyBsZXMgZWxlbWVudHMgZHUgc3ZnXG5cdFx0XHQmIHBhdGh7XG5cdFx0XHRcdGZpbGw6ICRzdWItbWVudS1jb2xvciAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIsXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRjb2xvcjogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q4ZGVlYTtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCA0cHggI2M4Y2VkOTtcblxuXHRcdFx0JiA+IC5zdmcgPiBzdmcgcGF0aHtcblx0XHRcdFx0ZmlsbDogZGFya2VuKCRzdWItbWVudS1jb2xvciwgMzApICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cblx0Ly8gT24gZGVjYWxlIGxlIHByZW1pZXJcblx0JiA+IHNwYW5bZGF0YS1zdWJsaW5rXTpudGgtY2hpbGQoMSl7XG5cdFx0bWFyZ2luLXRvcDogMWVtO1xuXHR9XG5cbn1cbiIsCgkJIi8qIENPVUxFVVIgRFUgVEhFTUUgKi9cbiR0aGVtZS1jb2xvcjogI2Y0NGYwNjtcblxuLyogQ09VTEVVUiBEVSBTT1VTLU1FTlUgKi9cbiRzdWItbWVudS1jb2xvcjogIzViNWU2MztcblxuLyogQ09VTEVVUiBERVMgRVJSRVVSUyAqL1xuJGVycm9yLWNvbG9yOiAjY2M1ODU3O1xuXG4vKiBGT1JNVUxBSVJFUyAqL1xuJGZvcm0tdmFsaWQtY29sb3I6ICAgIzI3YTU2MDtcbiRmb3JtLW5ldXRyYWwtY29sb3I6ICMyMTkzZTY7XG4kZm9ybS1zZWFyY2gtY29sb3I6ICAjNTYzMGVkO1xuJGZvcm0taW52YWxpZC1jb2xvcjogI2Q1MjkxODtcblxuXG4vKiBHRVNUSU9OIERFUyBMT05HVUVVUlMgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDRlbTtcblxuXG4vLyBQT1VSIFJFU09VUkNFX0RJU1BBVENIRVJcbiRyZC1mb3JtLXZhbGlkLWNvbG9yOiAgICcyN2E1NjAnO1xuJHJkLWZvcm0tbmV1dHJhbC1jb2xvcjogJzIxOTNlNic7XG4kcmQtZm9ybS1zZWFyY2gtY29sb3I6ICAnNTYzMGVkJztcbiRyZC1mb3JtLWludmFsaWQtY29sb3I6ICdkNTI5MTgnO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUdBLEFBQWEsVUFBSCxDQUFHLGNBQWMsQUFBQSxDQUMxQixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBNkRuQixBQS9ERCxBQUtzQixVQUxaLENBQUcsY0FBYyxDQUt0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0FBYSxDQUNyQixPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEtBQUssQ0FBRSxLQUFNLENBRWQsT0FBTyxDQUFFLGlCQUFrQixDQUMzQixNQUFNLENBQUUsR0FBSSxDQUVaLGFBQWEsQ0FBRSxHQUFJLENBRW5CLEtBQUssQ0NkVSxPQUFPLENEZXRCLFdBQVcsQ0FBRSxhQUFjLENBQzNCLFdBQVcsQ0FBRSxNQUFPLENBRXBCLFVBQVUsQ0FBRSxPQUFRLENBRXBCLE1BQU0sQ0FBRSxPQUFRLENBRWhCLFFBQVEsQ0FBRSxNQUFPLENBZ0NqQixBQXZERixBQTBCYSxVQTFCSCxDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLEVBcUJKLElBQUksQ0FBRyxHQUFHLEFBQUEsQ0FDYixPQUFPLENBQUUsWUFBYSxDQUN0QixRQUFRLENBQUUsUUFBUyxDQUNsQixJQUFJLENBQUUsSUFBSyxDQUVYLEdBQUcsQ0FBRSxHQUFJLENBQ1QsS0FBSyxDQUFFLEdBQUksQ0FDWCxNQUFNLENBQUUsR0FBSSxDQUViLFNBQVMsQ0FBRSxnQkFBVSxDQU1yQixBQXpDSCxBQXNDSyxVQXRDSyxDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLEVBcUJKLElBQUksQ0FBRyxHQUFHLENBWVgsSUFBSSxBQUFBLENBQ0wsSUFBSSxDQ3RDUyxPQUFPLENEc0NFLFVBQVUsQ0FDaEMsQUF4Q0osQUFLc0IsVUFMWixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sQ0EzQ1QsQUFLc0IsVUFMWixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sQUFBQSxDQUNQLEtBQUssQ0FBRSxPQUFNLENBQ2IsZ0JBQWdCLENBQUUsT0FBUSxDQUMxQixVQUFVLENBQUUscUJBQXNCLENBTWxDLEFBckRILEFBaURrQixVQWpEUixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBc0NQLE1BQU0sQ0FNRixJQUFJLENBQUcsR0FBRyxDQUFDLElBQUksQ0FqRHRCLEFBaURrQixVQWpEUixDQUFHLGNBQWMsQ0FLdEIsSUFBSSxDQUFBLEFBQUEsWUFBQyxBQUFBLENBdUNQLE9BQU8sQ0FLSCxJQUFJLENBQUcsR0FBRyxDQUFDLElBQUksQUFBQSxDQUNsQixJQUFJLENBQUUsT0FBTSxDQUFzQixVQUFVLENBQzVDLEFBbkRKLEFBMkRtQyxVQTNEekIsQ0FBRyxjQUFjLENBMkR0QixJQUFJLENBQUEsQUFBQSxZQUFDLEFBQUEsQ0FBYSxVQUFXLENBQUEsQUFBQSxDQUFDLENBQUMsQ0FDbEMsVUFBVSxDQUFFLEdBQUksQ0FDaEIiLAoJIm5hbWVzIjogW10KfQ== */

View File

@ -1,13 +1,14 @@
<?php define('__ROOT__', dirname(__FILE__) );
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/autoloader.php';
require_once __ROOT__.'/autoloader.php';
use \router\Router;
use \router\core\Router;
use \manager\ModuleRequest;
use \manager\ModuleResponse;
use \api\core\ModuleRequest;
use \api\core\ModuleResponse;
use \manager\ManagerError;
use \manager\Authentification;
use \api\core\Authentification;
/*******************************************/
@ -53,7 +54,7 @@
/* (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];
$path = __PUBLIC__.'/'.$matches[0].$matches[2];
header('Content-Type: image/svg+xml');
@ -93,7 +94,7 @@
if( !preg_match('#^(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?$#i', $m[0]) )
header(__REDIRECT__);
else
include __ROOT__.'/view/view.php';
include __PUBLIC__.'/view/view.php';
});
@ -102,13 +103,14 @@
$R->get('(.*)', function($m){
if( !preg_match('#^admin/$#', $m[0]) ) header(__REDIRECT__);
else include __ROOT__.'/view/admin.php';
else include __PUBLIC__.'/view/admin.php';
});
}else{
$R->get('(.*)', function($m){
if( !preg_match('#^warehouse/$#', $m[0]) ) header(__REDIRECT__);
else include __ROOT__.'/view/warehouse.php';
else include __PUBLIC__.'/view/warehouse.php';
});
}

View File

@ -28,7 +28,9 @@ localStorageInterface.prototype = {
*/
set: function(dataset_name, key, value){
// On met la clé en <String>
key = key.toString();
key = key != null && key.toString() || null;
if( key === false ) return false;
/* (1) Si le 'dataset' n'existe pas */
var index = this.dataset.indexOf(dataset_name);
@ -55,11 +57,10 @@ localStorageInterface.prototype = {
*
*/
get: function(dataset_name, key){
if( key == null )
return null;
// On met la clé en <String>
key = key.toString();
key = key != null && key.toString() || null;
if( key === false ) return false;
/* (1) Si le 'dataset' n'existe pas */
if( this.dataset.indexOf(dataset_name) == -1 ) return false; // erreur
@ -78,7 +79,9 @@ localStorageInterface.prototype = {
*/
del: function(dataset, key){
// On met la clé en <String>
key = key.toString();
key = key != null && key.toString() || null;
if( key === false ) return false;
/* (1) Si le 'dataset' n'existe pas */
var index = this.dataset.indexOf(dataset);
@ -191,12 +194,8 @@ localStorageInterface.prototype = {
var index = this.dataset.indexOf(dataset);
/* (2) Cas 1 : Le dataset n'existe pas -> on le crée */
if( index == -1 )
this.createDataset(dataset);
/* (3) Cas 2 : Le dataset existe -> on le vide */
else
this.clear(dataset);
~index && this.createDataset(dataset) || this.clear(dataset);

Some files were not shown because too many files have changed in this diff Show More