Restream/redmine_my_page_queries

View on GitHub
app/views/my/_query_block.html.erb

Summary

Maintainability
Test Coverage
<h3><%= query.title %></h3>
<% if query.compact_view? -%>
  <%= render partial: 'issues/list_simple', locals: { issues: query.issues } %>
<% else -%>
  <%= form_tag({}) do -%>
    <%= hidden_field_tag 'back_url', url_for(params), id: nil %>
    <div class="autoscroll">
      <table class="list issues">
        <thead>
        <tr>
          <th class="checkbox hide-when-print">
            <%= link_to image_tag('toggle_check.png'), {},
                        onclick: 'toggleIssuesSelection(this); return false;',
                        title:   "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
          </th>
          <% query.inline_columns.each do |column| %>
            <%= query.column_header(column) %>
          <% end %>
        </tr>
        </thead>
        <% previous_group = false %>
        <tbody>
        <% issue_list(query.issues) do |issue, level| -%>
          <% if query.grouped? && (group = query.group_by_column.value(issue)) != previous_group %>
            <% reset_cycle %>
            <tr class="group open">
              <td colspan="<%= query.inline_columns.size + 2 %>">
                <span class="expander" onclick="toggleRowGroup(this);">&nbsp;</span>
                <%= group.blank? ? l(:label_none) : column_content(query.group_by_column, issue) %>
                <span class="count"><%= query.issue_count_by_group[group] %></span>
                <%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
                                     'toggleAllRowGroups(this)', class: 'toggle-all') %>
              </td>
            </tr>
            <% previous_group = group %>
          <% end %>
          <tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
            <td class="checkbox hide-when-print"><%= check_box_tag('ids[]', issue.id, false, id: nil) %></td>
            <%= raw query.inline_columns.map { |column| "<td class=\"#{column.css_classes}\">#{column_content(column, issue)}</td>" }.join %>
          </tr>
          <% query.block_columns.each do |column|
            if (text = column_content(column, issue)) && text.present? -%>
              <tr class="<%= current_cycle %>">
                <td colspan="<%= query.inline_columns.size + 2 %>" class="<%= column.css_classes %>"><%= text %></td>
              </tr>
            <% end -%>
          <% end -%>
        <% end -%>
        </tbody>
      </table>
    </div>
  <% end -%>
<% end -%>
<p class="pagination">
  <%= query.pagination_links %>
</p>