Rails подсвечивает строку таблицы, если дата создана более 6 месяцев? - PullRequest
0 голосов
/ 20 апреля 2011

Я работаю над приложением rails 2.3, чтобы упростить создание внутренних документов и т. Д. У нас есть дела, которые назначаются определенным людям, но есть временное ограничение в 6 месяцев, когда дело должно быть решено или отменено.

У меня есть таблица дел (модель Rails называется Kases), которая выглядит примерно так:

<!-- START KASE SUB CONTENT -->
<div id="kase_subcontent">
<% unless Kase.most_recentfive.empty? %>

<div id="kasecounts">
    <ul>
        <li>Active Cases: <strong><%= @kases_active_count %></strong></li>
        <li>On Hold: <strong><%= @kases_on_hold_count %></strong></li>
        <li>Archived: <strong><%= @kases_archived_count %></strong></li>
        <li>Invoice Sent: <strong><%= @kases_invoice_sent_count %></strong></li>
    </ul>
</div>
<table class="index">
  <tr>
    <th>Job Ref.</th>
    <th>Subject</th>
    <th>Transport</th>
    <th>Client</th>
    <th>Client Ref.</th>
    <th>Status</th>
  </tr>

<% for kase in @kases %>

    <tr class="<%= cycle("even", "odd") %> <%=h kase.kase_status %>" onclick="location.href='<%= kase_path(kase) %>'">
  <td><%=h kase.jobno %></td>
    <td><%=h kase.casesubject %></td>
    <td><%=h kase.transport %></td>
    <td><%=h kase.company.companyname %></td>
    <td><%=h kase.clientref %></td>
    <td><%=h kase.kase_status %></td>

<!--    
    <td><%= link_to "Jobsheet", kase_path(kase, :format => 'pdf'), :class => 'PDFLink' %></td>
    <td><%= link_to 'Show', kase %></td>
    <td><%= link_to 'Edit', edit_kase_path(kase) %></td>
    <td><%= link_to 'Destroy', kase, :confirm => 'Are you sure?', :method => :delete, :class => 'important' %></td>
-->
  </tr>
<% end %>
</table>

<% else %>

<img src="images/allcases-sample.jpg" />

<% end %>

Когда пользователь создает новый случай, тогда установите дату «инструкции» (полученный случай) следующим образом:

<li>Date Instructed<span><%= f.date_select :dateinstructed, :order => [:day, :month, :year] %></span></li>

Они также могут в любой момент изменить «статус» дела следующим образом:

<li>Current Case Status<span><%= f.select "kase_status", ['Active', 'On Hold', 'Archived', 'Invoice Sent'] %></span></li>

Я хотел бы выделить строки таблицы для дел, которые в настоящее время активны, а дата обучения была более 6 месяцев назад.

Я установил базовый стиль для заархивированных случаев (выцветший цвет), но я думаю, что было бы полезно сделать строки красными для всего, что становится срочным. Так что я могу делать случаи старше 5 месяцев янтарным, а затем 6 месяцев красным.

Дополнительным бонусом было бы как-то заставить моргать строку, чтобы она была очевидна для пользователя.

Есть идеи, как это сделать?


UPDATE

Я добавил следующее к помощнику kase:

def is_urgent
  if (DateTime.now - 180) > @dateinstructed then
    content_tag(:class => "urgentCase")
  end
end

и вызвал его из вида со следующим:

<%=h is_urgent %>

но я получаю следующую ошибку:

неопределенный метод `to_datetime 'для nil: NilClass

1 Ответ

0 голосов
/ 20 апреля 2011

CSS-классы разделены пробелами, поэтому вы можете предоставить другой метод, который определяет, является ли элемент «срочным» или «критическим», и добавить этот стиль в строку таблицы.Затем все, что вам нужно сделать, это добавить новый стиль, который использует новые классы в определении старого стиля.

def is_urgent
    (DateTime.now - 180) > @dateinstructed
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...