Commit 1 de @dev

This commit is contained in:
xdrm-brackets 2015-10-20 22:10:38 +02:00
parent fe42829f8e
commit e9a025a5e0
43 changed files with 198 additions and 2973 deletions

77
API.js
View File

@ -1,77 +0,0 @@
/* classe API */
function APIClass(){};
APIClass.prototype = {
xhr: [], // tableau d'objets pour les requêtes ajax
/* transaction avec le serveur (API.php)
*
* @param pRequest<Object> l'objet passé en JSON à API.php
* @param pHandler<Function> fonction qui s'éxécutera lors de la réponse (1 argument -> réponse<Object>)
*
* @return answer<Object> l'objet retourné par API.php via pHandler (1er argument)
*
***************************************************************************************************
*
* @usecase
* 1. var answerObject = sendRequest(
* 2. { var1: "exemple", var2: 198294 },
* 3. function(rep){ alert(rep); }
* 4. );
* @explain
* 1. on appelle la fonction <=> on créé la requête
* 2. on passe l'objet qui sera envoyé
* 3. on passe une fonction qui utilise un argument (sera la réponse de API.php) (sous forme d'objet)
*
*/
send: function(pRequest, pHandler){
// on efface les requêtes qui sont terminées (toutes celles de this.xhr)
for( var i = 0 ; i < this.xhr.length ; i++ ){
if( this.xhr[i].readyState == 4 ) // si terminée
this.xhr = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
}
// on créé une nouvelle entrée
this.xhr.push(null);
i = this.xhr.length-1;
// création de l'objet AJAX
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
this.xhr[i] = new XMLHttpRequest();
else // IE5, IE6
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest');
console.log(pRequest);
var ptrAPI = this;
this.xhr[i].onreadystatechange = function(){
if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée
/* DEBUG : affiche la réponse BRUTE de API.php */
// console.log('API.php => '+ptrAPI.xhr[i].responseText);
console.log(JSON.parse(ptrAPI.xhr[i].responseText) );
/* si success de requête */
if( [0,200].indexOf(ptrAPI.xhr[i].status) > -1 ){ // si fichier existe et reçu
try{ pHandler( JSON.parse(ptrAPI.xhr[i].responseText) ); } // si on peut parser, on envoie
catch(e){ pHandler({request:'corrupted'}); } // sinon on envoie obj.request = 'corrupted'
}
/* sinon retourne obj.request = 'unreachable' */
else
pHandler({request: 'unreachable'});
}
}
// on créé un formulaire POST (virtuel)
var form = new FormData();
form.append('json', JSON.stringify(pRequest) ); // on créé la variable $_POST['json']=>request
this.xhr[i].open('POST', 'API.php', true);
this.xhr[i].send( form );
}
};

99
API.php
View File

@ -1,99 +0,0 @@
<?php
/* GESTION DE L'AUTHENTIFICATION - SI L'UTILISATEUR EST CONNECTÉ */
// A faire
/* si l'utilisateur est connecté */
if( true ){
$answer = new stdClass(); // on initialise la réponse (Objet vide)
/* si $_POST['json'] existe */
if( !empty($_POST) && isset($_POST['json']) ){
$request = json_decode( $_POST['json'] ); // on décode la requête
/* si le JSON n'est pas corrompu (décodable) */
if( $request != null ){ // si le json n'est pas corrompu
/* ROUTAGE (niveau 0) */
switch( $request->level_0 ){
/***************/
/* UTILISATEUR */
/***************/
case 'user':
if( isset($request->level_1) ){ include 'manager/user.php'; user_switch_level_1($request, $answer); }
else { $answer->request = 'missing_level_1'; }
break;
/***********/
/* GROUPES */
/***********/
case 'groups':
$answer->type = "group";
break;
/******/
/* UE */
/******/
case 'ues':
break;
/**********/
/* MODULE */
/**********/
case 'modules':
break;
/************/
/* CONTRÔLE */
/************/
case 'tests':
break;
/**************/
/* PARAMETRES */
/**************/
case 'settings':
break;
/***********/
/* DEFAULT */
/***********/
default:
$answer->request = 'unknown_level_0';
break;
}
if( $answer == null )
$answer->request = 'no_level_0';
}else // si json corrompu (undécodable)
$answer->request = 'jsoncorrupted';
}else // $_POST vide [OU] $_POST['json'] pas défini
$answer->request = 'nopost';
// on envoie (affiche) l'objet en JSON
echo json_encode($answer);
}
?>

View File

@ -3,9 +3,11 @@
* Positionnement global et mise en page
* -------------------------------------
* 1. Propriétés globales
* 2. MENU
* 3. CONTAINER
* 4. msgBox
* 2. HEADER
* 3. MENU
* 4. AUTH(entification)
* 5. CONTAINER
* 6. msgBox
*
*/
@ -20,19 +22,20 @@
/*** 1. Propriétés globales ***/
/******************************/
*{ /* on supprime le margin/padding par défaut */
margin : 0;
margin: 0;
padding: 0;
}
a{ text-decoration: none; color: inherit; }
/* on initialise le body avec les valeurs par défaut [compatibilité] */
body{
/* position */
display: block;
position: absolute;
top : 0;
left : 0;
width : 100%;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* background */
@ -42,8 +45,7 @@ body{
overflow-x: hidden; /* empêche la barre horizontale de scroll [précaution] */
/* foreground */
font: 18px 'Lato', 'Helvetica', 'Arial', 'sans-serif';
font-size: 16px;
font: 16px 'Open Sans', 'Helvetica Neue', 'Arial', 'sans-serif';
}
@ -52,138 +54,149 @@ body{
/***************/
/*** 2. MENU ***/
/***************/
#MENU{
/*****************/
/*** 2. HEADER ***/
/*****************/
#HEADER{
/* position */
display: flex;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 48px;
/* flex (as container) */
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
/* background */
background: #1d1d1d;
/* foreground */
font-size: 12px;
}
/***************/
/*** 3. MENU ***/
/***************/
#HEADER #MENU{
/* position */
display: flex;
position: fixed;
top : 0;
left : 0;
width : 5.5em;
height: 100%;
/* flex */
flex-direction : column;
justify-content: flex-start;
flex-wrap: nowrap; /* default, une seule colonne */
/* flex (as container) */
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
/* background */
/*background: #424c54 url(https://www.iut-tlse3.fr/static/ui/v1/icons/iut/iut.png) bottom .9em center no-repeat;*/
background: #424c54;
/* foreground */
/*font-size: 1.7vh;*/
/* z axis */
z-index: 2;
/* list */
list-style-type: none;
}
/********************/
/*** 3. CONTAINER ***/
/********************/
#CONTAINER{
/***************/
/*** 4. AUTH ***/
/***************/
#AUTH_FILTER{
/* position */
display: block;
position: absolute;
top : 0;
left : 5.5em;
width : calc( 100% - 5.5em );
min-height: 100%;
/* background */
background: #fff;
/* foreground */
/*font-size: 1.7vh;*/
/* border < inherit < hgroup */
border-color: #fff;
/* z axis */
z-index: 0;
}
/*****************/
/*** 4. MSGBOX ***/
/*****************/
#MSGBOX{
/* position */
display: block;
/*display: block;*/ display: none;
position: fixed;
top: calc( 100% - 2*1em - 1em - 1em ); /* 100% - padding - taille - marge */
left: 30%;
width: 40%;
height: 1em;
padding: 1em;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* background */
background: rgba(0,0,0,.2);
/* z axis */
z-index: 100;
}
#AUTH_FILTER.active{ display: block; }
#AUTH{
/* position */
/*display: block;*/ display: none;
position: fixed;
top: 30%;
left: calc( 50% - 500px/2 );
width: 500px;
/* z axis */
z-index: 101;
}
#AUTH_FILTER.active + #AUTH{ display: block; }
/* tout les INPUT */
#AUTH input{
/* position */
display: block;
position: relative;
top: 0;
left: 25%;
width: calc( 50% - 2*.8em );
margin-bottom: 2em;
padding: .8em;
/* border */
border-radius: 3px;
border: 1px solid transparent;
border-radius: 5px;
border: 1px solid #A1A1A1;
/* background */
background-color: #f64b2f;
/* foreground */
font-family: inherit;
transition: .2s ease-in-out;
-moz-transition: .2s ease-in-out;
-webkit-transition: .2s ease-in-out;
-ms-transition: .2s ease-in-out;
-o-transition: .2s ease-in-out;
}
/* INPUT text/password */
#AUTH input[type=text]:focus,
#AUTH input[type=password]:focus{
border-color: #21a4a8;
box-shadow: 0 0 3px #2bccd4;
}
/* SUBMIT */
#AUTH input[type=submit]{
/* position */
width: 50%;
/* foreground */
color: #fff;
text-shadow: 1px 1px 1px #d33e27;
line-height: 1em;
font-weight: bold;
transition: all 0s ease 0s, top .3s ease-in-out;
-moz-transition: all 0s ease 0s, top .3s ease-in-out;
-webkit-transition: all 0s ease 0s, top .3s ease-in-out;
-ms-transition: all 0s ease 0s, top .3s ease-in-out;
-o-transition: all 0s ease 0s, top .3s ease-in-out;
/* background */
background-color: #279cea;
/* xTra */
cursor: pointer;
}
/* LES DIFFERENTES CLASSES */
/* validation ou réussite */
#MSGBOX.success{
border-color: #689525;
background-color: #7eb62e;
text-shadow: 1px 1px 1px #689525;
#AUTH input[type=submit]:hover{
background-color: #2494de;
}
/* information */
#MSGBOX.info{
border-color: #278fd0;
background-color: #2fa9f6;
text-shadow: 1px 1px 1px #278fd0;
/********************/
/*** 5. CONTAINER ***/
/********************/
#CONTAINER{
}
/* avertissement */
#MSGBOX.warning{
border-color: #d87620;
background-color: #f68725;
text-shadow: 1px 1px 1px #d87620;
}
/* notice */
#MSGBOX.error{
border-color: #d33e27;
background-color: #f64b2f;
text-shadow: 1px 1px 1px #d33e27;
}
/* LORSQUE PAS ACTIVE */
#MSGBOX:not( [class] ), /* si n'a pas de classe */
#MSGBOX[class='']{ /* ou qu'elle est vide */
top: 100%;
transition: all 0s ease .3s, top .3s ease-in-out;
-moz-transition: all 0s ease .3s, top .3s ease-in-out;
-webkit-transition: all 0s ease .3s, top .3s ease-in-out;
-ms-transition: all 0s ease .3s, top .3s ease-in-out;
-o-transition: all 0s ease .3s, top .3s ease-in-out;
/*****************/
/*** 6. MSGBOX ***/
/*****************/
#MSGBOX{
}

View File

@ -1,4 +1,4 @@
/*
*
* Gestion complète du MENU
* -------------------------------------
@ -15,156 +15,36 @@
/*******************************************/
/*** 1. Propriétés complémentaires #MENU ***/
/*******************************************/
#MENU{}
/**************************/
/*** 2. Position textes ***/
/**************************/
#MENU li{
#HEADER #MENU a,
#HEADER a{
/* position */
display: block;
position: relative;
margin: .75em;
width: 4em; /* 5.5 - 1.5 */
height: 4em;
padding: 0 1em;
/* border */
border-radius: .3em;
/* background */
background: center center no-repeat;
background-size: auto 2.2em;
/* Xtra */
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* animation */
transition: all 0s, background-color .2s ease-in-out;
-moz-transition: all 0s, background-color .2s ease-in-out;
-webkit-transition: all 0s, background-color .2s ease-in-out;
-ms-transition: all 0s, background-color .2s ease-in-out;
-o-transition: all 0s, background-color .2s ease-in-out;
}
/*****************/
/*** 3. Icônes ***/
/*****************/
/* dernier en bas */
#MENU li:last-child{ align-self: flex-start; }
/* icônes de base */
#MENU li[data-link='home'] { background-image: url(../src/menu_icon/home_grayscale.svg); }
#MENU li[data-link='groups'] { background-image: url(../src/menu_icon/groups_grayscale.svg); }
#MENU li[data-link='ue'] { background-image: url(../src/menu_icon/ue_grayscale.svg); }
#MENU li[data-link='modules'] { background-image: url(../src/menu_icon/modules_grayscale.svg); }
#MENU li[data-link='marks'] { background-image: url(../src/menu_icon/marks_grayscale.svg); }
#MENU li[data-link='settings'] { background-image: url(../src/menu_icon/settings_grayscale.svg); }
#MENU li[data-link='auth'] { background-image: url(../src/menu_icon/auth_grayscale.svg); }
/* HOVER ou active (page courante) */
#MENU li:hover, #MENU li.active{
color: #fff;
background-color: rgba(0,0,0,.3);
}
/* icône quand HOVER ou .active */
#MENU li[data-link='home']:hover , #MENU li[data-link='home'].active { background-image: url(../src/menu_icon/home.svg); }
#MENU li[data-link='groups']:hover , #MENU li[data-link='groups'].active { background-image: url(../src/menu_icon/groups.svg); }
#MENU li[data-link='ue']:hover , #MENU li[data-link='ue'].active { background-image: url(../src/menu_icon/ue.svg); }
#MENU li[data-link='modules']:hover , #MENU li[data-link='modules'].active { background-image: url(../src/menu_icon/modules.svg); }
#MENU li[data-link='marks']:hover , #MENU li[data-link='marks'].active { background-image: url(../src/menu_icon/marks.svg); }
#MENU li[data-link='settings']:hover , #MENU li[data-link='settings'].active { background-image: url(../src/menu_icon/settings.svg); }
#MENU li[data-link='auth']:hover , #MENU li[data-link='auth'].active { background-image: url(../src/menu_icon/auth.svg); }
/* le séparateur qui remplit l'espace entre le haut et le bas */
#MENU li.fill{
flex-grow: 1;
opacity: 0;
cursor: default;
}
/*****************/
/*** 4. Labels ***/
/*****************/
#MENU li[data-text]::before{ /* affichage du texte */
content: attr(data-text);
/* position */
display: block;
position: absolute;
top: .4em;
left: 6em;
width: auto;
width: 0;
height: 3em;
padding: 0 0;
/* border */
border-radius: 5px;
/* background */
background: #232323;
border-bottom: 3px solid transparent;
/* foreground */
line-height: 3em;
color: #fff;
line-height: 48px;
text-transform: uppercase;
letter-spacing: 1px;
/* animation */
transition: .1s ease-out;
-moz-transition: .1s ease-out;
-webkit-transition: .1s ease-out;
-ms-transition: .1s ease-out;
-o-transition: .1s ease-out;
/* overflow */
overflow: hidden;
/* z axis */
z-index: -1;
/* xTra */
cursor: pointer;
}
#HEADER #MENU a:nth-child(1):hover,
#HEADER a:hover{ background-color: #6c336d; }
#HEADER #MENU a:nth-child(2):hover{ background-color: #6eab2e; }
#HEADER #MENU a:nth-child(3):hover{ background-color: #f98012; }
#HEADER #MENU a:nth-child(4):hover{ background-color: #999999; }
#HEADER #MENU a:nth-child(5):hover{ background-color: #DD9F22; }
#HEADER #MENU a:nth-child(6):hover{ background-color: #4653b4; }
#HEADER #MENU a:nth-child(7):hover{ background-color: #a62a3e; }
#HEADER #MENU a:nth-child(8):hover{ background-color: #fb4b28; }
#MENU li[data-text]::after{ /* petite flèche */
content: '';
/* position */
display: none;
position: absolute;
top: 1.16em;
left: 5.7em;
/* border */
border-style: solid;
border-width: .8em .8em .8em 0;
border-color: transparent #232323 transparent transparent;
/* animation */
transition: .2s ease-in;
-moz-transition: .2s ease-in;
-webkit-transition: .2s ease-in;
-ms-transition: .2s ease-in;
-o-transition: .2s ease-in;
/* z axis */
z-index: -1;
}
/* lors du survol */
#MENU li[data-text]:hover::before{ width: auto; left: 6em; padding: 0 1em; } /* affichage du texte */
#MENU li[data-text]:hover::after{ display: block; } /* affichage de la petite flèche
/***********************/
/* 2. Authentification */
/***********************/

View File

@ -1,4 +1,4 @@
<?php require('manager/security.php'); session_init();
<?php
@ -19,19 +19,15 @@
<meta name='desctiption' content="Système d'Information du Département Informatique" >
<!-- Dépendences CSS -->
<link type='text/css' rel='stylesheet' href='css/font.css' /> <!-- Chargement de/des police/s -->
<link type='text/css' rel='stylesheet' href='css/layout.css' /> <!-- Positionnement global des pages -->
<link type='text/css' rel='stylesheet' href='css/header.css' /> <!-- Gestion du header -->
<link type='text/css' rel='stylesheet' href='css/container.css'/> <!-- Gestion du container -->
<link type='text/css' rel='stylesheet' href='css/menu.css' /> <!-- Gestion du menu -->
<link type='text/css' rel='stylesheet' href='css/global.css' /> <!-- Style global -->
<link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<!-- Dépendences Javascript -->
<!--<script type='text/javascript' src='http://xdrm.fr/module/pageManager.min.js'></script> --><!-- Gestion des ressources/pages côté client -->
<script type='text/javascript' src='js/pageManager.js' ></script> <!-- Gestion des ressources/pages côté client -->
<script type='text/javascript' src='API.js' ></script> <!-- API client communique avec API serveur -->
<script type='text/javascript' src='js/shortcut.js' ></script> <!-- Gestion des raccourcis clavier -->
</head>
@ -40,21 +36,33 @@
<!-- HEADER DE LA PAGE -->
<div id='HEADER'>
<div id='icon' style='width:100px; height:100%; background: blue;'></div>
<!-- MENU DE LA PAGE -->
<ul id='MENU'>
<li data-link='home' data-text='Accueil' ></li>
<li data-link='groups' data-text='Groupes' ></li>
<li data-link='ue' data-text='Suivi' ></li>
<li data-link='modules' data-text='Modules' ></li>
<li data-link='marks' data-text='Notes' ></li>
<li data-link='settings' data-text='Paramètres' ></li>
<nav id='MENU'>
<a href='home.php' >Accueil </a>
<a href='groups.php' >Groupes </a>
<a href='ue.php' >Suivi </a>
<a href='modules.php' >Modules </a>
<a href='marks.php' >Notes </a>
<a href='settings.php'>Paramètres </a>
</nav>
<li class='fill'></li>
<a>Authentification</a>
<li data-link='auth' data-text='Authentification'></li>
</ul>
</div>
<div id='AUTH_FILTER'></div>
<form id='AUTH' action='' method='POST'>
<input type='text' name='username' placeholder='username'>
<input type='password' name='password' placeholder='password'>
<input type='submit' value='Connection'>
</form>
<!-- CONTENEUR DE LA PAGE -->

279
js/actionScript.js Executable file → Normal file
View File

@ -1,264 +1,21 @@
/***********************************************************
* *
* SCRIPT POST-HTML - SCRIPT PRINCIPAL *
* *
************************************************************
* *
* [0] Variables *
* [1] Gestionnaires de navigation *
* [a] pageManager.js *
* [b] API.js *
* [2] Gestion des liens *
* [a] catégories *
* [b] sous-parties *
* [3] Gestion des formulaires *
* [4] Gestion de la messageBox *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [0] VARIABLES
==============================================================*/
var msgBoxTimeout = null;
/* pageManager */
var pageM;
/* API */
var API;
/* Structure de la page */
/* VARIABLES */
var DOM = {
menu : document.getElementById('MENU'),
container : document.getElementById('CONTAINER'),
msgBox : document.getElementById('MSGBOX')
header : document.querySelector('#HEADER'),
menu : document.querySelector('#MENU'),
authBtn : document.querySelector('#HEADER > a:last-child'),
loginForm : document.querySelector('#AUTH'),
loginFltr : document.querySelector('#AUTH_FILTER'),
container : document.querySelector('#CONTAINER')
};
/* [1] GESTIONNAIRES DE NAVIGATION
==============================================================*/
/* [a] pageManager.js
==============================================================*/
pageM = new pageManager(); // instance principale
/* initialisation du gestionnaire */
pageM.setPage(null, 'page', DOM.container, ['home', 'groups', 'ue', 'modules', 'marks', 'auth', 'settings'] );
/* [b] API.js
==============================================================*/
API = new APIClass();
/* [2] GESTION DES LIENS
==============================================================*/
/* [a] CATÉGORIES
==============================================================*/
/* GESTION DES CATEGORIES (SECTIONS)
*
* @param section<Element> l'élément à activer
*
* [1] selectionne l'élément, l'affichage de la page associée est géré par pageManager.js
* [2] déselectionne l'élément précédemment selectioné
*
*/
function selectSection(section){
// si @subSection est un <Element> de type <li> qui a la propriété "data-link" [ET] section pas déjà active
if( section instanceof Element && section.tagName == 'LI' && section.dataset.hasOwnProperty('link') && section.className != 'active' ){
// on charge la page
pageM.setPage( section.dataset.link );
// on récupère la section déja selectionnée si elle existe
var last = document.querySelector('#MENU li.active');
if( last != null ) // si une section est déjà activée
last.className = ''; // on désactive la courante
section.className = 'active'; // on active @section
}else // sinon on affiche l'erreur
console.log("[selectSection_Error] - ("+section+")");
}
/* activation au chargement en fonction de la page courante de pageManager.js */
lastSection = document.querySelector('[data-link='+pageM.page+']');
lastSection.className = 'active'; // on l'active
/* Gestion des liens du menu */
DOM.menu.addEventListener('click', function(e){ selectSection( e.target ); }, false);
/* [b] SOUS-PARTIES
==============================================================*/
/* GESTION DES SOUS-PARTIES (SOUS-CATÉGORIES)
*
* @param subSection<Element> l'élément à activer
*
* [1] selectionne l'élément, l'affichage de la page associée est géré en CSS3
* [2] déselectionne l'élément précédemment selectioné
*
*/
function selectSubSection(subSection){
// si @subSection est un <Element> de type HGROUP [ET]
if( subSection instanceof Element && subSection.tagName == 'HGROUP' ){
if( subSection.className != 'active' ){ // si @subSection pas déjà active
// on récupère la sous-partie selectionnée en cours
var last = document.querySelector('hgroup.active');
if( last != null ) // si un sous-partie est déjà selectionnée
last.className = ''; // on la désactive
subSection.className = 'active'; // on active @subSection
}else // sinon on affiche l'erreur
console.log("[selectSubSection_Error] - ("+subSection+")");
}
}
/* gestion du clic sur les sous-parties */
DOM.container.addEventListener('click', function(e){ selectSubSection(e.target); }, false);
/* [3] GESTION DES FORMULAIRES
==============================================================*/
/* INITIALISE UN FORMULAIRE POUR QU'IL INTERPRETE UN OBJET LORS DE SA SOUMISSIONS
*
* @param pForm<Element> le formulaire cible
* @param pHandler<Function> fonction exécutée lors de la soumission du formulaire
*
* [1] parcourt les élements du formulaire @pForm et active un évènement lors du "submit"
* [2] retourne l'objet à @pHandler lors du "submit"
*
*
* @example
*
* <form id='nomFormulaire'>
*
* <input type='text' name='nomDuChamp1' value='valeurDuChamp1'>
* <input type='mail' name='nomduChamp2' value='valeurDuChamp2'>
*
* <input type='submit' value='VALIDER'>
*
* </form>
*
* @explaination
*
* Lors du clic sur le bouton [VALIDER], la fonction @pHandler s'exécutera avec pour paramètre un objet
* OBJ{ id: nomFormulaire, nomDuChamp1: valeurDuChamp1, nomDuChamp2: valeurDuChamp2 }
*
*/
function initForm(pForm, pHandler){
// vérification des arguments
var isForm = pForm instanceof Element && pForm.tagName == 'FORM';
var isFunc = pHandler instanceof Function;
// si les arguments sont corrects
if( pForm instanceof Element && pForm.tagName == 'FORM' ){
var submitButton = null; // contiendra le bouton d'envoi du formulaire
for( var i = 0 ; i < pForm.children.length ; i++ )
if( pForm.children[i].type == 'button' && pForm.children[i].name == 'submit' ){
submitButton = pForm.children[i]; // on définit le bouton
break; // on sort du for
}
// on définit l'évènement de validation du formulaie
function submitEvent(){
var obj = {} // on créé l'objet qui va être envoyé
for( var i = 0 ; i < pForm.children.length ; i++ ) // on parcourt les enfants
if( pForm.children[i].tagName == 'INPUT' && pForm.children[i].name != 'submit' ) // si c'est un champ et que c'est pas le bouton
obj[pForm.children[i].name] = pForm.children[i].value; // alors on enregistre le champ dans l'objet
// on exécute la fonction @pHandler en lui envoyant les arguments
pHandler(obj);
}
// on définit l'évènement du clic sur le bouton
submitButton.addEventListener('click', function(e){
submitEvent(e.target.parentNode); // on envoie le formulaire
}, false);
// on définit l'évènement de l'appui sur la touche [ENTRER]
pForm.addEventListener('keydown', function(e){
if(e.keyCode==13) submitEvent(e.target); // si c'est la bonne touche, on submit le formulaire
}, false);
}else
console.log('[initForm_Error] - ('+pForm+', '+pHandler+')');
}
/* [4] GESTION DE LA MESSAGEBOX
==============================================================*/
function messageBox(message, type){
/* on affecte le message */
DOM.msgBox.innerHTML = message;
/* on définit le style s'il est correct */
if( ['success', 'info', 'warning', 'error'].indexOf(type) > -1 )
DOM.msgBox.className = type;
else
DOM.msgBox.className = 'info';
if( msgBoxTimeout != null ) // si une autre message box est en cours, on arrête son timeout
clearTimeout(msgBoxTimeout);
msgBoxTimeout = setTimeout( function(){
DOM.msgBox.className = '';
}, 2000);
}
/* GESTION DE L'AFFICHAGE DU LOGIN */
DOM.authBtn.addEventListener('click', function(e){ // clic sur "Authentification"
e.preventDefault(); // désactive l'action par défaut
DOM.loginFltr.className = 'active';
}, false);
/* GESTION DE CACHAGE DU LOGIN */
DOM.loginFltr.addEventListener('click', function(e){
e.preventDefault(); // désactive l'action par défaut
DOM.loginFltr.className = '';
}, false);

View File

@ -1,237 +0,0 @@
function pageManager(){};
var ptrPageManager; // pointeur global pour l'utilisation de fonctions de fonctions
pageManager.prototype = {
depJS: null, // la dépendance javascript
depCSS: null, // la dépendance css
xhr: [], // tableau d'objets pour les requêtes ajax
page: null, // l'indice de la page courante dans pagelist
vars: [], // les variables suivant le nom de la page dans l'URL
path: '', // le chemin du dossier contenant les pages (.php)
pagelist: null, // la liste des pages pouvant être chargées
container: null, // élément DOM qui contiendra le contenu des pages à charger
/* =======================================================================
Cette fonction effectue une requête Ajax (compatible à partir de IE5)
PARAMETRES:
- pLink<string> le lien à charger
- pHandler<function> une fonction qui s'éxécutera avec la réponse de la requête passée en paramètre (voir exemples dessous pour pHandler)
- pMethod<string> type de méthode, vaut 'POST' ou 'GET' et vaut 'POST' par défaut ou s'il n'est pas renseigné
- pForm<FormData> formulaire de type FormData() contenant les données à envoyer (uniquement en POST), si pForm vaut GET les données doivent être passées dans l'URL
========================================================================== */
ajax: function(pLink, pHandler, pMethod, pForm){
// on efface les requêtes qui sont terminées et on push une nouvelle
for( var i = 0 ; i < this.xhr.length ; i++ ){
if( this.xhr[i].readyState == 4 ) // si terminée
this.xhr = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
}
this.xhr.push(true);
i = this.xhr.length-1;
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
this.xhr[i] = new XMLHttpRequest();
else // IE5, IE6
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest');
var ptrPageManager = this;
this.xhr[i].onreadystatechange = function(){
if( ptrPageManager.xhr[i].readyState == 4 ) // si la requête est terminée
if( [0,200].indexOf(ptrPageManager.xhr[i].status) > -1 ) // si fichier existe et reçu
pHandler(ptrPageManager.xhr[i].responseText);
else // si code d'erreur retourne null
pHandler();
}
// gestion de la méthode
var method = ( typeof pMethod == 'string' && /^POST|GET$/i.test(pMethod) ) ? pMethod.toUpperCase() : 'POST';
// gestion du formulaire si la méthode est POST
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
this.xhr[i].open( method, pLink, true);
this.xhr[i].send( form );
},
/***************************************************** [APPLICATION] Ajax() ******************************************************/
// EXEMPLES DE FONCTIONS POUR pHandler //
// 1. var a = function(param){ alert(param); } // les deux notations 1 et 2 sont équivalents
// 2. function a(param){ alert(param); } // les deux notations 1 et 2 sont équivalents
// ajax( 'index.php', a ); // utilisation d'une fonction définie
// ajax( 'index.php', alert ); // utilisation d'une fonction prédéfinie
// ajax( 'index.php', alert, 'GET' ); // utilisation de méthode
// var fd = new FormData(); // création d'un formulaire
// fd.append('var', 100); // ajout de la variable VAR qui vaut 100
// ajax( 'index.php', alert, null, fd ); // saut de paramètre avec null + envoi formulaire
// ajax( 'index.php?var=10', alert, 'GET' ); // envoi formulaire en GET (dans l'url)
// ajax( 'index.php?var=10', alert, 'POST', fd ); // envoi formulaire en GET (dans l'url) + en POST via le formulaire FD
/* =======================================================================
Cette fonction effectue une décomposition de l'URL sur le shéma spécifié dessous
Renvoie pour http://www.exemple.com/dirA/dirB/#/NOMPAGE/VARPAGE
- null si la page n'est pas référencée dans le tableau PAGELIST
- null si le lien ne contient pas /#/NOMPAGE à la fin
- null si NOMPAGE ne contient pas uniquement : lettres, chiffres, underscore
- null si VARPAGE ne contient pas uniquement : lettres, chiffres, underscore
- un objet contenant {page: valeur, var: valeur}
========================================================================== */
explodeURL: function(url_data){
url_data = (arguments.length >= 1) ? url_data : document.URL;
// si pageList est correct et que l'URL correspond à un schéma de page => continue [sinon] return null
if( this.pagelist != null && /^(?:.+)\/#\/([a-z0-9_]+)\/?(?:\/((?:[a-z0-9_]+\/)+)\/?)?$/i.test(url_data) ){
// si la page récupérée dans l'url est dans la liste => renvoi de l'objet [sinon] null
var vars = RegExp.$2.split('/');
while( vars[vars.length-1] == '' ) // on supprime les dernières entrées vides
vars.pop();
return ( this.pagelist.indexOf(RegExp.$1) > -1 ) ? {page: RegExp.$1, var: vars} : null;
}else
return null;
},
/* =======================================================================
Cette fonction ajoute des dépendances (un js et un css) situés dans le répertoire des pages.
pageDir/
_JS/
page1.js
page2.js
_CSS/
page1.css
page2.css
========================================================================== */
loadDependencies: function(){
// si depCSS est un élément du DOM c'est à dire qu'il contient le fichier de la page précédente et qu'il est enfant de <head>, on le détruit
if( typeof this.depCSS == 'object' && this.depCSS instanceof Element && this.depCSS.parentNode == document.head )
document.head.removeChild( this.depCSS );
// si depJS est un élément du DOM c'est à dire qu'il contient le fichier de la page précédente, on le détruit
if( typeof this.depJS == 'object' && this.depJS instanceof Element && this.depJS.parentNode == document.head )
document.head.removeChild( this.depJS );
ptrPageManager = this;
// si le fichier css existe
this.ajax(this.path+'/'+'_CSS'+'/'+this.page+'.css', function(e){
if( e != null ){ // on charge la dépendance CSS si le fichier existe
ptrPageManager.depCSS = document.createElement('link');
ptrPageManager.depCSS.rel = 'stylesheet';
ptrPageManager.depCSS.type = 'text/css';
ptrPageManager.depCSS.href = ptrPageManager.path+'/'+'_CSS'+'/'+ptrPageManager.page+'.css';
document.head.appendChild(ptrPageManager.depCSS);
}else
console.log('[loadDependencies_Error] - ('+ptrPageManager.path+'/'+'_CSS'+'/'+ptrPageManager.page+'.css'+')');
});
// si le fichier js existe
this.ajax(this.path+'/'+'_JS'+'/'+this.page+'.js', function(e){
if( e != null ){ // on charge la dépendance JS si le fichier existe
ptrPageManager.depJS = document.createElement('script');
ptrPageManager.depJS.type = 'text/javascript';
ptrPageManager.depJS.src = ptrPageManager.path+'/'+'_JS'+'/'+ptrPageManager.page+'.js';
document.head.appendChild(ptrPageManager.depJS);
}else
console.log('[loadDependencies_Error] - ('+ptrPageManager.path+'/'+'_JS'+'/'+ptrPageManager.page+'.js'+')');
});
},
/* =======================================================================
Cette fonction est celle qui gère les 2 autres et celle que l'utilisateur utilisera
PARAMETRES:
- pName<string> le nom de la page à charger (lettres, chiffres, underscore) (*)
- pPath<string> chemin (relatif ou absolu) du dossier contenant les pages de même nom de fichier que le nom (extension .php)
- pContainer<Element> l'élément du DOM qui contiendra la page chargée (**)
- pPageList<Array<string>> tableau contenant la liste des pages sous forme de chaînes de caractères (**) (***)
* Le chemin du dossier sans le '/' final si c'est le dossier actuel le chemin est une chaîne vide
Si le dossier est 'page' et que l'on cherche la page 'accUe1l', la requête sera vers 'page/accUe1l.php'
le nom de la page est sensible à la casse
** 1. pPageList et pContainer doivent être mis en paramètres uniquement à la première utilisation
et la première utilisation doit se faire au chargement de la page car elle permetra
de mettre l'URL à jour et/ou charger la page de l'URL
*** la première page du tableau est la page par défaut (qui est chargée si l'URL ne contient
pas la page ou si la page de l'URL ne correspond à aucune page de la liste)
========================================================================== */
setPage: function(pName, pPath, pContainer, pPageList){
// liste de pages si c'est un tableau
var pageList = ( typeof pPageList == 'object' && pPageList instanceof Array ) ? pPageList : null; // si this.pagelist n'est pas overwrite il vaut null
if( pageList != null ){ // si c'est un tableau
for( var i = 0 ; i < pageList.length ; i++ ){ // on parcourt tout les éléments pour vérifier que chaque élément ne contient que : lettres, chiffres, underscore [non]> pageList = null
pageList = ( typeof pageList[i] == 'string' && /^[a-z0-9_]+$/i.test(pageList[i]) ) ? pageList : null;
if( pageList == null ) break; // si le tableau est null stoppe la boucle
}
}
/* on attribue la variable temporaire pageList à l'attribut de l'objet si la variable pageList temporaire n'est pas nulle */
this.pagelist = ( pageList != null ) ? pageList : this.pagelist;
// affecte à l'attribut page la page par défaut (premier élément de pagelist)
this.page = this.pagelist[0];
// affecte pPath à l'attribut path s'il est renseigné
this.path = ( typeof pPath == 'string' ) ? pPath : this.path;
/* on attribue le paramètre pContainer à l'attribut si il est spécifié */
this.container = ( typeof pContainer == 'object' && pContainer instanceof Element ) ? pContainer : this.container;
// si this.pagelist && this.container ne sont pas null &&
if( this.pagelist != null && this.container != null ){
// si le pName est renseigné et qu'il est dans pagelist
if( typeof pName == 'string' && this.pagelist.indexOf(pName) > -1 ){
// affecte pName à l'attribut page
this.page = pName;
// charge le contenu de la page dans le container
var ptrPageManager = this;
// formulaire POST
var fd = new FormData();
for( var i = 0 ; i < this.vars.length ; i++ )
fd.append(this.vars[i], null);
this.ajax(this.path+'/'+this.page+'.php', function(e){
ptrPageManager.container.innerHTML = e;
ptrPageManager.loadDependencies();
}, 'POST', fd);
// change l'URL en conséquences(stateObj, titre, url)
if( this.vars.length > 0 ) // si il y a des variables
window.history.pushState(null, this.page, '#/'+this.page+'/'+this.vars.join('/')+'/');
else // s'il n'y en a pas
window.history.pushState(null, this.page, '#/'+this.page+'/');
}else{ // si la page n'est pas spécifiée ou qu'elle n'est pas dans la liste des pages
var urlGet = this.explodeURL();
// si on a récupéré le numéro de la page dans l'URL et qu'elle fait partie de la liste des pages
if( urlGet != null ){
this.page = urlGet.page;
// charge le contenu de la page dans le container
var ptrThis = this;
// formulaire POST
var fd = new FormData();
this.vars.length = 0;
for( var i = 0 ; i < urlGet.var.length ; i++ ){ // replacing object variables with explodeURL variables
this.vars[i] = urlGet.var[i];
fd.append(this.vars[i], null);
}
this.ajax(this.path+'/'+this.page+'.php', function(e){
ptrThis.container.innerHTML = e;
ptrThis.loadDependencies();
}, 'POST', fd);
// change l'URL en conséquences(stateObj, titre, url)
if( this.vars.length > 0 ) // si il y a des variables
window.history.pushState(null, this.page, '#/'+this.page+'/'+this.vars.join('/')+'/');
else // s'il n'y en a pas
window.history.pushState(null, this.page, '#/'+this.page+'/');
}else // si l'url ne contient rien, on charge la page par défaut
this.setPage(this.pagelist[0]);
}
}else
console.log('pagelist et container manquant');
}
}

View File

@ -1,145 +0,0 @@
/* Retourne le keyCode correspondant à la chaîne
*
* @param keyStore enchaînement de touches sous forme de string
* @param handler function qui s'éxécute lors du raccourci
*
* return keyCode le code de la touche correspondante
*/
function strToKeyCode(str){
// on enregistre le keyCode du premier caractère
var keyCode = str.toUpperCase().charCodeAt(0);
// s'il s'agit d'un caractère uniquement (entre "a" et "z")
if( str.length == 1 && keyCode >= 65 && keyCode <= 90 )
return keyCode; // on retourne le keyCode associé
else
switch( str ){
case 'ctrl': return 17; break;
case 'maj': return 16; break;
case 'alt': return 18; break;
case 'tab': return 9; break;
}
return null;
}
var shortcutList = []; // contient les combinaisons de touches
var shortcutStep = []; // contient l'avancée d'un raccourcis
/* Gestion des raccourcis claviers
*
* @param keyStore enchaînement de touches sous forme de string
* @param handler function qui s'éxécute lors du raccourci
*
*/
function Shortcut(keyStore, handler){
var splittedString = keyStore.toLowerCase().split('+'), // découpe la chaîne (en minuscule) par "+"
splittedKeyCode = new Array(); // contiendra les keyCode de chaque touche
// pour chaque touche, on récupère le keyCode
for( var i = 0 ; i < splittedString.length ; i++ )
splittedKeyCode[i] = strToKeyCode( splittedString[i] ); // on enregistre le keyCode correspondant
// on ajout à la liste globale
eventIndex = shortcutList.length;
shortcutList.push( splittedKeyCode );
// on initialise l'avancement
shortcutStep[eventIndex] = 0;
// creation de la fonction d'évènement
shortcutList[eventIndex].push( function(k, f, h){ /* k<keyCode> ; f<eventIndex> ; h<handler()> */
// on cherche l'avancée
var step = shortcutStep[f];
// on regarde si la touche est bonne
if( shortcutList[f][step] == k ){ // si c'est la touche suivante
if( step >= shortcutList[f].length-2 ){ // si c'était la dernière touche
// on initialise le tableau
for( var i = 0 ; i < shortcutStep[f].length ; i++ )
shortcutStep[f][i] = 0;
h(); // EXECUTION DE : handler();
}else // sinon on incrémente l'avancée
shortcutStep[f]++;
}else // si c'est pas la bonne touche, on réinitialise le tableau
shortcutStep[f] = 0;
});
console.log( shortcutList );
// création de l'évènement
window.addEventListener(
'keydown',
function(e){ e.preventDefault(); shortcutList[eventIndex][shortcutList[eventIndex].length-1](e.keyCode, eventIndex, handler); },
false
);
}
/* quand on lâche une touche, tout les raccourcis s'effacent */
window.addEventListener('keyup', function(){
for( var i = 0 ; i < shortcutStep.length ; i++ )
shortcutStep[i] = 0;
}, false);
/*** UTILISATION ***/
// Shortcut(
// 'ctrl+s',
// function(){ alert('sauvegardé'); }
// );

View File

@ -1,18 +0,0 @@
<?php
class DataBase{
/* ATTRIBUTS */
private $host;
private $dbname;
private $username;
private $password;
private $connection;
public function __construct($host, $dbname, $username, $password){
this->connection = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
}
}
?>

View File

@ -1,76 +0,0 @@
<?php
/***********************************************************
* *
* MANAGER DE SECURITE GENERALE ET SPECIFIQUE *
* *
************************************************************
* *
* [0] Constantes *
* [1] Session & redirection *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [0] CONSTANTES
============================================================*/
function getPermissions(){ return array('student', 'teacher', 'master', 'admin'); }
/* [1] SESSIONS & REDIRECTION
============================================================*/
/* ETABLIT UNE SESSION SÉCURISÉE
*
* [1] Définit un id_session (PHPSESSID) unique et propre à une connection
* + propre à un navigateur (navigateur, version, OS, système X, ...)
* + propre à un accès (ip publique = box)
*
* [2] Démarre la session
*
*/
function session_init(){
session_id( // on définit le session id
sha1( // qui est un Hash MD5
$_SERVER['HTTP_USER_AGENT']. // qui correspond aux infos système disponibles de l'utilisateur
$_SERVER['REMOTE_ADDR'] // et de son ip publique
)
);
session_start(); // on démarre la session
$PERMISSIONS = getPermissions();
// on vérifie l'intégrité des variables session
$usernameDefinedProperly = isset($_SESSION['username']) && !empty($_SESSION['username']) && gettype($_SESSION['username']) == 'string' && strlen($_SESSION['username']) > 0;
$permissionsDefinedProperly = isset($_SESSION['permissions']) && !empty($_SESSION['permissions']) && gettype($_SESSION['permissions']) == 'string' && strlen($_SESSION['permissions']) > 0;
// si les variables sessions ne sont pas toutes les 2 correctes
if( !($usernameDefinedProperly && $permissionsDefinedProperly) ){
$_SESSION['username'] = null; // on les initialise à NULL
$_SESSION['permissions'] = null;
}
}
?>

View File

@ -1,135 +0,0 @@
<?php require('manager/security.php'); session_init();
/***********************************************************
* *
* MANAGER DES UTILISATEURS *
* *
************************************************************
* *
* [0] Constantes *
* [1] ROUTAGE de niveau 1 *
* [2] Authentification *
* [a] userlist *
* [b] connection *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [1] ROUTAGE DE NIVEAU 1
============================================================*/
function user_switch_level_1($request, $answer){
switch( $request->level_1 ){
/****************************/
/* authentification (login) */
/****************************/
case 'authentification':
$areSetParam = isset($request->username) && isset($request->password); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->username) && is_string($request->password); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->username) > 0 && strlen($request->password) > 0; // d'au moins 1 caractère
if( $areSetParam && $typeOkParam && $nEmptyParam )
$answer->request = user_authentification($request->username, $request->password);
else{
if ( !$areSetParam ) $answer->request= 'missing_param';
elseif( !$typeOkParam ) $answer->request = 'wrong_type';
else $answer->request = 'empty_param';
}
break;
/***********/
/* DEFAULT */
/***********/
default:
$answer->request = 'unknown_level_1';
break;
}
}
/* [2] AUTHENTIFICATION
============================================================*/
/* [a] userlist */
function user_getUserList(){
$userlistFile = file_get_contents("src/userlist.json");
return json_decode( $userlistFile );
}
/* [b] CONNECTION
========================================================*/
/* GESTION DE L'AUTHENTIFICATION D'UN UTILISATEUR
*
* @param username<String> Identifiant de l'utilisateur
* @param password<String> Mot de passe de l'utilisateur
*
* si @username est référencé et que le mot de passe associé vaut @password
* alors @return TRUE sinon FALSE
* + mise ajout à @answer
*
* Les variables sessions suivantes sont définies :
* - $_SESSION['permissions']
* - $_SESSION['userid']
* - $_SESSION['username']
*
* @return Boolean true si l'utilisateur est ok
*/
function user_authentification($username, $password){
// [1] On récupère la liste d'utilisateurs (/src/userlist.json)
$userList = user_getUserList();
// [2] On check l'existence de l'utilisateur
if( isset($userList->{$username}) ){
// [3] On check le mot de passe
if( $userList->{$username}->password == $password ){
// on définit les variables session
$_SESSION['username'] = $username;
$_SESSION['permissions'] = $userList->{$username}->permissions;
return 'success';
}else
return 'wrong_password';
}else
return 'unknown_user';
}
?>

View File

@ -1,80 +0,0 @@
/***********************************************************
* *
* SCRIPT LOCAL DE LA PAGE D'AUTHENTIFICATION *
* *
************************************************************
* *
* [0] Variables *
* [1] Gestion des formulaires *
* [a] Gestion des réponses *
* [b] Initialisation des formulaires *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [0] Variables
==============================================================*/
var subSections = document.querySelectorAll('hgroup');
/* [1] Gestion des formulaires
==============================================================*/
/* [a] Gestion des réponses
==============================================================*/
/* GESTION DU COMPORTEMENT EN FONCTION DE LA REPONSE POUR LE [LOGIN]
*
* @param response
*
* Gestion de toutes les réponse possibles avec une "messageBox" ou de redirection
*
*/
function manageAuthentificationResponse(response){
switch( response.request ){
case 'success':
messageBox('Vous êtes maintenant connecté', 'success'); // on affiche le message
selectSection( document.querySelector('#MENU li:first-child') ); // on redirige vers la page d'accueil
break;
// case 'missing_param': messageBox('Un des champs requis n\'est pas présent', 'warning'); break;
// case 'empty_param': messageBox('Un des champs requis est vide', 'warning'); break;
// case 'unknown_user': messageBox('Nom d\'utilisateur inconnu', 'error'); break;
// case 'wrong_password': messageBox('Mot de passe incorrect', 'error'); break;
case 'empty_param': case 'missing_param': case 'unknown_user': case 'wrong_password':
messageBox('Identifiants incorrects', 'error');
break;
default:
messageBox('Erreur interne', 'error');
break;
}
}
/* [b] Initialisation des formulaires
==============================================================*/
initForm( // initialisation du formulaire de connection
document.querySelector('#user'), // formulaire (élément DOM)
function(request){ // handler
// ajout d'informations à la requête
request.level_0 = 'user';
request.level_1 = 'authentification';
API.send(request, function(response){ manageAuthentificationResponse(response); });
}
);

View File

@ -1,43 +0,0 @@
var subSections = document.querySelectorAll('hgroup');
// si aucune sous-partie n'est active, on active la première
if( document.querySelector('#CONTAINER hgroup.active') == null )
selectSubSection( document.querySelector('#CONTAINER hgroup') );
/*************************************************/
/****************** EXEMPLE API ******************/
/*************************************************/
/* objet envoyé à API.php */
var request = {
level_0: 'groups',
level_1: 'visualiser',
group : 'ego'
};
// console.log( request );
// envoi de la requête
// @ on envoie l'objet
// @ quand réception: affichage de l'objet reçu
//
API.send(request, function(){} );

View File

@ -1,42 +0,0 @@
<?php require('../manager/security.php'); session_init();
/****************************/
/* FORMULAIRE DE CONNECTION */
/****************************/
?>
<hgroup class='active'>Connection</hgroup>
<section>
<form id='user' style='width: 20em; margin-left: calc(50% - 20em/2);'>
<input type='text' name='username' placeholder='username' class='user' style='width:calc( 100% - 2*1.8em );'>
<input type='password' name='password' placeholder='password' style='width:calc( 100% - 2*1.8em );'>
<input type='button' name='submit' value='Connection' style='width:50%;margin-left: 25%;'>
</form>
</section>
<?php
/***************************/
/* VISUALISATION DU PROFIL */
/***************************/
if( isset($_SESSION['permissions']) && $_SESSION['permissions'] != null ){ ?>
<hgroup>Mon Profil</hgroup>
<section>
username = <?php echo $_SESSION['username']; ?><br>
droits = <?php echo $_SESSION['permissions']; ?>
</section>
<?php } ?>

View File

@ -1 +0,0 @@
career.php

View File

@ -1,145 +0,0 @@
<?php require('../manager/security.php'); session_init();
/****************************************
* *
* SECTION "GROUPES" *
* *
*****************************************
*
* [1] Mon Groupe (studend + prof)
* [2] Tout les groupes (tous connecté)
* [3] Modifier les groupes (admin)
* [4] Répartir les élèves (admin)
*
*****************************************/
/* [1] Mon Groupe (eleve)
============================================*/
if( $_SESSION['permissions'] == 'student' ){ ?>
<hgroup class='active'>Mon Groupe</hgroup>
<section>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Blablabla</th>
</tr>
</thead>
<tbody>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
</tr>
</tbody>
</table>
</section>
<?php } ?>
<?php if( $_SESSION['permissions'] == 'teacher' ){ ?>
<hgroup class='active'>Mes Groupe</hgroup>
<section>
<table>
<thead>
<tr>
<th>Nom du groupe</th>
<th>Nombre d'élèves</th>
<th>Nombre de modules</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>30</td>
<td>2</td>
</tr>
<tr>
<td>B</td>
<td>28</td>
<td>3</td>
</tr>
<tr>
<td>D</td>
<td>32</td>
<td>1</td>
</tr>
<tr>
<td>F</td>
<td>21</td>
<td>2</td>
</tr>
</tbody>
</table>
</section>
<?php } ?>
<hgroup>Tout les groupes</hgroup>
<section>
Tout les groupes<br/>
bla<br/>
bla<br/>
</section>
<hgroup>Mon Groupe 2</hgroup>
<section>
Mon Groupe 2<br/>
bla<br/>
bla<br/>
</section>

View File

@ -1,44 +0,0 @@
<?php require('../manager/security.php'); session_init();
/****************************************
* *
* SECTION "GROUPES" *
* *
*****************************************
*
* [1] Présentation (studend + prof)
* [2] Tout les groupes (tous connecté)
* [3] Modifier les groupes (admin)
* [4] Répartir les élèves (admin)
*
*****************************************/
if( $_SESSION['permissions'] )
?>
<hgroup class='active'>Présentation</hgroup>
<section>
<strong>Version 0.1</strong><br><br>
Bienvenue sur la plateforme de gestion des élèves.<br/><br/>
Seuls les membres du département y possède un accès, c'est à dire:<br/>
<ul style='margin-left: 2em;list-style: none;'>
<li>- Elèves</li>
<li>- Enseignants</li>
<li>- Personnel administratif</li>
</ul>
Si vous faite partie de cette liste et que vous n'avez pas de compte, veuillez envoyer une requête au chef du département: Monsieur. Max Chevalier.
</section>
<hgroup>Qui peut avoir accès à la plateforme</hgroup>
<section>
blabla
</section>

View File

@ -1 +0,0 @@
Notes ici !!!

View File

@ -1,4 +0,0 @@
<?php require('../manager/security.php'); session_init(); ?>
modules.php

View File

@ -1 +0,0 @@
semestre.php

View File

@ -1 +0,0 @@
settings.php

View File

@ -1 +0,0 @@
ue.php

View File

@ -1 +0,0 @@
<?xml version="1.0" ?><svg height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><path d="M10 34v4h28v-4h-28zm9-8.4h10l1.8 4.4h4.2l-9.5-22h-3l-9.5 22h4.2l1.8-4.4zm5-13.64l3.74 10.04h-7.48l3.74-10.04z"/><path d="M0 0h48v48h-48z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 271 B

View File

@ -1,59 +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="48"
viewBox="0 0 48 48"
width="48"
id="svg3035"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="default_grayscale.svg">
<metadata
id="metadata3045">
<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="defs3043" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="789"
inkscape:window-height="480"
id="namedview3041"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="10"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="svg3035" />
<path
d="M10 34v4h28v-4h-28zm9-8.4h10l1.8 4.4h4.2l-9.5-22h-3l-9.5 22h4.2l1.8-4.4zm5-13.64l3.74 10.04h-7.48l3.74-10.04z"
id="path3037"
style="fill:#757575;fill-opacity:1" />
<path
d="M0 0h48v48h-48z"
fill="none"
id="path3039" />
</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"
enable-background="new 0 0 24 24"
id="Layer_1"
version="1.0"
viewBox="0 0 24 24"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="100%"
height="100%"
sodipodi:docname="password.svg"><metadata
id="metadata4501"><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="defs4499" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="747"
inkscape:window-height="480"
id="namedview4497"
showgrid="false"
inkscape:zoom="9.8333333"
inkscape:cx="-4.322034"
inkscape:cy="12"
inkscape:window-x="10"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><g
id="g3176"
transform="matrix(0.9,0,0,0.9,1.2,1.2)"><path
id="path4493"
d="M 9,2 C 5.1,2 2,5.1 2,9 c 0,3.9 3.1,7 7,7 3.9,0 7,-3.1 7,-7 C 16,5.1 12.9,2 9,2 z M 7.5,10 C 6.1,10 5,8.9 5,7.5 5,6.1 6.1,5 7.5,5 8.9,5 10,6.1 10,7.5 10,8.9 8.9,10 7.5,10 z"
inkscape:connector-curvature="0" /><path
id="path4495"
d="m 15,11 -4,4 2,2 v 0 h 2 v 2 l 0,0 h 2 v 2 l 0.7,0.7 c 0.2,0.2 0.4,0.3 0.7,0.3 H 21 c 0.6,0 1,-0.4 1,-1 v -2.6 c 0,-0.3 -0.1,-0.5 -0.3,-0.7 L 15,11 z"
inkscape:connector-curvature="0" /></g></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

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 24 24"
id="Layer_1"
version="1.0"
viewBox="0 0 24 24"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="100%"
height="100%"
sodipodi:docname="password_grayscale.svg"><metadata
id="metadata4501"><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="defs4499" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="789"
inkscape:window-height="480"
id="namedview4497"
showgrid="false"
inkscape:zoom="9.8333333"
inkscape:cx="12"
inkscape:cy="12"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><g
id="g3137"
transform="matrix(0.9,0,0,0.9,1.2,1.2)"><path
style="fill:#757575;fill-opacity:1"
id="path4493"
d="M 9,2 C 5.1,2 2,5.1 2,9 c 0,3.9 3.1,7 7,7 3.9,0 7,-3.1 7,-7 C 16,5.1 12.9,2 9,2 z M 7.5,10 C 6.1,10 5,8.9 5,7.5 5,6.1 6.1,5 7.5,5 8.9,5 10,6.1 10,7.5 10,8.9 8.9,10 7.5,10 z"
inkscape:connector-curvature="0" /><path
style="fill:#757575;fill-opacity:1"
id="path4495"
d="m 15,11 -4,4 2,2 v 0 h 2 v 2 l 0,0 h 2 v 2 l 0.7,0.7 c 0.2,0.2 0.4,0.3 0.7,0.3 H 21 c 0.6,0 1,-0.4 1,-1 v -2.6 c 0,-0.3 -0.1,-0.5 -0.3,-0.7 L 15,11 z"
inkscape:connector-curvature="0" /></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,59 +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 48 48"
height="48px"
id="Layer_1"
version="1.1"
viewBox="0 0 48 48"
width="48px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="user.svg"><metadata
id="metadata3897"><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="defs3895" /><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="namedview3893"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="-8.6440676"
inkscape:cy="24"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g3883"
inkscape:snap-page="true" /><g
id="g3883"><g
id="g3885"
transform="matrix(1.4565369,0,0,1.4565369,-10.956886,-15.211429)"><circle
cx="24"
cy="18.796"
r="5.0840001"
id="circle3887"
sodipodi:cx="24"
sodipodi:cy="18.796"
sodipodi:rx="5.0840001"
sodipodi:ry="5.0840001"
style="fill:#231f20"
d="m 29.084,18.796 c 0,2.807815 -2.276184,5.084 -5.084,5.084 -2.807816,0 -5.084,-2.276185 -5.084,-5.084 0,-2.807816 2.276184,-5.084001 5.084,-5.084001 2.807816,0 5.084,2.276185 5.084,5.084001 z" /><path
d="M 30.943,25.688 H 17.056 c -0.904,0 -1.638,0.733 -1.638,1.638 v 10.337 c 2.501,1.554 5.443,2.467 8.605,2.467 3.142,0 6.066,-0.902 8.559,-2.439 V 27.326 c 0,-0.904 -0.734,-1.638 -1.639,-1.638 z"
id="path3889"
inkscape:connector-curvature="0"
style="fill:#231f20" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,61 +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 48 48"
height="48px"
id="Layer_1"
version="1.1"
viewBox="0 0 48 48"
width="48px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="user_grayscale.svg"><metadata
id="metadata3897"><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="defs3895" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="789"
inkscape:window-height="480"
id="namedview3893"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="812"
inkscape:window-y="292"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1"
inkscape:snap-page="true" /><g
id="g3883"
style="fill:#757575;fill-opacity:1"
transform="matrix(1.4565369,0,0,1.4565369,-10.956886,-15.211429)"><g
id="g3885"
style="fill:#757575;fill-opacity:1"><circle
cx="24"
cy="18.796"
r="5.0840001"
id="circle3887"
style="fill:#757575;fill-opacity:1"
d="m 29.084,18.796 c 0,2.807815 -2.276184,5.084 -5.084,5.084 -2.807816,0 -5.084,-2.276185 -5.084,-5.084 0,-2.807816 2.276184,-5.084001 5.084,-5.084001 2.807816,0 5.084,2.276185 5.084,5.084001 z"
sodipodi:cx="24"
sodipodi:cy="18.796"
sodipodi:rx="5.0840001"
sodipodi:ry="5.0840001" /><path
d="M 30.943,25.688 H 17.056 c -0.904,0 -1.638,0.733 -1.638,1.638 v 10.337 c 2.501,1.554 5.443,2.467 8.605,2.467 3.142,0 6.066,-0.902 8.559,-2.439 V 27.326 c 0,-0.904 -0.734,-1.638 -1.639,-1.638 z"
id="path3889"
style="fill:#757575;fill-opacity:1"
inkscape:connector-curvature="0" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,53 +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 32 32"
height="32px"
id="svg2"
version="1.1"
viewBox="0 0 32 32"
width="32px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="auth.svg"><metadata
id="metadata15"><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="defs13" /><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="namedview11"
showgrid="false"
inkscape:zoom="14.75"
inkscape:cx="-30.821772"
inkscape:cy="18.025372"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g7" /><g
id="background"><rect
fill="none"
height="32"
width="32"
id="rect4" /></g><g
id="group_x5F_full"><g
id="g7"><path
d="m 16,8 c 1.657,0 3,-1.343 3,-3 0,-1.657 -1.343,-3 -3,-3 -1.657,0 -3,1.343 -3,3 0,1.657 1.343,3 3,3 z m 6,3 c 0,0 0,-2 -2,-2 -0.5,0 -8,0 -8,0 0,0 -2,0 -2,2 l 0,7 c 0,2 2,2 2,2 l 0,10 8,0 0,-10 c 0,0 2,0 2,-2 0,-2 0,-7 0,-7 z"
id="path9"
style="fill:#ffffff;fill-opacity:1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssscscssccccsc" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,53 +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 32 32"
height="32px"
id="svg2"
version="1.1"
viewBox="0 0 32 32"
width="32px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="groups.svg"><metadata
id="metadata15"><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="defs13" /><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="namedview11"
showgrid="false"
inkscape:zoom="14.75"
inkscape:cx="8.6358548"
inkscape:cy="18.025372"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g7" /><g
id="background"><rect
fill="none"
height="32"
width="32"
id="rect4" /></g><g
id="group_x5F_full"><g
id="g7"><path
d="m 16,8 c 1.657,0 3,-1.343 3,-3 0,-1.657 -1.343,-3 -3,-3 -1.657,0 -3,1.343 -3,3 0,1.657 1.343,3 3,3 z m 6,3 c 0,0 0,-2 -2,-2 -0.5,0 -8,0 -8,0 0,0 -2,0 -2,2 l 0,7 c 0,2 2,2 2,2 l 0,10 8,0 0,-10 c 0,0 2,0 2,-2 0,-2 0,-7 0,-7 z"
id="path9"
style="fill:#60676d;fill-opacity:1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssscscssccccsc" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

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 32 32"
height="32px"
id="svg2"
version="1.1"
viewBox="0 0 32 32"
width="32px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="groups.svg"><metadata
id="metadata15"><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="defs13" /><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="namedview11"
showgrid="false"
inkscape:zoom="7.375"
inkscape:cx="-10.305085"
inkscape:cy="16"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g7" /><g
id="background"><rect
fill="none"
height="32"
width="32"
id="rect4" /></g><g
id="group_x5F_full"><g
id="g7"><path
d="M8,20c0-2,0-10,0-10s0.005-0.45,0.239-1C6.16,9,4,9,4,9s-2,0-2,2v7c0,2,2,2,2,2v10h6v-8C10,22,8,22,8,20z M8,8 c0.52,0,1.001-0.144,1.427-0.376c0.059-0.036,0.125-0.068,0.188-0.103C10.446,6.988,11,6.061,11,5c0-1.657-1.343-3-3-3 S5,3.343,5,5S6.343,8,8,8z M28,9h-4.238C23.995,9.55,24,10,24,10s0,8,0,10s-2,2-2,2v8h6V20c0,0,2,0,2-2s0-7,0-7S30,9,28,9z M22.38,7.519c0.065,0.035,0.134,0.068,0.194,0.105C23,7.856,23.48,8,24,8c1.657,0,3-1.343,3-3s-1.343-3-3-3s-3,1.343-3,3 C21,6.059,21.552,6.985,22.38,7.519z M16,8c1.657,0,3-1.343,3-3s-1.343-3-3-3s-3,1.343-3,3S14.343,8,16,8z M22,11c0,0,0-2-2-2 c-0.5,0-8,0-8,0s-2,0-2,2v7c0,2,2,2,2,2v10h8V20c0,0,2,0,2-2S22,11,22,11z"
id="path9"
style="fill:#ffffff;fill-opacity:1" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

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 32 32"
height="32px"
id="svg2"
version="1.1"
viewBox="0 0 32 32"
width="32px"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="1445005302_group_full.svg"><metadata
id="metadata15"><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="defs13" /><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="namedview11"
showgrid="false"
inkscape:zoom="7.375"
inkscape:cx="-10.305085"
inkscape:cy="16"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g7" /><g
id="background"><rect
fill="none"
height="32"
width="32"
id="rect4" /></g><g
id="group_x5F_full"><g
id="g7"><path
d="M8,20c0-2,0-10,0-10s0.005-0.45,0.239-1C6.16,9,4,9,4,9s-2,0-2,2v7c0,2,2,2,2,2v10h6v-8C10,22,8,22,8,20z M8,8 c0.52,0,1.001-0.144,1.427-0.376c0.059-0.036,0.125-0.068,0.188-0.103C10.446,6.988,11,6.061,11,5c0-1.657-1.343-3-3-3 S5,3.343,5,5S6.343,8,8,8z M28,9h-4.238C23.995,9.55,24,10,24,10s0,8,0,10s-2,2-2,2v8h6V20c0,0,2,0,2-2s0-7,0-7S30,9,28,9z M22.38,7.519c0.065,0.035,0.134,0.068,0.194,0.105C23,7.856,23.48,8,24,8c1.657,0,3-1.343,3-3s-1.343-3-3-3s-3,1.343-3,3 C21,6.059,21.552,6.985,22.38,7.519z M16,8c1.657,0,3-1.343,3-3s-1.343-3-3-3s-3,1.343-3,3S14.343,8,16,8z M22,11c0,0,0-2-2-2 c-0.5,0-8,0-8,0s-2,0-2,2v7c0,2,2,2,2,2v10h8V20c0,0,2,0,2-2S22,11,22,11z"
id="path9"
style="fill:#60676d;fill-opacity:1" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
width="20.5585mm"
height="23.953442mm"
viewBox="0 0 72.845081 84.874394"
id="svg4286"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="icon_grayscale.svg"
inkscape:export-filename="/home/xdrm/Bureau/GRAPHISM/logo/flask100.png"
inkscape:export-xdpi="123.54987"
inkscape:export-ydpi="123.54987">
<defs
id="defs4288" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="48.184781"
inkscape:cy="27.605616"
inkscape:document-units="px"
inkscape:current-layer="g4521-8"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1056"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-page="true"
inkscape:snap-nodes="true" />
<metadata
id="metadata4291">
<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>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(15.022256,-191.80268)">
<g
id="g4517"
transform="translate(-609.72838,51.305182)">
<g
id="g4519"
transform="matrix(4.0416382,0,0,4.0416382,422.29019,-4060.1699)">
<g
id="g4191"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374"
style="fill:#ababab;fill-opacity:1" />
<g
inkscape:export-ydpi="73.431374"
inkscape:export-xdpi="73.431374"
id="g4195"
transform="translate(0.18745231,-35.076806)">
<circle
style="fill:#bdbdbd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.442;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4197"
cx="12.003395"
cy="1040.9"
r="15.162507"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374"
d="m 27.165902,1040.9 c 0,8.374 -6.788486,15.1625 -15.162507,15.1625 -8.3740213,0 -15.162507,-6.7885 -15.162507,-15.1625 0,-8.374 6.7884857,-15.1625 15.162507,-15.1625 8.374021,0 15.162507,6.7885 15.162507,15.1625 z" />
<path
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.442;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 66.068359,4.7871094 A 61.281367,61.281367 0 0 0 4.7871094,66.068359 61.281367,61.281367 0 0 0 66.068359,127.34961 l 0,-122.5625006 z"
transform="matrix(0.24742442,0,0,0.24742442,-4.3437287,1024.5529)"
id="path4199"
inkscape:connector-curvature="0"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374" />
</g>
<g
id="g4517-8"
transform="matrix(0.24742442,0,0,0.24742442,-64.81656,1013.5329)">
<g
id="g4519-2"
transform="matrix(4.0416382,0,0,4.0416382,422.29019,-4060.1699)">
<g
id="g4521-8">
<path
id="path4523-1"
style="color:#000000;text-indent:0;text-transform:none;block-progression:tb;fill:#c3c7c7;fill-opacity:1"
d="m 8.9868,1030.4 0,7.8 c -1.8639,2.9 -3.8033,5.8 -5.625,8.8 -0.9343,1.5 -0.0087,3.8 1.7506,4.2 1.2656,0.3 2.5733,0.1 3.8564,0.2 3.1672,0 6.3372,0 9.5032,-0.1 2.044,-0.2 3.264,-2.8 2.077,-4.5 -1.813,-2.9 -3.721,-5.7 -5.562,-8.6 l 0,-7.8 -6.0002,0 z"
inkscape:connector-curvature="0" />
<path
id="path4525-4"
d="m 15.469805,1042.9 c 0,0.5358 -0.433988,0.9698 -0.969805,0.9698 -0.535817,0 -0.969805,-0.434 -0.969805,-0.9698 0,-0.5358 0.433988,-0.9698 0.969805,-0.9698 0.535817,0 0.969805,0.434 0.969805,0.9698 z"
inkscape:connector-curvature="0"
style="fill:#ac0000;fill-opacity:1" />
<path
id="path4529-2"
d="m 12.580262,1042.5105 c 0,0.8731 -0.707167,1.5803 -1.580262,1.5803 -0.873095,0 -1.5802621,-0.7072 -1.5802621,-1.5803 0,-0.8731 0.7071671,-1.5803 1.5802621,-1.5803 0.873095,0 1.580262,0.7072 1.580262,1.5803 z"
inkscape:connector-curvature="0"
style="fill:#ac0000;fill-opacity:1" />
<path
id="path4531-5"
d="m 7.4729,1042.4 c -1.098,1.7 -2.2018,3.4 -3.2812,5.1 -0.6853,1.2 0.3032,2.8 1.6875,2.9 l 12.313,0 c 1.396,-0.1 2.274,-1.9 1.5,-3 -1.071,-1.7 -2.149,-3.4 -3.219,-5 l -9.0001,0 z"
inkscape:connector-curvature="0"
style="fill:#ac0000;fill-opacity:1" />
<path
id="path4527"
style="text-indent:0;text-transform:none;block-progression:tb;color:#000000;fill:#000000;fill-opacity:0.17258881"
d="m 9,1030.4 0,7.8 c -1.8639,2.9 -3.8033,5.8 -5.625,8.8 -0.9343,1.5 -0.0092,3.8 1.75,4.2 1.2656,0.3 2.5607,0.1 3.8438,0.2 l 3.0002,0 0,-21 -2.969,0 z"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4537-0"
transform="translate(-60,0)" />
</g>
</g>
<g
id="g4537"
transform="translate(-60,0)" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
width="20.5585mm"
height="23.953442mm"
viewBox="0 0 72.845081 84.874394"
id="svg4286"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="icon.svg"
inkscape:export-filename="/home/xdrm/Bureau/GRAPHISM/logo/flask100.png"
inkscape:export-xdpi="123.54987"
inkscape:export-ydpi="123.54987">
<defs
id="defs4288" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="48.184781"
inkscape:cy="27.605616"
inkscape:document-units="px"
inkscape:current-layer="g4521-8"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1056"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-page="true"
inkscape:snap-nodes="true" />
<metadata
id="metadata4291">
<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>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(15.022256,-191.80268)">
<g
id="g4517"
transform="translate(-609.72838,51.305182)">
<g
id="g4519"
transform="matrix(4.0416382,0,0,4.0416382,422.29019,-4060.1699)">
<g
id="g4191"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374"
style="fill:#ababab;fill-opacity:1" />
<g
inkscape:export-ydpi="73.431374"
inkscape:export-xdpi="73.431374"
id="g4195"
transform="translate(0.18745231,-35.076806)">
<circle
style="fill:#bdbdbd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.442;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4197"
cx="12.003395"
cy="1040.9"
r="15.162507"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374"
d="m 27.165902,1040.9 c 0,8.374 -6.788486,15.1625 -15.162507,15.1625 -8.3740213,0 -15.162507,-6.7885 -15.162507,-15.1625 0,-8.374 6.7884857,-15.1625 15.162507,-15.1625 8.374021,0 15.162507,6.7885 15.162507,15.1625 z" />
<path
style="fill:#ababab;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.442;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 66.068359,4.7871094 A 61.281367,61.281367 0 0 0 4.7871094,66.068359 61.281367,61.281367 0 0 0 66.068359,127.34961 l 0,-122.5625006 z"
transform="matrix(0.24742442,0,0,0.24742442,-4.3437287,1024.5529)"
id="path4199"
inkscape:connector-curvature="0"
inkscape:export-xdpi="73.431374"
inkscape:export-ydpi="73.431374" />
</g>
<g
id="g4517-8"
transform="matrix(0.24742442,0,0,0.24742442,-64.81656,1013.5329)">
<g
id="g4519-2"
transform="matrix(4.0416382,0,0,4.0416382,422.29019,-4060.1699)">
<g
id="g4521-8">
<path
id="path4523-1"
style="color:#000000;text-indent:0;text-transform:none;block-progression:tb;fill:#c3c7c7;fill-opacity:1"
d="m 8.9868,1030.4 0,7.8 c -1.8639,2.9 -3.8033,5.8 -5.625,8.8 -0.9343,1.5 -0.0087,3.8 1.7506,4.2 1.2656,0.3 2.5733,0.1 3.8564,0.2 3.1672,0 6.3372,0 9.5032,-0.1 2.044,-0.2 3.264,-2.8 2.077,-4.5 -1.813,-2.9 -3.721,-5.7 -5.562,-8.6 l 0,-7.8 -6.0002,0 z"
inkscape:connector-curvature="0" />
<path
id="path4525-4"
d="m 15.469805,1042.9 c 0,0.5358 -0.433988,0.9698 -0.969805,0.9698 -0.535817,0 -0.969805,-0.434 -0.969805,-0.9698 0,-0.5358 0.433988,-0.9698 0.969805,-0.9698 0.535817,0 0.969805,0.434 0.969805,0.9698 z"
inkscape:connector-curvature="0"
style="fill:#60676d;fill-opacity:1" />
<path
id="path4529-2"
d="m 12.580262,1042.5105 c 0,0.8731 -0.707167,1.5803 -1.580262,1.5803 -0.873095,0 -1.5802621,-0.7072 -1.5802621,-1.5803 0,-0.8731 0.7071671,-1.5803 1.5802621,-1.5803 0.873095,0 1.580262,0.7072 1.580262,1.5803 z"
inkscape:connector-curvature="0"
style="fill:#60676d;fill-opacity:1" />
<path
id="path4531-5"
d="m 7.4729,1042.4 c -1.098,1.7 -2.2018,3.4 -3.2812,5.1 -0.6853,1.2 0.3032,2.8 1.6875,2.9 l 12.313,0 c 1.396,-0.1 2.274,-1.9 1.5,-3 -1.071,-1.7 -2.149,-3.4 -3.219,-5 l -9.0001,0 z"
inkscape:connector-curvature="0"
style="fill:#60676d;fill-opacity:1" />
<path
id="path4527"
style="text-indent:0;text-transform:none;block-progression:tb;color:#000000;fill:#000000;fill-opacity:0.17258881"
d="m 9,1030.4 0,7.8 c -1.8639,2.9 -3.8033,5.8 -5.625,8.8 -0.9343,1.5 -0.0092,3.8 1.75,4.2 1.2656,0.3 2.5607,0.1 3.8438,0.2 l 3.0002,0 0,-21 -2.969,0 z"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4537-0"
transform="translate(-60,0)" />
</g>
</g>
<g
id="g4537"
transform="translate(-60,0)" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
version="1.1"
width="100%"
height="100%"
viewBox="45.6 168.9 504 504"
id="Layer_1"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="marks.svg"><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="namedview3156"
showgrid="false"
inkscape:zoom="1.8035714"
inkscape:cx="36.871282"
inkscape:cy="252"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><metadata
id="metadata19"><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="defs17" /><path
d="m 129.5,65.40625 c -22.5,0 -40.90625,18.40625 -40.90625,40.90625 l 0,326.78125 C 88.59375,455.59375 107,474 129.5,474 l 245.09375,0 c 22.5,0 40.90625,-18.40625 40.90625,-40.90625 l 0,-326.90625 c 0,-22.4 -18.40625,-40.78125 -40.90625,-40.78125 l -102.09375,0 c 0,11.2 -9.20625,20.40625 -20.40625,20.40625 -11.2,0 -20.40625,-9.20625 -20.40625,-20.40625 l -102.1875,0 z M 129.5,96 374.59375,96 c 6.1,0 10.21875,4.0875 10.21875,10.1875 l 0,326.90625 c 0,6.1 -4.11875,10.21875 -10.21875,10.21875 l -245.09375,0 c -6.1,0 -10.1875,-4.11875 -10.1875,-10.21875 l 0,-326.90625 C 119.3125,100.0875 123.4,96 129.5,96 z"
transform="translate(45.6,168.9)"
id="path3"
style="fill:#455a64;fill-opacity:1" /><path
d="M 420.2,612.2 H 175.1 c -6.1,0 -10.2,-4.1 -10.2,-10.2 V 275.1 c 0,-6.1 4.1,-10.2 10.2,-10.2 h 245.1 c 6.1,0 10.2,4.1 10.2,10.2 V 602 c 0,6.1 -4.1,10.2 -10.2,10.2 z"
id="path4784"
style="fill:#ffffff" /><g
id="g7"><path
d="m 252,24.5 c -22.5,0 -40.90625,18.40625 -40.90625,40.90625 l -50.90625,0 0,40.90625 c 0,11.2 9.20625,20.375 20.40625,20.375 l 143,0 c 11.2,0 20.40625,-9.175 20.40625,-20.375 l 0,-40.90625 -51.09375,0 C 292.90625,42.90625 274.5,24.5 252,24.5 z m 0,20.5 c 11.2,0 20.40625,9.20625 20.40625,20.40625 0,7.690321 -4.27799,14.43264 -10.625,17.90625 -0.58572,0.320552 -1.19351,0.612039 -1.8125,0.875 -0.61055,0.259375 -1.23547,0.487695 -1.875,0.6875 -1.89039,0.590607 -3.91463,0.928145 -6,0.9375 -0.38156,0 -0.74837,-0.01018 -1.125,-0.03125 -0.31469,-0.01615 -0.62657,-0.06326 -0.9375,-0.09375 -0.0306,-0.0031 -0.0632,0.0033 -0.0937,0 -0.31073,-0.03192 -0.6309,-0.07908 -0.9375,-0.125 -0.0305,-0.0047 -0.0633,0.0048 -0.0937,0 C 248.6004,85.515274 248.30136,85.435832 248,85.375 238.73594,83.460938 231.6875,75.20625 231.6875,65.40625 l -0.0937,0 C 231.59375,54.20625 240.8,45 252,45 z"
transform="translate(45.6,168.9)"
id="path9"
style="fill:#90a4ae;fill-opacity:1" /></g><path
d="m 365.1,383.4 -92,91.9 -42.9,-43.9 -25.5,25.6 69.4,68.4 116.5,-116.5 z"
id="polygon13"
style="fill:#455a64;fill-opacity:1" /></svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
version="1.1"
width="100%"
height="100%"
viewBox="45.6 168.9 504 504"
id="Layer_1"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="marks_grayscale.svg"><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="namedview3156"
showgrid="false"
inkscape:zoom="1.8035714"
inkscape:cx="-70.693076"
inkscape:cy="252"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" /><metadata
id="metadata19"><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="defs17" /><path
d="m 129.5,65.40625 c -22.5,0 -40.90625,18.40625 -40.90625,40.90625 l 0,326.78125 C 88.59375,455.59375 107,474 129.5,474 l 245.09375,0 c 22.5,0 40.90625,-18.40625 40.90625,-40.90625 l 0,-326.90625 c 0,-22.4 -18.40625,-40.78125 -40.90625,-40.78125 l -102.09375,0 c 0,11.2 -9.20625,20.40625 -20.40625,20.40625 -11.2,0 -20.40625,-9.20625 -20.40625,-20.40625 l -102.1875,0 z M 129.5,96 374.59375,96 c 6.1,0 10.21875,4.0875 10.21875,10.1875 l 0,326.90625 c 0,6.1 -4.11875,10.21875 -10.21875,10.21875 l -245.09375,0 c -6.1,0 -10.1875,-4.11875 -10.1875,-10.21875 l 0,-326.90625 C 119.3125,100.0875 123.4,96 129.5,96 z"
transform="translate(45.6,168.9)"
id="path3"
style="fill:#60676d;fill-opacity:1" /><path
d="M 420.2,612.2 H 175.1 c -6.1,0 -10.2,-4.1 -10.2,-10.2 V 275.1 c 0,-6.1 4.1,-10.2 10.2,-10.2 h 245.1 c 6.1,0 10.2,4.1 10.2,10.2 V 602 c 0,6.1 -4.1,10.2 -10.2,10.2 z"
id="path4784"
style="fill:#898f95;fill-opacity:1" /><g
id="g7"
style="fill:#7d868d;fill-opacity:1"><path
d="m 252,24.5 c -22.5,0 -40.90625,18.40625 -40.90625,40.90625 l -50.90625,0 0,40.90625 c 0,11.2 9.20625,20.375 20.40625,20.375 l 143,0 c 11.2,0 20.40625,-9.175 20.40625,-20.375 l 0,-40.90625 -51.09375,0 C 292.90625,42.90625 274.5,24.5 252,24.5 z m 0,20.5 c 11.2,0 20.40625,9.20625 20.40625,20.40625 0,7.690321 -4.27799,14.43264 -10.625,17.90625 -0.58572,0.320552 -1.19351,0.612039 -1.8125,0.875 -0.61055,0.259375 -1.23547,0.487695 -1.875,0.6875 -1.89039,0.590607 -3.91463,0.928145 -6,0.9375 -0.38156,0 -0.74837,-0.01018 -1.125,-0.03125 -0.31469,-0.01615 -0.62657,-0.06326 -0.9375,-0.09375 -0.0306,-0.0031 -0.0632,0.0033 -0.0937,0 -0.31073,-0.03192 -0.6309,-0.07908 -0.9375,-0.125 -0.0305,-0.0047 -0.0633,0.0048 -0.0937,0 C 248.6004,85.515274 248.30136,85.435832 248,85.375 238.73594,83.460938 231.6875,75.20625 231.6875,65.40625 l -0.0937,0 C 231.59375,54.20625 240.8,45 252,45 z"
transform="translate(45.6,168.9)"
id="path9"
style="fill:#7d868d;fill-opacity:1" /></g><path
d="m 365.1,383.4 -92,91.9 -42.9,-43.9 -25.5,25.6 69.4,68.4 116.5,-116.5 z"
id="polygon13"
style="fill:#51565b;fill-opacity:1" /></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
width="307.12741"
height="307.12741"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="modules.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="-238.69216"
inkscape:cy="223.42432"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1056"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<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>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-187.7979,-368.72978)">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none"
d="m 196.95714,405.84184 c -6.52926,6.52927 -6.50716,17.04832 0.0221,23.57759 l 9.1703,9.17029 51.50831,-51.50831 -9.1703,-9.17029 c -6.52927,-6.52927 -17.04833,-6.55137 -23.57759,-0.0221 l -27.95283,27.95283 z m 19.73272,43.28819 176.57781,176.57782 51.50831,-51.50831 -176.57781,-176.57782 -51.50831,51.50831 z m 184.73163,184.73165 70.35712,18.87091 -18.8488,-70.37923 -51.50832,51.50832 z"
id="rect2996"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none"
d="m 439.57212,368.72978 -7.44673,7.44671 22.67162,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49613,10.49611 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71666 -11.13693,11.13693 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49613,10.49612 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71667 -11.13694,11.13693 22.67162,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49613,10.49611 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71666 -6.89429,6.89429 55.3532,55.3532 92.29953,-92.29953 z m -105.64617,216.35258 -55.35321,-55.35321 -6.25347,6.25348 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49611,10.49612 14.71666,14.71666 -4.15426,4.15426 -14.71667,-14.71667 -11.13692,11.13693 22.67161,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49612,10.49611 14.71666,14.71667 -4.15425,4.15425 -14.71667,-14.71667 -11.13692,11.13694 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49611,10.49612 14.71666,14.71666 -4.15426,4.15426 -14.71667,-14.71667 -6.56283,6.56283 55.35321,55.35322 z"
id="rect3786"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
width="307.12741"
height="307.12741"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="modules_grayscale.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="-238.69216"
inkscape:cy="223.42432"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1056"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<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>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-187.7979,-368.72978)">
<path
style="fill:#60676d;fill-opacity:1;stroke:none"
d="m 196.95714,405.84184 c -6.52926,6.52927 -6.50716,17.04832 0.0221,23.57759 l 9.1703,9.17029 51.50831,-51.50831 -9.1703,-9.17029 c -6.52927,-6.52927 -17.04833,-6.55137 -23.57759,-0.0221 l -27.95283,27.95283 z m 19.73272,43.28819 176.57781,176.57782 51.50831,-51.50831 -176.57781,-176.57782 -51.50831,51.50831 z m 184.73163,184.73165 70.35712,18.87091 -18.8488,-70.37923 -51.50832,51.50832 z"
id="rect2996"
inkscape:connector-curvature="0" />
<path
style="fill:#60676d;fill-opacity:1;stroke:none"
d="m 439.57212,368.72978 -7.44673,7.44671 22.67162,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49613,10.49611 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71666 -11.13693,11.13693 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49613,10.49612 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71667 -11.13694,11.13693 22.67162,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49613,10.49611 14.71667,14.71667 -4.15425,4.15425 -14.71666,-14.71666 -6.89429,6.89429 55.3532,55.3532 92.29953,-92.29953 z m -105.64617,216.35258 -55.35321,-55.35321 -6.25347,6.25348 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49611,10.49612 14.71666,14.71666 -4.15426,4.15426 -14.71667,-14.71667 -11.13692,11.13693 22.67161,22.67161 -3.91118,3.91119 -22.67161,-22.67161 -10.49612,10.49611 14.71666,14.71667 -4.15425,4.15425 -14.71667,-14.71667 -11.13692,11.13694 22.67161,22.67161 -3.91119,3.91118 -22.67161,-22.67161 -10.49611,10.49612 14.71666,14.71666 -4.15426,4.15426 -14.71667,-14.71667 -6.56283,6.56283 55.35321,55.35322 z"
id="rect3786"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
version="1.1"
width="64"
height="64"
viewBox="0 0 64 64"
id="Layer_1"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="settings.svg"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1210"
inkscape:window-height="809"
id="namedview3221"
showgrid="false"
inkscape:zoom="3.6875"
inkscape:cx="-20.610169"
inkscape:cy="32"
inkscape:window-x="10"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="g3111" /><metadata
id="metadata3121"><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="defs3119" /><g
id="g3111"><path
d="m 36.167,32 c 0,2.30137 -1.86563,4.167 -4.167,4.167 -2.30137,0 -4.167,-1.86563 -4.167,-4.167 0,-2.30137 1.86563,-4.167 4.167,-4.167 2.30137,0 4.167,1.86563 4.167,4.167 z"
id="circle3113"
style="fill:#ffffff;fill-opacity:1" /><path
d="M 55.192,27.87 49.367,26.778 C 49.013,25.6 48.549,24.47 47.975,23.407 l 3.37,-4.927 c 0.312,-0.456 0.248,-1.142 -0.143,-1.532 l -4.155,-4.156 c -0.391,-0.391 -1.076,-0.454 -1.532,-0.143 l -4.928,3.372 c -1.094,-0.59 -2.259,-1.063 -3.473,-1.42 L 36.028,8.807 C 35.925,8.264 35.396,7.824 34.843,7.824 h -5.877 c -0.553,0 -1.082,0.44 -1.185,0.983 l -1.097,5.851 c -1.165,0.356 -2.282,0.82 -3.334,1.392 l -4.866,-3.329 c -0.456,-0.312 -1.142,-0.248 -1.532,0.143 l -4.156,4.156 c -0.391,0.391 -0.454,1.076 -0.143,1.532 l 3.35,4.896 c -0.564,1.052 -1.021,2.168 -1.371,3.331 L 8.808,27.87 c -0.542,0.103 -0.982,0.632 -0.982,1.185 v 5.877 c 0,0.553 0.44,1.082 0.982,1.185 l 5.82,1.091 c 0.355,1.188 0.823,2.328 1.401,3.399 l -3.312,4.842 c -0.312,0.456 -0.248,1.142 0.143,1.532 l 4.155,4.156 c 0.391,0.391 1.076,0.454 1.532,0.143 l 4.84,-3.313 c 1.041,0.563 2.146,1.021 3.299,1.375 l 1.097,5.852 c 0.103,0.542 0.632,0.982 1.185,0.982 h 5.877 c 0.553,0 1.082,-0.44 1.185,-0.982 l 1.086,-5.796 c 1.201,-0.354 2.354,-0.821 3.438,-1.401 l 4.902,3.354 c 0.456,0.312 1.142,0.248 1.532,-0.143 l 4.155,-4.154 c 0.391,-0.391 0.454,-1.076 0.143,-1.532 l -3.335,-4.874 c 0.589,-1.084 1.063,-2.237 1.423,-3.44 l 5.819,-1.091 c 0.542,-0.103 0.982,-0.632 0.982,-1.185 v -5.877 c 0,-0.553 -0.441,-1.082 -0.983,-1.185 z M 32,42.085 c -5.568,0 -10.083,-4.515 -10.083,-10.086 0,-5.567 4.515,-10.083 10.083,-10.083 5.57,0 10.086,4.516 10.086,10.083 0,5.571 -4.517,10.086 -10.086,10.086 z"
id="path3115"
style="fill:#ffffff;fill-opacity:1" /></g></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
version="1.1"
width="64"
height="64"
viewBox="0 0 64 64"
id="Layer_1"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="settings.svg"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1210"
inkscape:window-height="809"
id="namedview3221"
showgrid="false"
inkscape:zoom="3.6875"
inkscape:cx="-20.610169"
inkscape:cy="32"
inkscape:window-x="10"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="g3111" /><metadata
id="metadata3121"><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="defs3119" /><g
id="g3111"><path
d="m 36.167,32 c 0,2.30137 -1.86563,4.167 -4.167,4.167 -2.30137,0 -4.167,-1.86563 -4.167,-4.167 0,-2.30137 1.86563,-4.167 4.167,-4.167 2.30137,0 4.167,1.86563 4.167,4.167 z"
id="circle3113"
style="fill:#60676d;fill-opacity:1" /><path
d="M 55.192,27.87 49.367,26.778 C 49.013,25.6 48.549,24.47 47.975,23.407 l 3.37,-4.927 c 0.312,-0.456 0.248,-1.142 -0.143,-1.532 l -4.155,-4.156 c -0.391,-0.391 -1.076,-0.454 -1.532,-0.143 l -4.928,3.372 c -1.094,-0.59 -2.259,-1.063 -3.473,-1.42 L 36.028,8.807 C 35.925,8.264 35.396,7.824 34.843,7.824 h -5.877 c -0.553,0 -1.082,0.44 -1.185,0.983 l -1.097,5.851 c -1.165,0.356 -2.282,0.82 -3.334,1.392 l -4.866,-3.329 c -0.456,-0.312 -1.142,-0.248 -1.532,0.143 l -4.156,4.156 c -0.391,0.391 -0.454,1.076 -0.143,1.532 l 3.35,4.896 c -0.564,1.052 -1.021,2.168 -1.371,3.331 L 8.808,27.87 c -0.542,0.103 -0.982,0.632 -0.982,1.185 v 5.877 c 0,0.553 0.44,1.082 0.982,1.185 l 5.82,1.091 c 0.355,1.188 0.823,2.328 1.401,3.399 l -3.312,4.842 c -0.312,0.456 -0.248,1.142 0.143,1.532 l 4.155,4.156 c 0.391,0.391 1.076,0.454 1.532,0.143 l 4.84,-3.313 c 1.041,0.563 2.146,1.021 3.299,1.375 l 1.097,5.852 c 0.103,0.542 0.632,0.982 1.185,0.982 h 5.877 c 0.553,0 1.082,-0.44 1.185,-0.982 l 1.086,-5.796 c 1.201,-0.354 2.354,-0.821 3.438,-1.401 l 4.902,3.354 c 0.456,0.312 1.142,0.248 1.532,-0.143 l 4.155,-4.154 c 0.391,-0.391 0.454,-1.076 0.143,-1.532 l -3.335,-4.874 c 0.589,-1.084 1.063,-2.237 1.423,-3.44 l 5.819,-1.091 c 0.542,-0.103 0.982,-0.632 0.982,-1.185 v -5.877 c 0,-0.553 -0.441,-1.082 -0.983,-1.185 z M 32,42.085 c -5.568,0 -10.083,-4.515 -10.083,-10.086 0,-5.567 4.515,-10.083 10.083,-10.083 5.57,0 10.086,4.516 10.086,10.083 0,5.571 -4.517,10.086 -10.086,10.086 z"
id="path3115"
style="fill:#60676d;fill-opacity:1" /></g></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,53 +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 45.6 168.9 504 504"
id="Layer_1"
version="1.1"
viewBox="45.6 168.9 504 504"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="100%"
height="100%"
sodipodi:docname="ue.svg"><metadata
id="metadata3350"><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="defs3348" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="789"
inkscape:window-height="480"
id="namedview3346"
showgrid="false"
inkscape:zoom="0.46825397"
inkscape:cx="252"
inkscape:cy="252"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><path
d="M297.6,495.4c-40.9,0-74.4-33.5-74.4-74.4s33.5-74.4,74.4-74.4V185.3C167.4,185.3,62,290.7,62,420.9 s105.4,235.6,235.6,235.6c54.6,0,105.4-18.6,146.3-50.8l-99.2-126.5C331.1,489.2,315,495.4,297.6,495.4z"
fill="#00BCD4"
id="path3340"
style="fill:#ffffff;fill-opacity:1" /><path
d="M372.1,420.9h161.2c0-130.2-105.4-235.6-235.6-235.6v161.2C338.6,346.5,372.1,380,372.1,420.9z"
fill="#448AFF"
id="path3342"
style="fill:#bfc1c3;fill-opacity:1" /><path
d="M533.3,420.9H372.1c0,23.6-11.2,44.6-28.5,58.3l99.2,126.5C498.5,562.3,533.3,495.4,533.3,420.9z"
fill="#3F51B5"
id="path3344"
style="fill:#84888c;fill-opacity:1" /></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,53 +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 45.6 168.9 504 504"
id="Layer_1"
version="1.1"
viewBox="45.6 168.9 504 504"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="100%"
height="100%"
sodipodi:docname="ue_grayscale.svg"><metadata
id="metadata3350"><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="defs3348" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="789"
inkscape:window-height="480"
id="namedview3346"
showgrid="false"
inkscape:zoom="0.46825397"
inkscape:cx="252"
inkscape:cy="252"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><path
d="M297.6,495.4c-40.9,0-74.4-33.5-74.4-74.4s33.5-74.4,74.4-74.4V185.3C167.4,185.3,62,290.7,62,420.9 s105.4,235.6,235.6,235.6c54.6,0,105.4-18.6,146.3-50.8l-99.2-126.5C331.1,489.2,315,495.4,297.6,495.4z"
fill="#00BCD4"
id="path3340"
style="fill:#7c858c;fill-opacity:1" /><path
d="M372.1,420.9h161.2c0-130.2-105.4-235.6-235.6-235.6v161.2C338.6,346.5,372.1,380,372.1,420.9z"
fill="#448AFF"
id="path3342"
style="fill:#5b6369;fill-opacity:1" /><path
d="M533.3,420.9H372.1c0,23.6-11.2,44.6-28.5,58.3l99.2,126.5C498.5,562.3,533.3,495.4,533.3,420.9z"
fill="#3F51B5"
id="path3344"
style="fill:#494d51;fill-opacity:1" /></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,32 +0,0 @@
{
"eleve1": {
"permissions": "student",
"password" : "eleve1password"
},
"eleve2": {
"permissions": "student",
"password" : "eleve2password"
},
"prof1": {
"permissions": "teacher",
"password" : "prof1password"
},
"prof2": {
"permissions": "master",
"password" : "prof2password"
},
"admin1": {
"permissions": "admin",
"password" : "admin1password"
},
"admin2": {
"permissions": "admin",
"password" : "admin2password"
}
}