diff --git a/server.html b/server.html index caf5792f..d5c8be19 100644 --- a/server.html +++ b/server.html @@ -345,6 +345,32 @@ td font: normal normal 10pt Arial, sans-serif; } +#streams-filter +{ + height: 30px; + margin: 5px 0 0 0; + + text-align: right; + line-height: 30px; +} + +#streams-filter label +{ + margin: 0 15px 0 25px; + padding: 0; + display: inline-block; + width: auto; +} + +#streams-filter input +{ + float: none; + margin: 0 0 0 10px; + width: auto; + padding: 0; +} + + @@ -570,7 +596,7 @@ td } } - ret = {streams: [numtotstr, numstr], viewers: numvwr}; + ret = {streams: [numstr, numtotstr], viewers: numvwr}; callback(ret); }); } @@ -672,6 +698,8 @@ td // used on the overview page. clear when not on that page in showTab() var sinterval = null; + // shows what kind of streams? Format is [recorded, live]; + var streamsdisplay = [true, true]; // show tab @@ -926,13 +954,81 @@ td case 'streams': + + // filter + $div = $('
').attr('id', 'streams-filter'); + + + + function filterTable() + { + $('#streams-list-tbody').children().each(function(k, v) + { + var type = $($(v).children()[0]).text().toLowerCase(); + + $(v).show(); + + if(type == 'recorded' && streamsdisplay[0] == false) + { + $(v).hide(); + } + + if(type == 'live' && streamsdisplay[1] == false) + { + $(v).hide(); + } + }); + } + + function filterOn(event, elem) + { + if(event.target.id == '') + { + return; // label click goes bubbles on checkbox, so ignore it + } + + var what = $(elem).text(); + + if(what == 'recorded') + { + streamsdisplay[0] = !streamsdisplay[0]; + $('#stream-filter-recorded').attr('checked', streamsdisplay[0]); + }else{ + streamsdisplay[1] = !streamsdisplay[1]; + $('#stream-filter-live').attr('checked', streamsdisplay[1]); + } + + filterTable(); + } + + $div.append( + $('