http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.js
deleted file mode 100644
index 9c19db9..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.js
+++ /dev/null
@@ -1,820 +0,0 @@
-/* Flot plugin for rendering pie charts.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-The plugin assumes that each series has a single data value, and that each
-value is a positive integer or zero.  Negative numbers don't make sense for a
-pie chart, and have unpredictable results.  The values do NOT need to be
-passed in as percentages; the plugin will calculate the total and per-slice
-percentages internally.
-
-* Created by Brian Medendorp
-
-* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars
-
-The plugin supports these options:
-
-       series: {
-               pie: {
-                       show: true/false
-                       radius: 0-1 for percentage of fullsize, or a specified 
pixel length, or 'auto'
-                       innerRadius: 0-1 for percentage of fullsize or a 
specified pixel length, for creating a donut effect
-                       startAngle: 0-2 factor of PI used for starting angle 
(in radians) i.e 3/2 starts at the top, 0 and 2 have the same result
-                       tilt: 0-1 for percentage to tilt the pie, where 1 is no 
tilt, and 0 is completely flat (nothing will show)
-                       offset: {
-                               top: integer value to move the pie up or down
-                               left: integer value to move the pie left or 
right, or 'auto'
-                       },
-                       stroke: {
-                               color: any hexidecimal color value (other 
formats may or may not work, so best to stick with something like '#FFF')
-                               width: integer pixel width of the stroke
-                       },
-                       label: {
-                               show: true/false, or 'auto'
-                               formatter:  a user-defined function that 
modifies the text/style of the label text
-                               radius: 0-1 for percentage of fullsize, or a 
specified pixel length
-                               background: {
-                                       color: any hexidecimal color value 
(other formats may or may not work, so best to stick with something like '#000')
-                                       opacity: 0-1
-                               },
-                               threshold: 0-1 for the percentage value at 
which to hide labels (if they're too small)
-                       },
-                       combine: {
-                               threshold: 0-1 for the percentage value at 
which to combine slices (if they're too small)
-                               color: any hexidecimal color value (other 
formats may or may not work, so best to stick with something like '#CCC'), if 
null, the plugin will automatically use the color of the first slice to be 
combined
-                               label: any text value of what the combined 
slice should be labeled
-                       }
-                       highlight: {
-                               opacity: 0-1
-                       }
-               }
-       }
-
-More detail and specific examples can be found in the included HTML file.
-
-*/
-
-(function($) {
-
-       // Maximum redraw attempts when fitting labels within the plot
-
-       var REDRAW_ATTEMPTS = 10;
-
-       // Factor by which to shrink the pie when fitting labels within the plot
-
-       var REDRAW_SHRINK = 0.95;
-
-       function init(plot) {
-
-               var canvas = null,
-                       target = null,
-                       options = null,
-                       maxRadius = null,
-                       centerLeft = null,
-                       centerTop = null,
-                       processed = false,
-                       ctx = null;
-
-               // interactive variables
-
-               var highlights = [];
-
-               // add hook to determine if pie plugin in enabled, and then 
perform necessary operations
-
-               plot.hooks.processOptions.push(function(plot, options) {
-                       if (options.series.pie.show) {
-
-                               options.grid.show = false;
-
-                               // set labels.show
-
-                               if (options.series.pie.label.show == "auto") {
-                                       if (options.legend.show) {
-                                               options.series.pie.label.show = 
false;
-                                       } else {
-                                               options.series.pie.label.show = 
true;
-                                       }
-                               }
-
-                               // set radius
-
-                               if (options.series.pie.radius == "auto") {
-                                       if (options.series.pie.label.show) {
-                                               options.series.pie.radius = 3/4;
-                                       } else {
-                                               options.series.pie.radius = 1;
-                                       }
-                               }
-
-                               // ensure sane tilt
-
-                               if (options.series.pie.tilt > 1) {
-                                       options.series.pie.tilt = 1;
-                               } else if (options.series.pie.tilt < 0) {
-                                       options.series.pie.tilt = 0;
-                               }
-                       }
-               });
-
-               plot.hooks.bindEvents.push(function(plot, eventHolder) {
-                       var options = plot.getOptions();
-                       if (options.series.pie.show) {
-                               if (options.grid.hoverable) {
-                                       
eventHolder.unbind("mousemove").mousemove(onMouseMove);
-                               }
-                               if (options.grid.clickable) {
-                                       
eventHolder.unbind("click").click(onClick);
-                               }
-                       }
-               });
-
-               plot.hooks.processDatapoints.push(function(plot, series, data, 
datapoints) {
-                       var options = plot.getOptions();
-                       if (options.series.pie.show) {
-                               processDatapoints(plot, series, data, 
datapoints);
-                       }
-               });
-
-               plot.hooks.drawOverlay.push(function(plot, octx) {
-                       var options = plot.getOptions();
-                       if (options.series.pie.show) {
-                               drawOverlay(plot, octx);
-                       }
-               });
-
-               plot.hooks.draw.push(function(plot, newCtx) {
-                       var options = plot.getOptions();
-                       if (options.series.pie.show) {
-                               draw(plot, newCtx);
-                       }
-               });
-
-               function processDatapoints(plot, series, datapoints) {
-                       if (!processed) {
-                               processed = true;
-                               canvas = plot.getCanvas();
-                               target = $(canvas).parent();
-                               options = plot.getOptions();
-                               plot.setData(combine(plot.getData()));
-                       }
-               }
-
-               function combine(data) {
-
-                       var total = 0,
-                               combined = 0,
-                               numCombined = 0,
-                               color = options.series.pie.combine.color,
-                               newdata = [];
-
-                       // Fix up the raw data from Flot, ensuring the data is 
numeric
-
-                       for (var i = 0; i < data.length; ++i) {
-
-                               var value = data[i].data;
-
-                               // If the data is an array, we'll assume that 
it's a standard
-                               // Flot x-y pair, and are concerned only with 
the second value.
-
-                               // Note how we use the original array, rather 
than creating a
-                               // new one; this is more efficient and 
preserves any extra data
-                               // that the user may have stored in higher 
indexes.
-
-                               if ($.isArray(value) && value.length == 1) {
-                               value = value[0];
-                               }
-
-                               if ($.isArray(value)) {
-                                       // Equivalent to $.isNumeric() but 
compatible with jQuery < 1.7
-                                       if (!isNaN(parseFloat(value[1])) && 
isFinite(value[1])) {
-                                               value[1] = +value[1];
-                                       } else {
-                                               value[1] = 0;
-                                       }
-                               } else if (!isNaN(parseFloat(value)) && 
isFinite(value)) {
-                                       value = [1, +value];
-                               } else {
-                                       value = [1, 0];
-                               }
-
-                               data[i].data = [value];
-                       }
-
-                       // Sum up all the slices, so we can calculate 
percentages for each
-
-                       for (var i = 0; i < data.length; ++i) {
-                               total += data[i].data[0][1];
-                       }
-
-                       // Count the number of slices with percentages below 
the combine
-                       // threshold; if it turns out to be just one, we won't 
combine.
-
-                       for (var i = 0; i < data.length; ++i) {
-                               var value = data[i].data[0][1];
-                               if (value / total <= 
options.series.pie.combine.threshold) {
-                                       combined += value;
-                                       numCombined++;
-                                       if (!color) {
-                                               color = data[i].color;
-                                       }
-                               }
-                       }
-
-                       for (var i = 0; i < data.length; ++i) {
-                               var value = data[i].data[0][1];
-                               if (numCombined < 2 || value / total > 
options.series.pie.combine.threshold) {
-                                       newdata.push(
-                                               $.extend(data[i], {     /* 
extend to allow keeping all other original data values
-                                                                          and 
using them e.g. in labelFormatter. */
-                                                       data: [[1, value]],
-                                                       color: data[i].color,
-                                                       label: data[i].label,
-                                                       angle: value * Math.PI 
* 2 / total,
-                                                       percent: value / (total 
/ 100)
-                                               })
-                                       );
-                               }
-                       }
-
-                       if (numCombined > 1) {
-                               newdata.push({
-                                       data: [[1, combined]],
-                                       color: color,
-                                       label: options.series.pie.combine.label,
-                                       angle: combined * Math.PI * 2 / total,
-                                       percent: combined / (total / 100)
-                               });
-                       }
-
-                       return newdata;
-               }
-
-               function draw(plot, newCtx) {
-
-                       if (!target) {
-                               return; // if no series were passed
-                       }
-
-                       var canvasWidth = plot.getPlaceholder().width(),
-                               canvasHeight = plot.getPlaceholder().height(),
-                               legendWidth = 
target.children().filter(".legend").children().width() || 0;
-
-                       ctx = newCtx;
-
-                       // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE!
-
-                       // When combining smaller slices into an 'other' slice, 
we need to
-                       // add a new series.  Since Flot gives plugins no way 
to modify the
-                       // list of series, the pie plugin uses a hack where the 
first call
-                       // to processDatapoints results in a call to setData 
with the new
-                       // list of series, then subsequent processDatapoints do 
nothing.
-
-                       // The plugin-global 'processed' flag is used to 
control this hack;
-                       // it starts out false, and is set to true after the 
first call to
-                       // processDatapoints.
-
-                       // Unfortunately this turns future setData calls into 
no-ops; they
-                       // call processDatapoints, the flag is true, and 
nothing happens.
-
-                       // To fix this we'll set the flag back to false here in 
draw, when
-                       // all series have been processed, so the next sequence 
of calls to
-                       // processDatapoints once again starts out with a 
slice-combine.
-                       // This is really a hack; in 0.9 we need to give 
plugins a proper
-                       // way to modify series before any processing begins.
-
-                       processed = false;
-
-                       // calculate maximum radius and center point
-
-                       maxRadius =  Math.min(canvasWidth, canvasHeight / 
options.series.pie.tilt) / 2;
-                       centerTop = canvasHeight / 2 + 
options.series.pie.offset.top;
-                       centerLeft = canvasWidth / 2;
-
-                       if (options.series.pie.offset.left == "auto") {
-                               if (options.legend.position.match("w")) {
-                                       centerLeft += legendWidth / 2;
-                               } else {
-                                       centerLeft -= legendWidth / 2;
-                               }
-                               if (centerLeft < maxRadius) {
-                                       centerLeft = maxRadius;
-                               } else if (centerLeft > canvasWidth - 
maxRadius) {
-                                       centerLeft = canvasWidth - maxRadius;
-                               }
-                       } else {
-                               centerLeft += options.series.pie.offset.left;
-                       }
-
-                       var slices = plot.getData(),
-                               attempts = 0;
-
-                       // Keep shrinking the pie's radius until drawPie 
returns true,
-                       // indicating that all the labels fit, or we try too 
many times.
-
-                       do {
-                               if (attempts > 0) {
-                                       maxRadius *= REDRAW_SHRINK;
-                               }
-                               attempts += 1;
-                               clear();
-                               if (options.series.pie.tilt <= 0.8) {
-                                       drawShadow();
-                               }
-                       } while (!drawPie() && attempts < REDRAW_ATTEMPTS)
-
-                       if (attempts >= REDRAW_ATTEMPTS) {
-                               clear();
-                               target.prepend("<div class='error'>Could not 
draw pie with labels contained inside canvas</div>");
-                       }
-
-                       if (plot.setSeries && plot.insertLegend) {
-                               plot.setSeries(slices);
-                               plot.insertLegend();
-                       }
-
-                       // we're actually done at this point, just defining 
internal functions at this point
-
-                       function clear() {
-                               ctx.clearRect(0, 0, canvasWidth, canvasHeight);
-                               target.children().filter(".pieLabel, 
.pieLabelBackground").remove();
-                       }
-
-                       function drawShadow() {
-
-                               var shadowLeft = options.series.pie.shadow.left;
-                               var shadowTop = options.series.pie.shadow.top;
-                               var edge = 10;
-                               var alpha = options.series.pie.shadow.alpha;
-                               var radius = options.series.pie.radius > 1 ? 
options.series.pie.radius : maxRadius * options.series.pie.radius;
-
-                               if (radius >= canvasWidth / 2 - shadowLeft || 
radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= 
edge) {
-                                       return; // shadow would be outside 
canvas, so don't draw it
-                               }
-
-                               ctx.save();
-                               ctx.translate(shadowLeft,shadowTop);
-                               ctx.globalAlpha = alpha;
-                               ctx.fillStyle = "#000";
-
-                               // center and rotate to starting position
-
-                               ctx.translate(centerLeft,centerTop);
-                               ctx.scale(1, options.series.pie.tilt);
-
-                               //radius -= edge;
-
-                               for (var i = 1; i <= edge; i++) {
-                                       ctx.beginPath();
-                                       ctx.arc(0, 0, radius, 0, Math.PI * 2, 
false);
-                                       ctx.fill();
-                                       radius -= i;
-                               }
-
-                               ctx.restore();
-                       }
-
-                       function drawPie() {
-
-                               var startAngle = Math.PI * 
options.series.pie.startAngle;
-                               var radius = options.series.pie.radius > 1 ? 
options.series.pie.radius : maxRadius * options.series.pie.radius;
-
-                               // center and rotate to starting position
-
-                               ctx.save();
-                               ctx.translate(centerLeft,centerTop);
-                               ctx.scale(1, options.series.pie.tilt);
-                               //ctx.rotate(startAngle); // start at top; -- 
This doesn't work properly in Opera
-
-                               // draw slices
-
-                               ctx.save();
-                               var currentAngle = startAngle;
-                               for (var i = 0; i < slices.length; ++i) {
-                                       slices[i].startAngle = currentAngle;
-                                       drawSlice(slices[i].angle, 
slices[i].color, true);
-                               }
-                               ctx.restore();
-
-                               // draw slice outlines
-
-                               if (options.series.pie.stroke.width > 0) {
-                                       ctx.save();
-                                       ctx.lineWidth = 
options.series.pie.stroke.width;
-                                       currentAngle = startAngle;
-                                       for (var i = 0; i < slices.length; ++i) 
{
-                                               drawSlice(slices[i].angle, 
options.series.pie.stroke.color, false);
-                                       }
-                                       ctx.restore();
-                               }
-
-                               // draw donut hole
-
-                               drawDonutHole(ctx);
-
-                               ctx.restore();
-
-                               // Draw the labels, returning true if they fit 
within the plot
-
-                               if (options.series.pie.label.show) {
-                                       return drawLabels();
-                               } else return true;
-
-                               function drawSlice(angle, color, fill) {
-
-                                       if (angle <= 0 || isNaN(angle)) {
-                                               return;
-                                       }
-
-                                       if (fill) {
-                                               ctx.fillStyle = color;
-                                       } else {
-                                               ctx.strokeStyle = color;
-                                               ctx.lineJoin = "round";
-                                       }
-
-                                       ctx.beginPath();
-                                       if (Math.abs(angle - Math.PI * 2) > 
0.000000001) {
-                                               ctx.moveTo(0, 0); // Center of 
the pie
-                                       }
-
-                                       //ctx.arc(0, 0, radius, 0, angle, 
false); // This doesn't work properly in Opera
-                                       ctx.arc(0, 0, radius,currentAngle, 
currentAngle + angle / 2, false);
-                                       ctx.arc(0, 0, radius,currentAngle + 
angle / 2, currentAngle + angle, false);
-                                       ctx.closePath();
-                                       //ctx.rotate(angle); // This doesn't 
work properly in Opera
-                                       currentAngle += angle;
-
-                                       if (fill) {
-                                               ctx.fill();
-                                       } else {
-                                               ctx.stroke();
-                                       }
-                               }
-
-                               function drawLabels() {
-
-                                       var currentAngle = startAngle;
-                                       var radius = 
options.series.pie.label.radius > 1 ? options.series.pie.label.radius : 
maxRadius * options.series.pie.label.radius;
-
-                                       for (var i = 0; i < slices.length; ++i) 
{
-                                               if (slices[i].percent >= 
options.series.pie.label.threshold * 100) {
-                                                       if 
(!drawLabel(slices[i], currentAngle, i)) {
-                                                               return false;
-                                                       }
-                                               }
-                                               currentAngle += slices[i].angle;
-                                       }
-
-                                       return true;
-
-                                       function drawLabel(slice, startAngle, 
index) {
-
-                                               if (slice.data[0][1] == 0) {
-                                                       return true;
-                                               }
-
-                                               // format label text
-
-                                               var lf = 
options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;
-
-                                               if (lf) {
-                                                       text = lf(slice.label, 
slice);
-                                               } else {
-                                                       text = slice.label;
-                                               }
-
-                                               if (plf) {
-                                                       text = plf(text, slice);
-                                               }
-
-                                               var halfAngle = ((startAngle + 
slice.angle) + startAngle) / 2;
-                                               var x = centerLeft + 
Math.round(Math.cos(halfAngle) * radius);
-                                               var y = centerTop + 
Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;
-
-                                               var html = "<span 
class='pieLabel' id='pieLabel" + index + "' style='position:absolute;top:" + y 
+ "px;left:" + x + "px;'>" + text + "</span>";
-                                               target.append(html);
-
-                                               var label = 
target.children("#pieLabel" + index);
-                                               var labelTop = (y - 
label.height() / 2);
-                                               var labelLeft = (x - 
label.width() / 2);
-
-                                               label.css("top", labelTop);
-                                               label.css("left", labelLeft);
-
-                                               // check to make sure that the 
label is not outside the canvas
-
-                                               if (0 - labelTop > 0 || 0 - 
labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth 
- (labelLeft + label.width()) < 0) {
-                                                       return false;
-                                               }
-
-                                               if 
(options.series.pie.label.background.opacity != 0) {
-
-                                                       // put in the 
transparent background separately to avoid blended labels and label boxes
-
-                                                       var c = 
options.series.pie.label.background.color;
-
-                                                       if (c == null) {
-                                                               c = slice.color;
-                                                       }
-
-                                                       var pos = "top:" + 
labelTop + "px;left:" + labelLeft + "px;";
-                                                       $("<div 
class='pieLabelBackground' style='position:absolute;width:" + label.width() + 
"px;height:" + label.height() + "px;" + pos + "background-color:" + c + 
";'></div>")
-                                                               .css("opacity", 
options.series.pie.label.background.opacity)
-                                                               
.insertBefore(label);
-                                               }
-
-                                               return true;
-                                       } // end individual label function
-                               } // end drawLabels function
-                       } // end drawPie function
-               } // end draw function
-
-               // Placed here because it needs to be accessed from multiple 
locations
-
-               function drawDonutHole(layer) {
-                       if (options.series.pie.innerRadius > 0) {
-
-                               // subtract the center
-
-                               layer.save();
-                               var innerRadius = 
options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius 
* options.series.pie.innerRadius;
-                               layer.globalCompositeOperation = 
"destination-out"; // this does not work with excanvas, but it will fall back 
to using the stroke color
-                               layer.beginPath();
-                               layer.fillStyle = 
options.series.pie.stroke.color;
-                               layer.arc(0, 0, innerRadius, 0, Math.PI * 2, 
false);
-                               layer.fill();
-                               layer.closePath();
-                               layer.restore();
-
-                               // add inner stroke
-
-                               layer.save();
-                               layer.beginPath();
-                               layer.strokeStyle = 
options.series.pie.stroke.color;
-                               layer.arc(0, 0, innerRadius, 0, Math.PI * 2, 
false);
-                               layer.stroke();
-                               layer.closePath();
-                               layer.restore();
-
-                               // TODO: add extra shadow inside hole (with a 
mask) if the pie is tilted.
-                       }
-               }
-
-               //-- Additional Interactive related functions --
-
-               function isPointInPoly(poly, pt) {
-                       for(var c = false, i = -1, l = poly.length, j = l - 1; 
++i < l; j = i)
-                               ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || 
(poly[j][1] <= pt[1] && pt[1]< poly[i][1]))
-                               && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] 
- poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])
-                               && (c = !c);
-                       return c;
-               }
-
-               function findNearbySlice(mouseX, mouseY) {
-
-                       var slices = plot.getData(),
-                               options = plot.getOptions(),
-                               radius = options.series.pie.radius > 1 ? 
options.series.pie.radius : maxRadius * options.series.pie.radius,
-                               x, y;
-
-                       for (var i = 0; i < slices.length; ++i) {
-
-                               var s = slices[i];
-
-                               if (s.pie.show) {
-
-                                       ctx.save();
-                                       ctx.beginPath();
-                                       ctx.moveTo(0, 0); // Center of the pie
-                                       //ctx.scale(1, 
options.series.pie.tilt);        // this actually seems to break everything 
when here.
-                                       ctx.arc(0, 0, radius, s.startAngle, 
s.startAngle + s.angle / 2, false);
-                                       ctx.arc(0, 0, radius, s.startAngle + 
s.angle / 2, s.startAngle + s.angle, false);
-                                       ctx.closePath();
-                                       x = mouseX - centerLeft;
-                                       y = mouseY - centerTop;
-
-                                       if (ctx.isPointInPath) {
-                                               if (ctx.isPointInPath(mouseX - 
centerLeft, mouseY - centerTop)) {
-                                                       ctx.restore();
-                                                       return {
-                                                               datapoint: 
[s.percent, s.data],
-                                                               dataIndex: 0,
-                                                               series: s,
-                                                               seriesIndex: i
-                                                       };
-                                               }
-                                       } else {
-
-                                               // excanvas for IE doesn;t 
support isPointInPath, this is a workaround.
-
-                                               var p1X = radius * 
Math.cos(s.startAngle),
-                                                       p1Y = radius * 
Math.sin(s.startAngle),
-                                                       p2X = radius * 
Math.cos(s.startAngle + s.angle / 4),
-                                                       p2Y = radius * 
Math.sin(s.startAngle + s.angle / 4),
-                                                       p3X = radius * 
Math.cos(s.startAngle + s.angle / 2),
-                                                       p3Y = radius * 
Math.sin(s.startAngle + s.angle / 2),
-                                                       p4X = radius * 
Math.cos(s.startAngle + s.angle / 1.5),
-                                                       p4Y = radius * 
Math.sin(s.startAngle + s.angle / 1.5),
-                                                       p5X = radius * 
Math.cos(s.startAngle + s.angle),
-                                                       p5Y = radius * 
Math.sin(s.startAngle + s.angle),
-                                                       arrPoly = [[0, 0], 
[p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]],
-                                                       arrPoint = [x, y];
-
-                                               // TODO: perhaps do some 
mathmatical trickery here with the Y-coordinate to compensate for pie tilt?
-
-                                               if (isPointInPoly(arrPoly, 
arrPoint)) {
-                                                       ctx.restore();
-                                                       return {
-                                                               datapoint: 
[s.percent, s.data],
-                                                               dataIndex: 0,
-                                                               series: s,
-                                                               seriesIndex: i
-                                                       };
-                                               }
-                                       }
-
-                                       ctx.restore();
-                               }
-                       }
-
-                       return null;
-               }
-
-               function onMouseMove(e) {
-                       triggerClickHoverEvent("plothover", e);
-               }
-
-               function onClick(e) {
-                       triggerClickHoverEvent("plotclick", e);
-               }
-
-               // trigger click or hover event (they send the same parameters 
so we share their code)
-
-               function triggerClickHoverEvent(eventname, e) {
-
-                       var offset = plot.offset();
-                       var canvasX = parseInt(e.pageX - offset.left);
-                       var canvasY =  parseInt(e.pageY - offset.top);
-                       var item = findNearbySlice(canvasX, canvasY);
-
-                       if (options.grid.autoHighlight) {
-
-                               // clear auto-highlights
-
-                               for (var i = 0; i < highlights.length; ++i) {
-                                       var h = highlights[i];
-                                       if (h.auto == eventname && !(item && 
h.series == item.series)) {
-                                               unhighlight(h.series);
-                                       }
-                               }
-                       }
-
-                       // highlight the slice
-
-                       if (item) {
-                               highlight(item.series, eventname);
-                       }
-
-                       // trigger any hover bind events
-
-                       var pos = { pageX: e.pageX, pageY: e.pageY };
-                       target.trigger(eventname, [pos, item]);
-               }
-
-               function highlight(s, auto) {
-                       //if (typeof s == "number") {
-                       //      s = series[s];
-                       //}
-
-                       var i = indexOfHighlight(s);
-
-                       if (i == -1) {
-                               highlights.push({ series: s, auto: auto });
-                               plot.triggerRedrawOverlay();
-                       } else if (!auto) {
-                               highlights[i].auto = false;
-                       }
-               }
-
-               function unhighlight(s) {
-                       if (s == null) {
-                               highlights = [];
-                               plot.triggerRedrawOverlay();
-                       }
-
-                       //if (typeof s == "number") {
-                       //      s = series[s];
-                       //}
-
-                       var i = indexOfHighlight(s);
-
-                       if (i != -1) {
-                               highlights.splice(i, 1);
-                               plot.triggerRedrawOverlay();
-                       }
-               }
-
-               function indexOfHighlight(s) {
-                       for (var i = 0; i < highlights.length; ++i) {
-                               var h = highlights[i];
-                               if (h.series == s)
-                                       return i;
-                       }
-                       return -1;
-               }
-
-               function drawOverlay(plot, octx) {
-
-                       var options = plot.getOptions();
-
-                       var radius = options.series.pie.radius > 1 ? 
options.series.pie.radius : maxRadius * options.series.pie.radius;
-
-                       octx.save();
-                       octx.translate(centerLeft, centerTop);
-                       octx.scale(1, options.series.pie.tilt);
-
-                       for (var i = 0; i < highlights.length; ++i) {
-                               drawHighlight(highlights[i].series);
-                       }
-
-                       drawDonutHole(octx);
-
-                       octx.restore();
-
-                       function drawHighlight(series) {
-
-                               if (series.angle <= 0 || isNaN(series.angle)) {
-                                       return;
-                               }
-
-                               //octx.fillStyle = 
parseColor(options.series.pie.highlight.color).scale(null, null, null, 
options.series.pie.highlight.opacity).toString();
-                               octx.fillStyle = "rgba(255, 255, 255, " + 
options.series.pie.highlight.opacity + ")"; // this is temporary until we have 
access to parseColor
-                               octx.beginPath();
-                               if (Math.abs(series.angle - Math.PI * 2) > 
0.000000001) {
-                                       octx.moveTo(0, 0); // Center of the pie
-                               }
-                               octx.arc(0, 0, radius, series.startAngle, 
series.startAngle + series.angle / 2, false);
-                               octx.arc(0, 0, radius, series.startAngle + 
series.angle / 2, series.startAngle + series.angle, false);
-                               octx.closePath();
-                               octx.fill();
-                       }
-               }
-       } // end init (plugin body)
-
-       // define pie specific options and their default values
-
-       var options = {
-               series: {
-                       pie: {
-                               show: false,
-                               radius: "auto", // actual radius of the visible 
pie (based on full calculated radius if <=1, or hard pixel value)
-                               innerRadius: 0, /* for donut */
-                               startAngle: 3/2,
-                               tilt: 1,
-                               shadow: {
-                                       left: 5,        // shadow left offset
-                                       top: 15,        // shadow top offset
-                                       alpha: 0.02     // shadow alpha
-                               },
-                               offset: {
-                                       top: 0,
-                                       left: "auto"
-                               },
-                               stroke: {
-                                       color: "#fff",
-                                       width: 1
-                               },
-                               label: {
-                                       show: "auto",
-                                       formatter: function(label, slice) {
-                                               return "<div 
style='font-size:x-small;text-align:center;padding:2px;color:" + slice.color + 
";'>" + label + "<br/>" + Math.round(slice.percent) + "%</div>";
-                                       },      // formatter function
-                                       radius: 1,      // radius at which to 
place the labels (based on full calculated radius if <=1, or hard pixel value)
-                                       background: {
-                                               color: null,
-                                               opacity: 0
-                                       },
-                                       threshold: 0    // percentage at which 
to hide the label (i.e. the slice is too narrow)
-                               },
-                               combine: {
-                                       threshold: -1,  // percentage at which 
to combine little slices into one larger slice
-                                       color: null,    // color to give the 
new slice (auto-generated if null)
-                                       label: "Other"  // label to give the 
new slice
-                               },
-                               highlight: {
-                                       //color: "#fff",                // will 
add this functionality once parseColor is available
-                                       opacity: 0.5
-                               }
-                       }
-               }
-       };
-
-       $.plot.plugins.push({
-               init: init,
-               options: options,
-               name: "pie",
-               version: "1.1"
-       });
-
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.min.js
deleted file mode 100644
index 9bc488b..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.pie.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($){var REDRAW_ATTEMPTS=10;var REDRAW_SHRINK=.95;function 
init(plot){var 
canvas=null,target=null,options=null,maxRadius=null,centerLeft=null,centerTop=null,processed=false,ctx=null;var
 
highlights=[];plot.hooks.processOptions.push(function(plot,options){if(options.series.pie.show){options.grid.show=false;if(options.series.pie.label.show=="auto"){if(options.legend.show){options.series.pie.label.show=false}else{options.series.pie.label.show=true}}if(options.series.pie.radius=="auto"){if(options.series.pie.label.show){options.series.pie.radius=3/4}else{options.series.pie.radius=1}}if(options.series.pie.tilt>1){options.series.pie.tilt=1}else
 
if(options.series.pie.tilt<0){options.series.pie.tilt=0}}});plot.hooks.bindEvents.push(function(plot,eventHolder){var
 
options=plot.getOptions();if(options.series.pie.show){if(options.grid.hoverable){eventHolder.unbind("mousemove").mousemove(onMouseMove)}if(options.grid.clickable){eventHolder.unbind("click").click(onClick)}}});plot.hooks.proc
 essDatapoints.push(function(plot,series,data,datapoints){var 
options=plot.getOptions();if(options.series.pie.show){processDatapoints(plot,series,data,datapoints)}});plot.hooks.drawOverlay.push(function(plot,octx){var
 
options=plot.getOptions();if(options.series.pie.show){drawOverlay(plot,octx)}});plot.hooks.draw.push(function(plot,newCtx){var
 
options=plot.getOptions();if(options.series.pie.show){draw(plot,newCtx)}});function
 
processDatapoints(plot,series,datapoints){if(!processed){processed=true;canvas=plot.getCanvas();target=$(canvas).parent();options=plot.getOptions();plot.setData(combine(plot.getData()))}}function
 combine(data){var 
total=0,combined=0,numCombined=0,color=options.series.pie.combine.color,newdata=[];for(var
 i=0;i<data.length;++i){var 
value=data[i].data;if($.isArray(value)&&value.length==1){value=value[0]}if($.isArray(value)){if(!isNaN(parseFloat(value[1]))&&isFinite(value[1])){value[1]=+value[1]}else{value[1]=0}}else
 if(!isNaN(parseFloat(value))&&isFinite(value)){val
 ue=[1,+value]}else{value=[1,0]}data[i].data=[value]}for(var 
i=0;i<data.length;++i){total+=data[i].data[0][1]}for(var 
i=0;i<data.length;++i){var 
value=data[i].data[0][1];if(value/total<=options.series.pie.combine.threshold){combined+=value;numCombined++;if(!color){color=data[i].color}}}for(var
 i=0;i<data.length;++i){var 
value=data[i].data[0][1];if(numCombined<2||value/total>options.series.pie.combine.threshold){newdata.push($.extend(data[i],{data:[[1,value]],color:data[i].color,label:data[i].label,angle:value*Math.PI*2/total,percent:value/(total/100)}))}}if(numCombined>1){newdata.push({data:[[1,combined]],color:color,label:options.series.pie.combine.label,angle:combined*Math.PI*2/total,percent:combined/(total/100)})}return
 newdata}function draw(plot,newCtx){if(!target){return}var 
canvasWidth=plot.getPlaceholder().width(),canvasHeight=plot.getPlaceholder().height(),legendWidth=target.children().filter(".legend").children().width()||0;ctx=newCtx;processed=false;maxRadius=Math.min(canva
 
sWidth,canvasHeight/options.series.pie.tilt)/2;centerTop=canvasHeight/2+options.series.pie.offset.top;centerLeft=canvasWidth/2;if(options.series.pie.offset.left=="auto"){if(options.legend.position.match("w")){centerLeft+=legendWidth/2}else{centerLeft-=legendWidth/2}if(centerLeft<maxRadius){centerLeft=maxRadius}else
 
if(centerLeft>canvasWidth-maxRadius){centerLeft=canvasWidth-maxRadius}}else{centerLeft+=options.series.pie.offset.left}var
 
slices=plot.getData(),attempts=0;do{if(attempts>0){maxRadius*=REDRAW_SHRINK}attempts+=1;clear();if(options.series.pie.tilt<=.8){drawShadow()}}while(!drawPie()&&attempts<REDRAW_ATTEMPTS);if(attempts>=REDRAW_ATTEMPTS){clear();target.prepend("<div
 class='error'>Could not draw pie with labels contained inside 
canvas</div>")}if(plot.setSeries&&plot.insertLegend){plot.setSeries(slices);plot.insertLegend()}function
 
clear(){ctx.clearRect(0,0,canvasWidth,canvasHeight);target.children().filter(".pieLabel,
 .pieLabelBackground").remove()}function drawShadow(){var
  shadowLeft=options.series.pie.shadow.left;var 
shadowTop=options.series.pie.shadow.top;var edge=10;var 
alpha=options.series.pie.shadow.alpha;var 
radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius;if(radius>=canvasWidth/2-shadowLeft||radius*options.series.pie.tilt>=canvasHeight/2-shadowTop||radius<=edge){return}ctx.save();ctx.translate(shadowLeft,shadowTop);ctx.globalAlpha=alpha;ctx.fillStyle="#000";ctx.translate(centerLeft,centerTop);ctx.scale(1,options.series.pie.tilt);for(var
 
i=1;i<=edge;i++){ctx.beginPath();ctx.arc(0,0,radius,0,Math.PI*2,false);ctx.fill();radius-=i}ctx.restore()}function
 drawPie(){var startAngle=Math.PI*options.series.pie.startAngle;var 
radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius;ctx.save();ctx.translate(centerLeft,centerTop);ctx.scale(1,options.series.pie.tilt);ctx.save();var
 currentAngle=startAngle;for(var 
i=0;i<slices.length;++i){slices[i].startAngle=currentAngle
 
;drawSlice(slices[i].angle,slices[i].color,true)}ctx.restore();if(options.series.pie.stroke.width>0){ctx.save();ctx.lineWidth=options.series.pie.stroke.width;currentAngle=startAngle;for(var
 
i=0;i<slices.length;++i){drawSlice(slices[i].angle,options.series.pie.stroke.color,false)}ctx.restore()}drawDonutHole(ctx);ctx.restore();if(options.series.pie.label.show){return
 drawLabels()}else return true;function 
drawSlice(angle,color,fill){if(angle<=0||isNaN(angle)){return}if(fill){ctx.fillStyle=color}else{ctx.strokeStyle=color;ctx.lineJoin="round"}ctx.beginPath();if(Math.abs(angle-Math.PI*2)>1e-9){ctx.moveTo(0,0)}ctx.arc(0,0,radius,currentAngle,currentAngle+angle/2,false);ctx.arc(0,0,radius,currentAngle+angle/2,currentAngle+angle,false);ctx.closePath();currentAngle+=angle;if(fill){ctx.fill()}else{ctx.stroke()}}function
 drawLabels(){var currentAngle=startAngle;var 
radius=options.series.pie.label.radius>1?options.series.pie.label.radius:maxRadius*options.series.pie.label.radius;for(var
 i=0;i<
 
slices.length;++i){if(slices[i].percent>=options.series.pie.label.threshold*100){if(!drawLabel(slices[i],currentAngle,i)){return
 false}}currentAngle+=slices[i].angle}return true;function 
drawLabel(slice,startAngle,index){if(slice.data[0][1]==0){return true}var 
lf=options.legend.labelFormatter,text,plf=options.series.pie.label.formatter;if(lf){text=lf(slice.label,slice)}else{text=slice.label}if(plf){text=plf(text,slice)}var
 halfAngle=(startAngle+slice.angle+startAngle)/2;var 
x=centerLeft+Math.round(Math.cos(halfAngle)*radius);var 
y=centerTop+Math.round(Math.sin(halfAngle)*radius)*options.series.pie.tilt;var 
html="<span class='pieLabel' id='pieLabel"+index+"' 
style='position:absolute;top:"+y+"px;left:"+x+"px;'>"+text+"</span>";target.append(html);var
 label=target.children("#pieLabel"+index);var labelTop=y-label.height()/2;var 
labelLeft=x-label.width()/2;label.css("top",labelTop);label.css("left",labelLeft);if(0-labelTop>0||0-labelLeft>0||canvasHeight-(labelTop+label.height())<0||canva
 sWidth-(labelLeft+label.width())<0){return 
false}if(options.series.pie.label.background.opacity!=0){var 
c=options.series.pie.label.background.color;if(c==null){c=slice.color}var 
pos="top:"+labelTop+"px;left:"+labelLeft+"px;";$("<div 
class='pieLabelBackground' 
style='position:absolute;width:"+label.width()+"px;height:"+label.height()+"px;"+pos+"background-color:"+c+";'></div>").css("opacity",options.series.pie.label.background.opacity).insertBefore(label)}return
 true}}}}function 
drawDonutHole(layer){if(options.series.pie.innerRadius>0){layer.save();var 
innerRadius=options.series.pie.innerRadius>1?options.series.pie.innerRadius:maxRadius*options.series.pie.innerRadius;layer.globalCompositeOperation="destination-out";layer.beginPath();layer.fillStyle=options.series.pie.stroke.color;layer.arc(0,0,innerRadius,0,Math.PI*2,false);layer.fill();layer.closePath();layer.restore();layer.save();layer.beginPath();layer.strokeStyle=options.series.pie.stroke.color;layer.arc(0,0,innerRadius,0,Math.P
 I*2,false);layer.stroke();layer.closePath();layer.restore()}}function 
isPointInPoly(poly,pt){for(var 
c=false,i=-1,l=poly.length,j=l-1;++i<l;j=i)(poly[i][1]<=pt[1]&&pt[1]<poly[j][1]||poly[j][1]<=pt[1]&&pt[1]<poly[i][1])&&pt[0]<(poly[j][0]-poly[i][0])*(pt[1]-poly[i][1])/(poly[j][1]-poly[i][1])+poly[i][0]&&(c=!c);return
 c}function findNearbySlice(mouseX,mouseY){var 
slices=plot.getData(),options=plot.getOptions(),radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius,x,y;for(var
 i=0;i<slices.length;++i){var 
s=slices[i];if(s.pie.show){ctx.save();ctx.beginPath();ctx.moveTo(0,0);ctx.arc(0,0,radius,s.startAngle,s.startAngle+s.angle/2,false);ctx.arc(0,0,radius,s.startAngle+s.angle/2,s.startAngle+s.angle,false);ctx.closePath();x=mouseX-centerLeft;y=mouseY-centerTop;if(ctx.isPointInPath){if(ctx.isPointInPath(mouseX-centerLeft,mouseY-centerTop)){ctx.restore();return{datapoint:[s.percent,s.data],dataIndex:0,series:s,seriesIndex:i}}}else{var
 p1X=radius*Ma
 
th.cos(s.startAngle),p1Y=radius*Math.sin(s.startAngle),p2X=radius*Math.cos(s.startAngle+s.angle/4),p2Y=radius*Math.sin(s.startAngle+s.angle/4),p3X=radius*Math.cos(s.startAngle+s.angle/2),p3Y=radius*Math.sin(s.startAngle+s.angle/2),p4X=radius*Math.cos(s.startAngle+s.angle/1.5),p4Y=radius*Math.sin(s.startAngle+s.angle/1.5),p5X=radius*Math.cos(s.startAngle+s.angle),p5Y=radius*Math.sin(s.startAngle+s.angle),arrPoly=[[0,0],[p1X,p1Y],[p2X,p2Y],[p3X,p3Y],[p4X,p4Y],[p5X,p5Y]],arrPoint=[x,y];if(isPointInPoly(arrPoly,arrPoint)){ctx.restore();return{datapoint:[s.percent,s.data],dataIndex:0,series:s,seriesIndex:i}}}ctx.restore()}}return
 null}function onMouseMove(e){triggerClickHoverEvent("plothover",e)}function 
onClick(e){triggerClickHoverEvent("plotclick",e)}function 
triggerClickHoverEvent(eventname,e){var offset=plot.offset();var 
canvasX=parseInt(e.pageX-offset.left);var 
canvasY=parseInt(e.pageY-offset.top);var 
item=findNearbySlice(canvasX,canvasY);if(options.grid.autoHighlight){for(var 
i=0;i
 <highlights.length;++i){var 
h=highlights[i];if(h.auto==eventname&&!(item&&h.series==item.series)){unhighlight(h.series)}}}if(item){highlight(item.series,eventname)}var
 
pos={pageX:e.pageX,pageY:e.pageY};target.trigger(eventname,[pos,item])}function 
highlight(s,auto){var 
i=indexOfHighlight(s);if(i==-1){highlights.push({series:s,auto:auto});plot.triggerRedrawOverlay()}else
 if(!auto){highlights[i].auto=false}}function 
unhighlight(s){if(s==null){highlights=[];plot.triggerRedrawOverlay()}var 
i=indexOfHighlight(s);if(i!=-1){highlights.splice(i,1);plot.triggerRedrawOverlay()}}function
 indexOfHighlight(s){for(var i=0;i<highlights.length;++i){var 
h=highlights[i];if(h.series==s)return i}return-1}function 
drawOverlay(plot,octx){var options=plot.getOptions();var 
radius=options.series.pie.radius>1?options.series.pie.radius:maxRadius*options.series.pie.radius;octx.save();octx.translate(centerLeft,centerTop);octx.scale(1,options.series.pie.tilt);for(var
 i=0;i<highlights.length;++i){drawHighlight(hi
 ghlights[i].series)}drawDonutHole(octx);octx.restore();function 
drawHighlight(series){if(series.angle<=0||isNaN(series.angle)){return}octx.fillStyle="rgba(255,
 255, 255, 
"+options.series.pie.highlight.opacity+")";octx.beginPath();if(Math.abs(series.angle-Math.PI*2)>1e-9){octx.moveTo(0,0)}octx.arc(0,0,radius,series.startAngle,series.startAngle+series.angle/2,false);octx.arc(0,0,radius,series.startAngle+series.angle/2,series.startAngle+series.angle,false);octx.closePath();octx.fill()}}}var
 
options={series:{pie:{show:false,radius:"auto",innerRadius:0,startAngle:3/2,tilt:1,shadow:{left:5,top:15,alpha:.02},offset:{top:0,left:"auto"},stroke:{color:"#fff",width:1},label:{show:"auto",formatter:function(label,slice){return"<div
 
style='font-size:x-small;text-align:center;padding:2px;color:"+slice.color+";'>"+label+"<br/>"+Math.round(slice.percent)+"%</div>"},radius:1,background:{color:null,opacity:0},threshold:0},combine:{threshold:-1,color:null,label:"Other"},highlight:{opacity:.5}}}};$.plot
 .plugins.push({init:init,options:options,name:"pie",version:"1.1"})})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.js
deleted file mode 100644
index 8a626dd..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Flot plugin for automatically redrawing plots as the placeholder resizes.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-It works by listening for changes on the placeholder div (through the jQuery
-resize event plugin) - if the size changes, it will redraw the plot.
-
-There are no options. If you need to disable the plugin for some plots, you
-can just fix the size of their placeholders.
-
-*/
-
-/* Inline dependency:
- * jQuery resize event - v1.1 - 3/14/2010
- * http://benalman.com/projects/jquery-resize-plugin/
- *
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function($,e,t){"$:nomunge";var 
i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return
 false}var 
e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return
 false}var e=$(this);for(var 
t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return
 false}var i;function a(e,n,a){var 
r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return
 a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var 
s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var 
f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d
 
.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return
 
e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return
 e.setTimeout(function(){t((new 
Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return
 
e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);
-
-(function ($) {
-    var options = { }; // no options
-
-    function init(plot) {
-        function onResize() {
-            var placeholder = plot.getPlaceholder();
-
-            // somebody might have hidden us and we can't plot
-            // when we don't have the dimensions
-            if (placeholder.width() == 0 || placeholder.height() == 0)
-                return;
-
-            plot.resize();
-            plot.setupGrid();
-            plot.draw();
-        }
-        
-        function bindEvents(plot, eventHolder) {
-            plot.getPlaceholder().resize(onResize);
-        }
-
-        function shutdown(plot, eventHolder) {
-            plot.getPlaceholder().unbind("resize", onResize);
-        }
-        
-        plot.hooks.bindEvents.push(bindEvents);
-        plot.hooks.shutdown.push(shutdown);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'resize',
-        version: '1.0'
-    });
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.min.js
deleted file mode 100644
index 7e92aa6..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.resize.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($,e,t){"$:nomunge";var 
i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return
 false}var 
e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return
 false}var e=$(this);for(var 
t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return
 false}var i;function a(e,n,a){var 
r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return
 a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var 
s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var 
f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d
 
.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return
 
e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return
 e.setTimeout(function(){t((new 
Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return
 
e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);(function($){var
 options={};function init(plot){function onResize(){var 
placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function
 bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function 
shutdown(plot,eventHolder){
 
plot.getPlaceholder().unbind("resize",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"resize",version:"1.0"})})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.js
deleted file mode 100644
index d3c20fa..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.js
+++ /dev/null
@@ -1,360 +0,0 @@
-/* Flot plugin for selecting regions of a plot.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-The plugin supports these options:
-
-selection: {
-       mode: null or "x" or "y" or "xy",
-       color: color,
-       shape: "round" or "miter" or "bevel",
-       minSize: number of pixels
-}
-
-Selection support is enabled by setting the mode to one of "x", "y" or "xy".
-In "x" mode, the user will only be able to specify the x range, similarly for
-"y" mode. For "xy", the selection becomes a rectangle where both ranges can be
-specified. "color" is color of the selection (if you need to change the color
-later on, you can get to it with plot.getOptions().selection.color). "shape"
-is the shape of the corners of the selection.
-
-"minSize" is the minimum size a selection can be in pixels. This value can
-be customized to determine the smallest size a selection can be and still
-have the selection rectangle be displayed. When customizing this value, the
-fact that it refers to pixels, not axis units must be taken into account.
-Thus, for example, if there is a bar graph in time mode with BarWidth set to 1
-minute, setting "minSize" to 1 will not make the minimum selection size 1
-minute, but rather 1 pixel. Note also that setting "minSize" to 0 will prevent
-"plotunselected" events from being fired when the user clicks the mouse without
-dragging.
-
-When selection support is enabled, a "plotselected" event will be emitted on
-the DOM element you passed into the plot function. The event handler gets a
-parameter with the ranges selected on the axes, like this:
-
-       placeholder.bind( "plotselected", function( event, ranges ) {
-               alert("You selected " + ranges.xaxis.from + " to " + 
ranges.xaxis.to)
-               // similar for yaxis - with multiple axes, the extra ones are in
-               // x2axis, x3axis, ...
-       });
-
-The "plotselected" event is only fired when the user has finished making the
-selection. A "plotselecting" event is fired during the process with the same
-parameters as the "plotselected" event, in case you want to know what's
-happening while it's happening,
-
-A "plotunselected" event with no arguments is emitted when the user clicks the
-mouse to remove the selection. As stated above, setting "minSize" to 0 will
-destroy this behavior.
-
-The plugin allso adds the following methods to the plot object:
-
-- setSelection( ranges, preventEvent )
-
-  Set the selection rectangle. The passed in ranges is on the same form as
-  returned in the "plotselected" event. If the selection mode is "x", you
-  should put in either an xaxis range, if the mode is "y" you need to put in
-  an yaxis range and both xaxis and yaxis if the selection mode is "xy", like
-  this:
-
-       setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } 
});
-
-  setSelection will trigger the "plotselected" event when called. If you don't
-  want that to happen, e.g. if you're inside a "plotselected" handler, pass
-  true as the second parameter. If you are using multiple axes, you can
-  specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of
-  xaxis, the plugin picks the first one it sees.
-
-- clearSelection( preventEvent )
-
-  Clear the selection rectangle. Pass in true to avoid getting a
-  "plotunselected" event.
-
-- getSelection()
-
-  Returns the current selection in the same format as the "plotselected"
-  event. If there's currently no selection, the function returns null.
-
-*/
-
-(function ($) {
-    function init(plot) {
-        var selection = {
-                first: { x: -1, y: -1}, second: { x: -1, y: -1},
-                show: false,
-                active: false
-            };
-
-        // FIXME: The drag handling implemented here should be
-        // abstracted out, there's some similar code from a library in
-        // the navigation plugin, this should be massaged a bit to fit
-        // the Flot cases here better and reused. Doing this would
-        // make this plugin much slimmer.
-        var savedhandlers = {};
-
-        var mouseUpHandler = null;
-        
-        function onMouseMove(e) {
-            if (selection.active) {
-                updateSelection(e);
-                
-                plot.getPlaceholder().trigger("plotselecting", [ 
getSelection() ]);
-            }
-        }
-
-        function onMouseDown(e) {
-            if (e.which != 1)  // only accept left-click
-                return;
-            
-            // cancel out any text selections
-            document.body.focus();
-
-            // prevent text selection and drag in old-school browsers
-            if (document.onselectstart !== undefined && 
savedhandlers.onselectstart == null) {
-                savedhandlers.onselectstart = document.onselectstart;
-                document.onselectstart = function () { return false; };
-            }
-            if (document.ondrag !== undefined && savedhandlers.ondrag == null) 
{
-                savedhandlers.ondrag = document.ondrag;
-                document.ondrag = function () { return false; };
-            }
-
-            setSelectionPos(selection.first, e);
-
-            selection.active = true;
-
-            // this is a bit silly, but we have to use a closure to be
-            // able to whack the same handler again
-            mouseUpHandler = function (e) { onMouseUp(e); };
-            
-            $(document).one("mouseup", mouseUpHandler);
-        }
-
-        function onMouseUp(e) {
-            mouseUpHandler = null;
-            
-            // revert drag stuff for old-school browsers
-            if (document.onselectstart !== undefined)
-                document.onselectstart = savedhandlers.onselectstart;
-            if (document.ondrag !== undefined)
-                document.ondrag = savedhandlers.ondrag;
-
-            // no more dragging
-            selection.active = false;
-            updateSelection(e);
-
-            if (selectionIsSane())
-                triggerSelectedEvent();
-            else {
-                // this counts as a clear
-                plot.getPlaceholder().trigger("plotunselected", [ ]);
-                plot.getPlaceholder().trigger("plotselecting", [ null ]);
-            }
-
-            return false;
-        }
-
-        function getSelection() {
-            if (!selectionIsSane())
-                return null;
-            
-            if (!selection.show) return null;
-
-            var r = {}, c1 = selection.first, c2 = selection.second;
-            $.each(plot.getAxes(), function (name, axis) {
-                if (axis.used) {
-                    var p1 = axis.c2p(c1[axis.direction]), p2 = 
axis.c2p(c2[axis.direction]); 
-                    r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };
-                }
-            });
-            return r;
-        }
-
-        function triggerSelectedEvent() {
-            var r = getSelection();
-
-            plot.getPlaceholder().trigger("plotselected", [ r ]);
-
-            // backwards-compat stuff, to be removed in future
-            if (r.xaxis && r.yaxis)
-                plot.getPlaceholder().trigger("selected", [ { x1: 
r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);
-        }
-
-        function clamp(min, value, max) {
-            return value < min ? min: (value > max ? max: value);
-        }
-
-        function setSelectionPos(pos, e) {
-            var o = plot.getOptions();
-            var offset = plot.getPlaceholder().offset();
-            var plotOffset = plot.getPlotOffset();
-            pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, 
plot.width());
-            pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, 
plot.height());
-
-            if (o.selection.mode == "y")
-                pos.x = pos == selection.first ? 0 : plot.width();
-
-            if (o.selection.mode == "x")
-                pos.y = pos == selection.first ? 0 : plot.height();
-        }
-
-        function updateSelection(pos) {
-            if (pos.pageX == null)
-                return;
-
-            setSelectionPos(selection.second, pos);
-            if (selectionIsSane()) {
-                selection.show = true;
-                plot.triggerRedrawOverlay();
-            }
-            else
-                clearSelection(true);
-        }
-
-        function clearSelection(preventEvent) {
-            if (selection.show) {
-                selection.show = false;
-                plot.triggerRedrawOverlay();
-                if (!preventEvent)
-                    plot.getPlaceholder().trigger("plotunselected", [ ]);
-            }
-        }
-
-        // function taken from markings support in Flot
-        function extractRange(ranges, coord) {
-            var axis, from, to, key, axes = plot.getAxes();
-
-            for (var k in axes) {
-                axis = axes[k];
-                if (axis.direction == coord) {
-                    key = coord + axis.n + "axis";
-                    if (!ranges[key] && axis.n == 1)
-                        key = coord + "axis"; // support x1axis as xaxis
-                    if (ranges[key]) {
-                        from = ranges[key].from;
-                        to = ranges[key].to;
-                        break;
-                    }
-                }
-            }
-
-            // backwards-compat stuff - to be removed in future
-            if (!ranges[key]) {
-                axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0];
-                from = ranges[coord + "1"];
-                to = ranges[coord + "2"];
-            }
-
-            // auto-reverse as an added bonus
-            if (from != null && to != null && from > to) {
-                var tmp = from;
-                from = to;
-                to = tmp;
-            }
-            
-            return { from: from, to: to, axis: axis };
-        }
-        
-        function setSelection(ranges, preventEvent) {
-            var axis, range, o = plot.getOptions();
-
-            if (o.selection.mode == "y") {
-                selection.first.x = 0;
-                selection.second.x = plot.width();
-            }
-            else {
-                range = extractRange(ranges, "x");
-
-                selection.first.x = range.axis.p2c(range.from);
-                selection.second.x = range.axis.p2c(range.to);
-            }
-
-            if (o.selection.mode == "x") {
-                selection.first.y = 0;
-                selection.second.y = plot.height();
-            }
-            else {
-                range = extractRange(ranges, "y");
-
-                selection.first.y = range.axis.p2c(range.from);
-                selection.second.y = range.axis.p2c(range.to);
-            }
-
-            selection.show = true;
-            plot.triggerRedrawOverlay();
-            if (!preventEvent && selectionIsSane())
-                triggerSelectedEvent();
-        }
-
-        function selectionIsSane() {
-            var minSize = plot.getOptions().selection.minSize;
-            return Math.abs(selection.second.x - selection.first.x) >= minSize 
&&
-                Math.abs(selection.second.y - selection.first.y) >= minSize;
-        }
-
-        plot.clearSelection = clearSelection;
-        plot.setSelection = setSelection;
-        plot.getSelection = getSelection;
-
-        plot.hooks.bindEvents.push(function(plot, eventHolder) {
-            var o = plot.getOptions();
-            if (o.selection.mode != null) {
-                eventHolder.mousemove(onMouseMove);
-                eventHolder.mousedown(onMouseDown);
-            }
-        });
-
-
-        plot.hooks.drawOverlay.push(function (plot, ctx) {
-            // draw selection
-            if (selection.show && selectionIsSane()) {
-                var plotOffset = plot.getPlotOffset();
-                var o = plot.getOptions();
-
-                ctx.save();
-                ctx.translate(plotOffset.left, plotOffset.top);
-
-                var c = $.color.parse(o.selection.color);
-
-                ctx.strokeStyle = c.scale('a', 0.8).toString();
-                ctx.lineWidth = 1;
-                ctx.lineJoin = o.selection.shape;
-                ctx.fillStyle = c.scale('a', 0.4).toString();
-
-                var x = Math.min(selection.first.x, selection.second.x) + 0.5,
-                    y = Math.min(selection.first.y, selection.second.y) + 0.5,
-                    w = Math.abs(selection.second.x - selection.first.x) - 1,
-                    h = Math.abs(selection.second.y - selection.first.y) - 1;
-
-                ctx.fillRect(x, y, w, h);
-                ctx.strokeRect(x, y, w, h);
-
-                ctx.restore();
-            }
-        });
-        
-        plot.hooks.shutdown.push(function (plot, eventHolder) {
-            eventHolder.unbind("mousemove", onMouseMove);
-            eventHolder.unbind("mousedown", onMouseDown);
-            
-            if (mouseUpHandler)
-                $(document).unbind("mouseup", mouseUpHandler);
-        });
-
-    }
-
-    $.plot.plugins.push({
-        init: init,
-        options: {
-            selection: {
-                mode: null, // one of null, "x", "y" or "xy"
-                color: "#e8cfac",
-                shape: "round", // one of "round", "miter", or "bevel"
-                minSize: 5 // minimum number of pixels
-            }
-        },
-        name: 'selection',
-        version: '1.1'
-    });
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.min.js
deleted file mode 100644
index a0154fb..0000000
--- 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.selection.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($){function init(plot){var 
selection={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false};var 
savedhandlers={};var mouseUpHandler=null;function 
onMouseMove(e){if(selection.active){updateSelection(e);plot.getPlaceholder().trigger("plotselecting",[getSelection()])}}function
 
onMouseDown(e){if(e.which!=1)return;document.body.focus();if(document.onselectstart!==undefined&&savedhandlers.onselectstart==null){savedhandlers.onselectstart=document.onselectstart;document.onselectstart=function(){return
 
false}}if(document.ondrag!==undefined&&savedhandlers.ondrag==null){savedhandlers.ondrag=document.ondrag;document.ondrag=function(){return
 
false}}setSelectionPos(selection.first,e);selection.active=true;mouseUpHandler=function(e){onMouseUp(e)};$(document).one("mouseup",mouseUpHandler)}function
 
onMouseUp(e){mouseUpHandler=null;if(document.onselectstart!==undefined)document.onselectstart=savedhandlers.onselectstart;if(document.ondrag!==undefined)document.ondrag=savedhandlers.ond
 
rag;selection.active=false;updateSelection(e);if(selectionIsSane())triggerSelectedEvent();else{plot.getPlaceholder().trigger("plotunselected",[]);plot.getPlaceholder().trigger("plotselecting",[null])}return
 false}function getSelection(){if(!selectionIsSane())return 
null;if(!selection.show)return null;var 
r={},c1=selection.first,c2=selection.second;$.each(plot.getAxes(),function(name,axis){if(axis.used){var
 
p1=axis.c2p(c1[axis.direction]),p2=axis.c2p(c2[axis.direction]);r[name]={from:Math.min(p1,p2),to:Math.max(p1,p2)}}});return
 r}function triggerSelectedEvent(){var 
r=getSelection();plot.getPlaceholder().trigger("plotselected",[r]);if(r.xaxis&&r.yaxis)plot.getPlaceholder().trigger("selected",[{x1:r.xaxis.from,y1:r.yaxis.from,x2:r.xaxis.to,y2:r.yaxis.to}])}function
 clamp(min,value,max){return value<min?min:value>max?max:value}function 
setSelectionPos(pos,e){var o=plot.getOptions();var 
offset=plot.getPlaceholder().offset();var 
plotOffset=plot.getPlotOffset();pos.x=clamp(0,e.pageX-offse
 
t.left-plotOffset.left,plot.width());pos.y=clamp(0,e.pageY-offset.top-plotOffset.top,plot.height());if(o.selection.mode=="y")pos.x=pos==selection.first?0:plot.width();if(o.selection.mode=="x")pos.y=pos==selection.first?0:plot.height()}function
 
updateSelection(pos){if(pos.pageX==null)return;setSelectionPos(selection.second,pos);if(selectionIsSane()){selection.show=true;plot.triggerRedrawOverlay()}else
 clearSelection(true)}function 
clearSelection(preventEvent){if(selection.show){selection.show=false;plot.triggerRedrawOverlay();if(!preventEvent)plot.getPlaceholder().trigger("plotunselected",[])}}function
 extractRange(ranges,coord){var axis,from,to,key,axes=plot.getAxes();for(var k 
in 
axes){axis=axes[k];if(axis.direction==coord){key=coord+axis.n+"axis";if(!ranges[key]&&axis.n==1)key=coord+"axis";if(ranges[key]){from=ranges[key].from;to=ranges[key].to;break}}}if(!ranges[key]){axis=coord=="x"?plot.getXAxes()[0]:plot.getYAxes()[0];from=ranges[coord+"1"];to=ranges[coord+"2"]}if(from!=null&&
 to!=null&&from>to){var 
tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function 
setSelection(ranges,preventEvent){var 
axis,range,o=plot.getOptions();if(o.selection.mode=="y"){selection.first.x=0;selection.second.x=plot.width()}else{range=extractRange(ranges,"x");selection.first.x=range.axis.p2c(range.from);selection.second.x=range.axis.p2c(range.to)}if(o.selection.mode=="x"){selection.first.y=0;selection.second.y=plot.height()}else{range=extractRange(ranges,"y");selection.first.y=range.axis.p2c(range.from);selection.second.y=range.axis.p2c(range.to)}selection.show=true;plot.triggerRedrawOverlay();if(!preventEvent&&selectionIsSane())triggerSelectedEvent()}function
 selectionIsSane(){var minSize=plot.getOptions().selection.minSize;return 
Math.abs(selection.second.x-selection.first.x)>=minSize&&Math.abs(selection.second.y-selection.first.y)>=minSize}plot.clearSelection=clearSelection;plot.setSelection=setSelection;plot.getSelection=getSelection;plot.hooks.bindEvents.push(funct
 ion(plot,eventHolder){var 
o=plot.getOptions();if(o.selection.mode!=null){eventHolder.mousemove(onMouseMove);eventHolder.mousedown(onMouseDown)}});plot.hooks.drawOverlay.push(function(plot,ctx){if(selection.show&&selectionIsSane()){var
 plotOffset=plot.getPlotOffset();var 
o=plot.getOptions();ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var
 
c=$.color.parse(o.selection.color);ctx.strokeStyle=c.scale("a",.8).toString();ctx.lineWidth=1;ctx.lineJoin=o.selection.shape;ctx.fillStyle=c.scale("a",.4).toString();var
 
x=Math.min(selection.first.x,selection.second.x)+.5,y=Math.min(selection.first.y,selection.second.y)+.5,w=Math.abs(selection.second.x-selection.first.x)-1,h=Math.abs(selection.second.y-selection.first.y)-1;ctx.fillRect(x,y,w,h);ctx.strokeRect(x,y,w,h);ctx.restore()}});plot.hooks.shutdown.push(function(plot,eventHolder){eventHolder.unbind("mousemove",onMouseMove);eventHolder.unbind("mousedown",onMouseDown);if(mouseUpHandler)$(document).unbind("mouseup",mouseUpHandler)})}$
 
.plot.plugins.push({init:init,options:{selection:{mode:null,color:"#e8cfac",shape:"round",minSize:5}},name:"selection",version:"1.1"})})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.js
deleted file mode 100644
index e75a7df..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Flot plugin for stacking data sets rather than overlyaing them.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-The plugin assumes the data is sorted on x (or y if stacking horizontally).
-For line charts, it is assumed that if a line has an undefined gap (from a
-null point), then the line above it should have the same gap - insert zeros
-instead of "null" if you want another behaviour. This also holds for the start
-and end of the chart. Note that stacking a mix of positive and negative values
-in most instances doesn't make sense (so it looks weird).
-
-Two or more series are stacked when their "stack" attribute is set to the same
-key (which can be any number or string or just "true"). To specify the default
-stack, you can set the stack option like this:
-
-       series: {
-               stack: null/false, true, or a key (number/string)
-       }
-
-You can also specify it for a single series, like this:
-
-       $.plot( $("#placeholder"), [{
-               data: [ ... ],
-               stack: true
-       }])
-
-The stacking order is determined by the order of the data series in the array
-(later series end up on top of the previous).
-
-Internally, the plugin modifies the datapoints in each series, adding an
-offset to the y value. For line series, extra data points are inserted through
-interpolation. If there's a second y value, it's also adjusted (e.g for bar
-charts or filled areas).
-
-*/
-
-(function ($) {
-    var options = {
-        series: { stack: null } // or number/string
-    };
-    
-    function init(plot) {
-        function findMatchingSeries(s, allseries) {
-            var res = null;
-            for (var i = 0; i < allseries.length; ++i) {
-                if (s == allseries[i])
-                    break;
-                
-                if (allseries[i].stack == s.stack)
-                    res = allseries[i];
-            }
-            
-            return res;
-        }
-        
-        function stackData(plot, s, datapoints) {
-            if (s.stack == null || s.stack === false)
-                return;
-
-            var other = findMatchingSeries(s, plot.getData());
-            if (!other)
-                return;
-
-            var ps = datapoints.pointsize,
-                points = datapoints.points,
-                otherps = other.datapoints.pointsize,
-                otherpoints = other.datapoints.points,
-                newpoints = [],
-                px, py, intery, qx, qy, bottom,
-                withlines = s.lines.show,
-                horizontal = s.bars.horizontal,
-                withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : 
datapoints.format[2].y),
-                withsteps = withlines && s.lines.steps,
-                fromgap = true,
-                keyOffset = horizontal ? 1 : 0,
-                accumulateOffset = horizontal ? 0 : 1,
-                i = 0, j = 0, l, m;
-
-            while (true) {
-                if (i >= points.length)
-                    break;
-
-                l = newpoints.length;
-
-                if (points[i] == null) {
-                    // copy gaps
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(points[i + m]);
-                    i += ps;
-                }
-                else if (j >= otherpoints.length) {
-                    // for lines, we can't use the rest of the points
-                    if (!withlines) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                    }
-                    i += ps;
-                }
-                else if (otherpoints[j] == null) {
-                    // oops, got a gap
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(null);
-                    fromgap = true;
-                    j += otherps;
-                }
-                else {
-                    // cases where we actually got two points
-                    px = points[i + keyOffset];
-                    py = points[i + accumulateOffset];
-                    qx = otherpoints[j + keyOffset];
-                    qy = otherpoints[j + accumulateOffset];
-                    bottom = 0;
-
-                    if (px == qx) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-
-                        newpoints[l + accumulateOffset] += qy;
-                        bottom = qy;
-                        
-                        i += ps;
-                        j += otherps;
-                    }
-                    else if (px > qx) {
-                        // we got past point below, might need to
-                        // insert interpolated extra point
-                        if (withlines && i > 0 && points[i - ps] != null) {
-                            intery = py + (points[i - ps + accumulateOffset] - 
py) * (qx - px) / (points[i - ps + keyOffset] - px);
-                            newpoints.push(qx);
-                            newpoints.push(intery + qy);
-                            for (m = 2; m < ps; ++m)
-                                newpoints.push(points[i + m]);
-                            bottom = qy; 
-                        }
-
-                        j += otherps;
-                    }
-                    else { // px < qx
-                        if (fromgap && withlines) {
-                            // if we come from a gap, we just skip this point
-                            i += ps;
-                            continue;
-                        }
-                            
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                        
-                        // we might be able to interpolate a point below,
-                        // this can give us a better y
-                        if (withlines && j > 0 && otherpoints[j - otherps] != 
null)
-                            bottom = qy + (otherpoints[j - otherps + 
accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - 
qx);
-
-                        newpoints[l + accumulateOffset] += bottom;
-                        
-                        i += ps;
-                    }
-
-                    fromgap = false;
-                    
-                    if (l != newpoints.length && withbottom)
-                        newpoints[l + 2] += bottom;
-                }
-
-                // maintain the line steps invariant
-                if (withsteps && l != newpoints.length && l > 0
-                    && newpoints[l] != null
-                    && newpoints[l] != newpoints[l - ps]
-                    && newpoints[l + 1] != newpoints[l - ps + 1]) {
-                    for (m = 0; m < ps; ++m)
-                        newpoints[l + ps + m] = newpoints[l + m];
-                    newpoints[l + 1] = newpoints[l - ps + 1];
-                }
-            }
-
-            datapoints.points = newpoints;
-        }
-        
-        plot.hooks.processDatapoints.push(stackData);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'stack',
-        version: '1.2'
-    });
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.min.js
deleted file mode 100644
index 920764f..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.stack.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($){var options={series:{stack:null}};function init(plot){function 
findMatchingSeries(s,allseries){var res=null;for(var 
i=0;i<allseries.length;++i){if(s==allseries[i])break;if(allseries[i].stack==s.stack)res=allseries[i]}return
 res}function 
stackData(plot,s,datapoints){if(s.stack==null||s.stack===false)return;var 
other=findMatchingSeries(s,plot.getData());if(!other)return;var 
ps=datapoints.pointsize,points=datapoints.points,otherps=other.datapoints.pointsize,otherpoints=other.datapoints.points,newpoints=[],px,py,intery,qx,qy,bottom,withlines=s.lines.show,horizontal=s.bars.horizontal,withbottom=ps>2&&(horizontal?datapoints.format[2].x:datapoints.format[2].y),withsteps=withlines&&s.lines.steps,fromgap=true,keyOffset=horizontal?1:0,accumulateOffset=horizontal?0:1,i=0,j=0,l,m;while(true){if(i>=points.length)break;l=newpoints.length;if(points[i]==null){for(m=0;m<ps;++m)newpoints.push(points[i+m]);i+=ps}else
 if(j>=otherpoints.length){if(!withlines){for(m=0;m<ps;++m)newpoints.push
 (points[i+m])}i+=ps}else 
if(otherpoints[j]==null){for(m=0;m<ps;++m)newpoints.push(null);fromgap=true;j+=otherps}else{px=points[i+keyOffset];py=points[i+accumulateOffset];qx=otherpoints[j+keyOffset];qy=otherpoints[j+accumulateOffset];bottom=0;if(px==qx){for(m=0;m<ps;++m)newpoints.push(points[i+m]);newpoints[l+accumulateOffset]+=qy;bottom=qy;i+=ps;j+=otherps}else
 
if(px>qx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+accumulateOffset]-py)*(qx-px)/(points[i-ps+keyOffset]-px);newpoints.push(qx);newpoints.push(intery+qy);for(m=2;m<ps;++m)newpoints.push(points[i+m]);bottom=qy}j+=otherps}else{if(fromgap&&withlines){i+=ps;continue}for(m=0;m<ps;++m)newpoints.push(points[i+m]);if(withlines&&j>0&&otherpoints[j-otherps]!=null)bottom=qy+(otherpoints[j-otherps+accumulateOffset]-qy)*(px-qx)/(otherpoints[j-otherps+keyOffset]-qx);newpoints[l+accumulateOffset]+=bottom;i+=ps}fromgap=false;if(l!=newpoints.length&&withbottom)newpoints[l+2]+=bottom}if(withsteps&&l!=newpoints.length&&l>0&
 
&newpoints[l]!=null&&newpoints[l]!=newpoints[l-ps]&&newpoints[l+1]!=newpoints[l-ps+1]){for(m=0;m<ps;++m)newpoints[l+ps+m]=newpoints[l+m];newpoints[l+1]=newpoints[l-ps+1]}}datapoints.points=newpoints}plot.hooks.processDatapoints.push(stackData)}$.plot.plugins.push({init:init,options:options,name:"stack",version:"1.2"})})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.js
deleted file mode 100644
index 79f6349..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* 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);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.min.js
deleted file mode 100644
index f4a3430..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.symbol.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($){function processRawData(plot,series,datapoints){var 
handlers={square:function(ctx,x,y,radius,shadow){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){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){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){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({in
 it:init,name:"symbols",version:"1.0"})})(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.js
deleted file mode 100644
index 8c99c40..0000000
--- a/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Flot plugin for thresholding data.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-The plugin supports these options:
-
-       series: {
-               threshold: {
-                       below: number
-                       color: colorspec
-               }
-       }
-
-It can also be applied to a single series, like this:
-
-       $.plot( $("#placeholder"), [{
-               data: [ ... ],
-               threshold: { ... }
-       }])
-
-An array can be passed for multiple thresholding, like this:
-
-       threshold: [{
-               below: number1
-               color: color1
-       },{
-               below: number2
-               color: color2
-       }]
-
-These multiple threshold objects can be passed in any order since they are
-sorted by the processing function.
-
-The data points below "below" are drawn with the specified color. This makes
-it easy to mark points below 0, e.g. for budget data.
-
-Internally, the plugin works by splitting the data into two series, above and
-below the threshold. The extra series below the threshold will have its label
-cleared and the special "originSeries" attribute set to the original series.
-You may need to check for this in hover events.
-
-*/
-
-(function ($) {
-    var options = {
-        series: { threshold: null } // or { below: number, color: color spec}
-    };
-    
-    function init(plot) {
-        function thresholdData(plot, s, datapoints, below, color) {
-            var ps = datapoints.pointsize, i, x, y, p, prevp,
-                thresholded = $.extend({}, s); // note: shallow copy
-
-            thresholded.datapoints = { points: [], pointsize: ps, format: 
datapoints.format };
-            thresholded.label = null;
-            thresholded.color = color;
-            thresholded.threshold = null;
-            thresholded.originSeries = s;
-            thresholded.data = [];
- 
-            var origpoints = datapoints.points,
-                addCrossingPoints = s.lines.show;
-
-            var threspoints = [];
-            var newpoints = [];
-            var m;
-
-            for (i = 0; i < origpoints.length; i += ps) {
-                x = origpoints[i];
-                y = origpoints[i + 1];
-
-                prevp = p;
-                if (y < below)
-                    p = threspoints;
-                else
-                    p = newpoints;
-
-                if (addCrossingPoints && prevp != p && x != null
-                    && i > 0 && origpoints[i - ps] != null) {
-                    var interx = x + (below - y) * (x - origpoints[i - ps]) / 
(y - origpoints[i - ps + 1]);
-                    prevp.push(interx);
-                    prevp.push(below);
-                    for (m = 2; m < ps; ++m)
-                        prevp.push(origpoints[i + m]);
-                    
-                    p.push(null); // start new segment
-                    p.push(null);
-                    for (m = 2; m < ps; ++m)
-                        p.push(origpoints[i + m]);
-                    p.push(interx);
-                    p.push(below);
-                    for (m = 2; m < ps; ++m)
-                        p.push(origpoints[i + m]);
-                }
-
-                p.push(x);
-                p.push(y);
-                for (m = 2; m < ps; ++m)
-                    p.push(origpoints[i + m]);
-            }
-
-            datapoints.points = newpoints;
-            thresholded.datapoints.points = threspoints;
-            
-            if (thresholded.datapoints.points.length > 0) {
-                var origIndex = $.inArray(s, plot.getData());
-                // Insert newly-generated series right after original one (to 
prevent it from becoming top-most)
-                plot.getData().splice(origIndex + 1, 0, thresholded);
-            }
-                
-            // FIXME: there are probably some edge cases left in bars
-        }
-        
-        function processThresholds(plot, s, datapoints) {
-            if (!s.threshold)
-                return;
-            
-            if (s.threshold instanceof Array) {
-                s.threshold.sort(function(a, b) {
-                    return a.below - b.below;
-                });
-                
-                $(s.threshold).each(function(i, th) {
-                    thresholdData(plot, s, datapoints, th.below, th.color);
-                });
-            }
-            else {
-                thresholdData(plot, s, datapoints, s.threshold.below, 
s.threshold.color);
-            }
-        }
-        
-        plot.hooks.processDatapoints.push(processThresholds);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'threshold',
-        version: '1.2'
-    });
-})(jQuery);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/680b3a21/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.min.js
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.min.js 
b/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.min.js
deleted file mode 100644
index ce93e0f..0000000
--- 
a/server/monitor/src/main/resources/resources/flot/jquery.flot.threshold.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Javascript plotting library for jQuery, version 0.8.3.
-
-Copyright (c) 2007-2014 IOLA and Ole Laursen.
-Licensed under the MIT license.
-
-*/
-(function($){var options={series:{threshold:null}};function 
init(plot){function thresholdData(plot,s,datapoints,below,color){var 
ps=datapoints.pointsize,i,x,y,p,prevp,thresholded=$.extend({},s);thresholded.datapoints={points:[],pointsize:ps,format:datapoints.format};thresholded.label=null;thresholded.color=color;thresholded.threshold=null;thresholded.originSeries=s;thresholded.data=[];var
 origpoints=datapoints.points,addCrossingPoints=s.lines.show;var 
threspoints=[];var newpoints=[];var 
m;for(i=0;i<origpoints.length;i+=ps){x=origpoints[i];y=origpoints[i+1];prevp=p;if(y<below)p=threspoints;else
 
p=newpoints;if(addCrossingPoints&&prevp!=p&&x!=null&&i>0&&origpoints[i-ps]!=null){var
 
interx=x+(below-y)*(x-origpoints[i-ps])/(y-origpoints[i-ps+1]);prevp.push(interx);prevp.push(below);for(m=2;m<ps;++m)prevp.push(origpoints[i+m]);p.push(null);p.push(null);for(m=2;m<ps;++m)p.push(origpoints[i+m]);p.push(interx);p.push(below);for(m=2;m<ps;++m)p.push(origpoints[i+m])}p.push(x);p.push(y);for(m=2;
 
m<ps;++m)p.push(origpoints[i+m])}datapoints.points=newpoints;thresholded.datapoints.points=threspoints;if(thresholded.datapoints.points.length>0){var
 
origIndex=$.inArray(s,plot.getData());plot.getData().splice(origIndex+1,0,thresholded)}}function
 processThresholds(plot,s,datapoints){if(!s.threshold)return;if(s.threshold 
instanceof Array){s.threshold.sort(function(a,b){return 
a.below-b.below});$(s.threshold).each(function(i,th){thresholdData(plot,s,datapoints,th.below,th.color)})}else{thresholdData(plot,s,datapoints,s.threshold.below,s.threshold.color)}}plot.hooks.processDatapoints.push(processThresholds)}$.plot.plugins.push({init:init,options:options,name:"threshold",version:"1.2"})})(jQuery);
\ No newline at end of file

Reply via email to