summaryrefslogtreecommitdiff
path: root/app/contexts/commit_load.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/contexts/commit_load.rb')
-rw-r--r--app/contexts/commit_load.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/contexts/commit_load.rb b/app/contexts/commit_load.rb
new file mode 100644
index 00000000000..bab30d61007
--- /dev/null
+++ b/app/contexts/commit_load.rb
@@ -0,0 +1,26 @@
+class CommitLoad < BaseContext
+ def execute
+ result = {
+ :commit => nil,
+ :suppress_diff => false,
+ :line_notes => [],
+ :notes_count => 0,
+ :note => nil
+ }
+
+ commit = project.commit(params[:id])
+
+ if commit
+ commit = CommitDecorator.decorate(commit)
+ line_notes = project.commit_line_notes(commit)
+
+ result[:suppress_diff] = true if commit.diffs.size > 200 && !params[:force_show_diff]
+ result[:commit] = commit
+ result[:note] = project.build_commit_note(commit)
+ result[:line_notes] = line_notes
+ result[:notes_count] = line_notes.count + project.commit_notes(commit).count
+ end
+
+ result
+ end
+end