35 lines
1.2 KiB
Ruby
35 lines
1.2 KiB
Ruby
|
module Notes
|
||
|
class LoadContext < BaseContext
|
||
|
def execute
|
||
|
target_type = params[:target_type]
|
||
|
target_id = params[:target_id]
|
||
|
first_id = params[:first_id]
|
||
|
last_id = params[:last_id]
|
||
|
|
||
|
|
||
|
@notes = case target_type
|
||
|
when "commit"
|
||
|
then project.commit_notes(project.commit(target_id)).fresh.limit(20)
|
||
|
when "snippet"
|
||
|
then project.snippets.find(target_id).notes
|
||
|
when "wall"
|
||
|
then project.common_notes.order("created_at DESC").fresh.limit(50)
|
||
|
when "issue"
|
||
|
then project.issues.find(target_id).notes.inc_author.order("created_at DESC").limit(20)
|
||
|
when "merge_request"
|
||
|
then project.merge_requests.find(target_id).notes.inc_author.order("created_at DESC").limit(20)
|
||
|
when "wiki"
|
||
|
then project.wikis.reverse.map {|w| w.notes.fresh }.flatten[0..20]
|
||
|
end
|
||
|
|
||
|
@notes = if last_id
|
||
|
@notes.where("id > ?", last_id)
|
||
|
elsif first_id
|
||
|
@notes.where("id < ?", first_id)
|
||
|
else
|
||
|
@notes
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|