Dotclear

source: admin/js/_users_actions.js @ 1432:49b08f56b462

Revision 1432:49b08f56b462, 2.3 KB checked in by Denis Jean-Christian <contact@…>, 11 years ago (diff)

Fix disabeling checkbox on user permissions, fixes #627

Line 
1jQuery.fn.updatePermissionsForm = function() {
2     return this.each(function() {
3         
4          var perms = {};
5          var re = /^perm\[(.+?)\]\[(.+?)\]$/;
6          var e,prop;
7         
8          // Building a nice object of form elements
9          for (var i=0; i<this.elements.length; i++) {
10               e = this.elements[i];
11               
12               if (e.name == undefined) {
13                    continue;
14               }
15               var prop;
16               prop = e.name.match(re);
17               if (!prop) {
18                    continue;
19               }
20               if (perms[prop[1]] == undefined) {
21                    perms[prop[1]] = {};
22               }
23               perms[prop[1]][prop[2]] = e;
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                    });
68               }
69          }
70     });
71};
72
73$(function() {
74     $('.checkboxes-helpers').each(function() {
75          dotclear.checkboxesHelpers(this);
76     });
77     $('#permissions-form').updatePermissionsForm();
78});
Note: See TracBrowser for help on using the repository browser.

Sites map