def download
changeset = Changeset.find(params[:id])
- # get all the elements in the changeset and stick them in a big array.
- elements = [changeset.old_nodes,
- changeset.old_ways,
- changeset.old_relations].flatten
+ # get all the elements in the changeset which haven't been redacted
+ # and stick them in a big array.
+ elements = [changeset.old_nodes.unredacted,
+ changeset.old_ways.unredacted,
+ changeset.old_relations.unredacted].flatten
# sort the elements by timestamp and version number, as this is the
# almost sensible ordering available. this would be much nicer if
else
changesets = changesets.where("false")
end
- 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
+ else
+ render_unknown_user params[:display_name]
return
end
end
if params[:friends]
- user = @user
- if user
- friend_ids = []
- user.friends.each do |friend|
- friend_user = User.find(friend.friend_user_id)
- if friend_user.data_public?
- friend_ids << friend.friend_user_id
- end
- end
- if friend_ids.length > 0
- conditions = cond_merge conditions, ['user_id in (?)', friend_ids]
- else
- conditions = cond_merge conditions, ['false']
- end
+ if @user
+ changesets = changesets.where(:user_id => @user.friend_users.public)
+ elsif request.format == :html
+ require_user
+ return
+ end
+ end
+
+ if params[:nearby]
+ if @user
+ changesets = changesets.where(:user_id => @user.nearby)
elsif request.format == :html
- @title = t 'user.no_such_user.title'
- render :template => 'user/no_such_user', :status => :not_found
+ require_user
+ return
end
end
user_link = render_to_string :partial => "user", :object => user
end
- if params[:friends] and user
+ if params[:friends] and @user
@title = t 'changeset.list.title_friend'
@heading = t 'changeset.list.heading_friend'
@description = t 'changeset.list.description_friend'
+ elsif params[:nearby] and @user
+ @title = t 'changeset.list.title_nearby'
+ @heading = t 'changeset.list.heading_nearby'
+ @description = t 'changeset.list.description_nearby'
elsif user and bbox
@title = t 'changeset.list.title_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@heading = t 'changeset.list.heading_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@page = (params[:page] || 1).to_i
@page_size = 20
- @bbox = bbox
-
@edits = changesets.order("changesets.created_at DESC").offset((@page - 1) * @page_size).limit(@page_size).preload(:user, :changeset_tags)
- end
- render :action => :list
+ render :action => :list
+ end
end
##