Class: Coalla::TableBuilder
- Inherits:
-
Object
- Object
- Coalla::TableBuilder
- Defined in:
- lib/coalla/builders/table_builder.rb
Instance Method Summary collapse
-
#action(value, options = {}) ⇒ Object
Метод добавляет кнопку в столбец действий.
-
#column(method, options = {}) ⇒ Object
Метод добавляет столбец к таблице.
- #content(collection, &block) ⇒ Object
-
#delete(options = {}) ⇒ Object
Метод добавляет кнопку удаления сущности в столбец действий.
-
#edit(options = {}) ⇒ Object
Метод добавляет кнопку редактирования сущности в столбец действий.
-
#edit_and_delete(options = {}) ⇒ Object
Метод добавляет кнопки добавления и удаления сущностей в столбец действий.
-
#initialize(context, model_class, options = {}) ⇒ TableBuilder
constructor
A new instance of TableBuilder.
-
#row_class(lmb) ⇒ Object
Метод позволяет передать блок, который должен вычислять класс для строки.
Constructor Details
#initialize(context, model_class, options = {}) ⇒ TableBuilder
Returns a new instance of TableBuilder.
7 8 9 10 11 12 |
# File 'lib/coalla/builders/table_builder.rb', line 7 def initialize(context, model_class, = {}) @context, @model_class = context, model_class @options = @columns = [] @table_formatter = TableFormatter.for(@model_class) end |
Instance Method Details
#action(value, options = {}) ⇒ Object
Метод добавляет кнопку в столбец действий
42 43 44 |
# File 'lib/coalla/builders/table_builder.rb', line 42 def action(value, = {}) add_action(value, ) end |
#column(method, options = {}) ⇒ Object
Метод добавляет столбец к таблице
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/coalla/builders/table_builder.rb', line 21 def column(method, = {}) helper = @table_formatter[method] cd = ColumnDefinition.new cd.title = [:title] || I18n.t("activerecord.attributes.#{@model_class.model_name.singular}.#{method}") cd.cols = [:cols] cd.col_class = [:class] cd.sort = sort_value(method, .fetch(:sort, false)) cd.edit = (method, .fetch(:edit, false)) cd.value_extractor = ->(item) { helper.format_value(item, [:format]) } cd.align = [:align] || helper.respond_to?(:align) && helper.align @columns << cd end |
#content(collection, &block) ⇒ Object
14 15 16 17 18 |
# File 'lib/coalla/builders/table_builder.rb', line 14 def content(collection, &block) @collection = collection block.call(self) if block_given? create_content end |
#delete(options = {}) ⇒ Object
Метод добавляет кнопку удаления сущности в столбец действий
52 53 54 |
# File 'lib/coalla/builders/table_builder.rb', line 52 def delete( = {}) add_action(:delete, ) end |
#edit(options = {}) ⇒ Object
Метод добавляет кнопку редактирования сущности в столбец действий
47 48 49 |
# File 'lib/coalla/builders/table_builder.rb', line 47 def edit( = {}) add_action(:edit, ) end |
#edit_and_delete(options = {}) ⇒ Object
Метод добавляет кнопки добавления и удаления сущностей в столбец действий
57 58 59 60 |
# File 'lib/coalla/builders/table_builder.rb', line 57 def edit_and_delete( = {}) self.edit() self.delete() end |
#row_class(lmb) ⇒ Object
Метод позволяет передать блок, который должен вычислять класс для строки. В этот блок передается объект, по которому данная строка рендерится. Таким образом, можно управлять, например, цветом строки в зависимости от состояния объекта (статусы заказов и прочее).
37 38 39 |
# File 'lib/coalla/builders/table_builder.rb', line 37 def row_class(lmb) @row_class = lmb end |