# list edits (open changesets) in reverse chronological order
def list
conditions = conditions_nonempty
-
-
- # @changesets = Changeset.find(:all, :order => "closed_at DESC", :conditions => ['closed_at < ?', DateTime.now], :limit=> 20)
-
-
- #@edit_pages, @edits = paginate(:changesets,
- # :include => [:user, :changeset_tags],
- # :conditions => conditions,
- # :order => "changesets.created_at DESC",
- # :per_page => 20)
- #
-
- @edits = Changeset.find(:all,
- :order => "changesets.created_at DESC",
- :conditions => conditions,
- :limit => 20)
-
- end
-
- ##
- # list edits (changesets) belonging to a user
- def list_user
- user = User.find_by_display_name(params[:display_name], :conditions => {:visible => true})
-
- if user
- @display_name = user.display_name
- if not user.data_public? and @user != user
- @edits = nil
- render
- else
- conditions = cond_merge conditions, ['user_id = ?', user.id]
- conditions = cond_merge conditions, conditions_nonempty
- @edit_pages, @edits = paginate(:changesets,
- :include => [:user, :changeset_tags],
- :conditions => conditions,
- :order => "changesets.created_at DESC",
- :per_page => 20)
+
+ if params[:display_name]
+ user = User.find_by_display_name(params[:display_name], :conditions => { :visible => true })
+
+ if user
+ if user.data_public? or user == @user
+ conditions = cond_merge conditions, ['user_id = ?', user.id]
+ else
+ conditions = cond_merge conditions, ['false']
+ end
- elsif params[:format] == 'rhtml'
++ elsif request.format == :html
+ @title = t 'user.no_such_user.title'
+ @not_found_user = params[:display_name]
+ render :template => 'user/no_such_user', :status => :not_found
end
- else
- @not_found_user = params[:display_name]
- render :template => 'user/no_such_user', :status => :not_found
end
- end
-
- ##
- # list changesets in a bbox
- def list_bbox
- # support 'bbox' param or alternatively 'minlon', 'minlat' etc
- if params['bbox']
- bbox = params['bbox']
- elsif params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat']
- bbox = h(params['minlon']) + ',' + h(params['minlat']) + ',' + h(params['maxlon']) + ',' + h(params['maxlat'])
+
+ if params[:bbox]
+ bbox = params[:bbox]
+ elsif params[:minlon] and params[:minlat] and params[:maxlon] and params[:maxlat]
+ bbox = params[:minlon] + ',' + params[:minlat] + ',' + params[:maxlon] + ',' + params[:maxlat]
+ end
+
+ if bbox
+ conditions = cond_merge conditions, conditions_bbox(bbox)
+ bbox = BoundingBox.from_s(bbox)
+ bbox_link = "<a href='#{url_for(:controller => "site", :action => "index", :minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => "yes")}'>#{bbox.to_s}</a>"
+ end
+
+ @title = t 'changeset.list.title'
+
+ if user and bbox
+ @description = t 'changeset.list.description_user_bbox', :user => user.display_name, :bbox => bbox_link
+ elsif user
+ @description = t 'changeset.list.description_user', :user => user.display_name
+ elsif bbox
+ @description = t 'changeset.list.description_bbox', :bbox => bbox_link
else
- #TODO: fix bugs in location determination for history tab (and other tabs) then uncomment this redirect
- #redirect_to :action => 'list'
-
- # For now just render immediately, and skip the db
- render
- return
+ @description = t 'changeset.list.description'
end
-
- conditions = conditions_bbox(bbox);
- conditions = cond_merge conditions, conditions_nonempty
-
+
@edit_pages, @edits = paginate(:changesets,
:include => [:user, :changeset_tags],
:conditions => conditions,
<!-- Displaying user's own profile page -->
<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
| <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
- | <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name, :format => 'rhtml' %>
-| <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list_user', :display_name => @user.display_name %>
++| <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
| <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
| <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<% else %>
<!-- Displaying another user's profile page -->
<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => @this_user.id %>
| <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
- | <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name, :format => 'rhtml' %>
-| <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list_user', :display_name => @this_user.display_name %>
++| <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
| <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %>
| <% if @user and @user.is_friends_with?(@this_user) %>
<%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %>
map.connect '/browse/relation/:id', :controller => 'browse', :action => 'relation', :id => /\d+/
map.connect '/browse/relation/:id/history', :controller => 'browse', :action => 'relation_history', :id => /\d+/
map.connect '/browse/changeset/:id', :controller => 'browse', :action => 'changeset', :id => /\d+/
- map.connect '/browse/changesets', :controller => 'changeset', :action => 'list', :format => 'rhtml'
- map.connect '/browse/changesets/rss', :controller => 'changeset', :action => 'list', :format => 'rxml'
+ map.connect '/browse/changesets', :controller => 'changeset', :action => 'list'
++ map.connect '/browse/changesets/rss', :controller => 'changeset', :action => 'list', :format => :rss
# web site
- map.root :controller => 'site', :action => 'index', :format => 'rhtml'
+ map.root :controller => 'site', :action => 'index'
map.connect '/', :controller => 'site', :action => 'index'
map.connect '/edit', :controller => 'site', :action => 'edit'
- map.connect '/history', :controller => 'changeset', :action => 'list', :format => 'rhtml'
- map.connect '/history/rss', :controller => 'changeset', :action => 'list', :format => 'rxml'
- map.connect '/history', :controller => 'changeset', :action => 'list_bbox'
++ map.connect '/history', :controller => 'changeset', :action => 'list'
++ map.connect '/history/rss', :controller => 'changeset', :action => 'list', :format => :rss
map.connect '/export', :controller => 'site', :action => 'export'
map.connect '/login', :controller => 'user', :action => 'login'
map.connect '/logout', :controller => 'user', :action => 'logout'
# user pages
map.connect '/user/:display_name', :controller => 'user', :action => 'view'
- map.connect '/user/:display_name/edits', :controller => 'changeset', :action => 'list', :format => 'rhtml'
- map.connect '/user/:display_name/edits/rss', :controller => 'changeset', :action => 'list', :format => 'rxml'
- map.connect '/user/:display_name/edits', :controller => 'changeset', :action => 'list_user'
++ map.connect '/user/:display_name/edits', :controller => 'changeset', :action => 'list'
++ map.connect '/user/:display_name/edits/rss', :controller => 'changeset', :action => 'list', :format =>:rss
map.connect '/user/:display_name/make_friend', :controller => 'user', :action => 'make_friend'
map.connect '/user/:display_name/remove_friend', :controller => 'user', :action => 'remove_friend'
map.connect '/user/:display_name/diary', :controller => 'diary_entry', :action => 'list'