[860] | 1 | jQuery.fn.updatePermissionsForm = function() { |
---|
| 2 | return this.each(function() { |
---|
[2566] | 3 | |
---|
[860] | 4 | var perms = {}; |
---|
| 5 | var re = /^perm\[(.+?)\]\[(.+?)\]$/; |
---|
| 6 | var e,prop; |
---|
[2566] | 7 | |
---|
[860] | 8 | // Building a nice object of form elements |
---|
| 9 | for (var i=0; i<this.elements.length; i++) { |
---|
| 10 | e = this.elements[i]; |
---|
[2566] | 11 | |
---|
[860] | 12 | if (e.name == undefined) { |
---|
| 13 | continue; |
---|
| 14 | } |
---|
[1432] | 15 | var prop; |
---|
[860] | 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; |
---|
[2566] | 24 | |
---|
[1432] | 25 | // select related permissions for admin |
---|
| 26 | if (prop[2] == 'admin') { |
---|
[1449] | 27 | if (e.checked) { |
---|
| 28 | admin(e,perms,re); |
---|
| 29 | } |
---|
[1432] | 30 | $(e).click(function(){ |
---|
[1449] | 31 | admin(this,perms,re); |
---|
[1432] | 32 | }); |
---|
| 33 | // select related permissions for content admin |
---|
| 34 | } else if (prop[2] == 'contentadmin') { |
---|
[1449] | 35 | if (e.checked) { |
---|
| 36 | contentadmin(e,perms,re); |
---|
| 37 | } |
---|
[1432] | 38 | $(e).click(function(){ |
---|
[1449] | 39 | contentadmin(this,perms,re); |
---|
[1432] | 40 | }); |
---|
| 41 | // select related permissions for media admin |
---|
| 42 | } else if (prop[2] == 'media_admin') { |
---|
[1449] | 43 | if (e.checked) { |
---|
| 44 | mediaadmin(e,perms,re); |
---|
| 45 | } |
---|
[1432] | 46 | $(e).click(function(){ |
---|
[1449] | 47 | mediaadmin(this,perms,re); |
---|
[1432] | 48 | }); |
---|
[860] | 49 | } |
---|
| 50 | } |
---|
[2566] | 51 | |
---|
[1449] | 52 | function admin(E,perms,re) { |
---|
| 53 | P = E.name.match(re); |
---|
[2566] | 54 | |
---|
[1449] | 55 | perms[P[1]]['usage'].checked = E.checked; |
---|
| 56 | perms[P[1]]['publish'].checked = E.checked; |
---|
| 57 | perms[P[1]]['delete'].checked = E.checked; |
---|
| 58 | perms[P[1]]['contentadmin'].checked = E.checked; |
---|
| 59 | perms[P[1]]['categories'].checked = E.checked; |
---|
| 60 | perms[P[1]]['media'].checked = E.checked; |
---|
| 61 | perms[P[1]]['media_admin'].checked = E.checked; |
---|
| 62 | perms[P[1]]['usage'].disabled = E.checked; |
---|
| 63 | perms[P[1]]['publish'].disabled = E.checked; |
---|
| 64 | perms[P[1]]['delete'].disabled = E.checked; |
---|
| 65 | perms[P[1]]['contentadmin'].disabled = E.checked; |
---|
| 66 | perms[P[1]]['categories'].disabled = E.checked; |
---|
| 67 | perms[P[1]]['media'].disabled = E.checked; |
---|
| 68 | perms[P[1]]['media_admin'].disabled = E.checked; |
---|
| 69 | } |
---|
[2566] | 70 | |
---|
[1449] | 71 | function contentadmin(E,perms,re) { |
---|
| 72 | P = E.name.match(re); |
---|
[2566] | 73 | |
---|
[1449] | 74 | perms[P[1]]['usage'].checked = E.checked; |
---|
| 75 | perms[P[1]]['publish'].checked = E.checked; |
---|
| 76 | perms[P[1]]['delete'].checked = E.checked; |
---|
| 77 | perms[P[1]]['usage'].disabled = E.checked; |
---|
| 78 | perms[P[1]]['publish'].disabled = E.checked; |
---|
| 79 | perms[P[1]]['delete'].disabled = E.checked; |
---|
| 80 | } |
---|
[2566] | 81 | |
---|
[1449] | 82 | function mediaadmin(E,perms,re) { |
---|
| 83 | P = E.name.match(re); |
---|
[2566] | 84 | |
---|
[1449] | 85 | perms[P[1]]['media'].checked = E.checked; |
---|
| 86 | perms[P[1]]['media'].disabled = E.checked; |
---|
| 87 | } |
---|
[2566] | 88 | |
---|
| 89 | |
---|
[860] | 90 | }); |
---|
| 91 | }; |
---|
| 92 | |
---|
| 93 | $(function() { |
---|
| 94 | $('.checkboxes-helpers').each(function() { |
---|
[3182] | 95 | dotclear.checkboxesHelpers(this,undefined,'#form-blogs input[type="checkbox"]','#form-blogs #do-action'); |
---|
[860] | 96 | }); |
---|
[3182] | 97 | dotclear.condSubmit('#form-blogs input[type="checkbox"]','#form-blogs #do-action'); |
---|
[860] | 98 | $('#permissions-form').updatePermissionsForm(); |
---|
[2566] | 99 | }); |
---|