Compare commits

..

No commits in common. "master" and "api-refactor" have entirely different histories.

66 changed files with 3070 additions and 2863 deletions

View File

@ -150,88 +150,6 @@
];
}
/* (x) Return the machine history for an history entry
*
* @id_entry<id> UID of the history entry
*
* @return timeline<array> Machine timeline data
*
---------------------------------------------------------*/
public function get_timeline($params){
extract($params);
/* (1) Get history entry data
---------------------------------------------------------*/
/* (1) Request */
$entry = new Repo('history/getById', [$id_entry]);
/* (2) Get response */
$entry = $entry->answer();
/* (3) Manage error */
if( !is_array($entry) )
return ['error' => new Error(Err::RepoError)];
/* (2) Get history for machine
---------------------------------------------------------*/
/* (1) Request */
$timeline = new Repo('history/getByIdMachine', [
$_SESSION['WAREHOUSE']['id'],
$entry['id_machine']
]);
/* (2) Get response */
$timeline = $timeline->answer();
/* (3) Manage error */
if( $timeline === false )
return ['error' => new Error(Err::RepoError)];
/* (3) Return data
---------------------------------------------------------*/
return [ 'timeline' => $timeline ];
}
/* (x) Return the entry data for an history id
*
* @id_entry<id> UID of the history entry
*
* @return data<array> Entry data
*
---------------------------------------------------------*/
public function getById($params){
extract($params);
/* (1) Get history entry data
---------------------------------------------------------*/
/* (1) Request */
$entry = new Repo('history/getById', [$id_entry]);
/* (2) Get response */
$entry = $entry->answer();
/* (3) Manage error */
if( !is_array($entry) )
return ['error' => new Error(Err::RepoError)];
/* (2) Return data
---------------------------------------------------------*/
return [ 'entry' => $entry ];
}
}

View File

@ -383,7 +383,7 @@
/* [3] Get history for the machine
=========================================================*/
/* (1) Write request */
$history_req = new Repo('history/getByIdMachine', [$_SESSION['WAREHOUSE']['id'], $id_machine]);
$history_req = new Repo('history/getByIdMachine', [$id_machine]);
/* (2) Manage error */
if( $history_req->error->get() != Err::Success )

View File

@ -88,37 +88,15 @@
* FALSE si aucun résultat
*
*/
public static function getByIdMachine($id_warehouse, $id_machine){
public static function getByIdMachine($id_machine){
/* [1] On rédige/execute la requête
=========================================================*/
$users = Table::get('user')
->whereIdWarehouse($id_warehouse)
->select('id_user')
->select('username', null, null, 'user_name')
->select('firstname', null, null, 'user_firstname')
->select('lastname', null, null, 'user_lastname');
$machine = Table::get('history')
->whereIdMachine($id_machine)
->orderby('timestamp', Rows::ORDER_DESC)
->select('*');
$machines = Table::get('machine')
->whereIdWarehouse($id_warehouse)
->whereId($id_machine)
->select('id_machine')
->select('name', null, null, 'machine_name');
$actions = Table::get('action')
->select('id_action')
->select('name', null, null, 'action_name');
$history = Table::get('history')
->join('id_user', $users)
->join('id_machine', $machines)
->join('id_action', $actions)
->select('id_history')
->select('timestamp')
->orderby('timestamp', Rows::ORDER_DESC);
return $history->fetch();
return $machine->fetch();
}
@ -156,23 +134,21 @@
/* RETOURNE UNE ENTREE SPECIFIQUE
*
* @id_entry<int> UID de l'entrée historique
* @id_history<int> UID de l'entree
*
* @return entry<Array> Données de l'entree
* FALSE si erreur | aucun résultat
* FALSE si aucun résultat
*
*/
public static function getById($id_entry){
public static function getById($id_history){
/* [1] On rédige/execute la requête
=========================================================*/
$entry = Table::get('history')
->whereId($id_entry)
$user = Table::get('user')
->whereId($id_history)
->orderby('timestamp', Rows::ORDER_DESC)
->select('*')
->unique();
return $entry->fetch();
->select('*');
return $user->fetch();
}
@ -235,60 +211,34 @@
/* [1] Recherche dans les relations 'machines'
=========================================================*/
/* (1) On exécute la requête */
$machines_rq = new Repo('machine/search', [$id_warehouse, $keyword]);
$machines_rs = $machines_rq->answer();
$machines_r = new Repo('machine/search', [$id_warehouse, $keyword]);
/* (2) Gestion succès */
if( is_array($machines_rs) )
foreach($machines_rs as $row)
if( $machines_r->error->get() == Err::Success )
foreach($machines_r->answer() as $row)
$machine_ids[] = $row['id_machine'];
/* [2] Recherche dans les relations 'users'
=========================================================*/
/* (1) On cherche dans les utilisateurs */
$users_rq = new Repo('user/search', [$id_warehouse, $keyword]);
$users_rs = $users_rq->answer();
$users_r = new Repo('user/search', [$id_warehouse, $keyword]);
/* (2) Gestion succès */
if( is_array($users_rs) )
foreach($users_rs as $row)
if( $users_r->error->get() == Err::Success )
foreach($users_r->answer() as $row)
$user_ids[] = $row['id_user'];
/* [3] On rédige/execute la requête
=========================================================*/
/* (1) Recherche par utilisateur */
$history_r_user = Table::get('history')
->select('id_history')
->whereIdUser([ $user_ids, Rows::COND_IN ]);
$history_r = DatabaseDriver::getPDO()->prepare("SELECT id_history FROM history
WHERE id_user IN (SELECT id_user FROM user WHERE username LIKE '%$keyword%')
or id_machine IN (SELECT id_machine FROM machine WHERE name LIKE '%$keyword%')
ORDER BY timestamp DESC;");
/* (2) Recherche par utilisateur */
$history_r_machine = Table::get('history')
->select('id_history')
->whereIdMachine([ $machine_ids, Rows::COND_IN ]);
$history_r->execute();
/* (3) On enregistre les entrées par utilisateur */
$already_id = [];
$ids = $history_r_user->fetch();
foreach($ids as $user_result)
$already_id[ $user_result['id_history'] ] = null;
/* (4) On ajoute les entrées par machines (si pas déja) */
foreach($history_r_machine->fetch() as $machine_result)
if( !isset($already_id[$machine_result['id_history']]) ){
$ids[] = $machine_result;
$already_id[ $machine_result['id_history'] ] = null;
}
/* (5) On retourne le total */
return $ids;
return DatabaseDriver::delNumeric( $history_r->fetchAll() );
}

View File

@ -65,75 +65,15 @@
*
*/
public static function search($id_warehouse, $keyword){
/* (1) Format keyword
---------------------------------------------------------*/ {
/* (1) Make all lowercase */
$keyword = strtolower($keyword);
/* (2) Create a keyword set (separator: space) */
$keywords = [];
$keywords_tmp = explode(' ', $keyword);
/* (4) Trim each keyword + ignore empty ones (2 consecutive spaces) */
foreach($keywords_tmp as $kw){
// ignore empty keywords
if( strlen(trim($kw)) == 0 )
continue;
// store others
$keywords[] = trim($kw);
}
}
/* (2) Search for each keyword
---------------------------------------------------------*/ {
/* (1) Initialise id list that will contain each matching user ids */
$mac_id_list = [];
/* (2) Request for each keyword */
foreach($keywords as $kw){
// {2.1} Request //
$searchmac = Table::get('machine')
->select('id_machine')
// On recupere les donnees
$search = Table::get('machine')
->whereIdWarehouse($id_warehouse)
->whereName(["%$kw%", Rows::COND_LIKE] );
// {2.2} Fetch result //
$matches = $searchmac->fetch();
// {2.3} Only add non-already added ids //
foreach($matches as $match){
// {2.4.1} If not already -> add it //
if( !isset($mac_id_list[ $match['id_machine'] ]) )
$mac_id_list[ $match['id_machine'] ] = null;
}
}
}
/* (3) Join results
---------------------------------------------------------*/
/* (1) Join request */
$join_rq = Table::get('machine')
->whereName(["%$keyword%", Rows::COND_LIKE])
->select('id_machine')
->select('name')
->whereId([array_keys($mac_id_list), Rows::COND_IN]);
/* (2) Return result */
return $join_rq->fetch();
->orderby('name', Rows::ORDER_ASC);
return $search->fetch();
}

View File

@ -66,82 +66,22 @@
*
*/
public static function search($id_warehouse, $keyword){
/* (1) Format keyword
---------------------------------------------------------*/ {
/* (1) Make all lowercase */
$keyword = strtolower($keyword);
/* (2) Create a keyword set (separator: space) */
$keywords = [];
$keywords_tmp = explode(' ', $keyword);
/* (4) Trim each keyword + ignore empty ones (2 consecutive spaces) */
foreach($keywords_tmp as $kw){
// ignore empty keywords
if( strlen(trim($kw)) == 0 )
continue;
// store others
$keywords[] = trim($kw);
}
}
/* (2) Search for each keyword
---------------------------------------------------------*/ {
/* (1) Initialise id list that will contain each matching user ids */
$user_id_list = [];
/* (2) Request for each keyword */
foreach($keywords as $kw){
// {2.1} Request //
$searchusers = DatabaseDriver::getPDO()->prepare("SELECT id_user FROM user
// On recupere les donnees
$searchusers = DatabaseDriver::getPDO()->prepare("SELECT * FROM user
WHERE id_warehouse = :id_warehouse
AND ( LOWER(code) LIKE '%".$kw."%'
OR LOWER(username) LIKE '%".$kw."%'
OR LOWER(firstname) LIKE '%".$kw."%'
OR LOWER(lastname) LIKE '%".$kw."%'
OR LOWER(mail) LIKE '%".$kw."%'
AND ( code LIKE '%".$keyword."%'
OR username LIKE '%".$keyword."%'
OR firstname LIKE '%".$keyword."%'
OR lastname LIKE '%".$keyword."%'
OR mail LIKE '%".$keyword."%'
)
");
// {2.2} Inject params //
$searchusers->execute([ ':id_warehouse' => $id_warehouse ]);
$searchusers->execute([
':id_warehouse' => $id_warehouse
]);
// {2.3} Fetch result //
$matches = DatabaseDriver::delNumeric( $searchusers->fetchAll() );
// {2.4} Only add non-already added ids //
foreach($matches as $match){
// {2.4.1} If not already -> add it //
if( !isset($user_id_list[ $match['id_user'] ]) )
$user_id_list[ $match['id_user'] ] = null;
}
}
}
/* (3) Join results
---------------------------------------------------------*/
/* (1) Join request */
$join_rq = Table::get('user')
->select('*')
->whereId([array_keys($user_id_list), Rows::COND_IN]);
/* (2) Return result */
return $join_rq->fetch();
return DatabaseDriver::delNumeric( $searchusers->fetchAll() );
}

View File

@ -1,12 +1,12 @@
{% block search_bar %} <input type='text' class='searchbar' placeholder='Recherche'> {% endblock %}
{% set count = 0 %}
{% set noresult = true %}
{# {% block user_cluster_list %} #}
{% block user_cluster_list %}
{% for user_cluster in core.get_clusters(0) %}
{% set count = count + 1 %}
{% set noresult = false %}
{% set id_user_cluster = 'u' ~ user_cluster.id_user_cluster %}
{% set memlen = core.get_members(user_cluster.id_user_cluster,0) | length %}
@ -58,16 +58,15 @@
{% endfor %}
{# {% endblock %} #}
{% endblock %}
{# {% block machines_cluster_list %} #}
{% block machines_cluster_list %}
{% for machine_cluster in core.get_clusters(1) %}
{% set count = count + 1 %}
{% set noresult = false %}
{% set id_machine_cluster = 'm' ~ machine_cluster.id_machine_cluster %}
{% set memlen = core.get_members(machine_cluster.id_machine_cluster,1) | length %}
@ -133,16 +132,16 @@
{% endfor %}
{# {% endblock %} #}
{% endblock %}
{# if no result #}
{% if count <= 0 %}
{% if noresult %}
{% block no_result %}
<article class='inline-box'>
<span>Aucun résultat {{ count }}</span>
<span>Aucun groupe trouvé</span>
</article>
{% endblock %}

View File

@ -10,247 +10,11 @@
class main extends i_view{
public $id_history;
public $timeline = [];
public $entry = [];
/* (1) Constructor
*
* @id_history<id> UID of the history entry
*
---------------------------------------------------------*/
public function __construct($id_history){
/* (1) Set attributes
---------------------------------------------------------*/
$this->id_history = $id_history;
/* (3) Get entry data
---------------------------------------------------------*/
/* (1) Request */
$entry_req = new Request('historyDefault/getById', [ 'id_entry' => $this->id_history ]);
/* (2) Get response */
$entry_res = $entry_req->dispatch();
/* (3) On success, store entry data */
if( $entry_res->error->get() == Err::Success )
$this->entry = $entry_res->get('entry');
/* (3) Get machine timeline
---------------------------------------------------------*/
/* (1) Request */
$mac_req = new Request('historyDefault/get_timeline', [ 'id_entry' => $this->id_history ]);
/* (2) Get response */
$mac_res = $mac_req->dispatch();
/* (3) On success, store timeline data */
if( $mac_res->error->get() == Err::Success ){
$this->timeline = $mac_res->get('timeline');
// add date nodes to the timeline
$this->add_date_nodes();
}
}
/* (2) Format timeline data to svg render
*
* @return svg<String> SVG raw render
*
---------------------------------------------------------*/
public function svg(){
/* (1) Initialize variables
---------------------------------------------------------*/
/* (1) Set date() timezone */
date_default_timezone_set('Europe/Paris');
debug();
/* (2) Init. result raw svg */
$RAW = '';
/* (3) Set global range */
$c = 0;
$cl = count($this->timeline);
// if no entry -> abort
if( $cl == 0 )
return '';
/* (4) Useful variables */
$y_pad = 50; // padding between each node
$line_pad = 50; // padding on each LINE end
$line_height = ( $cl + 1 ) * $y_pad; // line height (each node * @y_pad + @y_pad)
$height = $line_height + 2*$line_pad; // svg height
$width = 200; // svg width
$x = 50; // center width
/* (5) Svg tag */
$RAW .= "<svg width='$width' height='$height' viewBox='0 0 $width $height' class='timeline'>";
/* (6) Start CIRCLE */ {
// {6.1} Date node //
$y = $line_pad;
$RAW .= "<circle cx='$x' cy='$y' r='7' fill='#edf0f5' class='tstart'/>";
$RAW .= "<circle cx='$x' cy='$y' r='4' fill='#555' class='tstart'/>";
// {6.2} Date line to text //
$line_end_x = $x + (30-8);
$RAW .= "<path d='m".($x+8)." $y L$line_end_x $y' style='stroke-dasharray: 3px;' s stroke='#444'/>";
// {6.3} Date text //
$x_decal = $x + 30;
$y_decal = $y + 5;
$RAW .= "<text x='$x_decal' y='$y_decal' class='bold'>".date('d / m / Y', $this->timeline[0]['timestamp'])."</text>";
}
/* (2) Build barebone
---------------------------------------------------------*/
/* (1) Default TIMELINE */
$line_end_y = $line_height + $line_pad;
$RAW .= "<path d='m$x $line_pad L$x $line_end_y' style='stroke-dasharray: 3px;' stroke='#444' class='timeline line'/>";
/* (3) Build each action
---------------------------------------------------------*/
for( $c = 0 ; $c < $cl ; $c++ ){
/* (1) Calculate X */
$y = $line_pad + $y_pad + $c*$y_pad;
/* (2) Get entry data */
$entry = $this->timeline[$c];
/* (2.1) If DATE NODE -> add it */
if( isset($entry['date_node']) ){
// {2.1.1} Date node //
$RAW .= "<circle cx='$x' cy='$y' r='7' fill='#edf0f5' class='tstart'/>";
$RAW .= "<circle cx='$x' cy='$y' r='4' fill='#555' class='tstart'/>";
// {2.1.2} Date line to text //
$line_end_x = $x + (30-8);
$RAW .= "<path d='m".($x+8)." $y L$line_end_x $y' style='stroke-dasharray: 3px;' stroke='#555'/>";
// {2.1.3} Date text //
$x_decal = $x + 30;
$y_decal = $y + 5;
$RAW .= "<text x='$x_decal' y='$y_decal' class='bold'>".$entry['date_node']."</text>";
continue;
}
/* (3) Get useful data */
$action_class = strtolower($entry['action_name']);
$icon_uri = '/src/static/timeline/'.$action_class.'@ffffff.svg';
$data_entry = "data-entry='".$entry['id_history']."'";
$data_user = " data-user='".$entry['user_name']."'";
$data_machine = " data-machine='".$entry['machine_name']."'";
$data_action = " data-action='".$entry['action_name']."'";
$data_time = " data-time='".date('H:i:s d/m/Y', $entry['timestamp'])."'";
$data_tags = $data_entry.$data_user.$data_machine.$data_action.$data_time;
$y_img = $y - 5.5;
/* (4) Draw entry circles */
$RAW .= "<circle cx='$x' cy='$y' r='15' class='timeline around $action_class' $data_tags id='e".$entry['id_history']."' data-y='$y' />";
$RAW .= "<circle cx='$x' cy='$y' r='12' class='timeline center $action_class' />";
/* (5) Draw entry icon (action) */
$x_decal = $x - 5.5;
$RAW .= "\t<image x='$x_decal' y='$y_img' width='12' height='12' xlink:href='$icon_uri' class='icon' />";
/* (6) Draw circle below if current user */
if( $this->entry['id_user'] == $entry['id_user'] ){
$x_decal = $x - 25;
// {6.1} If current ENTRY -> draw big circle //
if( $this->entry['id_history'] == $entry['id_history'] )
$RAW .= "<circle cx='$x_decal' cy='$y' r='4' class='timeline below $action_class' />";
// {6.2} Else -> draw little circle //
else
$RAW .= "<circle cx='$x_decal' cy='$y' r='2' class='timeline below $action_class' />";
}
/* (6) Hour */
$x_decal = $x + 25;
$y_decal = $y + 5;
$RAW .= "<text x='$x_decal' y='$y_decal' class='$action_class'>".date('H:i:s', $entry['timestamp'])." - ".$entry['user_name']."</text>";
}
/* (4) Close SVG
---------------------------------------------------------*/
/* (1) Stop CIRCLE */
$y = $line_height + $line_pad;
$RAW .= "<circle cx='$x' cy='$y' r='6' fill='#edf0f5' class='tstop' />";
$RAW .= "<circle cx='$x' cy='$y' r='4' fill='#555' class='tstop' />";
/* (2) Close SVG tag */
$RAW .= "</svg>";
/* (5) Create invisible infobox (for now)
---------------------------------------------------------*/
$RAW .= "<div class='timeline infobox'></div>";
return $RAW;
}
/* (3) Add events for new day in @this->timeline
*
---------------------------------------------------------*/
private function add_date_nodes(){
/* (1) Initialization
---------------------------------------------------------*/
/* (1) Initialize variables */
$last_day = null;
$new_timeline = []; // will contain the new @timeline data
/* (2) Browse each entry
---------------------------------------------------------*/
foreach($this->timeline as $entry){
/* (1) If different day (not null) -> add a node + update last_day */
if( !is_null($last_day) && $last_day != date('d / m / Y', $entry['timestamp']) )
$new_timeline[] = [ 'date_node' => $last_day ];
/* (2) In all cases -> copy the event */
$new_timeline[] = $entry;
/* (3) Update the day */
$last_day = date('d / m / Y', $entry['timestamp']);
}
/* (3) Update the result
---------------------------------------------------------*/
$this->timeline = $new_timeline;
}
}

View File

@ -1,6 +1 @@
<!-- <span class='in-dev'>In development.. This feature will soon be available.</span> -->
<article class='timeline container' data-length='{{ core.timeline | length }}'>
{{ core.svg() | raw }}
</article>
<span class='in-dev'>In development.. This feature will soon be available.</span>

View File

@ -72,7 +72,7 @@
{% block no_result %}
<article class='inline-box'>
<span>Aucun groupe machine trouvé.</span>
<span>Aucun groupe trouvé.</span>
</article>
{% endblock %}

View File

@ -12,7 +12,7 @@
{% block generated %}
<input id='admin_password' type='text' placeholder='Mot de passe généré...'><br>
<input id='admin_password' type='text' placeholder='Mot de passe généré...' disabled><br>
{% endblock %}

View File

@ -55,7 +55,7 @@
{% block no_result %}
<article class='inline-box'>
<span>Aucun groupe utilisateur trouvé.</span>
<span>Aucun groupe trouvé.</span>
</article>
{% endblock %}

View File

@ -42,7 +42,7 @@
/* [2] Define headers
=========================================================*/
$this->headers = self::getallheaders_adapter();
$this->headers = \getallheaders();
/* [3] Define default datasets (GET, POST)
@ -201,30 +201,4 @@
public function HEADERS(){ return $this->headers; }
public function METHOD(){ return $this->method; }
public function URI(){ return $this->uri; }
private static function getallheaders_adapter(){
/* (1) If exists -> use it
---------------------------------------------------------*/
if( function_exists('getallheaders') )
return getallheaders();
/* (2) If does not (php-fpm)
---------------------------------------------------------*/
/* (1) init. variables */
$fetched_headers = [];
/* (2) Get all headers from $_SERVER */
foreach($_SERVER as $hname=>$hvalue ){
// {1} Store only if begins with 'HTTP_' //
if( substr($hname,0,5) == 'HTTP_' )
$fetched_headers[ str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($hname,5)))))] = $hvalue;
}
/* (3) Return created headers */
return $fetched_headers;
}
}

View File

@ -237,7 +237,7 @@
/* [3] If `IN` condition
=========================================================*/
$defaultWhere = $this->where;
$inCond = is_array($args[0]) && count($args[0]) > 1 && is_array($args[0][0]) && $args[0][1] == self::COND_IN;
$inCond = count($args[0]) > 1 && is_array($args[0][0]) && $args[0][1] == self::COND_IN;
// erreur
if( is_array($args[0][0]) && !$inCond )

View File

@ -132,9 +132,6 @@
/* [1] On construit la requête
=========================================================*/
/* (1) Chamo */
if( $value[1] == Rows::COND_LIKE ) // make LIKE lowercase
$sql .= 'LOWER('.$field[0].'.'.$field[1].') ';
else
$sql .= $field[0].'.'.$field[1].' ';
/* (2) Opérateur */

View File

@ -18,10 +18,6 @@ class Router{
*
*/
public function __construct($url){
// Format URI (ne doit pas avoir le premier '/')
if( preg_match("@^/@", $url) )
$url = substr($url, 1);
$this->url = $url;
// On initialise les routes

View File

@ -1,14 +0,0 @@
<?php
namespace token\core;
class TreeTokenNull{
public function __construct(){}
public function init_parent(){ return true; }
public function init_child(){ return true; }
}

387
composer.lock generated
View File

@ -4,20 +4,21 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "a67d059eefe03511f76073ba76c61878",
"content-hash": "98f631539238eb6dba4f74f1ae9e4744",
"packages": [
{
"name": "symfony/polyfill-mbstring",
"version": "v1.7.0",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
"shasum": ""
},
"require": {
@ -29,7 +30,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
"dev-master": "1.6-dev"
}
},
"autoload": {
@ -63,7 +64,7 @@
"portable",
"shim"
],
"time": "2018-01-30T19:27:44+00:00"
"time": "2017-10-11 12:05:26"
},
{
"name": "twig/twig",
@ -129,22 +130,22 @@
"keywords": [
"templating"
],
"time": "2017-09-27T17:50:14+00:00"
"time": "2017-09-27 17:50:14"
}
],
"packages-dev": [
{
"name": "composer/ca-bundle",
"version": "1.1.0",
"version": "1.0.8",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "943b2c4fcad1ef178d16a713c2468bf7e579c288"
"reference": "9dd73a03951357922d8aee6cc084500de93e2343"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/943b2c4fcad1ef178d16a713c2468bf7e579c288",
"reference": "943b2c4fcad1ef178d16a713c2468bf7e579c288",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/9dd73a03951357922d8aee6cc084500de93e2343",
"reference": "9dd73a03951357922d8aee6cc084500de93e2343",
"shasum": ""
},
"require": {
@ -153,9 +154,12 @@
"php": "^5.3.2 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35",
"phpunit/phpunit": "^4.5",
"psr/log": "^1.0",
"symfony/process": "^2.5 || ^3.0 || ^4.0"
"symfony/process": "^2.5 || ^3.0"
},
"suggest": {
"symfony/process": "This is necessary to reliably check whether openssl_x509_parse is vulnerable on older php versions, but can be ignored on PHP 5.5.6+"
},
"type": "library",
"extra": {
@ -187,39 +191,39 @@
"ssl",
"tls"
],
"time": "2017-11-29T09:37:33+00:00"
"time": "2017-09-11 07:24:36"
},
{
"name": "composer/composer",
"version": "1.6.3",
"version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
"reference": "88a69fda0f2187ad8714cedffd7a8872dceaa4c2"
"reference": "c639623fa2178b404ed4bab80f0d1263853fa4ae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/composer/zipball/88a69fda0f2187ad8714cedffd7a8872dceaa4c2",
"reference": "88a69fda0f2187ad8714cedffd7a8872dceaa4c2",
"url": "https://api.github.com/repos/composer/composer/zipball/c639623fa2178b404ed4bab80f0d1263853fa4ae",
"reference": "c639623fa2178b404ed4bab80f0d1263853fa4ae",
"shasum": ""
},
"require": {
"composer/ca-bundle": "^1.0",
"composer/semver": "^1.0",
"composer/spdx-licenses": "^1.2",
"composer/spdx-licenses": "^1.0",
"justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0",
"php": "^5.3.2 || ^7.0",
"psr/log": "^1.0",
"seld/cli-prompt": "^1.0",
"seld/jsonlint": "^1.4",
"seld/phar-utils": "^1.0",
"symfony/console": "^2.7 || ^3.0 || ^4.0",
"symfony/filesystem": "^2.7 || ^3.0 || ^4.0",
"symfony/finder": "^2.7 || ^3.0 || ^4.0",
"symfony/process": "^2.7 || ^3.0 || ^4.0"
"symfony/console": "^2.7 || ^3.0",
"symfony/filesystem": "^2.7 || ^3.0",
"symfony/finder": "^2.7 || ^3.0",
"symfony/process": "^2.7 || ^3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7",
"phpunit/phpunit": "^4.5 || ^5.0.5",
"phpunit/phpunit-mock-objects": "^2.3 || ^3.0"
},
"suggest": {
@ -233,7 +237,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
"dev-master": "1.5-dev"
}
},
"autoload": {
@ -264,7 +268,7 @@
"dependency",
"package"
],
"time": "2018-01-31T15:28:18+00:00"
"time": "2017-09-11 14:59:26"
},
{
"name": "composer/semver",
@ -326,27 +330,27 @@
"validation",
"versioning"
],
"time": "2016-08-30T16:08:34+00:00"
"time": "2016-08-30 16:08:34"
},
{
"name": "composer/spdx-licenses",
"version": "1.3.0",
"version": "1.1.6",
"source": {
"type": "git",
"url": "https://github.com/composer/spdx-licenses.git",
"reference": "7e111c50db92fa2ced140f5ba23b4e261bc77a30"
"reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/spdx-licenses/zipball/7e111c50db92fa2ced140f5ba23b4e261bc77a30",
"reference": "7e111c50db92fa2ced140f5ba23b4e261bc77a30",
"url": "https://api.github.com/repos/composer/spdx-licenses/zipball/2603a0d7ddc00a015deb576fa5297ca43dee6b1c",
"reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
"phpunit/phpunit": "^4.5 || ^5.0.5",
"phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
},
"type": "library",
@ -387,24 +391,24 @@
"spdx",
"validator"
],
"time": "2018-01-31T13:17:27+00:00"
"time": "2017-04-03 19:08:52"
},
{
"name": "doctrine/collections",
"version": "v1.5.0",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
"shasum": ""
},
"require": {
"php": "^7.1"
"php": "^5.6 || ^7.0"
},
"require-dev": {
"doctrine/coding-standard": "~0.1@dev",
@ -454,28 +458,26 @@
"collections",
"iterator"
],
"time": "2017-07-22T10:37:32+00:00"
"time": "2017-01-03 10:49:41"
},
{
"name": "gitonomy/gitlib",
"version": "v1.0.3",
"version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/gitonomy/gitlib.git",
"reference": "1c2b0605115786613cb517798046c8ab57c17097"
"reference": "b4b916423a2e2da631cf3b3787beb9386a7b253c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/gitonomy/gitlib/zipball/1c2b0605115786613cb517798046c8ab57c17097",
"reference": "1c2b0605115786613cb517798046c8ab57c17097",
"url": "https://api.github.com/repos/gitonomy/gitlib/zipball/b4b916423a2e2da631cf3b3787beb9386a7b253c",
"reference": "b4b916423a2e2da631cf3b3787beb9386a7b253c",
"shasum": ""
},
"require": {
"php": "^5.3 || ^7.0",
"symfony/process": "^2.3|^3.0|^4.0"
"symfony/process": "^2.3|^3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35|^5.7",
"psr/log": "^1.0"
},
"suggest": {
@ -510,7 +512,7 @@
],
"description": "Library for accessing git",
"homepage": "http://gitonomy.com",
"time": "2018-01-10T11:34:47+00:00"
"time": "2016-05-11 08:25:40"
},
{
"name": "jakub-onderka/php-parallel-lint",
@ -557,7 +559,7 @@
],
"description": "This tool check syntax of PHP files about 20x faster than serial check.",
"homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint",
"time": "2015-12-15T10:42:16+00:00"
"time": "2015-12-15 10:42:16"
},
{
"name": "justinrainbow/json-schema",
@ -623,7 +625,7 @@
"json",
"schema"
],
"time": "2017-10-21T13:15:38+00:00"
"time": "2017-10-21 13:15:38"
},
{
"name": "kahlan/kahlan",
@ -677,7 +679,7 @@
"testing",
"unit test"
],
"time": "2017-08-12T20:37:11+00:00"
"time": "2017-08-12 20:37:11"
},
{
"name": "monolog/monolog",
@ -755,31 +757,31 @@
"logging",
"psr-3"
],
"time": "2017-06-19T01:22:40+00:00"
"time": "2017-06-19 01:22:40"
},
{
"name": "ocramius/package-versions",
"version": "1.3.0",
"version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/PackageVersions.git",
"reference": "4489d5002c49d55576fa0ba786f42dbb009be46f"
"reference": "72b226d2957e9e6a9ed09aeaa29cabd840d1a3b7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f",
"reference": "4489d5002c49d55576fa0ba786f42dbb009be46f",
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/72b226d2957e9e6a9ed09aeaa29cabd840d1a3b7",
"reference": "72b226d2957e9e6a9ed09aeaa29cabd840d1a3b7",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0.0",
"php": "^7.1.0"
"composer-plugin-api": "^1.0",
"php": "~7.0"
},
"require-dev": {
"composer/composer": "^1.6.3",
"composer/composer": "^1.3",
"ext-zip": "*",
"infection/infection": "^0.7.1",
"phpunit/phpunit": "^7.0.0"
"humbug/humbug": "dev-master",
"phpunit/phpunit": "^5.7.5"
},
"type": "composer-plugin",
"extra": {
@ -804,37 +806,33 @@
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"time": "2018-02-05T13:05:30+00:00"
"time": "2017-09-06 15:24:43"
},
{
"name": "ocramius/proxy-manager",
"version": "2.1.1",
"version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/ProxyManager.git",
"reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7"
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/e18ac876b2e4819c76349de8f78ccc8ef1554cd7",
"reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7",
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/a55d08229f4f614bf335759ed0cf63378feeb2e6",
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6",
"shasum": ""
},
"require": {
"ocramius/package-versions": "^1.1.1",
"php": "^7.1.0",
"zendframework/zend-code": "^3.1.0"
"ocramius/package-versions": "^1.0",
"php": "7.0.0 - 7.0.5 || ^7.0.7",
"zendframework/zend-code": "3.0.0 - 3.0.2 || ^3.0.4"
},
"require-dev": {
"couscous/couscous": "^1.5.2",
"couscous/couscous": "^1.4.0",
"ext-phar": "*",
"humbug/humbug": "dev-master@DEV",
"nikic/php-parser": "^3.0.4",
"phpbench/phpbench": "^0.12.2",
"phpstan/phpstan": "^0.6.4",
"phpunit/phpunit": "^5.6.4",
"phpunit/phpunit-mock-objects": "^3.4.1",
"squizlabs/php_codesniffer": "^2.7.0"
"phpbench/phpbench": "^0.11.2",
"phpunit/phpunit": "^5.4.6",
"squizlabs/php_codesniffer": "^2.6.0"
},
"suggest": {
"ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
@ -873,7 +871,7 @@
"proxy pattern",
"service proxies"
],
"time": "2017-05-04T11:12:50+00:00"
"time": "2016-11-04 15:53:15"
},
{
"name": "phpro/grumphp",
@ -970,7 +968,7 @@
}
],
"description": "A composer plugin that enables source code quality checks.",
"time": "2017-05-31T17:49:48+00:00"
"time": "2017-05-31 17:49:48"
},
{
"name": "psr/container",
@ -1019,7 +1017,7 @@
"container-interop",
"psr"
],
"time": "2017-02-14T16:28:37+00:00"
"time": "2017-02-14 16:28:37"
},
{
"name": "psr/log",
@ -1066,7 +1064,7 @@
"psr",
"psr-3"
],
"time": "2016-10-10T12:19:37+00:00"
"time": "2016-10-10 12:19:37"
},
{
"name": "seld/cli-prompt",
@ -1114,27 +1112,27 @@
"input",
"prompt"
],
"time": "2017-03-18T11:32:45+00:00"
"time": "2017-03-18 11:32:45"
},
{
"name": "seld/jsonlint",
"version": "1.7.1",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/jsonlint.git",
"reference": "d15f59a67ff805a44c50ea0516d2341740f81a38"
"reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38",
"reference": "d15f59a67ff805a44c50ea0516d2341740f81a38",
"url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77",
"reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77",
"shasum": ""
},
"require": {
"php": "^5.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
"phpunit/phpunit": "^4.5"
},
"bin": [
"bin/jsonlint"
@ -1163,7 +1161,7 @@
"parser",
"validator"
],
"time": "2018-01-24T12:46:19+00:00"
"time": "2017-06-18 15:11:04"
},
{
"name": "seld/phar-utils",
@ -1207,34 +1205,34 @@
"keywords": [
"phra"
],
"time": "2015-10-13T18:44:15+00:00"
"time": "2015-10-13 18:44:15"
},
{
"name": "symfony/config",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
"reference": "72689b934d6c6ecf73eca874e98933bf055313c9"
"reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/72689b934d6c6ecf73eca874e98933bf055313c9",
"reference": "72689b934d6c6ecf73eca874e98933bf055313c9",
"url": "https://api.github.com/repos/symfony/config/zipball/4ab62407bff9cd97c410a7feaef04c375aaa5cfd",
"reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"symfony/filesystem": "~2.8|~3.0|~4.0"
"symfony/filesystem": "~2.8|~3.0"
},
"conflict": {
"symfony/dependency-injection": "<3.3",
"symfony/finder": "<3.3"
},
"require-dev": {
"symfony/dependency-injection": "~3.3|~4.0",
"symfony/finder": "~3.3|~4.0",
"symfony/yaml": "~3.0|~4.0"
"symfony/dependency-injection": "~3.3",
"symfony/finder": "~3.3",
"symfony/yaml": "~3.0"
},
"suggest": {
"symfony/yaml": "To use the yaml reference dumper"
@ -1242,7 +1240,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1269,49 +1267,48 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
"time": "2018-01-21T19:05:02+00:00"
"time": "2017-10-04 18:56:58"
},
{
"name": "symfony/console",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "26b6f419edda16c19775211987651cb27baea7f1"
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c19775211987651cb27baea7f1",
"reference": "26b6f419edda16c19775211987651cb27baea7f1",
"url": "https://api.github.com/repos/symfony/console/zipball/116bc56e45a8e5572e51eb43ab58c769a352366c",
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"symfony/debug": "~2.8|~3.0|~4.0",
"symfony/debug": "~2.8|~3.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"symfony/dependency-injection": "<3.4",
"symfony/process": "<3.3"
"symfony/dependency-injection": "<3.3"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~3.3|~4.0",
"symfony/dependency-injection": "~3.4|~4.0",
"symfony/event-dispatcher": "~2.8|~3.0|~4.0",
"symfony/lock": "~3.4|~4.0",
"symfony/process": "~3.3|~4.0"
"symfony/config": "~3.3",
"symfony/dependency-injection": "~3.3",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/filesystem": "~2.8|~3.0",
"symfony/process": "~2.8|~3.0"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/lock": "",
"symfony/filesystem": "",
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1338,36 +1335,36 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2018-01-29T09:03:43+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/debug",
"version": "v4.0.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "c77bb31d0f6310a2ac11e657475d396a92e5dc54"
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/c77bb31d0f6310a2ac11e657475d396a92e5dc54",
"reference": "c77bb31d0f6310a2ac11e657475d396a92e5dc54",
"url": "https://api.github.com/repos/symfony/debug/zipball/eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd",
"shasum": ""
},
"require": {
"php": "^7.1.3",
"php": "^5.5.9|>=7.0.8",
"psr/log": "~1.0"
},
"conflict": {
"symfony/http-kernel": "<3.4"
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
},
"require-dev": {
"symfony/http-kernel": "~3.4|~4.0"
"symfony/http-kernel": "~2.8|~3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1394,20 +1391,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2018-01-18T22:19:33+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/dependency-injection",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d"
"reference": "8ebad929aee3ca185b05f55d9cc5521670821ad1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4b2717ee2499390e371e1fc7abaf886c1c83e83d",
"reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8ebad929aee3ca185b05f55d9cc5521670821ad1",
"reference": "8ebad929aee3ca185b05f55d9cc5521670821ad1",
"shasum": ""
},
"require": {
@ -1415,18 +1412,17 @@
"psr/container": "^1.0"
},
"conflict": {
"symfony/config": "<3.3.7",
"symfony/config": "<3.3.1",
"symfony/finder": "<3.3",
"symfony/proxy-manager-bridge": "<3.4",
"symfony/yaml": "<3.4"
"symfony/yaml": "<3.3"
},
"provide": {
"psr/container-implementation": "1.0"
},
"require-dev": {
"symfony/config": "~3.3|~4.0",
"symfony/expression-language": "~2.8|~3.0|~4.0",
"symfony/yaml": "~3.4|~4.0"
"symfony/config": "~3.3",
"symfony/expression-language": "~2.8|~3.0",
"symfony/yaml": "~3.3"
},
"suggest": {
"symfony/config": "",
@ -1438,7 +1434,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1465,20 +1461,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2018-01-29T09:16:57+00:00"
"time": "2017-10-04 17:15:30"
},
{
"name": "symfony/event-dispatcher",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca"
"reference": "d7ba037e4b8221956ab1e221c73c9e27e05dd423"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8f797331a30b76fdae5342dc26ca",
"reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d7ba037e4b8221956ab1e221c73c9e27e05dd423",
"reference": "d7ba037e4b8221956ab1e221c73c9e27e05dd423",
"shasum": ""
},
"require": {
@ -1489,10 +1485,10 @@
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~2.8|~3.0|~4.0",
"symfony/dependency-injection": "~3.3|~4.0",
"symfony/expression-language": "~2.8|~3.0|~4.0",
"symfony/stopwatch": "~2.8|~3.0|~4.0"
"symfony/config": "~2.8|~3.0",
"symfony/dependency-injection": "~3.3",
"symfony/expression-language": "~2.8|~3.0",
"symfony/stopwatch": "~2.8|~3.0"
},
"suggest": {
"symfony/dependency-injection": "",
@ -1501,7 +1497,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1528,20 +1524,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2018-01-03T07:37:34+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/filesystem",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "e078773ad6354af38169faf31c21df0f18ace03d"
"reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af38169faf31c21df0f18ace03d",
"reference": "e078773ad6354af38169faf31c21df0f18ace03d",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/90bc45abf02ae6b7deb43895c1052cb0038506f1",
"reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1",
"shasum": ""
},
"require": {
@ -1550,7 +1546,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1577,20 +1573,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2018-01-03T07:37:34+00:00"
"time": "2017-10-03 13:33:10"
},
{
"name": "symfony/finder",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f"
"reference": "773e19a491d97926f236942484cb541560ce862d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f",
"reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f",
"url": "https://api.github.com/repos/symfony/finder/zipball/773e19a491d97926f236942484cb541560ce862d",
"reference": "773e19a491d97926f236942484cb541560ce862d",
"shasum": ""
},
"require": {
@ -1599,7 +1595,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1626,20 +1622,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2018-01-03T07:37:34+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/options-resolver",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
"reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e"
"reference": "ee4e22978fe885b54ee5da8c7964f0a5301abfb6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/f3109a6aedd20e35c3a33190e932c2b063b7b50e",
"reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/ee4e22978fe885b54ee5da8c7964f0a5301abfb6",
"reference": "ee4e22978fe885b54ee5da8c7964f0a5301abfb6",
"shasum": ""
},
"require": {
@ -1648,7 +1644,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1680,20 +1676,20 @@
"configuration",
"options"
],
"time": "2018-01-11T07:56:07+00:00"
"time": "2017-07-29 21:54:42"
},
{
"name": "symfony/process",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "09a5172057be8fc677840e591b17f385e58c7c0d"
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e591b17f385e58c7c0d",
"reference": "09a5172057be8fc677840e591b17f385e58c7c0d",
"url": "https://api.github.com/repos/symfony/process/zipball/fdf89e57a723a29baf536e288d6e232c059697b1",
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1",
"shasum": ""
},
"require": {
@ -1702,7 +1698,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1729,34 +1725,34 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2018-01-29T09:03:43+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/proxy-manager-bridge",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/proxy-manager-bridge.git",
"reference": "ffb375b65cf112364b5374ed99059975ca84a6bd"
"reference": "8c88403febb02a49e3f55512fced3c400c80cf28"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/ffb375b65cf112364b5374ed99059975ca84a6bd",
"reference": "ffb375b65cf112364b5374ed99059975ca84a6bd",
"url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/8c88403febb02a49e3f55512fced3c400c80cf28",
"reference": "8c88403febb02a49e3f55512fced3c400c80cf28",
"shasum": ""
},
"require": {
"ocramius/proxy-manager": "~0.4|~1.0|~2.0",
"php": "^5.5.9|>=7.0.8",
"symfony/dependency-injection": "~3.4|~4.0"
"symfony/dependency-injection": "~2.8|~3.0"
},
"require-dev": {
"symfony/config": "~2.8|~3.0|~4.0"
"symfony/config": "~2.8|~3.0"
},
"type": "symfony-bridge",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1783,30 +1779,27 @@
],
"description": "Symfony ProxyManager Bridge",
"homepage": "https://symfony.com",
"time": "2018-01-03T07:37:34+00:00"
"time": "2017-10-02 06:42:24"
},
{
"name": "symfony/yaml",
"version": "v3.4.4",
"version": "v3.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe"
"reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/eab73b6c21d27ae4cd037c417618dfd4befb0bfe",
"reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe",
"url": "https://api.github.com/repos/symfony/yaml/zipball/8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46",
"reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"conflict": {
"symfony/console": "<3.4"
},
"require-dev": {
"symfony/console": "~3.4|~4.0"
"symfony/console": "~2.8|~3.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
@ -1814,7 +1807,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
@ -1841,31 +1834,31 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2018-01-21T19:05:02+00:00"
"time": "2017-10-05 14:43:42"
},
{
"name": "zendframework/zend-code",
"version": "3.3.0",
"version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-code.git",
"reference": "6b1059db5b368db769e4392c6cb6cc139e56640d"
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/6b1059db5b368db769e4392c6cb6cc139e56640d",
"reference": "6b1059db5b368db769e4392c6cb6cc139e56640d",
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/2899c17f83a7207f2d7f53ec2f421204d3beea27",
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27",
"shasum": ""
},
"require": {
"php": "^7.1",
"php": "^5.6 || 7.0.0 - 7.0.4 || ^7.0.6",
"zendframework/zend-eventmanager": "^2.6 || ^3.0"
},
"require-dev": {
"doctrine/annotations": "~1.0",
"ext-phar": "*",
"phpunit/phpunit": "^6.2.3",
"zendframework/zend-coding-standard": "^1.0.0",
"phpunit/phpunit": "^4.8.21",
"squizlabs/php_codesniffer": "^2.5",
"zendframework/zend-stdlib": "^2.7 || ^3.0"
},
"suggest": {
@ -1875,8 +1868,8 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev",
"dev-develop": "3.3-dev"
"dev-master": "3.1-dev",
"dev-develop": "3.2-dev"
}
},
"autoload": {
@ -1894,7 +1887,7 @@
"code",
"zf2"
],
"time": "2017-10-20T15:21:32+00:00"
"time": "2016-10-24 13:23:32"
},
{
"name": "zendframework/zend-eventmanager",
@ -1948,7 +1941,7 @@
"events",
"zf2"
],
"time": "2017-07-11T19:17:22+00:00"
"time": "2017-07-11 19:17:22"
}
],
"aliases": [],

View File

@ -605,28 +605,6 @@
"options": { "download": true },
"parameters": {},
"output": {}
},
"get_timeline": {
"description": "Retourne la timeline d'une machine pour associée à une entrée historique.",
"permissions": [["admin"]],
"parameters": {
"id_entry": { "description": "UID de l'entrée historique", "type": "id" }
},
"output": {
"timeline": { "description": "Données de la timeline.", "type": "array" }
}
},
"getById": {
"description": "Retourne les données associées à une entrée historique.",
"permissions": [["admin"]],
"parameters": {
"id_entry": { "description": "UID de l'entrée historique", "type": "id" }
},
"output": {
"entry": { "description": "Données de l'entrée.", "type": "array" }
}
}
},

View File

@ -18,7 +18,6 @@
"search",
"getAll",
"getById",
"getByIdUser",
"getByIdMachine",
"getByIdAction"

View File

@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Nov 13, 2017 at 08:18 AM
-- Generation Time: Oct 12, 2017 at 09:32 PM
-- Server version: 5.7.19-0ubuntu0.16.04.1
-- PHP Version: 7.0.22-0ubuntu0.16.04.1
@ -19,6 +19,8 @@ SET time_zone = "+00:00";
--
-- Database: `logauth`
--
CREATE DATABASE IF NOT EXISTS `logauth` DEFAULT CHARACTER SET latin1 COLLATE latin1_bin;
USE `logauth`;
-- --------------------------------------------------------
@ -26,6 +28,7 @@ SET time_zone = "+00:00";
-- Table structure for table `action`
--
DROP TABLE IF EXISTS `action`;
CREATE TABLE `action` (
`id_action` int(11) NOT NULL,
`name` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
@ -52,6 +55,7 @@ INSERT INTO `action` (`id_action`, `name`, `timeout`, `required`, `action`) VALU
-- Table structure for table `action_merge`
--
DROP TABLE IF EXISTS `action_merge`;
CREATE TABLE `action_merge` (
`id_action_merge` int(11) NOT NULL,
`id_target` int(11) NOT NULL,
@ -101,6 +105,7 @@ INSERT INTO `action_merge` (`id_action_merge`, `id_target`, `id_source`, `id_act
-- Table structure for table `admin`
--
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id_admin` int(11) NOT NULL,
`id_warehouse` int(11) NOT NULL,
@ -116,10 +121,8 @@ CREATE TABLE `admin` (
INSERT INTO `admin` (`id_admin`, `id_warehouse`, `username`, `mail`, `password`, `token`) VALUES
(1, 7, 'adrien.marques', 'adminmail@gmail.com', 'eb35bccc794d3151b050285c3f6f6d084faadcc7345302b639fbb036cf623b7befcbf7ea08579c612f6201b22cdbc98d6d5d39354b3d31f51ba0426a5299371d', '434f3494ca228538463320eccf93ba67ca29e734073fbf7a9178ba7494b0e26365bb5ae2ead89428f515cdcb9ac75f0ec2200033c3911f4a49f133dfb6dd4aca'),
(4, 7, 'willy.fontaine', 'willy.fontaine@stef.com', '08678556fd8223eb5d6014deeec072b809df8ac1dd6e087150f2b9e3820640ed92e33db793b9a02f31615490cee7b01c659865a6322a9d784bf86747ec41d7aa', '728caa787cf2f567cfeacf682e64b36a6387955cc441dc62c59fc51df034760e76fccb934b82f4495cfe860c3092665811d93bd1549f7d286d0ad071ee45b6fd'),
(5, 8, 'willy.fontaine', 'willy.fontaine@stef.com', '08678556fd8223eb5d6014deeec072b809df8ac1dd6e087150f2b9e3820640ed92e33db793b9a02f31615490cee7b01c659865a6322a9d784bf86747ec41d7aa', '9e8d9632bde19a34e1d0cc953c4ad59f59ed6f8ce981e655fccc6083e8dc2dfbc754230277ec5aa2c5e884a4fd71ee229b2d9e49492ce283fb40c23a73e432f3'),
(8, 8, 'patrick.letort', 'patrick.letort@stef.com', '2dae3e1c28554b77c2e1ec20fba4405937b159f7607802f8e88df8cefaa53a683f143edad0e1196dd13c58dc180e3bbd23e97ed320361ac33b99500e5f63071c', '8cfae3acc5917a8656e5603f7e7171265342c04af4d3a1c5ddb183905ab8bd0030edc64a4beee67b92bcbdfbbf5299625adfbbc48fb27f42a98e0a0b8afc4e09'),
(9, 8, 'adrien.marques', 'marquesadri1@gmail.com', 'e8bf5e2e0fa92a3dabfa3563c49c55ad1741faf71783d86c3342cd3bd04b46c8b138cb4efeb078c98daa777856de7eccad2189fc5f4f6fe58ffb1dec2baf38b3', '395c9e06462072e0e724be228cddccbf5189ef1f52558241ae2f89cfdf83f825b3c718396f8002a097e4648199ab8094c1390e31f0b77dbc4004093a62115822');
(2, 8, 'alexandre.marques', 'admin2mail@gmail.com', 'b70896036f6d717f938ca09f531364c17910fc6a2011166e2c2bac6f505bda52e8d8993fefb7a6fdf13b1fd5368280f064ff87e01ae74aadf7e14f582dede676', '287361328d110cbc2e78464563e005dc82a6a0d501b84cba6770dd3d173b65eef0b226fcb8326cc14fb4ee9dec5df6622a11fd8e6e8a6e518a7eca055e67e8c5'),
(4, 8, 'willy.fontaine', 'willy.fontaine@stef.com', '08678556fd8223eb5d6014deeec072b809df8ac1dd6e087150f2b9e3820640ed92e33db793b9a02f31615490cee7b01c659865a6322a9d784bf86747ec41d7aa', '728caa787cf2f567cfeacf682e64b36a6387955cc441dc62c59fc51df034760e76fccb934b82f4495cfe860c3092665811d93bd1549f7d286d0ad071ee45b6fd');
-- --------------------------------------------------------
@ -127,6 +130,7 @@ INSERT INTO `admin` (`id_admin`, `id_warehouse`, `username`, `mail`, `password`,
-- Table structure for table `chip`
--
DROP TABLE IF EXISTS `chip`;
CREATE TABLE `chip` (
`id_chip` int(11) NOT NULL,
`id_module` int(11) DEFAULT NULL,
@ -150,6 +154,7 @@ INSERT INTO `chip` (`id_chip`, `id_module`, `name`, `position`, `type`, `pins`)
-- Table structure for table `etree`
--
DROP TABLE IF EXISTS `etree`;
CREATE TABLE `etree` (
`id_etree` int(11) NOT NULL,
`id_module` int(11) NOT NULL,
@ -172,6 +177,7 @@ INSERT INTO `etree` (`id_etree`, `id_module`, `daemon`) VALUES
-- Table structure for table `global_state`
--
DROP TABLE IF EXISTS `global_state`;
CREATE TABLE `global_state` (
`id_global_state` int(11) NOT NULL,
`global_state` varchar(20) COLLATE utf8_unicode_ci NOT NULL COMMENT 'started | signaled | locked',
@ -194,6 +200,7 @@ INSERT INTO `global_state` (`id_global_state`, `global_state`, `chips`) VALUES
-- Table structure for table `history`
--
DROP TABLE IF EXISTS `history`;
CREATE TABLE `history` (
`id_history` int(11) NOT NULL,
`timestamp` int(11) NOT NULL,
@ -207,117 +214,68 @@ CREATE TABLE `history` (
--
INSERT INTO `history` (`id_history`, `timestamp`, `id_user`, `id_machine`, `id_action`) VALUES
(504, 1508073591, 210, 127, 1),
(505, 1508073598, 210, 127, 5),
(506, 1508073601, 210, 127, 1),
(507, 1508073644, 210, 127, 5),
(508, 1508073654, 210, 127, 1),
(509, 1508073657, 210, 127, 2),
(510, 1508073659, 210, 127, 3),
(511, 1508073682, 218, 127, 4),
(512, 1508073687, 210, 127, 1),
(513, 1508129928, 210, 127, 5),
(514, 1508129955, 210, 127, 1),
(515, 1508129964, 210, 127, 5),
(516, 1508129991, 210, 127, 1),
(517, 1508130001, 210, 127, 5),
(518, 1508130011, 210, 127, 1),
(519, 1508130022, 210, 127, 5),
(520, 1508130024, 210, 127, 1),
(521, 1508130027, 210, 127, 2),
(522, 1508130029, 210, 127, 3),
(523, 1508130114, 218, 127, 4),
(524, 1508130137, 210, 127, 1),
(525, 1508130156, 210, 127, 5),
(526, 1508130160, 210, 127, 1),
(527, 1508130198, 210, 127, 5),
(528, 1508130200, 210, 127, 1),
(529, 1508130203, 210, 127, 2),
(530, 1508130332, 218, 127, 6),
(531, 1508130339, 210, 127, 5),
(532, 1508130349, 210, 127, 1),
(533, 1508130447, 210, 127, 5),
(534, 1508130449, 210, 127, 1),
(535, 1508130451, 210, 127, 5),
(536, 1508130459, 210, 127, 1),
(537, 1508130644, 210, 127, 5),
(538, 1508130652, 210, 127, 1),
(539, 1508130654, 210, 127, 5),
(540, 1508130663, 210, 127, 1),
(541, 1508130668, 210, 127, 5),
(542, 1508131094, 210, 127, 1),
(543, 1508131102, 210, 127, 5),
(544, 1508131107, 210, 127, 1),
(545, 1508131120, 210, 127, 5),
(546, 1508131149, 210, 127, 1),
(547, 1508131167, 210, 127, 5),
(548, 1508131176, 210, 127, 1),
(549, 1508131281, 210, 127, 5),
(550, 1508131286, 210, 127, 1),
(551, 1508131313, 210, 127, 5),
(552, 1508131320, 210, 127, 1),
(553, 1508131323, 210, 127, 5),
(554, 1508136438, 210, 127, 1),
(555, 1508136455, 210, 127, 5),
(556, 1508136480, 210, 127, 1),
(557, 1508136499, 210, 127, 5),
(558, 1508137679, 210, 127, 1),
(559, 1508137723, 210, 127, 5),
(560, 1508137727, 210, 127, 1),
(561, 1508137737, 210, 127, 5),
(562, 1508137744, 210, 127, 1),
(563, 1508152269, 210, 127, 5),
(564, 1508153966, 210, 127, 1),
(565, 1508163844, 210, 127, 5),
(566, 1508163848, 210, 127, 1),
(567, 1508163849, 210, 127, 5),
(568, 1508163873, 210, 127, 1),
(569, 1508163879, 210, 127, 5),
(570, 1508220239, 210, 127, 1),
(571, 1508220269, 210, 127, 5),
(572, 1508220272, 210, 127, 1),
(573, 1508220284, 210, 127, 5),
(574, 1508220292, 210, 127, 1),
(575, 1508226597, 210, 127, 5),
(576, 1508227895, 210, 127, 1),
(577, 1508233976, 210, 127, 5),
(578, 1508236312, 210, 127, 1),
(579, 1508248170, 210, 127, 5),
(580, 1508249485, 210, 127, 1),
(581, 1508253739, 210, 127, 5),
(582, 1508296080, 210, 127, 1),
(583, 1508296083, 210, 127, 5),
(584, 1508296086, 210, 127, 1),
(585, 1508296091, 210, 127, 5),
(586, 1508296095, 210, 127, 1),
(587, 1508296106, 210, 127, 5),
(588, 1508296155, 210, 127, 1),
(589, 1508296156, 210, 127, 5),
(590, 1508296248, 210, 127, 1),
(591, 1508296252, 210, 127, 5),
(592, 1508306368, 210, 127, 1),
(593, 1508325871, 210, 127, 5),
(594, 1508387103, 210, 127, 1),
(595, 1508389196, 210, 127, 5),
(596, 1508389201, 210, 127, 1),
(597, 1508389202, 210, 127, 5),
(598, 1508389203, 210, 127, 1),
(599, 1508389205, 210, 127, 5),
(600, 1508389216, 210, 127, 1),
(601, 1508389224, 210, 127, 5),
(602, 1508389226, 210, 127, 1),
(603, 1508389235, 210, 127, 5),
(604, 1508534088, 210, 127, 1),
(605, 1508534098, 210, 127, 5),
(606, 1508534099, 210, 127, 1),
(607, 1508534383, 210, 127, 5),
(608, 1508650844, 210, 127, 1),
(609, 1508659205, 210, 127, 5),
(610, 1508659207, 210, 127, 1),
(611, 1508665004, 210, 127, 5),
(612, 1508665006, 210, 127, 1),
(613, 1508665094, 210, 127, 5),
(614, 1508667146, 210, 127, 1);
(285, 1506950713, 215, 126, 1),
(286, 1506950739, 215, 126, 5),
(287, 1506950740, 215, 126, 1),
(288, 1506950741, 215, 126, 5),
(289, 1506950742, 215, 126, 1),
(290, 1506950804, 215, 126, 5),
(291, 1506950807, 215, 126, 2),
(292, 1506950810, 215, 126, 5),
(293, 1506950811, 215, 126, 1),
(294, 1506950812, 215, 126, 5),
(295, 1506950813, 215, 126, 1),
(296, 1506950815, 210, 126, 6),
(297, 1506950819, 215, 126, 5),
(298, 1506950822, 215, 126, 2),
(299, 1506950824, 215, 126, 3),
(300, 1506950829, 210, 126, 4),
(301, 1506950831, 215, 126, 1),
(302, 1506951006, 215, 126, 5),
(303, 1506951006, 215, 126, 1),
(304, 1506951007, 215, 126, 5),
(305, 1506951188, 215, 126, 1),
(306, 1506951190, 215, 126, 5),
(307, 1506951201, 215, 126, 1),
(308, 1506951205, 215, 126, 5),
(309, 1506951209, 215, 126, 1),
(310, 1506951210, 215, 126, 5),
(311, 1506951211, 215, 126, 1),
(312, 1506951211, 215, 126, 5),
(313, 1506951212, 215, 126, 1),
(314, 1506951213, 215, 126, 5),
(315, 1506951218, 215, 126, 1),
(316, 1506951219, 215, 126, 5),
(317, 1506951219, 215, 126, 1),
(318, 1506951219, 215, 126, 5),
(319, 1506951220, 215, 126, 1),
(320, 1506951221, 215, 126, 5),
(321, 1506951221, 215, 126, 1),
(322, 1506951225, 215, 126, 5),
(323, 1506951235, 215, 126, 1),
(324, 1506951237, 215, 126, 5),
(325, 1506951271, 215, 126, 1),
(326, 1506951274, 215, 126, 2),
(327, 1506951276, 215, 126, 3),
(328, 1506951341, 210, 126, 4),
(329, 1506951345, 215, 126, 1),
(330, 1506951370, 215, 126, 5),
(331, 1506951372, 215, 126, 1),
(332, 1506951375, 215, 126, 2),
(333, 1506951377, 215, 126, 3),
(334, 1506951480, 210, 126, 4),
(335, 1507815648, 215, 127, 1),
(336, 1507815649, 215, 127, 5),
(337, 1507816917, 215, 127, 1),
(338, 1507820260, 215, 127, 5),
(339, 1507820263, 215, 127, 2),
(340, 1507830442, 215, 127, 5),
(341, 1507830445, 215, 127, 1),
(342, 1507830516, 215, 127, 5),
(343, 1507830518, 215, 127, 1),
(344, 1507830586, 215, 127, 5),
(345, 1507830587, 215, 127, 1),
(346, 1507830590, 210, 127, 6);
-- --------------------------------------------------------
@ -325,6 +283,7 @@ INSERT INTO `history` (`id_history`, `timestamp`, `id_user`, `id_machine`, `id_a
-- Table structure for table `log`
--
DROP TABLE IF EXISTS `log`;
CREATE TABLE `log` (
`id_log` int(11) NOT NULL,
`id_feature` int(11) NOT NULL,
@ -339,6 +298,7 @@ CREATE TABLE `log` (
-- Table structure for table `machine`
--
DROP TABLE IF EXISTS `machine`;
CREATE TABLE `machine` (
`id_machine` int(11) NOT NULL,
`id_warehouse` int(11) NOT NULL,
@ -463,12 +423,12 @@ INSERT INTO `machine` (`id_machine`, `id_warehouse`, `name`, `token`, `unlock_co
(115, 7, 'sd', NULL, NULL, NULL, NULL),
(116, 7, 'machine13', NULL, NULL, NULL, NULL),
(121, 7, 'dsad', NULL, NULL, NULL, NULL),
(122, 8, 'surgel1', '7853cb554aebb76640df3e066b67a099720939aa86e52b9c17bb236d090121936fb018b301fb1ab1b49d68e360a3ebbc0a2a9be99cfadf20f69facf058a1ad4a', NULL, '6452a1', '192.168.0.21'),
(123, 8, 'surgel2', NULL, '24d74a635267b26a587a9902ab19275f889c8c693538373ca4c9f85eb4fb75625a07fdef5289161b9fe78156c78a777185efef2bc249f6647538d5758f5b7210', NULL, NULL),
(122, 8, 'surgel1', NULL, '5f4769b43bba1ad8ee063b917a77a54569280cee4b04b65e251b3fa80a25867645356e99a1178830824be5ae4bd72196d2781d7324a6ca965406676f80e6c159', NULL, NULL),
(123, 8, 'surgel2', NULL, NULL, NULL, NULL),
(124, 8, 'surgel3', NULL, NULL, NULL, NULL),
(125, 8, 'surgel4', NULL, NULL, NULL, NULL),
(126, 8, 'lait1', NULL, NULL, NULL, NULL),
(127, 8, 'lait2', '207a8ef6a121fbffbedd7affcdf1c4eccf3918941d186ef93ddc03b7eeebc721b58155c10e20d2b45e41de71428f49d51da8a4223284e19d52bea7a1df2f6807', NULL, '23c683', '192.168.1.100'),
(126, 8, 'lait1', 'd1607996880675c78ecdf3507540fdf6fbfb4a9fc10f350929e24e5c0b3cea03e444348f7aac7c77410a1fd61745c4f0a370a89621237174a575870d7108d8e4', NULL, '6452a1', '192.168.0.44'),
(127, 8, 'lait2', '14e7f5ba1e789b622bdc1a9770452b71bb8959d694b48fc65610649fdf57d6113b0d4c89216b08633beec11f14764b8854ba7962eb8516d5b90466148f2b8871', NULL, '6452a1', '192.168.0.44'),
(128, 8, 'lait3', NULL, NULL, NULL, NULL),
(129, 8, 'lait4', NULL, NULL, NULL, NULL);
@ -478,6 +438,7 @@ INSERT INTO `machine` (`id_machine`, `id_warehouse`, `name`, `token`, `unlock_co
-- Table structure for table `machine_cluster`
--
DROP TABLE IF EXISTS `machine_cluster`;
CREATE TABLE `machine_cluster` (
`id_machine_cluster` int(11) NOT NULL,
`id_warehouse` int(11) NOT NULL,
@ -501,6 +462,7 @@ INSERT INTO `machine_cluster` (`id_machine_cluster`, `id_warehouse`, `name`) VAL
-- Table structure for table `machine_cluster_merge`
--
DROP TABLE IF EXISTS `machine_cluster_merge`;
CREATE TABLE `machine_cluster_merge` (
`id_machine_cluster_merge` int(11) NOT NULL,
`id_machine_cluster` int(11) NOT NULL,
@ -515,15 +477,14 @@ INSERT INTO `machine_cluster_merge` (`id_machine_cluster_merge`, `id_machine_clu
(3, 1, 58),
(4, 2, 75),
(5, 3, 6),
(6, 2, 58),
(9, 4, 122),
(10, 4, 123),
(11, 4, 124),
(12, 4, 125),
(13, 5, 126),
(16, 5, 129),
(18, 5, 127),
(19, 4, 122),
(20, 5, 128),
(22, 3, 58);
(14, 5, 127),
(16, 5, 129);
-- --------------------------------------------------------
@ -531,6 +492,7 @@ INSERT INTO `machine_cluster_merge` (`id_machine_cluster_merge`, `id_machine_clu
-- Table structure for table `module`
--
DROP TABLE IF EXISTS `module`;
CREATE TABLE `module` (
`id_module` int(11) NOT NULL,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL
@ -552,6 +514,7 @@ INSERT INTO `module` (`id_module`, `name`) VALUES
-- Table structure for table `module_availability`
--
DROP TABLE IF EXISTS `module_availability`;
CREATE TABLE `module_availability` (
`id_warehouse` int(11) NOT NULL,
`id_module` int(11) NOT NULL
@ -574,6 +537,7 @@ INSERT INTO `module_availability` (`id_warehouse`, `id_module`) VALUES
-- Table structure for table `module_merge`
--
DROP TABLE IF EXISTS `module_merge`;
CREATE TABLE `module_merge` (
`id_module_merge` int(11) NOT NULL,
`id_machine_cluster` int(11) NOT NULL,
@ -599,26 +563,20 @@ INSERT INTO `module_merge` (`id_module_merge`, `id_machine_cluster`, `id_etree`,
-- Table structure for table `motheure`
--
DROP TABLE IF EXISTS `motheure`;
CREATE TABLE `motheure` (
`id_motheure` int(11) NOT NULL,
`id_machine` int(11) NOT NULL,
`count` bigint(11) NOT NULL
`count` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin;
--
-- Dumping data for table `motheure`
--
INSERT INTO `motheure` (`id_motheure`, `id_machine`, `count`) VALUES
(3, 122, 13),
(6, 127, 2890);
-- --------------------------------------------------------
--
-- Table structure for table `state`
--
DROP TABLE IF EXISTS `state`;
CREATE TABLE `state` (
`id_state` int(11) NOT NULL,
`id_chip` int(11) NOT NULL,
@ -644,6 +602,7 @@ INSERT INTO `state` (`id_state`, `id_chip`, `state`, `value`) VALUES
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id_user` int(11) NOT NULL,
`id_warehouse` int(11) NOT NULL,
@ -751,7 +710,7 @@ INSERT INTO `user` (`id_user`, `id_warehouse`, `code`, `username`, `firstname`,
(215, 8, 'F9-7D-5D-9E', 'Pass-A', 'Pass', 'A-1', 'passA@logauth.xdrm.io'),
(216, 8, 'D2-E2-CA-12', 'Card-D', 'Carte', 'D-3', 'cardD@logauth.xdrm.io'),
(217, 8, 'D4-34-E8-AB', 'Pass-E', 'Pass', 'E-4', 'passE@logauth.xdrm.io'),
(218, 8, 'A9-05-5D-9E', 'Pass-F', 'Pass', 'F-5', 'passF@logauth.xdrm.io');
(218, 8, 'A9-5B-5D-9E', 'Pass-F', 'Pass', 'F-5', 'passF@logauth.xdrm.io');
-- --------------------------------------------------------
@ -759,6 +718,7 @@ INSERT INTO `user` (`id_user`, `id_warehouse`, `code`, `username`, `firstname`,
-- Table structure for table `user_cluster`
--
DROP TABLE IF EXISTS `user_cluster`;
CREATE TABLE `user_cluster` (
`id_user_cluster` int(11) NOT NULL,
`id_warehouse` int(11) NOT NULL,
@ -783,6 +743,7 @@ INSERT INTO `user_cluster` (`id_user_cluster`, `id_warehouse`, `name`) VALUES
-- Table structure for table `user_cluster_merge`
--
DROP TABLE IF EXISTS `user_cluster_merge`;
CREATE TABLE `user_cluster_merge` (
`id_user_cluster_merge` int(11) NOT NULL,
`id_user_cluster` int(11) NOT NULL,
@ -808,8 +769,7 @@ INSERT INTO `user_cluster_merge` (`id_user_cluster_merge`, `id_user_cluster`, `i
(91, 5, 210),
(92, 7, 216),
(94, 6, 218),
(99, 8, 217),
(100, 5, 216);
(99, 8, 217);
-- --------------------------------------------------------
@ -817,6 +777,7 @@ INSERT INTO `user_cluster_merge` (`id_user_cluster_merge`, `id_user_cluster`, `i
-- Table structure for table `warehouse`
--
DROP TABLE IF EXISTS `warehouse`;
CREATE TABLE `warehouse` (
`id_warehouse` int(11) NOT NULL,
`name` varchar(30) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
@ -831,7 +792,7 @@ CREATE TABLE `warehouse` (
INSERT INTO `warehouse` (`id_warehouse`, `name`, `theme`, `password`, `token`) VALUES
(7, 'stef-montauban', '3091DB', '53859350c1eb59e301d8fe747f4d1c96d3ec31d95cd1bc72c81d72800edbc6ab45da0d5b6208080fb2e519b1f9848ce0a1289775800912068f32e390f5e1bb6c', '2046c66738b4f1f1e6460537f11970ec5b2cfa65f295b2ca0d2036609dcd3f8ccb6ec271e15440933d3b24ae27eba71423a4545583ab6f3736a5d4f7c8f8c53e'),
(8, 'stef-montbartier', 'DB554E', '034a8313428d9780e4c5bc4bc25ae3985d1d987f4c6928f888e61685ec3f183f7ec0c83f691da2eeb64f27d916fb44aafdef66113892dbc800218b3b512e316e', '52131065a906de90e26da0732e58400edd6739cfa03fc658e7593abef4a4504e18e66e1a8fe9da374a8e8f753603463e4777789262b3ee945d4bf72dd8d6399c');
(8, 'stef-toulouse', 'DB554E', '273bd225482d20c061620c80e3bb87528d9e178bd572acd47feb58eee7e8a3847cb308b287d9d94c7a292b33d4c766cdb7c95c2828f53b97bbc0f80fa44aeb83', '52131065a906de90e26da0732e58400edd6739cfa03fc658e7593abef4a4504e18e66e1a8fe9da374a8e8f753603463e4777789262b3ee945d4bf72dd8d6399c');
--
-- Indexes for dumped tables
@ -1001,7 +962,7 @@ ALTER TABLE `action_merge`
-- AUTO_INCREMENT for table `admin`
--
ALTER TABLE `admin`
MODIFY `id_admin` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
MODIFY `id_admin` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT for table `chip`
--
@ -1021,7 +982,7 @@ ALTER TABLE `global_state`
-- AUTO_INCREMENT for table `history`
--
ALTER TABLE `history`
MODIFY `id_history` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=615;
MODIFY `id_history` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=347;
--
-- AUTO_INCREMENT for table `log`
--
@ -1041,7 +1002,7 @@ ALTER TABLE `machine_cluster`
-- AUTO_INCREMENT for table `machine_cluster_merge`
--
ALTER TABLE `machine_cluster_merge`
MODIFY `id_machine_cluster_merge` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25;
MODIFY `id_machine_cluster_merge` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;
--
-- AUTO_INCREMENT for table `module`
--
@ -1056,7 +1017,7 @@ ALTER TABLE `module_merge`
-- AUTO_INCREMENT for table `motheure`
--
ALTER TABLE `motheure`
MODIFY `id_motheure` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
MODIFY `id_motheure` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `state`
--
@ -1076,7 +1037,7 @@ ALTER TABLE `user_cluster`
-- AUTO_INCREMENT for table `user_cluster_merge`
--
ALTER TABLE `user_cluster_merge`
MODIFY `id_user_cluster_merge` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=101;
MODIFY `id_user_cluster_merge` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=100;
--
-- AUTO_INCREMENT for table `warehouse`
--
@ -1161,6 +1122,12 @@ ALTER TABLE `module_merge`
ADD CONSTRAINT `fk_module_merge_id_machine_cluster` FOREIGN KEY (`id_machine_cluster`) REFERENCES `machine_cluster` (`id_machine_cluster`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `fk_module_merge_id_warehouse` FOREIGN KEY (`id_warehouse`) REFERENCES `warehouse` (`id_warehouse`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `motheure`
--
ALTER TABLE `motheure`
ADD CONSTRAINT `fk_motheure_id_machine` FOREIGN KEY (`id_machine`) REFERENCES `machine` (`id_machine`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `state`
--

View File

@ -17,7 +17,6 @@ $form-grey-color: #8d8d8d;
/* GESTION DES LONGUEURS */
$menu-side-width: 4em;
$sub-menu-side-width: 7.5em;
// POUR RESOURCE_DISPATCHER

View File

@ -13,11 +13,10 @@
// @active + .list
& > section.active{
display: flex;
flex-flow: row wrap;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
align-items: stretch;
align-content: flex-start;
flex-wrap: wrap;
&.contain-check-table{
flex-direction: column;
@ -26,13 +25,11 @@
}
.inline-box{
flex: 1 1 20%;
height: auto;
min-height: 10em;
flex: 0 0 1;
}
.inline-row{
flex: 0 0 2.3em;
flex: 3em 0 0;
}
// Barre de recherche
@ -65,7 +62,7 @@
.error, .in-dev{
display: inline-block;
position: relative;
// width: calc( 100% - 2*1em - 2*1em );
width: calc( 100% - 2*1em - 2*1em );
height: 1em;
margin: 1em;
padding: 1em;
@ -99,7 +96,6 @@
position: relative;
// width: calc( 50% - 2*1em - 2*1em );
flex: calc( 50% - 2*1em - 2*1em );
height: auto;
margin: 1em;
padding: 1em;
@ -462,7 +458,7 @@
}
/* [4] Tableau à cocher
=========================================================*/
@ -538,132 +534,3 @@
}
}
/* [5] Timeline SVG
=========================================================*/
article.timeline.container{
display: block;
position: absolute;
width: calc( 100vw - #{$menu-side-width} - #{$sub-menu-side-width} - 11em );
flex: 1em;
overflow: hidden;
// overflow-x: auto;
svg.timeline{
/* (1) svg circles -> set right transform-origin */
& circle.timeline{
-webkit-transform-origin: 50% 50% 0;
transform-origin: 50% 50% 0;
transition: transform .2s ease-in-out;
/* (2) Set cursor to pointer */
&.around{
cursor: pointer;
/* (3) Dispatch event to next nodes */
&:hover + .center{ // center node
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
&:hover + .center + image + .below{ // below node
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
}
/* (4) Remove center circle event */
&.center{
-webkit-pointer-events: none;
pointer-events: none;
}
/* (5) Set colors according to action type */
&.around, &.center, &.below{
&.start{ fill: #2cde8b; }
&.stop{ fill: #3a3a3a; }
&.lock{ fill: #e04343; }
&.unlock{ fill: #af1c1c; }
&.signal{ fill: #3258d8; }
&.unsignal{ fill: #2041ab; }
}
/* (6) Make around circles a bit transparent */
&.around{ opacity: .6; }
}
/* (7) Avoid icons inside center circles to block :hover */
image{
-webkit-pointer-events: none;
pointer-events: none;
}
/* (8) Default 'text' font*/
text{
fill: #444;
font-size: 14px;
font-family: 'Open Sans';
&.bold{
font-size: 16px;
font-weight: bold;
}
&.start{ fill: #2cde8b; }
&.stop{ fill: #3a3a3a; }
&.lock{ fill: #e04343; }
&.unlock{ fill: #af1c1c; }
&.signal{ fill: #3258d8; }
&.unsignal{ fill: #2041ab; }
}
}
/* (9) Timeline infobox */
div.timeline.infobox{
display: none;
position: absolute;
top: 80px;
left: 0;
width: auto;
height: auto;
padding: .5em 1em;
border: 1px solid #b1b6c0;
border-radius: 3px;
background: #d8deea;
color: #444;
&.active{
display: block;
}
}
}
}

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= */

View File

@ -0,0 +1,619 @@
@charset "UTF-8";
/* COULEUR DU THEME */
/* COULEUR DU SOUS-MENU */
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER > #CONTAINER {
/* [1] Section (contenu)
=========================================================*/
/* [2] INLINE-BOX pour afficher les listes de donnees
=========================================================*/
/* [2-2] INLINE-ROW pour afficher des lignes
=========================================================*/
/* [3] Formulaires
=========================================================*/
/* (1) Champs de texte */
/* (2) Boutons */
}
#WRAPPER > #CONTAINER > section {
display: none;
flex-grow: 1;
}
#WRAPPER > #CONTAINER > section.active {
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
#WRAPPER > #CONTAINER > section.active .inline-box {
flex: 0 0 1;
}
#WRAPPER > #CONTAINER > section.active .inline-row {
flex: 3em 0 1;
}
#WRAPPER > #CONTAINER > section.active .searchbar {
display: inline-block;
position: relative;
flex: calc( 100% - 2*1em - 2*1em );
margin: 1em;
padding: .5em 1em;
padding-left: 2em;
border-radius: 3px;
border: 1px solid #b1b1b1;
background: #fff url("/src/static/sub-menu-side/search@b1b1b1.svg") 0.5em center no-repeat;
background-size: 1em;
transition: border .4s ease-in-out;
}
#WRAPPER > #CONTAINER > section.active .searchbar:hover, #WRAPPER > #CONTAINER > section.active .searchbar:focus {
border-color: #5630ed;
}
#WRAPPER > #CONTAINER > section.active .error {
display: inline-block;
position: relative;
width: calc( 100% - 2*1em - 2*1em );
height: 1em;
margin: 1em;
padding: 1em;
border-radius: 3px;
border: 1px solid #d52918;
background: #d52918;
color: #fff;
text-shadow: 1px 1px #a72013;
}
#WRAPPER > #CONTAINER > section > .inline-box, #WRAPPER > #CONTAINER > section > .inline-row {
display: inline-block;
position: relative;
flex: calc( 50% - 2*1em - 2*1em );
margin: 1em;
padding: 1em;
border-radius: 3px;
box-shadow: 0 0 1px #b7b7b7;
background-color: #fff;
/* (0) Etat des machines */
/* (1) Titre de l'element */
/* (2) Code RFID */
/* (3) Adresse mail */
/* (4) Groupes */
/* (5) Lien vers la modification */
/* (6) Lien vers la suppression */
}
#WRAPPER > #CONTAINER > section > .inline-box.hidden, #WRAPPER > #CONTAINER > section > .inline-row.hidden {
display: none;
}
#WRAPPER > #CONTAINER > section > .inline-box a, #WRAPPER > #CONTAINER > section > .inline-row a {
text-decoration: none;
color: inherit;
}
#WRAPPER > #CONTAINER > section > .inline-box.selected, #WRAPPER > #CONTAINER > section > .inline-row.selected {
border: 1px solid #7362ff;
transition: box-shadow .2s ease-in-out;
}
#WRAPPER > #CONTAINER > section > .inline-box.selected:hover, #WRAPPER > #CONTAINER > section > .inline-row.selected:hover {
box-shadow: 2px 2px 7px #aaa;
}
#WRAPPER > #CONTAINER > section > .inline-box .state, #WRAPPER > #CONTAINER > section > .inline-row .state {
display: inline-block;
width: .7em;
height: .7em;
margin-right: .3em;
border-radius: 50% / 50%;
background-color: #ddd;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='stopped'], #WRAPPER > #CONTAINER > section > .inline-row .state[data-state='stopped'] {
background-color: #ddd;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='started'], #WRAPPER > #CONTAINER > section > .inline-row .state[data-state='started'] {
background-color: #22E07B;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='signaled'], #WRAPPER > #CONTAINER > section > .inline-row .state[data-state='signaled'] {
background-color: #3897D6;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='locked'], #WRAPPER > #CONTAINER > section > .inline-row .state[data-state='locked'] {
background-color: #EA460A;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='detached'], #WRAPPER > #CONTAINER > section > .inline-row .state[data-state='detached'] {
background-color: transparent;
}
#WRAPPER > #CONTAINER > section > .inline-box .title, #WRAPPER > #CONTAINER > section > .inline-row .title {
display: inline-block;
font-size: 1.15em;
font-weight: bold;
color: #ea4c06;
white-space: nowrap;
}
#WRAPPER > #CONTAINER > section > .inline-box .title > span, #WRAPPER > #CONTAINER > section > .inline-row .title > span {
font-size: .8em;
color: #333;
}
#WRAPPER > #CONTAINER > section > .inline-box .code,
#WRAPPER > #CONTAINER > section > .inline-box .mail, #WRAPPER > #CONTAINER > section > .inline-row .code,
#WRAPPER > #CONTAINER > section > .inline-row .mail {
display: block;
margin: 1em;
color: #333;
white-space: nowrap;
}
#WRAPPER > #CONTAINER > section > .inline-box .code svg,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg, #WRAPPER > #CONTAINER > section > .inline-row .code svg,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg {
display: inline-block;
position: relative;
margin-left: .5em;
margin-right: .5em;
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg path#stylisable, #WRAPPER > #CONTAINER > section > .inline-row .code svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stylisable {
fill: #333 !important;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .mail svg path#stroke-stylisable, #WRAPPER > #CONTAINER > section > .inline-row .code svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stroke-stylisable {
stroke: #333 !important;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups, #WRAPPER > #CONTAINER > section > .inline-row .groups {
display: block;
margin: 1em;
color: #333;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups svg, #WRAPPER > #CONTAINER > section > .inline-row .groups svg {
display: inline-block;
position: relative;
margin-left: .5em;
margin-right: .5em;
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups svg path, #WRAPPER > #CONTAINER > section > .inline-row .groups svg path {
fill: #333 !important;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore), #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore), #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span {
display: inline-block;
position: relative;
padding: .1em .5em;
margin-right: calc( .4em + 2em );
margin-bottom: .5em;
border-radius: 3px 0 0 3px;
border: 1px solid #bdbdbd;
box-shadow: inset 0 0 2px #fafafa;
background-color: #f9f9f9;
color: #333;
cursor: default;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-member {
border-radius: 3px;
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-member > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-permission > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-group > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-member > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-permission > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-group > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-member > div.dropdown {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
flex: 100%;
justify-content: space-between;
position: absolute;
top: calc( 100% + 5px );
left: 0;
width: 12em;
height: 500%;
border-radius: 3px;
overflow: hidden;
overflow-y: auto;
background: #fff;
box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15);
z-index: 100;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-member > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-permission > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-group > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-member > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-permission > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-group > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-member > div.dropdown > span {
padding: .5em;
padding-left: 1em;
flex: 2em 1 1;
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-member > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-permission > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-group > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore).add-member > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-permission > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-group > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span.add-member > div.dropdown > span:hover {
background-color: #F8F8F8;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-member, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-member, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-group, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-member {
display: block;
position: absolute;
top: -1px;
left: 100%;
width: 1em;
height: calc( 100% - .1em - 2px );
padding: .12em .5em;
border-radius: 0 3px 3px 0;
border: 1px solid #bdbdbd;
box-shadow: inset 0 0 2px #fafafa;
background: url("/src/static/sub-menu-side/remove.svg") center center no-repeat;
background-size: auto 70%;
background-color: #f9f9f9;
color: inherit;
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-permission:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-member:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-permission:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.rem-member:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.rem-member:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-group:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.rem-member:hover {
background-image: url("/src/static/sub-menu-side/remove@d52918.svg");
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span:not(.ignore) > span.icon-permission:hover, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.icon-permission, #WRAPPER > #CONTAINER > section > .inline-row .groups > span.ignore > span > span.icon-permission:hover {
border-color: #ddd;
background-color: #eee;
cursor: default;
background-image: url("/src/static/sub-menu-side/permission.svg");
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove, #WRAPPER > #CONTAINER > section > .inline-row .link_edit,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove {
display: inline-block;
float: right;
position: relative;
width: 1em;
height: 1em;
margin-left: 1em;
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_edit > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove > svg {
width: 100%;
height: 100%;
fill: #ddd !important;
transition: fill .4s ease-in-out;
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #2193e6 !important;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg, #WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #d52918 !important;
}
#WRAPPER > #CONTAINER > section.fstart {
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
#WRAPPER > #CONTAINER > section.fstart .searchbar {
flex: auto 1 1;
}
#WRAPPER > #CONTAINER > section.active > .inline-row {
flex: auto 1 1;
}
#WRAPPER > #CONTAINER > section > .inline-row {
width: calc( 100% - 4em - 2*1em );
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
overflow: hidden;
}
#WRAPPER > #CONTAINER > section > .inline-row > span {
display: flex;
flex-direction: column;
justify-content: space-around;
flex: 100% 1 1;
border-left: 1px solid #ddd;
text-align: center;
}
#WRAPPER > #CONTAINER > section > .inline-row > span:first-child {
border-left: 0;
}
#WRAPPER > #CONTAINER > section > .inline-row button {
flex: auto;
width: 5em;
}
#WRAPPER > #CONTAINER > section > form, #WRAPPER > #CONTAINER .form {
display: inline-block;
position: relative;
left: 50%;
margin: .3em 0;
padding: 1em;
border-radius: 3px;
border-color: #d52918;
box-shadow: 0 0 1px #b7b7b7;
background-color: #fff;
transform: translateX(-50%);
}
#WRAPPER > #CONTAINER > section > form.valid, #WRAPPER > #CONTAINER .form.valid {
border-color: #27a560;
}
#WRAPPER > #CONTAINER > section > form.neutral, #WRAPPER > #CONTAINER .form.neutral {
border-color: #2193e6;
}
#WRAPPER > #CONTAINER > section > form.search, #WRAPPER > #CONTAINER .form.search {
border-color: #2193e6;
}
#WRAPPER > #CONTAINER > section > form .edit_search_view,
#WRAPPER > #CONTAINER > section > form .remove_search_view, #WRAPPER > #CONTAINER .form .edit_search_view,
#WRAPPER > #CONTAINER .form .remove_search_view {
display: inline-block;
width: 100%;
text-align: center;
color: #aaaaaa;
}
#WRAPPER > #CONTAINER > section > form .edit_search_view span,
#WRAPPER > #CONTAINER > section > form .remove_search_view span, #WRAPPER > #CONTAINER .form .edit_search_view span,
#WRAPPER > #CONTAINER .form .remove_search_view span {
color: #888888;
}
#WRAPPER > #CONTAINER > section > form span.error-msg, #WRAPPER > #CONTAINER .form span.error-msg {
display: inline-block;
color: #F03C3C;
font-size: 0.7em;
}
#WRAPPER > #CONTAINER input[type=text],
#WRAPPER > #CONTAINER input[type=mail],
#WRAPPER > #CONTAINER input[type=password],
#WRAPPER > #CONTAINER select, #WRAPPER > #CONTAINER.invalid > input[type=text], #WRAPPER > #CONTAINER.invalid > input[type=mail], #WRAPPER > #CONTAINER.invalid > input[type=password], #WRAPPER > #CONTAINER.invalid > select,
#WRAPPER > #CONTAINER input.invalid[type=text],
#WRAPPER > #CONTAINER input.invalid[type=mail],
#WRAPPER > #CONTAINER input.invalid[type=password],
#WRAPPER > #CONTAINER select.invalid {
display: inline-block;
margin: 1em 0;
padding: .7em 1em;
border-radius: 3px;
border: 1px solid #d7dde8;
color: #2f3033;
transition: border .4s ease-in-out;
}
#WRAPPER > #CONTAINER input[type=text]:focus, #WRAPPER > #CONTAINER input[type=text]:hover,
#WRAPPER > #CONTAINER input[type=mail]:focus,
#WRAPPER > #CONTAINER input[type=mail]:hover,
#WRAPPER > #CONTAINER input[type=password]:focus,
#WRAPPER > #CONTAINER input[type=password]:hover,
#WRAPPER > #CONTAINER select:focus,
#WRAPPER > #CONTAINER select:hover, #WRAPPER > #CONTAINER.invalid > input[type=text]:focus, #WRAPPER > #CONTAINER.invalid > input[type=text]:hover, #WRAPPER > #CONTAINER.invalid > input[type=mail]:focus, #WRAPPER > #CONTAINER.invalid > input[type=mail]:hover, #WRAPPER > #CONTAINER.invalid > input[type=password]:focus, #WRAPPER > #CONTAINER.invalid > input[type=password]:hover, #WRAPPER > #CONTAINER.invalid > select:focus, #WRAPPER > #CONTAINER.invalid > select:hover,
#WRAPPER > #CONTAINER input.invalid[type=text]:focus,
#WRAPPER > #CONTAINER input.invalid[type=text]:hover,
#WRAPPER > #CONTAINER input.invalid[type=mail]:focus,
#WRAPPER > #CONTAINER input.invalid[type=mail]:hover,
#WRAPPER > #CONTAINER input.invalid[type=password]:focus,
#WRAPPER > #CONTAINER input.invalid[type=password]:hover,
#WRAPPER > #CONTAINER select.invalid:focus,
#WRAPPER > #CONTAINER select.invalid:hover {
border-color: #d52918;
}
#WRAPPER > #CONTAINER select {
width: 100%;
display: block;
background: #fff;
}
#WRAPPER > #CONTAINER select option {
padding: .5em;
}
#WRAPPER > #CONTAINER .valid > input[type=text]:focus, #WRAPPER > #CONTAINER .valid > input[type=text]:hover,
#WRAPPER > #CONTAINER .valid > input[type=mail]:focus,
#WRAPPER > #CONTAINER .valid > input[type=mail]:hover,
#WRAPPER > #CONTAINER .valid > input[type=password]:focus,
#WRAPPER > #CONTAINER .valid > input[type=password]:hover,
#WRAPPER > #CONTAINER .valid > select:focus,
#WRAPPER > #CONTAINER .valid > select:hover,
#WRAPPER > #CONTAINER input.valid[type=text]:focus,
#WRAPPER > #CONTAINER input.valid[type=text]:hover,
#WRAPPER > #CONTAINER input.valid[type=mail]:focus,
#WRAPPER > #CONTAINER input.valid[type=mail]:hover,
#WRAPPER > #CONTAINER input.valid[type=password]:focus,
#WRAPPER > #CONTAINER input.valid[type=password]:hover,
#WRAPPER > #CONTAINER select.valid:focus,
#WRAPPER > #CONTAINER select.valid:hover {
border-color: #27a560;
}
#WRAPPER > #CONTAINER .neutral > input[type=text]:focus, #WRAPPER > #CONTAINER .neutral > input[type=text]:hover,
#WRAPPER > #CONTAINER .neutral > input[type=mail]:focus,
#WRAPPER > #CONTAINER .neutral > input[type=mail]:hover,
#WRAPPER > #CONTAINER .neutral > input[type=password]:focus,
#WRAPPER > #CONTAINER .neutral > input[type=password]:hover,
#WRAPPER > #CONTAINER .neutral > select:focus,
#WRAPPER > #CONTAINER .neutral > select:hover,
#WRAPPER > #CONTAINER input.neutral[type=text]:focus,
#WRAPPER > #CONTAINER input.neutral[type=text]:hover,
#WRAPPER > #CONTAINER input.neutral[type=mail]:focus,
#WRAPPER > #CONTAINER input.neutral[type=mail]:hover,
#WRAPPER > #CONTAINER input.neutral[type=password]:focus,
#WRAPPER > #CONTAINER input.neutral[type=password]:hover,
#WRAPPER > #CONTAINER select.neutral:focus,
#WRAPPER > #CONTAINER select.neutral:hover {
border-color: #2193e6;
}
#WRAPPER > #CONTAINER .search > input[type=text]:focus, #WRAPPER > #CONTAINER .search > input[type=text]:hover,
#WRAPPER > #CONTAINER .search > input[type=mail]:focus,
#WRAPPER > #CONTAINER .search > input[type=mail]:hover,
#WRAPPER > #CONTAINER .search > input[type=password]:focus,
#WRAPPER > #CONTAINER .search > input[type=password]:hover,
#WRAPPER > #CONTAINER .search > select:focus,
#WRAPPER > #CONTAINER .search > select:hover,
#WRAPPER > #CONTAINER input.search[type=text]:focus,
#WRAPPER > #CONTAINER input.search[type=text]:hover,
#WRAPPER > #CONTAINER input.search[type=mail]:focus,
#WRAPPER > #CONTAINER input.search[type=mail]:hover,
#WRAPPER > #CONTAINER input.search[type=password]:focus,
#WRAPPER > #CONTAINER input.search[type=password]:hover {
border-color: #5630ed;
}
#WRAPPER > #CONTAINER button,
#WRAPPER > #CONTAINER button.invalid,
#WRAPPER > #CONTAINER .invalid > button {
display: inline-block;
position: relative;
left: 50%;
padding: .7em 1em;
border-radius: 3px;
border: 1px solid #d52918;
background: #d52918 center center no-repeat;
color: #fff;
transition: background .4s ease-in-out;
transform: translateX(-50%);
}
#WRAPPER > #CONTAINER button:hover, #WRAPPER > #CONTAINER button:focus, #WRAPPER > #CONTAINER button:disabled,
#WRAPPER > #CONTAINER button.invalid:hover,
#WRAPPER > #CONTAINER button.invalid:focus,
#WRAPPER > #CONTAINER button.invalid:disabled,
#WRAPPER > #CONTAINER .invalid > button:hover,
#WRAPPER > #CONTAINER .invalid > button:focus,
#WRAPPER > #CONTAINER .invalid > button:disabled {
background-color: #fff;
color: #d52918;
}
#WRAPPER > #CONTAINER button.valid,
#WRAPPER > #CONTAINER .valid > button {
border-color: #27a560;
background-color: #27a560;
}
#WRAPPER > #CONTAINER button.valid:hover, #WRAPPER > #CONTAINER button.valid:focus, #WRAPPER > #CONTAINER button.valid:disabled,
#WRAPPER > #CONTAINER .valid > button:hover,
#WRAPPER > #CONTAINER .valid > button:focus,
#WRAPPER > #CONTAINER .valid > button:disabled {
background-color: #fff;
color: #27a560;
}
#WRAPPER > #CONTAINER button.neutral,
#WRAPPER > #CONTAINER .neutral > button {
border-color: #2193e6;
background-color: #2193e6;
}
#WRAPPER > #CONTAINER button.neutral:hover, #WRAPPER > #CONTAINER button.neutral:focus, #WRAPPER > #CONTAINER button.neutral:disabled,
#WRAPPER > #CONTAINER .neutral > button:hover,
#WRAPPER > #CONTAINER .neutral > button:focus,
#WRAPPER > #CONTAINER .neutral > button:disabled {
background-color: #fff;
color: #2193e6;
}
#WRAPPER > #CONTAINER button.search,
#WRAPPER > #CONTAINER .search > button {
border-color: #5630ed;
background-color: #5630ed;
}
#WRAPPER > #CONTAINER button.search:hover, #WRAPPER > #CONTAINER button.search:focus, #WRAPPER > #CONTAINER button.search:disabled,
#WRAPPER > #CONTAINER .search > button:hover,
#WRAPPER > #CONTAINER .search > button:focus,
#WRAPPER > #CONTAINER .search > button:disabled {
background-color: #fff;
color: #5630ed;
}
#WRAPPER > #CONTAINER .invalid > button.active,
#WRAPPER > #CONTAINER button.invalid.active,
#WRAPPER > #CONTAINER button.active {
background-color: #fff;
background-image: url("/src/static/container/active@d52918.svg") !important;
background-size: 1em auto;
color: transparent !important;
}
#WRAPPER > #CONTAINER button.valid.active,
#WRAPPER > #CONTAINER .valid > button.active {
background-image: url("/src/static/container/active@27a560.svg") !important;
}
#WRAPPER > #CONTAINER button.neutral.active,
#WRAPPER > #CONTAINER .neutral > button.active {
background-image: url("/src/static/container/active@2193e6.svg") !important;
}
#WRAPPER > #CONTAINER button.search.active,
#WRAPPER > #CONTAINER .search > button.active {
background-image: url("/src/static/container/active@5630ed.svg") !important;
}
#WRAPPER > #CONTAINER hr.OR[data-label] {
display: block;
position: relative;
width: 100%;
height: 0;
border: 0;
border-bottom: 1px dashed #d52918;
}
#WRAPPER > #CONTAINER hr.OR[data-label]:before {
content: attr(data-label);
display: inline-block;
position: relative;
top: 50%;
left: 50%;
padding: 0 1em;
background-color: #fff;
color: #d52918;
transform: translateX(-50%) translatey(-50%);
}
#WRAPPER > #CONTAINER .valid > hr.OR,
#WRAPPER > #CONTAINER hr.OR.valid {
border-bottom: 1px dashed #27a560;
}
#WRAPPER > #CONTAINER .valid > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.valid:before {
color: #27a560;
}
#WRAPPER > #CONTAINER .neutral > hr.OR,
#WRAPPER > #CONTAINER hr.OR.neutral {
border-bottom: 1px dashed #2193e6;
}
#WRAPPER > #CONTAINER .neutral > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.neutral:before {
color: #2193e6;
}
#WRAPPER > #CONTAINER .search > hr.OR,
#WRAPPER > #CONTAINER hr.OR.search {
border-bottom: 1px dashed #5630ed;
}
#WRAPPER > #CONTAINER .search > hr.OR:before,
#WRAPPER > #CONTAINER hr.OR.search:before {
color: #5630ed;
}
/* [4] Tableau à cocher
=========================================================*/
article.check-table {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
border-radius: 3px;
border: 1px solid #ddd;
}
article.check-table > div {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
flex: 100%;
padding: .8em 0;
color: #333;
background: #f8f8f8;
border-bottom: 1px solid #eee;
transition: background .2s ease-in-out;
overflow: hidden;
}
article.check-table > div:nth-child(2n) {
background: #fdfdfd;
}
article.check-table > div > span {
flex: 100%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
/* (1) Gestion du checkbox hack */
}
article.check-table > div > span input[type='checkbox'] {
display: none;
}
article.check-table > div > span input[type='checkbox'] + label[for] {
display: inline-block;
position: absolute;
width: 1.2em;
height: 1.2em;
background: url("/src/static/container/checkbox@999999.svg") center center no-repeat;
background-size: 100% auto;
transition: box-shadow .2s ease-in-out;
cursor: pointer;
}
article.check-table > div > span input[type='checkbox']:checked + label[for] {
background-image: url("/src/static/container/checkbox@checked@007dd8.svg");
}
/*# sourceMappingURL=container.css.map */

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

@ -9,7 +9,7 @@
top: 0;
left: 0;
width: $menu-side-width;
height: calc( #{$menu-side-width} - 1px );
height: $menu-side-width;
background-color: darken($theme-color, 10);
background-image: url('/src/static/iconv3.svg');

View File

@ -68,7 +68,7 @@
flex-direction: row;
justify-content: space-between;
overflow: hidden;
overflow-x: none;
overflow-y: auto;
}
@ -100,11 +100,8 @@
z-index: 101;
flex-flow: column nowrap;
justify-content: space-between;
&.active{
display: flex;
display: block;
}

2
public_html/css/min/constants.css Normal file → Executable file
View File

@ -3,4 +3,6 @@
/* COULEUR DES ERREURS */
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
/*# sourceMappingURL= constants.css.map */

View File

@ -11,29 +11,35 @@
=========================================================*/
/* [2-2] INLINE-ROW pour afficher des lignes
=========================================================*/
/* [4] Tableau à cocher
=========================================================*/
/* [5] Timeline SVG
=========================================================*/ }
}
#WRAPPER > #CONTAINER > section {
display: none;
flex-grow: 1; }
flex-grow: 1;
}
#WRAPPER > #CONTAINER > section.active {
display: flex;
flex-flow: row wrap;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
align-items: stretch;
align-content: flex-start; }
flex-wrap: wrap;
}
#WRAPPER > #CONTAINER > section.active.contain-check-table {
flex-direction: column;
flex-wrap: nowrap;
align-items: center; }
align-items: center;
}
#WRAPPER > #CONTAINER > section.active .inline-box {
flex: 1 1 20%;
height: auto;
min-height: 10em; }
flex: 0 0 1;
}
#WRAPPER > #CONTAINER > section.active .inline-row {
flex: 0 0 2.3em; }
flex: 3em 0 0;
}
#WRAPPER > #CONTAINER > section.active .searchbar {
display: inline-block;
position: relative;
@ -45,12 +51,17 @@
border: 1px solid #b1b1b1;
background: #fff url("/src/static/sub-menu-side/search@b1b1b1.svg") 0.5em center no-repeat;
background-size: 1em;
transition: border .4s ease-in-out; }
transition: border .4s ease-in-out;
}
#WRAPPER > #CONTAINER > section.active .searchbar:hover, #WRAPPER > #CONTAINER > section.active .searchbar:focus {
border-color: #5630ed; }
border-color: #5630ed;
}
#WRAPPER > #CONTAINER > section.active .error, #WRAPPER > #CONTAINER > section.active .in-dev {
display: inline-block;
position: relative;
width: calc( 100% - 2*1em - 2*1em);
height: 1em;
margin: 1em;
padding: 1em;
@ -58,17 +69,20 @@
border: 1px solid #d52918;
background: #d52918;
color: #fff;
text-shadow: 1px 1px #a72013; }
text-shadow: 1px 1px #a72013;
}
#WRAPPER > #CONTAINER > section.active .in-dev {
border-color: #5630ed;
background: #5630ed;
text-shadow: 1px 1px #3a13d7; }
text-shadow: 1px 1px #3a13d7;
}
#WRAPPER > #CONTAINER > section > .inline-box,
#WRAPPER > #CONTAINER > section > .inline-row {
display: inline-block;
position: relative;
flex: calc( 50% - 2*1em - 2*1em);
height: auto;
margin: 1em;
padding: 1em;
border-radius: 3px;
@ -80,21 +94,31 @@
/* (3) Adresse mail */
/* (4) Groupes */
/* (5) Lien vers la modification */
/* (6) Lien vers la suppression */ }
/* (6) Lien vers la suppression */
}
#WRAPPER > #CONTAINER > section > .inline-box.hidden,
#WRAPPER > #CONTAINER > section > .inline-row.hidden {
display: none; }
display: none;
}
#WRAPPER > #CONTAINER > section > .inline-box a,
#WRAPPER > #CONTAINER > section > .inline-row a {
text-decoration: none;
color: inherit; }
color: inherit;
}
#WRAPPER > #CONTAINER > section > .inline-box.selected,
#WRAPPER > #CONTAINER > section > .inline-row.selected {
border: 1px solid #7362ff;
transition: box-shadow .2s ease-in-out; }
transition: box-shadow .2s ease-in-out;
}
#WRAPPER > #CONTAINER > section > .inline-box.selected:hover,
#WRAPPER > #CONTAINER > section > .inline-row.selected:hover {
box-shadow: 2px 2px 7px #aaa; }
box-shadow: 2px 2px 7px #aaa;
}
#WRAPPER > #CONTAINER > section > .inline-box .state,
#WRAPPER > #CONTAINER > section > .inline-row .state {
display: inline-block;
@ -102,34 +126,50 @@
height: .7em;
margin-right: .3em;
border-radius: 50% / 50%;
background-color: #ddd; }
background-color: #ddd;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='stopped'],
#WRAPPER > #CONTAINER > section > .inline-row .state[data-state='stopped'] {
background-color: #ddd; }
background-color: #ddd;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='started'],
#WRAPPER > #CONTAINER > section > .inline-row .state[data-state='started'] {
background-color: #22E07B; }
background-color: #22E07B;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='signaled'],
#WRAPPER > #CONTAINER > section > .inline-row .state[data-state='signaled'] {
background-color: #2E50C0; }
background-color: #2E50C0;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='locked'],
#WRAPPER > #CONTAINER > section > .inline-row .state[data-state='locked'] {
background-color: #EA460A; }
background-color: #EA460A;
}
#WRAPPER > #CONTAINER > section > .inline-box .state[data-state='detached'],
#WRAPPER > #CONTAINER > section > .inline-row .state[data-state='detached'] {
background: url("/src/static/sub-menu-side/sync@aaaaaa.svg") center center no-repeat;
background-size: auto 100%; }
background-size: auto 100%;
}
#WRAPPER > #CONTAINER > section > .inline-box .title,
#WRAPPER > #CONTAINER > section > .inline-row .title {
display: inline-block;
font-size: 1.15em;
font-weight: bold;
color: #ea4c06;
white-space: nowrap; }
white-space: nowrap;
}
#WRAPPER > #CONTAINER > section > .inline-box .title > span,
#WRAPPER > #CONTAINER > section > .inline-row .title > span {
font-size: .8em;
color: #333; }
color: #333;
}
#WRAPPER > #CONTAINER > section > .inline-box .motheure,
#WRAPPER > #CONTAINER > section > .inline-box .code,
#WRAPPER > #CONTAINER > section > .inline-box .option,
@ -141,7 +181,9 @@
display: block;
margin: 1em;
color: #333;
white-space: nowrap; }
white-space: nowrap;
}
#WRAPPER > #CONTAINER > section > .inline-box .motheure svg,
#WRAPPER > #CONTAINER > section > .inline-box .code svg,
#WRAPPER > #CONTAINER > section > .inline-box .option svg,
@ -157,7 +199,9 @@
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .motheure svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .option svg path#stylisable,
@ -167,7 +211,9 @@
#WRAPPER > #CONTAINER > section > .inline-row .option svg path#stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stylisable {
fill: #333 !important;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .motheure svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .code svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-box .option svg path#stroke-stylisable,
@ -177,14 +223,18 @@
#WRAPPER > #CONTAINER > section > .inline-row .option svg path#stroke-stylisable,
#WRAPPER > #CONTAINER > section > .inline-row .mail svg path#stroke-stylisable {
stroke: #333 !important;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups,
#WRAPPER > #CONTAINER > section > .inline-box .option,
#WRAPPER > #CONTAINER > section > .inline-row .groups,
#WRAPPER > #CONTAINER > section > .inline-row .option {
display: block;
margin: 1em;
color: #333; }
color: #333;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups svg,
#WRAPPER > #CONTAINER > section > .inline-box .option svg,
#WRAPPER > #CONTAINER > section > .inline-row .groups svg,
@ -196,13 +246,17 @@
margin-bottom: -.6em;
width: 1.5em;
height: 2em;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups svg path,
#WRAPPER > #CONTAINER > section > .inline-box .option svg path,
#WRAPPER > #CONTAINER > section > .inline-row .groups svg path,
#WRAPPER > #CONTAINER > section > .inline-row .option svg path {
fill: #333 !important;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore),
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span,
#WRAPPER > #CONTAINER > section > .inline-box .option > span:not(.ignore),
@ -221,7 +275,9 @@
box-shadow: inset 0 0 2px #fafafa;
background-color: #f9f9f9;
color: #333;
cursor: default; }
cursor: default;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-extension,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group,
@ -252,7 +308,9 @@
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span.add-member,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span.add-extension {
border-radius: 3px;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-extension > div.dropdown,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown,
@ -297,7 +355,9 @@
overflow-y: auto;
background: #fff;
box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15);
z-index: 100; }
z-index: 100;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown > span, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-extension > div.dropdown > span,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown > span,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown > span,
@ -330,7 +390,9 @@
padding: .5em;
padding-left: 1em;
flex: 2em 1 1;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-permission > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-group > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-member > div.dropdown > span:hover, #WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore).add-extension > div.dropdown > span:hover,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-permission > div.dropdown > span:hover,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span.add-group > div.dropdown > span:hover,
@ -360,7 +422,9 @@
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span.add-group > div.dropdown > span:hover,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span.add-member > div.dropdown > span:hover,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span.add-extension > div.dropdown > span:hover {
background-color: #F8F8F8; }
background-color: #F8F8F8;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-group,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-permission,
@ -415,7 +479,9 @@
background-size: auto 70%;
background-color: #f9f9f9;
color: inherit;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-group:hover,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission:hover,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.rem-permission:hover,
@ -456,7 +522,9 @@
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span > span.rem-permission:hover,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span > span.rem-member:hover,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span > span.rem-extension:hover {
background-image: url("/src/static/sub-menu-side/remove@d52918.svg"); }
background-image: url("/src/static/sub-menu-side/remove@d52918.svg");
}
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span:not(.ignore) > span.icon-permission:hover,
#WRAPPER > #CONTAINER > section > .inline-box .groups > span.ignore > span > span.icon-permission,
@ -476,11 +544,15 @@
border-color: #ddd;
background-color: #eee;
cursor: default;
background-image: url("/src/static/sub-menu-side/permission.svg"); }
background-image: url("/src/static/sub-menu-side/permission.svg");
}
#WRAPPER > #CONTAINER > section > .inline-box .option > span.ignore > span,
#WRAPPER > #CONTAINER > section > .inline-row .option > span.ignore > span {
border-radius: 3px;
margin-right: .4em; }
margin-right: .4em;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove,
#WRAPPER > #CONTAINER > section > .inline-row .link_edit,
@ -491,7 +563,9 @@
width: 1em;
height: 1em;
margin-left: 1em;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit.list,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove.list,
#WRAPPER > #CONTAINER > section > .inline-row .link_edit.list,
@ -499,7 +573,9 @@
float: none;
margin-left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%); }
transform: translateX(-50%);
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_edit > svg,
@ -508,23 +584,33 @@
height: 100%;
fill: #ddd !important;
transition: fill .4s ease-in-out;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_edit:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #2193e6 !important; }
fill: #2193e6 !important;
}
#WRAPPER > #CONTAINER > section > .inline-box .link_remove:hover > svg,
#WRAPPER > #CONTAINER > section > .inline-row .link_remove:hover > svg {
fill: #d52918 !important; }
fill: #d52918 !important;
}
#WRAPPER > #CONTAINER > section.fstart {
flex-direction: column;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center; }
align-items: center;
}
#WRAPPER > #CONTAINER > section.fstart .searchbar {
flex: 0 0 0;
width: calc( 100% - 2*2em); }
width: calc( 100% - 2*2em);
}
#WRAPPER > #CONTAINER > section > .inline-row {
width: calc( 100% - 4em - 2*1em);
display: flex;
@ -532,27 +618,39 @@
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
overflow: hidden; }
overflow: hidden;
}
#WRAPPER > #CONTAINER > section > .inline-row > span {
display: flex;
flex-direction: column;
justify-content: space-around;
flex: 100% 1 1;
border-left: 1px solid #ddd;
text-align: center; }
text-align: center;
}
#WRAPPER > #CONTAINER > section > .inline-row > span:first-child {
border-left: 0; }
border-left: 0;
}
#WRAPPER > #CONTAINER > section > .inline-row button {
flex: auto;
width: 5em; }
#WRAPPER > #CONTAINER article.check-table {
width: 5em;
}
/* [4] Tableau à cocher
=========================================================*/
article.check-table {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
border-radius: 3px;
border: 1px solid #ddd; }
#WRAPPER > #CONTAINER article.check-table > div {
border: 1px solid #ddd;
}
article.check-table > div {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
@ -563,19 +661,27 @@
background: #f8f8f8;
border-bottom: 1px solid #eee;
transition: background .2s ease-in-out;
overflow: hidden; }
#WRAPPER > #CONTAINER article.check-table > div:nth-child(2n) {
background: #fdfdfd; }
#WRAPPER > #CONTAINER article.check-table > div > span {
overflow: hidden;
}
article.check-table > div:nth-child(2n) {
background: #fdfdfd;
}
article.check-table > div > span {
flex: 100%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
/* (1) Gestion du checkbox hack */ }
#WRAPPER > #CONTAINER article.check-table > div > span input[type='checkbox'] {
display: none; }
#WRAPPER > #CONTAINER article.check-table > div > span input[type='checkbox'] + label[for] {
/* (1) Gestion du checkbox hack */
}
article.check-table > div > span input[type='checkbox'] {
display: none;
}
article.check-table > div > span input[type='checkbox'] + label[for] {
display: inline-block;
position: absolute;
width: 1.2em;
@ -583,88 +689,12 @@
background: url("/src/static/container/checkbox@999999.svg") center center no-repeat;
background-size: 100% auto;
transition: box-shadow .2s ease-in-out;
cursor: pointer; }
#WRAPPER > #CONTAINER article.check-table > div > span input[type='checkbox']:checked + label[for] {
background-image: url("/src/static/container/checkbox@checked@007dd8.svg"); }
#WRAPPER > #CONTAINER article.timeline.container {
display: block;
position: absolute;
width: calc( 100vw - 4em - 7.5em - 11em);
flex: 1em;
overflow: hidden;
/* (9) Timeline infobox */ }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline {
/* (1) svg circles -> set right transform-origin */
/* (7) Avoid icons inside center circles to block :hover */
/* (8) Default 'text' font*/ }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline {
-webkit-transform-origin: 50% 50% 0;
transform-origin: 50% 50% 0;
transition: transform .2s ease-in-out;
/* (2) Set cursor to pointer */
/* (4) Remove center circle event */
/* (5) Set colors according to action type */
/* (6) Make around circles a bit transparent */ }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around {
cursor: pointer;
/* (3) Dispatch event to next nodes */ }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around:hover + .center {
-webkit-transform: scale(1.2);
transform: scale(1.2); }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around:hover + .center + image + .below {
-webkit-transform: translateX(-100%);
transform: translateX(-100%); }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center {
-webkit-pointer-events: none;
pointer-events: none; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.start, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.start, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.start {
fill: #2cde8b; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.stop, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.stop, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.stop {
fill: #3a3a3a; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.lock, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.lock, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.lock {
fill: #e04343; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.unlock, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.unlock, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.unlock {
fill: #af1c1c; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.signal, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.signal, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.signal {
fill: #3258d8; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around.unsignal, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.center.unsignal, #WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.below.unsignal {
fill: #2041ab; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline circle.timeline.around {
opacity: .6; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline image {
-webkit-pointer-events: none;
pointer-events: none; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text {
fill: #444;
font-size: 14px;
font-family: 'Open Sans'; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.bold {
font-size: 16px;
font-weight: bold; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.start {
fill: #2cde8b; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.stop {
fill: #3a3a3a; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.lock {
fill: #e04343; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.unlock {
fill: #af1c1c; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.signal {
fill: #3258d8; }
#WRAPPER > #CONTAINER article.timeline.container svg.timeline text.unsignal {
fill: #2041ab; }
#WRAPPER > #CONTAINER article.timeline.container div.timeline.infobox {
display: none;
position: absolute;
top: 80px;
left: 0;
width: auto;
height: auto;
padding: .5em 1em;
border: 1px solid #b1b6c0;
border-radius: 3px;
background: #d8deea;
color: #444; }
#WRAPPER > #CONTAINER article.timeline.container div.timeline.infobox.active {
display: block; }
}
article.check-table > div > span input[type='checkbox']:checked + label[for] {
background-image: url("/src/static/container/checkbox@checked@007dd8.svg");
}
/*# sourceMappingURL= container.css.map */

View File

@ -2,41 +2,50 @@
font-family: 'Open Sans';
src: url("/css/font/Open Sans/R.ttf");
font-weight: normal;
font-style: normal; }
font-style: normal;
}
@font-face {
font-family: 'Open Sans sb';
src: url("/css/font/Open Sans/SB.ttf");
font-weight: normal;
font-style: normal; }
font-style: normal;
}
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/b.ttf");
font-weight: bold;
font-style: normal; }
font-style: normal;
}
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/i.ttf");
font-weight: normal;
font-style: italic; }
font-style: italic;
}
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/bi.ttf");
font-weight: bold;
font-style: italic; }
font-style: italic;
}
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/L.ttf");
font-weight: 100;
font-style: normal; }
font-style: normal;
}
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/Li.ttf");
font-weight: 100;
font-style: italic; }
font-style: italic;
}
/*# sourceMappingURL= font.css.map */

37
public_html/css/min/fonts.css Executable file
View File

@ -0,0 +1,37 @@
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/R.ttf");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans sb';
src: url("/css/font/Open Sans/SB.ttf");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/b.ttf");
font-weight: bold;
font-style: normal; }
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/i.ttf");
font-weight: normal;
font-style: italic; }
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/bi.ttf");
font-weight: bold;
font-style: italic; }
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/L.ttf");
font-weight: 100;
font-style: normal; }
@font-face {
font-family: 'Open Sans';
src: url("/css/font/Open Sans/Li.ttf");
font-weight: 100;
font-style: italic; }
/*# sourceMappingURL=fonts.css.map */

131
public_html/css/min/global.css Normal file → Executable file
View File

@ -16,32 +16,47 @@ section > form, .form {
box-shadow: 0 0 1px #b7b7b7;
background-color: #fff;
-webkit-transform: translateX(-50%);
transform: translateX(-50%); }
transform: translateX(-50%);
}
section > form#choose-cluster, .form#choose-cluster {
left: 0;
-webkit-transform: none;
transform: none; }
transform: none;
}
section > form.valid, .form.valid {
border-color: #27a560; }
border-color: #27a560;
}
section > form.neutral, .form.neutral {
border-color: #2193e6; }
border-color: #2193e6;
}
section > form.search, .form.search {
border-color: #2193e6; }
border-color: #2193e6;
}
section > form .edit_search_view,
section > form .remove_search_view, .form .edit_search_view,
.form .remove_search_view {
display: inline-block;
width: 100%;
text-align: center;
color: #aaaaaa; }
color: #aaaaaa;
}
section > form .edit_search_view span,
section > form .remove_search_view span, .form .edit_search_view span,
.form .remove_search_view span {
color: #888888; }
color: #888888;
}
section > form span.error-msg, .form span.error-msg {
display: inline-block;
color: #F03C3C;
font-size: 0.7em; }
font-size: 0.7em;
}
/* (1) Champs de texte */
input[type=text],
@ -62,7 +77,9 @@ select.invalid {
border-radius: 3px;
border: 1px solid #d7dde8;
color: #2f3033;
transition: border .4s ease-in-out; }
transition: border .4s ease-in-out;
}
input[type=text]:focus, input[type=text]:hover,
input[type=mail]:focus,
input[type=mail]:hover,
@ -86,14 +103,18 @@ select.invalid {
input.invalid[type=password]:hover,
select.invalid:focus,
select.invalid:hover {
border-color: #d52918; }
border-color: #d52918;
}
select {
width: 100%;
display: block;
background: #fff; }
background: #fff;
}
select option {
padding: .5em; }
padding: .5em;
}
.valid > input[type=text]:focus, .valid > input[type=text]:hover,
.valid > input[type=mail]:focus,
@ -110,7 +131,8 @@ input.valid[type=password]:focus,
input.valid[type=password]:hover,
select.valid:focus,
select.valid:hover {
border-color: #27a560; }
border-color: #27a560;
}
.neutral > input[type=text]:focus, .neutral > input[type=text]:hover,
.neutral > input[type=mail]:focus,
@ -127,7 +149,8 @@ input.neutral[type=password]:focus,
input.neutral[type=password]:hover,
select.neutral:focus,
select.neutral:hover {
border-color: #2193e6; }
border-color: #2193e6;
}
.search > input[type=text]:focus, .search > input[type=text]:hover,
.search > input[type=mail]:focus,
@ -142,7 +165,8 @@ input.search[type=mail]:focus,
input.search[type=mail]:hover,
input.search[type=password]:focus,
input.search[type=password]:hover {
border-color: #5630ed; }
border-color: #5630ed;
}
/* (2) Boutons */
button,
@ -158,7 +182,9 @@ button.invalid,
color: #fff;
transition: background .4s ease-in-out;
-webkit-transform: translateX(-50%);
transform: translateX(-50%); }
transform: translateX(-50%);
}
button:hover, button:focus, button:disabled,
button.invalid:hover,
button.invalid:focus,
@ -167,51 +193,64 @@ button.invalid,
.invalid > button:focus,
.invalid > button:disabled {
background-color: #fff;
color: #d52918; }
color: #d52918;
}
button.grey,
.grey > button {
border-color: #8d8d8d;
background-color: #8d8d8d; }
background-color: #8d8d8d;
}
button.grey:hover, button.grey:focus, button.grey:disabled,
.grey > button:hover,
.grey > button:focus,
.grey > button:disabled {
background-color: #fff;
color: #8d8d8d; }
color: #8d8d8d;
}
button.valid,
.valid > button {
border-color: #27a560;
background-color: #27a560; }
background-color: #27a560;
}
button.valid:hover, button.valid:focus, button.valid:disabled,
.valid > button:hover,
.valid > button:focus,
.valid > button:disabled {
background-color: #fff;
color: #27a560; }
color: #27a560;
}
button.neutral,
.neutral > button {
border-color: #2193e6;
background-color: #2193e6; }
background-color: #2193e6;
}
button.neutral:hover, button.neutral:focus, button.neutral:disabled,
.neutral > button:hover,
.neutral > button:focus,
.neutral > button:disabled {
background-color: #fff;
color: #2193e6; }
color: #2193e6;
}
button.search,
.search > button {
border-color: #5630ed;
background-color: #5630ed; }
background-color: #5630ed;
}
button.search:hover, button.search:focus, button.search:disabled,
.search > button:hover,
.search > button:focus,
.search > button:disabled {
background-color: #fff;
color: #5630ed; }
color: #5630ed;
}
.invalid > button.active,
button.invalid.active,
@ -219,19 +258,23 @@ button.active {
background-color: #fff;
background-image: url("/src/static/container/active@d52918.svg") !important;
background-size: 1em auto;
color: transparent !important; }
color: transparent !important;
}
button.valid.active,
.valid > button.active {
background-image: url("/src/static/container/active@27a560.svg") !important; }
background-image: url("/src/static/container/active@27a560.svg") !important;
}
button.neutral.active,
.neutral > button.active {
background-image: url("/src/static/container/active@2193e6.svg") !important; }
background-image: url("/src/static/container/active@2193e6.svg") !important;
}
button.search.active,
.search > button.active {
background-image: url("/src/static/container/active@5630ed.svg") !important; }
background-image: url("/src/static/container/active@5630ed.svg") !important;
}
hr.OR[data-label] {
display: block;
@ -239,7 +282,9 @@ hr.OR[data-label] {
width: 100%;
height: 0;
border: 0;
border-bottom: 1px dashed #d52918; }
border-bottom: 1px dashed #d52918;
}
hr.OR[data-label]:before {
content: attr(data-label);
display: inline-block;
@ -250,26 +295,38 @@ hr.OR[data-label] {
background-color: #fff;
color: #d52918;
-webkit-transform: translateX(-50%) translatey(-50%);
transform: translateX(-50%) translatey(-50%); }
transform: translateX(-50%) translatey(-50%);
}
.valid > hr.OR,
hr.OR.valid {
border-bottom: 1px dashed #27a560; }
border-bottom: 1px dashed #27a560;
}
.valid > hr.OR:before,
hr.OR.valid:before {
color: #27a560; }
color: #27a560;
}
.neutral > hr.OR,
hr.OR.neutral {
border-bottom: 1px dashed #2193e6; }
border-bottom: 1px dashed #2193e6;
}
.neutral > hr.OR:before,
hr.OR.neutral:before {
color: #2193e6; }
color: #2193e6;
}
.search > hr.OR,
hr.OR.search {
border-bottom: 1px dashed #5630ed; }
border-bottom: 1px dashed #5630ed;
}
.search > hr.OR:before,
hr.OR.search:before {
color: #5630ed; }
color: #5630ed;
}
/*# sourceMappingURL= global.css.map */

23
public_html/css/min/header.css Normal file → Executable file
View File

@ -4,24 +4,30 @@
/* FORMULAIRES */
/* GESTION DES LONGUEURS */
#WRAPPER > #HEADER {
/* Animation de chargement qudnd chargement ajax */ }
/* Animation de chargement qudnd chargement ajax */
}
#WRAPPER > #HEADER > .icon {
display: block;
position: absolute;
top: 0;
left: 0;
width: 4em;
height: calc( 4em - 1px);
height: 4em;
background-color: #c23f05;
background-image: url("/src/static/iconv3.svg");
background-position: center center;
background-repeat: no-repeat;
background-size: 50% 50%;
cursor: pointer;
transition: all .3s; }
transition: all .3s;
}
#WRAPPER > #HEADER.loading > .icon {
background-image: url("/src/static/loaderv2.svg");
background-size: 70% 70%; }
background-size: 70% 70%;
}
#WRAPPER > #HEADER > .logout-icon {
display: block;
position: absolute;
@ -31,7 +37,12 @@
height: 4em;
background: transparent url("/src/static/logout@e0e7ed.svg") center center no-repeat;
background-size: 40%;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #HEADER > .logout-icon:hover {
background-image: url("/src/static/logout@ffffff.svg"); }
background-image: url("/src/static/logout@ffffff.svg");
}
/*# sourceMappingURL= header.css.map */

55
public_html/css/min/layout.css Normal file → Executable file
View File

@ -19,7 +19,9 @@
/* [3] Container de la page
==========================================*/
/* [4] Popup background - window
==========================================*/ }
==========================================*/
}
#WRAPPER > #HEADER {
display: block;
position: absolute;
@ -29,7 +31,9 @@
height: calc( 4em - 1px);
border-bottom: 1px solid #c23f05;
background-color: #f44f06;
z-index: 10; }
z-index: 10;
}
#WRAPPER > #MENU-SIDE {
display: block;
position: absolute;
@ -40,7 +44,9 @@
box-shadow: 2px 1px 3px #ddd;
background-color: #fff;
transition: all .3s;
z-index: 9; }
z-index: 9;
}
#WRAPPER > #CONTAINER {
display: flex;
position: absolute;
@ -51,8 +57,10 @@
padding: 1em;
flex-direction: row;
justify-content: space-between;
overflow: hidden;
overflow-y: auto; }
overflow-x: none;
overflow-y: auto;
}
#WRAPPER > #POPUP {
display: none;
position: fixed;
@ -69,10 +77,12 @@
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
z-index: 101;
flex-flow: column nowrap;
justify-content: space-between; }
}
#WRAPPER > #POPUP.active {
display: flex; }
display: block;
}
#WRAPPER > #POPUP > .header {
display: block;
position: relative;
@ -81,14 +91,20 @@
border-radius: 5px 5px 0 0;
border-bottom: 2px solid #ecf0f1;
font-size: 1.1em;
font-weight: bold; }
font-weight: bold;
}
#WRAPPER > #POPUP > .body {
display: block;
position: relative;
width: calc( 100% - 2*1em);
padding: 1em; }
padding: 1em;
}
#WRAPPER > #POPUP > .body b, #WRAPPER > #POPUP > .body strong {
color: #5630ed; }
color: #5630ed;
}
#WRAPPER > #POPUP > .footer {
display: flex;
position: relative;
@ -98,12 +114,16 @@
border-radius: 0 0 5px 5px;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end; }
justify-content: flex-end;
}
#WRAPPER > #POPUP > .footer button {
left: auto;
margin: 0 1em;
-webkit-transform: none;
transform: none; }
transform: none;
}
#WRAPPER > #POPUP-BG {
display: none;
position: fixed;
@ -113,7 +133,12 @@
height: 100%;
background: #29333f;
background: rgba(41, 51, 63, 0.8);
z-index: 100; }
z-index: 100;
}
#WRAPPER #POPUP.active ~ #POPUP-BG {
display: block; }
display: block;
}
/*# sourceMappingURL= layout.css.map */

45
public_html/css/min/menu-side.css Normal file → Executable file
View File

@ -15,20 +15,32 @@
color: #a2a2a2;
line-height: calc( 4em - 2*.7em - 2*.55em - 2*.01em);
transition: color .3s, border .3s;
cursor: pointer; }
cursor: pointer;
}
#WRAPPER > #MENU-SIDE > span[data-link].mt {
margin-top: 3em; }
margin-top: 3em;
}
#WRAPPER > #MENU-SIDE > span[data-link].mb {
margin-bottom: 3em; }
margin-bottom: 3em;
}
#WRAPPER > #MENU-SIDE > span[data-link] svg, #WRAPPER > #MENU-SIDE > span[data-link] svg * {
width: calc( 4em / 2.5);
height: calc( 4em / 2.5);
transition: fill .3s, stroke .3s;
pointer-events: none; }
pointer-events: none;
}
#WRAPPER > #MENU-SIDE > span[data-link] svg #stylisable, #WRAPPER > #MENU-SIDE > span[data-link] svg * #stylisable {
fill: #a2a2a2 !important; }
fill: #a2a2a2 !important;
}
#WRAPPER > #MENU-SIDE > span[data-link] svg #stroke-stylisable, #WRAPPER > #MENU-SIDE > span[data-link] svg * #stroke-stylisable {
stroke: #a2a2a2 !important; }
stroke: #a2a2a2 !important;
}
#WRAPPER > #MENU-SIDE > span[data-link][data-desc]:after {
content: attr(data-desc);
display: block;
@ -44,17 +56,28 @@
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleX(0);
transform: scaleX(0); }
transform: scaleX(0);
}
#WRAPPER > #MENU-SIDE > span[data-link]:hover, #WRAPPER > #MENU-SIDE > span[data-link].active {
color: #f44f06;
border-color: #e6e6e6;
box-shadow: inset 0 0 .5em #eee; }
box-shadow: inset 0 0 .5em #eee;
}
#WRAPPER > #MENU-SIDE > span[data-link]:hover:hover:after, #WRAPPER > #MENU-SIDE > span[data-link].active:hover:after {
-webkit-transform: scaleX(1);
transform: scaleX(1);
color: #fff; }
color: #fff;
}
#WRAPPER > #MENU-SIDE > span[data-link]:hover svg #stylisable, #WRAPPER > #MENU-SIDE > span[data-link].active svg #stylisable {
fill: #000 !important; }
fill: #000 !important;
}
#WRAPPER > #MENU-SIDE > span[data-link]:hover svg #stroke-stylisable, #WRAPPER > #MENU-SIDE > span[data-link].active svg #stroke-stylisable {
stroke: #000 !important; }
stroke: #000 !important;
}
/*# sourceMappingURL= menu-side.css.map */

125
public_html/css/min/reset.css Normal file → Executable file
View File

@ -10,7 +10,8 @@ html {
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */ }
/* 2 */
}
/**
* Remove default margin.
@ -19,7 +20,8 @@ body {
margin: 0;
font-size: 16px;
font-family: 'Open Sans', 'Ubuntu', 'Verdana', 'Arial';
font-weight: normal; }
font-weight: normal;
}
/* HTML5 display definitions
========================================================================== */
@ -41,7 +43,8 @@ menu,
nav,
section,
summary {
display: block; }
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
@ -54,7 +57,8 @@ video {
display: inline-block;
/* 1 */
vertical-align: baseline;
/* 2 */ }
/* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
@ -62,7 +66,8 @@ video {
*/
audio:not([controls]) {
display: none;
height: 0; }
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
@ -70,7 +75,8 @@ audio:not([controls]) {
*/
[hidden],
template {
display: none; }
display: none;
}
/* Links
========================================================================== */
@ -78,7 +84,8 @@ template {
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent; }
background-color: transparent;
}
/**
* Improve readability of focused elements when they are also in an
@ -86,7 +93,8 @@ a {
*/
a:active,
a:hover {
outline: 0; }
outline: 0;
}
/* Text-level semantics
========================================================================== */
@ -101,7 +109,8 @@ abbr[title] {
text-decoration: underline;
/* 2 */
text-decoration: underline dotted;
/* 2 */ }
/* 2 */
}
/**
* Address inconsistent styling of b and strong.
@ -111,18 +120,21 @@ abbr[title] {
b,
strong {
font-weight: inherit;
/* 1 */ }
/* 1 */
}
b,
strong {
font-weight: bolder;
/* 2 */ }
/* 2 */
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic; }
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
@ -130,20 +142,23 @@ dfn {
*/
h1 {
font-size: 2em;
margin: 0.67em 0; }
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background-color: #ff0;
color: #000; }
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%; }
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
@ -153,13 +168,16 @@ sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline; }
vertical-align: baseline;
}
sup {
top: -0.5em; }
top: -0.5em;
}
sub {
bottom: -0.25em; }
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
@ -167,13 +185,15 @@ sub {
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0; }
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden; }
overflow: hidden;
}
/* Grouping content
========================================================================== */
@ -181,7 +201,8 @@ svg:not(:root) {
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px; }
margin: 1em 40px;
}
/**
* Address inconsistent styling of `hr`.
@ -194,13 +215,15 @@ hr {
height: 0;
/* 1 */
overflow: visible;
/* 2 */ }
/* 2 */
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto; }
overflow: auto;
}
/**
* 1. Correct inheritance and scaling of font-size for preformatted text.
@ -213,7 +236,8 @@ samp {
font-family: monospace, monospace;
/* 1 */
font-size: 1em;
/* 2 */ }
/* 2 */
}
/* Forms
========================================================================== */
@ -233,13 +257,15 @@ textarea {
font: inherit;
/* 1 */
margin: 0;
/* 2 */ }
/* 2 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible; }
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
@ -249,7 +275,8 @@ button {
*/
button,
select {
text-transform: none; }
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
@ -265,14 +292,16 @@ input[type="submit"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */ }
/* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default; }
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
@ -280,14 +309,16 @@ html input[disabled] {
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0; }
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal; }
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
@ -301,7 +332,8 @@ input[type="radio"] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */ }
/* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
@ -310,13 +342,15 @@ input[type="radio"] {
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto; }
height: auto;
}
/**
* Address `appearance` set to `searchfield` in Safari and Chrome.
*/
input[type="search"] {
-webkit-appearance: textfield; }
-webkit-appearance: textfield;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
@ -325,7 +359,8 @@ input[type="search"] {
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
@ -333,7 +368,8 @@ input[type="search"]::-webkit-search-decoration {
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em; }
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
@ -343,20 +379,23 @@ legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */ }
/* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto; }
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold; }
font-weight: bold;
}
/* Tables
========================================================================== */
@ -365,9 +404,13 @@ optgroup {
*/
table {
border-collapse: collapse;
border-spacing: 0; }
border-spacing: 0;
}
td,
th {
padding: 0; }
padding: 0;
}
/*# sourceMappingURL= reset.css.map */

29
public_html/css/min/submenu-side.css Normal file → Executable file
View File

@ -5,7 +5,9 @@
/* GESTION DES LONGUEURS */
#CONTAINER > .sub-menu-side {
display: block;
position: relative; }
position: relative;
}
#CONTAINER > .sub-menu-side > span[data-sublink] {
display: block;
position: relative;
@ -18,7 +20,9 @@
white-space: nowrap;
transition: all .2s;
cursor: pointer;
overflow: hidden; }
overflow: hidden;
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg {
display: inline-block;
position: absolute;
@ -27,15 +31,26 @@
width: 1em;
height: 1em;
-webkit-transform: translateY(-50%);
transform: translateY(-50%); }
transform: translateY(-50%);
}
#CONTAINER > .sub-menu-side > span[data-sublink] > .svg > svg path {
fill: #5b5e63 !important; }
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; }
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; }
fill: #121213 !important;
}
#CONTAINER > .sub-menu-side > span[data-sublink]:nth-child(1) {
margin-top: 1em; }
margin-top: 1em;
}
/*# sourceMappingURL= submenu-side.css.map */

View File

@ -9,7 +9,7 @@
& > span[data-sublink]{
display: block;
position: relative;
width: $sub-menu-side-width;
width: 7.5em;
padding: .3em 1em .3em 2em;
margin: 1em;

View File

@ -8,11 +8,12 @@
use \api\core\Response;
use \database\core\DatabaseDriver;
use \api\core\AuthSystemDefault;
use \token\core\TreeTokenNull;
use \token\core\TreeToken;
use \log\core\Log;
$page_log = Log::get('router');
$session_guard = new TreeTokenNull(1000);
$session_guard = new TreeToken(1000);
/*******************************************/
@ -89,9 +90,6 @@
global $auth;
// session timeout warning
$session_warn = 5; // 5 minutes before expiration
// {1} Disable cache //
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
@ -117,41 +115,8 @@
}
}
// session timeout
echo "\n\t},\n";
echo "\tsession: {\n";
echo "\t\ttimeout: '".( (ini_get('session.gc_maxlifetime')-$session_warn*60) * 1000 )."'\n";
echo "\n\t}\n";
echo "};\n\n";
// {3} Function that reloads or logout the user
echo "var KEEP_SESSION = function(keep){\n";
echo "\tdocument.location = ( keep ) ? '' : '/logout';\n";
echo "};\n\n";
// {4} Function called at session timeout
echo "var SESSION_TIMEOUT_FUNC = function(){\n";
// {4.1} setup POPUP window
echo "\tvar popup = new Popup();\n";
echo "\tvar popup_content = {\n";
echo "\t\ttitle: 'Expiration de connexion',\n";
echo "\t\tcontent: 'Vous n\'avez rien fait depuis un moment. Vous serez déconnecté dans <b>".round(.5+$session_warn)." minutes</b>. Vous pouvez recharger la page pour garder votre connexion.',\n";
echo "\t\ttype: 'search',\n";
echo "\t\taction: 'Recharger la page'\n";
echo "\t}\n";
// {4.2} Show popup dialog -> on reload: reload page ; on cancel: logout
echo "\tpopup.ask(popup_content, KEEP_SESSION);\n";
// {4.3} Logout by default 5min if no popup response
echo "\tsetTimeout(function(){ KEEP_SESSION(false); }, (.5+$session_warn)*60*1000);\n";
echo "};\n\n";
// {5} Set the timeout
echo "var SESSION_TIMEOUT = setTimeout(SESSION_TIMEOUT_FUNC, SERVER.session.timeout);\n";
echo "};\n";
die();

View File

@ -71,7 +71,7 @@ APIClass.prototype = {
// Récupération token TreeToken
window._tree_token_ = ptrAPI.xhr[i].getResponseHeader('X-Tree-Token');
var parsedResponse = {error:-1, ErrorDescription:'Erreur au niveau de api.js'};
var parsedResponse = {ModuleError:-1, ErrorDescription:'Erreur au niveau de api.js'};
// On essaie de parser le json
try{
@ -81,21 +81,15 @@ APIClass.prototype = {
// On lance la handler
console.log('api response', parsedResponse);
if( parsedResponse.hasOwnProperty('error') && parsedResponse.error != 0 )
console.error('ModuleError::'+parsedResponse.error);
// If success -> reload session_timeout
if( parsedResponse.hasOwnProperty('error') && parsedResponse.error == 0 ){
clearTimeout(SESSION_TIMEOUT);
SESSION_TIMEOUT = setTimeout(SESSION_TIMEOUT_FUNC, SERVER.session.timeout);
}
if( parsedResponse.hasOwnProperty('ModuleError') && parsedResponse.ModuleError != 0 )
console.error('ModuleError::'+parsedResponse.ModuleError);
pHandler(parsedResponse, ptrAPI.optionalParams[i]);
}
/* sinon retourne obj.request = 'unreachable' */
else
pHandler({error:-2, ErrorDescription:'Erreur au niveau d\'AJAX.'});
pHandler({ModuleError:-2, ModuleDescription:'Erreur au niveau d\'AJAX.'});
}
};
@ -130,6 +124,8 @@ APIClass.prototype = {
// Header pour dire que c'est AJAX
this.xhr[i].setRequestHeader('X-Requested-With', 'XMLHttpRequest');
this.xhr[i].send( form );
}

View File

@ -1 +1 @@
function APIClass(e){this.target=e}APIClass.prototype={xhr:[],buffer:null,optionalParams:[],send:function(e,r,t){e.hasOwnProperty("path")||r({ModuleError:4});for(var s=0;s<this.xhr.length;s++)4==this.xhr[s].readyState&&this.xhr.splice(s,1);if(this.xhr.push(null),s=this.xhr.length-1,this.optionalParams[s]=[],arguments.length>3)for(var o=3;o<arguments.length;o++)this.optionalParams[s].push(arguments[o]);window.XMLHttpRequest?this.xhr[s]=new XMLHttpRequest:this.xhr[s]=new ActiveXObject("Microsoft.XMLHttpRequest");var n=this;this.xhr[s].onreadystatechange=function(){if(4==n.xhr[s].readyState)if(n.buffer=n.xhr[s].responseText,console.log("api request",e),[0,200,417].indexOf(n.xhr[s].status)>-1){window._tree_token_=n.xhr[s].getResponseHeader("X-Tree-Token");var t={error:-1,ErrorDescription:"Erreur au niveau de api.js"};try{t=JSON.parse(n.xhr[s].responseText)}catch(e){}console.log("api response",t),t.hasOwnProperty("error")&&0!=t.error&&console.error("ModuleError::"+t.error),t.hasOwnProperty("error")&&0==t.error&&(clearTimeout(SESSION_TIMEOUT),SESSION_TIMEOUT=setTimeout(SESSION_TIMEOUT_FUNC,SERVER.session.timeout)),r(t,n.optionalParams[s])}else r({error:-2,ErrorDescription:"Erreur au niveau d'AJAX."})};var a=new FormData;for(var i in e)"path"==i?a.append(i,e[i]):e[i]instanceof File?a.append(i,e[i]):a.append(i,JSON.stringify(e[i]));this.xhr[s].open("POST",this.target,!0),null!=t&&this.xhr[s].setRequestHeader("Authorization","Digest "+t),null==window._tree_token_?this.xhr[s].setRequestHeader("X-Tree-Token",JSON.parse('{"'+document.cookie.replace(/=/g,'":"').replace(/; /g,'","')+'"}')._PUBLIC_):this.xhr[s].setRequestHeader("X-Tree-Token",window._tree_token_),this.xhr[s].setRequestHeader("X-Requested-With","XMLHttpRequest"),this.xhr[s].send(a)}};
function APIClass(e){this.target=e}APIClass.prototype={xhr:[],buffer:null,optionalParams:[],send:function(e,r,t){e.hasOwnProperty("path")||r({ModuleError:4});for(var s=0;s<this.xhr.length;s++)4==this.xhr[s].readyState&&this.xhr.splice(s,1);if(this.xhr.push(null),s=this.xhr.length-1,this.optionalParams[s]=[],arguments.length>3)for(var o=3;o<arguments.length;o++)this.optionalParams[s].push(arguments[o]);window.XMLHttpRequest?this.xhr[s]=new XMLHttpRequest:this.xhr[s]=new ActiveXObject("Microsoft.XMLHttpRequest");var n=this;this.xhr[s].onreadystatechange=function(){if(4==n.xhr[s].readyState)if(n.buffer=n.xhr[s].responseText,console.log("api request",e),[0,200,417].indexOf(n.xhr[s].status)>-1){window._tree_token_=n.xhr[s].getResponseHeader("X-Tree-Token");var t={ModuleError:-1,ErrorDescription:"Erreur au niveau de api.js"};try{t=JSON.parse(n.xhr[s].responseText)}catch(e){}console.log("api response",t),t.hasOwnProperty("ModuleError")&&0!=t.ModuleError&&console.error("ModuleError::"+t.ModuleError),r(t,n.optionalParams[s])}else r({ModuleError:-2,ModuleDescription:"Erreur au niveau d'AJAX."})};var a=new FormData;for(var i in e)"path"==i?a.append(i,e[i]):e[i]instanceof File?a.append(i,e[i]):a.append(i,JSON.stringify(e[i]));this.xhr[s].open("POST",this.target,!0),null!=t&&this.xhr[s].setRequestHeader("Authorization","Digest "+t),null==window._tree_token_?this.xhr[s].setRequestHeader("X-Tree-Token",JSON.parse('{"'+document.cookie.replace(/=/g,'":"').replace(/; /g,'","')+'"}')._PUBLIC_):this.xhr[s].setRequestHeader("X-Tree-Token",window._tree_token_),this.xhr[s].setRequestHeader("X-Requested-With","XMLHttpRequest"),this.xhr[s].send(a)}};

View File

@ -1 +1,19 @@
function pageManagerClass(){}var ptrPageManagerClass;pageManagerClass.prototype={loaded:null,depJS:null,depCSS:null,xhr:[],activeXHR:null,page:null,vars:[],root:"",path:"",jsPath:"js",cssPath:"css",pagelist:null,container:null,refresher:function(){},ajax:function(t,e,s,i){var h;h=this.xhr.push(window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHttpRequest"))-1,this.activeXHR=this.xhr[h],this.xhr[h].addEventListener("readystatechange",function(t){if(void 0!=this.xhr[t]&&4===this.xhr[t].readyState){[0,200].indexOf(this.xhr[t].status)>-1?e(this.xhr[t].responseText):e(),this.xhr[t]=null;for(var s=!0,t=0;t<this.xhr.length;t++)if(null!==this.xhr[t]){s=!1;break}s&&(this.xhr=[])}}.bind(this,h),!1);var n="string"==typeof s&&/^POST|GET$/i.test(s)?s.toUpperCase():"POST",a="POST"==n&&"object"==typeof i&&i instanceof FormData?i:null;return this.xhr[h].open(n,t,!0),this.xhr[h].send(a),this},explodeURL:function(t){if(t=arguments.length>=1?t:document.URL,null!=this.pagelist&&/^(?:(?:https?:\/\/)?[^\/]+)\/([a-z0-9_]+)(?:\/|((?:\/\w+)+)\/?)?(#.*)?$/i.test(t)){var e=RegExp.$2.split("/").slice(1);return this.pagelist.indexOf(RegExp.$1)>-1?{page:RegExp.$1,var:e}: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),this.ajax(this.root+this.path+"/"+this.cssPath+"/"+this.page+".css",function(t){return null==t?void console.warn("[loadDependencies_Error] - ("+this.root+this.path+"/"+this.cssPath+"/"+this.page+".css)"):(this.depCSS=document.createElement("link"),this.depCSS.rel="stylesheet",this.depCSS.type="text/css",this.depCSS.innerHTML=t,void document.head.appendChild(this.depCSS))}.bind(this),"GET"),this.ajax(this.root+this.path+"/"+this.jsPath+"/"+this.page+".js",function(t){return null==t?void console.warn("[loadDependencies_Error] - ("+this.root+this.path+"/"+this.jsPath+"/"+this.page+".js)"):(this.depJS=document.createElement("script"),this.depJS.type="text/javascript",this.depJS.innerHTML=t,void document.head.appendChild(this.depJS))}.bind(this),"GET")},updateURL:function(){this.vars.length>0?window.history.pushState(this.page,this.page,this.root+"/"+this.page+"/"+this.vars.join("/")+"/"):window.history.pushState(this.page,this.page,this.root+"/"+this.page+"/")},setPage:function(t,e,s,i,h){var n="object"==typeof i&&i instanceof Array?i:null;if(null!=n)for(var a=0;a<n.length&&(n="string"==typeof n[a]&&/^[a-z0-9_]+$/i.test(n[a])?n:null,null!=n);a++);if(this.pagelist=null!=n?n:this.pagelist,this.root="string"==typeof h?h:this.root,this.path="string"==typeof e?e:this.path,this.container="object"==typeof s&&s instanceof Element?s:this.container,this.pagelist&&this.container){if(t===!0){for(var r=new FormData,a=0;a<this.vars.length;a++)r.append(this.vars[a],null);return this.updateURL(),this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies(),this.refresher.apply(this),this.updateURL()}.bind(this),"POST",r),this}if("string"==typeof t&&this.pagelist.indexOf(t)>-1){this.page=t;for(var r=new FormData,a=0;a<this.vars.length;a++)r.append(this.vars[a],null);this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies()}.bind(this),"POST",r),this.updateURL()}else{var o=this.explodeURL();if(null!=o){var r=new FormData;this.vars.length=0;for(var a=0;a<o.var.length;a++)this.vars[a]=o.var[a],r.append(this.vars[a],null);if(o.page==this.page)return this;this.page=o.page,this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies()}.bind(this),"POST",r),this.updateURL()}else this.setPage(this.pagelist[0])}}else console.warn("pagelist et container manquant");return this},refresh:function(t){return t instanceof Function?void(this.refresher=t):this.setPage(!0)}};
/***************************************/
function pageManagerClass(){}var ptrPageManagerClass
pageManagerClass.prototype={loaded:null,depJS:null,depCSS:null,xhr:[],activeXHR:null,page:null,vars:[],root:"",path:"",jsPath:"js",cssPath:"css",pagelist:null,container:null,refresher:function(){},ajax:function(t,e,s,i){var h
h=this.xhr.push(window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHttpRequest"))-1,this.activeXHR=this.xhr[h],this.xhr[h].addEventListener("readystatechange",function(t){if(void 0!=this.xhr[t]&&4===this.xhr[t].readyState){[0,200].indexOf(this.xhr[t].status)>-1?e(this.xhr[t].responseText):e(),this.xhr[t]=null
for(var s=!0,t=0;t<this.xhr.length;t++)if(null!==this.xhr[t]){s=!1
break}s&&(this.xhr=[])}}.bind(this,h),!1)
var n="string"==typeof s&&/^POST|GET$/i.test(s)?s.toUpperCase():"POST",a="POST"==n&&"object"==typeof i&&i instanceof FormData?i:null
return this.xhr[h].open(n,t,!0),this.xhr[h].send(a),this},explodeURL:function(t){if(t=arguments.length>=1?t:document.URL,null!=this.pagelist&&/^(?:(?:https?:\/\/)?[^\/]+)\/([a-z0-9_]+)(?:\/|((?:\/\w+)+)\/?)?(#.*)?$/i.test(t)){var e=RegExp.$2.split("/").slice(1)
return this.pagelist.indexOf(RegExp.$1)>-1?{page:RegExp.$1,var:e}: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),this.ajax(this.root+this.path+"/"+this.cssPath+"/"+this.page+".css",function(t){null!=t?(this.depCSS=document.createElement("link"),this.depCSS.rel="stylesheet",this.depCSS.type="text/css",this.depCSS.href=this.root+this.path+"/"+this.cssPath+"/"+this.page+".css",document.head.appendChild(this.depCSS)):console.warn("[loadDependencies_Error] - ("+this.root+this.path+"/"+this.cssPath+"/"+this.page+".css)")}.bind(this)),this.ajax(this.root+this.path+"/"+this.jsPath+"/"+this.page+".js",function(t){null!=t?(this.depJS=document.createElement("script"),this.depJS.type="text/javascript",this.depJS.src=this.root+this.path+"/"+this.jsPath+"/"+this.page+".js",document.head.appendChild(this.depJS)):console.warn("[loadDependencies_Error] - ("+this.root+this.path+"/"+this.jsPath+"/"+this.page+".js)")}.bind(this))},updateURL:function(){this.vars.length>0?window.history.pushState(this.page,this.page,this.root+"/"+this.page+"/"+this.vars.join("/")+"/"):window.history.pushState(this.page,this.page,this.root+"/"+this.page+"/")},setPage:function(t,e,s,i,h){var n="object"==typeof i&&i instanceof Array?i:null
if(null!=n)for(var a=0;a<n.length&&(n="string"==typeof n[a]&&/^[a-z0-9_]+$/i.test(n[a])?n:null,null!=n);a++);if(this.pagelist=null!=n?n:this.pagelist,this.root="string"==typeof h?h:this.root,this.path="string"==typeof e?e:this.path,this.container="object"==typeof s&&s instanceof Element?s:this.container,this.pagelist&&this.container){if(t===!0){for(var r=new FormData,a=0;a<this.vars.length;a++)r.append(this.vars[a],null)
return this.updateURL(),this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies(),this.refresher.apply(this),this.updateURL()}.bind(this),"POST",r),this}if("string"==typeof t&&this.pagelist.indexOf(t)>-1){this.page=t
for(var r=new FormData,a=0;a<this.vars.length;a++)r.append(this.vars[a],null)
this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies()}.bind(this),"POST",r),this.updateURL()}else{var p=this.explodeURL()
if(null!=p){var r=new FormData
this.vars.length=0
for(var a=0;a<p.var.length;a++)this.vars[a]=p.var[a],r.append(this.vars[a],null)
if(p.page==this.page)return this
this.page=p.page,this.ajax(this.root+this.path+"/"+this.page+".php",function(t){this.container.innerHTML=t,this.loadDependencies()}.bind(this),"POST",r),this.updateURL()}else this.setPage(this.pagelist[0])}}else console.warn("pagelist et container manquant")
return this},refresh:function(t){return t instanceof Function?void(this.refresher=t):this.setPage(!0)}}

View File

@ -1 +1 @@
function Popup(){this.element={background:document.querySelector("#POPUP-BG"),frame:document.querySelector("#POPUP"),header:document.querySelector("#POPUP .header"),body:document.querySelector("#POPUP .body"),footer:document.querySelector("#POPUP .footer")},this.element.background.addEventListener("click",function(e){this.hide().handler(!1)}.bind(this),!1)}Popup.prototype={handler:null,element:{frame:null,header:null,body:null,footer:null},show:function(){return this.element.frame.addClass("active"),this},hide:function(){return this.element.frame.remClass("active"),this},ask:function(e,n){function t(e){this.hide(),this.handler("grey"!=e.target.className)}if(!(e instanceof Object))return null;if(null==e.title)return null;if(null==e.content)return null;if(null==e.type)return null;if(null==e.action)return null;if(!(n instanceof Function))return null;this.element.header.innerHTML=e.title,this.element.body.innerHTML=e.content,this.handler=n;var r=document.createElement("button");r.className=e.type,r.innerHTML=e.action;var l=document.createElement("button");return l.className="grey",l.innerHTML="Annuler",r.addEventListener("click",t.bind(this),!1),l.addEventListener("click",t.bind(this),!1),this.element.footer.innerHTML="",this.element.footer.appendChild(r),this.element.footer.appendChild(l),this.show()}};
function Popup(){this.element={frame:document.querySelector("#POPUP"),header:document.querySelector("#POPUP .header"),body:document.querySelector("#POPUP .body"),footer:document.querySelector("#POPUP .footer")}}Popup.prototype={element:{frame:null,header:null,body:null,footer:null},show:function(){return this.element.frame.addClass("active"),this},hide:function(){return this.element.frame.remClass("active"),this},ask:function(e,t){function n(e){this.hide(),t("grey"!=e.target.className)}if(!(e instanceof Object))return null;if(null==e.title)return null;if(null==e.content)return null;if(null==e.type)return null;if(null==e.action)return null;if(!(t instanceof Function))return null;this.element.header.innerHTML=e.title,this.element.body.innerHTML=e.content;var r=document.createElement("button");r.className=e.type,r.innerHTML=e.action;var l=document.createElement("button");return l.className="grey",l.innerHTML="Annuler",r.addEventListener("click",n.bind(this),!1),l.addEventListener("click",n.bind(this),!1),this.element.footer.innerHTML="",this.element.footer.appendChild(r),this.element.footer.appendChild(l),this.show()}};

View File

@ -155,33 +155,26 @@ pageManagerClass.prototype = {
// si le fichier css existe
this.ajax(this.root+this.path+'/'+this.cssPath+'/'+this.page+'.css', function(e){
if( e == null ){ // on charge la dépendance CSS si le fichier existe
console.warn('[loadDependencies_Error] - ('+this.root+this.path+'/'+this.cssPath+'/'+this.page+'.css)');
return;
}
if( e != null ){ // on charge la dépendance CSS si le fichier existe
this.depCSS = document.createElement('link');
this.depCSS.rel = 'stylesheet';
this.depCSS.type = 'text/css';
// this.depCSS.href = this.root+this.path+'/'+this.cssPath+'/'+this.page+'.css';
this.depCSS.innerHTML = e;
this.depCSS.href = this.root+this.path+'/'+this.cssPath+'/'+this.page+'.css';
document.head.appendChild(this.depCSS);
}.bind(this), 'GET');
}else
console.warn('[loadDependencies_Error] - ('+this.root+this.path+'/'+this.cssPath+'/'+this.page+'.css)');
}.bind(this));
// si le fichier js existe
this.ajax(this.root+this.path+'/'+this.jsPath+'/'+this.page+'.js', function(e){
if( e == null ){ // on charge la dépendance JS si le fichier existe
console.warn('[loadDependencies_Error] - ('+this.root+this.path+'/'+this.jsPath+'/'+this.page+'.js)');
return;
}
if( e != null ){ // on charge la dépendance JS si le fichier existe
this.depJS = document.createElement('script');
this.depJS.type = 'text/javascript';
// this.depJS.src = this.root+this.path+'/'+this.jsPath+'/'+this.page+'.js';
this.depJS.innerHTML = e;
this.depJS.src = this.root+this.path+'/'+this.jsPath+'/'+this.page+'.js';
document.head.appendChild(this.depJS);
}.bind(this), 'GET');
}else
console.warn('[loadDependencies_Error] - ('+this.root+this.path+'/'+this.jsPath+'/'+this.page+'.js)');
}.bind(this));
},
/* =======================================================================

View File

@ -1,24 +1,16 @@
function Popup(){
/* (1) Fetch DOM elements */
this.element = {
background: document.querySelector('#POPUP-BG'),
frame: document.querySelector('#POPUP'),
header: document.querySelector('#POPUP .header'),
body: document.querySelector('#POPUP .body'),
footer: document.querySelector('#POPUP .footer')
};
/* (2) Set background click === to CANCEL action */
this.element.background.addEventListener('click', function(e){
this.hide().handler(false);
}.bind(this), false);
}
Popup.prototype = {
handler: null,
element: { frame: null, header: null, body: null, footer: null },
show: function(){
@ -67,10 +59,6 @@ Popup.prototype = {
/* (2) Content */
this.element.body.innerHTML = pObject.content;
/* (3) Store the handler */
this.handler = pHandler;
/* (3) Set the buttons (action)
---------------------------------------------------------*/
@ -85,7 +73,7 @@ Popup.prototype = {
cancel_btn.innerHTML = 'Annuler';
/* (3) Bind events */
function handler(e){ this.hide(); this.handler( e.target.className != 'grey' ); }
function handler(e){ this.hide(); pHandler( e.target.className != 'grey' ); }
action_btn.addEventListener('click', handler.bind(this), false);
cancel_btn.addEventListener('click', handler.bind(this), false);

View File

@ -105,6 +105,8 @@ Element.prototype.anim = function(className, timeout){
};
/* DEFINITION DES FORMATS UTILES POUR INPUT-CHECKER
*
*/

View File

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
enable-background="new 0 0 141.732 141.732"
height="32"
id="Livello_1"
version="1.1"
viewBox="0 0 32.000002 32.000001"
width="32"
xml:space="preserve"
inkscape:version="0.91 r13725"
sodipodi:docname="lock.svg"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview7"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="9.41931"
inkscape:cx="5.9336621"
inkscape:cy="7.2474796"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Livello_1" /><g
id="Livello_113"
transform="translate(-17.238667,-109.21765)" /><path
inkscape:connector-curvature="0"
d="m 22.378488,16.002563 0,-4.570818 a 6.3784857,6.856227 0 1 0 -12.7569707,0 l 0,4.570818 z m -19.1354571,0 2.1261615,0 0,-4.570818 a 10.630811,11.427045 0 1 1 21.2616196,0 l 0,4.570818 2.126162,0 0,15.997863 -25.5139431,0 z"
id="stylisable" /></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
viewBox="0 0 32 32"
width="32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="signal.svg">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview6"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="14.481547"
inkscape:cx="22.770708"
inkscape:cy="28.336291"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
d="m 20.363634,25.4545 0,5.091 q 0,0.5909 -0.43181,1.0227 Q 19.500004,32 18.909094,32 l -5.81818,0 q -0.59091,0 -1.02273,-0.4318 -0.43182,-0.4318 -0.43182,-1.0227 l 0,-5.091 q 0,-0.5909 0.43182,-1.0227 Q 12.500004,24 13.090914,24 l 5.81818,0 q 0.59091,0 1.02273,0.4318 0.43181,0.4318 0.43181,1.0227 z M 21.045454,1.4544998 20.409094,18.9091 q -0.0227,0.5909 -0.46591,1.0227 -0.44318,0.4318 -1.03409,0.4318 l -5.81818,0 q -0.59091,0 -1.03409,-0.4318 -0.44319,-0.4318 -0.46591,-1.0227 L 10.954544,1.4544998 Q 10.931844,0.86359978 11.352274,0.43179978 11.772734,-2.22046e-7 12.363634,-2.22046e-7 l 7.27273,0 q 0.59091,0 1.01137,0.431800002046 0.42045,0.4318 0.39772,1.02270002 z"
id="stylisable"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
id="Layer_1"
version="1.1"
viewBox="0 0 31.999999 32"
width="32"
xml:space="preserve"
inkscape:version="0.91 r13725"
sodipodi:docname="start.svg"><metadata
id="metadata9"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs7" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview5"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="14.5625"
inkscape:cx="13.38136"
inkscape:cy="12.329643"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><path
inkscape:connector-curvature="0"
d="M 7.9999977,4.9999997e-8 7.9999977,17.6 l 4.8000003,0 0,14.4 11.2,-19.2 -6.4,0 6.4,-12.799999950000003 z"
id="stylisable" /></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
id="Layer_1"
version="1.2"
viewBox="0 0 32 32"
width="32"
xml:space="preserve"
inkscape:version="0.91 r13725"
sodipodi:docname="stop.svg"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview7"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="9.8333333"
inkscape:cx="-11.033899"
inkscape:cy="6.0000006"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><g
id="g3"
transform="matrix(2.0564972,0,0,2.0564972,-8.6779661,-8.6779661)" /><path
inkscape:connector-curvature="0"
d="m 20.295204,16 6.442427,-6.4424263 c 1.185984,-1.1859835 1.185984,-3.1092209 0,-4.294445 -1.185984,-1.1859835 -3.10998,-1.1859835 -4.295964,0 L 16,11.704796 9.5575738,5.2631287 c -1.1859835,-1.1859835 -3.1092211,-1.1859835 -4.2952047,0 -1.1859835,1.1859835 -1.1859835,3.1099803 0,4.294445 L 11.704796,16 5.2623691,22.442427 c -1.1859835,1.185983 -1.1859835,3.10922 0,4.294445 1.1859836,1.185983 3.1092212,1.185983 4.2952047,0 L 16,20.295204 l 6.441667,6.441668 c 1.185984,1.185983 3.10998,1.185983 4.295964,0 1.185984,-1.185984 1.185984,-3.109981 0,-4.294445 L 20.295204,16 Z"
id="stylisable" /></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
viewBox="0 0 32 32"
width="32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="unsignal.svg">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview6"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="14.481547"
inkscape:cx="12.792553"
inkscape:cy="12.35049"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<g
transform="matrix(1.1851852,0,0,1.1851852,-3.5555556,-3.5555556)"
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1"
id="Page-1">
<g
style="fill:#157efb"
id="icon-24-key">
<path
inkscape:connector-curvature="0"
d="M 18.532404,19.467596 14,24 l -3,0 0,3 -3,0 0,3 -5,0 0,-5 10.532404,-10.532404 C 13.188157,13.543721 13,12.543834 13,11.5 13,6.8055794 16.805579,3 21.5,3 26.194421,3 30,6.8055794 30,11.5 30,16.194421 26.194421,20 21.5,20 20.456166,20 19.456279,19.811843 18.532404,19.467596 l 0,0 0,0 z M 27,9 c 0,-1.6568543 -1.343146,-3 -3,-3 -1.656854,0 -3,1.3431457 -3,3 0,1.656854 1.343146,3 3,3 1.656854,0 3,-1.343146 3,-3 l 0,0 z"
id="stylisable"
style="fill:#000000" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
viewBox="0 0 32 32"
width="32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="unsignal.svg">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview6"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="14.481547"
inkscape:cx="12.792553"
inkscape:cy="12.35049"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<g
transform="matrix(1.1851852,0,0,1.1851852,-3.5555556,-3.5555556)"
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1"
id="Page-1">
<g
style="fill:#157efb"
id="icon-24-key">
<path
inkscape:connector-curvature="0"
d="M 18.532404,19.467596 14,24 l -3,0 0,3 -3,0 0,3 -5,0 0,-5 10.532404,-10.532404 C 13.188157,13.543721 13,12.543834 13,11.5 13,6.8055794 16.805579,3 21.5,3 26.194421,3 30,6.8055794 30,11.5 30,16.194421 26.194421,20 21.5,20 20.456166,20 19.456279,19.811843 18.532404,19.467596 l 0,0 0,0 z M 27,9 c 0,-1.6568543 -1.343146,-3 -3,-3 -1.656854,0 -3,1.3431457 -3,3 0,1.656854 1.343146,3 3,3 1.656854,0 3,-1.343146 3,-3 l 0,0 z"
id="stylisable"
style="fill:#000000" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -10,7 +10,7 @@
<meta name='desctiption' content="Système de gestion des véhicules pour STEF.">
<!-- Dépendences CSS -->
<link type='text/css' rel='stylesheet' href='/css/min/font.css' /> <!-- Chargement des fonts -->
<link type='text/css' rel='stylesheet' href='/css/min/fonts.css' /> <!-- Chargement des fonts -->
<link type='text/css' rel='stylesheet' href='/css/min/reset.css' /> <!-- Reset du css natif des browsers -->
<!-- Icone -->
@ -22,8 +22,6 @@
<script type='text/javascript' src='/js/lib/min/api.js' ></script> <!-- Gestion des transactions avec le serveur -->
<script type='text/javascript' src='/js/lib/page-manager.js' ></script> <!-- Gestion des transactions avec le serveur -->
<script type='text/javascript' src='/serverinfo.js' ></script> <!-- Gestion dynamique des info server -->
</head>
<style type='text/css'>
body{

View File

@ -43,22 +43,6 @@ if( section.view.element != null ){
/* (2) Gestion de la recherche instantannee */
section.view.search.func = function(){
// if no keyword -> show all
if( section.view.search.bar.value.length == 0 ){
// On recupere la liste des elements correspondants aux utilisateurs
var history_list = document.querySelectorAll(section.view.text + '> article.inline-row[id]');
// Affiche chaque carte
for( var i = 0 ; i < history_list.length ; i++ )
history_list[i].remClass('hidden');
return;
}
var search = {
path: 'historyDefault/search',
keywords: section.view.search.bar.value
@ -135,31 +119,12 @@ if( section.archive.element != null ){
e.preventDefault();
/* (2) Create popup */
var PopupManager = new Popup();
var confirm_content = {
title: "Archivage de l'historique",
content: "L'historique sera définitivement supprimé de la plateforme après la création de l'archive. Cette opération ne peut être annulée.",
type: "search",
action: "Archiver"
};
/* (3) Ask for confirmation */
PopupManager.ask(confirm_content, function(is_confirmed){
// {3.1} If cancelled -> abort //
if( !is_confirmed )
return;
// {3.2} Manage request //
api.send({path: 'historyDefault/archive'}, function(result){
if( result.error == 0 ){
if( result.error == 0 )
document.location = result.link;
});
}
});
}, false);
@ -167,83 +132,3 @@ if( section.archive.element != null ){
}
/* GESTION DE L'AFFICHAGE DES DETAILS
*
*/
if( section.details.element != null ){
/* (0) On gère le zoom sur un log via URL */
if( pageManager.vars.length > 1 && !isNaN(pageManager.vars[1]) ){
// element
var element = document.getElementById('e'+pageManager.vars[1]);
// if element exist -> scroll to event
if( element != null )
DOM.CONTAINER.scrollTo( 0, element.getData('y') );
}
/* (1) Get useful DOM Elements
---------------------------------------------------------*/
/* (1) Get parent */
section.details.parent = {
text: section.details.text+'article.timeline.container ',
element: document.querySelector( section.details.text+'article.timeline.container ' )
};
/* (2) Get SVG tag */
section.details.svg = {
text: section.details.parent.text+'svg.timeline ',
element: document.querySelector( section.details.parent.text+'svg.timeline ' )
};
/* (3) Get each event node */
section.details.event = {
text: section.details.svg.text+'circle.around ',
list: document.querySelectorAll( section.details.svg.text+'circle.around ' )
};
/* (4) Get infobox node */
section.details.info = {
text: section.details.parent.text+'div.timeline.infobox ',
element: document.querySelector( section.details.parent.text+'div.timeline.infobox ' )
};
/* (5) Bind infobox sub-elements */
section.details.info.input = {
};
/* (3) Function: show infobox on click on event
---------------------------------------------------------*/
/* (1) Set click handler */
section.details.event.handler = function(target){
pageManager.vars[1] = target.getData('entry');
pageManager.refresh();
// section.details.info.element.addClass('active');
console.log('show infobox on element', target);
};
/* (2) Trigger event */
section.details.svg.element.addEventListener('click', function(e){
// {1} Trigger function only if element is an 'around circle' //
if( e.target.nodeName && e.target.getData('entry') && e.target.getData('user') && e.target.getData('machine') && e.target.getData('action') && e.target.getData('time') )
section.details.event.handler(e.target);
}, false);
}

View File

@ -66,20 +66,6 @@ if( section.view.element != null ){
/* (3) Gestion de la recherche instantannee */
section.view.search.func = function(){
// if no keyword -> show all
if( section.view.search.bar.value.length == 0 ){
// On recupere la liste des elements correspondants aux utilisateurs
var mac_list = document.querySelectorAll(section.view.text + '> article.inline-box[id]');
// Affiche chaque carte
for( var i = 0 ; i < mac_list.length ; i++ )
mac_list[i].remClass('hidden');
return;
}
var search = {
path: 'machineDefault/search',
keywords: section.view.search.bar.value
@ -98,7 +84,6 @@ if( section.view.element != null ){
var machine_list = document.querySelectorAll(section.view.text + '> article.inline-box[id]');
// Pour chaque machine
console.log(uid_list);
for( var i = 0 ; i < machine_list.length ; i++ ){
// Si doit etre visible
if( uid_list.indexOf(parseInt(machine_list[i].id)) > -1 )
@ -518,26 +503,8 @@ if( section.remove.element != null ){
// On annule l'envoi de base (PHP)
e.preventDefault();
// Si l'id n'est pas défini -> abort
if( section.remove.input.search.id.value == '' )
return;
/* (1) Create popup */
var PopupManager = new Popup();
var confirm_content = {
title: "Suppression de machine",
content: "La machine <b>"+section.remove.input.name.value+"</b> sera définitivement supprimée de la plateforme. Cette opération ne peut être annulée.",
type: "invalid",
action: "Supprimer"
};
/* (2) Ask for confirmation */
PopupManager.ask(confirm_content, function(is_confirmed){
// {2.1} If cancelled -> abort //
if( !is_confirmed )
return;
// Si l'id est defini
if( section.remove.input.search.id.value != '' ){
/* (2) On supprime la machine */
var request = {
@ -581,7 +548,7 @@ if( section.remove.element != null ){
console.error('ModuleError::'+answer.error);
});
});
}
}, false);

View File

@ -135,7 +135,7 @@ if( section.admins.element != null ){
/* (3) Ask for confirmation */
PopupManager.ask(confirm_content, function(is_confirmed){
/* (3.1) If cancelled -> abort */
/* (3.1) If not cancelled -> abort */
if( !is_confirmed )
return;

View File

@ -71,20 +71,6 @@ if( section.view.element != null ){
/* (3) Gestion de la recherche instantannee */
section.view.search.func = function(){
// if no keyword -> show all
if( section.view.search.bar.value.length == 0 ){
// On recupere la liste des elements correspondants aux utilisateurs
var user_list = document.querySelectorAll(section.view.text + '> article.inline-box[id]');
// Affiche chaque carte
for( var i = 0 ; i < user_list.length ; i++ )
user_list[i].remClass('hidden');
return;
}
var search = {
path: 'userDefault/search',
keywords: section.view.search.bar.value
@ -108,7 +94,7 @@ if( section.view.element != null ){
// Pour chaque utilisateur
for( var i = 0 ; i < user_list.length ; i++ ){
// Si doit etre visible
if( uid_list.indexOf(parseInt(user_list[i].id)) > -1 )
if( uid_list.indexOf(user_list[i].id) > -1 )
user_list[i].remClass('hidden');
// Si ne doit pas etre visible
else
@ -557,26 +543,8 @@ if( section.remove.element != null ){
// On annule l'envoi de base (PHP)
e.preventDefault();
// Si l'id n'est pas defini -> abort
if( section.remove.input.search.id.value == '' )
return;
/* (1) Create popup */
var PopupManager = new Popup();
var confirm_content = {
title: "Suppression d'utilisateur",
content: "L'utilisateur <b>"+section.remove.input.username.value+"</b> sera définitivement supprimé de la plateforme. Cette opération ne peut être annulée.",
type: "invalid",
action: "Supprimer"
};
/* (2) Ask for confirmation */
PopupManager.ask(confirm_content, function(is_confirmed){
// {2.1} If cancelled -> abort //
if( !is_confirmed )
return;
// Si l'id est defini
if( section.remove.input.search.id.value != '' ){
/* (2) On supprime l'utilisateur */
var request = {
@ -621,7 +589,7 @@ if( section.remove.element != null ){
});
});
}
}, false);
}

View File

@ -12,7 +12,7 @@
<!-- Dépendences CSS -->
<link type='text/css' rel='stylesheet' href='/css/min/reset.css' /> <!-- Reset du css natif des browsers -->
<link type='text/css' rel='stylesheet' href='/css/min/font.css' /> <!-- Positionnement global des pages -->
<link type='text/css' rel='stylesheet' href='/css/min/fonts.css' /> <!-- Positionnement global des pages -->
<link type='text/css' rel='stylesheet' href='/css/min/layout.css' /> <!-- Positionnement global des pages -->
<link type='text/css' rel='stylesheet' href='/css/min/header.css' /> <!-- Gestion du header -->
<link type='text/css' rel='stylesheet' href='/css/min/menu-side.css' /> <!-- Gestion du menu -->

View File

@ -10,7 +10,7 @@
<meta name='desctiption' content="Système de gestion des véhicules pour STEF.">
<!-- Dépendences CSS -->
<link type='text/css' rel='stylesheet' href='/css/min/font.css' /> <!-- Chargement des fonts -->
<link type='text/css' rel='stylesheet' href='/css/min/fonts.css' /> <!-- Chargement des fonts -->
<link type='text/css' rel='stylesheet' href='/css/min/reset.css' /> <!-- Reset du css natif des browsers -->
<!-- Icone -->
@ -22,8 +22,6 @@
<script type='text/javascript' src='/js/lib/min/api.js' ></script> <!-- Gestion des transactions avec le serveur -->
<script type='text/javascript' src='/js/lib/min/page-manager.js' ></script> <!-- Gestion des transactions avec le serveur -->
<script type='text/javascript' src='/serverinfo.js' ></script> <!-- Gestion dynamique des info server -->
</head>
<style type='text/css'>
body{

View File

@ -67,9 +67,9 @@
allow('file_exists')->toBeCalled()->andReturn(true);
// normally the 'module' module is always here for testing purposes
$err = ModuleFactory::getModule('documentationDefault');
$err = ModuleFactory::getModule('module');
expect($err)->not->toBeAnInstanceOf("\\error\\core\\Error");
expect($err)->not->toBeAnInstanceOf('\\error\\core\\Error');
});

View File

@ -274,7 +274,7 @@
it('fail when unknown method', function(){
allow('json_decode')->toBeCalled()->andReturn([
'mo-du_leA' => [ 'me-th_odA' => [] ],
'mo-du_leA' => [ 'POST::me-th_odA' => [] ],
'moduleB' => []
]);
@ -299,7 +299,7 @@
allow(Request::class)->toReceive('buildOptions')->andReturn(true);
allow('json_decode')->toBeCalled()->andReturn([
'mo-du_leA' => [ 'me-th_odA' => [] ],
'mo-du_leA' => [ 'POST::me-th_odA' => [] ],
'moduleB' => []
]);
@ -320,7 +320,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => []
'POST::methodA' => []
]
]);
@ -338,7 +338,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => [
'POST::methodA' => [
'permissions' => 23.2
]
]
@ -358,7 +358,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => [
'POST::methodA' => [
'permissions' => []
]
]
@ -381,7 +381,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => [
'POST::methodA' => [
'permissions' => ['a']
]
]
@ -400,7 +400,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => [
'POST::methodA' => [
'permissions' => ['a']
]
]
@ -420,7 +420,7 @@
allow('json_decode')->toBeCalled()->andReturn([
'moduleA' => [
'methodA' => [
'POST::methodA' => [
'permissions' => ['a']
]
]
@ -466,7 +466,7 @@
$this->json = [
'moduleA' => [
'methodA' => []
'POST::methodA' => []
]
];
@ -499,7 +499,7 @@
it('fail if \'parameters\' has no <string> name', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
1 => []
];
allow('json_decode')->toBeCalled()->andReturn($this->json);
@ -511,7 +511,7 @@
it('fail if \'parameters\' has no <array> specification', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => 1
];
allow('json_decode')->toBeCalled()->andReturn($this->json);
@ -523,7 +523,7 @@
it('fail if one \'parameters\' have no \'type\' clause', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => false
]
@ -537,7 +537,7 @@
it('fail if one \'parameters\' have incorrect \'type\' clause', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => false,
'type' => 12
@ -556,7 +556,7 @@
it('pass if missing optional parameter -> set to null by default', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => true,
'type' => 'text'
@ -576,7 +576,7 @@
it('fail if optional param wrong type ', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => true,
'type' => 'id'
@ -592,7 +592,7 @@
it('pass if optional param matching type ', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => true,
'type' => 'id'
@ -608,7 +608,7 @@
it('fail if required param missing ', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => false,
'type' => 'id'
@ -623,7 +623,7 @@
it('fail if required param wrong type ', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => false,
'type' => 'id'
@ -639,7 +639,7 @@
it('pass if required param matching type ', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => false,
'type' => 'id'
@ -659,7 +659,7 @@
it('fail if FILE param required + file does not exist', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'type' => 'FILE'
]
@ -674,7 +674,7 @@
it('pass if FILE param required + file exists -> create ref', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'type' => 'FILE'
]
@ -694,7 +694,7 @@
it('pass if FILE optional param missing -> null', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => true,
'type' => 'FILE'
@ -715,7 +715,7 @@
it('pass if FILE optional param + file exists -> create ref', function(){
$this->json['moduleA']['methodA']['parameters'] = [
$this->json['moduleA']['POST::methodA']['parameters'] = [
'paramName' => [
'optional' => true,
'type' => 'FILE'