| /* 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); |