Sha256: 290a17dfd1507eafe02e44c0519da0d2b09acc0ffc8e71f98da4c35e28de089b

Contents?: true

Size: 1.39 KB

Versions: 3

Compression:

Stored size: 1.39 KB

Contents

class Admin::EffectivePollNotificationsDatatable < Effective::Datatable
  filters do
    scope :all
    scope :started
    scope :completed
  end

  datatable do
    col :updated_at, visible: false
    col :created_at, visible: false
    col :id, visible: false

    col :poll
    col :category

    col :from, visible: false do |notification|
      ERB::Util.html_escape_once(notification.from)
    end

    col :reminder do |poll_notification|
      case poll_notification.category
      when 'When poll starts'
        poll_notification.poll.start_at&.strftime('%F %H:%M')
      when 'When poll ends'
        poll_notification.poll.end_at&.strftime('%F %H:%M')
      when 'Upcoming reminder'
        Effective::PollNotification::UPCOMING_REMINDERS.invert[poll_notification.reminder]
      when 'Reminder'
        Effective::PollNotification::REMINDERS.invert[poll_notification.reminder]
      when 'Before poll ends'
        Effective::PollNotification::UPCOMING_REMINDERS.invert[poll_notification.reminder]
      else
        raise('unexpected category')
      end
    end

    col :subject

    col :body do |notification|
      simple_format(notification.body.to_s)
    end

    col :cc, visible: false
    col :bcc, visible: false
    col :content_type, visible: false

    col :started_at, visible: false
    col :completed_at

    actions_col
  end

  collection do
    Effective::PollNotification.all.deep
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
effective_polls-0.7.2 app/datatables/admin/effective_poll_notifications_datatable.rb
effective_polls-0.7.1 app/datatables/admin/effective_poll_notifications_datatable.rb
effective_polls-0.7.0 app/datatables/admin/effective_poll_notifications_datatable.rb