def login
@title = 'login'
if params[:user]
- email = params[:user][:email]
+ email_or_display_name = params[:user][:email]
pass = params[:user][:password]
- user = User.authenticate(:username => email, :password => pass)
+ user = User.authenticate(:username => email_or_display_name, :password => pass)
if user
session[:user] = user.id
if params[:referer]
redirect_to :controller => 'site', :action => 'index'
end
return
- elsif User.authenticate(:username => email, :password => pass, :invalid => true)
+ elsif User.authenticate(:username => email_or_display_name, :password => pass, :invalid => true)
flash[:notice] = "Sorry, your account is not active yet.<br>Please click on the link in the account confirmation email to activate your account."
else
flash[:notice] = "Sorry, couldn't log in with those details."
--- /dev/null
+<% nearest_str = "" %>
+<% if !@user.home_lat.nil? and !@user.home_lon.nil? %>
+ <% if !@user.nearby.empty? %>
+ <% @user.nearby.each do |nearby| %>
+ <% nearest_str += "nearest.push( { 'display_name' : '#{nearby.display_name}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %>
+ <% end %>
+ <% end %>
+<% end %>
+<script type="text/javascript">
+ var nearest = [], friends = [];
+ <%= nearest_str %>
+</script>
+
+<% if @user.home_lat.nil? or @user.home_lon.nil? %>
+ <% lon = h(params['lon'] || '-0.1') %>
+ <% lat = h(params['lat'] || '51.5') %>
+ <% zoom = h(params['zoom'] || '4') %>
+<% else %>
+ <% marker = true %>
+ <% mlon = @user.home_lon %>
+ <% mlat = @user.home_lat %>
+ <% lon = @user.home_lon %>
+ <% lat = @user.home_lat %>
+ <% zoom = '12' %>
+<% end %>
+
+<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
+<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
+<%= javascript_include_tag 'map.js' %>
+
+<script type="text/javascript">
+ <!--
+ var marker;
+
+ function init(){
+ var centre = lonLatToMercator(new OpenLayers.LonLat(<%= lon %>, <%= lat %>));
+ var zoom = <%= zoom %>;
+
+ <% if params['scale'] and params['scale'].length > 0 then %>
+ zoom = scaleToZoom(<%= params['scale'].to_f() %>);
+ <% end %>
+
+ var map = createMap("map");
+
+ map.setCenter(centre, zoom);
+
+ <% if marker %>
+ marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)), null, "Your location");
+ <% end %>
+
+ var near_icon = OpenLayers.Marker.defaultIcon();
+ near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";;
+ var i = nearest.length;
+ while( i-- ) {
+ var description = 'Nearby mapper: <a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>'
+ var nearmarker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat)), near_icon.clone(), description);
+ }
+
+ map.events.register("click", map, setHome);
+ }
+
+ function setHome( e ) {
+ closeMapPopup();
+
+ if (document.getElementById('updatehome').checked) {
+ var merc = map.getLonLatFromViewPortPx(e.xy);
+ var lonlat = mercatorToLonLat(merc);
+
+ document.getElementById('homerow').className = '';
+ document.getElementById('home_lat').value = lonlat.lat;
+ document.getElementById('home_lon').value = lonlat.lon;
+
+ if (marker) {
+ removeMarkerFromMap(marker);
+ }
+
+ marker = addMarkerToMap(merc, null, "Your location");
+ }
+ }
+
+ window.onload = init;
+// -->
+</script>
+
+
<%= submit_tag 'Save Changes' %>
<% end %>
-<% nearest_str = "" %>
-<% if !@user.home_lat.nil? and !@user.home_lon.nil? %>
- <% if !@user.nearby.empty? %>
- <% @user.nearby.each do |nearby| %>
- <% nearest_str += "nearest.push( { 'display_name' : '#{nearby.display_name}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %>
- <% end %>
- <% end %>
-<% end %>
-<script type="text/javascript">
- var nearest = [], friends = [];
- <%= nearest_str %>
-</script>
-
-<% if @user.home_lat.nil? or @user.home_lon.nil? %>
- <% lon = h(params['lon'] || '-0.1') %>
- <% lat = h(params['lat'] || '51.5') %>
- <% zoom = h(params['zoom'] || '4') %>
-<% else %>
- <% marker = true %>
- <% mlon = @user.home_lon %>
- <% mlat = @user.home_lat %>
- <% lon = @user.home_lon %>
- <% lat = @user.home_lat %>
- <% zoom = '12' %>
-<% end %>
-
-<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
-<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
-<%= javascript_include_tag 'map.js' %>
-
-<script type="text/javascript">
- <!--
- var marker;
-
- function init(){
- var centre = lonLatToMercator(new OpenLayers.LonLat(<%= lon %>, <%= lat %>));
- var zoom = <%= zoom %>;
-
- <% if params['scale'] and params['scale'].length > 0 then %>
- zoom = scaleToZoom(<%= params['scale'].to_f() %>);
- <% end %>
-
- var map = createMap("map");
-
- map.setCenter(centre, zoom);
-
- <% if marker %>
- marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)), null, "Your location");
- <% end %>
-
- var near_icon = OpenLayers.Marker.defaultIcon();
- near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";;
- var i = nearest.length;
- while( i-- ) {
- var description = 'Nearby mapper: <a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>'
- var nearmarker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat)), near_icon.clone(), description);
- }
-
- map.events.register("click", map, setHome);
- }
-
- function setHome( e ) {
- closeMapPopup();
-
- if (document.getElementById('updatehome').checked) {
- var merc = map.getLonLatFromViewPortPx(e.xy);
- var lonlat = mercatorToLonLat(merc);
-
- document.getElementById('homerow').className = '';
- document.getElementById('home_lat').value = lonlat.lat;
- document.getElementById('home_lon').value = lonlat.lon;
-
- if (marker) {
- removeMarkerFromMap(marker);
- }
-
- marker = addMarkerToMap(merc, null, "Your location");
- }
- }
-
- window.onload = init;
-// -->
-</script>
+<%= render :partial => 'friend_map' %>
<h2>Public editing</h2>
<% if @user.data_public? %>
<% form_tag :action => 'login' do %>
<%= hidden_field_tag('referer', h(params[:referer])) %>
<table>
- <tr><td>Email Address:</td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255}) %></td></tr>
+ <tr><td>Email Address or username:</td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255}) %></td></tr>
<tr><td>Password:</td><td><%= password_field('user', 'password',{:size => 50, :maxlength => 255}) %></td></tr>
</table>
<% else %>
<% if @user and @this_user.id == @user.id %>
- Your friends:<br/>
+ <h3>Your friends</h3>
<% if @this_user.friends.empty? %>
You have not added any friends yet.
<% else %>
<br/>
<%end%>
- Nearby users:<br/>
+ <h3>Nearby users:</h3>
<% if @this_user.nearby.empty? %>
There are no users who admit to mapping nearby yet.
<% else %>
+
+
+ <div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 300px;"></div>
+ <%= render :partial => 'friend_map' %>
<table id="nearbyusers">
<% @this_user.nearby.each do |nearby| %>
<tr>