Dotclear

source: admin/js/_users_actions.js @ 1362:81f2407cdfd9

Revision 1362:81f2407cdfd9, 2.2 KB checked in by Lepeltier kévin, 11 years ago (diff)

Ticket #627

La correction précédente n'avais pas était fait pour la checkbox admin.

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

Sites map