active_element 0.0.23 → 0.0.26

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: d8ae4f6f2b316d246e1e839840c7a291dd038d20ed12706ca8aa3f5965ce2053
4
- data.tar.gz: 7b895b021ddfd7635cbecfffc9e43a92efb5816efe1a629dc3290374259cc476
3
+ metadata.gz: 7b52329731b89b420606e12626f5bedadd828c0f66f24d712834fc39388c9fde
4
+ data.tar.gz: b2398bf299ee37f23346edc90a68de6d374eba6e5e4fa5524a1f85b82da769c5
5
5
  SHA512:
6
- metadata.gz: b75b45ef552b25e48c6ac8cfbc5489a7fe45066c14f13f172a169d6a8bb7d168d02668d494e065da8d1a9799b66f82047d37fbba6e46db22978b018eb31c2b22
7
- data.tar.gz: fe6c78e7e9fecdeeaef7153ef44168b9caa6dfbca3cac02cba6dd3d9952d614eb03e9cd52d26b921b64f45e177ed58e653450b21159691475ef0aa8074c97fec
6
+ metadata.gz: 9861c843209772178a1917a61f81463d08507585bc6c6cdcd5c3e605effe83521d2caa3a249442e07a4abdc75adc36b1bdf46e5106e03d2a4bfff58263c62488
7
+ data.tar.gz: 22b8dae6fbcc4095e50e74b0ec38f25ea2cd1d201549687c7f1b3af4be5de8501c773e37308967edd82d2697ca398862398d81ae892ecbeb20abf7ec8446b3fa
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_element (0.0.23)
4
+ active_element (0.0.26)
5
5
  bootstrap (~> 5.3.0alpha3)
6
6
  kaminari (~> 1.2)
7
7
  paintbrush (~> 0.1.2)
@@ -1,6 +1,8 @@
1
1
  (() => {
2
2
  const cloneElement = (id) => ActiveElement.cloneElement('form', id);
3
3
 
4
+ if (window._active_element_form_loaded) return;
5
+
4
6
  const initModalButtons = () => {
5
7
  document.querySelectorAll('[data-field-type="form-modal"]').forEach((element) => {
6
8
  const formId = element.dataset.formId;
@@ -17,9 +19,10 @@
17
19
 
18
20
  document.body.append(modal);
19
21
 
20
- element.addEventListener('click', () => {
22
+ element.addEventListener('click', (ev) => {
21
23
  wrapper.classList.remove('d-none');
22
24
  bootstrapModal.toggle();
25
+ ev.stopPropagation();
23
26
  return false;
24
27
  });
25
28
  });
@@ -43,4 +46,6 @@
43
46
  initModalButtons();
44
47
  initClearFormButtons();
45
48
  });
49
+
50
+ window._active_element_secrets_loaded = true;
46
51
  })();
@@ -84,7 +84,8 @@
84
84
  field: field,
85
85
  options: options,
86
86
  component: component,
87
- record: record }
87
+ record: record
88
+ }
88
89
  %>
89
90
  <% if type != :hidden_field %></div><% end %>
90
91
  <% end %>
@@ -7,7 +7,7 @@ module ActiveElement
7
7
  class Form # rubocop:disable Metrics/ClassLength
8
8
  include Translations
9
9
 
10
- attr_reader :controller
10
+ attr_reader :controller, :search
11
11
 
12
12
  # rubocop:disable Metrics/MethodLength
13
13
  def initialize(controller, fields:, submit:, item:, title: nil, destroy: false, search: false,
@@ -142,7 +142,7 @@ module ActiveElement
142
142
  private
143
143
 
144
144
  attr_reader :fields, :submit, :title, :kwargs, :item, :method, :action,
145
- :destroy, :modal, :columns, :search
145
+ :destroy, :modal, :columns
146
146
 
147
147
  def form_field_mapping
148
148
  @form_field_mapping ||= Util::FormFieldMapping.new(
@@ -231,9 +231,9 @@ module ActiveElement
231
231
 
232
232
  def options_with_inferred_translations(field, options)
233
233
  options.reverse_merge({
234
- label: i18n.label(field),
235
- description: i18n.description(field),
236
- placeholder: i18n.placeholder(field)
234
+ label: i18n.label(field, record: record),
235
+ description: i18n.description(field, record: record),
236
+ placeholder: i18n.placeholder(field, record: record)
237
237
  })
238
238
  end
239
239
 
@@ -267,6 +267,7 @@ module ActiveElement
267
267
  end
268
268
 
269
269
  def required?(field)
270
+ return false if search
270
271
  return false if record.blank?
271
272
  return false unless record.class.respond_to?(:validators)
272
273
 
@@ -15,31 +15,31 @@ module ActiveElement
15
15
  @component = component
16
16
  end
17
17
 
18
- def label(field)
19
- return titleize(field) unless model?
18
+ def label(field, record: nil)
19
+ return titleize(field) unless model?(record)
20
20
 
21
- key = "admin.models.#{model_key}.fields.#{field}.label"
21
+ key = "admin.models.#{model_key(record)}.fields.#{field}.label"
22
22
  ::I18n.t(key, default: titleize(field))
23
23
  end
24
24
 
25
- def description(field)
26
- return nil unless model?
25
+ def description(field, record: nil)
26
+ return nil unless model?(record)
27
27
 
28
- key = "admin.models.#{model_key}.fields.#{field}.description"
28
+ key = "admin.models.#{model_key(record)}.fields.#{field}.description"
29
29
  ::I18n.t(key, default: nil)
30
30
  end
31
31
 
32
- def placeholder(field)
33
- return nil unless model?
32
+ def placeholder(field, record: nil)
33
+ return nil unless model?(record)
34
34
 
35
- key = "admin.models.#{model_key}.fields.#{field}.placeholder"
35
+ key = "admin.models.#{model_key(record)}.fields.#{field}.placeholder"
36
36
  ::I18n.t(key, default: nil)
37
37
  end
38
38
 
39
- def format(field)
40
- return nil unless model?
39
+ def format(field, record: nil)
40
+ return nil unless model?(record)
41
41
 
42
- key = "admin.models.#{model_key}.fields.#{field}.format"
42
+ key = "admin.models.#{model_key(record)}.fields.#{field}.format"
43
43
  ::I18n.t(key, default: nil)
44
44
  end
45
45
 
@@ -47,14 +47,14 @@ module ActiveElement
47
47
 
48
48
  attr_reader :component
49
49
 
50
- def model_key
51
- @model_key ||= component.model.name.underscore.pluralize
50
+ def model_key(record = nil)
51
+ @model_key ||= (record&.class || component.model).name.underscore.pluralize
52
52
  end
53
53
 
54
- def model?
55
- return false if component.model.nil?
54
+ def model?(record = nil)
55
+ return false if record.nil? && component.model.nil?
56
56
 
57
- component.model.is_a?(ActiveModel::Naming)
57
+ (record&.class || component.model).is_a?(ActiveModel::Naming)
58
58
  end
59
59
 
60
60
  def titleize(field)
@@ -157,6 +157,8 @@ module ActiveElement
157
157
  end
158
158
 
159
159
  def noop
160
+ return {} if defined?(::Mongoid) && model&.include?(::Mongoid::Document)
161
+
160
162
  Arel::Nodes::True.new.eq(Arel::Nodes::True.new)
161
163
  end
162
164
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveElement
4
- VERSION = '0.0.23'
4
+ VERSION = '0.0.26'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_element
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Farrell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-04 00:00:00.000000000 Z
11
+ date: 2024-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootstrap