static/dhcp/table.js
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 14:40:31 +0300
changeset 428 956b3d4918bb
parent 205 f7658198c224
permissions -rw-r--r--
pvl.rrd.hosts: also support @domain for the collectd host
205
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
/*
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
 * Dynamic pvl.verkko.table frontend.
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
 */
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
function html (tag, params, html) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
    return $("<" + tag + " />", $.extend({html: html}, params));
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
};
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
/*
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
 *  item_url    - base URL path to /items/0 by id=0
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
 *  columns     - [ column_name ]
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
 *  animate     - attempt to animate table..
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
 */
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
function Table (table, params) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
    var tbody = table.children('tbody');
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    var animate = params.animate || false;
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    if (animate)
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
        table.css('display', 'block');
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
    /*
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
     * Render <tr> for item.
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
     */
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
    function render_tr (item) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
        var columns = [
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
            html("th", {}, 
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
                html("a", { href: params.item_url.replace('0', item.id) }, "#" )
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
            ),
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
        ];
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
        $.each(params.columns, function (i, column) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
            var col = item[column];
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
            var td = html("td", { title: col.title }, col.html);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
            $.each(col.css, function (i, css) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
                td.addClass(css);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
            });
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
            columns.push(td);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
        });
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
        return html("tr", { id: item.id }, columns);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
    }
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
        
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
    return {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
        animate:    animate,
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
        /*
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
         * Update given item into our <table>
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
         */
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
        update: function (item) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
            var tr = $('#' + item.id);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    53
            if (tr.length) {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
                if (animate) tr.slideUp();
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
            } else {
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    56
                tr = render_tr(item)
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
                if (animate) tr.hide();
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
            }
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
            
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
            // move to top
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
            tr.prependTo(tbody);
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
            if (animate)
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
                tr.slideDown();
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
            else
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
                tr.effect("highlight", {}, 'slow');
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
        }
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
    }
f7658198c224 pvl.verkko.hosts: refactor RealtimeHandler to use HostsTable
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
};