diff --git a/manager/module/clusterDefault.php b/manager/module/clusterDefault.php
index e632409..ca80faa 100644
--- a/manager/module/clusterDefault.php
+++ b/manager/module/clusterDefault.php
@@ -87,7 +87,6 @@
$repoMethod = ($class==0) ? 'user_cluster/getAll' : 'machine_cluster/getAll';
-
// On recupere les donnees
$clusters = new Repo($repoMethod, [ $_SESSION['WAREHOUSE']['id'] ]);
diff --git a/manager/view/group/view.php b/manager/view/group/view.php
index f87ae7b..20877c9 100644
--- a/manager/view/group/view.php
+++ b/manager/view/group/view.php
@@ -37,7 +37,7 @@
@icon_type
- machines (@nb_members)
+ @members
@@ -62,7 +62,7 @@
@icon_type
- utilisateurs (@nb_members)
+ @members
@@ -86,42 +86,66 @@
public static function view($params){
$view = '';
- /* [1] On récupère la liste des utilisateurs
+ /* [1] On récupère la liste des groupes d'utilisatuers
=========================================================*/
- $request = new ModuleRequest('clusterDefault/getAll'); // On utilise la methode 'getAll' du module 'clusterDefault'
- $answer = $request->dispatch(); // On recupere la reponse
+ /* (1) On récupère les groupes */
+ $getAllUsersReq = new ModuleRequest('clusterDefault/getAll', ['class' => 0]);
+ $getAllUsers = $getAllUsersReq->dispatch();
- // si erreur, on affiche l'explicitation
- if( $answer->error != ManagerError::Success )
+ /* (2) si erreur, on affiche l'explicitation */
+ if( $getAllUsers->error != ManagerError::Success )
return View::$htmlError;
- $CLUSTERLIST = $answer->get('clusters');
+ /* (3) On enregistre le résultat */
+ $USERCLUSTERS = $getAllUsers->get('clusters');
- foreach($CLUSTERLIST as $u=>$cluster){
- $membersReq = new ModuleRequest('clusterDefault/getMembers', [ 'id_cluster' => $cluster['id_cluster'] ]);
+
+ /* [2] On récupère la liste des groupes de machines
+ =========================================================*/
+ /* (1) On récupère les groupes */
+ $getAllMachinesReq = new ModuleRequest('clusterDefault/getAll', ['class' => 1]);
+ $getAllMachines = $getAllMachinesReq->dispatch();
+
+ /* (2) si erreur, on affiche l'explicitation */
+ if( $getAllMachines->error != ManagerError::Success )
+ return View::$htmlError;
+
+ /* (3) On enregistre le résultat */
+ $MACHINECLUSTERS = $getAllMachines->get('clusters');
+
+
+ /* [3] On crée la vue avec les groupes d'utilisateurs
+ =========================================================*/
+ foreach($USERCLUSTERS as $u=>$cluster){
+ /* (1) On récupère les members */
+ $membersReq = new ModuleRequest('clusterDefault/getMembers', [
+ 'id_cluster' => $cluster['id_user_cluster'],
+ 'class' => 0
+ ]);
$membersRes = $membersReq->dispatch();
/* (2) Gestion si erreur */
if( $membersRes->error == ManagerError::Success ) $members = $membersRes->get('members');
else $members = [];
- $CLUSTERLIST[$u]['members'] = View::replaceMultiple(
- self::template('member'),
+ /* (3) On crées les vues des membres (utilisateurs) */
+ $USERCLUSTERS[$u]['users'] = View::replaceMultiple(
+ self::template('user'),
$members,
- [ 'id_cluster' => $cluster['id_cluster'] ]
+ [ 'id_cluster' => $cluster['id_user_cluster'] ]
);
-
- $CLUSTERLIST[$u]['class'] = (isset($cluster['id_user_cluster'])) ? 0 : 1;
- $CLUSTERLIST[$u]['nb_members'] = (count($members)<2) ? count($members).' membre' : count($members).'membres';
- $CLUSTERLIST[$u]['icon_type'] = ($cluster['class']==0) ? file_get_contents( __ROOT__.'/src/static/menu-side/users.svg' ) : file_get_contents( __ROOT__.'/src/static/menu-side/device.svg' );
+ /* (4) On ajoute les attributs utiles */
+ $USERCLUSTERS[$u]['members'] = (count($members)<2) ? count($members).' utilisateur' : count($members).' utilisateurs';
+ $USERCLUSTERS[$u]['icon_type'] = file_get_contents(__ROOT__.'/src/static/menu-side/users.svg');
}
-
- $view_cluster = View::replaceMultiple(
- self::template('cluster'),
- $CLUSTERLIST, [
+ /* (5) On crée la vue de la liste des tous les groupes d'utilisateurs */
+ $user_clusters = View::replaceMultiple(
+ self::template('user_cluster'),
+ $USERCLUSTERS, [
+ 'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/users.svg' ),
'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' )
@@ -131,7 +155,47 @@
- return View::replaceSingle(self::template(), [ 'clusterlist' => $view_cluster ]);
+ /* [4] On crée la vue avec les groupes de machines
+ =========================================================*/
+ foreach($MACHINECLUSTERS as $u=>$cluster){
+ /* (1) On récupère les members */
+ $membersReq = new ModuleRequest('clusterDefault/getMembers', [
+ 'id_cluster' => $cluster['id_machine_cluster'],
+ 'class' => 1
+ ]);
+ $membersRes = $membersReq->dispatch();
+
+ /* (2) Gestion si erreur */
+ if( $membersRes->error == ManagerError::Success ) $members = $membersRes->get('members');
+ else $members = [];
+
+ /* (3) On crées les vues des membres (machines) */
+ $MACHINECLUSTERS[$u]['machines'] = View::replaceMultiple(
+ self::template('machine'),
+ $members,
+ [ 'id_cluster' => $cluster['id_machine_cluster'] ]
+ );
+
+ /* (4) On ajoute les attributs utiles */
+ $MACHINECLUSTERS[$u]['members'] = (count($members)<2) ? count($members).' machine' : count($members).' machines';
+ $MACHINECLUSTERS[$u]['icon_type'] = file_get_contents(__ROOT__.'/src/static/menu-side/machines.svg');
+ }
+
+ /* (5) On crée la vue de la liste des tous les groupes de machines */
+ $machine_clusters = View::replaceMultiple(
+ self::template('machine_cluster'),
+ $MACHINECLUSTERS, [
+ 'icon_type' => file_get_contents( __ROOT__.'/src/static/menu-side/device.svg' ),
+ 'icon_remove' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/remove.svg' ),
+ 'icon_group' => file_get_contents( __ROOT__.'/src/static/container/group.svg' ),
+ 'icon_edit' => file_get_contents( __ROOT__.'/src/static/sub-menu-side/edit.svg' )
+ ]);
+
+
+
+
+
+ return View::replaceSingle(self::template(), [ 'clusterlist' => $user_clusters.''.$machine_clusters ]);
}
diff --git a/todo.md b/todo.md
index aabafb0..2ac6566 100755
--- a/todo.md
+++ b/todo.md
@@ -3,7 +3,7 @@
###########
- [ ] Prendre en compte au lieu de SERVER['HTTP_HOST'] l'hote et son dossier source
- [ ] Gestion de l'erreur de chargement ou erreur de nav (page-manager)
-
+
############
# EN COURS #
############
@@ -41,7 +41,7 @@
- [x] [view/js/machines] Implementer la recherche pour la suppression
- [x] Nettoyage git
- [x] [ResourceDispatcher] Gestion de la coloration de svg
- - [x] [src/*.svg] Modification des svg (attribution des ID)
+ - [x] [src/....svg] Modification des svg (attribution des ID)
- [x] Correctifs
- [x] [container.scss] Gestion des boutons "enabled"/"disabled" lorsqu'on doit faire une recherche
- [x] [view/users+machines] Suppression du sous-menu "Recherche"
@@ -57,7 +57,7 @@
- [x] [users.js][userDefault][userRepo] Gestion de la nouvelle modification (avec recherche)
- [x] [view/js/machines] Modification de machine
- [x] [userDefault] Implementer la modification
- - [x] [userRepo] Gestion des parametres optionnels
+ - [x] [userRepo] Gestion des parametres optionnels
- [x] [view/users] Gestion des parametres optionnels physiques -> separer la selection et modification
- [x] [machineDefault] Implementation de la recherche
- [x] [userDefault] Implementation de la recherche
@@ -70,7 +70,7 @@
- [x] [view/users][view/machines] Affichage des erreurs pour la liste des utilisateurs et des machines
- [x] [view/users][container.scss] Barre de recherche instantannee (physiques)
- [x] [view/machines+view/js/machines] Prise en compte de pageManager.vars[1] pour le suppression de machine
-- [x] [repo+css+view] Split les listes en 2 colonnes -> Finalisation
+- [x] [repo+css+view] Split les listes en 2 colonnes -> Finalisation
- [x] [repo+css+view] Split les listes en 2 colonnes
- [x] [container.scss] Ajout de padding-top/bottom pour les input/button
- [x] [container.scss] Inversion des etats pour boutons
@@ -107,7 +107,7 @@
- [x] Conception BDD + ameliorations
- [x] Liste des tables
- [x] Liste de attributs
- - [x] Attributs statiques
+ - [x] Attributs statiques
- [x] utilisateur
- [x] machine
- [x] cluster
@@ -127,7 +127,7 @@
- [x] [view/machines] Affichage des groupes des machines
- [x] [view/users] Affichage des groupes des utilisateurs
- [x] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes
-- [x] [user::getClusters] Recuperation des groupes d'un utilisateur
+- [x] [user::getClusters] Recuperation des groupes d'un utilisateur
- [x] [manager/repo/]Creation des repos
- [x] [user] utilisateur
- [x] [machine] machines
@@ -150,11 +150,11 @@
- [x] [Database] Checker de type (types utilises dans la BDD)
- [x] [manager/Repo] Gestion des Repo
- [x] [ManagerError] Correction/ajout des codes erreurs
- - [x] [ModuleRequest] Modification des erreurs
+ - [x] [ModuleRequest] Modification des erreurs
- [x] [ResourceDispatcher] Modification du gestionnaire de ressource car ne marche pas en ligne
- [x] [css/container.css + js/action-script.js] Gestion de l'affichage de la page associee au sous-menu (.active)
- [x] [view/*.php] Modification des views
-- [x] Mise a jour / Modification / Correction des images du menu-side
+- [x] Mise a jour / Modification / Correction des images du menu-side
- [x] [ModuleRequest->dispatch] Passage de l'erreur a la reponse
- [x] [ModuleResponse->serialize] Integration de l'erreur dans la serialisation
- [x] [ModuleResponse->get+getAll] Accesseurs aux donnees de la reponse
@@ -201,4 +201,4 @@
- [x] Adaptation de page-manger.js
- [x] Conception et dev routeur
- [x] Initialiser le github.com/git
-- [x] Structure HTML de base
\ No newline at end of file
+- [x] Structure HTML de base
diff --git a/view/groups.php b/view/groups.php
index 09b3a48..b0955db 100755
--- a/view/groups.php
+++ b/view/groups.php
@@ -29,7 +29,7 @@
Modification
-
+
Composition
@@ -61,8 +61,8 @@
echo "';
@@ -172,7 +172,7 @@
/* [4] Gestion de filtrage
=========================================================*/
- echo "";
+ echo "";
/* (1) Si on a un ID_CLUSTER, on affiche la composition
---------------------------------------------------------*/
diff --git a/view/js/groups-min.js b/view/js/groups-min.js
index 82b81cf..2c0c579 100644
--- a/view/js/groups-min.js
+++ b/view/js/groups-min.js
@@ -1,10 +1,10 @@
var section={view:{text:'#CONTAINER > section[data-sublink="view"] ',element:document.querySelector('#CONTAINER > section[data-sublink="view"]'),searchbar:document.querySelector('#CONTAINER > section[data-sublink="view"] > .searchbar')},create:{text:'#CONTAINER > section[data-sublink="create"] ',element:document.querySelector('#CONTAINER > section[data-sublink="create"]')},remove:{text:'#CONTAINER > section[data-sublink="remove"] ',element:document.querySelector('#CONTAINER > section[data-sublink="remove"]')},
-edit:{text:'#CONTAINER > section[data-sublink="edit"] ',element:document.querySelector('#CONTAINER > section[data-sublink="edit"]')},filter:{text:'#CONTAINER > section[data-sublink="filter"] ',element:document.querySelector('#CONTAINER > section[data-sublink="filter"]'),chooser:{text:'#CONTAINER > section[data-sublink="filter"] form#choose-cluster ',element:document.querySelector('#CONTAINER > section[data-sublink="filter"] form#choose-cluster')}},permissions:{text:'#CONTAINER > section[data-sublink="permissions"] ',
+edit:{text:'#CONTAINER > section[data-sublink="edit"] ',element:document.querySelector('#CONTAINER > section[data-sublink="edit"]')},members:{text:'#CONTAINER > section[data-sublink="members"] ',element:document.querySelector('#CONTAINER > section[data-sublink="members"]'),chooser:{text:'#CONTAINER > section[data-sublink="members"] form#choose-cluster ',element:document.querySelector('#CONTAINER > section[data-sublink="members"] form#choose-cluster')}},permissions:{text:'#CONTAINER > section[data-sublink="permissions"] ',
element:document.querySelector('#CONTAINER > section[data-sublink="permissions"]')}};
if(null!=section.view.element){1 article.inline-box[id]");for(b=0;b section[data-sublink="edit"]')
},
- filter: {
- text: '#CONTAINER > section[data-sublink="filter"] ',
- element: document.querySelector('#CONTAINER > section[data-sublink="filter"]'),
+ members: {
+ text: '#CONTAINER > section[data-sublink="members"] ',
+ element: document.querySelector('#CONTAINER > section[data-sublink="members"]'),
chooser: {
- text: '#CONTAINER > section[data-sublink="filter"] form#choose-cluster ',
- element: document.querySelector('#CONTAINER > section[data-sublink="filter"] form#choose-cluster')
+ text: '#CONTAINER > section[data-sublink="members"] form#choose-cluster ',
+ element: document.querySelector('#CONTAINER > section[data-sublink="members"] form#choose-cluster')
}
},
@@ -150,13 +150,13 @@ if( section.view.element != null ){
}
- /* (7) On gere la "modification" d'un groupe */
+ /* (7) On gere la "modification" des membres d'un groupe */
for( var i = 0 ; i < section.view.group.add.length ; i++ ){
section.view.group.add[i].addEventListener('click', function(e){
pageManager.vars[1] = e.target.getData('cluster');
- navSubMenu('filter');
+ navSubMenu('members');
document.location = '';
}, false);
@@ -625,31 +625,31 @@ if( section.edit.element != null ){
/* GESTION DU CHOIX DU GROUPE AUQUEL MODIFIER LA COMPOSITION DES MEMBRES
*
*/
-if( section.filter.element != null && section.filter.chooser.element != null ){
+if( section.members.element != null && section.members.chooser.element != null ){
/* [1] Initialisation et gestion statique
=========================================================*/
/* (1) On initialise le deflater */
- section.filter.chooser.deflater = new FormDeflater(
- section.filter.chooser.element,
+ section.members.chooser.deflater = new FormDeflater(
+ section.members.chooser.element,
['select'],
['data-name']
);
/* (2) On récupère le bouton */
- section.filter.chooser.submit = document.querySelector(section.filter.chooser.text+'#choose-cluster');
+ section.members.chooser.submit = document.querySelector(section.members.chooser.text+'#choose-cluster');
/* [2] Gestion de l'évènement
=========================================================*/
- section.filter.chooser.submit.addEventListener('click', function(e){
+ section.members.chooser.submit.addEventListener('click', function(e){
/* (0) On annule l'action par défaut (PHP) */
e.preventDefault();
/* (1) On récupère les données */
- var data = section.filter.chooser.deflater.deflate()['cluster'];
+ var data = section.members.chooser.deflater.deflate()['cluster'];
// Vérification du type
if( isNaN(data) )
@@ -679,55 +679,55 @@ if( section.filter.element != null && section.filter.chooser.element != null ){
/* GESTION DE LA MODIFICATION DES MEMBRES
*
*/
-if( section.filter.element != null && section.filter.chooser.element == null ){
+if( section.members.element != null && section.members.chooser.element == null ){
/* (1) On initialise le Deflater() */
- section.filter.deflater = new FormDeflater(
- section.filter.element,
+ section.members.deflater = new FormDeflater(
+ section.members.element,
['input'],
['data-name']
);
/* (2) On enregistre les données initiales */
- section.filter.baseData = section.filter.deflater.deflate()['members'];
+ section.members.baseData = section.members.deflater.deflate()['members'];
/* (3) On enregistre les données in-HTML */
- section.filter.class = document.querySelector('#filter-member-class').value;
- section.filter.idcluster = document.querySelector('#filter-member-idcluster').value;
+ section.members.class = document.querySelector('#members-member-class').value;
+ section.members.idcluster = document.querySelector('#members-member-idcluster').value;
/* [1] Dès qu'une valeur est modifiée dans le formulaire
=========================================================*/
- section.filter.element.addEventListener('click', function(e){
+ section.members.element.addEventListener('click', function(e){
/* (0) On récupère les données + initialise les variables */
var linked = [];
var unlinked = [];
- var data = section.filter.deflater.deflate()['members'];
+ var data = section.members.deflater.deflate()['members'];
// Si c'est pas un tableau, on le met en tableau
if( !(data instanceof Array) )
data = [data];
/* (1) Si on a ajouté des liens */
for( var i = 0 ; i < data.length ; i++ )
- if( section.filter.baseData.indexOf(data[i]) == -1 ) // Si pas dans les données initiales, on ajoute
+ if( section.members.baseData.indexOf(data[i]) == -1 ) // Si pas dans les données initiales, on ajoute
linked.push( data[i] );
/* (2) Si on a supprimé des liens */
- for( var i = 0 ; i < section.filter.baseData.length ; i++ )
- if( data.indexOf(section.filter.baseData[i]) == -1 ) // Si pas dans les données modifiées, on ajoute
- unlinked.push( section.filter.baseData[i] );
+ for( var i = 0 ; i < section.members.baseData.length ; i++ )
+ if( data.indexOf(section.members.baseData[i]) == -1 ) // Si pas dans les données modifiées, on ajoute
+ unlinked.push( section.members.baseData[i] );
/* (3) Gestion de l'ajout de liens */
for( var i = 0 ; i < linked.length ; i++ ){
// {1} On rédige la requête //
var linkReq = {};
- linkReq.path = (section.filter.class==0) ? 'userDefault/link' : 'machineDefault/link';
- linkReq.id_cluster = section.filter.idcluster;
+ linkReq.path = (section.members.class==0) ? 'userDefault/link' : 'machineDefault/link';
+ linkReq.id_cluster = section.members.idcluster;
- if( section.filter.class == 0 ) linkReq.id_user = linked[i];
+ if( section.members.class == 0 ) linkReq.id_user = linked[i];
else linkReq.id_machine = linked[i];
// {2} On envoie la requête //
@@ -743,10 +743,10 @@ if( section.filter.element != null && section.filter.chooser.element == null ){
for( var i = 0 ; i < unlinked.length ; i++ ){
// {1} On rédige la requête //
var unlinkReq = {};
- unlinkReq.path = (section.filter.class==0) ? 'userDefault/unlink' : 'machineDefault/unlink';
- unlinkReq.id_cluster = section.filter.idcluster;
+ unlinkReq.path = (section.members.class==0) ? 'userDefault/unlink' : 'machineDefault/unlink';
+ unlinkReq.id_cluster = section.members.idcluster;
- if( section.filter.class == 0 ) unlinkReq.id_user = unlinked[i];
+ if( section.members.class == 0 ) unlinkReq.id_user = unlinked[i];
else unlinkReq.id_machine = unlinked[i];
// {2} On envoie la requête //
@@ -758,7 +758,7 @@ if( section.filter.element != null && section.filter.chooser.element == null ){
/* (5) On met à jour les données initiales */
- section.filter.baseData = data;
+ section.members.baseData = data;
}, false);