- [x] Adaptation de page-manger.js
- [x] Conception et dev routeur
|
@ -1,2 +1,3 @@
|
|||
.sass-cache/
|
||||
*.css.map
|
||||
.htaccess
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
/*# sourceMappingURL=container.css.map */
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
/*# sourceMappingURL=global.css.map */
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
/*# sourceMappingURL=header.css.map */
|
|
@ -0,0 +1,2 @@
|
|||
#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#edf0f5;font-family:'Ubuntu'}#WRAPPER>#HEADER{display:block;position:absolute;top:0;left:0;width:100%;height:calc( 4em - 1px );border-bottom:1px solid #2277f7;background-color:#5395f9;z-index:10}#WRAPPER>#HEADER>.icon{display:block;position:absolute;top:0;left:0;width:4em;height:4em;background-color:#2277f7;background-image:url("../src/static/icon.svg");background-position:center center;background-repeat:no-repeat;background-size:50% 50%;cursor:pointer;transition:all .3s}#WRAPPER>#HEADER>.icon:hover{background-color:#0967f6}#WRAPPER>#MENU-SIDE{display:block;position:absolute;top:4em;left:0;width:4em;height:100%;box-shadow:2px 1px 3px #ddd;background-color:#fff;transition:all .3s;z-index:9}#WRAPPER>#MENU-SIDE>span[data-link]{display:block;position:relative;width:calc( 4em - 2*.7em - 2*.55em - 2*.01em );height:calc( 4em - 2*.7em - 2*.55em - 2*.01em );margin:2em .7em;padding:.55em;border:.01em solid transparent;border-radius:2px;color:#a2a2a2;line-height:calc( 4em - 2*.7em - 2*.55em - 2*.01em );transition:color .3s, border .3s;cursor:pointer}#WRAPPER>#MENU-SIDE>span[data-link] svg,#WRAPPER>#MENU-SIDE>span[data-link] svg *{width:1.5em;height:1.5em;stroke:none !important;fill:#444 !important;transition:fill .3s}#WRAPPER>#MENU-SIDE>span[data-link][data-desc]:after{content:attr(data-desc);display:block;position:absolute;top:calc( .7em - 2*.3em );left:calc( 4.6em - 2*.3em );padding:.3em;border-radius:3px;background-color:#2a2a2a;color:#e2e2e2;transition:transform .1s;transform-origin:0 0;transform:scaleX(0)}#WRAPPER>#MENU-SIDE>span[data-link]:hover{border-color:#e6e6e6;box-shadow:inset 0 0 .5em #eee}#WRAPPER>#MENU-SIDE>span[data-link]:hover:after{transform:scaleX(1);color:#fff}#WRAPPER>#MENU-SIDE>span[data-link]:hover svg,#WRAPPER>#MENU-SIDE>span[data-link]:hover svg *{fill:#5395f9 !important}#WRAPPER>#MENU-SIDE>span[data-link].active{border-color:#e6e6e6}#WRAPPER>#MENU-SIDE>span[data-link].active svg,#WRAPPER>#MENU-SIDE>span[data-link].active svg *{fill:#5395f9 !important}#WRAPPER>#MENU-SIDE>span[data-link]:hover{color:#565656}#WRAPPER>#CONTAINER{display:block;position:absolute;top:4em;left:4em;width:calc( 100% - 4em - 2*1em );height:calc( 100% - 4em - 2*1em );padding:1em;overflow-x:none;overflow-y:auto}
|
||||
/*# sourceMappingURL=layout.css.map */
|
|
@ -0,0 +1,184 @@
|
|||
$theme-color: #f97a53;
|
||||
$theme-color: #5395f9;
|
||||
|
||||
#WRAPPER{
|
||||
display: block;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
background-color: #edf0f5;
|
||||
|
||||
font-family: 'Ubuntu';
|
||||
|
||||
|
||||
/* [1] Header de la page
|
||||
==========================================*/
|
||||
& > #HEADER{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: calc( 4em - 1px );
|
||||
|
||||
border-bottom: 1px solid darken($theme-color, 10);
|
||||
|
||||
background-color: $theme-color;
|
||||
|
||||
z-index: 10;
|
||||
|
||||
// Icone du site
|
||||
& > .icon{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
|
||||
background-color: darken($theme-color, 10);
|
||||
background-image: url('../src/static/icon.svg');
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 50% 50%;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
transition: all .3s;
|
||||
|
||||
// @hover
|
||||
&:hover{
|
||||
background-color: darken($theme-color, 15);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* [2] Side-Menu de la page
|
||||
==========================================*/
|
||||
// Gestion du menu
|
||||
& > #MENU-SIDE{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 4em;
|
||||
left: 0;
|
||||
width: 4em;
|
||||
height: 100%;
|
||||
|
||||
box-shadow: 2px 1px 3px #ddd;
|
||||
|
||||
background-color: #fff;
|
||||
|
||||
transition: all .3s;
|
||||
|
||||
z-index: 9;
|
||||
|
||||
|
||||
& > span[data-link]{
|
||||
display: block;
|
||||
position: relative;
|
||||
width: calc( 4em - 2*.7em - 2*.55em - 2*.01em );
|
||||
height: calc( 4em - 2*.7em - 2*.55em - 2*.01em );
|
||||
|
||||
// padding: 1em;
|
||||
margin: 2em .7em;
|
||||
padding: .55em;
|
||||
|
||||
border: .01em solid transparent;
|
||||
border-radius: 2px;
|
||||
|
||||
|
||||
color: #a2a2a2;
|
||||
line-height: calc( 4em - 2*.7em - 2*.55em - 2*.01em );
|
||||
|
||||
transition: color .3s, border .3s;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
svg, svg *{
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
|
||||
stroke: none !important;
|
||||
fill: #444 !important;
|
||||
|
||||
transition: fill .3s;
|
||||
}
|
||||
|
||||
|
||||
&[data-desc]:after{
|
||||
content: attr(data-desc);
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: calc( .7em - 2*.3em );
|
||||
left: calc( 4.6em - 2*.3em );
|
||||
padding: .3em;
|
||||
|
||||
border-radius: 3px;
|
||||
|
||||
background-color: #2a2a2a;
|
||||
|
||||
color: #e2e2e2;
|
||||
|
||||
transition: transform .1s;
|
||||
|
||||
transform-origin: 0 0;
|
||||
transform: scaleX(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
&:hover{
|
||||
border-color: #e6e6e6;
|
||||
box-shadow: inset 0 0 .5em #eee;
|
||||
|
||||
&:after{
|
||||
transform: scaleX(1);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
svg, svg *{
|
||||
fill: $theme-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&.active{
|
||||
border-color: #e6e6e6;
|
||||
|
||||
svg, svg *{
|
||||
fill: $theme-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Gestion du menu hover
|
||||
& > #MENU-SIDE > span[data-link]:hover{
|
||||
color: darken(#a2a2a2, 30);
|
||||
}
|
||||
|
||||
|
||||
/* [3] Container de la page
|
||||
==========================================*/
|
||||
& > #CONTAINER{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 4em;
|
||||
left: 4em;
|
||||
width: calc( 100% - 4em - 2*1em );
|
||||
height: calc( 100% - 4em - 2*1em );
|
||||
padding: 1em;
|
||||
|
||||
overflow-x: none;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
/*# sourceMappingURL=menu.css.map */
|
|
@ -0,0 +1,2 @@
|
|||
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
|
||||
/*# sourceMappingURL=reset.css.map */
|
|
@ -0,0 +1,433 @@
|
|||
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/**
|
||||
* 1. Set default font family to sans-serif.
|
||||
* 2. Prevent iOS and IE text size adjust after device orientation change,
|
||||
* without disabling user zoom.
|
||||
*/
|
||||
|
||||
html {
|
||||
font-family: sans-serif; /* 1 */
|
||||
-ms-text-size-adjust: 100%; /* 2 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove default margin.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* HTML5 display definitions
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Correct `block` display not defined for any HTML5 element in IE 8/9.
|
||||
* Correct `block` display not defined for `details` or `summary` in IE 10/11
|
||||
* and Firefox.
|
||||
* Correct `block` display not defined for `main` in IE 11.
|
||||
*/
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
main,
|
||||
menu,
|
||||
nav,
|
||||
section,
|
||||
summary {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct `inline-block` display not defined in IE 8/9.
|
||||
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
progress,
|
||||
video {
|
||||
display: inline-block; /* 1 */
|
||||
vertical-align: baseline; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent modern browsers from displaying `audio` without controls.
|
||||
* Remove excess height in iOS 5 devices.
|
||||
*/
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `[hidden]` styling not present in IE 8/9/10.
|
||||
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
|
||||
*/
|
||||
|
||||
[hidden],
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Links
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background color from active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability of focused elements when they are also in an
|
||||
* active/hover state.
|
||||
*/
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address inconsistent styling of `abbr[title]`.
|
||||
* 1. Correct styling in Firefox 39 and Opera 12.
|
||||
* 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent styling of b and strong.
|
||||
* 1. Correct duplicate application of `bolder` in Safari 6.0.2.
|
||||
* 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: inherit; /* 1 */
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in Safari and Chrome.
|
||||
*/
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address variable `h1` font-size and margin within `section` and `article`
|
||||
* contexts in Firefox 4+, Safari, and Chrome.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 8/9.
|
||||
*/
|
||||
|
||||
mark {
|
||||
background-color: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent and variable font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove border when inside `a` element in IE 8/9/10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct overflow not hidden in IE 9/10/11.
|
||||
*/
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address margin not present in IE 8/9 and Safari.
|
||||
*/
|
||||
|
||||
figure {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent styling of `hr`.
|
||||
* 1. Correct `box-sizing` set to `border-box` in Firefox.
|
||||
* 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Contain overflow in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct inheritance and scaling of font-size for preformatted text.
|
||||
* 2. Address odd `em`-unit font size rendering in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Known limitation: by default, Chrome and Safari on OS X allow very limited
|
||||
* styling of `select`, unless a `border` property is set.
|
||||
*/
|
||||
|
||||
/**
|
||||
* 1. Correct font properties not being inherited.
|
||||
* 2. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font: inherit; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `overflow` set to `hidden` in IE 8/9/10/11.
|
||||
*/
|
||||
|
||||
button {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||
* All other form control elements do not inherit `text-transform` values.
|
||||
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
|
||||
* Correct `select` style inheritance in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
||||
* and `video` controls.
|
||||
* 2. Correct inability to style clickable `input` types in iOS.
|
||||
* 3. Improve usability and consistency of cursor style between image-type
|
||||
* `input` and others.
|
||||
*/
|
||||
|
||||
button,
|
||||
html input[type="button"], /* 1 */
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
-webkit-appearance: button; /* 2 */
|
||||
cursor: pointer; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-set default cursor for disabled elements.
|
||||
*/
|
||||
|
||||
button[disabled],
|
||||
html input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and border in Firefox 4+.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
|
||||
* the UA stylesheet.
|
||||
*/
|
||||
|
||||
input {
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/**
|
||||
* It's recommended that you don't attempt to style these elements.
|
||||
* Firefox's implementation doesn't respect box-sizing, padding, or width.
|
||||
*
|
||||
* 1. Address box sizing set to `content-box` in IE 8/9/10.
|
||||
* 2. Remove excess padding in IE 8/9/10.
|
||||
*/
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
||||
* `font-size` values of the `input`, it causes the cursor style of the
|
||||
* decrement button to change from `default` to `text`.
|
||||
*/
|
||||
|
||||
input[type="number"]::-webkit-inner-spin-button,
|
||||
input[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `appearance` set to `searchfield` in Safari and Chrome.
|
||||
*/
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
||||
* Safari (but not Chrome) clips the cancel button when the search input has
|
||||
* padding (and `textfield` appearance).
|
||||
*/
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define consistent border, margin, and padding.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct `color` not being inherited in IE 8/9/10/11.
|
||||
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
||||
*/
|
||||
|
||||
legend {
|
||||
border: 0; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove default vertical scrollbar in IE 8/9/10/11.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Don't inherit the `font-weight` (applied by a rule above).
|
||||
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
||||
*/
|
||||
|
||||
optgroup {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Tables
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove most spacing between table cells.
|
||||
*/
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 0;
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
<?php define('__ROOT__', dirname(__FILE__) );
|
||||
require_once 'manager/autoloader.php';
|
||||
|
||||
|
||||
|
||||
/* [0] On initialise le routeur
|
||||
===================================================*/
|
||||
$R = new router\Router( $_GET['url'] );
|
||||
// var_dump($R);
|
||||
|
||||
/* [1] On cree les regles de routage
|
||||
===================================================*/
|
||||
$R->get('/?', function(){ header('Location: dashboard'); });
|
||||
|
||||
$R->get('dashboard/:submenu/?', function($sm){ $subMenu = $sm; include __ROOT__.'/view.php'; });
|
||||
$R->get('machines/:submenu/?', function($sm){ $subMenu = $sm; include __ROOT__.'/view.php'; });
|
||||
$R->get('users/:submenu/?', function($sm){ $subMenu = $sm; include __ROOT__.'/view.php'; });
|
||||
$R->get('sync/:submenu/?', function($sm){ $subMenu = $sm; include __ROOT__.'/view.php'; });
|
||||
$R->get('settings/:submenu/?', function($sm){ $subMenu = $sm; include __ROOT__.'/view.php'; });
|
||||
|
||||
$R->get('dashboard/?', function(){ $subMenu = 'index'; include __ROOT__.'/view.php'; });
|
||||
$R->get('machines/?', function(){ $subMenu = 'index'; include __ROOT__.'/view.php'; });
|
||||
$R->get('users/?', function(){ $subMenu = 'index'; include __ROOT__.'/view.php'; });
|
||||
$R->get('sync/?', function(){ $subMenu = 'index'; include __ROOT__.'/view.php'; });
|
||||
$R->get('settings/?', function(){ $subMenu = 'index'; include __ROOT__.'/view.php'; });
|
||||
|
||||
$R->post('.*', function(){
|
||||
echo 'Acces POST';
|
||||
});
|
||||
|
||||
/* [2] On lance le routeur
|
||||
===================================================*/
|
||||
$R->run();
|
||||
|
||||
?>
|
|
@ -0,0 +1,27 @@
|
|||
DOM = {
|
||||
WRAPPER: $('WRAPPER'),
|
||||
HEADER: $('HEADER'),
|
||||
MENUSIDE: $('MENU-SIDE'),
|
||||
CONTAINER: $('CONTAINER')
|
||||
};
|
||||
|
||||
|
||||
/* [0] Instanciation
|
||||
===========================================*/
|
||||
var pageManager = new pageManagerClass();
|
||||
pageManager.setPage(null, 'view', DOM.CONTAINER, ['dashboard', 'machines', 'users', 'sync', 'settings'] );
|
||||
|
||||
|
||||
/* [1] Gestion de la navigation
|
||||
===========================================*/
|
||||
DOM.MENUSIDE.addEventListener('click', function(e){
|
||||
var target = e.target;
|
||||
|
||||
// On remonte dans les parents au bon niveau
|
||||
while( target != document.body && !getData(target, 'link') )
|
||||
target = target.parentNode;
|
||||
|
||||
// Si on a trouve l'element, on l'utilise pour la page
|
||||
if( getData(target, 'link') )
|
||||
pageManager.setPage(target.dataset.link);
|
||||
}, false);
|
|
@ -0,0 +1,256 @@
|
|||
/***************************************/
|
||||
/* */
|
||||
/* GESTIONNAIRE D'OPTIMISATION DES */
|
||||
/* RESSOURCES ET DE */
|
||||
/* NAVIGATION EN AJAX */
|
||||
/* */
|
||||
/* Développé par {xdrm} */
|
||||
/* */
|
||||
/* GITHUB github.com/xdrm-brackets/ */
|
||||
/* */
|
||||
/***************************************/
|
||||
|
||||
function pageManagerClass(){};
|
||||
|
||||
var ptrPageManagerClass; // pointeur global pour l'utilisation de fonctions de fonctions
|
||||
|
||||
pageManagerClass.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
|
||||
}
|
||||
|
||||
var index;
|
||||
|
||||
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
|
||||
index = this.xhr.push( new XMLHttpRequest() ) -1;
|
||||
else // IE5, IE6
|
||||
index = this.xhr.push( new ActiveXObject('Microsoft.XMLHttpRequest') ) -1;
|
||||
|
||||
var ptrPageManagerClass = this;
|
||||
this.xhr[index].onreadystatechange = function(){
|
||||
if( ptrPageManagerClass.xhr[index].readyState == 4 ) // si la requête est terminée
|
||||
if( [0,200].indexOf(ptrPageManagerClass.xhr[index].status) > -1 ) // si fichier existe et reçu
|
||||
pHandler(ptrPageManagerClass.xhr[index].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[index].open( method, pLink, true );
|
||||
this.xhr[index].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_]+)\/?(?:\/((?:.+\/)+)\/?)?$/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 );
|
||||
|
||||
ptrPageManagerClass = 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
|
||||
ptrPageManagerClass.depCSS = document.createElement('link');
|
||||
ptrPageManagerClass.depCSS.rel = 'stylesheet';
|
||||
ptrPageManagerClass.depCSS.type = 'text/css';
|
||||
ptrPageManagerClass.depCSS.href = ptrPageManagerClass.path+'/_CSS/'+ptrPageManagerClass.page+'.css';
|
||||
document.head.appendChild(ptrPageManagerClass.depCSS);
|
||||
}else
|
||||
console.log('[loadDependencies_Error] - ('+ptrPageManagerClass.path+'/_CSS/'+ptrPageManagerClass.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
|
||||
ptrPageManagerClass.depJS = document.createElement('script');
|
||||
ptrPageManagerClass.depJS.type = 'text/javascript';
|
||||
ptrPageManagerClass.depJS.src = ptrPageManagerClass.path+'/_JS/'+ptrPageManagerClass.page+'.js';
|
||||
document.head.appendChild(ptrPageManagerClass.depJS);
|
||||
}else
|
||||
console.log('[loadDependencies_Error] - ('+ptrPageManagerClass.path+'/_JS/'+ptrPageManagerClass.page+'.js)');
|
||||
});
|
||||
},
|
||||
|
||||
/* =======================================================================
|
||||
Met à jour l'URL de la page en fonction de la page chargée et des
|
||||
variables associées (ne recharge aucune ressource)
|
||||
======================================================================= */
|
||||
updateURL: function(){
|
||||
if( this.vars.length > 0 ) // si il y a des variables
|
||||
window.history.pushState(this.page, this.page, '/'+this.page+'/'+this.vars.join('/')+'/');
|
||||
else // s'il n'y en a pas
|
||||
window.history.pushState(this.page, this.page, '/'+this.page+'/');
|
||||
|
||||
// on peut récupérer le nom de la page (quand on fait retour en arrière de l'historique)
|
||||
// dans la variable : window.history.state
|
||||
},
|
||||
|
||||
/* =======================================================================
|
||||
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 ptrPageManagerClass = 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){
|
||||
ptrPageManagerClass.container.innerHTML = e;
|
||||
ptrPageManagerClass.loadDependencies();
|
||||
}, 'POST', fd);
|
||||
|
||||
// change l'URL en conséquences(stateObj, titre, url)
|
||||
this.updateURL();
|
||||
|
||||
}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)
|
||||
this.updateURL();
|
||||
|
||||
}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');
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
function $(idOrClass){
|
||||
var byId = document.querySelectorAll('#'+idOrClass);
|
||||
var byClass = document.querySelectorAll('.'+idOrClass);
|
||||
|
||||
if( byId.length > 0 ) return byId[0];
|
||||
else return byClass;
|
||||
}
|
||||
|
||||
function getData(element, attribute){
|
||||
// On verifie qu'il s'agit bien d'un element du DOM
|
||||
if( !(element instanceof Element) )
|
||||
return false;
|
||||
|
||||
// On verifie qu'un data-* attribute existe
|
||||
if( typeof element.dataset == 'undefined' )
|
||||
return false;
|
||||
|
||||
return ( element.dataset.hasOwnProperty(attribute) ) ? element.dataset[attribute] : false;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
function autoLoader($className){
|
||||
$path = '';
|
||||
|
||||
/* [1] On utilise le namespace pour localiser
|
||||
===============================================*/
|
||||
// On remplace les '\' par des '/'
|
||||
$path = str_replace('\\', '/', $className) . '.php';
|
||||
$path = __ROOT__.'/'.$path;
|
||||
|
||||
// Si le fichier existe, on l'inclut
|
||||
if( file_exists($path) )
|
||||
require_once $path;
|
||||
}
|
||||
|
||||
// On definit l'autoloader
|
||||
spl_autoload_register('autoLoader', false, true);
|
||||
|
||||
|
||||
?>
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
/**************************************/
|
||||
/* Classe de gestion de route (match) */
|
||||
/**************************************/
|
||||
|
||||
namespace router;
|
||||
|
||||
class Route{
|
||||
|
||||
// ATTRIBUTS
|
||||
private $pattern;
|
||||
private $callback;
|
||||
private $matches = array();
|
||||
|
||||
/* Initialise la route
|
||||
*
|
||||
* @pattern<String> Pattern correspondant a la route
|
||||
* @callback<Function> Fonction de callback de la route
|
||||
*
|
||||
* @return this<Route> Retour de l'instance courante
|
||||
*
|
||||
*/
|
||||
public function __construct($pattern, $callback){
|
||||
// On enregistre la fonction de callback
|
||||
$this->callback = $callback;
|
||||
|
||||
// On formatte le pattern en regexp
|
||||
$this->pattern = preg_replace('#:(\w+)#i', '([^/]+)', $pattern);
|
||||
$this->pattern = '#^'.$this->pattern.'$#';
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/* Verifie si l'URL correspond a la route
|
||||
*
|
||||
* @url<String> URL pour laquelle on veut verifier
|
||||
*
|
||||
* @return match<Boolean> TRUE si match sinon FAUX
|
||||
*
|
||||
*/
|
||||
public function match($url){
|
||||
// Si ne match pas -> FALSE
|
||||
if( !preg_match($this->pattern, $url, $matches) )
|
||||
return false;
|
||||
|
||||
// On supprime le premier match global
|
||||
array_shift($matches);
|
||||
|
||||
$this->matches = $matches;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/* Amorcage de la fonction de callback
|
||||
*
|
||||
*/
|
||||
public function call(){
|
||||
return call_user_func_array($this->callback, $this->matches);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
|
@ -0,0 +1,91 @@
|
|||
<?php
|
||||
/*************************************************/
|
||||
/* Classe de gestion des routes (URL/ressources) */
|
||||
/*************************************************/
|
||||
|
||||
namespace router;
|
||||
|
||||
class Router{
|
||||
// ATTRIBUTS
|
||||
private $url;
|
||||
private $routes;
|
||||
|
||||
/* Initialise le routeur
|
||||
*
|
||||
* @url<String> l'URL de la page courante
|
||||
*
|
||||
* @return this<Router> Retour de l'instance courante
|
||||
*
|
||||
*/
|
||||
public function __construct($url){
|
||||
$this->url = $url;
|
||||
|
||||
// On initialise les routes
|
||||
$this->routes = array(
|
||||
'GET' => array(),
|
||||
'POST' => array()
|
||||
);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/* Ajoute une route GET
|
||||
*
|
||||
* @pattern<String> le format de l'URL associe
|
||||
* @callback<Function> function a appeler si l'URL correspond
|
||||
*
|
||||
* @return this<Router> Retour de l'instance courante
|
||||
*
|
||||
*/
|
||||
public function get($pattern, $callback){
|
||||
array_push(
|
||||
$this->routes['GET'],
|
||||
new Route($pattern, $callback)
|
||||
);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/* Ajoute une route POST
|
||||
*
|
||||
* @pattern<String> le format de l'URL associe
|
||||
* @callback<Function> function a appeler si l'URL correspond
|
||||
*
|
||||
* @return this<Router> Retour de l'instance courante
|
||||
*
|
||||
*/
|
||||
public function post($pattern, $callback){
|
||||
array_push(
|
||||
$this->routes['POST'],
|
||||
new Route($pattern, $callback)
|
||||
);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/* Demarre le routeur
|
||||
*
|
||||
* @return this Retour de l'instance courante
|
||||
*
|
||||
*/
|
||||
public function run(){
|
||||
$httpMethod = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
// Si aucune route pour la methode courante -> false
|
||||
if( count($this->routes[$httpMethod]) <= 0 )
|
||||
return false;
|
||||
|
||||
// Pour chaque route
|
||||
foreach($this->routes[$httpMethod] as $route){
|
||||
// Si la route match
|
||||
if( $route->match($this->url) )
|
||||
return $route->call(); // On l'amorce
|
||||
}
|
||||
|
||||
// Retourne false si erreur
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -0,0 +1,52 @@
|
|||
<?php define('__ROOT__', dirname(__FILE__) );
|
||||
|
||||
|
||||
ini_set('display_errors',1);
|
||||
ini_set('display_startup_errors',1);
|
||||
error_reporting(-1);
|
||||
|
||||
|
||||
// FORMAT: extension & root & image & declinaison
|
||||
|
||||
|
||||
|
||||
$info = array(); // Contiendra les donnees GET
|
||||
$path = array(); // Contiendra le chemin
|
||||
$extensions = array('svg'); // extensions gerees
|
||||
$extensionHeader = array('image/svg+xml'); // header associees aux extensions
|
||||
$index = 0;
|
||||
|
||||
|
||||
/* [1] On recupere les cles GET
|
||||
======================================*/
|
||||
foreach($_GET as $k=>$v)
|
||||
array_push($info, $k);
|
||||
|
||||
|
||||
/* [2] Verification des donnees recues
|
||||
======================================*/
|
||||
$infoChecker = count($info) >= 3;
|
||||
$infoChecker = $infoChecker && ($index=array_search($info[0], $extensions)) !== false;
|
||||
|
||||
// Gestion de la declinaison si existe
|
||||
$subView = ( count($info)>=4 && $info[3] != 'noheader' ) ? $info[3].'/' : '';
|
||||
|
||||
/* (1) Erreur */
|
||||
if( !$infoChecker ) exit(1);
|
||||
|
||||
/* (2) Cas de $info[0] */
|
||||
switch($info[1]){
|
||||
case 'static':
|
||||
$path = __ROOT__.'/static/'.$subView.$info[2].'.'.$info[0];
|
||||
|
||||
// On verifie si le fichier existe
|
||||
if( file_exists($path) ){
|
||||
if( !isset($_GET['noheader']) )
|
||||
header('Content-type:'.$extensionHeader[$index]);
|
||||
include $path;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
?>
|
|
@ -0,0 +1,51 @@
|
|||
<?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="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="menu-dashboard.svg"><metadata
|
||||
id="metadata3942"><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="defs3940" /><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="namedview3938"
|
||||
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="Layer_1" /><g
|
||||
id="g3930"
|
||||
style="fill:#000000;fill-opacity:1"><path
|
||||
d="M16,30c-3.74,0-7.255-1.456-9.899-4.101C1.779,21.578,0.752,15.025,3.547,9.595C3.8,9.104,4.402,8.911,4.894,9.163 s0.685,0.855,0.432,1.347C2.93,15.164,3.81,20.78,7.515,24.485C9.781,26.752,12.794,28,16,28c3.205,0,6.219-1.248,8.485-3.515 S28,19.205,28,16c0-3.206-1.248-6.219-3.515-8.485S19.206,4,16,4c-3.206,0-6.219,1.249-8.485,3.515 c-0.391,0.391-1.023,0.391-1.414,0s-0.391-1.023,0-1.414C8.745,3.457,12.26,2,16,2c3.74,0,7.256,1.457,9.899,4.101 C28.544,8.745,30,12.26,30,16c0,3.739-1.456,7.255-4.101,9.899C23.256,28.544,19.74,30,16,30z"
|
||||
id="path3932"
|
||||
style="fill:#000000;fill-opacity:1" /></g><g
|
||||
id="g3934"
|
||||
style="fill:#000000;fill-opacity:1"><path
|
||||
d="M16,20c-1.068,0-2.073-0.416-2.829-1.172c-1.56-1.56-1.56-4.097,0-5.656c1.257-1.257,7.272-3.639,8.465-4.104 c0.371-0.144,0.79-0.056,1.07,0.225s0.369,0.7,0.225,1.07c-0.465,1.193-2.847,7.209-4.104,8.465C18.073,19.584,17.068,20,16,20z M20.188,11.813c-2.453,1.028-5.064,2.235-5.602,2.773c-0.78,0.78-0.78,2.048,0,2.828c0.756,0.756,2.073,0.756,2.829,0 C17.952,16.875,19.16,14.266,20.188,11.813z"
|
||||
id="path3936"
|
||||
style="fill:#000000;fill-opacity:1" /></g></svg>
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -0,0 +1,51 @@
|
|||
<?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="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="menu-machines.svg"><metadata
|
||||
id="metadata3048"><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="defs3046" /><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="namedview3044"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.375"
|
||||
inkscape:cx="-36.61017"
|
||||
inkscape:cy="16"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="truck_1_"
|
||||
style="fill:#000000;fill-opacity:1"><path
|
||||
d="M24.832,11.445C24.646,11.167,24.334,11,24,11h-1c-0.553,0-1,0.447-1,1v6c0,0.553,0.447,1,1,1h4 c0.553,0,1-0.447,1-1v-1.5c0-0.197-0.059-0.391-0.168-0.555L24.832,11.445z M27,18h-4v-6h1l3,4.5V18z"
|
||||
id="path3040"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
fill="#333332" /><path
|
||||
d="M31.496,15.336l-4-6C26.938,8.499,26.004,8,25,8h-4V6c0-1.654-1.346-3-3-3H3C1.346,3,0,4.346,0,6v11 c0,1.654,1.346,3,3,3h0v3c0,1.654,1.346,3,3,3h1.142c0.447,1.721,2,3,3.859,3c1.857,0,3.41-1.279,3.857-3h5.282 c0.447,1.721,2,3,3.859,3c1.857,0,3.41-1.279,3.857-3H29c1.654,0,3-1.346,3-3v-6C32,16.406,31.826,15.83,31.496,15.336z M3,18 c-0.552,0-1-0.447-1-1V6c0-0.553,0.448-1,1-1h15c0.553,0,1,0.447,1,1v2v2v7c0,0.553-0.447,1-1,1H3z M11.001,27 c-1.105,0-2-0.896-2-2s0.895-2,2-2c1.104,0,2,0.896,2,2S12.104,27,11.001,27z M24,27c-1.105,0-2-0.896-2-2s0.895-2,2-2 c1.104,0,2,0.896,2,2S25.104,27,24,27z M30,23c0,0.553-0.447,1-1,1h-1.143c-0.447-1.721-2-3-3.857-3c-1.859,0-3.412,1.279-3.859,3 h-5.282c-0.447-1.721-2-3-3.857-3c-1.859,0-3.412,1.279-3.859,3H6c-0.552,0-1-0.447-1-1v-3h13c1.654,0,3-1.346,3-3v-7h4 c0.334,0,0.646,0.167,0.832,0.445l4,6C29.941,16.609,30,16.803,30,17V23z"
|
||||
id="path3042"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
fill="#333332" /></g></svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,77 @@
|
|||
<?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 128 128"
|
||||
height="128px"
|
||||
id="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 128 128"
|
||||
width="128px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="menu-settings.svg"><metadata
|
||||
id="metadata3091"><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="defs3089" /><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="namedview3087"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.84375"
|
||||
inkscape:cx="-146.44068"
|
||||
inkscape:cy="64"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
d="M 61.636503,66.295309 H 10.458208 c -1.2360991,0 -2.2393097,-1.00321 -2.2393097,-2.239309 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 51.178295 c 1.236099,0 2.239309,1.00321 2.239309,2.239309 0,1.236099 -1.00321,2.239309 -2.239309,2.239309 z"
|
||||
id="path3069"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="M 117.63379,66.295309 H 90.479927 c -1.236099,0 -2.239309,-1.00321 -2.239309,-2.239309 0,-1.236099 1.00321,-2.239309 2.239309,-2.239309 h 27.153863 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239309 -2.23931,2.239309 z"
|
||||
id="path3071"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="M 46.643207,100.50412 H 10.458208 c -1.2360991,0 -2.2393097,-1.003212 -2.2393097,-2.239311 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 36.184999 c 1.236099,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.003211,2.239311 -2.23931,2.239311 z"
|
||||
id="path3073"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="M 117.63379,100.50412 H 76.057655 c -1.236098,0 -2.239309,-1.003212 -2.239309,-2.239311 0,-1.236099 1.003211,-2.239309 2.239309,-2.239309 h 41.576135 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239311 -2.23931,2.239311 z"
|
||||
id="path3075"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="M 31.539066,32.08538 H 10.458208 c -1.2360991,0 -2.2393097,-1.00321 -2.2393097,-2.239309 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 21.080858 c 1.236099,0 2.239309,1.00321 2.239309,2.239309 0,1.236099 -1.00321,2.239309 -2.239309,2.239309 z"
|
||||
id="path3077"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="M 117.63379,32.08538 H 60.384729 c -1.236099,0 -2.239309,-1.00321 -2.239309,-2.239309 0,-1.236099 1.00321,-2.239309 2.239309,-2.239309 h 57.249061 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239309 -2.23931,2.239309 z"
|
||||
id="path3079"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="m 40.0518,40.596995 c -5.928571,0 -10.753163,-4.824592 -10.753163,-10.753163 0,-5.928572 4.824592,-10.752044 10.753163,-10.752044 5.928572,0 10.753164,4.823472 10.753164,10.752044 0,5.929691 -4.824592,10.753163 -10.753164,10.753163 z m 0,-17.026588 c -3.459733,0 -6.274544,2.814811 -6.274544,6.273425 0,3.459733 2.814811,6.274545 6.274544,6.274545 3.459733,0 6.274545,-2.814812 6.274545,-6.274545 0,-3.458614 -2.814812,-6.273425 -6.274545,-6.273425 z"
|
||||
id="path3081"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="m 55.155942,109.02021 c -5.928572,0 -10.753164,-4.82459 -10.753164,-10.754281 0,-5.928572 4.824592,-10.753164 10.753164,-10.753164 5.930811,0 10.754283,4.824592 10.754283,10.753164 0.0011,5.929691 -4.823472,10.754281 -10.754283,10.754281 z m 0,-17.028826 c -3.459733,0 -6.274545,2.814812 -6.274545,6.274545 0,3.461971 2.814812,6.275661 6.274545,6.275661 3.460852,0 6.275664,-2.81481 6.275664,-6.275661 0.0011,-3.459733 -2.814812,-6.274545 -6.275664,-6.274545 z"
|
||||
id="path3083"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /><path
|
||||
d="m 70.153716,74.810283 c -5.93193,0 -10.756522,-4.825712 -10.756522,-10.754283 0,-5.928571 4.825711,-10.753163 10.756522,-10.753163 5.927452,0 10.750924,4.823472 10.750924,10.753163 0,5.929691 -4.823472,10.754283 -10.750924,10.754283 z m 0,-17.028828 c -3.461972,0 -6.277904,2.814812 -6.277904,6.274545 0,3.460853 2.817052,6.275664 6.277904,6.275664 3.458614,0 6.272306,-2.815931 6.272306,-6.275664 0,-3.459733 -2.813692,-6.274545 -6.272306,-6.274545 z"
|
||||
id="path3085"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:1" /></svg>
|
After Width: | Height: | Size: 5.2 KiB |
|
@ -0,0 +1,68 @@
|
|||
<?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="32px"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
id="svg3043"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="menu-sync.svg">
|
||||
<metadata
|
||||
id="metadata3054">
|
||||
<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>
|
||||
<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="namedview3052"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.375"
|
||||
inkscape:cx="-36.61017"
|
||||
inkscape:cy="16"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3043" />
|
||||
<defs
|
||||
id="defs3047" />
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
id="Icons new Arranged Names Color"
|
||||
stroke="none"
|
||||
stroke-width="1"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<g
|
||||
fill="#006FD1"
|
||||
id="52 Cloud Sync"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<path
|
||||
d="M16,26 C18.4189531,26 20.4367034,24.2822474 20.8999819,22 L22.9291112,22 C22.4438852,25.392291 19.5264743,28 16,28 C13.5555272,28 11.4037064,26.7470086 10.1517571,24.8482429 L9,26 L9,25 L9,23 L9,22 L9.07088885,22 L11.1000181,22 L13,22 L11.6081371,23.3918629 C12.456236,24.945806 14.1050078,26 16,26 Z M20.8999819,20 L20,20 L19,20 L20.3918749,18.6081591 C19.5438006,17.0542175 17.8950132,16 16,16 C13.5810469,16 11.5632966,17.7177526 11.1000181,20 L9.07088885,20 C9.55611479,16.607709 12.4735257,14 16,14 C18.4444875,14 20.5963196,15.2530065 21.8482706,17.151799 L23,16.0000977 L23,20 L22.9291112,20 Z M0,19 C0,16.7828376 1.20753986,14.8416411 3.00211353,13.8029948 C3.10690617,8.92340284 7.0952729,5 12,5 C15.2334976,5 18.0687214,6.70521161 19.6554699,9.26543329 C20.2402065,9.09270496 20.859277,9 21.5,9 C24.2845531,9 26.6601501,10.7509485 27.5858427,13.2118973 C30.129704,13.9074543 32,16.2353674 32,19 C32,22.3069658 29.3136299,25 25.9998243,25 L24.0644804,25 C24.3768209,24.3714946 24.617851,23.701298 24.7769836,23 L26.0031611,23 C28.2105543,23 30,21.2046438 30,19 C30,16.790861 28.2058797,15 26.0031611,15 L25.9725356,15 C25.7238035,12.7500155 23.8162709,11 21.5,11 C20.4427534,11 19.4706636,11.3645993 18.7026063,11.974922 C17.8340685,9.0963276 15.1618462,7 12,7 C8.13400656,7 5,10.1340066 5,14 C5,14.3757911 5.0296122,14.7446659 5.08663046,15.1044183 C3.31778819,15.5175755 2,17.1080834 2,19 C2,21.209139 3.79412025,23 5.99683887,23 L7,23 L7,25 L6.00017566,25 C2.68697795,25 0,22.3137085 0,19 Z M0,19"
|
||||
id="Rectangle 1 copy 4"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,51 @@
|
|||
<?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="menu-users.svg"><metadata
|
||||
id="metadata4530"><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="defs4528" /><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="namedview4526"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="-4.497109"
|
||||
inkscape:cy="11.721495"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:none;stroke:#000000;stroke-width:0.83518391999999986;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 11.999999,1.5788564 c -2.7814338,0 -5.0482614,2.2668276 -5.0482614,5.0482619 0,2.7814341 2.2668276,5.0482627 5.0482614,5.0482627 2.781435,0 5.048263,-2.2668286 5.048263,-5.0482627 0,-2.7814343 -2.266828,-5.0482619 -5.048263,-5.0482619 z"
|
||||
id="circle4522"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" /><path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 12,15.1875 c 3.987532,0 6.540859,1.282386 8.125,2.5625 1.523571,1.231168 2.081835,2.379808 2.125,2.46875 l 0,2.03125 -20.5,0 0,-2.03125 C 1.7931647,20.129808 2.3514295,18.981168 3.875,17.75 5.4591406,16.469886 8.0124676,15.1875 12,15.1875 z"
|
||||
id="path4524"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ssccccss" /></svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,73 @@
|
|||
<?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="49.96875"
|
||||
height="49.96875"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="icon.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="-15.307827"
|
||||
inkscape:cy="29.355928"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
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-page="true" />
|
||||
<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(-128.46875,-685.34375)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:25.91360283px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"
|
||||
x="130.12709"
|
||||
y="718.25531"
|
||||
id="text2987"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2989"
|
||||
x="130.12709"
|
||||
y="718.25531"
|
||||
style="font-size:25.91360283px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Sawasdee;-inkscape-font-specification:Sawasdee Bold">{ x }</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,51 @@
|
|||
<?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="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="1454300750_circle_dashboard_fuel_gauge_meter_icon.svg"><metadata
|
||||
id="metadata3942"><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="defs3940" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="765"
|
||||
inkscape:window-height="480"
|
||||
id="namedview3938"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.375"
|
||||
inkscape:cx="16"
|
||||
inkscape:cy="16"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="g3930"
|
||||
style="fill:#a2a2a2;fill-opacity:1"><path
|
||||
d="M16,30c-3.74,0-7.255-1.456-9.899-4.101C1.779,21.578,0.752,15.025,3.547,9.595C3.8,9.104,4.402,8.911,4.894,9.163 s0.685,0.855,0.432,1.347C2.93,15.164,3.81,20.78,7.515,24.485C9.781,26.752,12.794,28,16,28c3.205,0,6.219-1.248,8.485-3.515 S28,19.205,28,16c0-3.206-1.248-6.219-3.515-8.485S19.206,4,16,4c-3.206,0-6.219,1.249-8.485,3.515 c-0.391,0.391-1.023,0.391-1.414,0s-0.391-1.023,0-1.414C8.745,3.457,12.26,2,16,2c3.74,0,7.256,1.457,9.899,4.101 C28.544,8.745,30,12.26,30,16c0,3.739-1.456,7.255-4.101,9.899C23.256,28.544,19.74,30,16,30z"
|
||||
id="path3932"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /></g><g
|
||||
id="g3934"
|
||||
style="fill:#a2a2a2;fill-opacity:1"><path
|
||||
d="M16,20c-1.068,0-2.073-0.416-2.829-1.172c-1.56-1.56-1.56-4.097,0-5.656c1.257-1.257,7.272-3.639,8.465-4.104 c0.371-0.144,0.79-0.056,1.07,0.225s0.369,0.7,0.225,1.07c-0.465,1.193-2.847,7.209-4.104,8.465C18.073,19.584,17.068,20,16,20z M20.188,11.813c-2.453,1.028-5.064,2.235-5.602,2.773c-0.78,0.78-0.78,2.048,0,2.828c0.756,0.756,2.073,0.756,2.829,0 C17.952,16.875,19.16,14.266,20.188,11.813z"
|
||||
id="path3936"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /></g></svg>
|
After Width: | Height: | Size: 2.7 KiB |
|
@ -0,0 +1,51 @@
|
|||
<?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="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="1454300768_truck.svg"><metadata
|
||||
id="metadata3048"><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="defs3046" /><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="namedview3044"
|
||||
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="Layer_1" /><g
|
||||
id="truck_1_"
|
||||
style="fill:#a2a2a2;fill-opacity:1"><path
|
||||
d="M24.832,11.445C24.646,11.167,24.334,11,24,11h-1c-0.553,0-1,0.447-1,1v6c0,0.553,0.447,1,1,1h4 c0.553,0,1-0.447,1-1v-1.5c0-0.197-0.059-0.391-0.168-0.555L24.832,11.445z M27,18h-4v-6h1l3,4.5V18z"
|
||||
fill="#333332"
|
||||
id="path3040"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M31.496,15.336l-4-6C26.938,8.499,26.004,8,25,8h-4V6c0-1.654-1.346-3-3-3H3C1.346,3,0,4.346,0,6v11 c0,1.654,1.346,3,3,3h0v3c0,1.654,1.346,3,3,3h1.142c0.447,1.721,2,3,3.859,3c1.857,0,3.41-1.279,3.857-3h5.282 c0.447,1.721,2,3,3.859,3c1.857,0,3.41-1.279,3.857-3H29c1.654,0,3-1.346,3-3v-6C32,16.406,31.826,15.83,31.496,15.336z M3,18 c-0.552,0-1-0.447-1-1V6c0-0.553,0.448-1,1-1h15c0.553,0,1,0.447,1,1v2v2v7c0,0.553-0.447,1-1,1H3z M11.001,27 c-1.105,0-2-0.896-2-2s0.895-2,2-2c1.104,0,2,0.896,2,2S12.104,27,11.001,27z M24,27c-1.105,0-2-0.896-2-2s0.895-2,2-2 c1.104,0,2,0.896,2,2S25.104,27,24,27z M30,23c0,0.553-0.447,1-1,1h-1.143c-0.447-1.721-2-3-3.857-3c-1.859,0-3.412,1.279-3.859,3 h-5.282c-0.447-1.721-2-3-3.857-3c-1.859,0-3.412,1.279-3.859,3H6c-0.552,0-1-0.447-1-1v-3h13c1.654,0,3-1.346,3-3v-7h4 c0.334,0,0.646,0.167,0.832,0.445l4,6C29.941,16.609,30,16.803,30,17V23z"
|
||||
fill="#333332"
|
||||
id="path3042"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /></g></svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,77 @@
|
|||
<?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 128 128"
|
||||
height="128px"
|
||||
id="Layer_1"
|
||||
version="1.1"
|
||||
viewBox="0 0 128 128"
|
||||
width="128px"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="1454301416_settings.svg"><metadata
|
||||
id="metadata3091"><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="defs3089" /><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="namedview3087"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.84375"
|
||||
inkscape:cx="-41.220339"
|
||||
inkscape:cy="64"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
d="M 61.636503,66.295309 H 10.458208 c -1.2360991,0 -2.2393097,-1.00321 -2.2393097,-2.239309 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 51.178295 c 1.236099,0 2.239309,1.00321 2.239309,2.239309 0,1.236099 -1.00321,2.239309 -2.239309,2.239309 z"
|
||||
id="path3069"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M 117.63379,66.295309 H 90.479927 c -1.236099,0 -2.239309,-1.00321 -2.239309,-2.239309 0,-1.236099 1.00321,-2.239309 2.239309,-2.239309 h 27.153863 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239309 -2.23931,2.239309 z"
|
||||
id="path3071"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M 46.643207,100.50412 H 10.458208 c -1.2360991,0 -2.2393097,-1.003212 -2.2393097,-2.239311 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 36.184999 c 1.236099,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.003211,2.239311 -2.23931,2.239311 z"
|
||||
id="path3073"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M 117.63379,100.50412 H 76.057655 c -1.236098,0 -2.239309,-1.003212 -2.239309,-2.239311 0,-1.236099 1.003211,-2.239309 2.239309,-2.239309 h 41.576135 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239311 -2.23931,2.239311 z"
|
||||
id="path3075"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M 31.539066,32.08538 H 10.458208 c -1.2360991,0 -2.2393097,-1.00321 -2.2393097,-2.239309 0,-1.236099 1.0032106,-2.239309 2.2393097,-2.239309 h 21.080858 c 1.236099,0 2.239309,1.00321 2.239309,2.239309 0,1.236099 -1.00321,2.239309 -2.239309,2.239309 z"
|
||||
id="path3077"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="M 117.63379,32.08538 H 60.384729 c -1.236099,0 -2.239309,-1.00321 -2.239309,-2.239309 0,-1.236099 1.00321,-2.239309 2.239309,-2.239309 h 57.249061 c 1.2361,0 2.23931,1.00321 2.23931,2.239309 0,1.236099 -1.00209,2.239309 -2.23931,2.239309 z"
|
||||
id="path3079"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="m 40.0518,40.596995 c -5.928571,0 -10.753163,-4.824592 -10.753163,-10.753163 0,-5.928572 4.824592,-10.752044 10.753163,-10.752044 5.928572,0 10.753164,4.823472 10.753164,10.752044 0,5.929691 -4.824592,10.753163 -10.753164,10.753163 z m 0,-17.026588 c -3.459733,0 -6.274544,2.814811 -6.274544,6.273425 0,3.459733 2.814811,6.274545 6.274544,6.274545 3.459733,0 6.274545,-2.814812 6.274545,-6.274545 0,-3.458614 -2.814812,-6.273425 -6.274545,-6.273425 z"
|
||||
id="path3081"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="m 55.155942,109.02021 c -5.928572,0 -10.753164,-4.82459 -10.753164,-10.754281 0,-5.928572 4.824592,-10.753164 10.753164,-10.753164 5.930811,0 10.754283,4.824592 10.754283,10.753164 0.0011,5.929691 -4.823472,10.754281 -10.754283,10.754281 z m 0,-17.028826 c -3.459733,0 -6.274545,2.814812 -6.274545,6.274545 0,3.461971 2.814812,6.275661 6.274545,6.275661 3.460852,0 6.275664,-2.81481 6.275664,-6.275661 0.0011,-3.459733 -2.814812,-6.274545 -6.275664,-6.274545 z"
|
||||
id="path3083"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /><path
|
||||
d="m 70.153716,74.810283 c -5.93193,0 -10.756522,-4.825712 -10.756522,-10.754283 0,-5.928571 4.825711,-10.753163 10.756522,-10.753163 5.927452,0 10.750924,4.823472 10.750924,10.753163 0,5.929691 -4.823472,10.754283 -10.750924,10.754283 z m 0,-17.028828 c -3.461972,0 -6.277904,2.814812 -6.277904,6.274545 0,3.460853 2.817052,6.275664 6.277904,6.275664 3.458614,0 6.272306,-2.815931 6.272306,-6.275664 0,-3.459733 -2.813692,-6.274545 -6.272306,-6.274545 z"
|
||||
id="path3085"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a2a2a2;fill-opacity:1" /></svg>
|
After Width: | Height: | Size: 5.2 KiB |
|
@ -0,0 +1,68 @@
|
|||
<?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="32px"
|
||||
version="1.1"
|
||||
viewBox="0 0 32 32"
|
||||
width="32px"
|
||||
id="svg3043"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="1454301395_52_Cloud_Sync.svg">
|
||||
<metadata
|
||||
id="metadata3054">
|
||||
<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>
|
||||
<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="namedview3052"
|
||||
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="svg3043" />
|
||||
<defs
|
||||
id="defs3047" />
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
id="Icons new Arranged Names Color"
|
||||
stroke="none"
|
||||
stroke-width="1"
|
||||
style="fill:#a2a2a2;fill-opacity:1">
|
||||
<g
|
||||
fill="#006FD1"
|
||||
id="52 Cloud Sync"
|
||||
style="fill:#a2a2a2;fill-opacity:1">
|
||||
<path
|
||||
d="M16,26 C18.4189531,26 20.4367034,24.2822474 20.8999819,22 L22.9291112,22 C22.4438852,25.392291 19.5264743,28 16,28 C13.5555272,28 11.4037064,26.7470086 10.1517571,24.8482429 L9,26 L9,25 L9,23 L9,22 L9.07088885,22 L11.1000181,22 L13,22 L11.6081371,23.3918629 C12.456236,24.945806 14.1050078,26 16,26 Z M20.8999819,20 L20,20 L19,20 L20.3918749,18.6081591 C19.5438006,17.0542175 17.8950132,16 16,16 C13.5810469,16 11.5632966,17.7177526 11.1000181,20 L9.07088885,20 C9.55611479,16.607709 12.4735257,14 16,14 C18.4444875,14 20.5963196,15.2530065 21.8482706,17.151799 L23,16.0000977 L23,20 L22.9291112,20 Z M0,19 C0,16.7828376 1.20753986,14.8416411 3.00211353,13.8029948 C3.10690617,8.92340284 7.0952729,5 12,5 C15.2334976,5 18.0687214,6.70521161 19.6554699,9.26543329 C20.2402065,9.09270496 20.859277,9 21.5,9 C24.2845531,9 26.6601501,10.7509485 27.5858427,13.2118973 C30.129704,13.9074543 32,16.2353674 32,19 C32,22.3069658 29.3136299,25 25.9998243,25 L24.0644804,25 C24.3768209,24.3714946 24.617851,23.701298 24.7769836,23 L26.0031611,23 C28.2105543,23 30,21.2046438 30,19 C30,16.790861 28.2058797,15 26.0031611,15 L25.9725356,15 C25.7238035,12.7500155 23.8162709,11 21.5,11 C20.4427534,11 19.4706636,11.3645993 18.7026063,11.974922 C17.8340685,9.0963276 15.1618462,7 12,7 C8.13400656,7 5,10.1340066 5,14 C5,14.3757911 5.0296122,14.7446659 5.08663046,15.1044183 C3.31778819,15.5175755 2,17.1080834 2,19 C2,21.209139 3.79412025,23 5.99683887,23 L7,23 L7,25 L6.00017566,25 C2.68697795,25 0,22.3137085 0,19 Z M0,19"
|
||||
id="Rectangle 1 copy 4"
|
||||
style="fill:#a2a2a2;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,51 @@
|
|||
<?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="menu-users.svg"><metadata
|
||||
id="metadata4530"><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="defs4528" /><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="namedview4526"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="-4.497109"
|
||||
inkscape:cy="11.721495"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:none;stroke:#a2a2a2;stroke-width:0.83518392;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 11.999999,1.5788564 c -2.7814338,0 -5.0482614,2.2668276 -5.0482614,5.0482619 0,2.7814341 2.2668276,5.0482627 5.0482614,5.0482627 2.781435,0 5.048263,-2.2668286 5.048263,-5.0482627 0,-2.7814343 -2.266828,-5.0482619 -5.048263,-5.0482619 z"
|
||||
id="circle4522"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sssss" /><path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:none;stroke:#a2a2a2;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 12,15.1875 c 3.987532,0 6.540859,1.282386 8.125,2.5625 1.523571,1.231168 2.081835,2.379808 2.125,2.46875 l 0,2.03125 -20.5,0 0,-2.03125 C 1.7931647,20.129808 2.3514295,18.981168 3.875,17.75 5.4591406,16.469886 8.0124676,15.1875 12,15.1875 z"
|
||||
id="path4524"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ssccccss" /></svg>
|
After Width: | Height: | Size: 3.2 KiB |
2
todo.md
|
@ -21,5 +21,7 @@
|
|||
########
|
||||
# FAIT #
|
||||
########
|
||||
- [x] Adaptation de page-manger.js
|
||||
- [x] Conception et dev routeur
|
||||
- [x] Initialiser le github.com/git
|
||||
- [x] Structure HTML de base
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Gestion du parc</title>
|
||||
|
||||
<!-- Informations de la page -->
|
||||
<meta name='Content-Type' content='text/html; charset=utf-8'>
|
||||
<meta charset='utf-8'>
|
||||
<meta name='author' content='Adrien MARQUÈS alias {xdrm};'>
|
||||
<meta name='desctiption' content="Système de gestion des véhicules pour STEF.">
|
||||
|
||||
<!-- Dépendences CSS -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/reset.css' /> <!-- Reset du css natif des browsers -->
|
||||
<link type='text/css' rel='stylesheet' href='/css/font.css' /> <!-- Positionnement global des pages -->
|
||||
<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 -->
|
||||
|
||||
|
||||
<!-- Dépendences Javascript -->
|
||||
<script type='text/javascript' src='/js/lib/reset.js' ></script> <!-- Corrections Javascript natif (ajouts) -->
|
||||
<script type='text/javascript' src='/js/lib/API.js' ></script> <!-- Gestion des dialogues client/serveur -->
|
||||
<script type='text/javascript' src='/js/lib/page-manager.js' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
||||
<script type='text/javascript' src='/js/lib/shortcut-manager.js' ></script> <!-- Gestion des raccourcis clavier -->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<!-- CORPS DE LA PAGE -->
|
||||
<div id='WRAPPER'>
|
||||
|
||||
<!-- HEADER DE LA PAGE -->
|
||||
<div id='HEADER'>
|
||||
<div class='icon'></div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- MENU DE LA PAGE -->
|
||||
<nav id='MENU-SIDE'>
|
||||
<span data-link='dashboard' data-desc='Dashboard' ><?php include __ROOT__.'/src/static/menu-dashboard.svg'; ?></span>
|
||||
<span data-link='machines' data-desc='Véhicules' ><?php include __ROOT__.'/src/static/menu-machines.svg'; ?></span>
|
||||
<span data-link='users' data-desc='Utilisateurs' ><?php include __ROOT__.'/src/static/menu-users.svg'; ?></span>
|
||||
<span data-link='sync' data-desc='Synchronisation'><?php include __ROOT__.'/src/static/menu-sync.svg'; ?></span>
|
||||
<span data-link='settings' data-desc='Paramètres' ><?php include __ROOT__.'/src/static/menu-settings.svg'; ?></span>
|
||||
</nav>
|
||||
|
||||
|
||||
<!-- CONTENEUR DE LA PAGE -->
|
||||
<div id='CONTAINER'></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Dépendences Javascript après chargement des éléments -->
|
||||
<script type='text/javascript' src='/js/action-script.js'></script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
<!-- [1] Gestion du sous-menu de gauche -->
|
||||
|
||||
<nav class='inside-menu'>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</nav>
|