web/data/cubicweb.flot.js
author Rémi Cardona <remi.cardona@logilab.fr>, Julien Cristau <julien.cristau@logilab.fr>
Thu, 26 Nov 2015 11:30:54 +0100
changeset 10935 049209b9e9d6
parent 7567 d6366de1d0dc
permissions -rw-r--r--
[qunit] stop dealing with filesystem paths qunit tests need a few things served by cubicweb: - qunit itself, which is now handled by CWDevtoolsStaticController (serving files in cubicweb/devtools/data) - standard cubicweb or cubes data files, handled by the DataController - the tests themselves and their dependencies. These can live in <apphome>/data or <apphome>/static and be served by one of the STATIC_CONTROLLERS This avoids having to guess in CWSoftwareRootStaticController where to serve things from (some files may be installed, others are in the source tree), and should hopefully make it possible to have these tests pass when using tox, and to write qunit tests for cubes, outside of cubicweb itself. This requires modifying the tests to only declare URL paths instead of filesystem paths, and moving support files below test/data/static.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1888
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     1
function showTooltip(x, y, contents) {
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     2
    $('<div id="tooltip">' + contents + '</div>').css({
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     3
        position: 'absolute',
2564
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
     4
        display: 'none',
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
     5
        top: y + 5,
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     6
        left: x + 5,
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     7
        border: '1px solid #fdd',
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     8
        padding: '2px',
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
     9
        'background-color': '#fee',
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    10
        opacity: 0.80
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    11
    }).appendTo("body").fadeIn(200);
1888
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    12
}
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    13
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    14
var previousPoint = null;
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    15
function onPlotHover(event, pos, item) {
7567
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    16
    var $fig = $(event.target);
1888
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    17
    if (item) {
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    18
        if (previousPoint != item.datapoint) {
2564
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
    19
            previousPoint = item.datapoint;
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
    20
            $("#tooltip").remove();
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
    21
            var x = item.datapoint[0].toFixed(2),
7567
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    22
                y = item.datapoint[1].toFixed(2);
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    23
            if ($fig.data('mode') == 'time') {
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    24
                x = new Date(item.datapoint[0]);
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    25
                var dateformat = $fig.data('dateformat');
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    26
                if (dateformat) {
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    27
                    x = x.strftime(dateformat);
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    28
                } else {
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    29
                    x = x.toLocaleDateString() + ' ' + x.toLocaleTimeString();
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    30
                }
2564
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
    31
            } else if (item.datapoint.length == 4) {
7567
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    32
                // NOTE: this has no chance to work with jquery flot >= 0.6 because
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    33
                // jquery flot normalizes datapoints and only keeps 2 columns. Either
d6366de1d0dc Display proper date in plot/flot (closes #1725589)
Arthur Lutz <arthur.lutz@logilab.fr>
parents: 5658
diff changeset
    34
                // use processRawData hook or use the 'dateformat' option.
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    35
                x = new Date(item.datapoint[2]);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    36
                x = x.strftime(item.datapoint[3]);
1888
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    37
            }
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    38
            showTooltip(item.pageX, item.pageY, item.series.label + ': (' + x + ' ; ' + y + ')');
2564
5f38f5eaff86 [F plot] make jquery plots accept a fourth column that specifies a date format for tooltips
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1888
diff changeset
    39
        }
1888
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    40
    } else {
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    41
        $("#tooltip").remove();
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    42
        previousPoint = null;
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    43
    }
f36d43f00f32 [views] plot with flot and get rid of matplotlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    44
}
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2564
diff changeset
    45