active_element 0.0.23 → 0.0.24

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
2
  SHA256:
3
- metadata.gz: d8ae4f6f2b316d246e1e839840c7a291dd038d20ed12706ca8aa3f5965ce2053
4
- data.tar.gz: 7b895b021ddfd7635cbecfffc9e43a92efb5816efe1a629dc3290374259cc476
3
+ metadata.gz: d4f5dd5354dc376a1a2179ab3f2d95d64ad1bcdbb12811c3f42419311ae9667a
4
+ data.tar.gz: 9e27dcd69d2117ff43a10c4319cdfb8567f49b3a746a8d66960b9071b1481b94
5
5
  SHA512:
6
- metadata.gz: b75b45ef552b25e48c6ac8cfbc5489a7fe45066c14f13f172a169d6a8bb7d168d02668d494e065da8d1a9799b66f82047d37fbba6e46db22978b018eb31c2b22
7
- data.tar.gz: fe6c78e7e9fecdeeaef7153ef44168b9caa6dfbca3cac02cba6dd3d9952d614eb03e9cd52d26b921b64f45e177ed58e653450b21159691475ef0aa8074c97fec
6
+ metadata.gz: d7c47f04a28e066443c39c559c99be9d5ef90da0d130096ab1e1dd6a100ca5eb10c39d72af509ad6f6843526bdfb2613801578738d4f30d5ee267dbe61f2c2b8
7
+ data.tar.gz: ec1c2359b328cdc16de9123282106b851a5e9deac0f11764e6d7fd0356c6fbb898e5be653f5432c89f2bc620c10560b8ba7c670b526b3ab073d9a5cd1394fd68
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.24)
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)
@@ -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.24'
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.24
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