web/data/cubicweb.flot.js
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 21 Jun 2013 16:28:16 +0200
changeset 9040 3c85e734ce00
parent 7567 d6366de1d0dc
permissions -rw-r--r--
[webrequest] set DBAPISession without cnx at initialisation time Such session are necessary for minimal use of a Request. Setting on by default allow simplification later linking with a full featured DBAPISession or equivalent. This was not possible before as all session was tracked by session manager. They are not tracked anymore since aa709bc6b6c1 and we can safely create them by default. related to #2503918

function showTooltip(x, y, contents) {
    $('<div id="tooltip">' + contents + '</div>').css({
        position: 'absolute',
        display: 'none',
        top: y + 5,
        left: x + 5,
        border: '1px solid #fdd',
        padding: '2px',
        'background-color': '#fee',
        opacity: 0.80
    }).appendTo("body").fadeIn(200);
}

var previousPoint = null;
function onPlotHover(event, pos, item) {
    var $fig = $(event.target);
    if (item) {
        if (previousPoint != item.datapoint) {
            previousPoint = item.datapoint;
            $("#tooltip").remove();
            var x = item.datapoint[0].toFixed(2),
                y = item.datapoint[1].toFixed(2);
            if ($fig.data('mode') == 'time') {
                x = new Date(item.datapoint[0]);
                var dateformat = $fig.data('dateformat');
                if (dateformat) {
                    x = x.strftime(dateformat);
                } else {
                    x = x.toLocaleDateString() + ' ' + x.toLocaleTimeString();
                }
            } else if (item.datapoint.length == 4) {
                // NOTE: this has no chance to work with jquery flot >= 0.6 because
                // jquery flot normalizes datapoints and only keeps 2 columns. Either
                // use processRawData hook or use the 'dateformat' option.
                x = new Date(item.datapoint[2]);
                x = x.strftime(item.datapoint[3]);
            }
            showTooltip(item.pageX, item.pageY, item.series.label + ': (' + x + ' ; ' + y + ')');
        }
    } else {
        $("#tooltip").remove();
        previousPoint = null;
    }
}