Dotclear

Changeset 1432:49b08f56b462


Ignore:
Timestamp:
08/18/13 11:06:47 (10 years ago)
Author:
Denis Jean-Christian <contact@…>
Branch:
Ticket#627
Children:
1433:fb66e543c4e5, 1434:9c3ea1af0410
Message:

Fix disabeling checkbox on user permissions, fixes #627

File:
1 edited

Legend:

Unmodified
Added
Removed
  • admin/js/_users_actions.js

    r1362 r1432  
    11jQuery.fn.updatePermissionsForm = function() { 
    22     return this.each(function() { 
     3           
    34          var perms = {}; 
    45          var re = /^perm\[(.+?)\]\[(.+?)\]$/; 
     
    1213                    continue; 
    1314               } 
     15               var prop; 
    1416               prop = e.name.match(re); 
    1517               if (!prop) { 
     
    2022               } 
    2123               perms[prop[1]][prop[2]] = e; 
    22           } 
    23            
    24           // Update elements status 
    25           var E; 
    26           for (blog in perms) { 
    27                for (perm in perms[blog]) { 
    28                     E = perms[blog][perm]; 
    29                     E.onclick = function() {}; 
    30                      
    31                     if (perm == 'admin' && !E.disabled) { 
    32                          perms[blog]['usage'].checked = E.checked; 
    33                          perms[blog]['publish'].checked = E.checked; 
    34                          perms[blog]['delete'].checked = E.checked; 
    35                          perms[blog]['contentadmin'].checked = E.checked; 
    36                          perms[blog]['categories'].checked = E.checked; 
    37                          perms[blog]['media'].checked = E.checked; 
    38                          perms[blog]['media_admin'].checked = E.checked; 
    39                          perms[blog]['usage'].disabled = E.checked; 
    40                          perms[blog]['publish'].disabled = E.checked; 
    41                          perms[blog]['delete'].disabled = E.checked; 
    42                          perms[blog]['contentadmin'].disabled = E.checked; 
    43                          perms[blog]['categories'].disabled = E.checked; 
    44                          perms[blog]['media'].disabled = E.checked; 
    45                          perms[blog]['media_admin'].disabled = E.checked; 
    46                          E.onclick = function() { $(this.form).updatePermissionsForm(); }; 
    47                     } else if (perm == 'contentadmin' && !E.disabled) { 
    48                          perms[blog]['usage'].checked = E.checked; 
    49                          perms[blog]['publish'].checked = E.checked; 
    50                          perms[blog]['delete'].checked = E.checked; 
    51                          perms[blog]['usage'].disabled = E.checked; 
    52                          perms[blog]['publish'].disabled = E.checked; 
    53                          perms[blog]['delete'].disabled = E.checked; 
    54                          E.onclick = function() { $(this.form).updatePermissionsForm(); }; 
    55                     } else if (perm == 'media_admin' && !E.disabled) { 
    56                          perms[blog]['media'].checked = E.checked; 
    57                          perms[blog]['media'].disabled = E.checked; 
    58                          E.onclick = function() { $(this.form).updatePermissionsForm(); }; 
    59                     } 
     24                
     25               // select related permissions for admin 
     26               if (prop[2] == 'admin') { 
     27                    $(e).click(function(){ 
     28                         P = this.name.match(re); 
     29                          
     30                         perms[P[1]]['usage'].checked = this.checked; 
     31                         perms[P[1]]['publish'].checked = this.checked; 
     32                         perms[P[1]]['delete'].checked = this.checked; 
     33                         perms[P[1]]['contentadmin'].checked = this.checked; 
     34                         perms[P[1]]['categories'].checked = this.checked; 
     35                         perms[P[1]]['media'].checked = this.checked; 
     36                         perms[P[1]]['media_admin'].checked = this.checked; 
     37                         perms[P[1]]['usage'].disabled = this.checked; 
     38                         perms[P[1]]['publish'].disabled = this.checked; 
     39                         perms[P[1]]['delete'].disabled = this.checked; 
     40                         perms[P[1]]['contentadmin'].disabled = this.checked; 
     41                         perms[P[1]]['categories'].disabled = this.checked; 
     42                         perms[P[1]]['media'].disabled = this.checked; 
     43                         perms[P[1]]['media_admin'].disabled = this.checked; 
     44                          
     45                    }); 
     46               // select related permissions for content admin 
     47               } else if (prop[2] == 'contentadmin') { 
     48                    $(e).click(function(){ 
     49                         P = this.name.match(re); 
     50                          
     51                         perms[P[1]]['usage'].checked = this.checked; 
     52                         perms[P[1]]['publish'].checked = this.checked; 
     53                         perms[P[1]]['delete'].checked = this.checked; 
     54                         perms[P[1]]['usage'].disabled = this.checked; 
     55                         perms[P[1]]['publish'].disabled = this.checked; 
     56                         perms[P[1]]['delete'].disabled = this.checked; 
     57                          
     58                    }); 
     59               // select related permissions for media admin 
     60               } else if (prop[2] == 'media_admin') { 
     61                    $(e).click(function(){ 
     62                         P = this.name.match(re); 
     63                          
     64                         perms[P[1]]['media'].checked = this.checked; 
     65                         perms[P[1]]['media'].disabled = this.checked; 
     66                          
     67                    }); 
    6068               } 
    6169          } 
Note: See TracChangeset for help on using the changeset viewer.

Sites map