forma 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: baeeeee488a2e83db0f5a4ae32636139fb6b3d0f
4
- data.tar.gz: 1e55a67d63b7b78807d158e8e56a60c80743e119
3
+ metadata.gz: a5d99ebcbdee2fe99c2b5d5a2559a8e183f56308
4
+ data.tar.gz: 2ebcf83d7e30b49b1ff9d76e8fe0b0c64a41dd91
5
5
  SHA512:
6
- metadata.gz: 5b78eeb95a98e27b286ca23d0f629f2446d7620efb89378a9c02289906c9d9c4c760511e55ba7889a221d5474560e7b5b4a42a4cdb175c836da0b977eb860b58
7
- data.tar.gz: c1f860166fe6375ddeece3de1bf2f3096e709490f66ef2ffd8812b94ae802f58ac52adb1ff96a29419512f21da86679aeb97470be58c34a190908c4d48569771
6
+ metadata.gz: 0926824b2c20ed74d2fa12da09ae3a1157f8a4b18ef385363c997c3e152743bc5e90eba652d908288da81f409103450cdd47e1c3da51fdbc329a764b43e04ff6
7
+ data.tar.gz: c1907dbc1170607cd8759e330237582652368cbcfc5dc5968e4455ee903bf18b6a5ec8654fb67f95675cf75c6ff750a2dbe90162559cb971ff3dac57ee2d8fa6
data/lib/forma/helpers.rb CHANGED
@@ -23,7 +23,7 @@ module Forma
23
23
  opts[:models] = models
24
24
  opts[:context] = block
25
25
  t = Forma::Table.new(opts)
26
- yield t if block_given?
26
+ (yield t) if block_given?
27
27
  t.to_html.to_s
28
28
  end
29
29
 
data/lib/forma/table.rb CHANGED
@@ -5,7 +5,7 @@ module Forma
5
5
  include Forma::FieldHelper
6
6
  include Forma::WithTitleElement
7
7
  attr_reader :collapsible, :collapsed, :icon, :title
8
- attr_reader :title_actions
8
+ attr_reader :title_actions, :row_class, :checkboxes
9
9
  attr_accessor :models
10
10
 
11
11
  def initialize(h = {})
@@ -23,6 +23,9 @@ module Forma
23
23
  # actions
24
24
  @title_actions = h[:title_actions] || []
25
25
  @item_actions = h[:item_actions] || []
26
+ # row class
27
+ @row_class = h[:row_class]
28
+ @checkboxes = h[:checkboxes]
26
29
  # context
27
30
  @context = h[:context]
28
31
  end
@@ -57,6 +60,9 @@ module Forma
57
60
  @paginate_options = h
58
61
  end
59
62
 
63
+ def row_class(clazz); @row_class = clazz end
64
+ def checkboxes(val=true); @checkboxes = val end
65
+
60
66
  private
61
67
 
62
68
  def body_element
@@ -71,7 +77,13 @@ module Forma
71
77
 
72
78
  def table_element
73
79
  def table_header_element
74
- children = @fields.map { |f|
80
+ children = []
81
+ if @checkboxes
82
+ children << el('th', attrs: { style: {width: '10px'} }, children: [
83
+ el('input', attrs: { id: "all-models", type: 'checkbox' })
84
+ ])
85
+ end
86
+ children += @fields.map { |f|
75
87
  f.model = @models.first
76
88
  label_text = f.localized_label
77
89
  label_hint = f.localized_hint
@@ -84,20 +96,32 @@ module Forma
84
96
  el('tr', children: children)
85
97
  ])
86
98
  end
99
+
87
100
  def table_row(model)
88
- children = @fields.map { |fld|
101
+ children = []
102
+ if @checkboxes
103
+ children << el('td', children: [
104
+ el('input', attrs: { id: "model-#{model.id}", type: 'checkbox' })
105
+ ])
106
+ end
107
+ children += @fields.map { |fld|
89
108
  fld.model = model
90
109
  el('td', children: [ fld.to_html(false) ])
91
110
  }
92
111
  if @item_actions.any?
93
112
  children << el('td', children: @item_actions.map { |act| act.to_html(model) })
94
113
  end
95
- el('tr', children: children)
114
+ ############################################################################################
115
+ options = { children: children }
116
+ options[:attrs] = { class: eval_with_model(@row_class, model: model) } if @row_class
117
+ ############################################################################################
118
+ html = el('tr', options)
96
119
  end
120
+
97
121
  def table_body_element
98
- children =
99
- el('tbody', children: @models.map { |model| table_row(model) })
122
+ children = el('tbody', children: @models.map { |model| table_row(model) })
100
123
  end
124
+
101
125
  if @models and @models.any?
102
126
  el('table', attrs: { class: 'ff-common-table' }, children: [ table_header_element, table_body_element ])
103
127
  else
@@ -119,5 +143,8 @@ module Forma
119
143
  ])
120
144
  end
121
145
  end
146
+
147
+ private
148
+ def eval_with_model(val, h={}); val.is_a?(Proc) ? val.call(h[:model] || self.model) : val.to_s end
122
149
  end
123
150
  end
data/lib/forma/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Forma
3
- VERSION = "0.1.9"
3
+ VERSION = "0.1.10"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Kurashvili
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-05 00:00:00.000000000 Z
11
+ date: 2014-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  version: '0'
169
169
  requirements: []
170
170
  rubyforge_project:
171
- rubygems_version: 2.3.0
171
+ rubygems_version: 2.4.1
172
172
  signing_key:
173
173
  specification_version: 4
174
174
  summary: rich forms for ruby