cm-admin 1.3.2 → 1.3.4

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: 653bbd73e1bb64cbc7a6a56624ffa50d55942e4b1fe42d3be44af91d7e31d14b
4
- data.tar.gz: 71ebf18e94bca9bce2453688683aad2f35373ab346d7815b992d009aaeb4cfbb
3
+ metadata.gz: 8d8b59bb29b63e28e9f7477b9dd9dda0b2fead59924bf27bae4a6a524310a99f
4
+ data.tar.gz: 31ad3672cf1f5811e0db81ea7937728b07c4cec6471e3bebb027559c78d08266
5
5
  SHA512:
6
- metadata.gz: b0b8346923b752798b96faf677ef08fd71f6ed343a4baaa8333a49a1feb93b737e6d77f228851e7b63adf66f490ebf6c452cd9b13c8e75677497e2ff8247a89f
7
- data.tar.gz: 90a247fd04d1b7fdf647c3ace27ba7e9b176e1af000fc5718551ab76dcd87198bdcb2c54cfed2aa3571f2fde0e32520142bca75c8f49a51f57f6400648838d8c
6
+ metadata.gz: b0952b765aef635678377f3a6bdb7bdd973aa4bd9cd57be2a52522240fce40dac39f55138b04c0f25c220fc9a1f1848704184456cedc3e76742f7aad1b436c7f
7
+ data.tar.gz: f37b2418e744562c062ac520ef51b3deda72718c41d4459598fe89ea9b59a1dfaa76971b04f2cd4a41395e04ba6e3017bba7e4cedc8a22e3c25bb499d90e2f92
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cm-admin (1.3.2)
4
+ cm-admin (1.3.4)
5
5
  caxlsx_rails
6
6
  cocoon (~> 1.2.15)
7
7
  csv-importer (~> 0.8.2)
@@ -1,20 +1,19 @@
1
1
  $(document).on('click', '.form_submit', function(e) {
2
- console.log('Came here')
3
2
  e.preventDefault();
4
3
  var submit = [];
5
4
  var form_class = $(this).data('form-class');
6
5
  $("." + form_class + " input.required, ." + form_class + " textarea.required").each(function() {
7
- $(this).removeClass('error');
6
+ $(this).removeClass('is-invalid');
8
7
  if ($(this).val().trim().length === 0) {
9
- $(this).addClass('error');
8
+ $(this).addClass('is-invalid');
10
9
  $(this)[0].scrollIntoView(true);
11
10
  submit.push(true);
12
11
  }
13
12
  });
14
13
  $("." + form_class + " select.required").each(function() {
15
- $(this).removeClass('error');
14
+ $(this).removeClass('is-invalid');
16
15
  if ($(this).val().trim().length === 0) {
17
- $(this).parent().find('.select2').addClass('error');
16
+ $(this).parent().find('.select2').addClass('is-invalid');
18
17
  $(this)[0].scrollIntoView(true);
19
18
  submit.push(true);
20
19
  }
@@ -60,4 +60,4 @@
60
60
  .pagination-bar
61
61
  p.count-text.m-0 Showing #{@associated_ar_object.pagy.from} to #{@associated_ar_object.pagy.to} out of #{@associated_ar_object.pagy.count}
62
62
  == render partial: 'cm_admin/main/cm_pagy_nav', locals: { pagy: @associated_ar_object.pagy }
63
- = render partial: 'cm_admin/main/member_custom_action_modal', locals: { cm_model: @associated_model, ar_collection: @associated_ar_object }
63
+ / = render partial: 'cm_admin/main/member_custom_action_modal', locals: { cm_model: @associated_model, ar_collection: @associated_ar_object }
@@ -10,7 +10,7 @@
10
10
  | Attention
11
11
  .alert-body
12
12
  p.body-title
13
- | Error: unable to save #{@ar_object.class.downcase}
13
+ | Error: unable to save #{@ar_object.class.name.downcase}
14
14
  p.body-info
15
15
  ul
16
16
  - @ar_object.errors.full_messages.each do |error_message|
@@ -10,7 +10,7 @@ module CmAdmin
10
10
 
11
11
  VALID_INPUT_TYPES = %i[
12
12
  integer decimal string single_select multi_select date date_time text
13
- single_file_upload multi_file_upload hidden rich_text check_box radio_button
13
+ single_file_upload multi_file_upload hidden rich_text check_box radio_button custom_string custom_date custom_single_select
14
14
  ].freeze
15
15
 
16
16
  def initialize(field_name, input_type, attributes = {})
@@ -25,7 +25,7 @@ module CmAdmin
25
25
  end
26
26
 
27
27
  def set_default_values
28
- self.disabled = false
28
+ self.disabled = lambda { |arg| return false } if display_if.nil?
29
29
  self.label = self.field_name.to_s.titleize
30
30
  self.input_type = :string
31
31
  self.html_attr = {}
@@ -1,3 +1,3 @@
1
1
  module CmAdmin
2
- VERSION = '1.3.2'
2
+ VERSION = '1.3.4'
3
3
  end
@@ -3,8 +3,14 @@ module CmAdmin
3
3
  module FormFieldHelper
4
4
  def input_field_for_column(form_obj, cm_field)
5
5
  return unless cm_field.display_if.call(form_obj.object)
6
-
7
- value = cm_field.helper_method ? send(cm_field.helper_method, form_obj.object, cm_field.field_name) : form_obj.object.send(cm_field.field_name)
6
+ if cm_field.helper_method
7
+ value = send(cm_field.helper_method, form_obj.object, cm_field.field_name)
8
+ elsif cm_field.input_type.to_s.include?('custom')
9
+ value = nil
10
+ else
11
+ value = form_obj.object.send(cm_field.field_name)
12
+ end
13
+ # value = cm_field.helper_method ? send(cm_field.helper_method, form_obj.object, cm_field.field_name) : form_obj.object.send(cm_field.field_name)
8
14
  is_required = form_obj.object._validators[cm_field.field_name].map(&:kind).include?(:presence)
9
15
  required_class = is_required ? 'required' : ''
10
16
  target_action = @model.available_actions.select { |x| x.name == cm_field.target[:action_name].to_s }.first if cm_field.target.present?
@@ -14,7 +20,7 @@ module CmAdmin
14
20
  def cm_integer_field(form_obj, cm_field, value, required_class, _target_action)
15
21
  form_obj.text_field cm_field.field_name,
16
22
  class: "field-control #{required_class}",
17
- disabled: cm_field.disabled,
23
+ disabled: cm_field.disabled.call(form_obj.object),
18
24
  value: value,
19
25
  placeholder: cm_field.placeholder,
20
26
  data: { behaviour: 'integer-only' }
@@ -23,7 +29,7 @@ module CmAdmin
23
29
  def cm_decimal_field(form_obj, cm_field, value, required_class, _target_action)
24
30
  form_obj.number_field cm_field.field_name,
25
31
  class: "field-control #{required_class}",
26
- disabled: cm_field.disabled,
32
+ disabled: cm_field.disabled.call(form_obj.object),
27
33
  value: value,
28
34
  placeholder: cm_field.placeholder,
29
35
  data: { behaviour: 'decimal-only' }
@@ -32,16 +38,23 @@ module CmAdmin
32
38
  def cm_string_field(form_obj, cm_field, value, required_class, _target_action)
33
39
  form_obj.text_field cm_field.field_name,
34
40
  class: "field-control #{required_class}",
35
- disabled: cm_field.disabled,
41
+ disabled: cm_field.disabled.call(form_obj.object),
36
42
  value: value,
37
43
  placeholder: cm_field.placeholder
38
44
  end
39
45
 
46
+ def cm_custom_string_field(form_obj, cm_field, value, required_class, _target_action)
47
+ text_field_tag cm_field.html_attr[:name] || cm_field.field_name,
48
+ value, class: "field-control #{required_class}",
49
+ disabled: cm_field.disabled.call(form_obj.object),
50
+ placeholder: cm_field.placeholder
51
+ end
52
+
40
53
  def cm_single_select_field(form_obj, cm_field, value, required_class, target_action)
41
54
  form_obj.select cm_field.field_name, options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
42
55
  { include_blank: cm_field.placeholder },
43
56
  class: "field-control #{required_class} select-2",
44
- disabled: cm_field.disabled,
57
+ disabled: cm_field.disabled.call(form_obj.object),
45
58
  data: {
46
59
  field_name: cm_field.field_name,
47
60
  field_type: 'linked-field',
@@ -50,18 +63,42 @@ module CmAdmin
50
63
  }
51
64
  end
52
65
 
66
+ def cm_custom_single_select_field(form_obj, cm_field, value, required_class, target_action)
67
+ select_tag cm_field.html_attr[:name] || cm_field.field_name,
68
+ options_for_select(select_collection_value(form_obj.object, cm_field)),
69
+ {
70
+ include_blank: cm_field.placeholder,
71
+ class: "field-control #{required_class} select-2",
72
+ disabled: cm_field.disabled.call(form_obj.object),
73
+ data: {
74
+ field_name: cm_field.field_name,
75
+ field_type: 'linked-field',
76
+ target_action: target_action&.name,
77
+ target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path") : ''
78
+ }
79
+ }
80
+ end
81
+
53
82
  def cm_multi_select_field(form_obj, cm_field, value, required_class, target_action)
54
83
  form_obj.select cm_field.field_name,
55
84
  options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
56
85
  { include_blank: cm_field.placeholder },
57
86
  class: "field-control #{required_class} select-2",
58
- disabled: cm_field.disabled, multiple: true
87
+ disabled: cm_field.disabled.call(form_obj.object), multiple: true
59
88
  end
60
89
 
61
90
  def cm_date_field(form_obj, cm_field, value, required_class, _target_action)
62
91
  form_obj.text_field cm_field.field_name,
63
92
  class: "field-control #{required_class}",
64
- disabled: cm_field.disabled,
93
+ disabled: cm_field.disabled.call(form_obj.object),
94
+ placeholder: cm_field.placeholder,
95
+ data: { behaviour: 'date-only' }
96
+ end
97
+
98
+ def cm_custom_date_field(form_obj, cm_field, value, required_class, _target_action)
99
+ text_field_tag cm_field.html_attr[:name] || cm_field.field_name, value&.strftime('%d-%m-%Y'),
100
+ class: "field-control #{required_class}",
101
+ disabled: cm_field.disabled.call(form_obj.object),
65
102
  value: value&.strftime('%d-%m-%Y'),
66
103
  placeholder: cm_field.placeholder,
67
104
  data: { behaviour: 'date-only' }
@@ -70,7 +107,7 @@ module CmAdmin
70
107
  def cm_date_time_field(form_obj, cm_field, value, required_class, _target_action)
71
108
  form_obj.text_field cm_field.field_name,
72
109
  class: "field-control #{required_class}",
73
- disabled: cm_field.disabled,
110
+ disabled: cm_field.disabled.call(form_obj.object),
74
111
  value: value,
75
112
  placeholder: cm_field.placeholder,
76
113
  data: { behaviour: 'date-time' }
@@ -90,14 +127,14 @@ module CmAdmin
90
127
 
91
128
  def cm_single_file_upload_field(form_obj, cm_field, _value, required_class, _target_action)
92
129
  content_tag(:div) do
93
- concat form_obj.file_field cm_field.field_name, class: "form-control #{required_class}", disabled: cm_field.disabled
130
+ concat form_obj.file_field cm_field.field_name, class: "field-control #{required_class}", disabled: cm_field.disabled.call(form_obj.object)
94
131
  concat attachment_list(form_obj, cm_field, _value, required_class, _target_action)
95
132
  end
96
133
  end
97
134
 
98
135
  def cm_multi_file_upload_field(form_obj, cm_field, _value, required_class, _target_action)
99
136
  content_tag(:div) do
100
- concat form_obj.file_field cm_field.field_name, multiple: true, class: "form-control #{required_class}", disabled: cm_field.disabled
137
+ concat form_obj.file_field cm_field.field_name, multiple: true, class: "field-control #{required_class}", disabled: cm_field.disabled.call(form_obj.object)
101
138
  concat attachment_list(form_obj, cm_field, _value, required_class, _target_action)
102
139
  end
103
140
  end
@@ -159,7 +196,7 @@ module CmAdmin
159
196
  form_obj.check_box cm_field.field_name,
160
197
  {
161
198
  class: "field-control cm-checkbox #{required_class} #{target_action.present? ? 'linked-field-request' : ''}",
162
- disabled: cm_field.disabled,
199
+ disabled: cm_field.disabled.call(form_obj.object),
163
200
  data: {
164
201
  field_name: cm_field.field_name,
165
202
  target_action: target_action&.name,
@@ -189,7 +226,7 @@ module CmAdmin
189
226
  concat form_obj.check_box cm_field.field_name,
190
227
  {
191
228
  class: "field-control cm-checkbox #{required_class} #{target_action.present? ? 'linked-field-request' : ''}",
192
- disabled: cm_field.disabled,
229
+ disabled: cm_field.disabled.call(form_obj.object),
193
230
  name: "#{@model.name.underscore}[#{cm_field.field_name}][]",
194
231
  data: {
195
232
  target_action: target_action&.name,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cm-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - sajinmp
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-11-02 00:00:00.000000000 Z
13
+ date: 2023-11-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails