diff --git a/build/viewer/view/group/permission_choice.php b/build/viewer/view/group/permission_choice.php
index b2dd63a..708fbdd 100644
--- a/build/viewer/view/group/permission_choice.php
+++ b/build/viewer/view/group/permission_choice.php
@@ -90,7 +90,7 @@
/* (3) On récupère la liste des UID uniquement */
$members_ids = [];
foreach($getmembersResponse->get('clusters') as $member)
- $members_ids[] = $member['id_source'];
+ $members_ids[] = $member['id_user_cluster'];
diff --git a/build/viewer/view/group/permission_choice.twig b/build/viewer/view/group/permission_choice.twig
index fc253f6..cf79f44 100644
--- a/build/viewer/view/group/permission_choice.twig
+++ b/build/viewer/view/group/permission_choice.twig
@@ -1,8 +1,10 @@
Modifier d'autres permissions
-
+
diff --git a/public_html/view/js/groups.js b/public_html/view/js/groups.js
index 2f15609..082a420 100755
--- a/public_html/view/js/groups.js
+++ b/public_html/view/js/groups.js
@@ -34,8 +34,10 @@ var section = {
permissions: {
text: '#CONTAINER > section[data-sublink="permissions"] ',
element: document.querySelector('#CONTAINER > section[data-sublink="permissions"]'),
- searchbar: document.querySelector('#CONTAINER > section[data-sublink="permissions"] > .searchbar')
- }
+ searchbar: document.querySelector('#CONTAINER > section[data-sublink="permissions"] > .searchbar'),
+
+ member_view: document.querySelector('#CONTAINER > section[data-sublink="permissions"] > [data-member-view]') != null
+ },
};
@@ -131,7 +133,6 @@ if( section.view.element != null ){
section.view.group.rem[i].addEventListener('click', function(e){
var prefix = e.target.getData('cluster')[0];
var cluster = e.target.getData('cluster').slice(1);
- console.log(e.target);
// {1} On rédige la requête //
var request = {};
@@ -159,17 +160,6 @@ if( section.view.element != null ){
/* (7) On gere la "modification" des membres d'un groupe */
for( i = 0 ; i < section.view.group.add.length ; i++ ){
- // Si bouton pour choisir un autre groupe, on l'indexe
- section.view.group.change = $('members-change-group') || null;
-
- // on crée le lien
- if( section.view.group.change !== null )
- section.view.group.change.addEventListener('click', function(e){
- pageManager.vars = [ 'members' ];
- pageManager.refresh();
- }, false);
-
-
section.view.group.add[i].addEventListener('mouseup', function(e){
pageManager.vars = [ 'members', e.target.getData('cluster') ];
@@ -178,6 +168,23 @@ if( section.view.element != null ){
}, false);
}
+
+
+
+
+ /* (8) On gere la "modification" des membres d'une permission */
+ for( i = 0 ; i < section.view.group.add.length ; i++ ){
+
+ section.view.group.add[i].addEventListener('mouseup', function(e){
+
+ pageManager.vars = [ 'permissions', e.target.getData('cluster') ];
+ pageManager.refresh();
+
+ }, false);
+
+ }
+
+
}
@@ -789,6 +796,16 @@ if( section.members.element != null && section.members.chooser.element != null )
*/
if( section.members.element != null && section.members.chooser.element == null ){
+ // Si bouton pour revenir au choix de groupe
+ section.view.group.change_members = $('members-change-group') || null;
+
+ // on crée/gère le lien
+ if( section.view.group.change_members !== null )
+ section.view.group.change_members.addEventListener('click', function(e){
+ pageManager.vars = [ 'members' ];
+ pageManager.refresh();
+ }, false);
+
/* (1) On initialise le Deflater() */
section.members.deflater = new FormDeflater(
@@ -885,7 +902,7 @@ if( section.members.element != null && section.members.chooser.element == null )
/* GESTION DES PERMISSIONS
*
*/
-if( section.permissions.element != null ){
+if( section.permissions.element != null && !section.permissions.member_view ){
/* (1) On récupère toutes les actions de groupes */
section.permissions.group = {
@@ -972,3 +989,110 @@ if( section.permissions.element != null ){
}
+
+
+
+
+
+
+
+
+/* GESTION DES PERMISSIONS (MEMBRES)
+*
+*/
+if( section.permissions.element != null && section.permissions.member_view ){
+
+ // Si bouton pour revenir au choix de groupe
+ section.view.group.change_permissions = $('permissions-change-group') || null;
+
+ // on crée/gère le lien
+ if( section.view.group.change_permissions !== null )
+ section.view.group.change_permissions.addEventListener('click', function(e){
+ pageManager.vars = [ 'permissions' ];
+ pageManager.refresh();
+ }, false);
+
+
+ /* (1) On initialise le Deflater() */
+ section.permissions.deflater = new FormDeflater(
+ section.permissions.element,
+ ['input'],
+ ['data-name']
+ );
+
+ /* (2) On enregistre les données initiales */
+ section.permissions.baseData = section.permissions.deflater.deflate()['member'];
+
+ /* (3) On enregistre les données in-HTML */
+ section.permissions.idtarget = document.querySelector('#permission-choice-idtarget').value;
+ section.permissions.idaction = document.querySelector('#permission-choice-idaction').value;
+
+
+ /* [1] Dès qu'une valeur est modifiée dans le formulaire
+ =========================================================*/
+ section.permissions.element.addEventListener('click', function(e){
+
+ /* (0) On récupère les données + initialise les variables */
+ var i;
+ var linked = [];
+ var unlinked = [];
+
+ var data = section.permissions.deflater.deflate()['member'];
+ // 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( i = 0 ; i < data.length ; i++ )
+ if( section.permissions.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( i = 0 ; i < section.permissions.baseData.length ; i++ )
+ if( data.indexOf(section.permissions.baseData[i]) == -1 ) // Si pas dans les données modifiées, on ajoute
+ unlinked.push( section.permissions.baseData[i] );
+
+
+ /* (3) Gestion de l'ajout de liens */
+ for( i = 0 ; i < linked.length ; i++ ){
+ // {1} On rédige la requête //
+ var linkReq = {};
+ linkReq.path = 'clusterDefault/addPermission';
+ linkReq.id_target = section.permissions.idtarget;
+ linkReq.id_action = section.permissions.idaction;
+ linkReq.id_source = linked[i];
+
+ // {2} On envoie la requête //
+ api.send(linkReq, function(linkRes){
+ if( linkRes.error != 0 )
+ console.error('Erreur d\'ajout de membre');
+ });
+ }
+
+
+
+ /* (4) Gestion de la suppression de liens */
+ for( i = 0 ; i < unlinked.length ; i++ ){
+ // {1} On rédige la requête //
+ var unlinkReq = {};
+ unlinkReq.path = 'clusterDefault/remPermission';
+ unlinkReq.id_target = section.permissions.idtarget;
+ unlinkReq.id_action = section.permissions.idaction;
+ unlinkReq.id_source = unlinked[i];
+
+
+ // {2} On envoie la requête //
+ api.send(unlinkReq, function(unlinkRes){
+ if( unlinkRes.error != 0 )
+ console.error('Erreur de retrait de membre');
+ });
+ }
+
+
+ /* (5) On met à jour les données initiales */
+ section.permissions.baseData = data;
+
+
+ }, false);
+
+}