Class: Edgarj::Drawer::ColumnInfo::Base

Inherits:
Object
  • Object
show all
Defined in:
app/helpers/edgarj/drawer/base.rb

Overview

Abstract class for all of ColumnInfo

Direct Known Subclasses

Normal

Instance Method Summary collapse

Instance Method Details

#column_header_label(vc, page_info, options) ⇒ Object

draw column header (with sort link)

Parameters:

  • vc (ViewContext)

    Rails view_context

  • path_info (Edgarj::PageInfo)
  • options (Hash)

    options to url_for



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'app/helpers/edgarj/drawer/base.rb', line 60

def column_header_label(vc, page_info, options)
  _label  = label(vc)
  dir     = 'asc'

  if page_info.order_by == sort_key
    # toggle direction
    if page_info.dir == 'asc' || page_info.dir.blank?
      _label += ''
      dir    = 'desc'
    else
      _label += ''
    end
  end
  vc.link_to(_label,
    {
      :action                       => 'page_info_save',
      :id                           => page_info.id,
      'edgarj_page_info[order_by]'  => sort_key,
      'edgarj_page_info[dir]'       => dir
    }.merge(options),
    :remote => true,
    :method => :put)
end

#column_value(rec, drawer) ⇒ Object

cell text for the column in the list

Parameters:



38
39
40
# File 'app/helpers/edgarj/drawer/base.rb', line 38

def column_value(rec, drawer)
  rec.inspect
end

#field(rec, form_drawer) ⇒ Object

input field for form

Parameters:



46
47
48
# File 'app/helpers/edgarj/drawer/base.rb', line 46

def field(rec, form_drawer)
  form_drawer.draw_field(rec, self)
end

#label(vc) ⇒ Object

for column header label in the list



26
27
28
# File 'app/helpers/edgarj/drawer/base.rb', line 26

def label(vc)
  raise 'derived should implement'
end

#nameObject



84
85
86
# File 'app/helpers/edgarj/drawer/base.rb', line 84

def name
  raise 'derived should implement'
end

#sort_keyObject



30
31
32
# File 'app/helpers/edgarj/drawer/base.rb', line 30

def sort_key
  raise 'derived should implement'
end

#tag_optionsObject

HTML tag options (e.g. css-class) in Hash



51
52
53
# File 'app/helpers/edgarj/drawer/base.rb', line 51

def tag_options
  {}
end

#typeObject

just for backward compatibility



89
90
91
# File 'app/helpers/edgarj/drawer/base.rb', line 89

def type
  raise 'derived should implement'
end