| Module | ProductGeneratorHelper |
| In: |
app/helpers/product_generator_helper.rb
|
画面生成の helper を与える。
各画面で利用するボタンを設定する check box を返す。
# File app/helpers/product_generator_helper.rb, line 14
14: def check_boxes_for_buttons
15: "#{@display.attributes["type"]}::BUTTON_TYPE".constantize.map do |pair|
16: name = "button_#{pair.last}"
17: check_box_with_label("display[]", name, h(s_(pair.first)))
18: end.join("<br />")
19: end
項目をソートする場合の順方向を選択する select box を返す。
# File app/helpers/product_generator_helper.rb, line 62
62: def direction_selector
63: constant_select_tag(Item::LABEL_DIRECTION, "item[direction]", @item, "direction", h(s_("Option|none")))
64: end
削除画面かどうかを判定する。
# File app/helpers/product_generator_helper.rb, line 4 4: def display_destroy? 5: return controller.action_name == "display_destroy" 6: end
入力の初期値を選択するための select box を返す。
# File app/helpers/product_generator_helper.rb, line 72
72: def input_initializer_selector
73: constant_select_tag(Item::LABEL_INPUT_INITIALIZER, "item[input_initializer]", @item, "input_initializer")
74: end
入力の種類を選択するための select box を返す。
# File app/helpers/product_generator_helper.rb, line 67
67: def input_type_selector
68: constant_select_tag(Item::LABEL_INPUT_TYPE, "item[input_type]", @item, "input_type")
69: end
column_name を検証する部品を設定するための input 群を返す。
# File app/helpers/product_generator_helper.rb, line 77
77: def inputs_for_validates(column_name)
78: count = Item::VALIDATES_COLUMN_PARAMETER_COUNT[column_name.to_sym]
79: colspan = ' colspan="2"' if count == 1
80: result = check_box_with_label("item", column_name, h(Item.human_attribute_name(column_name)))
81: (1..count).each do |i|
82: parameter_column_name = "#{column_name}_#{i}"
83: result << "</td><td#{colspan}>"
84: result << Item.human_attribute_name(parameter_column_name) << ":"
85: result << text_field("item", parameter_column_name)
86: end
87: return result
88: end
項目ごとの行を返す。
# File app/helpers/product_generator_helper.rb, line 39
39: def item_tr(header, data, options={})
40: data_colspan = options[:colspan] || 3
41: if data_colspan && 1 < data_colspan
42: colspan = %Q| colspan="#{data_colspan}"|
43: end
44: %Q|<tr><th colspan="2">#{h(header)}</th><td#{colspan}>#{data} #{options[:example]}</td></tr>|
45: end
項目のレイアウトを選択するための select box を返す。
# File app/helpers/product_generator_helper.rb, line 48
48: def layout_selector
49: x = @display.is_a?(DisplayToList) ? "list" : "show"
50: select "item", "layout", InputOption.options_for_select("item_layout_#{x}", @display.items.size+2).map {|x| [x.first, x.last.to_i]}
51: end
画面に対する操作へのリンクを返す。
# File app/helpers/product_generator_helper.rb, line 22
22: def links_for_operations(with_destroy)
23: links = [["memo.png", "e", "display_edit", s_("ProductGenerator|Edit")]]
24: links << ["delete.gif", "d", "display_destroy", s_("ProductGenerator|Delete")] if with_destroy
25: links.map do |image, suffix, action, alt|
26: link_to_view_motion(image_tag(image, {:alt => alt}),
27: "display", "#{@display.id}#{suffix}",
28: {}, {:action => action, :id => @display.id},
29: :class => "reloadable_link")
30: end.join(" ")
31: end
項目の位置を選択するための select box を返す。
# File app/helpers/product_generator_helper.rb, line 54
54: def position_selector
55: size = @display.items.size
56: options = ((size == 0) ? [] : (1..size).map {|i| [i, i]})
57: options.unshift([h(s_("Option|none")), ""])
58: select "item", "position", options
59: end
ビジネスロジックのパスを設定する check box を返す。
# File app/helpers/product_generator_helper.rb, line 34
34: def program_field(x)
35: check_box_with_label("display", "logic_#{x}", h(s_(DisplayToEdit::LOGIC_TYPE[x])))
36: end