Pages now feed back into the layout to set the content of the heading
block so we can't cache any page which has a layout as that would mean
the heading wouldn't appear when the cached page was used.
I set out to do a quick and dirty typography overhaul to make things
more consistent and a bit cleaner, but I kept running into things I
didn't like, so this lead me down something of a rabbit hole of design
tweaks to the OSM site.
Goals here are to have better content hierarchy, better vertical
rhythm, more consistent UI, cleaner markup with less tables, all while
keeping the basics pretty much intact. There are a lot of things I
didn't touch even though they need to be updated (lots of tables where
stuff shouldn't be tables, mostly).
Basic overview of changes:
I added a new persistent header that helps segment pages. It's now
a lot easier to know what you're looking at. The header has a page
title, a description, plus a submenu of actions.
There is now a pattern of 20px/10px margins and padding for more
rhythm and breathing room throughout the site.
I know there are other problems here or things I've missed - would
love another set of eyes to look over this! I am still getting comfortable
working on the site - it's my first time ever digging into a ruby or rails
so I'm not familiar with the templating language yet.
Instead of storing the auto-generated meta information nearby_place
in the database, just look up the information on the fly when needed
and cache it for performance.
Unfortunately if a PUT or POST request that has a body fails to
read it then Apache will sometimes fail to return the response it
is given to the client properly, instead erroring:
https://issues.apache.org/bugzilla/show_bug.cgi?id=44782
To work round this we call rewind on the body for every request using
a filter, which forces it to be fetched from Apache into a file.
There seems to be some sort problem with ruby 1.9 where a response
body that is a single line with no newline causes the response not
to be sent properly.
Both Google and Yahoo guarantee that the email address they return
during the OpenID authentication are emails that they have already
verified:
http://stackoverflow.com/q/5639419
Therefore special case these OpenID providers and automatically
activate the new users account without requiring a separate email
verification step.
This therefore reduces the signup procedure by one step and makes
it easier for new users of these OpenID providers, which cover the
majority of users.
In site/_resize.html.erb and site/_search.html.erb, a
params[:action] conditional is used to include code that
should only run on the index action -- but it should be run
on the export action too. Cleanest fix is to eliminate that
action entirely.
Modern browsers are quite happy showing far more than 100 features in
the data browser, so increase the limit to 2000 by default, but keep it
restricted to 500 for IE8 and 100 for older IEs.