Ticket #10615: admin-actions-counter-10625-1.diff

File admin-actions-counter-10625-1.diff, 3.2 KB (added by Martin Mahner, 15 years ago)
  • django/contrib/admin/media/css/changelists.css

    diff --git a/django/contrib/admin/media/css/changelists.css b/django/contrib/admin/media/css/changelists.css
    index 649cff7..a10af1a 100644
    a b  
    228228    border-right: 1px solid #ddd;
    229229}
    230230
     231.action_counter{
     232    font-size: 11px;
     233    margin: 0 0.5em;
     234    padding-right: 0.5em;
     235    border-right: 1px solid #ccc;
     236}
     237
    231238#changelist .actions {
    232239    color: #666;
    233240    padding: 3px;
  • django/contrib/admin/media/js/actions.js

    diff --git a/django/contrib/admin/media/js/actions.js b/django/contrib/admin/media/js/actions.js
    index b5e556a..82a8156 100644
    a b  
    11var Actions = {
    22    init: function() {
     3        counterSpans = document.getElementsBySelector('span._acnt');
     4        actionCheckboxes = document.getElementsBySelector('tr input.action-select');
    35        selectAll = document.getElementById('action-toggle');
    46        if (selectAll) {
    57            selectAll.style.display = 'inline';
    68            addEvent(selectAll, 'click', function() {
    79                Actions.checker(selectAll.checked);
     10                Actions.counter();
     11            });
     12        }       
     13        for(var i = 0; i < actionCheckboxes.length; i++) {
     14            addEvent(actionCheckboxes[i], 'click', function() {
     15                Actions.counter();
    816            });
    917        }
    1018    },
    1119    checker: function(checked) {
    12         actionCheckboxes = document.getElementsBySelector('tr input.action-select');
    1320        for(var i = 0; i < actionCheckboxes.length; i++) {
    1421            actionCheckboxes[i].checked = checked;
    1522        }
     23    },
     24    counter: function() {
     25        counter = 0;
     26        for(var i = 0; i < actionCheckboxes.length; i++) {
     27            if(actionCheckboxes[i].checked){
     28                counter++;
     29            }
     30        }
     31        for(var i = 0; i < counterSpans.length; i++) {
     32            counterSpans[i].innerHTML = counter;
     33        }
    1634    }
    1735}
    1836
    19 addEvent(window, 'load', Actions.init);
     37addEvent(window, 'load', Actions.init);
     38 No newline at end of file
  • django/contrib/admin/templates/admin/actions.html

    diff --git a/django/contrib/admin/templates/admin/actions.html b/django/contrib/admin/templates/admin/actions.html
    index bf4b975..4fea071 100644
    a b  
    11{% load i18n %}
    22<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>
    310    {% for field in action_form %}<label>{{ field.label }} {{ field }}</label>{% endfor %}
    411    <button type="submit" class="button" title="{% trans "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">{% trans "Go" %}</button>
    512</div>
Back to Top