mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
As notified in the 4.14.0.0 release notes, this deprecates the legacy UI and moves it under the ui/legacy directory which will be served at /client/legacy URL path. This will also ensure that users upgrading or installing 4.15.0.0 will get the new UI by default. This will also make it simpler to remove the old UI for future 4.16/master releases. Co-authored-by: Daan Hoogland <daan.hoogland@shapeblue.com>
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
/* Flot plugin that adds some extra symbols for plotting points.
|
|
|
|
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
|
Licensed under the MIT license.
|
|
|
|
The symbols are accessed as strings through the standard symbol options:
|
|
|
|
series: {
|
|
points: {
|
|
symbol: "square" // or "diamond", "triangle", "cross"
|
|
}
|
|
}
|
|
|
|
*/
|
|
|
|
(function ($) {
|
|
function processRawData(plot, series, datapoints) {
|
|
// we normalize the area of each symbol so it is approximately the
|
|
// same as a circle of the given radius
|
|
|
|
var handlers = {
|
|
square: function (ctx, x, y, radius, shadow) {
|
|
// pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
|
|
var size = radius * Math.sqrt(Math.PI) / 2;
|
|
ctx.rect(x - size, y - size, size + size, size + size);
|
|
},
|
|
diamond: function (ctx, x, y, radius, shadow) {
|
|
// pi * r^2 = 2s^2 => s = r * sqrt(pi/2)
|
|
var size = radius * Math.sqrt(Math.PI / 2);
|
|
ctx.moveTo(x - size, y);
|
|
ctx.lineTo(x, y - size);
|
|
ctx.lineTo(x + size, y);
|
|
ctx.lineTo(x, y + size);
|
|
ctx.lineTo(x - size, y);
|
|
},
|
|
triangle: function (ctx, x, y, radius, shadow) {
|
|
// pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3))
|
|
var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));
|
|
var height = size * Math.sin(Math.PI / 3);
|
|
ctx.moveTo(x - size/2, y + height/2);
|
|
ctx.lineTo(x + size/2, y + height/2);
|
|
if (!shadow) {
|
|
ctx.lineTo(x, y - height/2);
|
|
ctx.lineTo(x - size/2, y + height/2);
|
|
}
|
|
},
|
|
cross: function (ctx, x, y, radius, shadow) {
|
|
// pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
|
|
var size = radius * Math.sqrt(Math.PI) / 2;
|
|
ctx.moveTo(x - size, y - size);
|
|
ctx.lineTo(x + size, y + size);
|
|
ctx.moveTo(x - size, y + size);
|
|
ctx.lineTo(x + size, y - size);
|
|
}
|
|
};
|
|
|
|
var s = series.points.symbol;
|
|
if (handlers[s])
|
|
series.points.symbol = handlers[s];
|
|
}
|
|
|
|
function init(plot) {
|
|
plot.hooks.processDatapoints.push(processRawData);
|
|
}
|
|
|
|
$.plot.plugins.push({
|
|
init: init,
|
|
name: 'symbols',
|
|
version: '1.0'
|
|
});
|
|
})(jQuery);
|