diff --git a/app/assets/javascripts/behaviors/toggle_diff_line_wrap_behavior.coffee b/app/assets/javascripts/behaviors/toggle_diff_line_wrap_behavior.coffee new file mode 100644 index 0000000000..691ed4f98a --- /dev/null +++ b/app/assets/javascripts/behaviors/toggle_diff_line_wrap_behavior.coffee @@ -0,0 +1,14 @@ +$ -> + # Toggle line wrapping in diff. + # + # %div.diff-file + # %input.js-toggle-diff-line-wrap + # %td.line_content + # + $("body").on "click", ".js-toggle-diff-line-wrap", (e) -> + diffFile = $(@).closest(".diff-file") + if $(@).is(":checked") + diffFile.addClass("diff-wrap-lines") + else + diffFile.removeClass("diff-wrap-lines") + diff --git a/app/assets/stylesheets/sections/diff.scss b/app/assets/stylesheets/sections/diff.scss index 488d06919b..758f15c801 100644 --- a/app/assets/stylesheets/sections/diff.scss +++ b/app/assets/stylesheets/sections/diff.scss @@ -125,8 +125,6 @@ } .line_content { display: block; - white-space: pre; - height: 18px; margin: 0px; padding: 0px 0.5em; border: none; @@ -341,3 +339,12 @@ margin: 0; border: none; } + +.diff-file .line_content { + white-space: pre; +} + +.diff-wrap-lines .line_content { + white-space: pre-wrap; +} + diff --git a/app/views/projects/commits/_diff_file.html.haml b/app/views/projects/commits/_diff_file.html.haml index 6e6107c884..31208a227c 100644 --- a/app/views/projects/commits/_diff_file.html.haml +++ b/app/views/projects/commits/_diff_file.html.haml @@ -16,6 +16,10 @@ %span.file-mode= "#{diff.a_mode} → #{diff.b_mode}" .diff-btn-group + %label + = check_box_tag nil, 1, false, class: "js-toggle-diff-line-wrap" + Wrap text +   = link_to "#", class: "js-toggle-diff-comments btn btn-small" do %i.icon-chevron-down Diff comments