how_are_we_doing 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/app/controllers/reports_controller.rb +54 -0
  2. data/app/helpers/prints_helper.rb +25 -0
  3. data/app/helpers/reports_helper.rb +36 -0
  4. data/app/helpers/shares_helper.rb +25 -0
  5. data/app/helpers/views_helper.rb +25 -0
  6. data/app/models/print.rb +28 -0
  7. data/app/models/share.rb +29 -0
  8. data/app/models/total.rb +25 -0
  9. data/app/models/view.rb +28 -0
  10. data/app/views/reports/index.html.erb +28 -0
  11. data/how_are_we_doing.gemspec +3 -0
  12. data/lib/acts_as_printable.rb +8 -1
  13. data/lib/acts_as_shareable.rb +9 -2
  14. data/lib/acts_as_totalable.rb +31 -0
  15. data/lib/acts_as_viewable.rb +8 -1
  16. data/lib/generators/how_are_we_doing/install/install_generator.rb +9 -3
  17. data/lib/generators/how_are_we_doing/install/templates/db/migrate/create_totals.rb +16 -0
  18. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/API.txt +1024 -0
  19. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/FAQ.txt +71 -0
  20. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/LICENSE.txt +22 -0
  21. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/Makefile +15 -0
  22. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/NEWS.txt +340 -0
  23. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/PLUGINS.txt +105 -0
  24. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/README.txt +81 -0
  25. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/ajax.html +143 -0
  26. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/annotating.html +75 -0
  27. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/arrow-down.gif +0 -0
  28. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/arrow-left.gif +0 -0
  29. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/arrow-right.gif +0 -0
  30. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/arrow-up.gif +0 -0
  31. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/basic.html +38 -0
  32. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth-1.json +4 -0
  33. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth-2.json +4 -0
  34. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth-3.json +4 -0
  35. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth-4.json +4 -0
  36. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth-5.json +4 -0
  37. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-eu-gdp-growth.json +4 -0
  38. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-japan-gdp-growth.json +4 -0
  39. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/data-usa-gdp-growth.json +4 -0
  40. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/dual-axis.html +39 -0
  41. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/graph-types.html +75 -0
  42. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/hs-2004-27-a-large_web.jpg +0 -0
  43. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/image.html +45 -0
  44. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/index.html +43 -0
  45. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/interacting.html +93 -0
  46. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/layout.css +6 -0
  47. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/navigate.html +118 -0
  48. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/selection.html +114 -0
  49. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/setting-options.html +65 -0
  50. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/stacking.html +77 -0
  51. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/thresholding.html +54 -0
  52. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/time.html +71 -0
  53. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/tracking.html +95 -0
  54. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/turning-series.html +98 -0
  55. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/visitors.html +90 -0
  56. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/examples/zooming.html +98 -0
  57. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/excanvas.js +1427 -0
  58. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/excanvas.min.js +1 -0
  59. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.colorhelpers.js +174 -0
  60. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.colorhelpers.min.js +1 -0
  61. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.crosshair.js +156 -0
  62. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.crosshair.min.js +1 -0
  63. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.image.js +237 -0
  64. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.image.min.js +1 -0
  65. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.js +2119 -0
  66. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.min.js +1 -0
  67. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.navigate.js +272 -0
  68. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.navigate.min.js +1 -0
  69. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.selection.js +299 -0
  70. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.selection.min.js +1 -0
  71. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.stack.js +152 -0
  72. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.stack.min.js +1 -0
  73. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.threshold.js +103 -0
  74. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.flot.threshold.min.js +1 -0
  75. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.js +4376 -0
  76. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/flot/jquery.min.js +19 -0
  77. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/how_are_we_doing.js +89 -0
  78. data/lib/generators/how_are_we_doing/install/templates/public/javascripts/jquery-ui-1.8.10.custom.min.js +99 -0
  79. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  80. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  81. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  82. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  83. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  84. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  85. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  86. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  87. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  88. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  89. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  90. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  91. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  92. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  93. data/lib/generators/how_are_we_doing/install/templates/public/stylesheets/ui-lightness/jquery-ui-1.8.10.custom.css +362 -0
  94. data/lib/how_are_we_doing/version.rb +1 -1
  95. data/lib/how_are_we_doing.rb +8 -0
  96. metadata +112 -14
@@ -0,0 +1,71 @@
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 [widget framework xyz]!
58
+
59
+ A: The problem is most likely within the framework, or your use of the
60
+ framework.
61
+
62
+ The only non-standard thing used by Flot is the canvas tag; otherwise
63
+ it is simply a series of absolute positioned divs within the
64
+ placeholder tag you put in. If this is not working, it's probably
65
+ because the framework you're using is doing something weird with the
66
+ DOM. As a last resort, you might try replotting and see if it helps.
67
+
68
+ If you find there's a specific thing we can do to Flot to help, feel
69
+ free to submit a bug report. Otherwise, you're welcome to ask for help
70
+ on the mailing list, but please don't submit a bug report to Flot -
71
+ try the framework instead.
@@ -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,15 @@
1
+ # Makefile for generating minified files
2
+
3
+ YUICOMPRESSOR_PATH=../yuicompressor-2.3.5.jar
4
+
5
+ # if you need another compressor path, just copy the above line to a
6
+ # file called Makefile.local, customize it and you're good to go
7
+ -include Makefile.local
8
+
9
+ .PHONY: all
10
+
11
+ # we cheat and process all .js files instead of listing them
12
+ all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js)))
13
+
14
+ %.min.js: %.js
15
+ java -jar $(YUICOMPRESSOR_PATH) $< -o $@
@@ -0,0 +1,340 @@
1
+ Flot 0.6
2
+ --------
3
+
4
+ API changes:
5
+
6
+ 1. Selection support has been moved to a plugin. Thus if you're
7
+ passing selection: { mode: something }, you MUST include the file
8
+ jquery.flot.selection.js after jquery.flot.js. This reduces the size
9
+ of base Flot and makes it easier to customize the selection as well as
10
+ improving code clarity. The change is based on patch from andershol.
11
+
12
+ 2. In the global options specified in the $.plot command,
13
+ "lines", "points", "bars" and "shadowSize" have been moved to a
14
+ sub-object called "series", i.e.
15
+
16
+ $.plot(placeholder, data, { lines: { show: true }})
17
+
18
+ should be changed to
19
+
20
+ $.plot(placeholder, data, { series: { lines: { show: true }}})
21
+
22
+ All future series-specific options will go into this sub-object to
23
+ simplify plugin writing. Backward-compatibility code is in place, so
24
+ old code should not break.
25
+
26
+ 3. "plothover" no longer provides the original data point, but instead
27
+ a normalized one, since there may be no corresponding original point.
28
+
29
+ 4. Due to a bug in previous versions of jQuery, you now need at least
30
+ jQuery 1.2.6. But if you can, try jQuery 1.3.2 as it got some
31
+ improvements in event handling speed.
32
+
33
+
34
+ Changes:
35
+
36
+ - Added support for disabling interactivity for specific data series
37
+ (request from Ronald Schouten and Steve Upton).
38
+
39
+ - Flot now calls $() on the placeholder and optional legend container
40
+ passed in so you can specify DOM elements or CSS expressions to make
41
+ it easier to use Flot with libraries like Prototype or Mootools or
42
+ through raw JSON from Ajax responses.
43
+
44
+ - A new "plotselecting" event is now emitted while the user is making
45
+ a selection.
46
+
47
+ - The "plothover" event is now emitted immediately instead of at most
48
+ 10 times per second, you'll have to put in a setTimeout yourself if
49
+ you're doing something really expensive on this event.
50
+
51
+ - The built-in date formatter can now be accessed as
52
+ $.plot.formatDate(...) (suggestion by Matt Manela) and even
53
+ replaced.
54
+
55
+ - Added "borderColor" option to the grid (patch from Amaury Chamayou
56
+ and patch from Mike R. Williamson).
57
+
58
+ - Added support for gradient backgrounds for the grid, take a look at
59
+ the "setting options" example (based on patch from Amaury Chamayou,
60
+ issue 90).
61
+
62
+ - Gradient bars (suggestion by stefpet).
63
+
64
+ - Added a "plotunselected" event which is triggered when the selection
65
+ is removed, see "selection" example (suggestion by Meda Ugo);
66
+
67
+ - The option legend.margin can now specify horizontal and vertical
68
+ margins independently (suggestion by someone who's annoyed).
69
+
70
+ - Data passed into Flot is now copied to a new canonical format to
71
+ enable further processing before it hits the drawing routines. As a
72
+ side-effect, this should make Flot more robust in the face of bad
73
+ data (and fixes issue 112).
74
+
75
+ - Step-wise charting: line charts have a new option "steps" that when
76
+ set to true connects the points with horizontal/vertical steps
77
+ instead of diagonal lines.
78
+
79
+ - The legend labelFormatter now passes the series in addition to just
80
+ the label (suggestion by Vincent Lemeltier).
81
+
82
+ - Horizontal bars (based on patch by Jason LeBrun).
83
+
84
+ - Support for partial bars by specifying a third coordinate, i.e. they
85
+ don't have to start from the axis. This can be used to make stacked
86
+ bars.
87
+
88
+ - New option to disable the (grid.show).
89
+
90
+ - Added pointOffset method for converting a point in data space to an
91
+ offset within the placeholder.
92
+
93
+ - Plugin system: register an init method in the $.flot.plugins array
94
+ to get started, see PLUGINS.txt for details on how to write plugins
95
+ (it's easy). There are also some extra methods to enable access to
96
+ internal state.
97
+
98
+ - Hooks: you can register functions that are called while Flot is
99
+ crunching the data and doing the plot. This can be used to modify
100
+ Flot without changing the source, useful for writing plugins. Some
101
+ hooks are defined, more are likely to come.
102
+
103
+ - Threshold plugin: you can set a threshold and a color, and the data
104
+ points below that threshold will then get the color. Useful for
105
+ marking data below 0, for instance.
106
+
107
+ - Stack plugin: you can specify a stack key for each series to have
108
+ them summed. This is useful for drawing additive/cumulative graphs
109
+ with bars and (currently unfilled) lines.
110
+
111
+ - Crosshairs plugin: trace the mouse position on the axes, enable with
112
+ crosshair: { mode: "x"} (see the new tracking example for a use).
113
+
114
+ - Image plugin: plot prerendered images.
115
+
116
+ - Navigation plugin for panning and zooming a plot.
117
+
118
+ - More configurable grid.
119
+
120
+ - Axis transformation support, useful for non-linear plots, e.g. log
121
+ axes and compressed time axes (like omitting weekends).
122
+
123
+ - Support for twelve-hour date formatting (patch by Forrest Aldridge).
124
+
125
+ - The color parsing code in Flot has been cleaned up and split out so
126
+ it's now available as a separate jQuery plugin. It's included inline
127
+ in the Flot source to make dependency managing easier. This also
128
+ makes it really easy to use the color helpers in Flot plugins.
129
+
130
+ Bug fixes:
131
+
132
+ - Fixed two corner-case bugs when drawing filled curves (report and
133
+ analysis by Joshua Varner).
134
+ - Fix auto-adjustment code when setting min to 0 for an axis where the
135
+ dataset is completely flat on that axis (report by chovy).
136
+ - Fixed a bug with passing in data from getData to setData when the
137
+ secondary axes are used (issue 65, reported by nperelman).
138
+ - Fixed so that it is possible to turn lines off when no other chart
139
+ type is shown (based on problem reported by Glenn Vanderburg), and
140
+ fixed so that setting lineWidth to 0 also hides the shadow (based on
141
+ problem reported by Sergio Nunes).
142
+ - Updated mousemove position expression to the latest from jQuery (bug
143
+ reported by meyuchas).
144
+ - Use CSS borders instead of background in legend (fix printing issue 25
145
+ and 45).
146
+ - Explicitly convert axis min/max to numbers.
147
+ - Fixed a bug with drawing marking lines with different colors
148
+ (reported by Khurram).
149
+ - Fixed a bug with returning y2 values in the selection event (fix
150
+ by exists, issue 75).
151
+ - Only set position relative on placeholder if it hasn't already a
152
+ position different from static (reported by kyberneticist, issue 95).
153
+ - Don't round markings to prevent sub-pixel problems (reported by Dan
154
+ Lipsitt).
155
+ - Make the grid border act similarly to a regular CSS border, i.e.
156
+ prevent it from overlapping the plot itself. This also fixes a
157
+ problem with anti-aliasing when the width is 1 pixel (reported by
158
+ Anthony Ettinger).
159
+ - Imported version 3 of excanvas and fixed two issues with the newer
160
+ version. Hopefully, this will make Flot work with IE8 (nudge by
161
+ Fabien Menager, further analysis by Booink, issue 133).
162
+ - Changed the shadow code for lines to hopefully look a bit better
163
+ with vertical lines.
164
+ - Round tick positions to avoid possible problems with fractions
165
+ (suggestion by Fred, issue 130).
166
+ - Made the heuristic for determining how many ticks to aim for a bit
167
+ smarter.
168
+ - Fix for uneven axis margins (report and patch by Paul Kienzle) and
169
+ snapping to ticks (concurrent report and patch by lifthrasiir).
170
+ - Fixed bug with slicing in findNearbyItems (patch by zollman).
171
+ - Make heuristic for x axis label widths more dynamic (patch by
172
+ rickinhethuis).
173
+ - Make sure points on top take precedence when finding nearby points
174
+ when hovering (reported by didroe, issue 224).
175
+
176
+ Flot 0.5
177
+ --------
178
+
179
+ Backwards API change summary: Timestamps are now in UTC. Also
180
+ "selected" event -> becomes "plotselected" with new data, the
181
+ parameters for setSelection are now different (but backwards
182
+ compatibility hooks are in place), coloredAreas becomes markings with
183
+ a new interface (but backwards compatibility hooks are in place).
184
+
185
+
186
+ Interactivity: added a new "plothover" event and this and the
187
+ "plotclick" event now returns the closest data item (based on patch by
188
+ /david, patch by Mark Byers for bar support). See the revamped
189
+ "interacting with the data" example for some hints on what you can do.
190
+
191
+ Highlighting: you can now highlight points and datapoints are
192
+ autohighlighted when you hover over them (if hovering is turned on).
193
+
194
+ Support for dual axis has been added (based on patch by someone who's
195
+ annoyed and /david). For each data series you can specify which axes
196
+ it belongs to, and there are two more axes, x2axis and y2axis, to
197
+ customize. This affects the "selected" event which has been renamed to
198
+ "plotselected" and spews out { xaxis: { from: -10, to: 20 } ... },
199
+ setSelection in which the parameters are on a new form (backwards
200
+ compatible hooks are in place so old code shouldn't break) and
201
+ markings (formerly coloredAreas).
202
+
203
+ Timestamps in time mode are now displayed according to
204
+ UTC instead of the time zone of the visitor. This affects the way the
205
+ timestamps should be input; you'll probably have to offset the
206
+ timestamps according to your local time zone. It also affects any
207
+ custom date handling code (which basically now should use the
208
+ equivalent UTC date mehods, e.g. .setUTCMonth() instead of
209
+ .setMonth().
210
+
211
+ Added support for specifying the size of tick labels (axis.labelWidth,
212
+ axis.labelHeight). Useful for specifying a max label size to keep
213
+ multiple plots aligned.
214
+
215
+ Markings, previously coloredAreas, are now specified as ranges on the
216
+ axes, like { xaxis: { from: 0, to: 10 }}. Furthermore with markings
217
+ you can now draw horizontal/vertical lines by setting from and to to
218
+ the same coordinate (idea from line support patch by by Ryan Funduk).
219
+
220
+ The "fill" option can now be a number that specifies the opacity of
221
+ the fill.
222
+
223
+ You can now specify a coordinate as null (like [2, null]) and Flot
224
+ will take the other coordinate into account when scaling the axes
225
+ (based on patch by joebno).
226
+
227
+ New option for bars "align". Set it to "center" to center the bars on
228
+ the value they represent.
229
+
230
+ setSelection now takes a second parameter which you can use to prevent
231
+ the method from firing the "plotselected" handler.
232
+
233
+ Using the "container" option in legend now overwrites the container
234
+ element instead of just appending to it (fixes infinite legend bug,
235
+ reported by several people, fix by Brad Dewey).
236
+
237
+ Fixed a bug in calculating spacing around the plot (reported by
238
+ timothytoe). Fixed a bug in finding max values for all-negative data
239
+ sets. Prevent the possibility of eternal looping in tick calculations.
240
+ Fixed a bug when borderWidth is set to 0 (reported by
241
+ Rob/sanchothefat). Fixed a bug with drawing bars extending below 0
242
+ (reported by James Hewitt, patch by Ryan Funduk). Fixed a
243
+ bug with line widths of bars (reported by MikeM). Fixed a bug with
244
+ 'nw' and 'sw' legend positions. Improved the handling of axis
245
+ auto-scaling with bars. Fixed a bug with multi-line x-axis tick
246
+ labels (reported by Luca Ciano). IE-fix help by Savage Zhang.
247
+
248
+
249
+ Flot 0.4
250
+ --------
251
+
252
+ API changes: deprecated axis.noTicks in favor of just specifying the
253
+ number as axis.ticks. So "xaxis: { noTicks: 10 }" becomes
254
+ "xaxis: { ticks: 10 }"
255
+
256
+ Time series support. Specify axis.mode: "time", put in Javascript
257
+ timestamps as data, and Flot will automatically spit out sensible
258
+ ticks. Take a look at the two new examples. The format can be
259
+ customized with axis.timeformat and axis.monthNames, or if that fails
260
+ with axis.tickFormatter.
261
+
262
+ Support for colored background areas via grid.coloredAreas. Specify an
263
+ array of { x1, y1, x2, y2 } objects or a function that returns these
264
+ given { xmin, xmax, ymin, ymax }.
265
+
266
+ More members on the plot object (report by Chris Davies and others).
267
+ "getData" for inspecting the assigned settings on data series (e.g.
268
+ color) and "setData", "setupGrid" and "draw" for updating the contents
269
+ without a total replot.
270
+
271
+ The default number of ticks to aim for is now dependent on the size of
272
+ the plot in pixels. Support for customizing tick interval sizes
273
+ directly with axis.minTickSize and axis.tickSize.
274
+
275
+ Cleaned up the automatic axis scaling algorithm and fixed how it
276
+ interacts with ticks. Also fixed a couple of tick-related corner case
277
+ bugs (one reported by mainstreetmark, another reported by timothytoe).
278
+
279
+ The option axis.tickFormatter now takes a function with two
280
+ parameters, the second parameter is an optional object with
281
+ information about the axis. It has min, max, tickDecimals, tickSize.
282
+
283
+ Added support for segmented lines (based on patch from Michael
284
+ MacDonald) and for ignoring null and bad values (suggestion from Nick
285
+ Konidaris and joshwaihi).
286
+
287
+ Added support for changing the border width (joebno and safoo).
288
+ Label colors can be changed via CSS by selecting the tickLabel class.
289
+
290
+ Fixed a bug in handling single-item bar series (reported by Emil
291
+ Filipov). Fixed erratic behaviour when interacting with the plot
292
+ with IE 7 (reported by Lau Bech Lauritzen). Prevent IE/Safari text
293
+ selection when selecting stuff on the canvas.
294
+
295
+
296
+
297
+ Flot 0.3
298
+ --------
299
+
300
+ This is mostly a quick-fix release because jquery.js wasn't included
301
+ in the previous zip/tarball.
302
+
303
+ Support clicking on the plot. Turn it on with grid: { clickable: true },
304
+ then you get a "plotclick" event on the graph placeholder with the
305
+ position in units of the plot.
306
+
307
+ Fixed a bug in dealing with data where min = max, thanks to Michael
308
+ Messinides.
309
+
310
+ Include jquery.js in the zip/tarball.
311
+
312
+
313
+ Flot 0.2
314
+ --------
315
+
316
+ Added support for putting a background behind the default legend. The
317
+ default is the partly transparent background color. Added
318
+ backgroundColor and backgroundOpacity to the legend options to control
319
+ this.
320
+
321
+ The ticks options can now be a callback function that takes one
322
+ parameter, an object with the attributes min and max. The function
323
+ should return a ticks array.
324
+
325
+ Added labelFormatter option in legend, useful for turning the legend
326
+ labels into links.
327
+
328
+ Fixed a couple of bugs.
329
+
330
+ The API should now be fully documented.
331
+
332
+ Patch from Guy Fraser to make parts of the code smaller.
333
+
334
+ API changes: Moved labelMargin option to grid from x/yaxis.
335
+
336
+
337
+ Flot 0.1
338
+ --------
339
+
340
+ First public release.