2012-07-31 07:32:49 +02:00
|
|
|
module Notes
|
|
|
|
class LoadContext < BaseContext
|
|
|
|
def execute
|
|
|
|
target_type = params[:target_type]
|
|
|
|
target_id = params[:target_id]
|
2012-09-14 16:52:24 +02:00
|
|
|
after_id = params[:after_id]
|
2012-09-14 17:01:34 +02:00
|
|
|
before_id = params[:before_id]
|
2012-07-31 07:32:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
@notes = case target_type
|
2012-09-13 15:43:16 +02:00
|
|
|
when "commit"
|
|
|
|
project.commit_notes(project.commit(target_id)).fresh.limit(20)
|
2012-07-31 07:32:49 +02:00
|
|
|
when "issue"
|
2012-09-13 15:43:16 +02:00
|
|
|
project.issues.find(target_id).notes.inc_author.fresh.limit(20)
|
2012-07-31 07:32:49 +02:00
|
|
|
when "merge_request"
|
2012-09-13 15:43:16 +02:00
|
|
|
project.merge_requests.find(target_id).notes.inc_author.fresh.limit(20)
|
|
|
|
when "snippet"
|
|
|
|
project.snippets.find(target_id).notes.fresh
|
|
|
|
when "wall"
|
|
|
|
# this is the only case, where the order is DESC
|
2012-09-14 17:01:34 +02:00
|
|
|
project.common_notes.order("created_at DESC, id DESC").limit(50)
|
2012-07-31 07:32:49 +02:00
|
|
|
when "wiki"
|
2012-09-15 08:49:21 +02:00
|
|
|
project.wiki_notes.limit(20)
|
2012-07-31 07:32:49 +02:00
|
|
|
end
|
|
|
|
|
2012-09-14 16:52:24 +02:00
|
|
|
@notes = if after_id
|
|
|
|
@notes.where("id > ?", after_id)
|
2012-09-14 17:01:34 +02:00
|
|
|
elsif before_id
|
|
|
|
@notes.where("id < ?", before_id)
|
|
|
|
else
|
2012-07-31 07:32:49 +02:00
|
|
|
@notes
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|