Merge 12304:14009 from trunk.

This commit is contained in:
Tom Hughes 2009-03-08 13:02:37 +00:00
commit c8ee135104
36 changed files with 174 additions and 130 deletions

View file

@ -55,7 +55,7 @@ class ApiController < ApplicationController
points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => TRACEPOINTS_PER_PAGE, :order => "timestamp DESC" ) points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => TRACEPOINTS_PER_PAGE, :order => "timestamp DESC" )
doc = XML::Document.new doc = XML::Document.new
doc.encoding = 'UTF-8' doc.encoding = XML::Encoding::UTF_8
root = XML::Node.new 'gpx' root = XML::Node.new 'gpx'
root['version'] = '1.0' root['version'] = '1.0'
root['creator'] = 'OpenStreetMap.org' root['creator'] = 'OpenStreetMap.org'

View file

@ -29,7 +29,7 @@ class GeocoderController < ApplicationController
if results_count == 1 if results_count == 1
position = results.collect { |s| s[:results] }.compact.flatten[0] position = results.collect { |s| s[:results] }.compact.flatten[0]
page.call "setPosition", position[:lat], position[:lon], position[:zoom] page.call "setPosition", position[:lat].to_f, position[:lon].to_f, position[:zoom].to_i
else else
page.call "openSidebar" page.call "openSidebar"
end end

View file

@ -11,19 +11,24 @@ class UserController < ApplicationController
def save def save
@title = 'create account' @title = 'create account'
@user = User.new(params[:user])
@user.visible = true if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"})
@user.data_public = true
@user.description = "" if @user.description.nil?
@user.creation_ip = request.remote_ip
if @user.save
flash[:notice] = "User was successfully created. Check your email for a confirmation note, and you\'ll be mapping in no time :-)<br>Please note that you won't be able to login until you've received and confirmed your email address."
Notifier.deliver_signup_confirm(@user, @user.tokens.create)
redirect_to :action => 'login'
else
render :action => 'new' render :action => 'new'
else
@user = User.new(params[:user])
@user.visible = true
@user.data_public = true
@user.description = "" if @user.description.nil?
@user.creation_ip = request.remote_ip
if @user.save
flash[:notice] = "User was successfully created. Check your email for a confirmation note, and you\'ll be mapping in no time :-)<br>Please note that you won't be able to login until you've received and confirmed your email address."
Notifier.deliver_signup_confirm(@user, @user.tokens.create)
redirect_to :action => 'login'
else
render :action => 'new'
end
end end
end end

View file

@ -52,8 +52,7 @@ class UserPreferenceController < ApplicationController
# update the entire set of preferences # update the entire set of preferences
def update def update
p = XML::Parser.new p = XML::Parser.string(request.raw_post)
p.string = request.raw_post
doc = p.parse doc = p.parse
prefs = [] prefs = []

View file

@ -53,8 +53,7 @@ class Changeset < ActiveRecord::Base
def self.from_xml(xml, create=false) def self.from_xml(xml, create=false)
begin begin
p = XML::Parser.new p = XML::Parser.string(xml)
p.string = xml
doc = p.parse doc = p.parse
cs = Changeset.new cs = Changeset.new

View file

@ -64,8 +64,7 @@ class Node < ActiveRecord::Base
# Read in xml as text and return it's Node object representation # Read in xml as text and return it's Node object representation
def self.from_xml(xml, create=false) def self.from_xml(xml, create=false)
begin begin
p = XML::Parser.new p = XML::Parser.string(xml)
p.string = xml
doc = p.parse doc = p.parse
doc.find('//osm/node').each do |pt| doc.find('//osm/node').each do |pt|

View file

@ -27,8 +27,7 @@ class Relation < ActiveRecord::Base
def self.from_xml(xml, create=false) def self.from_xml(xml, create=false)
begin begin
p = XML::Parser.new p = XML::Parser.string(xml)
p.string = xml
doc = p.parse doc = p.parse
doc.find('//osm/relation').each do |pt| doc.find('//osm/relation').each do |pt|

View file

@ -27,8 +27,7 @@ class Way < ActiveRecord::Base
def self.from_xml(xml, create=false) def self.from_xml(xml, create=false)
begin begin
p = XML::Parser.new p = XML::Parser.string(xml)
p.string = xml
doc = p.parse doc = p.parse
doc.find('//osm/way').each do |pt| doc.find('//osm/way').each do |pt|

View file

@ -14,7 +14,7 @@
</tr> </tr>
<% unless way_details.containing_relation_members.empty? %> <% unless way_details.containing_relation_members.empty? %>
<tr> <tr valign="top">
<th>Part of:</th> <th>Part of:</th>
<td> <td>
<table padding="0"> <table padding="0">

View file

@ -17,27 +17,23 @@
<% if @entries.empty? %> <% if @entries.empty? %>
<p>No diary entries</p> <p>No diary entries</p>
<% else %> <% else %>
<p>Recent diary entries:</p>
<hr />
<%= render :partial => 'diary_entry', :collection => @entries %>
<p>Recent diary entries:</p> <%= link_to "Older Entries", { :page => @entry_pages.current.next } if @entry_pages.current.next %>
<hr /> <% if @entry_pages.current.next and @entry_pages.current.previous %>|<% end %>
<%= render :partial => 'diary_entry', :collection => @entries %> <%= link_to "Newer Entries", { :page => @entry_pages.current.previous } if @entry_pages.current.previous %>
<%= link_to "Older Entries", { :page => @entry_pages.current.next } if @entry_pages.current.next %> <br />
<% if @entry_pages.current.next and @entry_pages.current.previous %>
|
<% end %>
<%= link_to "Newer Entries", { :page => @entry_pages.current.previous } if @entry_pages.current.previous %>
<br />
<% end %> <% end %>
<%= rss_link_to :action => 'rss' %> <%= rss_link_to :action => 'rss' %>
<% content_for :head do %>
<%= auto_discovery_link_tag :atom, :action => 'rss' %> <%= auto_discovery_link_tag :atom, :action => 'rss' %>
<% end %>
<br />
<br />

View file

@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<%= javascript_include_tag 'prototype' %> <%= javascript_include_tag 'prototype' %>
<%= javascript_include_tag 'site' %> <%= javascript_include_tag 'site' %>
@ -8,6 +8,7 @@
<%= stylesheet_link_tag 'print', :media => "print" %> <%= stylesheet_link_tag 'print', :media => "print" %>
<%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => "/opensearch/osm.xml" }) %> <%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => "/opensearch/osm.xml" }) %>
<%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %> <%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %>
<%= yield :head %>
<title>OpenStreetMap<%= ' | '+ h(@title) if @title %></title> <title>OpenStreetMap<%= ' | '+ h(@title) if @title %></title>
</head> </head>
<body> <body>
@ -69,11 +70,19 @@
<% unless @user %> <% unless @user %>
<div id="intro"> <div id="intro">
OpenStreetMap is a free editable map of the whole world. It is made by people like you. <p>
<p/> OpenStreetMap is a free editable map of the whole world. It
OpenStreetMap allows you to view, edit and use geographical data in a collaborative way from anywhere on Earth. is made by people like you.
<p/> </p>
OpenStreetMap's hosting is kindly supported by the <a href="http://www.vr.ucl.ac.uk">UCL VR Centre</a> and <a href="http://www.bytemark.co.uk">bytemark</a>. <p>
OpenStreetMap allows you to view, edit and use geographical
data in a collaborative way from anywhere on Earth.
</p>
<p>
OpenStreetMap's hosting is kindly supported by the
<a href="http://www.vr.ucl.ac.uk">UCL VR Centre</a> and
<a href="http://www.bytemark.co.uk">bytemark</a>.
</p>
</div> </div>
<% end %> <% end %>
@ -89,6 +98,14 @@
</div> </div>
<% end %> <% end %>
<% if false %>
<div id="donate">
Support OpenStreetMap by
<a href="http://donate.openstreetmap.org/">donating</a>
to the Hardware Upgrade Fund.
</div>
<% end %>
<div id="left_menu" class="left_menu"> <div id="left_menu" class="left_menu">
<a href="http://wiki.openstreetmap.org">Help &amp; Wiki</a><br /> <a href="http://wiki.openstreetmap.org">Help &amp; Wiki</a><br />
<a href="http://www.opengeodata.org/">News blog</a><br /> <a href="http://www.opengeodata.org/">News blog</a><br />
@ -97,21 +114,16 @@
</div> </div>
<%= yield :optionals %> <%= yield :optionals %>
<div id="cclogo">
<center>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <center>
<input type="hidden" name="cmd" value="_s-xclick" /> <div class="button" style="width: 115px">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" style="border: none;" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" /> <a href="http://donate.openstreetmap.org/"><img src="/images/donate.png" border="0" alt="Make a Donation" /></a>
<img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1" /> </div>
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----" />
</form>
<%= link_to (image_tag "cc_button.png", :alt => "CC by-sa 2.0", :border => "0"), "http://creativecommons.org/licenses/by-sa/2.0/" %>
</center>
</div>
<div id="cclogo" class="button" style="width: 88px">
<%= link_to image_tag("cc_button.png", :alt => "CC by-sa 2.0", :border => "0"), "http://creativecommons.org/licenses/by-sa/2.0/" %>
</div>
</center>
</div> </div>
</body> </body>
</html> </html>

View file

@ -1,12 +1,16 @@
<p>Hi,</p> <p>Hi there!</p>
<p>Someone (hopefully you) would like to create an account over at <p>Someone (hopefully you) would like to create an account over at
<%= SERVER_URL %>.</p> <%= SERVER_URL %>.</p>
<p>If this is you, please click the link below to confirm that account.</p> <p>If this is you, welcome! Please click the link below to confirm that account and read on for more information about OpenStreetMap</p>
<p><a href="<%= @url %>"><%= @url %></a></p> <p><a href="<%= @url %>"><%= @url %></a></p>
<p>You can watch an introductory video to OpenStreetMap <a href="http://showmedo.com/videos/video?name=1800000&fromSeriesID=180">video here</a>. There are more <a href="http://showmedo.com/videos/series?name=mS2P1ZqS6">videos here</a>.
Get reading about OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">on the wiki</p> or <a href="http://www.opengeodata.org/">the opengeodata blog</a> which has <a href="http://www.opengeodata.org/?cat=13">podcasts to listen to</a> also!
<p>You may also want to <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">sign up to the OpenStreetMap wiki</a>.</p> <p>You may also want to <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">sign up to the OpenStreetMap wiki</a>.</p>
<p>It is recommended that you create a user wiki page, which includes category tags noting where you are, such as <a href="http://wiki.openstreetmap.org/index.php/Category:Users_in_London">[[Category:Users_in_London]]</a>.</p> <p>It is recommended that you create a user wiki page, which includes category tags noting where you are, such as <a href="http://wiki.openstreetmap.org/index.php/Category:Users_in_London">[[Category:Users_in_London]]</a>.</p>

View file

@ -1,15 +1,32 @@
Hi, Hi there!
Someone (hopefully you) would like to create an account over at Someone (hopefully you) would like to create an account over at
<%= SERVER_URL %> <%= SERVER_URL %>
If this is you, please click the link below to confirm that account. If this is you, welcome! Please click the link below to confirm that
account and read on for more information about OpenStreetMap.
<%= @url %> <%= @url %>
You can watch an introductory video to OpenStreetMap here:
http://showmedo.com/videos/video?name=1800000&fromSeriesID=180
There are more videos here:
http://showmedo.com/videos/series?name=mS2P1ZqS6
Get reading about OpenStreetMap on the wiki:
http://wiki.openstreetmap.org/wiki/Beginners%27_Guide
OpenGeoData.org is OpenStreetMap's blog, and it has podcasts too:
http://www.opengeodata.org/
You may also want to sign up to the OpenStreetMap wiki at: You may also want to sign up to the OpenStreetMap wiki at:
http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page
It is recommended that you create a user wiki page, which includes It is recommended that you create a user wiki page, which includes
category tags noting where you are, such as [[Category:Users_in_London]]. category tags noting where you are, such as [[Category:Users_in_London]].

View file

@ -11,7 +11,7 @@
else if (zoomlevel<13) { var imgname = 'keymapnik'+zoomlevel+'.png'; } else if (zoomlevel<13) { var imgname = 'keymapnik'+zoomlevel+'.png'; }
else { var imgname = 'keymapnik13.png'; } else { var imgname = 'keymapnik13.png'; }
updateSidebar("Map key", "<p><img src='images/"+imgname+"' /></p>"); updateSidebar("Map key", "<p><img src='images/"+imgname+"' /><\/p>");
openSidebar({ width: "210px" }); openSidebar({ width: "210px" });
} }

View file

@ -1,7 +1,7 @@
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
function startSearch() { function startSearch() {
updateSidebar("Search Results", "<p class='search_results_entry'>Searching...</p>"); updateSidebar("Search Results", "<p class='search_results_entry'>Searching...<\/p>");
$("search_field").style.display = "none"; $("search_field").style.display = "none";
$("search_active").style.display = "inline"; $("search_active").style.display = "inline";
@ -34,14 +34,14 @@
<span class="oboxheader">Search</span> <span class="oboxheader">Search</span>
<span class="whereami"><a href="javascript:describeLocation()">Where am I?</a></span> <span class="whereami"><a href="javascript:describeLocation()">Where am I?</a></span>
<div class="search_form"> <div class="search_form">
<span id="search_field"> <div id="search_field">
<% form_remote_tag(:loading => "startSearch()", <% form_remote_tag(:loading => "startSearch()",
:complete => "endSearch()", :complete => "endSearch()",
:url => { :controller => :geocoder, :action => :search }) do %> :url => { :controller => :geocoder, :action => :search }) do %>
<%= text_field_tag :query, h(params[:query]) %> <%= text_field_tag :query, h(params[:query]) %>
<%= submit_tag "Go" %> <%= submit_tag "Go" %>
<% end %> <% end %>
</span> </div>
<p id="search_active">Searching...</p> <p id="search_active">Searching...</p>
</div> </div>
<p class="search_help"> <p class="search_help">

View file

@ -21,17 +21,15 @@
</div> </div>
<div id="attribution"> <div id="attribution">
<table width="100%"> <table width="100%">
<tr> <tr>
<td align="left">http://creativecommons.org/licenses/by-sa/2.0/</td> <td align="left">http://creativecommons.org/licenses/by-sa/2.0/</td>
<td align="right">http://openstreetmap.org/</td> <td align="right">http://openstreetmap.org/</td>
</tr> </tr>
<tr> <tr>
<td colspan="2" align="center"> <td colspan="2" align="center">Licensed under the Creative Commons Attribution-Share Alike 2.0 license by the OpenStreetMap project and its contributors.</td>
Licensed under the Creative Commons Attribution-Share Alike 2.0 license </tr>
by the OpenStreetMap project and its contributors. </table>
</td>
</table>
</div> </div>
<% if params['mlon'] and params['mlat'] %> <% if params['mlon'] and params['mlat'] %>

View file

@ -1,6 +1,8 @@
<h1><%= h(@title) %></h1> <h1><%= h(@title) %></h1>
<% content_for :head do %>
<%= auto_discovery_link_tag :atom, :action => 'georss', :display_name => @display_name, :tag => @tag %> <%= auto_discovery_link_tag :atom, :action => 'georss', :display_name => @display_name, :tag => @tag %>
<% end %>
<p> <p>
<%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %> <%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %>

View file

@ -1,15 +1,13 @@
<h1>Login:</h1><br /> <h1>Login</h1>
Please login or <%= link_to 'create an account', :controller => 'user', :action => 'new' %>.<br />
<p>Please login or <%= link_to 'create an account', :controller => 'user', :action => 'new' %>.</p>
<% form_tag :action => 'login' do %> <% form_tag :action => 'login' do %>
<%= hidden_field_tag('referer', h(params[:referer])) %> <%= hidden_field_tag('referer', h(params[:referer])) %>
<br/>
<table> <table>
<tr><td class="fieldName">Email Address or username:</td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255}) %></td></tr> <tr><td class="fieldName">Email Address or Username:</td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255}) %></td></tr>
<tr><td class="fieldName">Password:</td><td><%= password_field('user', 'password',{:size => 28, :maxlength => 255}) %> <span class="minorNote">(<%= link_to 'Lost your password?', :controller => 'user', :action => 'lost_password' %>)</span></td></tr> <tr><td class="fieldName">Password:</td><td><%= password_field('user', 'password',{:size => 28, :maxlength => 255}) %> <span class="minorNote">(<%= link_to 'Lost your password?', :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
<tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr> <tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td></td><td align="right"><%= submit_tag 'Login' %></td></tr> <tr><td></td><td align="right"><%= submit_tag 'Login' %></td></tr>
</table> </table>
<br />
<% end %> <% end %>

View file

@ -1,8 +1,28 @@
<h1>Create a user account</h1><br> <h1>Create a User Account</h1>
Fill in the form and we'll send you a quick email to activate your account.
<br><br>
By creating an account, you agree that all work uploaded to openstreetmap.org and all data created by use of any tools which connect to openstreetmap.org is to be (non-exclusively) licensed under <a href="http://creativecommons.org/licenses/by-sa/2.0/">this Creative Commons license (by-sa)</a>.<br><br> <% if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"}) %>
<p>Unfortunately we are not currently able to create an account for
you automatically.
</p>
<p>Please contact the <a href="mailto:webmaster@openstreetmap.org">webmaster</a>
to arrange for an account to be created - we will try and deal with
the request as quickly as possible.
</p>
<% else %>
<p>Fill in the form and we'll send you a quick email to activate your
account.
</p>
<p>By creating an account, you agree that all work uploaded to
openstreetmap.org and all data created by use of any tools which
connect to openstreetmap.org is to be (non-exclusively) licensed under
<a href="http://creativecommons.org/licenses/by-sa/2.0/">this Creative
Commons license (by-sa)</a>.
</p>
<%= error_messages_for 'user' %> <%= error_messages_for 'user' %>
@ -20,9 +40,6 @@ By creating an account, you agree that all work uploaded to openstreetmap.org an
<tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr> <tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td></td><td align=right><input type="submit" value="Signup"></td></tr> <tr><td></td><td align=right><input type="submit" value="Signup"></td></tr>
</table> </table>
<br> <% end %>
<br>
<!--
See also <a href="http://wiki.openstreetmap.org/index.php/Creating_an_Account" title="wiki help information about this screen">'Creating an Account' help</a>
-->
<% end %> <% end %>

View file

@ -46,7 +46,7 @@ Rails::Initializer.run do |config|
# config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
# config.gem "aws-s3", :lib => "aws/s3" # config.gem "aws-s3", :lib => "aws/s3"
config.gem 'composite_primary_keys', :version => '1.1.0' config.gem 'composite_primary_keys', :version => '1.1.0'
config.gem 'libxml-ruby', :version => '0.9.4', :lib => 'libxml' config.gem 'libxml-ruby', :version => '>= 1.0.0', :lib => 'libxml'
config.gem 'rmagick', :lib => 'RMagick' config.gem 'rmagick', :lib => 'RMagick'
config.gem 'mysql' config.gem 'mysql'

View file

@ -1,9 +1,5 @@
# This is required otherwise libxml writes out memory errors to # This is required otherwise libxml writes out memory errors to
# the standard output and exits uncleanly # the standard output and exits uncleanly
# Changed method due to deprecation of the old register_error_handler
# http://libxml.rubyforge.org/rdoc/classes/LibXML/XML/Parser.html#M000076
# So set_handler is used instead
# http://libxml.rubyforge.org/rdoc/classes/LibXML/XML/Error.html#M000334
LibXML::XML::Error.set_handler do |message| LibXML::XML::Error.set_handler do |message|
raise message raise message
end end

View file

@ -3,9 +3,9 @@ class PopulateNodeTagsAndRemove < ActiveRecord::Migration
have_nodes = select_value("SELECT count(*) FROM current_nodes").to_i != 0 have_nodes = select_value("SELECT count(*) FROM current_nodes").to_i != 0
if have_nodes if have_nodes
prefix = File.join Dir.tmpdir, "019_populate_node_tags_and_remove.#{$$}." prefix = File.join Dir.tmpdir, "020_populate_node_tags_and_remove.#{$$}."
cmd = "db/migrate/019_populate_node_tags_and_remove_helper" cmd = "db/migrate/020_populate_node_tags_and_remove_helper"
src = "#{cmd}.c" src = "#{cmd}.c"
if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then
system 'cc -O3 -Wall `mysql_config --cflags --libs` ' + system 'cc -O3 -Wall `mysql_config --cflags --libs` ' +

View file

@ -18,7 +18,7 @@ class DiffReader
# in OsmChange format. All diffs must be limited to a single changeset # in OsmChange format. All diffs must be limited to a single changeset
# given in +changeset+. # given in +changeset+.
def initialize(data, changeset) def initialize(data, changeset)
@reader = XML::Reader.new data @reader = XML::Reader.string(data)
@changeset = changeset @changeset = changeset
end end
@ -26,11 +26,12 @@ class DiffReader
# Reads the next element from the XML document. Checks the return value # Reads the next element from the XML document. Checks the return value
# and throws an exception if an error occurred. # and throws an exception if an error occurred.
def read_or_die def read_or_die
# NOTE: XML::Reader#read returns 0 for EOF and -1 for error. # NOTE: XML::Reader#read returns false for EOF and raises an
# we allow an EOF because we are expecting this to always happen # exception if an error occurs.
# at the end of a document. begin
if @reader.read < 0 @reader.read
raise APIBadUserInput.new("Unexpected end of XML document.") rescue LibXML::XML::Error => ex
raise OSM::APIBadXMLError.new("changeset", xml, ex.message)
end end
end end

View file

@ -240,7 +240,7 @@ module OSM
class GeoRSS class GeoRSS
def initialize(feed_title='OpenStreetMap GPS Traces', feed_description='OpenStreetMap GPS Traces', feed_url='http://www.openstreetmap.org/traces/') def initialize(feed_title='OpenStreetMap GPS Traces', feed_description='OpenStreetMap GPS Traces', feed_url='http://www.openstreetmap.org/traces/')
@doc = XML::Document.new @doc = XML::Document.new
@doc.encoding = 'UTF-8' @doc.encoding = XML::Encoding::UTF_8
rss = XML::Node.new 'rss' rss = XML::Node.new 'rss'
@doc.root = rss @doc.root = rss
@ -326,7 +326,7 @@ module OSM
class API class API
def get_xml_doc def get_xml_doc
doc = XML::Document.new doc = XML::Document.new
doc.encoding = 'UTF-8' doc.encoding = XML::Encoding::UTF_8
root = XML::Node.new 'osm' root = XML::Node.new 'osm'
root['version'] = API_VERSION root['version'] = API_VERSION
root['generator'] = GENERATOR root['generator'] = GENERATOR

BIN
public/images/donate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -1,5 +1,6 @@
User-agent: * User-agent: *
Disallow: /api/ Disallow: /api/
Disallow: /browse/
Disallow: /trace/ Disallow: /trace/
Disallow: /edit Disallow: /edit
Disallow: /login Disallow: /login

View file

@ -64,13 +64,14 @@ body {
} }
#intro { #intro {
width: 150px; width: 170px;
margin: 10px; margin: 10px;
padding: 10px;
border: 1px solid #ccc; border: 1px solid #ccc;
font-size: 11px; font-size: 11px;
} }
#intro p { margin: 10px; }
#alert { #alert {
width: 150px; width: 150px;
margin: 10px; margin: 10px;
@ -82,6 +83,17 @@ body {
font-size: 14px; font-size: 14px;
} }
#donate {
width: 150px;
margin: 10px;
padding: 10px;
border: 1px solid #ccc;
background: #ea0;
line-height: 1.2em;
text-align: left;
font-size: 12px;
}
.left_menu { .left_menu {
width: 150px; width: 150px;
min-width: 150px; min-width: 150px;
@ -361,17 +373,9 @@ hr {
top: 4px; top: 4px;
} }
#cclogo { .button {
width: 150px; margin-top: 10px;
min-width: 150px; margin-bottom: 10px;
margin: 10px;
padding: 10px;
left: 0px;
line-height: 1.2em;
text-align: left;
font-size: 14px;
font-weight: bold;
background: #fff;
} }
#controls img #controls img

View file

@ -276,8 +276,7 @@ class NodeControllerTest < ActionController::TestCase
## ##
# parse some xml # parse some xml
def xml_parse(xml) def xml_parse(xml)
parser = XML::Parser.new parser = XML::Parser.string(xml)
parser.string = xml
parser.parse parser.parse
end end
end end

View file

@ -540,8 +540,7 @@ OSM
## ##
# parse some xml # parse some xml
def xml_parse(xml) def xml_parse(xml)
parser = XML::Parser.new parser = XML::Parser.string(xml)
parser.string = xml
parser.parse parser.parse
end end
end end