active_scaffold_child_memberships 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 3ed22261d2b7d6a07b9f61b19b419bf4ff53491b57671aa5e702f629f41d1b25
4
- data.tar.gz: f70a457b8bdfbfe185141a861ee6e1b91cd4960953148e8cdffbff273ec8e56c
3
+ metadata.gz: dcae2e51da5f8fbd6657b07a650b7b2b14af07a2fa5050c7ef1da0efff40d2ca
4
+ data.tar.gz: 448d1630e63518f9a70ac0470ba274731d07774a1edc7fc8671f1a58a6458bab
5
5
  SHA512:
6
- metadata.gz: 6a183a7b1b809c43b2513aba3b85f595c7f3a559bd5d1cd86004dd572639b4b1473cd2745cf8b32a21c61c02a21d14e3ef9162d6e109ac0803dbc19fe7aa299a
7
- data.tar.gz: 78bc6ea3fc431364211180efbc05524eba8e1215d807853447034af896fe17422dbc243559151f651ea242f35247e221553632aa66f96154113061e781c7c45e
6
+ metadata.gz: 1456b4e117597f4d3f113d27df2baca7b6f780d37586aa8a3e7781cb5106344c3ce2503b82651c75df54a0bb1a6ab7cd5c002df332072069be0b7c843beed40b
7
+ data.tar.gz: b6783c577d011dd4a011e9589e22b1cc398038402aeffba7cc1d86b13c5c93d04b73ddf6c6315736c56fa5a53dccad8fcb28234d3d5d828fa459c844b8cb4101
data/README.md CHANGED
@@ -89,7 +89,7 @@ If new columns are not allowed, it can be disabled using `add_label: false`:
89
89
 
90
90
  ## Overriding Helpers
91
91
 
92
- The helper `active_scaffold_child_memberships_helper` can be overrided to change the default columns rendered, instead of the assigned records only. For example to render all available roles:
92
+ The helper `active_scaffold_child_memberships_members` can be overrided to change the default columns rendered, instead of the assigned records only. For example to render all available roles:
93
93
 
94
94
  ```ruby
95
95
  def active_scaffold_child_memberships_helper(column, row_records)
@@ -118,3 +118,15 @@ end
118
118
  ```
119
119
 
120
120
  Also, the available records can be changed with the usual methods, `options_for_association_conditions` and `association_klass_scoped`, they receive the source association of the has_many through association (`:roles` in the example), and an empty record of the through association.
121
+
122
+ To change how checkboxes are rendered, for example, adding extra content, the helper `active_scaffold_child_memberships_checkbox` can be overrided. It supports model prefix too. The argument child is the record of the row, and member is the record of the column.
123
+
124
+ ```ruby
125
+ def active_scaffold_child_memberships_checkbox(column, source_column, child, member, name:, value:)
126
+ if column == :roles
127
+ safe_join [super, content_tag(:span, member.state_for(child))]
128
+ else
129
+ super
130
+ end
131
+ end
132
+ ```
@@ -15,9 +15,11 @@ module ActiveScaffoldChildMemberships
15
15
  end
16
16
  header.unshift content_tag(:th, through_col.label)
17
17
 
18
+ checkbox_helper = override_helper_per_model(:active_scaffold_child_membership_checkbox, column.active_record_class)
18
19
  rows = children.map do |record|
20
+ checkbox_name = "#{options[:name]}[memberships][#{record.id}][]"
19
21
  columns = column_records.map.with_index do |member, i|
20
- content_tag(:td, check_box_tag("#{options[:name]}[memberships][#{record.id}][]", i, record.send(source_col.name).include?(member), id: nil))
22
+ content_tag(:td, send(checkbox_helper, column, source_col, record, member, name: checkbox_name, value: i))
21
23
  end
22
24
  label = record.send(ui_options[:child_label_method] || :to_label)
23
25
  columns.unshift content_tag(:td, h(label))
@@ -44,6 +46,10 @@ module ActiveScaffoldChildMemberships
44
46
  row_records.flat_map(&column.association.source_reflection.name).uniq
45
47
  end
46
48
 
49
+ def active_scaffold_child_membership_checkbox(column, source_column, child, member, name:, value:)
50
+ check_box_tag(name, value, child.send(source_column.name).include?(member), id: nil)
51
+ end
52
+
47
53
  def active_scaffold_child_memberships_new_column(column, name, source_col, ui_options)
48
54
  inplace_options = {object: source_col.active_record_class.new, id: '', disabled: true, associated: nil, class: 'inplace_field', name: name}
49
55
  form_ui, form_ui_options = ui_options[:add_column_ui]
@@ -2,7 +2,7 @@ module ActiveScaffoldChildMemberships
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 1
5
+ PATCH = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold_child_memberships
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Cambra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-16 00:00:00.000000000 Z
11
+ date: 2025-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold