effective_bootstrap 1.14.11 → 1.14.12

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: c1c4ea60a0fdc9507852b607ec9809e8fb28490695f05df02ef4a8c11a1073ad
4
- data.tar.gz: ce5db2b16eb76d873d0cf0149c9e1eef9099f24a93c9c6fce89f4439013b3a4f
3
+ metadata.gz: da449090f0915cf6fbf42994401f49056bcc5fe1e1f6e45130b885f138cee53d
4
+ data.tar.gz: 5a8b92d846eb7ab5d6c1cfe644cf38cde4bda42600f87d18ee4dff7d5dbe9a8e
5
5
  SHA512:
6
- metadata.gz: 16cd1d8a558e7af223b3084fb281051c3bf54d59adbc26e3b357d22e36aaefd5f7c8674fde3e84a9b0a2907025d613997e580e0d8f8da61707bd714b02881daa
7
- data.tar.gz: b4cbd3b1aed8ef57810de7d64ef9997c7d80ab5a759ebb326ddcda13415f1dce247944bbe6101db105ccc534f2fe5eb98839afe63b096d96530f4ac2aae85f8d
6
+ metadata.gz: af6d95df0e83cb5dbb65a11f3666be5ef22a9f91797455e53343ceaecbdb4a2eb87ac9a2bcbdadbac9a20427bd55de0778829ca92859a02e74d7e2b905629dbf
7
+ data.tar.gz: 738864c3b53d675f58eef22f2ca32c72df0c628e59a25da0087c2f24ad4f62a95b51038ebf75e8a61a00bf7e3c740364fafafc9a6ad38a41c3d2ef86652063ed
@@ -119,6 +119,14 @@ module Effective
119
119
  rows[name] = TableRows::BelongsTo.new(name, options, builder: self).to_html
120
120
  end
121
121
 
122
+ def date_field(name, options = {})
123
+ rows[name] = TableRows::DateField.new(name, options, builder: self).to_html
124
+ end
125
+
126
+ def datetime_field(name, options = {})
127
+ rows[name] = TableRows::DatetimeField.new(name, options, builder: self).to_html
128
+ end
129
+
122
130
  def email_field(name, options = {})
123
131
  rows[name] = TableRows::EmailField.new(name, options, builder: self).to_html
124
132
  end
@@ -152,6 +160,10 @@ module Effective
152
160
  rows[name] = TableRows::PercentField.new(name, options, builder: self).to_html
153
161
  end
154
162
 
163
+ def tel_field(name, options = {})
164
+ rows[name] = TableRows::PhoneField.new(name, options, builder: self).to_html
165
+ end
166
+
155
167
  def price_field(name, options = {})
156
168
  rows[name] = TableRows::PriceField.new(name, options, builder: self).to_html
157
169
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Effective
4
+ module TableRows
5
+ class DateField < Effective::TableRow
6
+
7
+ def content
8
+ nice_date(value)
9
+ end
10
+
11
+ def nice_date(value)
12
+ return unless value.respond_to?(:strftime)
13
+
14
+ label = value.strftime("%b %-d, %Y")
15
+ full = value.strftime("%A %b %-d, %Y %l:%M%P %z")
16
+
17
+ now = Time.zone.now
18
+
19
+ distance = if (now > value)
20
+ template.distance_of_time_in_words(now, value) + ' ago'
21
+ else
22
+ template.distance_of_time_in_words(value, now) + ' from now'
23
+ end
24
+
25
+ content_tag(:span, label, title: full + ' (' + distance + ')')
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Effective
4
+ module TableRows
5
+ class DatetimeField < Effective::TableRow
6
+
7
+ def content
8
+ nice_date_time(value)
9
+ end
10
+
11
+ def nice_date_time(value)
12
+ return unless value.respond_to?(:strftime)
13
+
14
+ label = value.strftime("%b %-d, %Y %l:%M%P")
15
+ full = value.strftime("%A %b %-d, %Y %l:%M%P %z")
16
+
17
+ now = Time.zone.now
18
+
19
+ distance = if (now > value)
20
+ template.distance_of_time_in_words(now, value) + ' ago'
21
+ else
22
+ template.distance_of_time_in_words(value, now) + ' from now'
23
+ end
24
+
25
+ content_tag(:span, label, title: full + ' (' + distance + ')')
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Effective
4
+ module TableRows
5
+ class PhoneField < Effective::TableRow
6
+
7
+ def content
8
+ return unless value.present?
9
+
10
+ digits = value.split('x').first.delete('^0-9')
11
+ link_to(value, "tel:+1#{digits}")
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -5,7 +5,7 @@ module Effective
5
5
  class UrlField < Effective::TableRow
6
6
 
7
7
  def content
8
- template.link_to(value) if value.present?
8
+ template.link_to(value, value, target: '_blank') if value.present?
9
9
  end
10
10
 
11
11
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '1.14.11'.freeze
2
+ VERSION = '1.14.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.11
4
+ version: 1.14.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date: 2023-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -700,10 +700,13 @@ files:
700
700
  - app/models/effective/table_rows/boolean.rb
701
701
  - app/models/effective/table_rows/collection.rb
702
702
  - app/models/effective/table_rows/content_for.rb
703
+ - app/models/effective/table_rows/date_field.rb
704
+ - app/models/effective/table_rows/datetime_field.rb
703
705
  - app/models/effective/table_rows/effective_address.rb
704
706
  - app/models/effective/table_rows/email_field.rb
705
707
  - app/models/effective/table_rows/file_field.rb
706
708
  - app/models/effective/table_rows/percent_field.rb
709
+ - app/models/effective/table_rows/phone_field.rb
707
710
  - app/models/effective/table_rows/price_field.rb
708
711
  - app/models/effective/table_rows/text_area.rb
709
712
  - app/models/effective/table_rows/url_field.rb