Commit ae416a76ff235ad5be5aeb41e8f5d207a9c0d95b

Authored by Dmitriy Zaporozhets
1 parent 6473977a

per line comments improved. replaced from dbclick to link

app/assets/images/comment_add.png 0 → 100644

1.16 KB

app/assets/stylesheets/notes.css.scss
@@ -62,3 +62,36 @@ tr.line_notes_row { @@ -62,3 +62,36 @@ tr.line_notes_row {
62 } 62 }
63 } 63 }
64 64
  65 +.line_notes_row, .per_line_form { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
  66 +
  67 +.per_line_form {
  68 + background:#f5f5f5;
  69 + form { margin: 0; }
  70 + td {
  71 + border-bottom:1px solid #ddd;
  72 + }
  73 +}
  74 +
  75 +td .line_note_link {
  76 + position:absolute;
  77 + margin-left:-70px;
  78 + margin-top:-10px;
  79 + z-index:10;
  80 + background: url("comment_add.png") no-repeat left 0;
  81 + width:32px;
  82 + height:32px;
  83 +
  84 + opacity: 0.0;
  85 + filter: alpha(opacity=0);
  86 +
  87 + &:hover {
  88 + opacity: 1.0;
  89 + filter: alpha(opacity=100);
  90 + }
  91 +}
  92 +
  93 +.diff_file_content tr.line_holder:hover > td { background: $hover !important; }
  94 +.diff_file_content tr.line_holder:hover > td .line_note_link {
  95 + opacity: 1.0;
  96 + filter: alpha(opacity=100);
  97 +}
app/views/commits/_text_file.html.haml
1 %table 1 %table
2 - each_diff_line(diff.diff.lines.to_a, index) do |line, type, line_code, line_new, line_old| 2 - each_diff_line(diff.diff.lines.to_a, index) do |line, type, line_code, line_new, line_old|
3 %tr.line_holder 3 %tr.line_holder
4 - - if type == "match"  
5 - %td.old_line= "..."  
6 - %td.new_line= "..."  
7 - %td.line_content.matched= line  
8 - - else  
9 - %td.old_line= link_to raw(type == "new" ? " " : line_old), "##{line_code}", :id => line_code  
10 - %td.new_line= link_to raw(type == "old" ? " " : line_new) , "##{line_code}", :id => line_code  
11 - %td.line_content{:class => "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw "#{line}  " 4 + - if type == "match"
  5 + %td.old_line= "..."
  6 + %td.new_line= "..."
  7 + %td.line_content.matched= line
  8 + - else
  9 + %td.old_line
  10 + = link_to raw(type == "new" ? " " : line_old), "##{line_code}", :id => line_code
  11 + = link_to "", "#", :class => "line_note_link", "line_code" => line_code, :title => "Add note for this line"
  12 + %td.new_line= link_to raw(type == "old" ? " " : line_new) , "##{line_code}", :id => line_code
  13 + %td.line_content{:class => "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw "#{line}  "
12 14
13 - - comments = @line_notes.select { |n| n.line_code == line_code }.sort_by(&:created_at).reverse  
14 - - unless comments.empty?  
15 - - comments.each do |note|  
16 - = render "notes/per_line_show", :note => note  
17 - - @line_notes.reject!{ |n| n == note } 15 + - comments = @line_notes.select { |n| n.line_code == line_code }.sort_by(&:created_at).reverse
  16 + - unless comments.empty?
  17 + - comments.each do |note|
  18 + = render "notes/per_line_show", :note => note
  19 + - @line_notes.reject!{ |n| n == note }
app/views/commits/show.html.haml
@@ -22,10 +22,11 @@ @@ -22,10 +22,11 @@
22 22
23 :javascript 23 :javascript
24 $(document).ready(function(){ 24 $(document).ready(function(){
25 - $(".noteable_line").live("dblclick", function(e) { 25 + $(".line_note_link").live("click", function(e) {
26 var form = $(".per_line_form"); 26 var form = $(".per_line_form");
27 - $(this).parent().after(form); 27 + $(this).parent().parent().after(form);
28 form.find("#note_line_code").val($(this).attr("line_code")); 28 form.find("#note_line_code").val($(this).attr("line_code"));
29 form.show(); 29 form.show();
  30 + return false;
30 }); 31 });
31 }); 32 });
app/views/notes/_per_line_form.html.haml
1 %table{:style => "display:none;"} 1 %table{:style => "display:none;"}
2 %tr.per_line_form 2 %tr.per_line_form
3 %td{:colspan => 3 } 3 %td{:colspan => 3 }
4 - %div.well  
5 - = form_for [@project, @note], :remote => "true", :multipart => true do |f|  
6 - %h3 Leave a note  
7 - -if @note.errors.any?  
8 - .alert-message.block-message.error  
9 - - @note.errors.full_messages.each do |msg|  
10 - %div= msg 4 + = form_for [@project, @note], :remote => "true", :multipart => true do |f|
  5 + %h3 Leave a note
  6 + .row
  7 + .span16
  8 + -if @note.errors.any?
  9 + .alert-message.block-message.error
  10 + - @note.errors.full_messages.each do |msg|
  11 + %div= msg
11 12
12 - = f.hidden_field :noteable_id  
13 - = f.hidden_field :noteable_type  
14 - = f.hidden_field :line_code  
15 - = f.text_area :note, :size => 255  
16 - .prepend-top-10  
17 - = f.submit 'Add note', :class => "btn primary", :id => "submit_note"  
18 - .right 13 + = f.hidden_field :noteable_id
  14 + = f.hidden_field :noteable_type
  15 + = f.hidden_field :line_code
  16 + = f.text_area :note, :size => 255
  17 + .actions
  18 + = f.submit 'Add note', :class => "btn primary", :id => "submit_note"
19 = link_to "Close", "#", :class => "btn hide-button" 19 = link_to "Close", "#", :class => "btn hide-button"
  20 + .span6.entry
  21 + %h5 Notify via email:
  22 + .clearfix
  23 + = label_tag :notify do
  24 + = check_box_tag :notify, 1, @note.noteable_type != "Commit"
  25 + %span Project team
  26 +
  27 + - if @note.notify_only_author?(current_user)
  28 + = label_tag :notify_author do
  29 + = check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
  30 + %span Commit author
20 31
21 :javascript 32 :javascript
22 $(function(){ 33 $(function(){