Merge 12304:14009 from trunk.
This commit is contained in:
commit
c8ee135104
36 changed files with 174 additions and 130 deletions
|
@ -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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 = []
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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 />
|
|
||||||
|
|
|
@ -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 & Wiki</a><br />
|
<a href="http://wiki.openstreetmap.org">Help & 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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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]].
|
||||||
|
|
|
@ -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" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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'] %>
|
||||||
|
|
|
@ -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 %>
|
||||||
|
|
|
@ -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> <!--vertical spacer--></td></tr>
|
<tr><td colspan=2> <!--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 %>
|
||||||
|
|
|
@ -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> <!--vertical spacer--></td></tr>
|
<tr><td colspan=2> <!--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 %>
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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` ' +
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
BIN
public/images/donate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue