Dotclear

source: admin/js/_permissions.js @ 0:54703be25dd6

Revision 0:54703be25dd6, 1.6 KB checked in by Dsls <dsls@…>, 14 years ago (diff)

2.3 branch (trunk) first checkin

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'].disabled = E.checked;
33                         perms[blog]['publish'].disabled = E.checked;
34                         perms[blog]['delete'].disabled = E.checked;
35                         perms[blog]['contentadmin'].disabled = E.checked;
36                         perms[blog]['categories'].disabled = E.checked;
37                         perms[blog]['media'].disabled = E.checked;
38                         perms[blog]['media_admin'].disabled = E.checked;
39                         E.onclick = function() { $(this.form).updatePermissionsForm(); };
40                    } else if (perm == 'contentadmin' && !E.disabled) {
41                         perms[blog]['usage'].disabled = E.checked;
42                         perms[blog]['publish'].disabled = E.checked;
43                         perms[blog]['delete'].disabled = E.checked;
44                         E.onclick = function() { $(this.form).updatePermissionsForm(); };
45                    } else if (perm == 'media_admin' && !E.disabled) {
46                         perms[blog]['media'].disabled = E.checked;
47                         E.onclick = function() { $(this.form).updatePermissionsForm(); };
48                    }
49               }
50          }
51     });
52};
53
54$(function() {
55     $('#permissions-form').updatePermissionsForm();
56});
Note: See TracBrowser for help on using the repository browser.

Sites map