Fix quotation mark inconsistencies

jshint tests passing again
This commit is contained in:
Łukasz Mierzwa
2017-04-27 21:50:55 -07:00
parent ad897596b2
commit 12832e2c29
15 changed files with 289 additions and 289 deletions

View File

@@ -17,7 +17,7 @@ var Alerts = (function() {
}
Render() {
return Templates.Render('alertGroup', {
return Templates.Render("alertGroup", {
group: this,
silences: silences,
static_color_label: Colors.GetStaticLabels(),
@@ -27,34 +27,34 @@ var Alerts = (function() {
// called after group was rendered for the first time
Added() {
UI.SetupAlertGroupUI($('#' + this.id));
UI.SetupAlertGroupUI($("#" + this.id));
}
Update() {
// hide popovers in this group
$('#' + this.id + ' [data-label-type="filter"]').popover('hide');
$("#" + this.id + " [data-label-type='filter']").popover("hide");
// remove all elements prior to content update to purge all event listeners and hooks
$.each($('#' + this.id).find('.panel-body, .panel-heading'), function(i, elem) {
$.each($("#" + this.id).find(".panel-body, .panel-heading"), function(i, elem) {
$(elem).remove();
});
$('#' + this.id).html($(this.Render()).html());
$('#' + this.id).data('hash', this.hash);
$("#" + this.id).html($(this.Render()).html());
$("#" + this.id).data("hash", this.hash);
// pulse the badge to show that group content was changed, repeat it twice
$('#' + this.id + ' > .panel > .panel-heading > .badge:in-viewport').finish().fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
$("#" + this.id + " > .panel > .panel-heading > .badge:in-viewport").finish().fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
}
}
var destroyGroup = function(groupID) {
$('#' + groupID + ' [data-label-type="filter"]').popover('hide');
$('#' + groupID + ' [data-toggle=tooltip]').tooltip('hide');
$.each($('#' + groupID).find('.panel-body, .panel-heading'), function(i, elem) {
$("#" + groupID + " [data-label-type='filter']").popover("hide");
$("#" + groupID + " [data-toggle='tooltip']").tooltip("hide");
$.each($("#" + groupID).find(".panel-body, .panel-heading"), function(i, elem) {
$(elem).remove();
});
Grid.Remove($('#' + groupID));
Grid.Remove($("#" + groupID));
};
var sortMapByKey = function(mapToSort) {
@@ -65,21 +65,21 @@ var Alerts = (function() {
sorted.push({
key: key,
value: mapToSort[key],
text: key + ': ' + mapToSort[key]
text: key + ": " + mapToSort[key]
});
});
return sorted;
};
var labelAttrs = function(key, value) {
var label = key + ': ' + value;
var label = key + ": " + value;
var attrs = labelCache.get(label);
if (attrs !== undefined) return attrs;
attrs = {
text: label,
class: 'label label-list ' + Colors.GetClass(key, value),
class: "label label-list " + Colors.GetClass(key, value),
style: Colors.Get(key, value)
};
labelCache.set(label, attrs);
@@ -89,21 +89,21 @@ var Alerts = (function() {
var humanizeTimestamps = function() {
var now = moment();
// change timestamp labels to be relative
$.each($('.label-ts'), function(i, elem) {
var ts = moment($(elem).data('ts'), moment.ISO_8601);
$.each($(".label-ts"), function(i, elem) {
var ts = moment($(elem).data("ts"), moment.ISO_8601);
var label = ts.fromNow();
$(elem).find('.label-ts-span').text(label);
$(elem).attr('data-ts-title', ts.toString());
var ts_age = now.diff(ts, 'minutes');
$(elem).find(".label-ts-span").text(label);
$(elem).attr("data-ts-title", ts.toString());
var ts_age = now.diff(ts, "minutes");
if (ts_age < 3) {
$(elem).addClass('recent-alert').find('.incident-indicator').removeClass('hidden');
$(elem).addClass("recent-alert").find(".incident-indicator").removeClass("hidden");
} else {
$(elem).removeClass('recent-alert').find('.incident-indicator').addClass('hidden');
$(elem).removeClass("recent-alert").find(".incident-indicator").addClass("hidden");
}
});
// flash recent alerts
$('.recent-alert:in-viewport').finish().fadeToggle(300).fadeToggle(300).fadeToggle(300).fadeToggle(300);
$(".recent-alert:in-viewport").finish().fadeToggle(300).fadeToggle(300).fadeToggle(300).fadeToggle(300);
};
var updateAlerts = function(apiResponse) {
@@ -116,7 +116,7 @@ var Alerts = (function() {
var summaryData = {};
$.each(apiResponse.counters, function(label_key, counters){
$.each(counters, function(label_val, hits){
summaryData[label_key + ': ' + label_val] = hits;
summaryData[label_key + ": " + label_val] = hits;
});
});
Summary.Update(summaryData);
@@ -164,7 +164,7 @@ var Alerts = (function() {
});
// append new groups in chunks
if (content.length > 0) {
Grid.Append($(content.splice(0, 100).join('\n')));
Grid.Append($(content.splice(0, 100).join("\n")));
dirty = true;
}
@@ -178,7 +178,7 @@ var Alerts = (function() {
if (dirty) {
Autocomplete.Reset();
Grid.Redraw();
if (Config.GetOption('flash').Get()) {
if (Config.GetOption("flash").Get()) {
Unsee.Flash();
}
}

View File

@@ -10,9 +10,9 @@ var Autocomplete = (function() {
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'autocomplete.json?term=%QUERY',
wildcard: '%QUERY',
rateLimitBy: 'throttle',
url: "autocomplete.json?term=%QUERY",
wildcard: "%QUERY",
rateLimitBy: "throttle",
rateLimitWait: 300
},
sufficient: 12
@@ -30,24 +30,24 @@ var Autocomplete = (function() {
// this is used to generate quick filters for label modal
var generateHints = function(label_key, label_val) {
var hints = [];
if (label_key == '@silenced') {
if (label_key == "@silenced") {
// static list of hints for @silenced label
hints.push('@silenced=true');
hints.push('@silenced=false');
} else if (label_key == '@inhibited') {
hints.push("@silenced=true");
hints.push("@silenced=false");
} else if (label_key == "@inhibited") {
// static list of hints for @inhibited label
hints.push('@inhibited=true');
hints.push('@inhibited=false');
hints.push("@inhibited=true");
hints.push("@inhibited=false");
} else {
// equal and non-equal hints for everything else
hints.push(label_key + '=' + label_val);
hints.push(label_key + '!=' + label_val);
hints.push(label_key + "=" + label_val);
hints.push(label_key + "!=" + label_val);
// if there's space in the label generate regexp hints for partials
if (label_val.toString().indexOf(' ') >= 0) {
$.each(label_val.toString().split(' '), function(l, label_part){
hints.push(label_key + '=~' + label_part);
hints.push(label_key + '!~' + label_part);
if (label_val.toString().indexOf(" ") >= 0) {
$.each(label_val.toString().split(" "), function(l, label_part){
hints.push(label_key + "=~" + label_part);
hints.push(label_key + "!~" + label_part);
});
}
@@ -55,8 +55,8 @@ var Autocomplete = (function() {
if ($.isNumeric(label_val)) {
var valAsNumber = parseInt(label_val);
if (!isNaN(valAsNumber)) {
hints.push(label_key + '>' + label_val);
hints.push(label_key + '<' + label_val);
hints.push(label_key + ">" + label_val);
hints.push(label_key + "<" + label_val);
}
}
}

View File

@@ -5,10 +5,10 @@ var Colors = (function() {
staticColorLabels;
var specialLabels = {
'@silenced: false': 'label-danger',
'@silenced: true': 'label-success',
'@inhibited: false': 'label-danger',
'@inhibited: true': 'label-success'
"@silenced: false": "label-danger",
"@silenced: true": "label-success",
"@inhibited: false": "label-danger",
"@inhibited: true": "label-success"
};
var update = function(colorData) {
@@ -16,15 +16,15 @@ var Colors = (function() {
};
var getClass = function(key, value) {
var label = key + ': ' + value;
if (key == 'alertname') {
return 'label-primary'; // special case for alertname label, which is the name of alert
var label = key + ": " + value;
if (key == "alertname") {
return "label-primary"; // special case for alertname label, which is the name of alert
} else if (specialLabels[label] !== undefined) {
return specialLabels[label];
} else if (Colors.IsStaticLabel(key)) {
return 'label-info';
return "label-info";
} else {
return 'label-warning';
return "label-warning";
}
};
@@ -33,14 +33,14 @@ var Colors = (function() {
var style = "";
if (colors[key] !== undefined && colors[key][value] !== undefined) {
var c = colors[key][value];
style = 'background-color: rgba(' + [c.background.red, c.background.green, c.background.blue, c.background.alpha].join(', ') + '); ';
style += 'color: rgba(' + [c.font.red, c.font.green, c.font.blue, c.font.alpha].join(', ') + '); ';
style = "background-color: rgba(" + [c.background.red, c.background.green, c.background.blue, c.background.alpha].join(", ") + "); ";
style += "color: rgba(" + [c.font.red, c.font.green, c.font.blue, c.font.alpha].join(", ") + "); ";
}
return style;
};
var getStaticLabels = function() {
return $('#alerts').data('static-color-labels').split(' ');
return $("#alerts").data("static-color-labels").split(" ");
};
var isStaticLabel = function(key) {

View File

@@ -18,12 +18,12 @@ var ConfigOption = (function() {
return $(this.Selector).is(":checked");
};
this.Set = params.Setter || function(val) {
$(this.Selector).bootstrapSwitch('state', $.parseJSON(val), true);
$(this.Selector).bootstrapSwitch("state", $.parseJSON(val), true);
};
this.Action = params.Action || function() {};
this.Init = params.Init || function() {
var elem = this;
$(this.Selector).on('switchChange.bootstrapSwitch', function(event, val) {
$(this.Selector).on("switchChange.bootstrapSwitch", function(event, val) {
elem.Save(val);
elem.Action(val);
});
@@ -51,7 +51,7 @@ var ConfigOption = (function() {
Save(val) {
Cookies.set(this.Cookie, val, {
expires: 365,
path: ''
path: ""
});
}
@@ -90,42 +90,42 @@ var Config = (function() {
// copy current filter button action
new Clipboard(params.CopySelector, {
text: function(elem) {
var baseUrl = [location.protocol, '//', location.host, location.pathname].join('');
var query = ['q=' + Filters.GetFilters().join(',')];
var baseUrl = [location.protocol, "//", location.host, location.pathname].join("");
var query = ["q=" + Filters.GetFilters().join(",")];
$.each(options, function(name, option) {
query.push(option.QueryParam + '=' + option.Get().toString());
query.push(option.QueryParam + "=" + option.Get().toString());
});
$(elem).finish().fadeOut(100).fadeIn(300);
return baseUrl + '?' + query.join('&');
return baseUrl + "?" + query.join("&");
}
});
// save settings button action
$(params.SaveSelector).on('click', function() {
var filter = Filters.GetFilters().join(',');
Cookies.set('defaultFilter.v2', filter, {
$(params.SaveSelector).on("click", function() {
var filter = Filters.GetFilters().join(",");
Cookies.set("defaultFilter.v2", filter, {
expires: 365,
path: ''
path: ""
});
$(params.SaveSelector).finish().fadeOut(100).fadeIn(300);
});
// reset settings button action
$(params.ResetSelector).on('click', function() {
$(params.ResetSelector).on("click", function() {
Config.Reset();
QueryString.Remove('q');
QueryString.Remove("q");
location.reload();
});
// https://github.com/twbs/bootstrap/issues/2097
$(document).on('click', '.dropdown-menu.dropdown-menu-form', function(e) {
$(document).on("click", ".dropdown-menu.dropdown-menu-form", function(e) {
e.stopPropagation();
});
Config.NewOption({
Cookie: 'autoRefresh',
QueryParam: 'autorefresh',
Selector: '#autorefresh',
Cookie: "autoRefresh",
QueryParam: "autorefresh",
Selector: "#autorefresh",
Action: function(val) {
if (val) {
Unsee.WaitForNextReload();
@@ -136,12 +136,12 @@ var Config = (function() {
});
Config.NewOption({
Cookie: 'refreshInterval',
QueryParam: 'refresh',
Selector: '#refresh-interval',
Cookie: "refreshInterval",
QueryParam: "refresh",
Selector: "#refresh-interval",
Init: function() {
var elem = this;
$(this.Selector).on('change', function() {
$(this.Selector).on("change", function() {
var val = elem.Get();
elem.Save(val);
elem.Action(val);
@@ -160,15 +160,15 @@ var Config = (function() {
Config.NewOption({
Cookie: 'showFlash',
QueryParam: 'flash',
Selector: '#show-flash'
Cookie: "showFlash",
QueryParam: "flash",
Selector: "#show-flash"
});
Config.NewOption({
Cookie: 'appendTop',
QueryParam: 'appendtop',
Selector: '#append-top'
Cookie: "appendTop",
QueryParam: "appendtop",
Selector: "#append-top"
});
};

View File

@@ -4,8 +4,8 @@
var Counter = (function() {
var selectors = {
counter: '#alert-count',
spinner: '#spinner'
counter: "#alert-count",
spinner: "#spinner"
};
var favicon = false;
@@ -16,27 +16,27 @@ var Counter = (function() {
$(selectors.counter).html(val);
// set alert count css based on the number of alerts
if (val === 0) {
$(selectors.counter).removeClass('text-warning text-danger').addClass('text-success');
$(selectors.counter).removeClass("text-warning text-danger").addClass("text-success");
document.title = "(◕‿◕)";
} else if (val < 10) {
$(selectors.counter).removeClass('text-success text-danger').addClass('text-warning');
$(selectors.counter).removeClass("text-success text-danger").addClass("text-warning");
document.title = "(◕_◕)";
} else {
$(selectors.counter).removeClass('text-success text-warning').addClass('text-danger');
$(selectors.counter).removeClass("text-success text-warning").addClass("text-danger");
document.title = "(◕︵◕)";
}
};
var setUnknown = function() {
favicon.badge('?');
favicon.badge("?");
Counter.Show();
$(selectors.counter).html('?');
$(selectors.counter).removeClass('text-success text-warning text-danger');
$(selectors.counter).html("?");
$(selectors.counter).removeClass("text-success text-warning text-danger");
};
var hide = function() {
$(selectors.counter).hide();
$(selectors.spinner).children().removeClass('spinner-success spinner-error');
$(selectors.spinner).children().removeClass("spinner-success spinner-error");
$(selectors.spinner).show();
};
@@ -46,19 +46,19 @@ var Counter = (function() {
};
var markError = function() {
$(selectors.spinner).children().removeClass('spinner-success').addClass('spinner-error');
$(selectors.spinner).children().removeClass("spinner-success").addClass("spinner-error");
};
var markSuccess = function() {
$(selectors.spinner).children().addClass('spinner-success');
$(selectors.spinner).children().addClass("spinner-success");
};
var init = function() {
favicon = new Favico({
animation: 'none',
position: 'up',
bgColor: '#333',
textColor: '#ff0'
animation: "none",
position: "up",
bgColor: "#333",
textColor: "#ff0"
});
Counter.Unknown();
};

View File

@@ -6,15 +6,15 @@
var Filters = (function() {
var selectors = {
filter: '#filter',
icon: '#filter-icon'
filter: "#filter",
icon: "#filter-icon"
};
var addBadge = function(text) {
$.each($('span.tag'), function(i, tag) {
$.each($("span.tag"), function(i, tag) {
if ($(tag).text() == text) {
var chksum = sha1(text);
$(tag).prepend('<span class="badge tag-badge" id="tag-counter-' + chksum + '" data-badge-id="' + chksum + '"></span>');
$(tag).prepend("<span class='badge tag-badge' id='tag-counter-" + chksum + "' data-badge-id='" + chksum + "'></span>");
}
});
};
@@ -23,7 +23,7 @@ var Filters = (function() {
Filters.Updating();
// update location so it's easy to share it
QueryString.Set('q', Filters.GetFilters().join(','));
QueryString.Set("q", Filters.GetFilters().join(","));
// reload alerts
Unsee.Reload();
@@ -32,46 +32,46 @@ var Filters = (function() {
var init = function() {
var initial_filter;
if ($(selectors.filter).data('default-used') == 'false' || $(selectors.filter).data('default-used') === false) {
if ($(selectors.filter).data("default-used") == "false" || $(selectors.filter).data("default-used") === false) {
// user passed ?q=filter string
initial_filter = $(selectors.filter).val();
} else {
// no ?q=filter string, check if we have default filter cookie
initial_filter = Cookies.get('defaultFilter.v2');
initial_filter = Cookies.get("defaultFilter.v2");
if (initial_filter === undefined) {
// no cookie, use global default
initial_filter = $(selectors.filter).data('default-filter');
initial_filter = $(selectors.filter).data("default-filter");
}
}
var initial_filter_arr = initial_filter.split(',');
$(selectors.filter).val('');
$('.filterbar :input').tagsinput({
var initial_filter_arr = initial_filter.split(",");
$(selectors.filter).val("");
$(".filterbar :input").tagsinput({
typeaheadjs: {
minLength: 1,
hint: true,
limit: 12,
name: 'autocomplete',
name: "autocomplete",
source: Autocomplete.Autocomplete()
}
});
$.each(initial_filter_arr, function(i, filter) {
$(selectors.filter).tagsinput('add', filter);
$(selectors.filter).tagsinput("add", filter);
addBadge(filter);
});
$(selectors.filter).on('itemAdded itemRemoved', function(event) {
$(selectors.filter).on("itemAdded itemRemoved", function(event) {
Filters.SetFilters();
// add counter badge to new tag
if (event.type == 'itemAdded') {
if (event.type == "itemAdded") {
addBadge(event.item);
}
});
$(selectors.filter).tagsinput('focus');
$(selectors.filter).tagsinput("focus");
// stop when user is typing in the filter bar
$('.bootstrap-tagsinput').typing({
$(".bootstrap-tagsinput").typing({
start: function(event) {
if (event.keyCode != 8 && event.keyCode != 13) Unsee.Pause();
},
@@ -82,33 +82,33 @@ var Filters = (function() {
});
// fix body padding if needed, input might endup using more than 1 line
$('.bootstrap-tagsinput').bind("DOMSubtreeModified", function() {
$('body').css('padding-top', $('.navbar').height());
$(".bootstrap-tagsinput").bind("DOMSubtreeModified", function() {
$("body").css("padding-top", $(".navbar").height());
});
$('input.tt-input').on("change keypress", function() {
$('body').css('padding-top', $('.navbar').height());
$("input.tt-input").on("change keypress", function() {
$("body").css("padding-top", $(".navbar").height());
});
$('.filterbar').on('resize', function(){
$(".filterbar").on("resize", function(){
// hack for fixing padding since input can grow and change height
$('body').css('padding-top', $('.navbar').height());
$("body").css("padding-top", $(".navbar").height());
});
};
var getFilters = function() {
return $(selectors.filter).tagsinput('items');
return $(selectors.filter).tagsinput("items");
};
var reloadBadges = function(filterData) {
$.each(filterData, function(i, filter) {
$.each($('span.tag-badge'), function(j, tag) {
if (sha1(filter.text) == $(tag).data('badge-id')) {
$.each($("span.tag-badge"), function(j, tag) {
if (sha1(filter.text) == $(tag).data("badge-id")) {
$(tag).html(filter.hits.toString());
if (filter.isValid === true) {
$(tag).parent().addClass('label-info').removeClass('label-danger');
$(tag).parent().addClass("label-info").removeClass("label-danger");
} else {
$(tag).parent().addClass('label-danger').removeClass('label-info');
$(tag).parent().addClass("label-danger").removeClass("label-info");
}
}
});
@@ -116,20 +116,20 @@ var Filters = (function() {
};
var addFilter = function(text) {
$(selectors.filter).tagsinput('add', text);
$(selectors.filter).tagsinput("add", text);
};
var setUpdating = function() {
// visual hint that alerts are reloaded due to filter change
$(selectors.icon).removeClass('fa-search fa-pause').addClass('fa-circle-o-notch fa-spin');
$(selectors.icon).removeClass("fa-search fa-pause").addClass("fa-circle-o-notch fa-spin");
};
var updateDone = function() {
$(selectors.icon).removeClass('fa-circle-o-notch fa-spin fa-pause').addClass('fa-search');
$(selectors.icon).removeClass("fa-circle-o-notch fa-spin fa-pause").addClass("fa-search");
};
var setPause = function() {
$(selectors.icon).removeClass('fa-circle-o-notch fa-spin fa-search').addClass('fa-pause');
$(selectors.icon).removeClass("fa-circle-o-notch fa-spin fa-search").addClass("fa-pause");
};
return {

View File

@@ -4,9 +4,9 @@
var Grid = (function() {
var selectors = {
alerts: '#alerts',
incident: '.incident',
gridSizer: '.grid-sizer',
alerts: "#alerts",
incident: ".incident",
gridSizer: ".grid-sizer",
};
var grid;
@@ -16,7 +16,7 @@ var Grid = (function() {
itemSelector: selectors.incident,
columnWidth: selectors.gridSizer,
percentPosition: true,
transitionDuration: '0.4s',
transitionDuration: "0.4s",
hiddenStyle: {
opacity: 0
},
@@ -27,27 +27,27 @@ var Grid = (function() {
};
var clear = function() {
grid.masonry('remove', $(selectors.incident));
grid.masonry("remove", $(selectors.incident));
};
var redraw = function() {
grid.masonry('layout');
grid.masonry("layout");
};
var remove = function(elem) {
grid.masonry('remove', elem);
grid.masonry("remove", elem);
};
var append = function(elem) {
if (Config.GetOption('appendtop').Get()) {
grid.prepend(elem).masonry('prepended', elem);
if (Config.GetOption("appendtop").Get()) {
grid.prepend(elem).masonry("prepended", elem);
} else {
grid.append(elem).masonry('appended', elem);
grid.append(elem).masonry("appended", elem);
}
};
var items = function() {
return grid.masonry('getItemElements');
return grid.masonry("getItemElements");
};
var hide = function() {

View File

@@ -11,7 +11,7 @@ var Progress = (function() {
NProgress.configure({
minimum: 0.01,
showSpinner: false,
easing: 'linear'
easing: "linear"
});
};

View File

@@ -4,12 +4,12 @@ var QueryString = (function() {
var parse = function() {
var vars = [],
hash;
var q = document.URL.split('?')[1];
var q = document.URL.split("?")[1];
if (q !== undefined) {
q = q.split('&');
q = q.split("&");
for (var i = 0; i < q.length; i++) {
hash = q[i].split('=');
vars[hash[0]] = hash.slice(1).join('=');
hash = q[i].split("=");
vars[hash[0]] = hash.slice(1).join("=");
}
}
return vars;
@@ -17,27 +17,27 @@ var QueryString = (function() {
var update = function(key, value) {
/* https://gist.github.com/excalq/2961415 */
var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
var baseUrl = [location.protocol, "//", location.host, location.pathname].join(""),
urlQueryString = document.location.search,
newParam = key + '=' + value,
params = '?' + newParam;
newParam = key + "=" + value,
params = "?" + newParam;
// If the "search" string exists, then build params from it
if (urlQueryString) {
var keyRegex = new RegExp('([\?&])' + key + '[^&]*');
var keyRegex = new RegExp("([\?&])" + key + "[^&]*");
// If param exists already, update it
if (urlQueryString.match(keyRegex) !== null) {
params = urlQueryString.replace(keyRegex, "$1" + newParam);
} else { // Otherwise, add it to end of query string
params = urlQueryString + '&' + newParam;
params = urlQueryString + "&" + newParam;
}
}
window.history.replaceState({}, "", baseUrl + params);
};
var remove = function(key) {
var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
var baseUrl = [location.protocol, "//", location.host, location.pathname].join(""),
q = QueryString.Parse();
if (q[key] !== undefined) {
delete q[key];

View File

@@ -23,30 +23,30 @@ var Summary = (function() {
var tags = [];
$.each(top_tags.slice(0, 10), function(i, tag) {
var label_key = tag.name.split(': ')[0];
var label_val = tag.name.split(': ')[1];
var label_key = tag.name.split(": ")[0];
var label_val = tag.name.split(": ")[1];
tag.style = Colors.Get(label_key, label_val);
tag.cls = Colors.GetClass(label_key, label_val);
tags.push(tag);
});
return Templates.Render('breakdownContent', {tags: tags});
return Templates.Render("breakdownContent", {tags: tags});
};
var init = function() {
summary = {};
$('.navbar-header').popover({
trigger: 'hover',
$(".navbar-header").popover({
trigger: "hover",
delay: {
"show": 500,
"hide": 100
},
container: 'body',
container: "body",
html: true,
placement: 'bottom',
title: 'Top labels',
placement: "bottom",
title: "Top labels",
content: render,
template: Templates.Render('breakdown', {})
template: Templates.Render("breakdown", {})
});
};
@@ -60,7 +60,7 @@ var Summary = (function() {
};
var push = function(labelKey, labelVal) {
var l = labelKey + ': ' + labelVal;
var l = labelKey + ": " + labelVal;
if (summary[l] === undefined) {
summary[l] = 1;
} else {
@@ -69,7 +69,7 @@ var Summary = (function() {
};
var getCount = function(labelKey, labelVal) {
var l = labelKey + ': ' + labelVal;
var l = labelKey + ": " + labelVal;
return summary[l];
};

View File

@@ -6,39 +6,39 @@ var Templates = (function() {
var templates = {},
config = {
// popover with the list of most common labels
breakdown: '#breakdown',
breakdownContent: '#breakdown-content',
breakdown: "#breakdown",
breakdownContent: "#breakdown-content",
// reload message if backend version bump is detected
reloadNeeded: '#reload-needed',
reloadNeeded: "#reload-needed",
// errors
fatalError: '#fatal-error',
internalError: '#internal-error',
updateError: '#update-error',
fatalError: "#fatal-error",
internalError: "#internal-error",
updateError: "#update-error",
// modal popup with label filters
modalTitle: '#modal-title',
modalBody: '#modal-body',
modalTitle: "#modal-title",
modalBody: "#modal-body",
// modal popup with silence form
silenceForm: '#silence-form',
silenceFormSuccess: '#silence-form-success',
silenceFormError: '#silence-form-error',
silenceFormFatal: '#silence-form-fatal',
silenceFormLoading: '#silence-form-loading',
silenceForm: "#silence-form",
silenceFormSuccess: "#silence-form-success",
silenceFormError: "#silence-form-error",
silenceFormFatal: "#silence-form-fatal",
silenceFormLoading: "#silence-form-loading",
// label button
buttonLabel: '#label-button-filter',
buttonLabel: "#label-button-filter",
// alert group
alertGroup: '#alert-group',
alertGroupTitle: '#alert-group-title',
alertGroupAnnotations: '#alert-group-annotations',
alertGroupLabels: '#alert-group-labels',
alertGroupElements: '#alert-group-elements',
alertGroupSilence: '#alert-group-silence',
alertGroupLabelMap: '#alert-group-label-map'
alertGroup: "#alert-group",
alertGroupTitle: "#alert-group-title",
alertGroupAnnotations: "#alert-group-annotations",
alertGroupLabels: "#alert-group-labels",
alertGroupElements: "#alert-group-elements",
alertGroupSilence: "#alert-group-silence",
alertGroupLabelMap: "#alert-group-label-map"
};
var init = function() {
@@ -46,7 +46,7 @@ var Templates = (function() {
try {
templates[name] = _.template($(selector).html());
} catch (err) {
console.error('Failed to parse template ' + name + ' ' + selector);
console.error("Failed to parse template " + name + " " + selector);
console.error(err);
}
});
@@ -55,13 +55,13 @@ var Templates = (function() {
var renderTemplate = function(name, context) {
var t = templates[name];
if (t === undefined) {
console.error('Unknown template ' + name);
return '<div class="jumbotron"><h1>Internal error: unknown template ' + name + '</h1></div>';
console.error("Unknown template " + name);
return "<div class='jumbotron'><h1>Internal error: unknown template " + name + "</h1></div>";
}
try {
return t(context);
} catch (err) {
return '<div class="jumbotron">Failed to render template "' + name + '"<h1><p>' + err + '</p></h1></div>';
return "<div class='jumbotron'>Failed to render template " + name + "<h1><p>" + err + "</p></h1></div>";
}
};

View File

@@ -97,15 +97,15 @@ var UI = (function() {
break;
}
});
if ($("#startsAt").data('DateTimePicker')) {
payload.startsAt = $("#startsAt").data('DateTimePicker').date();
if ($("#startsAt").data("DateTimePicker")) {
payload.startsAt = $("#startsAt").data("DateTimePicker").date();
}
if ($("#endsAt").data('DateTimePicker')) {
payload.endsAt = $("#endsAt").data('DateTimePicker').date();
if ($("#endsAt").data("DateTimePicker")) {
payload.endsAt = $("#endsAt").data("DateTimePicker").date();
}
$.each($("#newSilenceForm .selectpicker"), function(i, elem) {
var label_key = $(elem).data('label-key');
var values = $(elem).selectpicker('val');
var label_key = $(elem).data("label-key");
var values = $(elem).selectpicker("val");
if (values && values.length > 0) {
var pval;
var isRegex = false;
@@ -127,14 +127,14 @@ var UI = (function() {
var silenceFormCalculateDuration = function() {
// skip if datetimepicker isn't ready yet
if (!$("#startsAt").data('DateTimePicker') || !$("#endsAt").data('DateTimePicker')) return false;
if (!$("#startsAt").data("DateTimePicker") || !$("#endsAt").data("DateTimePicker")) return false;
var startsAt = $("#startsAt").data('DateTimePicker').date();
var endsAt = $("#endsAt").data('DateTimePicker').date();
var startsAt = $("#startsAt").data("DateTimePicker").date();
var endsAt = $("#endsAt").data("DateTimePicker").date();
var totalDays = (endsAt.diff(startsAt, 'days'));
var totalHours = (endsAt.diff(startsAt, 'hours')) % 24;
var totalMinutes = endsAt.diff(startsAt, 'minutes') % 60;
var totalDays = (endsAt.diff(startsAt, "days"));
var totalHours = (endsAt.diff(startsAt, "hours")) % 24;
var totalMinutes = endsAt.diff(startsAt, "minutes") % 60;
$("#silence-duration-days").html(totalDays);
$("#silence-duration-hours").html(totalHours);
$("#silence-duration-minutes").html(totalMinutes);
@@ -159,11 +159,11 @@ var UI = (function() {
var silenceFormUpdateDuration = function(event) {
// skip if datetimepicker isn't ready yet
if (!$("#startsAt").data('DateTimePicker') || !$("#endsAt").data('DateTimePicker')) return false;
if (!$("#startsAt").data("DateTimePicker") || !$("#endsAt").data("DateTimePicker")) return false;
var startsAt = $("#startsAt").data('DateTimePicker').date();
var endsAt = $("#endsAt").data('DateTimePicker').date();
var endsAtMinDate = $("#endsAt").data('DateTimePicker').minDate();
var startsAt = $("#startsAt").data("DateTimePicker").date();
var endsAt = $("#endsAt").data("DateTimePicker").date();
var endsAtMinDate = $("#endsAt").data("DateTimePicker").minDate();
var action = $(event.target).data("duration-action");
var unit = $(event.target).data("duration-unit");
var step = parseInt($(event.target).data("duration-step"));
@@ -199,7 +199,7 @@ var UI = (function() {
endsAt = endsAtMinDate;
}
}
$("#endsAt").data('DateTimePicker').date(endsAt);
$("#endsAt").data("DateTimePicker").date(endsAt);
silenceFormCalculateDuration();
};
@@ -217,7 +217,7 @@ var UI = (function() {
elemLabels[l.split("=")[0]] = l.split("=")[1];
});
$.ajax({
url: 'alerts.json?q=alertname=' + elem.data('alertname'),
url: "alerts.json?q=alertname=" + elem.data("alertname"),
error: function(xhr, textStatus, errorThrown) {
var err = xhr.responseText || errorThrown || textStatus;
modal.find(".modal-body").html(
@@ -249,67 +249,67 @@ var UI = (function() {
);
$.each($(".selectpicker"), function(i, elem) {
$(elem).selectpicker({
iconBase: 'fa',
tickIcon: 'fa-check',
width: 'fit',
selectAllText: '<i class="fa fa-check-square-o"></i>',
deselectAllText: '<i class="fa fa-square-o"></i>',
noneSelectedText: '<span class="label label-list label-default">' + $(this).data('label-key') + ": </span>",
multipleSeparator: ' ',
selectedTextFormat: 'count > 1',
iconBase: "fa",
tickIcon: "fa-check",
width: "fit",
selectAllText: "<i class='fa fa-check-square-o'></i>",
deselectAllText: "<i class='fa fa-square-o'></i>",
noneSelectedText: "<span class='label label-list label-default'>" + $(this).data("label-key") + ": </span>",
multipleSeparator: " ",
selectedTextFormat: "count > 1",
countSelectedText: function (numSelected) {
return '<span class="label label-list label-warning">' +
$(elem).data('label-key') + ": " + numSelected + " values selected</span>";
return "<span class='label label-list label-warning'>" +
$(elem).data("label-key") + ": " + numSelected + " values selected</span>";
}
});
});
$('.datetime-picker').datetimepicker({
$(".datetime-picker").datetimepicker({
format: "YYYY-MM-DD HH:mm",
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-asterisk',
clear: 'fa fa-undo',
close: 'fa fa-close'
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down",
previous: "fa fa-chevron-left",
next: "fa fa-chevron-right",
today: "fa fa-asterisk",
clear: "fa fa-undo",
close: "fa fa-close"
},
minDate: moment(),
sideBySide: true,
inline: true
});
setupGroupTooltips($("#newSilenceForm"));
$('.select-label-badge').on('click', function() {
var select = $(this).parent().parent().find('select');
if (select.selectpicker('val')) {
$(".select-label-badge").on("click", function() {
var select = $(this).parent().parent().find("select");
if (select.selectpicker("val")) {
// if there's anything selected deselect all
select.selectpicker('deselectAll');
select.selectpicker("deselectAll");
} else {
// else select all
select.selectpicker('selectAll');
select.selectpicker("selectAll");
}
});
// set endsAt minDate to now + 1 minute
$("#endsAt").data('DateTimePicker').minDate(moment().add(1, 'minute'));
$("#endsAt").data("DateTimePicker").minDate(moment().add(1, "minute"));
// set endsAt time to +1 hour
$("#endsAt").data('DateTimePicker').date(moment().add(1, 'hours'));
$("#endsAt").data("DateTimePicker").date(moment().add(1, "hours"));
// whenever startsAt changes set it as the minDate for endsAt
// we can't have endsAt < startsAt
$("#newSilenceForm").on("dp.change", "#startsAt", function(){
if (!$("#startsAt").data('DateTimePicker')) return false;
var startsAt = $("#startsAt").data('DateTimePicker').date();
if (!$("#startsAt").data("DateTimePicker")) return false;
var startsAt = $("#startsAt").data("DateTimePicker").date();
// endsAt needs to be at least 1 minute after startsAt
startsAt.add(1, "minute");
$("#endsAt").data('DateTimePicker').minDate(startsAt);
$("#endsAt").data("DateTimePicker").minDate(startsAt);
});
$("#newSilenceForm").on("click", "a.silence-duration-btn", silenceFormUpdateDuration);
$("#newSilenceForm").on('show.bs.collapse, dp.change', function () {
$("#newSilenceForm").on("show.bs.collapse, dp.change", function () {
silenceFormJSONRender();
silenceFormCalculateDuration();
});
$("#newSilenceForm").on('change', function () {
$("#newSilenceForm").on("change", function () {
silenceFormJSONRender();
});
$("#newSilenceForm").submit(function(event) {
@@ -347,7 +347,7 @@ var UI = (function() {
success: function(data) {
if (data.status == "success") {
$("#newSilenceAlert").addClass("hidden");
$('#newSilenceForm').html(Templates.Render("silenceFormSuccess", {
$("#newSilenceForm").html(Templates.Render("silenceFormSuccess", {
silenceID: data.data.silenceId
}));
} else {

View File

@@ -11,17 +11,17 @@ var Unsee = (function() {
var refreshInterval = 15;
var selectors = {
refreshButton: '#refresh',
errors: '#errors'
refreshButton: "#refresh",
errors: "#errors"
};
var init = function() {
Progress.Init();
Config.Init({
CopySelector: '#copy-settings-with-filter',
SaveSelector: '#save-default-filter',
ResetSelector: '#reset-settings'
CopySelector: "#copy-settings-with-filter",
SaveSelector: "#save-default-filter",
ResetSelector: "#reset-settings"
});
Config.Load();
@@ -33,7 +33,7 @@ var Unsee = (function() {
Watchdog.Init(30, 60*15); // set watchdog to 15 minutes
$(selectors.refreshButton).click(function() {
if (!$(selectors.refreshButton).prop('disabled')) {
if (!$(selectors.refreshButton).prop("disabled")) {
Unsee.Reload();
}
return false;
@@ -48,7 +48,7 @@ var Unsee = (function() {
var rate = parseInt(seconds);
if (isNaN(rate)) {
// if passed rate is incorrect use select value
rate = Config.GetOption('refresh').Get();
rate = Config.GetOption("refresh").Get();
if (isNaN(rate)) {
// if that's also borked use default 15
rate = 15;
@@ -83,7 +83,7 @@ var Unsee = (function() {
if (window.console) {
console.error(err.stack);
}
renderError('internalError', {
renderError("internalError", {
name: err.name,
message: err.message,
raw: err
@@ -94,7 +94,7 @@ var Unsee = (function() {
};
var upgrade = function() {
renderError('reloadNeeded', {});
renderError("reloadNeeded", {});
setTimeout(function() {
location.reload();
}, 3000);
@@ -103,15 +103,15 @@ var Unsee = (function() {
var triggerReload = function() {
updateIsReady();
$.ajax({
url: 'alerts.json?q=' + Filters.GetFilters().join(','),
url: "alerts.json?q=" + Filters.GetFilters().join(","),
success: function(resp) {
Counter.Success();
if (needsUpgrade(resp.version)) {
upgrade();
} else if (resp.error) {
Counter.Unknown();
renderError('updateError', {
error: 'Backend error',
renderError("updateError", {
error: "Backend error",
message: resp.error,
last_ts: Watchdog.GetLastUpdate()
});
@@ -130,8 +130,8 @@ var Unsee = (function() {
Watchdog.Pong(moment(resp.timestamp));
Unsee.WaitForNextReload();
if (!Watchdog.IsFatal()) {
$(selectors.errors).html('');
$(selectors.errors).hide('');
$(selectors.errors).html("");
$(selectors.errors).hide("");
}
} catch (err) {
Counter.Unknown();
@@ -146,9 +146,9 @@ var Unsee = (function() {
// if fatal error was already triggered we have error message
// so don't add new one
if (!Watchdog.IsFatal()) {
renderError('updateError', {
error: 'Backend error',
message: 'AJAX request failed',
renderError("updateError", {
error: "Backend error",
message: "AJAX request failed",
last_ts: Watchdog.GetLastUpdate()
});
}
@@ -159,7 +159,7 @@ var Unsee = (function() {
var updateIsReady = function() {
Progress.Complete();
$(selectors.refreshButton).prop('disabled', true);
$(selectors.refreshButton).prop("disabled", true);
Counter.Hide();
};
@@ -167,9 +167,9 @@ var Unsee = (function() {
Counter.Show();
Filters.UpdateCompleted();
Progress.Complete();
$(selectors.refreshButton).prop('disabled', false);
$(selectors.refreshButton).prop("disabled", false);
// hack for fixing padding since input can grow and change height
$('body').css('padding-top', $('.navbar').height());
$("body").css("padding-top", $(".navbar").height());
};
var pause = function() {
@@ -182,7 +182,7 @@ var Unsee = (function() {
};
var resume = function() {
if (Config.GetOption('autorefresh').Get()) {
if (Config.GetOption("autorefresh").Get()) {
Filters.UpdateCompleted();
} else {
Filters.Pause();
@@ -196,13 +196,13 @@ var Unsee = (function() {
};
var flash = function() {
var bg = $('#flash').css('background-color');
$('#flash').css('display', 'block').animate({
backgroundColor: '#fff'
var bg = $("#flash").css("background-color");
$("#flash").css("display", "block").animate({
backgroundColor: "#fff"
}, 300, function() {
$(this).animate({
backgroundColor: bg
}, 100).css('display', 'none');
}, 100).css("display", "none");
});
};
@@ -223,11 +223,11 @@ $(document).ready(function() {
// wrap all inits so we can handle errors
try {
// init all elements using bootstrapSwitch
$('.toggle').bootstrapSwitch();
$(".toggle").bootstrapSwitch();
// enable tooltips, #settings is a dropdown so it already uses different data-toggle
$('[data-toggle="tooltip"], #settings').tooltip({
trigger: 'hover'
$("[data-toggle='tooltip'], #settings").tooltip({
trigger: "hover"
});
Templates.Init();
@@ -241,17 +241,17 @@ $(document).ready(function() {
} catch (error) {
Raven.captureException(error);
if (window.console) {
console.error('Error: ' + error.stack);
console.error("Error: " + error.stack);
}
// templates might not be loaded yet, make some html manually
$("#errors").html(
'<div class="jumbotron">' +
'<h1 class="text-center">' +
'Internal error <i class="fa fa-exclamation-circle text-danger"/>' +
'</h1>' +
'<div class="text-center"><p>' +
"<div class='jumbotron'>" +
"<h1 class='text-center'>" +
"Internal error <i class='fa fa-exclamation-circle text-danger'/>" +
"</h1>" +
"<div class='text-center'><p>" +
error.message +
'</p></div></div>'
"</p></div></div>"
).show();
}

View File

@@ -6,7 +6,7 @@
var Watchdog = (function() {
var selectors = {
countdown: '#reload-counter'
countdown: "#reload-counter"
};
var lastTs = 0;
@@ -21,11 +21,11 @@ var Watchdog = (function() {
if (lastTs === 0) return;
// don't raise an error if autorefresh is disabled
if (!Config.GetOption('autorefresh').Get()) return;
if (!Config.GetOption("autorefresh").Get()) return;
var now = moment().utc().unix();
if (now - lastTs > maxLag) {
$('#errors').html(Templates.Render('fatalError', {
$("#errors").html(Templates.Render("fatalError", {
last_ts: lastTs,
seconds_left: fatalCountdown
})).show();

File diff suppressed because one or more lines are too long