Sha256: 24593c71f095760aaadc86943781cb51469e1b30d972e7da3f97e4b32234000e

Contents?: true

Size: 1.75 KB

Versions: 7

Compression:

Stored size: 1.75 KB

Contents

class Marty::PostingGrid < Marty::Grid
  has_marty_permissions read: :any,
                        delete: :any # delete is hijacked for a select

  def configure(c)
    super

    c.header             = false
    c.model              = 'Marty::Posting'
    c.attributes = [:name, :created_dt, :user__name, :comment]
    c.multi_select = false
    c.store_config.merge!(sorters: [{ property: :created_dt, direction: 'DESC' }],
                           page_size: 12)
  end

  client_class do |c|
    c.include :posting_grid
  end

  # hijacking delete button
  action :delete do |a|
    a.text      = 'Select'
    a.tooltip   = 'Select'
    a.icon_cls  = 'fa fa-clock glyph'
    a.disabled  = true
  end

  def default_bbar
    [:delete, :detail]
  end

  action :detail do |a|
    a.text      = 'Detail'
    a.icon_cls  = 'fa fa-th-large glyph'
    a.handler   = :detail
    a.disabled  = true
  end

  endpoint :detail do |params|
    record_id = params[:record_id]

    # Prepare an HTML popup with session details such that the
    # contents can be easily pasted into a spreadsheet.

    pt = Marty::Posting.find_by(id: record_id)

    dt = pt.created_dt.to_s == 'Infinity' ? '---' :
      pt.created_dt.strftime('%Y-%m-%d %I:%M %p')

    html =
      "<b>Name:</b>\t#{pt.name}<br/>" +
      "<b>Date/Time:</b>\t#{dt}<br/>" +
      "<b>User:</b>\t#{pt.user.name}<br/>" +
      "<b>Comment:</b>\t#{pt.comment}"

    client.netzke_show_detail html
  end

  attribute :name do |c|
    c.flex      = 1
  end

  attribute :created_dt do |c|
    c.text      = 'Date/Time'
    c.format    = 'Y-m-d H:i'
    c.hidden    = true
  end

  attribute :user__name do |c|
    c.width     = 100
  end

  attribute :comment do |c|
    c.width     = 100
  end
end

PostingGrid = Marty::PostingGrid

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
marty-10.0.3 app/components/marty/posting_grid.rb
marty-10.0.2 app/components/marty/posting_grid.rb
marty-10.0.0 app/components/marty/posting_grid.rb
marty-9.5.1 app/components/marty/posting_grid.rb
marty-9.5.0 app/components/marty/posting_grid.rb
marty-9.3.3 app/components/marty/posting_grid.rb
marty-9.3.2 app/components/marty/posting_grid.rb