diff --git a/django/contrib/admin/media/css/changelists.css b/django/contrib/admin/media/css/changelists.css
index 4303378..65ae083 100644
a
|
b
|
|
228 | 228 | border-right: 1px solid #ddd; |
229 | 229 | } |
230 | 230 | |
| 231 | .action_counter{ |
| 232 | font-size: 11px; |
| 233 | margin: 0 0.5em; |
| 234 | padding-right: 0.5em; |
| 235 | border-right: 1px solid #ccc; |
| 236 | display: none; |
| 237 | } |
| 238 | |
231 | 239 | #changelist table input { |
232 | 240 | margin: 0; |
233 | 241 | } |
diff --git a/django/contrib/admin/media/js/actions.js b/django/contrib/admin/media/js/actions.js
index d34488a..b82bd13 100644
a
|
b
|
|
1 | 1 | var Actions = { |
2 | 2 | init: function() { |
3 | | var selectAll = document.getElementById('action-toggle'); |
| 3 | counterSpans = document.getElementsBySelector('span._acnt'); |
| 4 | counterContainer = document.getElementsBySelector('span.action_counter'); |
| 5 | actionCheckboxes = document.getElementsBySelector('tr input.action-select'); |
| 6 | selectAll = document.getElementById('action-toggle'); |
| 7 | for(var i = 0; i < counterContainer.length; i++) { |
| 8 | counterContainer[i].style.display = 'inline'; |
| 9 | } |
4 | 10 | if (selectAll) { |
5 | 11 | selectAll.style.display = 'inline'; |
6 | 12 | addEvent(selectAll, 'click', function() { |
7 | 13 | Actions.checker(selectAll.checked); |
| 14 | Actions.counter(); |
| 15 | }); |
| 16 | } |
| 17 | for(var i = 0; i < actionCheckboxes.length; i++) { |
| 18 | addEvent(actionCheckboxes[i], 'click', function() { |
| 19 | Actions.counter(); |
8 | 20 | }); |
9 | 21 | } |
10 | 22 | var changelistTable = document.getElementsBySelector('#changelist table')[0]; |
… |
… |
var Actions = {
|
16 | 28 | if (target.className == 'action-select') { |
17 | 29 | var tr = target.parentNode.parentNode; |
18 | 30 | Actions.toggleRow(tr, target.checked); |
| 31 | Actions.checked(); |
19 | 32 | } |
20 | 33 | }); |
21 | 34 | } |
… |
… |
var Actions = {
|
27 | 40 | tr.className = tr.className.replace(' selected', ''); |
28 | 41 | } |
29 | 42 | }, |
| 43 | checked: function() { |
| 44 | selectAll.checked = false; |
| 45 | }, |
30 | 46 | checker: function(checked) { |
31 | | var actionCheckboxes = document.getElementsBySelector('tr input.action-select'); |
32 | 47 | for(var i = 0; i < actionCheckboxes.length; i++) { |
33 | 48 | actionCheckboxes[i].checked = checked; |
34 | 49 | Actions.toggleRow(actionCheckboxes[i].parentNode.parentNode, checked); |
35 | 50 | } |
| 51 | }, |
| 52 | counter: function() { |
| 53 | counter = 0; |
| 54 | for(var i = 0; i < actionCheckboxes.length; i++) { |
| 55 | if(actionCheckboxes[i].checked){ |
| 56 | counter++; |
| 57 | } |
| 58 | } |
| 59 | for(var i = 0; i < counterSpans.length; i++) { |
| 60 | counterSpans[i].innerHTML = counter; |
| 61 | } |
36 | 62 | } |
37 | 63 | }; |
38 | 64 | |
39 | | addEvent(window, 'load', Actions.init); |
| 65 | addEvent(window, 'load', Actions.init); |
| 66 | No newline at end of file |
diff --git a/django/contrib/admin/templates/admin/actions.html b/django/contrib/admin/templates/admin/actions.html
index bf4b975..4fea071 100644
a
|
b
|
|
1 | 1 | {% load i18n %} |
2 | 2 | <div class="actions"> |
| 3 | <span class="action_counter"> |
| 4 | {% ifequal cl.result_count 1 %} |
| 5 | {% blocktrans with cl.result_count as total_count and cl.opts.verbose_name as module_name %}<span class="_acnt">0</span> of {{ total_count }} {{ module_name }} selected{% endblocktrans %} |
| 6 | {% else %} |
| 7 | {% blocktrans with cl.result_count as total_count and cl.opts.verbose_name_plural as module_name %}<span class="_acnt">0</span> of {{ total_count }} {{ module_name }} selected{% endblocktrans %} |
| 8 | {% endifequal %} |
| 9 | </span> |
3 | 10 | {% for field in action_form %}<label>{{ field.label }} {{ field }}</label>{% endfor %} |
4 | 11 | <button type="submit" class="button" title="{% trans "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">{% trans "Go" %}</button> |
5 | 12 | </div> |