five-two-nw-olivander 0.2.0.30 → 0.2.0.31

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: bf65e51e30f810ec8599078545ed70b9b8ba984c6e32c6485823a46995bac530
4
- data.tar.gz: e4b702e0da5ef1bda84add56712f4bf2d20ae672e955a44645eb3e44a80ed96f
3
+ metadata.gz: a1527b1808409e4c9fd29465a1c0744806daa5084e78117072eef5df8948526c
4
+ data.tar.gz: 768af4436b656b56a64c1e614d8eaf8b2107d5a12af485c5101e05b64b62e8a7
5
5
  SHA512:
6
- metadata.gz: 24050b1455acf076f8707f4d031972995e98e31e82ebf2eaa970f0e24c8fc52fe1120a3bd1425c62499cfea954039f6e8c5bdb9b23e4d3c1c384696b7b6e9004
7
- data.tar.gz: 3778d4b7121de45d24e60421bb9d7bdad26fd1424bb4073fff5f4419624c9aaf24aa7516c8faad407eb5d796dcefe03d55c7049d92d666b955d9f43f15fd94e2
6
+ metadata.gz: 7c8682757f8441cf012c6204b32f7168b93bcbddf890c3f79793235cf8b3038dfd0c68c67b62536a0af12fcc66eeb50b759294682a7592f796deaa3998d7c5cb
7
+ data.tar.gz: 895aa1992d3e2583d7380f145fa02f6c89fc9b700d9f378f95f85ab3cb7a3830f4b1b22b12923295da4145dc84ff7b478b804232d4c32ed289a08584308c7ba7
@@ -14,4 +14,4 @@
14
14
  - elsif boolean?(field)
15
15
  = @f.input field.sym, disabled: !field.editable, as: field.type.to_sym, input_html: { data: input_data_hash_for(field) }
16
16
  - else
17
- = @f.input field.sym, disabled: !field.editable, as: field.type.to_sym, input_html: { rows: 10, data: input_data_hash_for(field) }
17
+ = @f.input field.sym, disabled: !field.editable, as: field.type.to_sym, picker_options: input_picker_options_for(field), input_html: { rows: 10, data: input_data_hash_for(field) }
@@ -28,6 +28,17 @@ class Olivander::Components::ResourceFormComponent < ViewComponent::Base
28
28
  }
29
29
  end
30
30
 
31
+ def input_picker_options_for(field)
32
+ case field.type
33
+ when :datetime
34
+ { icons: { time: 'far fa-clock' } }
35
+ when :date
36
+ { 'format': 'MM/DD/YYYY' }
37
+ else
38
+ {}
39
+ end
40
+ end
41
+
31
42
  def taggable?(field)
32
43
  method_key = "#{field.sym}_taggable?"
33
44
  return false unless @resource.class.respond_to?(method_key)
@@ -195,8 +195,10 @@ module Olivander
195
195
  def rearrange_date_param(value)
196
196
  return nil if value.blank?
197
197
 
198
- parts = value.split('/')
199
- "#{parts[2]}-#{parts[0]}-#{parts[1]}"
198
+ datetime_parts = value.split(' ')
199
+ date_parts = datetime_parts.first.split('/')
200
+ datetime_parts[0] = "#{date_parts[2]}-#{date_parts[0]}-#{date_parts[1]}"
201
+ datetime_parts.join(' ')
200
202
  end
201
203
  end
202
204
  end
@@ -5,7 +5,7 @@ module Olivander
5
5
  modded = count % 12
6
6
  divisor = modded.zero? ? 1 : modded
7
7
  "col-#{label}-#{[12/divisor, min].max}"
8
-
8
+
9
9
  divisor = count
10
10
  result = 12/divisor
11
11
  while result < min
@@ -1,12 +1,10 @@
1
1
  class DateTimeInput < SimpleForm::Inputs::Base
2
2
  def input(wrapper_options)
3
- date_format = options[:date_format] || '%m/%d/%Y'
4
- raw_value = object.public_send(attribute_name)
5
- raw_value = raw_value.strftime(date_format) if raw_value.present?
3
+ raw_value = parse_value(object.public_send(attribute_name), options[:date_format])
6
4
 
7
5
  disabled = options[:disabled] || false
8
6
 
9
- hash = { id: "#{attribute_name}_datetimepicker", class: 'form-control', value: raw_value, disabled: disabled, 'data-toggle': 'datetimepicker', 'data-target': "##{attribute_name}_datetimepicker" }
7
+ hash = { id: "#{attribute_name}_datetimepicker", class: 'form-control datetimepicker-input', value: raw_value, disabled: disabled, 'data-toggle': 'datetimepicker', 'data-target': "##{attribute_name}_datetimepicker" }
10
8
  data = options[:data] || {}
11
9
  data.keys.each do |d|
12
10
  hash["data-#{d.to_s.dasherize}".to_sym] = data[d]
@@ -26,7 +24,7 @@ class DateTimeInput < SimpleForm::Inputs::Base
26
24
 
27
25
  script = "".html_safe
28
26
  unless disabled then
29
- picker_options = options[:picker_options] || { "format" => "MM/DD/YYYY" }
27
+ picker_options = options[:picker_options] || { "format": "MM/DD/YYYY" }
30
28
 
31
29
  script = """
32
30
  <script>
@@ -41,4 +39,16 @@ class DateTimeInput < SimpleForm::Inputs::Base
41
39
 
42
40
  all + script
43
41
  end
42
+
43
+ def parse_value(raw_value, format)
44
+ return nil unless raw_value.present?
45
+
46
+ format ||= case raw_value.class.name
47
+ when 'Time', 'ActiveSupport::TimeWithZone'
48
+ '%m/%d/%Y %H:%M %p'
49
+ else
50
+ '%m/%d/%Y'
51
+ end
52
+ raw_value.strftime(format)
53
+ end
44
54
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # needed for gem
4
4
  module Olivander
5
- VERSION = '0.2.0.30'
5
+ VERSION = '0.2.0.31'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: five-two-nw-olivander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.30
4
+ version: 0.2.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Dennis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-27 00:00:00.000000000 Z
11
+ date: 2024-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chartkick