Make notes GPX valid and add useful official elements
The "creator" attribute is required and "extensions" is the correct
name of this element.
Validated with SAXCount from the xerces-c package:
$ SAXCount -v=always -n -s -f notes.gpx
Original error messages:
Error at file /home/markus/notes.gpx, line 2, char 171
Message: no declaration found for element 'gpx'
Error at file /home/markus/notes.gpx, line 2, char 171
Message: attribute 'version' is not declared for element 'gpx'
After adding the "xmlns" attribute:
Error at file /home/markus/notes.gpx, line 2, char 213
Message: missing required attribute 'creator'
Error at file /home/markus/notes.gpx, line 18, char 14
Message: no declaration found for element 'extension'
Error at file /home/markus/notes.gpx, line 26, char 7
Message: element 'extension' is not allowed for content model '(ele?,time?,magvar?,geoidheight?,name?,cmt?,desc?,src?,link*,sym?,type?,fix?,sat?,hdop?,vdop?,pdop?,ageofdgpsdata?,dgpsid?,extensions?)'
The current errors now are caused by the missing XML schema for the
extensions.
Tom Hughes [Wed, 22 Jul 2015 18:02:31 +0000 (19:02 +0100)]
Make switch to compact and small modes dynamic
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.
Tom Hughes [Mon, 20 Jul 2015 20:32:34 +0000 (21:32 +0100)]
Require a valid session token to resend a confirmation
Make user#confirm_resend require a valid token in the session
that matches the requested user, and ensure trying to login as
an unconfirmed user sets such a token.
Tom Hughes [Sun, 28 Jun 2015 09:35:44 +0000 (10:35 +0100)]
Use a fixed name for the asset manifest
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.
Matt Amos [Sat, 13 Jun 2015 09:59:11 +0000 (10:59 +0100)]
Fix bug allowing created elements to reference deleted ones
The bug allows a newly-created element to refer to a deleted one
if the transactions for both overlap. Precisely, the issue is that
the check that an element exists does not prevent a concurrent
transaction from altering that row.
Because "deleting" an element in the OSM database does not remove
the row, we cannot rely on FK constraints to ensure the correct
behaviour. Instead, this fix relies on manually locking referenced
elements.
Note that this "fix" is suboptimal, as it does not allow any
updates to the referenced elements. Updates which do not delete
the row could safely be done, but will be prevented.
Also, it's not clear what the negative performance impact of this
change will be.
Tom Hughes [Thu, 11 Jun 2015 20:16:29 +0000 (21:16 +0100)]
Improve favicons
Following http://stackoverflow.com/questions/2268204/favicon-dimensions
advice on the best range of icons to offer, and using the site linked
there to generate everything.
Tom Hughes [Sun, 31 May 2015 13:53:02 +0000 (14:53 +0100)]
Upgrade vagrant config to use Ubuntu 14.04
This uses the sputnik13/trusty64 image rather then the official
ubuntu/trusty64 image in order to get libvirt provider support as
wall as virtualbox provider support.
Tom Hughes [Fri, 15 May 2015 14:34:12 +0000 (15:34 +0100)]
More improvements to mediawiki fragment escaping
It turns out that the PHP urlencode encodes more characters than
the ruby URI.encode does by default, so specify our own characters
to encode based on http://php.net/manual/en/function.urlencode.php
with the extra exclusion of colon, which the mediawiki code reverses
after the encoding is done.