Implement our own matching algorithm rather than trying to
patch the http_accept_language one and make sure everything is
using it in a consistent way.
Fixes#1125
Add a URI sanitizer to the rack stack avoid rack throwing
exceptions on the server side, and ignore errors decoding
components on the client side.
Fixes#1101
The point where we need to switch between normal mode, compact mode
and small mode varies due to different string lengths in different
languages, but that can't be expressed by a media query, so use some
javascript to update as the window size changes.
Fixes#1014
Because we deploy by updating an existing environment the default
sprockets strategy gives us multiple randomly named manifest files
and it will then pick one arbitrarily when starting up.
The issues we had before seem to be fixed now, so drop our
custom version and go back to the upstream one with some minor
monkey patching tweaks.
This also fixes the sprockets dependencies to correctly rebuild
the javascript when the translations change.
This replaces OpenID authentication, which is going away soon, but
provides an upgrade path where we can migrate users that already have
a Google OpenID setup to the new system transparently.
The soft limit won't work with passenger 5 and causes spurious
errors to be reported back to browsers, and in any case it doesn't
actually seem to be necessary anymore.
The default rails scheme for highlighting errors is to wrap the
field in a div, but that changes the structure of the page and can
change the meaning of CSS rules applied to the fields.
As an alternative we now apply a class to the fields, and use that
in the CSS to apply a highlight.