Commit 8a7204de authored by David Schnur's avatar David Schnur

Merge pull request #1184 from anthonyryan1/0.9-work

CSP compatibility (flot core)
parents 9267b3e9 947ba2f8
...@@ -2928,8 +2928,7 @@ Licensed under the MIT license. ...@@ -2928,8 +2928,7 @@ Licensed under the MIT license.
return; return;
} }
var fragments = [], entries = [], rowStarted = false, var entries = [], lf = options.legend.labelFormatter, s, label, i;
lf = options.legend.labelFormatter, s, label, i;
// Build a list of legend entries, with each having a label and a color // Build a list of legend entries, with each having a label and a color
...@@ -2946,6 +2945,12 @@ Licensed under the MIT license. ...@@ -2946,6 +2945,12 @@ Licensed under the MIT license.
} }
} }
// No entries implies no legend
if (entries.length === 0) {
return;
}
// Sort the legend using either the default or a custom comparator // Sort the legend using either the default or a custom comparator
if (options.legend.sorted) { if (options.legend.sorted) {
...@@ -2965,53 +2970,62 @@ Licensed under the MIT license. ...@@ -2965,53 +2970,62 @@ Licensed under the MIT license.
// Generate markup for the list of entries, in their final order // Generate markup for the list of entries, in their final order
var table = $("<table></table>").css({
"font-size": "smaller",
"color": options.grid.color
}), rowBuffer = null;
for (i = 0; i < entries.length; ++i) { for (i = 0; i < entries.length; ++i) {
var entry = entries[i]; var entry = entries[i];
if (i % options.legend.noColumns === 0) { if (i % options.legend.noColumns === 0) {
if (rowStarted) { if (rowBuffer !== null) {
fragments.push("</tr>"); table.append(rowBuffer);
} }
fragments.push("<tr>"); rowBuffer = $("<tr></tr>");
rowStarted = true;
} }
fragments.push( var colorbox = $("<div></div>").css({
"<td class='legendColorBox'><div style='border:1px solid " + options.legend.labelBoxBorderColor + ";padding:1px'><div style='width:4px;height:0;border:5px solid " + entry.color + ";overflow:hidden'></div></div></td>" + "width": "4px",
"<td class='legendLabel'>" + entry.label + "</td>" "height": 0,
); "border": "5px solid " + entry.color,
} "overflow": "hidden"
}),
if (rowStarted) { borderbox = $("<div></div>").css({
fragments.push("</tr>"); "border": "1px solid " + options.legend.labelBoxBorderColor,
} "padding": "1px"
});
if (fragments.length === 0) { rowBuffer.append(
return; $("<td></td>").addClass("legendColorBox").append(borderbox.append(colorbox)),
$("<td></td>").addClass("legendLabel").html(entry.label)
);
} }
var table = "<table style='font-size:smaller;color:" + options.grid.color + "'>" + fragments.join("") + "</table>"; table.append(rowBuffer);
if (options.legend.container != null) { if (options.legend.container != null) {
$(options.legend.container).html(table); $(options.legend.container).html(table);
} else { } else {
var pos = "", var pos = {"position": "absolute"},
p = options.legend.position, p = options.legend.position,
m = options.legend.margin; m = options.legend.margin;
if (m[0] == null) { if (m[0] == null) {
m = [m, m]; m = [m, m];
} }
if (p.charAt(0) === "n") { if (p.charAt(0) === "n") {
pos += "top:" + (m[1] + plotOffset.top) + "px;"; pos.top = (m[1] + plotOffset.top) + "px";
} else if (p.charAt(0) === "s") { } else if (p.charAt(0) === "s") {
pos += "bottom:" + (m[1] + plotOffset.bottom) + "px;"; pos.bottom = (m[1] + plotOffset.bottom) + "px";
} }
if (p.charAt(1) === "e") { if (p.charAt(1) === "e") {
pos += "right:" + (m[0] + plotOffset.right) + "px;"; pos.right = (m[0] + plotOffset.right) + "px";
} else if (p.charAt(1) === "w") { } else if (p.charAt(1) === "w") {
pos += "left:" + (m[0] + plotOffset.left) + "px;"; pos.left = (m[0] + plotOffset.left) + "px";
} }
var legend = $("<div class='legend'>" + table.replace("style='", "style='position:absolute;" + pos +";") + "</div>").appendTo(placeholder); var legend = $("<div></div>").addClass("legend").append(table.css(pos)).appendTo(placeholder);
if (options.legend.backgroundOpacity !== 0.0) { if (options.legend.backgroundOpacity !== 0.0) {
// put in the transparent background // put in the transparent background
// separately to avoid blended labels and // separately to avoid blended labels and
...@@ -3028,7 +3042,14 @@ Licensed under the MIT license. ...@@ -3028,7 +3042,14 @@ Licensed under the MIT license.
c = c.toString(); c = c.toString();
} }
var div = legend.children(); var div = legend.children();
$("<div style='position:absolute;width:" + div.width() + "px;height:" + div.height() + "px;" + pos +"background-color:" + c + ";'> </div>").prependTo(legend).css("opacity", options.legend.backgroundOpacity);
// Position also applies to this
$("<div></div>").css(pos).css({
"width": div.width() + "px",
"height": div.height() + "px",
"background-color": c,
"opacity": options.legend.backgroundOpacity
}).prependTo(legend);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment