Convert to and add selenium integration tests
Merge pull request #144 from prometheus/testify

Convert integration specs to selenium
Merge branch 'master' into set-y-axis
New styling for dashboard#show
Merge pull request #148 from prometheus/hidden-legend

Dashboard UI Redesign
Fix Rickshaw memory leaks.

This fixes the majority of (if not all) Rickshaw memory leaks, which are
the ones we are most concerned with when a dashboard is displayed in
fullscreen TV mode and the graphs are continuously refreshing.

Details:

- This goes back to approach of always drawing the entire graph upon any
  change to it. This is saner, as we can always start out with a
  known-good, blank slate.

- To actually get to a blank slate, we need to attach the Rickshaw graph
  to an element one level deeper than before, which we can remove and
  recreate completely upon every redraw, so all attached event handlers
  are removed (mainly hover-detail).

- When loading a medium-sized dashboard and redrawing graphs 40x:
  - OLD: 31MB -> 130MB (99MB growth)
  - NEW: 31MB ->  33MB (2MB growth)

This fixes https://github.com/prometheus/promdash/issues/64
This fixes https://github.com/prometheus/promdash/issues/113
Merge pull request #156 from prometheus/fix-memory-leaks

Fix Rickshaw memory leaks.
Move menu bar title attributes from icons to buttons.

This makes it easier for users to get the title texts to appear. It also
corrects one of the title texts.
Display hover detail labels as table.
Merge pull request #158 from prometheus/labels-table

Display hover detail labels as table.
Merge branch 'master' into set-y-axis
Add hostname and hostnamef filters

In most cases, the unqualifed hostname is enough to have a unique
identifier. The full hostnames usually repeat some common suffix/port.
This change adds the semantics of the unix "hostname" and "hostname -f"
commands.

Examples:

    url = "http://foo.bar.baz.example.org:5030/metrics"

    {{ url | hostnamef }} // foo.bar.baz.example.org:5030
    {{ url | hostname }}  // foo
Add generic data migrator

In order to be able to migrate the json configurations of dashboards,
this change adds a way to easily get access to the fields. The
implementaion makes it easy to extend the provided helpers in the future
to change other fields or tables as well.

Example usage:

    Migrator.run Migrator::Widget do |widget|
      widget['foo'] = widget['bar']['baz']
    end
Add migration to move global stacked setting

With the introduction of multi-axes support, the stacked option was
moved.
Add additional styles for new ui, and tooltips on widget buttons.
Merge pull request #159 from prometheus/new-style-touchups

Add styling fixes and widget tooltips to new UI.
Add per-expression legend string functionality
Merge pull request #161 from prometheus/per-expression-legends

Per-expression legend string
Change alert() -> console.log() for metrics load errors.
Add directory organization to promdash