graphite-project/graphite-web — pull request #118 by derpston (2012-12-11 21:15:12+00:00)
Title: Greater configurability for the 'connected' lineMode and keepLastValue() function.

Sometimes it is desirable to draw a connected line over gaps in data, but only when the gaps are small. If this is not configurable, it is an all-or-nothing thing.

Using keepLastValue() will obscure the fact that the flow of data has stopped, and this will only be apparent when the user notices a line is unusually flat, or worse, when no data has been received for the entire duration of the graph.

These commits do two things:

* Add a parameter to keepLastValue() for optionally specifying the maximum number of empty/None datapoints that may be overwritten with the last non-None datapoint. This allows the user to connect over gaps of N missing values, but no more. The default for this option is infinity, meaning this new behaviour will not affect existing users.

* Add an option that applies only when the lineMode is set to 'connected', which specifies the maximum number of None values to skip over when drawing a connected line. The default for this option is infinity, meaning this new behaviour will not affect existing users.

Both of these changes come with appropriate UI/menu/input box changes.

These commits accomplish the same thing, but one applies to an entire graph and the other applies on a target-by-target basis.

Concerns:
* Adding a "Connected Line Limit" option seems a little hacky, but I don't see another neat way to parameterise the arguments to lineMode. (See image)

![connected_line_limit](https://f.cloud.github.com/assets/801467/6805/8aab328e-43d7-11e2-82f9-37ff5b792a26.png)

Feedback appreciated!