opf/openproject

View on GitHub
app/views/common/_diff.html.erb

Summary

Maintainability
Test Coverage
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2024 the OpenProject GmbH

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 3.

OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
Copyright (C) 2006-2013 Jean-Philippe Lang
Copyright (C) 2010-2013 the ChiliProject Team

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

See COPYRIGHT and LICENSE files for more details.

++#%>
<% diff = Redmine::UnifiedDiff.new(diff, type: diff_type, max_lines: Setting.diff_max_lines_displayed.to_i) -%>
<% diff.each do |table_file| -%>
  <div class="autoscroll">
    <% if diff.diff_type == 'sbs' -%>
      <table class="filecontent">
        <thead>
          <tr>
            <th colspan="4" class="filename"><%= h(to_utf8_for_attachments(table_file.file_name)) %></th>
          </tr>
        </thead>
        <tbody>
          <% table_file.each_line do |spacing, line| -%>
            <% if spacing -%>
              <tr class="spacing">
                <th class="line-num">...</th>
                <td></td>
                <th class="line-num">...</th>
                <td></td>
              </tr>
            <% end -%>
            <tr>
              <th class="line-num"><%= line.nb_line_left %></th>
              <td class="line-code <%= line.type_diff_left %>">
                <pre><%=to_utf8_for_attachments line.html_line_left %></pre>
              </td>
              <th class="line-num"><%= line.nb_line_right %></th>
              <td class="line-code <%= line.type_diff_right %>">
                <pre><%=to_utf8_for_attachments line.html_line_right %></pre>
              </td>
            </tr>
          <% end -%>
        </tbody>
      </table>
    <% else -%>
      <table class="filecontent">
        <thead>
          <tr>
            <th colspan="3" class="filename"><%= to_utf8_for_attachments(table_file.file_name) %></th>
          </tr>
        </thead>
        <tbody>
          <% table_file.each_line do |spacing, line| %>
            <% if spacing -%>
              <tr class="spacing">
                <th class="line-num">...</th>
                <th class="line-num">...</th>
                <td></td>
              </tr>
            <% end -%>
            <tr>
              <th class="line-num"><%= line.nb_line_left %></th>
              <th class="line-num"><%= line.nb_line_right %></th>
              <td class="line-code <%= line.type_diff %>">
                <pre><%=to_utf8_for_attachments line.html_line %></pre>
              </td>
            </tr>
          <% end -%>
        </tbody>
      </table>
    <% end -%>
  </div>
<% end -%>
<%= t(:text_diff_truncated) if diff.truncated? %>