Dotclear

source: admin/js/_users_actions.js @ 3182:adf3c934173f

Revision 3182:adf3c934173f, 2.7 KB checked in by franck <carnet.franck.paul@…>, 9 years ago (diff)

Disable submit button unless at least one item selected whenever is possible, closes #1600

RevLine 
[860]1jQuery.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});
Note: See TracBrowser for help on using the repository browser.

Sites map