From: Mischa POSLAWSKY Date: Tue, 7 Dec 2010 19:29:31 +0000 (+0100) Subject: browser: search toggles matching agent columns X-Git-Tag: v1.4~46 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/d2ca80f8d1714a6ea6f8184cfa58b67bf0720f2c browser: search toggles matching agent columns --- diff --git a/browser.plp b/browser.plp index ef260e1..9a865d4 100644 --- a/browser.plp +++ b/browser.plp @@ -116,8 +116,11 @@ my $header = join('', 'feature', (map { my $name = $caniuse->{agents}->{$_}->{browser}; - sprintf('%s', + sprintf('%s', scalar @{ $versions{$_} }, + join(' ', map {"b-a-$_"} grep {$_} + $_, $caniuse->{agents}->{$_}->{prefix}, + ), join(' ', sprintf('%.1f%%', sum(values %{ $canihas->{$_} })), $name, diff --git a/searchlocal.js b/searchlocal.js index 8741044..eb284b7 100644 --- a/searchlocal.js +++ b/searchlocal.js @@ -26,6 +26,26 @@ function filtercell(el, set, action) { } } +function filtercols(table, match, action) { + var matchloc; + for (var y = 0; y < table.rows.length; y++) { + var loc = 0; + for (var x = 0; x < table.rows[y].cells.length; x++) { + var cell = table.rows[y].cells[x]; + if (y == 0) { + if (match(cell)) { + if (!matchloc) matchloc = [loc]; + matchloc[1] = loc + cell.colSpan; + filtercell(table.children.item(x+2), true, action); // colgroup + } + } + var keep = matchloc && loc >= matchloc[0] && loc < matchloc[1]; + filtercell(cell, keep, action); + loc += cell.colSpan; + } + } +} + function filterrows(table, match, action) { var rows = table.tBodies[0].rows; for (var i = 0; i < rows.length; i++) { @@ -47,6 +67,14 @@ function filtertable(query, action) { query = match[2]; } + if (document.querySelector('.b-a-'+query)) { + // column if class b-a-* exists + var match = function(th) { + return new RegExp('-'+query+'\\b').test(th.className); + } + return filtercols(table, match, action || 'toggle'); + } + if (/^[A-Z0-9 ]{2,}$/.test(query)) { // category title if all uppercase var match = function(row) {