|
|
- $(function () {
-
- var secsToText = function(total) {
- total = Math.floor(total / 60);
- var m = total % 60; total = Math.floor(total / 60);
- var h = total % 24; total = Math.floor(total / 24);
- var d = total % 7; total = Math.floor(total / 7);
- var w = total;
-
- var result = "";
- if (w) result += w + (w === 1 ? " week " : " weeks ");
- if (d) result += d + (d === 1 ? " day " : " days ");
- if (h) result += h + (h === 1 ? " hour " : " hours ");
- if (m) result += m + (m === 1 ? " minute " : " minutes ");
-
- return result;
- }
-
- var periodSlider = document.getElementById("period-slider");
- noUiSlider.create(periodSlider, {
- start: [20],
- connect: "lower",
- range: {
- 'min': [60, 60],
- '30%': [3600, 3600],
- '82.80%': [86400, 86400],
- 'max': 604800
- },
- pips: {
- mode: 'values',
- values: [60, 1800, 3600, 43200, 86400, 604800],
- density: 5,
- format: {
- to: secsToText,
- from: function() {}
- }
- }
- });
-
- periodSlider.noUiSlider.on("update", function(a, b, value) {
- var rounded = Math.round(value);
- $("#period-slider-value").text(secsToText(rounded));
- $("#update-timeout-timeout").val(rounded);
- });
-
-
- var graceSlider = document.getElementById("grace-slider");
- noUiSlider.create(graceSlider, {
- start: [20],
- connect: "lower",
- range: {
- 'min': [60, 60],
- '30%': [3600, 3600],
- '82.80%': [86400, 86400],
- 'max': 604800
- },
- pips: {
- mode: 'values',
- values: [60, 1800, 3600, 43200, 86400, 604800],
- density: 5,
- format: {
- to: secsToText,
- from: function() {}
- }
- }
- });
-
- graceSlider.noUiSlider.on("update", function(a, b, value) {
- var rounded = Math.round(value);
- $("#grace-slider-value").text(secsToText(rounded));
- $("#update-timeout-grace").val(rounded);
- });
-
-
- $('[data-toggle="tooltip"]').tooltip();
-
- $(".my-checks-name").click(function() {
- var $this = $(this);
-
- $("#update-name-form").attr("action", $this.data("url"));
- $("#update-name-input").val($this.data("name"));
- $("#update-tags-input").val($this.data("tags"));
- $('#update-name-modal').modal("show");
- $("#update-name-input").focus();
-
- return false;
- });
-
- $(".timeout-grace").click(function() {
- var $this = $(this);
-
- $("#update-timeout-form").attr("action", $this.data("url"));
- periodSlider.noUiSlider.set($this.data("timeout"))
- graceSlider.noUiSlider.set($this.data("grace"))
- $('#update-timeout-modal').modal({"show":true, "backdrop":"static"});
-
- return false;
- });
-
- $(".check-menu-remove").click(function() {
- var $this = $(this);
-
- $("#remove-check-form").attr("action", $this.data("url"));
- $(".remove-check-name").text($this.data("name"));
- $('#remove-check-modal').modal("show");
-
- return false;
- });
-
- $("#show-urls").click(function() {
- $("#show-urls").addClass("active");
- $(".my-checks-url").removeClass("off");
-
- $("#show-emails").removeClass("active");
- $(".my-checks-email").addClass("off");
- });
-
- $("#show-emails").click(function() {
- $("#show-urls").removeClass("active");
- $(".my-checks-url").addClass("off");
-
- $("#show-emails").addClass("active");
- $(".my-checks-email").removeClass("off");
- });
-
- $(".selectable").click(function() {
- $(this).tooltip("hide");
- this.select();
- });
-
- $("#my-checks-tags button").click(function() {
- // .active has not been updated yet by bootstrap code,
- // so cannot use it
- $(this).toggleClass('checked');
-
- // Make a list of currently checked tags:
- var checked = [];
- $("#my-checks-tags button.checked").each(function(index, el) {
- checked.push(el.textContent);
- });
-
- // No checked tags: show all
- if (checked.length == 0) {
- $("#checks-table tr.checks-row").show();
- $("#checks-list > li").show();
- return;
- }
-
- function applyFilters(index, element) {
- var tags = $(".my-checks-name", element).data("tags").split(" ");
- for (var i=0, tag; tag=checked[i]; i++) {
- if (tags.indexOf(tag) == -1) {
- $(element).hide();
- return;
- }
- }
-
- $(element).show();
- }
-
- // Desktop: for each row, see if it needs to be shown or hidden
- $("#checks-table tr.checks-row").each(applyFilters);
- // Mobile: for each list item, see if it needs to be shown or hidden
- $("#checks-list > li").each(applyFilters);
-
- });
-
- });
|