def feed
# Get any conditions that need to be applied
notes = closed_condition(Note.all)
-
- # Process any bbox
- if params[:bbox]
- bbox = BoundingBox.from_bbox_params(params)
-
- bbox.check_boundaries
- bbox.check_size(Settings.max_note_request_area)
-
- notes = notes.bbox(bbox)
- @min_lon = bbox.min_lon
- @min_lat = bbox.min_lat
- @max_lon = bbox.max_lon
- @max_lat = bbox.max_lat
- end
+ notes = bbox_condition(notes)
# Find the comments we want to return
- @comments = NoteComment.where(:note => notes).order("created_at DESC").limit(result_limit).preload(:note)
+ @comments = NoteComment.where(:note => notes)
+ .order(:created_at => :desc).limit(result_limit)
+ .preload(:author, :note => { :comments => :author })
# Render the result
respond_to do |format|
def search
# Get the initial set of notes
@notes = closed_condition(Note.all)
+ @notes = bbox_condition(@notes)
# Add any user filter
if params[:display_name] || params[:user]
end
end
+ ##
+ # Generate a condition to choose which notes we want based
+ # on the user's bounding box request parameters
+ def bbox_condition(notes)
+ if params[:bbox]
+ bbox = BoundingBox.from_bbox_params(params)
+
+ bbox.check_boundaries
+ bbox.check_size(Settings.max_note_request_area)
+
+ @min_lon = bbox.min_lon
+ @min_lat = bbox.min_lat
+ @max_lon = bbox.max_lon
+ @max_lat = bbox.max_lat
+
+ notes.bbox(bbox)
+ else
+ notes
+ end
+ end
+
##
# Add a comment to a note
def add_comment(note, text, event, notify: true)