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(
+ $('