2010-10-25 7 views
0

Version 2.3.4Как выделить строки в списке на основе состояния

Скажем, у меня есть items таблицу с некоторыми полями, например: id, name, something, created_at, updated_at, is_dirty. Я использую активный эшафот для отображения таблицы HTML.

class ItemsController < ApplicationController 
    layout 'application' 
    active_scaffold :item do |c| 
    c.columns = [ :id, :name, :something ] 
    c.show.columns.add [ :is_dirty, :created_at, :updated_at] 
    c.list.per_page = 20 
    list.sorting = {:created_at => 'DESC'} 
    end 
    # ... 
end 

У меня есть функция импорта, управляемая другим контроллером. После импорта затронутые строки «is_dirty» станут true, значение другого is_dirty останется таким же, как и раньше.

В списке пунктов, которые я хотел бы выделить некоторые строки используя некоторые раздражающие цвета (например, желтый или розовый), чье is_dirty поля true. Я искал в Интернете, и я нашел только переопределения полей. Меня не интересуют решения на основе RJS из-за смешных накладных расходов по сравнению с задачей, которую нужно выполнить.

Любые подсказки приветствуются и оцениваются, но я предпочел бы ответы, которые не основывают решение на копировании и изменении файлов фреймворка (но я все еще интересуюсь ими). Например, наличие хороших символов переопределения/элементов конфигурации было бы превосходным.

ответ

2

Можете ли вы добавить класс css в строки при создании события? Этот импорт выполняется через AJAX-вызов или выполняется до загрузки DOM? Если он запускается до загрузки DOM, лично я хотел бы добавить некоторые JQuery к некоторым включенным JS файл:

$(document).ready(function() { 
    $('tr').filter(function() { 
     return $(this).attr('is_dirty'); 
    }).addClass('ugly_yellow'); 
}); 

Если выполняется импорт через вызов AJAX, можно добавить аналогичный код в обработчик.

Если вы не используете JQuery, я уверен, что вы можете сделать что-то подобное в прототипе, но я предпочитаю JQuery и предположить, что все, по крайней мере попробовать его :)

+0

Спасибо за ответ. Я использую прототип. Я буду следить за этой концепцией. – Notinlist

Смежные вопросы