[Done] Partie dynamique du choix des members pour permissions
This commit is contained in:
parent
2d58da3028
commit
2c45bb60be
|
@ -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'];
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
<span style='text-align:center; color: #666; text-decoration: underline; cursor: pointer;' id='permissions-change-group'>Modifier d'autres permissions</span>
|
||||
<p></p>
|
||||
|
||||
<span data-member-view></span>
|
||||
|
||||
<article class='check-table'>
|
||||
<input type='hidden' id='permission-choice-idtarget' value='{{ p_id_cluster }}'>
|
||||
<input type='hidden' id='permission-choice-idtarget' value='{{ p_id_target }}'>
|
||||
<input type='hidden' id='permission-choice-idaction' value='{{ p_id_permission }}'>
|
||||
|
||||
<div>
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue