# HG changeset patch # User Aleksej Bobylev # Date 1427851939 -10800 # Node ID 93588665639a642f4dc860d299e4f6d04ced50be # Parent b4817a7f661b493befc47e5441944517577d7b35 tazpanel.ttf: add icon for '(Un)block'; tazpanel.js: simplify checkBoxes(), add functions for counting selected packages. diff -r b4817a7f661b -r 93588665639a lib/tazpanel.js --- a/lib/tazpanel.js Mon Mar 30 11:49:48 2015 +0300 +++ b/lib/tazpanel.js Wed Apr 01 04:32:19 2015 +0300 @@ -170,7 +170,7 @@ tHeadTr.children[0].style.setProperty('width', tHeadTrO.children[0].offsetWidth -1 + 'px', 1); tHeadTr.children[1].style.setProperty('width', tHeadTrO.children[1].offsetWidth -1 + 'px', 1); tHeadTr.children[2].style.setProperty('width', tHeadTrO.children[2].offsetWidth -1 + 'px', 1); - tHeadTr.children[3].style.setProperty('width', tHeadTrO.children[3].offsetWidth -1 + 'px', 1); + //tHeadTr.children[3].style.setProperty('width', tHeadTrO.children[3].offsetWidth -1 + 'px', 1); } @@ -412,21 +412,44 @@ // Toggle all checkboxes on a page // -function checkBoxes(w) { - try { - var inputs = w.document.getElementsByTagName('input'); - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].type && inputs[i].type == 'checkbox') { - inputs[i].checked = !inputs[i].checked; - } - } - } catch (e){} - if (w.frames && w.frames.length>0) { - for (var i = 0; i < w.frames.length;i++) { - var fr = w.frames[i]; - checkFrames(fr); +function checkBoxes() { + var inputs = document.getElementsByTagName('input'); + for (var i = 0; i < inputs.length; i++) { + if (inputs[i].type && inputs[i].type == 'checkbox') { + inputs[i].checked = !inputs[i].checked; + countSelPkgs(inputs[i]); } } - return false } + +// +// Count selected packages on the packages list +// + +function countSelPkgs(el) { + countSelected = countSelectedSpan.innerText; + if (countSelected == '') countSelected = 0; + + element = (el.type == 'change' ? this : el); + + if (element.checked) + countSelected++; + else + countSelected--; + + countSelectedSpan.innerText = countSelected; +} + +// Attach event handler +function setCountSelPkgs() { + // The change event does not bubble to the form container + pkglist = document.getElementById('pkglist'); + if (pkglist) { + var checkboxes = pkglist.getElementsByTagName('input'); + for (i = 0; i < checkboxes.length; i++) { + checkboxes[i].onchange = countSelPkgs; + } + } + countSelectedSpan = document.getElementById('countSelected'); +} diff -r b4817a7f661b -r 93588665639a styles/default/tazpanel.ttf Binary file styles/default/tazpanel.ttf has changed