diff --git a/web_service/js/tls-dashboard/scripts.js b/web_service/js/tls-dashboard/scripts.js
index aac137c..e9bca9e 100644
--- a/web_service/js/tls-dashboard/scripts.js
+++ b/web_service/js/tls-dashboard/scripts.js
@@ -1,8 +1,21 @@
$(function () {
// Local vars
var typeahead_hostnames = [];
+ var filters = {
+ 'categories': {
+ 'normal': true,
+ 'warning': true,
+ 'danger': true,
+ 'error': true,
+ 'info': true,
+ },
+ 'hostname': ''
+ };
+
+ // Place the run date into the header
$('#created_date').html(run_date);
+ // Sort the monitored hosts object into an array from fewest days to most.
var sorted_certificates = Object.keys(cert_info)
.sort(function( a, b ) {
return cert_info[a].info.sort_order - cert_info[b].info.sort_order;
@@ -10,6 +23,7 @@ $(function () {
return cert_info[sortedKey];
});
+ // Handlebars template for the cert cards
var card_html = String()
+'
'
+'
'
@@ -28,6 +42,7 @@ $(function () {
+'
'
+'
';
+
function insert_card(json) {
var card_template = Handlebars.compile(card_html),
html = card_template(json);
@@ -73,10 +88,18 @@ $(function () {
});
+ $('input[type=checkbox]').change(function() {
+ if ($(this).is(':checked')) {
+ var val = $(this).val();
+ filters.categories[val] = true;
+ refresh_cards();
+ } else {
+ var val = $(this).val();
+ filters.categories[val] = false;
+ refresh_cards();
+ }
});
- function update_visible_certs() {
- $('[data-category="'+$(this).val()+'"]').toggle();
/**
* Initilizes the hostname typeahead
*/
@@ -98,6 +121,28 @@ $(function () {
};
create_typeahead();
+
+ $('.typeahead').on('typeahead:change typeahead:select typeahead:autocomplete blur', function() {
+ filters.hostname = $('#hostnames').val();
+ refresh_cards();
+ })
+
+ function refresh_cards() {
+ if (filters.hostname === '') {
+ for (var key in filters.categories) {
+ if (filters.categories[key] === true) {
+ $('[data-category="'+key+'"].cert_card').fadeIn();
+ } else {
+ $('[data-category="'+key+'"].cert_card').hide();
+ }
+ }
+ } else {
+ $('.cert_card').hide();
+ for (var key in filters.categories) {
+ if (filters.categories[key] === true) {
+ $('[data-category="'+key+'"][data-hostname="'+filters.hostname+'"].cert_card').fadeIn();
+ }
+ }
+ }
}
- $('input[type=checkbox]').change(update_visible_certs);
});