diff -r 000000000000 -r 0d40e90630ef web/static/admin/js/actions.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/static/admin/js/actions.js Wed Jan 20 00:34:04 2010 +0100 @@ -0,0 +1,39 @@ +var Actions = { + init: function() { + var selectAll = document.getElementById('action-toggle'); + if (selectAll) { + selectAll.style.display = 'inline'; + addEvent(selectAll, 'click', function() { + Actions.checker(selectAll.checked); + }); + } + var changelistTable = document.getElementsBySelector('#changelist table')[0]; + if (changelistTable) { + addEvent(changelistTable, 'click', function(e) { + if (!e) { var e = window.event; } + var target = e.target ? e.target : e.srcElement; + if (target.nodeType == 3) { target = target.parentNode; } + if (target.className == 'action-select') { + var tr = target.parentNode.parentNode; + Actions.toggleRow(tr, target.checked); + } + }); + } + }, + toggleRow: function(tr, checked) { + if (checked && tr.className.indexOf('selected') == -1) { + tr.className += ' selected'; + } else if (!checked) { + tr.className = tr.className.replace(' selected', ''); + } + }, + checker: function(checked) { + var actionCheckboxes = document.getElementsBySelector('tr input.action-select'); + for(var i = 0; i < actionCheckboxes.length; i++) { + actionCheckboxes[i].checked = checked; + Actions.toggleRow(actionCheckboxes[i].parentNode.parentNode, checked); + } + } +}; + +addEvent(window, 'load', Actions.init);