diff -r f3af77e371a1 -r 9f02c09d2393 src/pyams_skin/resources/js/ext/flot/jquery.flot.image.js --- a/src/pyams_skin/resources/js/ext/flot/jquery.flot.image.js Thu Sep 26 11:55:17 2019 +0200 +++ b/src/pyams_skin/resources/js/ext/flot/jquery.flot.image.js Wed Oct 16 13:00:43 2019 +0200 @@ -11,7 +11,7 @@ There are two helpers included for retrieving images. The easiest work the way that you put in URLs instead of images in the data, like this: - [ "myimage.png", 0, 0, 10, 10 ] + [ "myimage.png", 0, 0, 10, 10 ] Then call $.plot.image.loadData( data, options, callback ) where data and options are the same as you pass in to $.plot. This loads the images, replaces @@ -25,20 +25,20 @@ The plugin supports these options: - series: { - images: { - show: boolean - anchor: "corner" or "center" - alpha: [ 0, 1 ] - } - } + series: { + images: { + show: boolean + anchor: "corner" or "center" + alpha: [ 0, 1 ] + } + } They can be specified for a specific series: - $.plot( $("#placeholder"), [{ - data: [ ... ], - images: { ... } - ]) + $.plot( $("#placeholder"), [{ + data: [ ... ], + images: { ... } + ]) Note that because the data format is different from usual data points, you can't use images with anything else in a specific data series. @@ -69,16 +69,18 @@ var urls = [], points = []; var defaultShow = options.series.images.show; - + $.each(series, function (i, s) { - if (!(defaultShow || s.images.show)) + if (!(defaultShow || s.images.show)) { return; - - if (s.data) + } + + if (s.data) { s = s.data; + } $.each(s, function (i, p) { - if (typeof p[0] == "string") { + if (typeof p[0] === "string") { urls.push(p[0]); points.push(p); } @@ -88,42 +90,45 @@ $.plot.image.load(urls, function (loadedImages) { $.each(points, function (i, p) { var url = p[0]; - if (loadedImages[url]) + if (loadedImages[url]) { p[0] = loadedImages[url]; + } }); callback(); }); } - + $.plot.image.load = function (urls, callback) { var missing = urls.length, loaded = {}; - if (missing == 0) + if (missing === 0) { callback({}); + } $.each(urls, function (i, url) { var handler = function () { --missing; - loaded[url] = this; - - if (missing == 0) + + if (missing === 0) { callback(loaded); + } }; $('').load(handler).error(handler).attr('src', url); }); }; - + function drawSeries(plot, ctx, series) { var plotOffset = plot.getPlotOffset(); - - if (!series.images || !series.images.show) + + if (!series.images || !series.images.show) { return; - + } + var points = series.datapoints.points, ps = series.datapoints.pointsize; - + for (var i = 0; i < points.length; i += ps) { var img = points[i], x1 = points[i + 1], y1 = points[i + 2], @@ -134,8 +139,9 @@ // actually we should check img.complete, but it // appears to be a somewhat unreliable indicator in // IE6 (false even after load event) - if (!img || img.width <= 0 || img.height <= 0) + if (!img || img.width <= 0 || img.height <= 0) { continue; + } if (x1 > x2) { tmp = x2; @@ -147,23 +153,24 @@ y2 = y1; y1 = tmp; } - - // if the anchor is at the center of the pixel, expand the + + // if the anchor is at the center of the pixel, expand the // image by 1/2 pixel in each direction - if (series.images.anchor == "center") { - tmp = 0.5 * (x2-x1) / (img.width - 1); + if (series.images.anchor === "center") { + tmp = 0.5 * (x2 - x1) / (img.width - 1); x1 -= tmp; x2 += tmp; - tmp = 0.5 * (y2-y1) / (img.height - 1); + tmp = 0.5 * (y2 - y1) / (img.height - 1); y1 -= tmp; y2 += tmp; } - + // clip - if (x1 == x2 || y1 == y2 || + if (x1 === x2 || y1 === y2 || x1 >= xaxis.max || x2 <= xaxis.min || - y1 >= yaxis.max || y2 <= yaxis.min) + y1 >= yaxis.max || y2 <= yaxis.min) { continue; + } var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height; if (x1 < xaxis.min) { @@ -185,12 +192,12 @@ sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1); y2 = yaxis.max; } - + x1 = xaxis.p2c(x1); x2 = xaxis.p2c(x2); y1 = yaxis.p2c(y1); y2 = yaxis.p2c(y2); - + // the transformation may have swapped us if (x1 > x2) { tmp = x2; @@ -214,8 +221,9 @@ } function processRawData(plot, series, data, datapoints) { - if (!series.images.show) + if (!series.images.show) { return; + } // format is Image, x1, y1, x2, y2 (opposite corners) datapoints.format = [ @@ -226,12 +234,12 @@ { y: true, number: true, required: true } ]; } - + function init(plot) { plot.hooks.processRawData.push(processRawData); plot.hooks.drawSeries.push(drawSeries); } - + $.plot.plugins.push({ init: init, options: options,