ct_table_for 0.1.13.beta → 0.1.14.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2d919b7dfe484a4150f43f2a2679fafc718b80e1
4
- data.tar.gz: 7b86f06ecafbca0bc9401aa6f29d50d2ee0e66f4
2
+ SHA256:
3
+ metadata.gz: 041f6baa92ac9afa0958cc533634b04a227375a78ad0112e04443c918769960a
4
+ data.tar.gz: 106b8f09e6c614d19de6063cb0beaed28ce8d8751a2c126f300070ab00460907
5
5
  SHA512:
6
- metadata.gz: facae6310e063ca4d30b2c73beae3ad346e975f5d4f30bc87097a981e7952912d5271682212563100868fa4a18142ca25d006b8fb4f931283a65bf274fa526a5
7
- data.tar.gz: 6a0321ab6e28ffad1abb2b67c69d944b2a582a859f7afe38d6ce46e0162fe0a19075e7fafc1e6e52a6cab37363a43b6be9b275022727fa886af858c5f9968592
6
+ metadata.gz: db5fee74fd15bd4ce79e9afd1ab1bf17d2e54664f6db63f34ba0fea0e1749302175e59413dfd8976298e6cc7a11574258d33575918e4d3ffed0badd02c8fe476
7
+ data.tar.gz: d123e433841e73634945b587f7e398a46ef70c6349e50e4a9923b5bb9816c911997d95cdd76b49baf659c6b5aa0c8387d665470b354e79b4a3c826a76b5e8c18
data/README.md CHANGED
@@ -74,6 +74,8 @@ Create config variables in your app's /config/initializers/ct_table_for.rb
74
74
  CtTableFor.setup do |config|
75
75
  config.table_for_wrapper_default_class = "table-responsive"
76
76
  config.table_for_default_class = "table table-striped table-bordered table-condensed table-hover"
77
+ config.table_for_default_action_base_class = "btn btn-sm"
78
+ config.table_for_action_class = {show: "btn-primary", edit: "btn-success", destroy: "btn-danger", other: "btn-default"}
77
79
  config.table_for_breakpoint = "992px" # or could be done by sass
78
80
  config.table_for_icon_font = "fa"
79
81
  config.table_for_action_icons = {show: "eye", edit: "pencil", destroy: "trash"}
@@ -18,6 +18,10 @@ module CtTableFor
18
18
  # id: "my-id", // String: adds custom id to <table> element
19
19
  # class: "my-custom-css", // String: add custom class to <table> element
20
20
  # tr_class: "my-custom-css" // String: add custom class to <tr> element
21
+ # btn_class: { // Hash: add custom class to action buttons
22
+ # show: "my-custom-css",
23
+ # edit: "my-custom-css"
24
+ # }
21
25
  # clickable: true || Array // Boolean or Array of nested resources for polymorphic_url
22
26
  #}
23
27
  ####################################################################################
@@ -94,12 +98,18 @@ module CtTableFor
94
98
 
95
99
  def table_for_cell model, record, attribute, cell_options: {}
96
100
  html = ""
97
- value = record.try(attribute.to_sym)
101
+ value = if record.respond_to?(attribute.to_sym)
102
+ record.send(attribute.to_sym)
103
+ elsif self.respond_to?(attribute.to_sym)
104
+ self.send(attribute.to_sym, record)
105
+ else
106
+ nil
107
+ end
98
108
 
99
109
  html << %Q{<td data-title="#{model.human_attribute_name("#{attribute}")}">}
100
110
  case value
101
111
  when NilClass
102
- html << %Q{<i class="fa fa-asterisk text-muted"></i>}
112
+ html << %Q{<i class="fa fa-minus text-muted"></i>}
103
113
  when TrueClass, FalseClass
104
114
  html << %Q{<i class="fa #{value ? "fa-check text-success" : "fa-times text-danger"}"></i>}
105
115
  when Numeric
@@ -170,24 +180,25 @@ module CtTableFor
170
180
  buttons.each do |action|
171
181
  return "" if defined?(CanCanCan) and cannot?(action, record)
172
182
  label = I18n.t(action.to_sym, scope: [:table_for, :buttons]).capitalize
183
+ custom_action_class = %Q{#{CtTableFor.table_for_default_action_base_class} #{options.dig(:btn_class, action.to_sym) || CtTableFor.table_for_action_class[action.to_sym]}}
173
184
  case action.to_sym
174
185
  when :show
175
186
  if options[:actions][:icons] != false
176
187
  label = %Q{<i class="#{CtTableFor.table_for_icon_font_base_class} #{CtTableFor.table_for_icon_font_base_class}-#{CtTableFor.table_for_action_icons[:show]}"></i>}
177
188
  end
178
- html << link_to(label.html_safe, polymorphic_path(nesting), class: "btn btn-primary btn-sm")
189
+ html << link_to(label.html_safe, polymorphic_path(nesting), class: custom_action_class)
179
190
  when :edit
180
191
  if options[:actions][:icons] != false
181
192
  label = %Q{<i class="#{CtTableFor.table_for_icon_font_base_class} #{CtTableFor.table_for_icon_font_base_class}-#{CtTableFor.table_for_action_icons[:edit]}"></i>}
182
193
  end
183
- html << link_to(label.html_safe, edit_polymorphic_path(nesting), class: "btn btn-success btn-sm")
194
+ html << link_to(label.html_safe, edit_polymorphic_path(nesting), class: custom_action_class)
184
195
  when :destroy
185
196
  if options[:actions][:icons] != false
186
197
  label = %Q{<i class="#{CtTableFor.table_for_icon_font_base_class} #{CtTableFor.table_for_icon_font_base_class}-#{CtTableFor.table_for_action_icons[:destroy]}"></i>}
187
198
  end
188
199
  html << link_to(label.html_safe, polymorphic_path(nesting),
189
- method: :delete, class: "btn btn-danger btn-sm",
190
- data: { confirm: I18n.t('are_you_sure').capitalize })
200
+ method: :delete, class: custom_action_class,
201
+ data: { confirm: I18n.t('table_for.messages.are_you_sure').capitalize })
191
202
  else
192
203
  # TODO:
193
204
  # nesting_custom = nesting + btn_options[0]
@@ -2,6 +2,8 @@ module CtTableFor
2
2
  class << self
3
3
  mattr_accessor :table_for_default_class
4
4
  mattr_accessor :table_for_wrapper_default_class
5
+ mattr_accessor :table_for_default_action_base_class
6
+ mattr_accessor :table_for_action_class
5
7
  mattr_accessor :table_for_breakpoint
6
8
  mattr_accessor :table_for_icon_font_base_class
7
9
  mattr_accessor :table_for_action_icons
@@ -13,6 +15,8 @@ module CtTableFor
13
15
 
14
16
  self.table_for_wrapper_default_class = "table-responsive"
15
17
  self.table_for_default_class = "table table-striped table-bordered table-condensed table-hover"
18
+ self.table_for_default_action_base_class = "btn btn-sm"
19
+ self.table_for_action_class = {show: "btn-primary", edit: "btn-success", destroy: "btn-danger", other: "btn-default"}
16
20
  self.table_for_breakpoint = "992px"
17
21
  self.table_for_icon_font_base_class = "fa"
18
22
  self.table_for_action_icons = {show: "eye", edit: "pencil", destroy: "trash", custom: "gear"}
@@ -1,3 +1,3 @@
1
1
  module CtTableFor
2
- VERSION = '0.1.13.beta'
2
+ VERSION = '0.1.14.beta'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ct_table_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13.beta
4
+ version: 0.1.14.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustí B.R.
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-11-13 00:00:00.000000000 Z
13
+ date: 2018-11-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  version: 1.3.1
69
69
  requirements: []
70
70
  rubyforge_project:
71
- rubygems_version: 2.5.1
71
+ rubygems_version: 2.7.6
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: Rails table builder that makes it easy to do responsive tables ActiveRecord