From 984d60f4674430b0619c3cc785100b04d1d9e427 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sat, 24 Oct 2015 19:01:22 +0200 Subject: [PATCH] =?UTF-8?q?Affichage=20des=20groupes=20modifi=C3=A9=20(?= =?UTF-8?q?=C3=A0=20refaire=20en=20suivant=20le=20template@2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API.js | 2 +- API.php | 6 +- css/container.css | 65 ++----------------- css/global.css | 102 ++++++++++++++++++++++++++++++ manager/database.php | 10 +-- manager/groups.php | 10 +-- manager/security.php | 1 - manager/user.php | 5 +- page/_JS/groups.js | 16 ++++- page/groups.php | 57 +++++++++-------- src/close.svg | 75 ---------------------- src/more.svg | 1 + xdoc/generateur_100_etudiants.php | 0 xdoc/json_generator | 0 14 files changed, 169 insertions(+), 181 deletions(-) create mode 100644 css/global.css delete mode 100755 src/close.svg create mode 100755 src/more.svg mode change 100644 => 100755 xdoc/generateur_100_etudiants.php mode change 100644 => 100755 xdoc/json_generator diff --git a/API.js b/API.js index d5b8def..a04ec9b 100755 --- a/API.js +++ b/API.js @@ -51,7 +51,7 @@ APIClass.prototype = { if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée /* DEBUG : affiche la réponse BRUTE de API.php */ - // console.log('API.php => '+ptrAPI.xhr[i].responseText); + console.log('API.php => '+ptrAPI.xhr[i].responseText); console.log(JSON.parse(ptrAPI.xhr[i].responseText) ); /* si success de requête */ diff --git a/API.php b/API.php index 4e53c80..b0d13b0 100755 --- a/API.php +++ b/API.php @@ -1,4 +1,4 @@ -level_1) ){ include 'manager/user.php'; user_switch_level_1($request, $answer); } + if( isset($request->level_1) ){ require_once __ROOT__.'/manager/user.php'; user_switch_level_1($request, $answer); } else { $answer->request = 'missing_level_1'; } break; @@ -39,7 +39,7 @@ /* GROUPES */ /***********/ case 'groups': - if( isset($request->level_1) ){ include 'manager/groups.php'; groups_switch_level_1($request, $answer); } + if( isset($request->level_1) ){ require_once __ROOT__.'/manager/groups.php'; groups_switch_level_1($request, $answer); } else { $answer->request = 'missing_level_1'; } break; diff --git a/css/container.css b/css/container.css index d0cdf69..6c6e30c 100755 --- a/css/container.css +++ b/css/container.css @@ -7,7 +7,11 @@ width: 100%; min-height: 100%; height: auto; - padding: 2em; + + /* flex (as container) */ + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; /* background */ background-color: #ecf0f1; @@ -17,64 +21,7 @@ } -#CONTAINER section.active{ display: block; } +#CONTAINER section.active{ display: flex; } -/* STYLE "BASIC" DES TABLEAUX */ -table.basic{ - /* position */ - float: left; - margin: 1em; - - - - /* border */ - border-radius: 5px; - border-spacing: 0; - box-shadow: 0 0 4px #e3e3e3; -} - - -table.basic tr td, -table.basic tr th{ - /* position */ - padding: 1em 1.5em; - - /* border */ - border-width: 1px 1px 0 0; - border-style: solid; - border-color: #e0e1e3; - - /* backgroud */ - background-color: #fff; - - /* foreground */ - color: #4e4e4e; -} - -table.basic tr th{ background-color: #f7f8fc; } -table.basic tr th:first-letter{ text-transform: uppercase; } - - -/* on ajoute les rebords pour ceux à gauche */ -table.basic tr td:first-child, -table.basic tr th:first-child{ border-left-width: 1px; } -/* on ajoute les rebords pour ceux en bas */ -table.basic tr:last-child td { border-bottom-width: 1px; } - - -/* angle haut gauche */ -table.basic tr:first-child th:first-child{ border-radius: 5px 0 0 0; } -/* angle haut droit */ -table.basic tr:first-child th:last-child { border-radius: 0 5px 0 0; } -/* angle bas gauche */ -table.basic tr:last-child td:first-child { border-radius: 0 0 0 5px; } -/* angle bas droit */ -table.basic tr:last-child td:last-child { border-radius: 0 0 5px 0; } - -/* @hover */ -table.basic tr:hover td{ - background-color: #f7f8fc; - color: #333; -} \ No newline at end of file diff --git a/css/global.css b/css/global.css new file mode 100644 index 0000000..ff0caee --- /dev/null +++ b/css/global.css @@ -0,0 +1,102 @@ +/* STYLE "BASIC" DES TABLEAUX */ +table.basic{ + /* position */ + margin: 2em 1em; + + /* border */ + border-radius: 5px; + border-spacing: 0; + box-shadow: 0 0 4px #e3e3e3; +} + +/* affichage du corps si tête activée */ +table.basic thead + tbody{ + display: block; + max-height: 3em; + overflow: hidden; + + transition: max-height .5s 0s ease-in-out; + -moz-transition: max-height .5s 0s ease-in-out; + -webkit-transition: max-height .5s 0s ease-in-out; + -ms-transition: max-height .5s 0s ease-in-out; + -o-transition: max-height .5s 0s ease-in-out; +} +table.basic thead.active + tbody{ + max-height: calc( 3*40em ); +} + + + + +table.basic tr td, +table.basic tr th{ + /* position */ + padding: 1em 1.5em; + + /* border */ + border-width: 1px 1px 0 0; + border-style: solid; + border-color: #e0e1e3; + + /* backgroud */ + background-color: #fff; + + /* foreground */ + color: #4e4e4e; + + /* animation */ + transition: all .2s ease-in-out; + -moz-transition: all .2s ease-in-out; + -webkit-transition: all .2s ease-in-out; + -ms-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + + /* extra */ + cursor: default; +} + +/* la ligne "Voir plus" */ +table.basic tr td.more{ + /* background */ + background: #f7f8fc url(../src/more.svg) right 1em center no-repeat; + background-size: auto 1.5em; + + /* foreground */ + color: #b7b7b7; + text-align: right; + padding-right: 3em; + + /* extra */ + cursor: pointer; +} + +/* on cache "voir plus" quand le tableau est déroulé */ +table.basic thead.active + td.more{ display: none; } + + +/* différence avec */ +table.basic tr th{ background-color: #f7f8fc; } +table.basic tr th:first-letter{ text-transform: uppercase; } + + +/* on ajoute les rebords pour ceux à gauche */ +table.basic tr td:first-child, +table.basic tr th:first-child{ border-left-width: 1px; } +/* on ajoute les rebords pour ceux en bas */ +table.basic tr:last-child td { border-bottom-width: 1px; } + + +/* angle haut gauche */ +table.basic tr:first-child th:first-child{ border-radius: 5px 0 0 0; } +/* angle haut droit */ +table.basic tr:first-child th:last-child { border-radius: 0 5px 0 0; } +/* angle bas gauche */ +table.basic tr:last-child td:first-child { border-radius: 0 0 0 5px; } +/* angle bas droit */ +table.basic tr:last-child td:last-child { border-radius: 0 0 5px 0; } + +/* @hover */ +table.basic tr:hover td{ + background-color: #f7f8fc; + color: #333; +} \ No newline at end of file diff --git a/manager/database.php b/manager/database.php index 01458af..878d1e9 100755 --- a/manager/database.php +++ b/manager/database.php @@ -195,7 +195,7 @@ class DataBase{ $groupe = new stdClass(); $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe - $groupe->userlist = $this->listeUtilisateurGroupe($groupe->nom); // on charge la liste des utilisateurs de ce groupe + $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom); // on charge la liste des utilisateurs de ce groupe array_push($grouplist, $groupe); // on l'ajoute au résultat } @@ -229,14 +229,10 @@ class DataBase{ // [3] ensuite tu peux écrire manager/database.php en vérifiant tout les cas (ceux que j'ai cité ou oublié) // // Inspire toi de ce qui a déjà été fait au dessus et essaie de - if(isset($nouveauGroupe) && is_string($nouveauGroupe) && $nouveauGroupe == 'A' || 'B' || 'C' || 'D' || 'E' || 'F') { - + if(isset($nouveauGroupe) && is_string($nouveauGroupe) && $nouveauGroupe == 'A' || 'B' || 'C' || 'D' || 'E' || 'F') return 'L\'étudiant a été déplacé'; - } - else { - + else return 'L\'étudiant n\'a pas pu être déplacé'; - } } } diff --git a/manager/groups.php b/manager/groups.php index 1f7c121..4400d72 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -1,6 +1,7 @@ -nom); // nom bon format if( $nomCheck ){ // si tout les paramètres sont bons - require_once __ROOT__.'/manager/database.php'; $answer->request = DataBase::getInstance()->creerGroupe($request->nom); }else $answer->request = 'param_error'; @@ -60,7 +60,6 @@ $groupeCheck = $utilisateurCheck && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format if( $groupeCheck ){ // si tout les paramètres sont bons - require_once __ROOT__.'/manager/database.php'; $answer->request = DataBase::getInstance()->ajouterEtudiantGroupe($request->utilisateur, $request->groupe); }else $answer->request = 'param_error'; @@ -76,7 +75,6 @@ $groupeCheck = $nEmptyParam && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format if( $groupeCheck ){ // si tout les paramètres sont bons - require_once __ROOT__.'/manager/database.php'; $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->groupe); if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs @@ -94,8 +92,6 @@ /* retourne les utilisateurs de tous les groupe */ /************************************************/ case 'grouplist': - require_once __ROOT__.'/manager/database.php'; - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupes(); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs diff --git a/manager/security.php b/manager/security.php index 6d2e37c..f5e33ad 100755 --- a/manager/security.php +++ b/manager/security.php @@ -80,5 +80,4 @@ - ?> \ No newline at end of file diff --git a/manager/user.php b/manager/user.php index dac8252..2df592a 100755 --- a/manager/user.php +++ b/manager/user.php @@ -1,4 +1,6 @@ -droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format if( $droitsCheck ){ // si tout les paramètres sont bons - require_once __ROOT__.'/manager/database.php'; $answer->request = DataBase::getInstance()->creerUtilisateur($request->username, $request->prenom, $request->nom, $request->email, $request->password, $request->droits); }else $answer->request = 'param_error'; diff --git a/page/_JS/groups.js b/page/_JS/groups.js index 728d469..718f193 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -41,4 +41,18 @@ var request = { // @ on envoie l'objet // @ quand réception: affichage de l'objet reçu // -API.send(request, function(){} ); +API.send(request, function(r){} ); + + +/* Gestion du déroulement des tableaux */ +var allgroups = document.querySelector('#CONTAINER section[name=allgroups]'); + +allgroups.addEventListener('click', function(e){ + + // s'il s'agit de la case "Voir plus" + if( e.target.className == 'more' ){ + var thead = e.target.parentNode.parentNode.parentNode.children[0]; + thead.className = (thead.className=='active') ? '' : 'active'; + } + +}, false); \ No newline at end of file diff --git a/page/groups.php b/page/groups.php index 3d25cde..e936190 100755 --- a/page/groups.php +++ b/page/groups.php @@ -1,6 +1,5 @@ +
grouplist as $group){ // pour chaque groupe + if( $answer->request == 'success' ){ // si pas d'erreur + ////////////////////////////////////////////////////////////// - if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs + foreach($answer->grouplist as $group){ // pour chaque groupe - echo ""; + if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo "
Groupe '.$group->nom.'
"; - - - echo ''; - // pour chaque utilisateur - foreach($group->userlist as $user){ + echo ''; echo ''; - foreach($user as $key=>$value) - if( $key == 'prenom' || $key == 'nom' ) - echo ''; + echo ''; echo ''; - } + echo ''; - echo ''; - echo '
'.$value.'Groupe '.$group->nom.'
'; + echo ''; + echo 'Voir plus'; + + // pour chaque utilisateur + foreach($group->userlist as $user){ + + echo ''; + + foreach($user as $key=>$value) + if( $key == 'prenom' || $key == 'nom' ) + echo ''.$value.''; + echo ''; + } + + echo ''; + + echo ''; + + } } - } + //////////////////////////////////////////////////////// + }else + echo "Erreur interne..."; } ?> diff --git a/src/close.svg b/src/close.svg deleted file mode 100755 index fe54b84..0000000 --- a/src/close.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/src/more.svg b/src/more.svg new file mode 100755 index 0000000..b766816 --- /dev/null +++ b/src/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/xdoc/generateur_100_etudiants.php b/xdoc/generateur_100_etudiants.php old mode 100644 new mode 100755 diff --git a/xdoc/json_generator b/xdoc/json_generator old mode 100644 new mode 100755