maglev-webtools 0.2.1 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (296) hide show
  1. data/README.rdoc +38 -29
  2. data/bin/webtools +22 -1
  3. data/lib/web_tools/code_browser.rb +156 -0
  4. data/lib/web_tools/debugger.rb +96 -199
  5. data/lib/web_tools/info.rb +1 -3
  6. data/lib/web_tools/method_list.rb +67 -0
  7. data/lib/web_tools/middleware/debugger.rb +10 -16
  8. data/lib/web_tools/object_log.rb +24 -0
  9. data/lib/web_tools/session_list.rb +119 -0
  10. data/lib/web_tools/shared_page_cache.rb +30 -0
  11. data/lib/web_tools/stat_process.rb +24 -0
  12. data/lib/web_tools/statistics.rb +14 -0
  13. data/lib/web_tools/support/app_model.rb +66 -101
  14. data/lib/web_tools/support/code_browser.rb +88 -86
  15. data/lib/web_tools/support/debugger.rb +303 -0
  16. data/lib/web_tools/support/error_log.rb +33 -0
  17. data/lib/web_tools/support/ruby.rb +60 -121
  18. data/lib/web_tools/support/service_helper.rb +38 -10
  19. data/lib/web_tools/support/smalltalk_extensions.rb +12 -0
  20. data/lib/web_tools/tool.rb +48 -0
  21. data/lib/web_tools/ui.rb +14 -53
  22. data/lib/web_tools/version_report.rb +29 -0
  23. data/lib/web_tools/workspace.rb +77 -0
  24. data/lib/web_tools.rb +14 -4
  25. data/public/CodeBrowser.html +51 -0
  26. data/public/CodeMirror/LICENSE +19 -0
  27. data/public/CodeMirror/css/codemirror.css +67 -0
  28. data/public/CodeMirror/css/default.css +18 -0
  29. data/public/CodeMirror/js/codemirror.js +2131 -0
  30. data/public/CodeMirror/js/ruby.js +195 -0
  31. data/public/CodeMirror/js/smalltalk.js +139 -0
  32. data/public/Debugger.html +28 -0
  33. data/public/MethodList.html +20 -0
  34. data/public/ObjectLog.html +20 -0
  35. data/public/SessionList.html +31 -0
  36. data/public/SharedPageCache.html +78 -0
  37. data/public/Statistics.html +64 -0
  38. data/public/VersionReport.html +50 -0
  39. data/public/Workspace.html +39 -0
  40. data/public/css/CodeBrowser.css +24 -0
  41. data/public/css/Debugger.css +32 -0
  42. data/public/css/MethodList.css +8 -0
  43. data/public/css/ObjectLog.css +5 -0
  44. data/public/css/SessionList.css +9 -0
  45. data/public/css/Statistics.css +24 -0
  46. data/public/{stylesheets → css}/base/images/ui-anim_basic_16x16.gif +0 -0
  47. data/public/{stylesheets → css}/base/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  48. data/public/{stylesheets → css}/base/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  49. data/public/{stylesheets → css}/base/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  50. data/public/{stylesheets → css}/base/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  51. data/public/{stylesheets → css}/base/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  52. data/public/{stylesheets → css}/base/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  53. data/public/{stylesheets → css}/base/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  54. data/public/{stylesheets → css}/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  55. data/public/{stylesheets → css}/base/images/ui-icons_222222_256x240.png +0 -0
  56. data/public/{stylesheets → css}/base/images/ui-icons_2e83ff_256x240.png +0 -0
  57. data/public/{stylesheets → css}/base/images/ui-icons_454545_256x240.png +0 -0
  58. data/public/{stylesheets → css}/base/images/ui-icons_888888_256x240.png +0 -0
  59. data/public/{stylesheets → css}/base/images/ui-icons_cd0a0a_256x240.png +0 -0
  60. data/public/{stylesheets → css}/base/jquery.ui.accordion.css +0 -0
  61. data/public/{stylesheets → css}/base/jquery.ui.all.css +0 -0
  62. data/public/{stylesheets → css}/base/jquery.ui.autocomplete.css +0 -0
  63. data/public/{stylesheets → css}/base/jquery.ui.base.css +0 -0
  64. data/public/{stylesheets → css}/base/jquery.ui.button.css +0 -0
  65. data/public/{stylesheets → css}/base/jquery.ui.core.css +0 -0
  66. data/public/{stylesheets → css}/base/jquery.ui.datepicker.css +0 -0
  67. data/public/{stylesheets → css}/base/jquery.ui.dialog.css +0 -0
  68. data/public/{stylesheets → css}/base/jquery.ui.progressbar.css +0 -0
  69. data/public/{stylesheets → css}/base/jquery.ui.resizable.css +0 -0
  70. data/public/{stylesheets → css}/base/jquery.ui.selectable.css +0 -0
  71. data/public/{stylesheets → css}/base/jquery.ui.slider.css +0 -0
  72. data/public/{stylesheets → css}/base/jquery.ui.tabs.css +0 -0
  73. data/public/{stylesheets → css}/base/jquery.ui.theme.css +0 -0
  74. data/public/css/editor.css +25 -0
  75. data/public/css/jjmenu.css +33 -0
  76. data/public/css/menuitem.gif +0 -0
  77. data/public/css/more.gif +0 -0
  78. data/public/{stylesheets → css}/reset.css +1 -1
  79. data/public/css/smoothness/images/ui-anim_basic_16x16.gif +0 -0
  80. data/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  81. data/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  82. data/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  83. data/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  84. data/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  85. data/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  86. data/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  87. data/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  88. data/public/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  89. data/public/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  90. data/public/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  91. data/public/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  92. data/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  93. data/public/css/smoothness/jquery-ui.css +489 -0
  94. data/public/css/ui-lightness/images/ui-anim_basic_16x16.gif +0 -0
  95. data/public/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  96. data/public/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  97. data/public/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  98. data/public/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  99. data/public/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  100. data/public/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  101. data/public/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  102. data/public/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  103. data/public/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  104. data/public/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  105. data/public/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  106. data/public/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  107. data/public/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  108. data/public/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  109. data/public/css/ui-lightness/jquery-ui.css +489 -0
  110. data/public/css/webtools.css +65 -0
  111. data/public/favicon.ico +0 -0
  112. data/public/flot/API.txt +1201 -0
  113. data/public/flot/FAQ.txt +76 -0
  114. data/public/flot/LICENSE.txt +22 -0
  115. data/public/flot/Makefile +9 -0
  116. data/public/flot/NEWS.txt +508 -0
  117. data/public/flot/PLUGINS.txt +137 -0
  118. data/public/flot/README.txt +90 -0
  119. data/public/flot/examples/ajax.html +143 -0
  120. data/public/flot/examples/annotating.html +75 -0
  121. data/public/flot/examples/arrow-down.gif +0 -0
  122. data/public/flot/examples/arrow-left.gif +0 -0
  123. data/public/flot/examples/arrow-right.gif +0 -0
  124. data/public/flot/examples/arrow-up.gif +0 -0
  125. data/public/flot/examples/basic.html +38 -0
  126. data/public/flot/examples/data-eu-gdp-growth-1.json +4 -0
  127. data/public/flot/examples/data-eu-gdp-growth-2.json +4 -0
  128. data/public/flot/examples/data-eu-gdp-growth-3.json +4 -0
  129. data/public/flot/examples/data-eu-gdp-growth-4.json +4 -0
  130. data/public/flot/examples/data-eu-gdp-growth-5.json +4 -0
  131. data/public/flot/examples/data-eu-gdp-growth.json +4 -0
  132. data/public/flot/examples/data-japan-gdp-growth.json +4 -0
  133. data/public/flot/examples/data-usa-gdp-growth.json +4 -0
  134. data/public/flot/examples/graph-types.html +75 -0
  135. data/public/flot/examples/hs-2004-27-a-large_web.jpg +0 -0
  136. data/public/flot/examples/image.html +45 -0
  137. data/public/flot/examples/index.html +44 -0
  138. data/public/flot/examples/interacting-axes.html +97 -0
  139. data/public/flot/examples/interacting.html +93 -0
  140. data/public/flot/examples/layout.css +6 -0
  141. data/public/flot/examples/multiple-axes.html +60 -0
  142. data/public/flot/examples/navigate.html +118 -0
  143. data/public/flot/examples/percentiles.html +57 -0
  144. data/public/flot/examples/pie.html +756 -0
  145. data/public/flot/examples/realtime.html +83 -0
  146. data/public/flot/examples/resize.html +61 -0
  147. data/public/flot/examples/selection.html +114 -0
  148. data/public/flot/examples/setting-options.html +61 -0
  149. data/public/flot/examples/stacking.html +77 -0
  150. data/public/flot/examples/symbols.html +49 -0
  151. data/public/flot/examples/thresholding.html +54 -0
  152. data/public/flot/examples/time.html +71 -0
  153. data/public/flot/examples/tracking.html +95 -0
  154. data/public/flot/examples/turning-series.html +98 -0
  155. data/public/flot/examples/visitors.html +90 -0
  156. data/public/flot/examples/zooming.html +98 -0
  157. data/public/flot/excanvas.js +1427 -0
  158. data/public/flot/excanvas.min.js +1 -0
  159. data/public/flot/jquery.colorhelpers.js +179 -0
  160. data/public/flot/jquery.colorhelpers.min.js +1 -0
  161. data/public/flot/jquery.flot.crosshair.js +167 -0
  162. data/public/flot/jquery.flot.crosshair.min.js +1 -0
  163. data/public/flot/jquery.flot.fillbetween.js +183 -0
  164. data/public/flot/jquery.flot.fillbetween.min.js +1 -0
  165. data/public/flot/jquery.flot.image.js +238 -0
  166. data/public/flot/jquery.flot.image.min.js +1 -0
  167. data/public/flot/jquery.flot.js +2599 -0
  168. data/public/flot/jquery.flot.min.js +6 -0
  169. data/public/flot/jquery.flot.navigate.js +336 -0
  170. data/public/flot/jquery.flot.navigate.min.js +1 -0
  171. data/public/flot/jquery.flot.pie.js +750 -0
  172. data/public/flot/jquery.flot.pie.min.js +1 -0
  173. data/public/flot/jquery.flot.resize.js +60 -0
  174. data/public/flot/jquery.flot.resize.min.js +1 -0
  175. data/public/flot/jquery.flot.selection.js +344 -0
  176. data/public/flot/jquery.flot.selection.min.js +1 -0
  177. data/public/flot/jquery.flot.stack.js +184 -0
  178. data/public/flot/jquery.flot.stack.min.js +1 -0
  179. data/public/flot/jquery.flot.symbol.js +70 -0
  180. data/public/flot/jquery.flot.symbol.min.js +1 -0
  181. data/public/flot/jquery.flot.threshold.js +103 -0
  182. data/public/flot/jquery.flot.threshold.min.js +1 -0
  183. data/public/flot/jquery.js +8316 -0
  184. data/public/flot/jquery.min.js +23 -0
  185. data/public/genPacking.pl +30 -0
  186. data/public/index.html +28 -0
  187. data/public/install.tpz +66 -0
  188. data/public/installAndRun.tpz +5 -0
  189. data/public/jsTree/jquery.jstree.js +3510 -0
  190. data/public/jsTree/themes/default/d.gif +0 -0
  191. data/public/jsTree/themes/default/d.png +0 -0
  192. data/public/jsTree/themes/default/style.css +73 -0
  193. data/public/jsTree/themes/default/throbber.gif +0 -0
  194. data/public/readMe.txt +9 -0
  195. data/public/scripts/CodeBrowser.js +645 -0
  196. data/public/scripts/Debugger.js +134 -0
  197. data/public/scripts/MethodList.js +72 -0
  198. data/public/scripts/ObjectLog.js +59 -0
  199. data/public/scripts/SessionList.js +164 -0
  200. data/public/scripts/Statistics.js +266 -0
  201. data/public/scripts/editor.js +430 -0
  202. data/public/scripts/jjmenu.js +375 -0
  203. data/public/scripts/jquery-ui.js +1012 -0
  204. data/public/scripts/jquery.js +154 -0
  205. data/public/scripts/webtools.js +374 -0
  206. data/public/src/CodeBrowser.gs +416 -0
  207. data/public/src/Debugger.gs +132 -0
  208. data/public/src/MethodList.gs +130 -0
  209. data/public/src/ObjectLog.gs +73 -0
  210. data/public/src/Server.gs +544 -0
  211. data/public/src/SessionList.gs +172 -0
  212. data/public/src/SharedPageCache.gs +66 -0
  213. data/public/src/StatProcess.gs +280 -0
  214. data/public/src/StatProcessType.gs +242 -0
  215. data/public/src/StatStatistic.gs +381 -0
  216. data/public/src/Statistics.gs +222 -0
  217. data/public/src/Statmonitor.gs +490 -0
  218. data/public/src/Tool.gs +86 -0
  219. data/public/src/VersionReport.gs +52 -0
  220. data/public/src/Workspace.gs +163 -0
  221. data/views/debugger.rhtml +6 -9
  222. metadata +344 -243
  223. data/lib/web_tools/#debugger.rb# +0 -212
  224. data/lib/web_tools/browser.rb +0 -45
  225. data/public/images/favicon.ico +0 -0
  226. data/public/javascript/CodeMirror/LICENSE +0 -23
  227. data/public/javascript/CodeMirror/css/Smalltalk.css +0 -34
  228. data/public/javascript/CodeMirror/js/codemirror.js +0 -582
  229. data/public/javascript/CodeMirror/js/editor.js +0 -1671
  230. data/public/javascript/CodeMirror/js/highlight.js +0 -68
  231. data/public/javascript/CodeMirror/js/parseSmalltalk.js +0 -126
  232. data/public/javascript/CodeMirror/js/parsedummy.js +0 -32
  233. data/public/javascript/CodeMirror/js/select.js +0 -699
  234. data/public/javascript/CodeMirror/js/stringstream.js +0 -159
  235. data/public/javascript/CodeMirror/js/tokenize.js +0 -57
  236. data/public/javascript/CodeMirror/js/undo.js +0 -413
  237. data/public/javascript/CodeMirror/js/util.js +0 -133
  238. data/public/javascript/CodeMirror/testSmalltalkParser.html +0 -116
  239. data/public/javascript/ace/ace-uncompressed.js +0 -17299
  240. data/public/javascript/ace/ace.js +0 -1
  241. data/public/javascript/ace/keybinding-emacs.js +0 -1
  242. data/public/javascript/ace/keybinding-vim.js +0 -1
  243. data/public/javascript/ace/mode-c_cpp.js +0 -1
  244. data/public/javascript/ace/mode-clojure.js +0 -1
  245. data/public/javascript/ace/mode-coffee.js +0 -1
  246. data/public/javascript/ace/mode-csharp.js +0 -1
  247. data/public/javascript/ace/mode-css.js +0 -1
  248. data/public/javascript/ace/mode-groovy.js +0 -1
  249. data/public/javascript/ace/mode-html.js +0 -1
  250. data/public/javascript/ace/mode-java.js +0 -1
  251. data/public/javascript/ace/mode-javascript.js +0 -1
  252. data/public/javascript/ace/mode-json.js +0 -1
  253. data/public/javascript/ace/mode-lua.js +0 -1
  254. data/public/javascript/ace/mode-markdown.js +0 -1
  255. data/public/javascript/ace/mode-ocaml.js +0 -1
  256. data/public/javascript/ace/mode-perl.js +0 -1
  257. data/public/javascript/ace/mode-php.js +0 -1
  258. data/public/javascript/ace/mode-python.js +0 -1
  259. data/public/javascript/ace/mode-ruby.js +0 -1
  260. data/public/javascript/ace/mode-scad.js +0 -1
  261. data/public/javascript/ace/mode-scala.js +0 -1
  262. data/public/javascript/ace/mode-scss.js +0 -1
  263. data/public/javascript/ace/mode-svg.js +0 -1
  264. data/public/javascript/ace/mode-textile.js +0 -1
  265. data/public/javascript/ace/mode-xml.js +0 -1
  266. data/public/javascript/ace/theme-clouds.js +0 -1
  267. data/public/javascript/ace/theme-clouds_midnight.js +0 -1
  268. data/public/javascript/ace/theme-cobalt.js +0 -1
  269. data/public/javascript/ace/theme-crimson_editor.js +0 -1
  270. data/public/javascript/ace/theme-dawn.js +0 -1
  271. data/public/javascript/ace/theme-eclipse.js +0 -1
  272. data/public/javascript/ace/theme-idle_fingers.js +0 -1
  273. data/public/javascript/ace/theme-kr_theme.js +0 -1
  274. data/public/javascript/ace/theme-merbivore.js +0 -1
  275. data/public/javascript/ace/theme-merbivore_soft.js +0 -1
  276. data/public/javascript/ace/theme-mono_industrial.js +0 -1
  277. data/public/javascript/ace/theme-monokai.js +0 -1
  278. data/public/javascript/ace/theme-pastel_on_dark.js +0 -1
  279. data/public/javascript/ace/theme-solarized_dark.js +0 -1
  280. data/public/javascript/ace/theme-solarized_light.js +0 -1
  281. data/public/javascript/ace/theme-textmate.js +0 -1
  282. data/public/javascript/ace/theme-twilight.js +0 -1
  283. data/public/javascript/ace/theme-vibrant_ink.js +0 -1
  284. data/public/javascript/ace/worker-coffee.js +0 -1
  285. data/public/javascript/ace/worker-css.js +0 -1
  286. data/public/javascript/ace/worker-javascript.js +0 -1
  287. data/public/javascript/webtools/browser.js +0 -260
  288. data/public/javascript/webtools/debugger.coffee +0 -286
  289. data/public/javascript/webtools/debugger.js +0 -366
  290. data/public/javascript/webtools/sessions.coffee +0 -17
  291. data/public/javascript/webtools/sessions.js +0 -27
  292. data/public/javascript/webtools/version.coffee +0 -14
  293. data/public/javascript/webtools/version.js +0 -20
  294. data/public/stylesheets/jquery.contextMenu.css +0 -62
  295. data/public/stylesheets/webtools.css +0 -53
  296. data/public/test.html +0 -47
@@ -0,0 +1,76 @@
1
+ Frequently asked questions
2
+ --------------------------
3
+
4
+ Q: How much data can Flot cope with?
5
+
6
+ A: Flot will happily draw everything you send to it so the answer
7
+ depends on the browser. The excanvas emulation used for IE (built with
8
+ VML) makes IE by far the slowest browser so be sure to test with that
9
+ if IE users are in your target group.
10
+
11
+ 1000 points is not a problem, but as soon as you start having more
12
+ points than the pixel width, you should probably start thinking about
13
+ downsampling/aggregation as this is near the resolution limit of the
14
+ chart anyway. If you downsample server-side, you also save bandwidth.
15
+
16
+
17
+ Q: Flot isn't working when I'm using JSON data as source!
18
+
19
+ A: Actually, Flot loves JSON data, you just got the format wrong.
20
+ Double check that you're not inputting strings instead of numbers,
21
+ like [["0", "-2.13"], ["5", "4.3"]]. This is most common mistake, and
22
+ the error might not show up immediately because Javascript can do some
23
+ conversion automatically.
24
+
25
+
26
+ Q: Can I export the graph?
27
+
28
+ A: This is a limitation of the canvas technology. There's a hook in
29
+ the canvas object for getting an image out, but you won't get the tick
30
+ labels. And it's not likely to be supported by IE. At this point, your
31
+ best bet is probably taking a screenshot, e.g. with PrtScn.
32
+
33
+
34
+ Q: The bars are all tiny in time mode?
35
+
36
+ A: It's not really possible to determine the bar width automatically.
37
+ So you have to set the width with the barWidth option which is NOT in
38
+ pixels, but in the units of the x axis (or the y axis for horizontal
39
+ bars). For time mode that's milliseconds so the default value of 1
40
+ makes the bars 1 millisecond wide.
41
+
42
+
43
+ Q: Can I use Flot with libraries like Mootools or Prototype?
44
+
45
+ A: Yes, Flot supports it out of the box and it's easy! Just use jQuery
46
+ instead of $, e.g. call jQuery.plot instead of $.plot and use
47
+ jQuery(something) instead of $(something). As a convenience, you can
48
+ put in a DOM element for the graph placeholder where the examples and
49
+ the API documentation are using jQuery objects.
50
+
51
+ Depending on how you include jQuery, you may have to add one line of
52
+ code to prevent jQuery from overwriting functions from the other
53
+ libraries, see the documentation in jQuery ("Using jQuery with other
54
+ libraries") for details.
55
+
56
+
57
+ Q: Flot doesn't work with [insert name of Javascript UI framework]!
58
+
59
+ A: The only non-standard thing used by Flot is the canvas tag;
60
+ otherwise it is simply a series of absolute positioned divs within the
61
+ placeholder tag you put in. If this is not working, it's probably
62
+ because the framework you're using is doing something weird with the
63
+ DOM, or you're using it the wrong way.
64
+
65
+ A common problem is that there's display:none on a container until the
66
+ user does something. Many tab widgets work this way, and there's
67
+ nothing wrong with it - you just can't call Flot inside a display:none
68
+ container as explained in the README so you need to hold off the Flot
69
+ call until the container is actually displayed (or use
70
+ visibility:hidden instead of display:none or move the container
71
+ off-screen).
72
+
73
+ If you find there's a specific thing we can do to Flot to help, feel
74
+ free to submit a bug report. Otherwise, you're welcome to ask for help
75
+ on the forum/mailing list, but please don't submit a bug report to
76
+ Flot.
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2007-2009 IOLA and Ole Laursen
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,9 @@
1
+ # Makefile for generating minified files
2
+
3
+ .PHONY: all
4
+
5
+ # we cheat and process all .js files instead of an exhaustive list
6
+ all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js)))
7
+
8
+ %.min.js: %.js
9
+ yui-compressor $< -o $@
@@ -0,0 +1,508 @@
1
+ Flot 0.7
2
+ --------
3
+
4
+ API changes:
5
+
6
+ Multiple axes support. Code using dual axes should be changed from
7
+ using x2axis/y2axis in the options to using an array (although
8
+ backwards-compatibility hooks are in place). For instance,
9
+
10
+ {
11
+ xaxis: { ... }, x2axis: { ... },
12
+ yaxis: { ... }, y2axis: { ... }
13
+ }
14
+
15
+ becomes
16
+
17
+ {
18
+ xaxes: [ { ... }, { ... } ],
19
+ yaxes: [ { ... }, { ... } ]
20
+ }
21
+
22
+ Note that if you're just using one axis, continue to use the
23
+ xaxis/yaxis directly (it now sets the default settings for the
24
+ arrays). Plugins touching the axes must be ported to take the extra
25
+ axes into account, check the source to see some examples.
26
+
27
+ A related change is that the visibility of axes is now auto-detected.
28
+ So if you were relying on an axis to show up even without any data in
29
+ the chart, you now need to set the axis "show" option explicitly.
30
+
31
+ "tickColor" on the grid options is now deprecated in favour of a
32
+ corresponding option on the axes, so { grid: { tickColor: "#000" }}
33
+ becomes { xaxis: { tickColor: "#000"}, yaxis: { tickColor: "#000"} },
34
+ but if you just configure a base color Flot will now autogenerate a
35
+ tick color by adding transparency. Backwards-compatibility hooks are
36
+ in place.
37
+
38
+ Final note: now that IE 9 is coming out with canvas support, you may
39
+ want to adapt the excanvas include to skip loading it in IE 9 (the
40
+ examples have been adapted thanks to Ryley Breiddal). An alternative
41
+ to excanvas using Flash has also surfaced, if your graphs are slow in
42
+ IE, you may want to give it a spin:
43
+
44
+ http://code.google.com/p/flashcanvas/
45
+
46
+
47
+ Changes:
48
+
49
+ - Support for specifying a bottom for each point for line charts when
50
+ filling them, this means that an arbitrary bottom can be used
51
+ instead of just the x axis (based on patches patiently provided by
52
+ Roman V. Prikhodchenko).
53
+ - New fillbetween plugin that can compute a bottom for a series from
54
+ another series, useful for filling areas between lines (see new
55
+ example percentiles.html for a use case).
56
+ - More predictable handling of gaps for the stacking plugin, now all
57
+ undefined ranges are skipped.
58
+ - Stacking plugin can stack horizontal bar charts.
59
+ - Navigate plugin now redraws the plot while panning instead of only
60
+ after the fact (can be disabled by setting the pan.frameRate option
61
+ to null), raised by lastthemy (issue 235).
62
+ - Date formatter now accepts %0m and %0d to get a zero-padded month or
63
+ day (issue raised by Maximillian Dornseif).
64
+ - Revamped internals to support an unlimited number of axes, not just
65
+ dual (sponsored by Flight Data Services,
66
+ www.flightdataservices.com).
67
+ - New setting on axes, "tickLength", to control the size of ticks or
68
+ turn them off without turning off the labels.
69
+ - Axis labels are now put in container divs with classes, for instance
70
+ labels in the x axes can be reached via ".xAxis .tickLabel".
71
+ - Support for setting the color of an axis (sponsored by Flight Data
72
+ Services, www.flightdataservices.com).
73
+ - Tick color is now auto-generated as the base color with some
74
+ transparency (unless you override it).
75
+ - Support for aligning ticks in the axes with "alignTicksWithAxis" to
76
+ ensure that they appear next to each other rather than in between,
77
+ at the expense of possibly awkward tick steps (sponsored by Flight
78
+ Data Services, www.flightdataservices.com).
79
+ - Support for customizing the point type through a callback when
80
+ plotting points and new symbol plugin with some predefined point
81
+ types (sponsored by Utility Data Corporation).
82
+ - Resize plugin for automatically redrawing when the placeholder
83
+ changes size, e.g. on window resizes (sponsored by Novus Partners).
84
+ A resize() method has been added to plot object facilitate this.
85
+ - Support Infinity/-Infinity for plotting asymptotes by hacking it
86
+ into +/-Number.MAX_VALUE (reported by rabaea.mircea).
87
+ - Support for restricting navigate plugin to not pan/zoom an axis (based
88
+ on patch by kkaefer).
89
+ - Support for providing the drag cursor for the navigate plugin as an
90
+ option (based on patch by Kelly T. Moore).
91
+ - Options for controlling whether an axis is shown or not (suggestion
92
+ by Timo Tuominen) and whether to reserve space for it even if it
93
+ isn't shown.
94
+ - New attribute $.plot.version with the Flot version as a string.
95
+ - The version comment is now included in the minified jquery.flot.min.js.
96
+ - New options.grid.minBorderMargin for adjusting the minimum margin
97
+ provided around the border (based on patch by corani, issue 188).
98
+ - Refactor replot behaviour so Flot tries to reuse the existing
99
+ canvas, adding shutdown() methods to the plot (based on patch by
100
+ Ryley Breiddal, issue 269). This prevents a memory leak in Chrome
101
+ and hopefully makes replotting faster for those who are using $.plot
102
+ instead of .setData()/.draw(). Also update jQuery to 1.5.1 to
103
+ prevent IE leaks fixed in jQuery.
104
+ - New real-time line chart example.
105
+
106
+ - New hooks: drawSeries, shutdown
107
+
108
+ Bug fixes:
109
+
110
+ - Fixed problem with findNearbyItem and bars on top of each other
111
+ (reported by ragingchikn, issue 242).
112
+ - Fixed problem with ticks and the border (based on patch from
113
+ ultimatehustler69, issue 236).
114
+ - Fixed problem with plugins adding options to the series objects.
115
+ - Fixed a problem introduced in 0.6 with specifying a gradient with {
116
+ brightness: x, opacity: y }.
117
+ - Don't use $.browser.msie, check for getContext on the created canvas
118
+ element instead and try to use excanvas if it's not found (fixes IE
119
+ 9 compatibility).
120
+ - highlight(s, index) was looking up the point in the original s.data
121
+ instead of in the computed datapoints array, which breaks with
122
+ plugins that modify the datapoints (such as the stacking plugin).
123
+ Issue 316 reported by curlypaul924.
124
+ - More robust handling of axis from data passed in from getData()
125
+ (problem reported by Morgan).
126
+ - Fixed problem with turning off bar outline (issue 253, fix by Jordi
127
+ Castells).
128
+ - Check the selection passed into setSelection in the selection
129
+ plugin, to guard against errors when synchronizing plots (fix by Lau
130
+ Bech Lauritzen).
131
+ - Fix bug in crosshair code with mouseout resetting the crosshair even
132
+ if it is locked (fix by Lau Bech Lauritzen and Banko Adam).
133
+ - Fix bug with points plotting using line width from lines rather than
134
+ points.
135
+ - Fix bug with passing non-array 0 data (for plugins that don't expect
136
+ arrays, patch by vpapp1).
137
+ - Fix errors in JSON in examples so they work with jQuery 1.4.2
138
+ (fix reported by honestbleeps, issue 357).
139
+ - Fix bug with tooltip in interacting.html, this makes the tooltip
140
+ much smoother (fix by bdkahn). Fix related bug inside highlighting
141
+ handler in Flot.
142
+ - Use closure trick to make inline colorhelpers plugin respect
143
+ jQuery.noConflict(true), renaming the global jQuery object (reported
144
+ by Nick Stielau).
145
+ - Listen for mouseleave events and fire a plothover event with empty
146
+ item when it occurs to drop highlights when the mouse leaves the
147
+ plot (reported by by outspirit).
148
+ - Fix bug with using aboveData with a background (reported by
149
+ amitayd).
150
+ - Fix possible excanvas leak (report and suggested fix by tom9729).
151
+ - Fix bug with backwards compatibility for shadowSize = 0 (report and
152
+ suggested fix by aspinak).
153
+ - Adapt examples to skip loading excanvas (fix by Ryley Breiddal).
154
+ - Fix bug that prevent a simple f(x) = -x transform from working
155
+ correctly (fix by Mike, issue 263).
156
+ - Fix bug in restoring cursor in navigate plugin (reported by Matteo
157
+ Gattanini, issue 395).
158
+ - Fix bug in picking items when transform/inverseTransform is in use
159
+ (reported by Ofri Raviv, and patches and analysis by Jan and Tom
160
+ Paton, issue 334 and 467).
161
+ - Fix problem with unaligned ticks and hover/click events caused by
162
+ padding on the placeholder by hardcoding the placeholder padding to
163
+ 0 (reported by adityadineshsaxena, Matt Sommer, Daniel Atos and some
164
+ other people, issue 301).
165
+ - Update colorhelpers plugin to avoid dying when trying to parse an
166
+ invalid string (reported by cadavor, issue 483).
167
+
168
+
169
+ Flot 0.6
170
+ --------
171
+
172
+ API changes:
173
+
174
+ 1. Selection support has been moved to a plugin. Thus if you're
175
+ passing selection: { mode: something }, you MUST include the file
176
+ jquery.flot.selection.js after jquery.flot.js. This reduces the size
177
+ of base Flot and makes it easier to customize the selection as well as
178
+ improving code clarity. The change is based on a patch from andershol.
179
+
180
+ 2. In the global options specified in the $.plot command,
181
+ "lines", "points", "bars" and "shadowSize" have been moved to a
182
+ sub-object called "series", i.e.
183
+
184
+ $.plot(placeholder, data, { lines: { show: true }})
185
+
186
+ should be changed to
187
+
188
+ $.plot(placeholder, data, { series: { lines: { show: true }}})
189
+
190
+ All future series-specific options will go into this sub-object to
191
+ simplify plugin writing. Backward-compatibility code is in place, so
192
+ old code should not break.
193
+
194
+ 3. "plothover" no longer provides the original data point, but instead
195
+ a normalized one, since there may be no corresponding original point.
196
+
197
+ 4. Due to a bug in previous versions of jQuery, you now need at least
198
+ jQuery 1.2.6. But if you can, try jQuery 1.3.2 as it got some
199
+ improvements in event handling speed.
200
+
201
+
202
+ Changes:
203
+
204
+ - Added support for disabling interactivity for specific data series
205
+ (request from Ronald Schouten and Steve Upton).
206
+
207
+ - Flot now calls $() on the placeholder and optional legend container
208
+ passed in so you can specify DOM elements or CSS expressions to make
209
+ it easier to use Flot with libraries like Prototype or Mootools or
210
+ through raw JSON from Ajax responses.
211
+
212
+ - A new "plotselecting" event is now emitted while the user is making
213
+ a selection.
214
+
215
+ - The "plothover" event is now emitted immediately instead of at most
216
+ 10 times per second, you'll have to put in a setTimeout yourself if
217
+ you're doing something really expensive on this event.
218
+
219
+ - The built-in date formatter can now be accessed as
220
+ $.plot.formatDate(...) (suggestion by Matt Manela) and even
221
+ replaced.
222
+
223
+ - Added "borderColor" option to the grid (patch from Amaury Chamayou
224
+ and patch from Mike R. Williamson).
225
+
226
+ - Added support for gradient backgrounds for the grid, take a look at
227
+ the "setting options" example (based on patch from Amaury Chamayou,
228
+ issue 90).
229
+
230
+ - Gradient bars (suggestion by stefpet).
231
+
232
+ - Added a "plotunselected" event which is triggered when the selection
233
+ is removed, see "selection" example (suggestion by Meda Ugo);
234
+
235
+ - The option legend.margin can now specify horizontal and vertical
236
+ margins independently (suggestion by someone who's annoyed).
237
+
238
+ - Data passed into Flot is now copied to a new canonical format to
239
+ enable further processing before it hits the drawing routines. As a
240
+ side-effect, this should make Flot more robust in the face of bad
241
+ data (and fixes issue 112).
242
+
243
+ - Step-wise charting: line charts have a new option "steps" that when
244
+ set to true connects the points with horizontal/vertical steps
245
+ instead of diagonal lines.
246
+
247
+ - The legend labelFormatter now passes the series in addition to just
248
+ the label (suggestion by Vincent Lemeltier).
249
+
250
+ - Horizontal bars (based on patch by Jason LeBrun).
251
+
252
+ - Support for partial bars by specifying a third coordinate, i.e. they
253
+ don't have to start from the axis. This can be used to make stacked
254
+ bars.
255
+
256
+ - New option to disable the (grid.show).
257
+
258
+ - Added pointOffset method for converting a point in data space to an
259
+ offset within the placeholder.
260
+
261
+ - Plugin system: register an init method in the $.flot.plugins array
262
+ to get started, see PLUGINS.txt for details on how to write plugins
263
+ (it's easy). There are also some extra methods to enable access to
264
+ internal state.
265
+
266
+ - Hooks: you can register functions that are called while Flot is
267
+ crunching the data and doing the plot. This can be used to modify
268
+ Flot without changing the source, useful for writing plugins. Some
269
+ hooks are defined, more are likely to come.
270
+
271
+ - Threshold plugin: you can set a threshold and a color, and the data
272
+ points below that threshold will then get the color. Useful for
273
+ marking data below 0, for instance.
274
+
275
+ - Stack plugin: you can specify a stack key for each series to have
276
+ them summed. This is useful for drawing additive/cumulative graphs
277
+ with bars and (currently unfilled) lines.
278
+
279
+ - Crosshairs plugin: trace the mouse position on the axes, enable with
280
+ crosshair: { mode: "x"} (see the new tracking example for a use).
281
+
282
+ - Image plugin: plot prerendered images.
283
+
284
+ - Navigation plugin for panning and zooming a plot.
285
+
286
+ - More configurable grid.
287
+
288
+ - Axis transformation support, useful for non-linear plots, e.g. log
289
+ axes and compressed time axes (like omitting weekends).
290
+
291
+ - Support for twelve-hour date formatting (patch by Forrest Aldridge).
292
+
293
+ - The color parsing code in Flot has been cleaned up and split out so
294
+ it's now available as a separate jQuery plugin. It's included inline
295
+ in the Flot source to make dependency managing easier. This also
296
+ makes it really easy to use the color helpers in Flot plugins.
297
+
298
+ Bug fixes:
299
+
300
+ - Fixed two corner-case bugs when drawing filled curves (report and
301
+ analysis by Joshua Varner).
302
+ - Fix auto-adjustment code when setting min to 0 for an axis where the
303
+ dataset is completely flat on that axis (report by chovy).
304
+ - Fixed a bug with passing in data from getData to setData when the
305
+ secondary axes are used (issue 65, reported by nperelman).
306
+ - Fixed so that it is possible to turn lines off when no other chart
307
+ type is shown (based on problem reported by Glenn Vanderburg), and
308
+ fixed so that setting lineWidth to 0 also hides the shadow (based on
309
+ problem reported by Sergio Nunes).
310
+ - Updated mousemove position expression to the latest from jQuery (bug
311
+ reported by meyuchas).
312
+ - Use CSS borders instead of background in legend (fix printing issue 25
313
+ and 45).
314
+ - Explicitly convert axis min/max to numbers.
315
+ - Fixed a bug with drawing marking lines with different colors
316
+ (reported by Khurram).
317
+ - Fixed a bug with returning y2 values in the selection event (fix
318
+ by exists, issue 75).
319
+ - Only set position relative on placeholder if it hasn't already a
320
+ position different from static (reported by kyberneticist, issue 95).
321
+ - Don't round markings to prevent sub-pixel problems (reported by Dan
322
+ Lipsitt).
323
+ - Make the grid border act similarly to a regular CSS border, i.e.
324
+ prevent it from overlapping the plot itself. This also fixes a
325
+ problem with anti-aliasing when the width is 1 pixel (reported by
326
+ Anthony Ettinger).
327
+ - Imported version 3 of excanvas and fixed two issues with the newer
328
+ version. Hopefully, this will make Flot work with IE8 (nudge by
329
+ Fabien Menager, further analysis by Booink, issue 133).
330
+ - Changed the shadow code for lines to hopefully look a bit better
331
+ with vertical lines.
332
+ - Round tick positions to avoid possible problems with fractions
333
+ (suggestion by Fred, issue 130).
334
+ - Made the heuristic for determining how many ticks to aim for a bit
335
+ smarter.
336
+ - Fix for uneven axis margins (report and patch by Paul Kienzle) and
337
+ snapping to ticks (concurrent report and patch by lifthrasiir).
338
+ - Fixed bug with slicing in findNearbyItems (patch by zollman).
339
+ - Make heuristic for x axis label widths more dynamic (patch by
340
+ rickinhethuis).
341
+ - Make sure points on top take precedence when finding nearby points
342
+ when hovering (reported by didroe, issue 224).
343
+
344
+ Flot 0.5
345
+ --------
346
+
347
+ Backwards API change summary: Timestamps are now in UTC. Also
348
+ "selected" event -> becomes "plotselected" with new data, the
349
+ parameters for setSelection are now different (but backwards
350
+ compatibility hooks are in place), coloredAreas becomes markings with
351
+ a new interface (but backwards compatibility hooks are in place).
352
+
353
+
354
+ Interactivity: added a new "plothover" event and this and the
355
+ "plotclick" event now returns the closest data item (based on patch by
356
+ /david, patch by Mark Byers for bar support). See the revamped
357
+ "interacting with the data" example for some hints on what you can do.
358
+
359
+ Highlighting: you can now highlight points and datapoints are
360
+ autohighlighted when you hover over them (if hovering is turned on).
361
+
362
+ Support for dual axis has been added (based on patch by someone who's
363
+ annoyed and /david). For each data series you can specify which axes
364
+ it belongs to, and there are two more axes, x2axis and y2axis, to
365
+ customize. This affects the "selected" event which has been renamed to
366
+ "plotselected" and spews out { xaxis: { from: -10, to: 20 } ... },
367
+ setSelection in which the parameters are on a new form (backwards
368
+ compatible hooks are in place so old code shouldn't break) and
369
+ markings (formerly coloredAreas).
370
+
371
+ Timestamps in time mode are now displayed according to
372
+ UTC instead of the time zone of the visitor. This affects the way the
373
+ timestamps should be input; you'll probably have to offset the
374
+ timestamps according to your local time zone. It also affects any
375
+ custom date handling code (which basically now should use the
376
+ equivalent UTC date mehods, e.g. .setUTCMonth() instead of
377
+ .setMonth().
378
+
379
+ Added support for specifying the size of tick labels (axis.labelWidth,
380
+ axis.labelHeight). Useful for specifying a max label size to keep
381
+ multiple plots aligned.
382
+
383
+ Markings, previously coloredAreas, are now specified as ranges on the
384
+ axes, like { xaxis: { from: 0, to: 10 }}. Furthermore with markings
385
+ you can now draw horizontal/vertical lines by setting from and to to
386
+ the same coordinate (idea from line support patch by by Ryan Funduk).
387
+
388
+ The "fill" option can now be a number that specifies the opacity of
389
+ the fill.
390
+
391
+ You can now specify a coordinate as null (like [2, null]) and Flot
392
+ will take the other coordinate into account when scaling the axes
393
+ (based on patch by joebno).
394
+
395
+ New option for bars "align". Set it to "center" to center the bars on
396
+ the value they represent.
397
+
398
+ setSelection now takes a second parameter which you can use to prevent
399
+ the method from firing the "plotselected" handler.
400
+
401
+ Using the "container" option in legend now overwrites the container
402
+ element instead of just appending to it (fixes infinite legend bug,
403
+ reported by several people, fix by Brad Dewey).
404
+
405
+ Fixed a bug in calculating spacing around the plot (reported by
406
+ timothytoe). Fixed a bug in finding max values for all-negative data
407
+ sets. Prevent the possibility of eternal looping in tick calculations.
408
+ Fixed a bug when borderWidth is set to 0 (reported by
409
+ Rob/sanchothefat). Fixed a bug with drawing bars extending below 0
410
+ (reported by James Hewitt, patch by Ryan Funduk). Fixed a
411
+ bug with line widths of bars (reported by MikeM). Fixed a bug with
412
+ 'nw' and 'sw' legend positions. Improved the handling of axis
413
+ auto-scaling with bars. Fixed a bug with multi-line x-axis tick
414
+ labels (reported by Luca Ciano). IE-fix help by Savage Zhang.
415
+
416
+
417
+ Flot 0.4
418
+ --------
419
+
420
+ API changes: deprecated axis.noTicks in favor of just specifying the
421
+ number as axis.ticks. So "xaxis: { noTicks: 10 }" becomes
422
+ "xaxis: { ticks: 10 }"
423
+
424
+ Time series support. Specify axis.mode: "time", put in Javascript
425
+ timestamps as data, and Flot will automatically spit out sensible
426
+ ticks. Take a look at the two new examples. The format can be
427
+ customized with axis.timeformat and axis.monthNames, or if that fails
428
+ with axis.tickFormatter.
429
+
430
+ Support for colored background areas via grid.coloredAreas. Specify an
431
+ array of { x1, y1, x2, y2 } objects or a function that returns these
432
+ given { xmin, xmax, ymin, ymax }.
433
+
434
+ More members on the plot object (report by Chris Davies and others).
435
+ "getData" for inspecting the assigned settings on data series (e.g.
436
+ color) and "setData", "setupGrid" and "draw" for updating the contents
437
+ without a total replot.
438
+
439
+ The default number of ticks to aim for is now dependent on the size of
440
+ the plot in pixels. Support for customizing tick interval sizes
441
+ directly with axis.minTickSize and axis.tickSize.
442
+
443
+ Cleaned up the automatic axis scaling algorithm and fixed how it
444
+ interacts with ticks. Also fixed a couple of tick-related corner case
445
+ bugs (one reported by mainstreetmark, another reported by timothytoe).
446
+
447
+ The option axis.tickFormatter now takes a function with two
448
+ parameters, the second parameter is an optional object with
449
+ information about the axis. It has min, max, tickDecimals, tickSize.
450
+
451
+ Added support for segmented lines (based on patch from Michael
452
+ MacDonald) and for ignoring null and bad values (suggestion from Nick
453
+ Konidaris and joshwaihi).
454
+
455
+ Added support for changing the border width (joebno and safoo).
456
+ Label colors can be changed via CSS by selecting the tickLabel class.
457
+
458
+ Fixed a bug in handling single-item bar series (reported by Emil
459
+ Filipov). Fixed erratic behaviour when interacting with the plot
460
+ with IE 7 (reported by Lau Bech Lauritzen). Prevent IE/Safari text
461
+ selection when selecting stuff on the canvas.
462
+
463
+
464
+
465
+ Flot 0.3
466
+ --------
467
+
468
+ This is mostly a quick-fix release because jquery.js wasn't included
469
+ in the previous zip/tarball.
470
+
471
+ Support clicking on the plot. Turn it on with grid: { clickable: true },
472
+ then you get a "plotclick" event on the graph placeholder with the
473
+ position in units of the plot.
474
+
475
+ Fixed a bug in dealing with data where min = max, thanks to Michael
476
+ Messinides.
477
+
478
+ Include jquery.js in the zip/tarball.
479
+
480
+
481
+ Flot 0.2
482
+ --------
483
+
484
+ Added support for putting a background behind the default legend. The
485
+ default is the partly transparent background color. Added
486
+ backgroundColor and backgroundOpacity to the legend options to control
487
+ this.
488
+
489
+ The ticks options can now be a callback function that takes one
490
+ parameter, an object with the attributes min and max. The function
491
+ should return a ticks array.
492
+
493
+ Added labelFormatter option in legend, useful for turning the legend
494
+ labels into links.
495
+
496
+ Fixed a couple of bugs.
497
+
498
+ The API should now be fully documented.
499
+
500
+ Patch from Guy Fraser to make parts of the code smaller.
501
+
502
+ API changes: Moved labelMargin option to grid from x/yaxis.
503
+
504
+
505
+ Flot 0.1
506
+ --------
507
+
508
+ First public release.