- [x] [index] Gestion avec tableau des redirections

- [ ] [view/clusters] Interface de gestion des groupes
	- [x] [src/static/menu-side][view] Ajout de l'icone des groupes
	- [x] [action-script] Ajout de la page a page-manager
	- [x] [view/groups] Ajout de la page physique
This commit is contained in:
xdrm-brackets 2016-02-19 13:42:28 +01:00
parent b054b9ac4e
commit 5fff67c9b3
8 changed files with 336 additions and 19 deletions

View File

@ -1,2 +1,2 @@
#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].mt{margin-top:3em}#WRAPPER>#MENU-SIDE>span[data-link].mb{margin-bottom:3em}#WRAPPER>#MENU-SIDE>span[data-link] svg,#WRAPPER>#MENU-SIDE>span[data-link] svg *{width:calc( 4em / 2.5 );height:calc( 4em / 2.5 );transition:fill .3s;pointer-events:none}#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;white-space:nowrap;transition:transform .1s;transform-origin:0 0;transform:scaleX(0)}#WRAPPER>#MENU-SIDE>span[data-link]:hover,#WRAPPER>#MENU-SIDE>span[data-link].active{color:#e63321;border-color:#e6e6e6;box-shadow:inset 0 0 .5em #eee}#WRAPPER>#MENU-SIDE>span[data-link]:hover:hover:after,#WRAPPER>#MENU-SIDE>span[data-link].active:hover:after{transform:scaleX(1);color:#fff}#WRAPPER>#MENU-SIDE>span[data-link]:hover svg #stylisable,#WRAPPER>#MENU-SIDE>span[data-link].active svg #stylisable{fill:#000 !important}#WRAPPER>#MENU-SIDE>span[data-link]:hover svg #stroke-stylisable,#WRAPPER>#MENU-SIDE>span[data-link].active svg #stroke-stylisable{stroke:#000 !important} #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].mt{margin-top:3em}#WRAPPER>#MENU-SIDE>span[data-link].mb{margin-bottom:3em}#WRAPPER>#MENU-SIDE>span[data-link] svg,#WRAPPER>#MENU-SIDE>span[data-link] svg *{width:calc( 4em / 2.5 );height:calc( 4em / 2.5 );transition:fill .3s;pointer-events:none}#WRAPPER>#MENU-SIDE>span[data-link][data-desc]:after{content:attr(data-desc);display:block;position:absolute;top:calc( 4em / 4 - 2*.3em );left:calc( 4em * 1.15 - 2*.3em );padding:.3em;border-radius:3px;background-color:#2a2a2a;color:#e2e2e2;white-space:nowrap;transition:transform .1s;transform-origin:0 0;transform:scaleX(0)}#WRAPPER>#MENU-SIDE>span[data-link]:hover,#WRAPPER>#MENU-SIDE>span[data-link].active{color:#e63321;border-color:#e6e6e6;box-shadow:inset 0 0 .5em #eee}#WRAPPER>#MENU-SIDE>span[data-link]:hover:hover:after,#WRAPPER>#MENU-SIDE>span[data-link].active:hover:after{transform:scaleX(1);color:#fff}#WRAPPER>#MENU-SIDE>span[data-link]:hover svg #stylisable,#WRAPPER>#MENU-SIDE>span[data-link].active svg #stylisable{fill:#000 !important}#WRAPPER>#MENU-SIDE>span[data-link]:hover svg #stroke-stylisable,#WRAPPER>#MENU-SIDE>span[data-link].active svg #stroke-stylisable{stroke:#000 !important}
/*# sourceMappingURL=menu-side.css.map */ /*# sourceMappingURL=menu-side.css.map */

View File

@ -48,8 +48,8 @@
content: attr(data-desc); content: attr(data-desc);
display: block; display: block;
position: absolute; position: absolute;
top: calc( .7em - 2*.3em ); top: calc( #{$menu-side-width} / 4 - 2*.3em );
left: calc( 4.6em - 2*.3em ); left: calc( #{$menu-side-width} * 1.15 - 2*.3em );
padding: .3em; padding: .3em;
border-radius: 3px; border-radius: 3px;

View File

@ -23,22 +23,19 @@
// Racine -> page d'accueil // Racine -> page d'accueil
$R->get('/?', function(){ header('Location: /dashboard/'); }); $R->get('/?', function(){ header('Location: /dashboard/'); });
// Liste des pages du site
$page_list = array(
'dashboard',
'profile',
'machines',
'users',
'groups',
'analytics',
'settings'
);
// nomPage/arg1/arg2 -> inclusion de la page // nomPage/arg1/arg2 -> inclusion de la page
$R->get('dashboard(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); $R->get('(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
$R->get('profile(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
$R->get('machines(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
$R->get('users(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
$R->get('analytics(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
$R->get('settings(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
// nomPage -> nomPage/
// $R->get('dashboard/', function(){ include __ROOT__.'/view.php'; });
// $R->get('machines/', function(){ include __ROOT__.'/view.php'; });
// $R->get('users/', function(){ include __ROOT__.'/view.php'; });
// $R->get('analytics/', function(){ include __ROOT__.'/view.php'; });
// $R->get('settings/', function(){ include __ROOT__.'/view.php'; });
// Dispatcher // Dispatcher
$R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); }); $R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });

View File

@ -9,7 +9,7 @@ DOM = {
/* [0] Instanciation /* [0] Instanciation
===========================================*/ ===========================================*/
var pageManager = new pageManagerClass(); var pageManager = new pageManagerClass();
pageManager.setPage(null, '/view', DOM.CONTAINER, ['profile', 'dashboard', 'machines', 'users', 'analytics', 'settings'] ); pageManager.setPage(null, '/view', DOM.CONTAINER, ['profile', 'dashboard', 'machines', 'users', 'groups', 'analytics', 'settings'] );
var api = new APIClass('/api/'); var api = new APIClass('/api/');

View File

@ -0,0 +1,65 @@
<?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"
id="Слой_1"
version="1.1"
viewBox="0 0 32 32"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="100%"
height="100%"
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 /></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"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-page="true"
inkscape:zoom="16"
inkscape:cx="8.324924"
inkscape:cy="21.713747"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g2994" /><g
id="g2994"
transform="translate(0,-2.99187)"><path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path3"
d="M 28.823169,31.619606 H 3.2071602 c -1.4088806,0 -2.56160119,-1.152721 -2.56160119,-2.561601 V 12.407599 c 0,-1.408881 1.15272059,-2.5616015 2.56160119,-2.5616015 H 28.823169 c 1.40888,0 2.561601,1.1527205 2.561601,2.5616015 v 16.650406 c 0,1.40888 -1.152721,2.561601 -2.561601,2.561601 z" /><path
style="fill:#e5e6e6"
inkscape:connector-curvature="0"
id="path5"
d="M 28.823169,29.058005 H 3.2071602 c -1.4088806,0 -2.56160119,-1.152721 -2.56160119,-2.561601 v 2.561601 c 0,1.40888 1.15272059,2.561601 2.56160119,2.561601 H 28.823169 c 1.40888,0 2.561601,-1.152721 2.561601,-2.561601 v -2.561601 c 0,1.40888 -1.152721,2.561601 -2.561601,2.561601 z" /><path
style="fill:#e5e6e6"
inkscape:connector-curvature="0"
id="path7"
d="m 0.64555901,9.8459975 v -0.51232 c 0,-1.4088812 1.15272059,-2.5616009 2.56160119,-2.5616009 h 6.2503064 c 0.8965594,0 1.7162714,0.4610875 2.1773604,1.229568 l 0.922176,1.5113452" /><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:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.49230769;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="M 3.21875,6.15625 C 1.4694916,6.15625 0,7.5944911 0,9.34375 l 0,0.5 c 0,0.348518 0.30773224,0.625 0.65625,0.625 0.17425888,0 0.19846621,-0.198466 0.3125,-0.3125 0.1140338,-0.114034 0.3125,-0.138241 0.3125,-0.3125 l 0,-0.5 c 0,-1.0712735 0.8662262,-1.9375 1.9375,-1.9375 l 6.25,0 c 0.657983,0 1.287942,0.344486 1.625,0.90625 l 0.53125,0.90625 -8.40625,0 c -0.8746292,0 -1.6706585,0.3581585 -2.25,0.9375 C 0.38940851,10.735592 0,11.531621 0,12.40625 L 0,29.0625 C 0,30.811758 1.4694915,32.25 3.21875,32.25 l 25.59375,0 C 30.561758,32.25 32,30.811758 32,29.0625 l 0,-16.65625 c 0,-1.749259 -1.438242,-3.1875 -3.1875,-3.1875 l -15.6875,0 c -0.003,-0.00571 0.0026,-0.026129 0,-0.03125 l -0.90625,-1.53125 -0.03125,0 c -0.582051,-0.9423713 -1.607957,-1.5 -2.71875,-1.5 z m 0,4.3125 25.59375,0 c 1.071273,0 1.9375,0.866226 1.9375,1.9375 l 0,16.65625 C 30.75,30.133773 29.883773,31 28.8125,31 L 3.21875,31 c -1.0712737,0 -1.9375,-0.866227 -1.9375,-1.9375 l 0,-16.65625 c 0,-1.071274 0.8662261,-1.9375 1.9375,-1.9375 z"
id="stylisable"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssssssssccsssssssssccccsssssssssss" /></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -7,6 +7,10 @@
############ ############
# EN COURS # # EN COURS #
############ ############
- [ ] [view/clusters] Interface de gestion des groupes
- [x] [src/static/menu-side][view] Ajout de l'icone des groupes
- [x] [action-script] Ajout de la page a page-manager
- [x] [view/groups] Ajout de la page physique
- [ ] [view/users] Gestion des filtres - [ ] [view/users] Gestion des filtres
- [ ] [view/machines] Gestion des filtres - [ ] [view/machines] Gestion des filtres
@ -17,6 +21,7 @@
######## ########
# FAIT # # FAIT #
######## ########
- [x] [index] Gestion avec tableau des redirections
- [x] [menu-side.scss] Icone + svg pour icone du profile - [x] [menu-side.scss] Icone + svg pour icone du profile
- [x] [container.scss] Alignement sur les listes des icones de modif+suppr - [x] [container.scss] Alignement sur les listes des icones de modif+suppr
- [x] [view/js/*] animation pour les recherches (modif/suppr) - [x] [view/js/*] animation pour les recherches (modif/suppr)

View File

@ -49,6 +49,7 @@
<span data-link='dashboard' data-desc='Tableau de bord' class='apart' ><?php echo ResourceDispatcher::getResource('f/svg/dashboard/st/menu-side/777777'); ?></span> <span data-link='dashboard' data-desc='Tableau de bord' class='apart' ><?php echo ResourceDispatcher::getResource('f/svg/dashboard/st/menu-side/777777'); ?></span>
<span data-link='machines' data-desc='Véhicules' ><?php echo ResourceDispatcher::getResource('f/svg/machines/st/menu-side/777777' ); ?></span> <span data-link='machines' data-desc='Véhicules' ><?php echo ResourceDispatcher::getResource('f/svg/machines/st/menu-side/777777' ); ?></span>
<span data-link='users' data-desc='Utilisateurs' ><?php echo ResourceDispatcher::getResource('f/svg/users/st/menu-side/777777' ); ?></span> <span data-link='users' data-desc='Utilisateurs' ><?php echo ResourceDispatcher::getResource('f/svg/users/st/menu-side/777777' ); ?></span>
<span data-link='groups' data-desc='Gestion des groupes' ><?php echo ResourceDispatcher::getResource('f/svg/groups/st/menu-side/777777'); ?></span>
<span data-link='analytics' data-desc='Statistiques et suivi' ><?php echo ResourceDispatcher::getResource('f/svg/analytics/st/menu-side/777777'); ?></span> <span data-link='analytics' data-desc='Statistiques et suivi' ><?php echo ResourceDispatcher::getResource('f/svg/analytics/st/menu-side/777777'); ?></span>
<span data-link='settings' data-desc='Paramètres' class='mt' ><?php echo ResourceDispatcher::getResource('f/svg/settings/st/menu-side/777777' ); ?></span> <span data-link='settings' data-desc='Paramètres' class='mt' ><?php echo ResourceDispatcher::getResource('f/svg/settings/st/menu-side/777777' ); ?></span>

249
view/groups.php Executable file
View File

@ -0,0 +1,249 @@
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/autoloader.php';
use \manager\ModuleRequest;
use \manager\ManagerError;
use \manager\ResourceDispatcher;
use \manager\Repo;
?>
<!-- [1] Gestion du sous-menu de gauche -->
<nav class='sub-menu-side'>
<span data-sublink='view'>
<span class='svg'><?php echo ResourceDispatcher::getResource( 'f/svg/view/st/sub-menu-side' ); ?></span>
<span>Tout afficher</span>
</span>
<span data-sublink='create' >
<span class='svg'><?php echo ResourceDispatcher::getResource( 'f/svg/create/st/sub-menu-side' ); ?></span>
<span>Creation</span>
</span>
<span data-sublink='remove' >
<span class='svg'><?php echo ResourceDispatcher::getResource( 'f/svg/remove/st/sub-menu-side' ); ?></span>
<span>Suppression</span>
</span>
<span data-sublink='edit' >
<span class='svg'><?php echo ResourceDispatcher::getResource( 'f/svg/edit/st/sub-menu-side' ); ?></span>
<span>Modification</span>
</span>
<span data-sublink='filter' >
<span class='svg'><?php echo ResourceDispatcher::getResource( 'f/svg/filter/st/sub-menu-side' ); ?></span>
<span>Filtrer</span>
</span>
</nav>
<?php
$post = array();
foreach($_POST as $k=>$v)
array_push($post, $k);
$sublink = $post[0];
/* [1] VIEW -> Liste des utilisateurs
=========================================================*/
$request = new ModuleRequest('userDefault/getAll'); // On utilise la methode 'getAll' du module 'userDefault'
$answer = $request->dispatch(); // On recupere la reponse
echo "<section data-sublink='view' class='list'>";
// echo 'Liste des utilisateurs: <br>';
// si erreur, on affiche l'explicitation
if( $answer->error != ManagerError::Success ){
// var_dump( ManagerError::explicit($answer->error) );
echo "<span class='error'>Une erreur est survenue, veuilez contacter le webmaster si cette erreur persiste.</span>";
}
// Si aucune erreur, on affiche les resultats
else{
// Barre de recherche
echo "<input type='text' class='searchbar' placeholder='Recherche'>";
// Liste des utilisateurs
foreach( $answer->get('users') as $user){
$clusters = new Repo('user/getClusters', array($user['id_user']));
$clusters = $clusters->answer();
echo "<article class='inline-box' id='".$user['id_user']."'>";
// Prenom Nom
echo "<span class='title'>".$user['firstname']." ".$user['lastname']." <span>#".$user['username']."</span></span>";
// Icone vers la suppression
echo "<span class='link_remove' data-user='".$user['id_user']."'>";
echo ResourceDispatcher::getResource('f/svg/remove/st/sub-menu-side');
echo "</span>";
// Icone vers la modification
echo "<span class='link_edit' data-user='".$user['id_user']."'>";
echo ResourceDispatcher::getResource('f/svg/edit/st/sub-menu-side');
echo "</span>";
// Code RFID
echo "<span class='code'>";
echo ResourceDispatcher::getResource('f/svg/card/st/container');
echo "<span>";
echo $user['code'];
echo "</span>";
echo"</span>";
// Adresse email
echo "<span class='mail'>";
echo ResourceDispatcher::getResource('f/svg/mail/st/container');
echo "<a href='mailto:".$user['mail']."'><span>";
echo $user['mail'];
echo "</span></a>";
echo"</span>";
// Groupes de la machine
echo "<span class='groups'>";
echo ResourceDispatcher::getResource('f/svg/group/st/container');
if( $clusters != false )
foreach($clusters as $cluster)
echo "<span>".$cluster['name']."</span>";
echo"</span>";
echo "</article>";
}
}
echo '</section>';
/* [2] Creation d'utilisateur
=========================================================*/
echo "<section data-sublink='create'>";
echo "<form class='valid'>";
echo "<input id='create_code' type='text' placeholder='CO-DE-RF-ID'><br>";
echo "<input id='create_username' type='text' placeholder='Username'><br>";
echo "<input id='create_firstname' type='text' placeholder='Firstname'><br>";
echo "<input id='create_lastname' type='text' placeholder='Lastname'><br>";
echo "<input id='create_mail' type='text' placeholder='Mail'><br>";
echo "<input id='create_password' type='password' placeholder='Password'><br>";
echo "<input id='create_status' type='text' placeholder='Status'><br>";
echo "<button id='create_submit'>Créer</button>";
echo "</form>";
echo '</section>';
/* [3] Suppression d'utilisateur
=========================================================*/
echo "<section data-sublink='remove'>";
echo "<form class='invalid'>";
// Recherche d'utilisateur
echo "<input id='remove_search_keyword' type='text' class='search' placeholder='Recherche...'><br>";
echo "<input id='remove_search_id' type='hidden' value=''>";
// Indice du resultat
echo "<span class='remove_search_view'>utilisateur <span class='remove_search_num'>0</span> sur <span class='remove_search_sum'>0</span></span><br><br>";
echo "<button id='remove_search_submit' class='search'>Trouver</button><br>";
echo "<br><br><hr class='OR' data-label='PUIS' /><br><br>";
// Suppression d'utilisateur
echo "<input id='remove_code' type='text' placeholder='Code'><br>";
echo "<input id='remove_username' type='text' placeholder='Username'><br>";
echo "<button id='remove_submit' disabled>Supprimer</button>";
echo "</form>";
echo '</section>';
/* [4] Modification d'utilisateur
=========================================================*/
echo "<section data-sublink='edit'>";
echo "<form class='neutral'>";
echo "<input id='edit_search_keyword' type='text' class='search' placeholder='Recherche...'><br>";
echo "<input id='edit_search_id' type='hidden' value=''>";
// Indice du resultat
echo "<span class='edit_search_view'>utilisateur <span class='edit_search_num'>0</span> sur <span class='edit_search_sum'>0</span></span><br><br>";
echo "<button id='edit_search_submit' class='search'>Trouver</button><br>";
echo "<br><br><hr class='OR' data-label='PUIS' /><br><br>";
echo "<input id='edit_code' type='text' placeholder='CO-DE-RF-ID'><br>";
echo "<input id='edit_username' type='text' placeholder='Username'><br>";
echo "<input id='edit_firstname' type='text' placeholder='Firstname'><br>";
echo "<input id='edit_lastname' type='text' placeholder='Lastname'><br>";
echo "<input id='edit_mail' type='text' placeholder='Mail'><br>";
echo "<input id='edit_password' type='password' placeholder='Password'><br>";
echo "<input id='edit_status' type='text' placeholder='Status'><br>";
echo "<button id='edit_submit' disabled>Modifier</button>";
echo "</form>";
echo '</section>';
/* [4] Gestion de filtrage
=========================================================*/
echo "<section data-sublink='filter'>";
echo "<form class='neutral'>";
echo "</form>";
echo '</section>';