Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

per line comments display

  • Loading branch information...
commit 9da4d06a87a302f3f37ca95ba5b6e89cc66c0a82 1 parent c66bc99
@randx randx authored
View
28 app/assets/stylesheets/projects.css.scss
@@ -693,3 +693,31 @@ a.project-update.titled {
top: 0;
}
}
+
+tr.line_notes_row {
+ &:hover {
+ background:none;
+ }
+ td {
+ margin:0px;
+ padding:0px;
+ border-bottom:1px solid #DEE2E3;
+
+
+ ul {
+ display:block;
+ list-style:none;
+ margin:0px;
+ padding:0px;
+
+ li {
+ border-top:1px solid #DEE2E3;
+ padding:10px;
+
+ .delete-note {
+ display:none;
+ }
+ }
+ }
+ }
+}
View
2  app/controllers/commits_controller.rb
@@ -27,6 +27,8 @@ def show
@notes = project.commit_notes(@commit).fresh.limit(20)
@note = @project.build_commit_note(@commit)
+ @line_notes = project.commit_line_notes(@commit)
+
respond_to do |format|
format.html
format.js { respond_with_notes }
View
17 app/models/note.rb
@@ -53,6 +53,23 @@ def target
noteable
end
end
+
+ def line_file_id
+ @line_file_id ||= line_code.split("_")[1].to_i if line_code
+ end
+
+ def line_type_id
+ @line_type_id ||= line_code.split("_").first if line_code
+ end
+
+ def line_number
+ @line_number ||= line_code.split("_").last.to_i if line_code
+ end
+
+ def for_line?(file_id, old_line, new_line)
+ line_file_id == file_id &&
+ ((line_type_id == "NEW" && line_number == new_line) || (line_type_id == "OLD" && line_number == old_line ))
+ end
end
# == Schema Information
#
View
6 app/models/project.rb
@@ -166,7 +166,11 @@ def build_commit_note(commit)
end
def commit_notes(commit)
- notes.where(:noteable_id => commit.id, :noteable_type => "Commit")
+ notes.where(:noteable_id => commit.id, :noteable_type => "Commit", :line_code => nil)
+ end
+
+ def commit_line_notes(commit)
+ notes.where(:noteable_id => commit.id, :noteable_type => "Commit").where("line_code not null")
end
def has_commits?
View
7 app/views/commits/_text_file.html.haml
@@ -19,6 +19,13 @@
%td.new_line
= link_to raw(diff_line_class(line) == "old" ? " " : line_new) , "#NEW#{index}-#{line_new}", :id => "NEW#{index}-#{line_new}"
%td.line_content{:class => diff_line_class(full_line)}= raw "#{full_line}  "
+ - comments = @line_notes.select { |n| n.for_line?(index, line_old, line_new) }.sort_by(&:created_at).reverse
+ - unless comments.empty?
+ %tr.line_notes_row
+ %td{:colspan => 3}
+ %ul
+ - comments.each do |note|
+ = render :partial => "notes/show", :locals => {:note => note}
- if line[0] == "+"
- line_new += 1
- elsif line[0] == "-"
View
5 db/migrate/20120110180749_add_line_number_to_note.rb
@@ -0,0 +1,5 @@
+class AddLineNumberToNote < ActiveRecord::Migration
+ def change
+ add_column :notes, :line_code, :string, :null => true
+ end
+end
View
15 db/schema.rb
@@ -11,7 +11,19 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20111220190817) do
+ActiveRecord::Schema.define(:version => 20120110180749) do
+
+ create_table "features", :force => true do |t|
+ t.string "name"
+ t.string "branch_name"
+ t.integer "assignee_id"
+ t.integer "author_id"
+ t.integer "project_id"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.string "version"
+ t.integer "status", :default => 0, :null => false
+ end
create_table "issues", :force => true do |t|
t.string "title"
@@ -56,6 +68,7 @@
t.datetime "updated_at"
t.integer "project_id"
t.string "attachment"
+ t.string "line_code"
end
create_table "projects", :force => true do |t|
Please sign in to comment.
Something went wrong with that request. Please try again.