Fix unused and undefined variables warnings

This commit is contained in:
Łukasz Mierzwa
2017-04-27 21:26:50 -07:00
parent d977c2ff44
commit 4e97f4f0aa
16 changed files with 181 additions and 236 deletions

View File

@@ -1,7 +1,12 @@
// jshint esversion: 6
var Alerts = (function() {
/* globals LRUMap */ // lru.js
/* globals moment */ // moment.js
/* globals Autocomplete, Colors, Config, Counter, Grid, Templates, Summary, UI, Unsee */
/* exported Alerts */
var Alerts = (function() {
var silences = {},
labelCache = new LRUMap(1000);
@@ -43,8 +48,7 @@ var Alerts = (function() {
}
destroyGroup = function(groupID) {
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) {
@@ -53,8 +57,7 @@ var Alerts = (function() {
Grid.Remove($('#' + groupID));
};
sortMapByKey = function(mapToSort) {
var sortMapByKey = function(mapToSort) {
var keys = Object.keys(mapToSort);
keys.sort();
var sorted = [];
@@ -68,8 +71,7 @@ var Alerts = (function() {
return sorted;
};
labelAttrs = function(key, value) {
var labelAttrs = function(key, value) {
var label = key + ': ' + value;
var attrs = labelCache.get(label);
@@ -84,8 +86,7 @@ var Alerts = (function() {
return attrs;
};
humanizeTimestamps = function() {
var humanizeTimestamps = function() {
var now = moment();
// change timestamp labels to be relative
$.each($('.label-ts'), function(i, elem) {
@@ -105,8 +106,7 @@ var Alerts = (function() {
$('.recent-alert:in-viewport').finish().fadeToggle(300).fadeToggle(300).fadeToggle(300).fadeToggle(300);
};
updateAlerts = function(apiResponse) {
var updateAlerts = function(apiResponse) {
var alertCount = 0;
var groups = {};
@@ -185,7 +185,6 @@ var Alerts = (function() {
};
return {
Update: updateAlerts,
SortMapByKey: sortMapByKey,

View File

@@ -1,10 +1,11 @@
var Autocomplete = (function() {
/* globals Bloodhound */ // typeahead.js
/* exported Autocomplete */
var Autocomplete = (function() {
var autocomplete;
init = function() {
var init = function() {
autocomplete = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
@@ -18,18 +19,16 @@ var Autocomplete = (function() {
});
};
reset = function() {
var reset = function() {
autocomplete.clear();
};
getAutocomplete = function() {
var getAutocomplete = function() {
return autocomplete;
};
// this is used to generate quick filters for label modal
generateHints = function(label_key, label_val) {
var generateHints = function(label_key, label_val) {
var hints = [];
if (label_key == '@silenced') {
// static list of hints for @silenced label
@@ -64,7 +63,6 @@ var Autocomplete = (function() {
return hints;
};
return {
Init: init,
Reset: reset,

View File

@@ -1,6 +1,6 @@
/* exported Colors */
var Colors = (function() {
var colors,
staticColorLabels;
@@ -11,13 +11,11 @@ var Colors = (function() {
'@inhibited: true': 'label-success'
};
update = function(colorData) {
var update = function(colorData) {
colors = colorData;
};
getClass = function(key, value) {
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
@@ -30,8 +28,7 @@ var Colors = (function() {
}
};
getStyle = function(key, value) {
var getStyle = function(key, value) {
// get color data, returned as css style string
var style = "";
if (colors[key] !== undefined && colors[key][value] !== undefined) {
@@ -42,16 +39,15 @@ var Colors = (function() {
return style;
};
getStaticLabels = function() {
var getStaticLabels = function() {
return $('#alerts').data('static-color-labels').split(' ');
};
isStaticLabel = function(key) {
var isStaticLabel = function(key) {
return ($.inArray(key, Colors.GetStaticLabels()) >= 0);
};
init = function(staticColors) {
var init = function(staticColors) {
staticColorLabels = staticColors;
};

View File

@@ -1,7 +1,12 @@
// jshint esversion: 6
var Option = (function(params) {
/* globals Clipboard */ // clipboard.js
/* globals Cookies */ // js.cookie.js
/* globals Filters, Unsee, QueryString */
/* exported ConfigOption */
var ConfigOption = (function() {
class optionClass {
@@ -15,7 +20,7 @@ var Option = (function(params) {
this.Set = params.Setter || function(val) {
$(this.Selector).bootstrapSwitch('state', $.parseJSON(val), true);
};
this.Action = params.Action || function(val) {};
this.Action = params.Action || function() {};
this.Init = params.Init || function() {
var elem = this;
$(this.Selector).on('switchChange.bootstrapSwitch', function(event, val) {
@@ -58,14 +63,12 @@ var Option = (function(params) {
}());
/* exported Config */
var Config = (function() {
var options = {};
loadFromCookies = function() {
var loadFromCookies = function() {
$.each(options, function(name, option) {
var value = option.Load();
if (value !== undefined) {
@@ -74,8 +77,7 @@ var Config = (function() {
});
};
reset = function() {
var reset = function() {
// this is not part of options map
Cookies.remove("defaultFilter.v2");
$.each(options, function(name, option) {
@@ -83,8 +85,7 @@ var Config = (function() {
});
};
init = function(params) {
var init = function(params) {
// copy current filter button action
new Clipboard(params.CopySelector, {
@@ -100,7 +101,7 @@ var Config = (function() {
});
// save settings button action
$(params.SaveSelector).on('click', function(elem) {
$(params.SaveSelector).on('click', function() {
var filter = Filters.GetFilters().join(',');
Cookies.set('defaultFilter.v2', filter, {
expires: 365,
@@ -110,7 +111,7 @@ var Config = (function() {
});
// reset settings button action
$(params.ResetSelector).on('click', function(elem) {
$(params.ResetSelector).on('click', function() {
Config.Reset();
QueryString.Remove('q');
location.reload();
@@ -172,19 +173,16 @@ var Config = (function() {
};
newOption = function(params) {
var option = new Option.New(params);
var newOption = function(params) {
var option = new ConfigOption.New(params);
option.Init();
options[option.QueryParam] = option;
};
getOption = function(queryParam) {
var getOption = function(queryParam) {
return options[queryParam];
};
return {
Init: init,
Load: loadFromCookies,

View File

@@ -1,16 +1,16 @@
var Counter = (function(params) {
/* globals Favico */ // favico.js
/* exported Counter */
var Counter = (function() {
var selectors = {
counter: '#alert-count',
spinner: '#spinner'
};
var favicon = false;
setCounter = function(val) {
var setCounter = function(val) {
favicon.badge(val);
Counter.Show();
$(selectors.counter).html(val);
@@ -27,39 +27,33 @@ var Counter = (function(params) {
}
};
setUnknown = function() {
var setUnknown = function() {
favicon.badge('?');
Counter.Show();
$(selectors.counter).html('?');
$(selectors.counter).removeClass('text-success text-warning text-danger');
};
hide = function() {
var hide = function() {
$(selectors.counter).hide();
$(selectors.spinner).children().removeClass('spinner-success spinner-error');
$(selectors.spinner).show();
};
show = function() {
var show = function() {
$(selectors.spinner).hide();
$(selectors.counter).show();
};
markError = function() {
var markError = function() {
$(selectors.spinner).children().removeClass('spinner-success').addClass('spinner-error');
};
markSuccess = function() {
var markSuccess = function() {
$(selectors.spinner).children().addClass('spinner-success');
};
init = function() {
var init = function() {
favicon = new Favico({
animation: 'none',
position: 'up',
@@ -69,7 +63,6 @@ var Counter = (function(params) {
Counter.Unknown();
};
return {
Init: init,
Set: setCounter,

View File

@@ -1,13 +1,16 @@
/* globals sha1 */ // sha1.js
/* globals Autocomplete, Cookies, QueryString, Unsee */
/* exported Filters */
var Filters = (function() {
selectors = {
var selectors = {
filter: '#filter',
icon: '#filter-icon'
};
addBadge = function(text) {
var addBadge = function(text) {
$.each($('span.tag'), function(i, tag) {
if ($(tag).text() == text) {
var chksum = sha1(text);
@@ -16,8 +19,7 @@ var Filters = (function() {
});
};
update = function() {
var update = function() {
Filters.Updating();
// update location so it's easy to share it
@@ -27,8 +29,7 @@ var Filters = (function() {
Unsee.Reload();
};
init = function() {
var init = function() {
var initial_filter;
if ($(selectors.filter).data('default-used') == 'false' || $(selectors.filter).data('default-used') === false) {
@@ -71,10 +72,10 @@ var Filters = (function() {
// stop when user is typing in the filter bar
$('.bootstrap-tagsinput').typing({
start: function(event, elem) {
start: function(event) {
if (event.keyCode != 8 && event.keyCode != 13) Unsee.Pause();
},
stop: function(event, elem) {
stop: function(event) {
if (event.keyCode != 8 && event.keyCode != 13) Unsee.WaitForNextReload();
},
delay: 1000
@@ -95,13 +96,11 @@ var Filters = (function() {
};
getFilters = function() {
var getFilters = function() {
return $(selectors.filter).tagsinput('items');
};
reloadBadges = function(filterData) {
var reloadBadges = function(filterData) {
$.each(filterData, function(i, filter) {
$.each($('span.tag-badge'), function(j, tag) {
if (sha1(filter.text) == $(tag).data('badge-id')) {
@@ -116,28 +115,23 @@ var Filters = (function() {
});
};
addFilter = function(text) {
var addFilter = function(text) {
$(selectors.filter).tagsinput('add', text);
};
setUpdating = function() {
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');
};
updateDone = function() {
var updateDone = function() {
$(selectors.icon).removeClass('fa-circle-o-notch fa-spin fa-pause').addClass('fa-search');
};
setPause = function() {
var setPause = function() {
$(selectors.icon).removeClass('fa-circle-o-notch fa-spin fa-search').addClass('fa-pause');
};
return {
Init: init,
AddFilter: addFilter,
@@ -149,5 +143,4 @@ var Filters = (function() {
Pause: setPause
};
}());

View File

@@ -1,5 +1,7 @@
var Grid = (function(params) {
/* globals Config */
/* exported Grid */
var Grid = (function() {
var selectors = {
alerts: '#alerts',
@@ -9,8 +11,7 @@ var Grid = (function(params) {
var grid;
init = function() {
var init = function() {
grid = $(selectors.alerts).masonry({
itemSelector: selectors.incident,
columnWidth: selectors.gridSizer,
@@ -25,23 +26,19 @@ var Grid = (function(params) {
});
};
clear = function() {
var clear = function() {
grid.masonry('remove', $(selectors.incident));
};
redraw = function() {
var redraw = function() {
grid.masonry('layout');
};
remove = function(elem) {
var remove = function(elem) {
grid.masonry('remove', elem);
};
append = function(elem) {
var append = function(elem) {
if (Config.GetOption('appendtop').Get()) {
grid.prepend(elem).masonry('prepended', elem);
} else {
@@ -49,22 +46,18 @@ var Grid = (function(params) {
}
};
items = function() {
var items = function() {
return grid.masonry('getItemElements');
};
hide = function() {
var hide = function() {
$(selectors.alerts).hide();
};
show = function() {
var show = function() {
$(selectors.alerts).show();
};
return {
Init: init,
Clear: clear,

View File

@@ -1,10 +1,13 @@
var Progress = (function() {
/* globals NProgress */ // nprogress.js
/* globals Unsee */
/* exported Progress */
var Progress = (function() {
var timer;
init = function() {
var init = function() {
NProgress.configure({
minimum: 0.01,
showSpinner: false,
@@ -12,28 +15,24 @@ var Progress = (function() {
});
};
resetTimer = function() {
var resetTimer = function() {
if (timer !== false) {
clearInterval(timer);
timer = false;
}
};
complete = function() {
var complete = function() {
Progress.ResetTimer();
NProgress.done();
};
pause = function() {
var pause = function() {
Progress.ResetTimer();
NProgress.set(0.0);
};
start = function() {
var start = function() {
var step_ms = 250; // animation step in ms
var steps = (Unsee.GetRefreshRate() * 1000) / step_ms; // how many steps we have
NProgress.set(0.0);
@@ -43,7 +42,6 @@ var Progress = (function() {
}, step_ms);
};
return {
Init: init,
Pause: pause,

View File

@@ -1,7 +1,7 @@
/* exported QueryString */
var QueryString = (function() {
parse = function() {
var parse = function() {
var vars = [],
hash;
var q = document.URL.split('?')[1];
@@ -15,8 +15,7 @@ var QueryString = (function() {
return vars;
};
update = function(key, value) {
var update = function(key, value) {
/* https://gist.github.com/excalq/2961415 */
var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
urlQueryString = document.location.search,
@@ -25,7 +24,7 @@ var QueryString = (function() {
// If the "search" string exists, then build params from it
if (urlQueryString) {
keyRegex = new RegExp('([\?&])' + key + '[^&]*');
var keyRegex = new RegExp('([\?&])' + key + '[^&]*');
// If param exists already, update it
if (urlQueryString.match(keyRegex) !== null) {
@@ -37,8 +36,7 @@ var QueryString = (function() {
window.history.replaceState({}, "", baseUrl + params);
};
remove = function(key) {
var remove = function(key) {
var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
q = QueryString.Parse();
if (q[key] !== undefined) {
@@ -47,7 +45,6 @@ var QueryString = (function() {
}
};
return {
Parse: parse,
Set: update,

View File

@@ -1,4 +1,6 @@
var Sentry = (function() {
/* globals Raven */ // raven.js
(function() {
// init sentry client if sentry dsn is set
if ($("body").data("raven-dsn")) {

View File

@@ -1,9 +1,11 @@
/* globals Colors, Templates */
/* exported Summary */
var Summary = (function() {
var summary;
var summary, templates;
render = function() {
var render = function() {
var top_tags = [];
$.each(summary, function(k, v) {
top_tags.push({
@@ -31,8 +33,7 @@ var Summary = (function() {
return Templates.Render('breakdownContent', {tags: tags});
};
init = function() {
var init = function() {
summary = {};
$('.navbar-header').popover({
trigger: 'hover',
@@ -49,19 +50,16 @@ var Summary = (function() {
});
};
update = function(data) {
var update = function(data) {
summary = data;
};
reset = function() {
var reset = function() {
summary = {};
render();
};
push = function(labelKey, labelVal) {
var push = function(labelKey, labelVal) {
var l = labelKey + ': ' + labelVal;
if (summary[l] === undefined) {
summary[l] = 1;
@@ -70,12 +68,11 @@ var Summary = (function() {
}
};
getCount = function(labelKey, labelVal) {
var getCount = function(labelKey, labelVal) {
var l = labelKey + ': ' + labelVal;
return summary[l];
};
return {
Init: init,
Update: update,

View File

@@ -1,5 +1,7 @@
var Templates = (function(params) {
/* globals _ */ // underscore.js
/* exported Templates */
var Templates = (function() {
var templates = {},
config = {
@@ -39,8 +41,7 @@ var Templates = (function(params) {
alertGroupLabelMap: '#alert-group-label-map'
};
init = function() {
var init = function() {
$.each(config, function(name, selector) {
try {
templates[name] = _.template($(selector).html());
@@ -51,8 +52,7 @@ var Templates = (function(params) {
});
};
renderTemplate = function(name, context) {
var renderTemplate = function(name, context) {
var t = templates[name];
if (t === undefined) {
console.error('Unknown template ' + name);
@@ -65,7 +65,6 @@ var Templates = (function(params) {
}
};
return {
Init: init,
Render: renderTemplate

View File

@@ -1,9 +1,13 @@
var UI = (function(params) {
/* globals moment */ // moment.js
/* globals Alerts, Autocomplete, Filters, Summary, Templates, Unsee */
/* exported UI */
var UI = (function() {
// when user click on any alert label modal popup with a list of possible
// filter will show, this function is used to setup that modal
setupModal = function() {
var setupModal = function() {
$("#labelModal").on("show.bs.modal", function(event) {
Unsee.Pause();
var modal = $(this);
@@ -28,7 +32,7 @@ var UI = (function(params) {
Filters.AddFilter(filter);
});
});
$("#labelModal").on("hidden.bs.modal", function(event) {
$("#labelModal").on("hidden.bs.modal", function() {
var modal = $(this);
modal.find(".modal-title").children().remove();
modal.find(".modal-body").children().remove();
@@ -36,10 +40,9 @@ var UI = (function(params) {
});
};
// each alert group have a link generated for it, but we hide it until
// user hovers over that group so it doesn"t trash the UI
setupGroupLinkHover = function(elem) {
var setupGroupLinkHover = function(elem) {
$(elem).on("mouseenter", function() {
$(this).find(".alert-group-link > a").finish().animate({
opacity: 100
@@ -52,10 +55,9 @@ var UI = (function(params) {
});
};
// find all elements inside alert group panel that will use tooltips
// and setup those
setupGroupTooltips = function(groupElem) {
var setupGroupTooltips = function(groupElem) {
$.each(groupElem.find("[data-toggle=tooltip]"), function(i, elem) {
$(elem).tooltip({
animation: false, // slows down tooltip removal
@@ -69,20 +71,17 @@ var UI = (function(params) {
});
};
setupAlertGroupUI = function(elem) {
var setupAlertGroupUI = function(elem) {
setupGroupLinkHover(elem);
setupGroupTooltips(elem);
};
init = function() {
var init = function() {
setupModal();
setupSilenceForm();
};
silenceFormData = function() {
var silenceFormData = function() {
var values = $("#newSilenceForm").serializeArray();
var payload = {
matchers: [],
@@ -109,7 +108,7 @@ var UI = (function(params) {
var values = $(elem).selectpicker('val');
if (values && values.length > 0) {
var pval;
isRegex = false;
var isRegex = false;
if (values.length > 1) {
pval = "^(?:" + values.join("|") + ")$";
isRegex = true;
@@ -126,8 +125,7 @@ var UI = (function(params) {
return payload;
};
silenceFormCalculateDuration = function() {
var silenceFormCalculateDuration = function() {
// skip if datetimepicker isn't ready yet
if (!$("#startsAt").data('DateTimePicker') || !$("#endsAt").data('DateTimePicker')) return false;
@@ -152,16 +150,14 @@ var UI = (function(params) {
$("#silence-end-description").html(endsAtDesc);
};
silenceFormJSONRender = function() {
var silenceFormJSONRender = function() {
var d = "curl " + $("#silenceModal").data("silence-api") +
"\n -X POST --data " +
JSON.stringify(silenceFormData(), undefined, 2);
$("#silenceJSONBlob").html(d);
};
silenceFormUpdateDuration = function(event) {
var silenceFormUpdateDuration = function(event) {
// skip if datetimepicker isn't ready yet
if (!$("#startsAt").data('DateTimePicker') || !$("#endsAt").data('DateTimePicker')) return false;
@@ -207,9 +203,8 @@ var UI = (function(params) {
silenceFormCalculateDuration();
};
// modal form for creating new silences
setupSilenceForm = function() {
var setupSilenceForm = function() {
var modal = $("#silenceModal");
modal.on("show.bs.modal", function(event) {
Unsee.Pause();
@@ -262,7 +257,7 @@ var UI = (function(params) {
noneSelectedText: '<span class="label label-list label-default">' + $(this).data('label-key') + ": </span>",
multipleSeparator: ' ',
selectedTextFormat: 'count > 1',
countSelectedText: function (numSelected, numTotal) {
countSelectedText: function (numSelected) {
return '<span class="label label-list label-warning">' +
$(elem).data('label-key') + ": " + numSelected + " values selected</span>";
}
@@ -286,7 +281,7 @@ var UI = (function(params) {
inline: true
});
setupGroupTooltips($("#newSilenceForm"));
$('.select-label-badge').on('click', function(e) {
$('.select-label-badge').on('click', function() {
var select = $(this).parent().parent().find('select');
if (select.selectpicker('val')) {
// if there's anything selected deselect all
@@ -310,15 +305,15 @@ var UI = (function(params) {
$("#endsAt").data('DateTimePicker').minDate(startsAt);
});
$("#newSilenceForm").on("click", "a.silence-duration-btn", silenceFormUpdateDuration);
$("#newSilenceForm").on('show.bs.collapse, dp.change', function (e) {
$("#newSilenceForm").on('show.bs.collapse, dp.change', function () {
silenceFormJSONRender();
silenceFormCalculateDuration();
});
$("#newSilenceForm").on('change', function (e) {
$("#newSilenceForm").on('change', function () {
silenceFormJSONRender();
});
$("#newSilenceForm").submit(function(event) {
payload = silenceFormData();
var payload = silenceFormData();
if (payload.matchers.length === 0) {
var errContent = Templates.Render("silenceFormError", {error: "Select at least on label"});
$("#newSilenceAlert").html(errContent).removeClass("hidden");
@@ -349,7 +344,7 @@ var UI = (function(params) {
var errContent = Templates.Render("silenceFormError", {error: err});
$("#newSilenceAlert").html(errContent).removeClass("hidden");
},
success: function(data, textStatus, xhr) {
success: function(data) {
if (data.status == "success") {
$("#newSilenceAlert").addClass("hidden");
$('#newSilenceForm').html(Templates.Render("silenceFormSuccess", {
@@ -371,14 +366,13 @@ var UI = (function(params) {
});
});
modal.on("hidden.bs.modal", function(event) {
modal.on("hidden.bs.modal", function() {
var modal = $(this);
modal.find(".modal-body").children().remove();
Unsee.WaitForNextReload();
});
};
return {
Init: init,
SetupAlertGroupUI: setupAlertGroupUI

View File

@@ -1,5 +1,10 @@
var Unsee = (function(params) {
/* globals Raven */ // raven.js
/* globals moment */ // moment.js
/* globals Alerts, Autocomplete, Colors, Config, Counter, Grid, Filters, Progress, Summary, Templates, UI, Watchdog */
/* exported Unsee */
var Unsee = (function() {
var timer = false;
var version = false;
@@ -10,8 +15,7 @@ var Unsee = (function(params) {
errors: '#errors'
};
init = function() {
var init = function() {
Progress.Init();
Config.Init({
@@ -36,13 +40,11 @@ var Unsee = (function(params) {
});
};
getRefreshRate = function() {
var getRefreshRate = function() {
return refreshInterval;
};
setRefreshRate = function(seconds) {
var setRefreshRate = function(seconds) {
var rate = parseInt(seconds);
if (isNaN(rate)) {
// if passed rate is incorrect use select value
@@ -56,8 +58,7 @@ var Unsee = (function(params) {
Progress.Reset();
};
needsUpgrade = function(responseVersion) {
var needsUpgrade = function(responseVersion) {
if (version === false) {
version = responseVersion;
return false;
@@ -65,8 +66,7 @@ var Unsee = (function(params) {
return version != responseVersion;
};
renderError = function(template, context) {
var renderError = function(template, context) {
Counter.Error();
Grid.Clear();
Grid.Hide();
@@ -78,8 +78,7 @@ var Unsee = (function(params) {
updateCompleted();
};
handleError = function(err) {
var handleError = function(err) {
Raven.captureException(err);
if (window.console) {
console.error(err.stack);
@@ -94,16 +93,14 @@ var Unsee = (function(params) {
}, 500);
};
upgrade = function() {
var upgrade = function() {
renderError('reloadNeeded', {});
setTimeout(function() {
location.reload();
}, 3000);
};
triggerReload = function() {
var triggerReload = function() {
updateIsReady();
$.ajax({
url: 'alerts.json?q=' + Filters.GetFilters().join(','),
@@ -144,7 +141,7 @@ var Unsee = (function(params) {
}, 50);
}
},
error: function(jqXHR, textStatus) {
error: function() {
Counter.Unknown();
// if fatal error was already triggered we have error message
// so don't add new one
@@ -160,15 +157,13 @@ var Unsee = (function(params) {
});
};
updateIsReady = function() {
var updateIsReady = function() {
Progress.Complete();
$(selectors.refreshButton).prop('disabled', true);
Counter.Hide();
};
updateCompleted = function() {
var updateCompleted = function() {
Counter.Show();
Filters.UpdateCompleted();
Progress.Complete();
@@ -177,8 +172,7 @@ var Unsee = (function(params) {
$('body').css('padding-top', $('.navbar').height());
};
pause = function() {
var pause = function() {
Progress.Pause();
Filters.Pause();
if (timer !== false) {
@@ -187,8 +181,7 @@ var Unsee = (function(params) {
}
};
resume = function() {
var resume = function() {
if (Config.GetOption('autorefresh').Get()) {
Filters.UpdateCompleted();
} else {
@@ -202,8 +195,7 @@ var Unsee = (function(params) {
timer = setTimeout(Unsee.Reload, Unsee.GetRefreshRate() * 1000);
};
flash = function() {
var flash = function() {
var bg = $('#flash').css('background-color');
$('#flash').css('display', 'block').animate({
backgroundColor: '#fff'
@@ -214,7 +206,6 @@ var Unsee = (function(params) {
});
};
return {
Init: init,
Pause: pause,
@@ -227,7 +218,6 @@ var Unsee = (function(params) {
})();
$(document).ready(function() {
// wrap all inits so we can handle errors

View File

@@ -1,5 +1,9 @@
var Watchdog = (function() {
/* globals moment */ // moment.js
/* globals Config, Counter, Templates */
/* exported Watchdog */
var Watchdog = (function() {
var selectors = {
countdown: '#reload-counter'
@@ -7,15 +11,13 @@ var Watchdog = (function() {
var lastTs = 0;
var maxLag;
var timer = false;
var inCountdown = false;
var fatalCountdown = 60;
var fatalReloadTimer = false;
var fatalCounterTimer = false;
timerTick = function() {
var timerTick = function() {
if (lastTs === 0) return;
// don't raise an error if autorefresh is disabled
@@ -45,27 +47,23 @@ var Watchdog = (function() {
}
};
init = function(interval, tolerance) {
var init = function(interval, tolerance) {
maxLag = tolerance;
setInterval(timerTick, interval * 1000);
};
updateTs = function(ts) {
var updateTs = function(ts) {
lastTs = ts.utc().unix();
};
getTs = function() {
var getTs = function() {
return lastTs;
};
getFatal = function() {
var getFatal = function() {
return inCountdown;
};
return {
Init: init,
Pong: updateTs,

File diff suppressed because one or more lines are too long