60 lines
3.1 KiB
JavaScript
Executable file
60 lines
3.1 KiB
JavaScript
Executable file
/* Flot plugin for automatically redrawing plots as the placeholder resizes.
|
|
|
|
Copyright (c) 2007-2013 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($,t,n){function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o.is(":visible")){var h=o.width(),d=o.height(),v=o.data(a);!v||h===v.w&&d===v.h?i[f]=i[l]:(i[f]=i[c],o.trigger(u,[v.w=h,v.h=d]))}else v=o.data(a),v.w=0,v.h=0}s!==null&&(s=t.requestAnimationFrame(p))}var r=[],i=$.resize=$.extend($.resize,{}),s,o="setTimeout",u="resize",a=u+"-special-event",f="delay",l="pendingDelay",c="activeDelay",h="throttleWindow";i[l]=250,i[c]=20,i[f]=i[l],i[h]=!0,$.event.special[u]={setup:function(){if(!i[h]&&this[o])return!1;var t=$(this);r.push(this),t.data(a,{w:t.width(),h:t.height()}),r.length===1&&(s=n,p())},teardown:function(){if(!i[h]&&this[o])return!1;var t=$(this);for(var n=r.length-1;n>=0;n--)if(r[n]==this){r.splice(n,1);break}t.removeData(a),r.length||(cancelAnimationFrame(s),s=null)},add:function(t){function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!==n?s:o.height(),r.apply(this,arguments)}if(!i[h]&&this[o])return!1;var r;if($.isFunction(t))return r=t,s;r=t.handler,t.handler=s}},t.requestAnimationFrame||(t.requestAnimationFrame=function(){return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e,n){return t.setTimeout(e,i[f])}}()),t.cancelAnimationFrame||(t.cancelAnimationFrame=function(){return t.webkitCancelRequestAnimationFrame||t.mozCancelRequestAnimationFrame||t.oCancelRequestAnimationFrame||t.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);
|