static/dhcp/hosts.js
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 16:04:42 +0300
changeset 431 4e920e09fc60
parent 205 f7658198c224
permissions -rw-r--r--
version 0.7.3

* pvl.rrd-interfaces: ignore .txt on input files
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     1
/* http://fgnass.github.com/spin.js/ */
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     2
$.fn.spin = function(opts) {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     3
  this.each(function() {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     4
    var $this = $(this),
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     5
        data = $this.data();
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     6
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     7
    if (data.spinner) {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     8
      data.spinner.stop();
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
     9
      delete data.spinner;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    10
    }
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    11
    if (opts !== false) {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    12
      data.spinner = new Spinner($.extend({color: $this.css('color')}, opts)).spin(this);
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    13
    }
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    14
  });
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    15
  return this;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    16
};
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    17
37
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    18
$.fn.disabled = function (disabled) {
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    19
    if (disabled)
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    20
        this.attr('disabled', 'disabled');
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    21
    else
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    22
        this.removeAttr('disabled');
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    23
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    24
    return this;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    25
};
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    27
var Timer = function (interval, cb) {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    28
    var handle = null;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    29
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    30
    this.enable = function () {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    31
        if (handle) return;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    32
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    33
        handle = window.setInterval(cb, interval);
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    34
    };
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    35
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    36
    this.disable = function () {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    37
        if (!handle) return;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    38
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    39
        window.clearInterval(handle);
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    40
        handle = null;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    41
    };
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    42
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    43
    return this;
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    44
};
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    45
205
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    46
/*
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    47
 * Initialize the realtime host table.
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    48
 *
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    49
 *  table       - Table to manipulate
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    50
 *  url         - base URL for ?t=...
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    51
 *  filters     - { attr: value } for ?t=...
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    52
 *  t           - ?t=... to poll for
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    53
 *
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    54
 *  $(document).ready(HostsRealtime(Table(...), ...));
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    55
 *
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    56
 */
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    57
function HostsRealtime (table, params) {
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
    var t = params.t;
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    59
    var refreshTimer = Timer(2 * 1000, refresh);
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
40
bc8ab048b208 fixfix + docdoc
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
    61
    // XXX: refresh > interval?
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
    function refresh () {
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
        console.log("refresh: " + t);
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    64
        
37
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    65
        var refresh = $('#refresh').disabled(true);
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    66
        var spinner = $('#wrapper').spin();
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
30
841d856293a1 hosts: refactor ListHandler filter support up into BaseHandler, adding support for filters in RealtimeHandler
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
    68
        var url = params.url;
841d856293a1 hosts: refactor ListHandler filter support up into BaseHandler, adding support for filters in RealtimeHandler
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
    69
        var query = $.param($.extend(params.filters, {t: t }), true);   // using traditional encoding for multi-values
841d856293a1 hosts: refactor ListHandler filter support up into BaseHandler, adding support for filters in RealtimeHandler
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
    70
841d856293a1 hosts: refactor ListHandler filter support up into BaseHandler, adding support for filters in RealtimeHandler
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
    71
        $.getJSON(url, query, function (data) {
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    72
            var t1 = data.t;
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
            var hosts = data.hosts;
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    75
            console.log("refresh: " + t + " -> " + t1 + ": " + hosts.length);
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    76
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    77
            $.each(hosts, function (i, host) {
205
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    78
                table.update(host);
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    79
            });
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    80
            
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    81
            // update
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    82
            t = t1;
205
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents: 158
diff changeset
    83
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    84
        }).error(function () {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    85
            alert("Error :("); 
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    86
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    87
            // disable auto-refresh
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    88
            refreshTimer.disable();
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    89
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    90
        }).complete(function () {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    91
            spinner.spin(false);
37
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    92
            refresh.disabled(false);
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    93
        });
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    94
    }
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    95
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    96
    return function () {
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    97
        // init
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    98
        $("#refresh").click(function () {
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
    99
            // in case diabled on error
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   100
            refreshTimer.enable();
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   101
            refresh();
37
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   102
            $("#pause").disabled(false);
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   103
        });
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   104
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   105
        $("#pause").click(function () {
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   106
            console.log("pause");
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   107
            refreshTimer.disable();
9039238f8885 hosts realtime: pause button
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
   108
            $("#pause").disabled(true);
26
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   109
        });
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   110
        
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   111
        // start auto-refresh
589249097230 hosts: convert realtime list into table; breaks animations :(
Tero Marttila <terom@paivola.fi>
parents: 25
diff changeset
   112
        refreshTimer.enable();
25
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   113
    }
47faf2ac32d0 hosts: pseudo-realtime list
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   114
}