Module: Ezframe::PageKit::Index

Included in:
SinglePageEditor
Defined in:
lib/ezframe/single_page_kit.rb

Instance Method Summary collapse

Instance Method Details

#button_for_index_line(data) ⇒ Object

一覧ページ用ボタン



66
67
68
# File 'lib/ezframe/single_page_kit.rb', line 66

def button_for_index_line(data)
  return Ht.button(class: %w[btn right], ezevent: "on=click:url=#{make_base_url(data[:id])}/edit", child: [Ht.icon("edit"), Message[:edit_button_label]])
end

#list_for_indexObject

一覧ページ用のデータリスト生成



61
62
63
# File 'lib/ezframe/single_page_kit.rb', line 61

def list_for_index
  return @column_set.dataset.where(deleted_at: nil).order(@sort_key).all
end

#make_index_column(key) ⇒ Object

一覧表示の1カラムを生成



55
56
57
58
# File 'lib/ezframe/single_page_kit.rb', line 55

def make_index_column(key)
  column = @column_set[key.to_sym]
  return column.view(force: true)
end

#make_index_line(target_keys, data) ⇒ Object

一覧表示の1行を生成



48
49
50
51
52
# File 'lib/ezframe/single_page_kit.rb', line 48

def make_index_line(target_keys, data)
  @column_set.clear
  @column_set.values = data
  return target_keys.map { |key| make_index_column(key) }
end

#make_index_tableObject

一覧表の生成



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ezframe/single_page_kit.rb', line 22

def make_index_table
  list = list_for_index
  target_keys = @index_keys
  unless target_keys
    target_keys = @column_set.keys.select { |k| !@column_set[k].no_view? }
  end
  labels = @table_labels
  unless labels
    labels = target_keys.map { |k| @column_set[k].label(force: true) || " " }
  end
  # 項目名欄の生成
  thead = Ht.thead(Ht.tr(labels.map { |label| Ht.th(label || " ") }))

  tr_a = list.map do |data|
    view_a = make_index_line(target_keys, data)
    td_a = view_a.map { |view| Ht.td(view) }
    Ht.tr(id: "tr-#{@class_snake}-#{data[:id]}", child: td_a, ezevent: "on=click:url=#{make_base_url(data[:id])}/detail")
  end
  tbody = Ht.tbody(tr_a)
  return [
    Ht.table(id: "enable_datatable_#{@class_snake}", child: [thead, tbody], ezload: "command=enable_datatable:target=#enable_datatable_#{@class_snake}"),
    Ht.div(id: @dom_id[:detail], child: ""),
  ]
end

#make_index_topObject



17
18
19
# File 'lib/ezframe/single_page_kit.rb', line 17

def make_index_top
  make_create_button("on=click:url=#{make_base_url}/create")
end