glimmer-cw-cdatetime-nebula 1.5.0.2.0 → 1.5.0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +3 -1
- data/VERSION +1 -1
- data/opal/glimmer-cw-cdatetime-nebula/ext/glimmer/swt/c_date_time_proxy.rb +92 -47
- data/samples/nebula/c_date_time_gallery.rb +12 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eed11d34e046c49e1784c672e4b8a857e42415c6edfa51525367a43f36cd95b
|
4
|
+
data.tar.gz: f0f22840c3b0629c4da6e895325bbcddc8604b11efb5b914f2c67b84831ec6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4288432cfd5ce4fb201a4d104716eaaffb8c3cbb92a1f82e5ddd12f0ead0386c0b47a793a80ad1e9cdee5bb30e234258cf86a0e4762213d32acf122ab5ae534
|
7
|
+
data.tar.gz: 13245e207fd752175fee1ea8af52d8471d6b55f94c5a9c1e7282c5ba003e83a61acbe1841eb3bb7f863720f085987b44da8577a37a01115580e32056b0b9cd19
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -126,9 +126,11 @@ Edit `app/views/layouts/application.html.erb` and add the following below other
|
|
126
126
|
<%= stylesheet_link_tag 'glimmer_cw_cdatetime_nebula/glimmer_cw_cdatetime_nebula', media: 'all', 'data-turbolinks-track': 'reload' %>
|
127
127
|
```
|
128
128
|
|
129
|
-
That's it! Now, you can use the following keywords:
|
129
|
+
That's it! Now, you can use the following keywords (with other keywords mentioned under [instructions](#instructions) having partial support):
|
130
|
+
- `c_date_time`
|
130
131
|
- `c_date`
|
131
132
|
- `c_time`
|
133
|
+
- `c_date_time_drop_down`
|
132
134
|
- `c_date_drop_down`
|
133
135
|
- `c_time_drop_down`
|
134
136
|
- `c_time_compact`
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.0.
|
1
|
+
1.5.0.3.0
|
@@ -41,28 +41,31 @@ module Glimmer
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def post_add_content
|
44
|
-
if
|
45
|
-
clocklet
|
46
|
-
if drop_down?
|
47
|
-
time_button_dom_element.on('click') do |event|
|
48
|
-
`clocklet.open(document.getElementById(#{input_id}))`
|
49
|
-
end
|
50
|
-
end
|
51
|
-
else
|
44
|
+
if date?
|
52
45
|
options = {
|
53
46
|
changeMonth: true,
|
54
47
|
changeYear: true,
|
55
48
|
}
|
56
49
|
if drop_down?
|
57
|
-
options =
|
50
|
+
options = options.merge(
|
58
51
|
showOn: 'both',
|
59
52
|
buttonImage: 'assets/glimmer/images/calendar.gif',
|
60
53
|
buttonImageOnly: true,
|
61
54
|
buttonText: 'Select date',
|
62
|
-
|
55
|
+
)
|
56
|
+
end
|
57
|
+
date_input_dom_element.datepicker(options)
|
58
|
+
end
|
59
|
+
|
60
|
+
if time?
|
61
|
+
clocklet
|
62
|
+
if drop_down?
|
63
|
+
time_button_dom_element.on('click') do |event|
|
64
|
+
`clocklet.open(document.getElementById(#{time_input_id}))`
|
65
|
+
end
|
63
66
|
end
|
64
|
-
input_dom_element.datepicker(options)
|
65
67
|
end
|
68
|
+
|
66
69
|
selection_value = self.selection
|
67
70
|
@added_content = true
|
68
71
|
self.selection = selection_value
|
@@ -75,20 +78,20 @@ module Glimmer
|
|
75
78
|
@@clocklet_default_options_set = true
|
76
79
|
end
|
77
80
|
if simple?
|
78
|
-
@clocklet ||= Native(`clocklet.inline(document.getElementById(#{clock_id}), {input: document.getElementById(#{
|
81
|
+
@clocklet ||= Native(`clocklet.inline(document.getElementById(#{clock_id}), {input: document.getElementById(#{time_input_id})})`)
|
79
82
|
end
|
80
83
|
end
|
81
84
|
|
82
|
-
def
|
83
|
-
args.to_a.include_any?(:date_short, :date_medium, :date_long)
|
85
|
+
def date_time?
|
86
|
+
!args.to_a.include_any?(:date_short, :date_medium, :date_long) && !args.to_a.include_any?(:time_short, :time_medium)
|
84
87
|
end
|
85
88
|
|
86
|
-
def
|
87
|
-
args.to_a.include_any?(:
|
89
|
+
def date?
|
90
|
+
args.to_a.include_any?(:date_short, :date_medium, :date_long) || date_time?
|
88
91
|
end
|
89
92
|
|
90
|
-
def
|
91
|
-
|
93
|
+
def time?
|
94
|
+
args.to_a.include_any?(:time_short, :time_medium) || date_time?
|
92
95
|
end
|
93
96
|
|
94
97
|
def drop_down?
|
@@ -110,14 +113,16 @@ module Glimmer
|
|
110
113
|
def selection
|
111
114
|
if @added_content
|
112
115
|
default_date = DateTime.new if @selection.nil?
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
|
117
|
+
current_year = @selection&.year || default_date.year
|
118
|
+
current_month = @selection&.month || default_date.month
|
119
|
+
current_day = @selection&.day || default_date.day
|
120
|
+
current_hour = @selection&.hour || default_date.hour
|
121
|
+
current_min = @selection&.min || default_date.min
|
122
|
+
current_sec = @selection&.sec || default_date.sec
|
123
|
+
|
119
124
|
if time?
|
120
|
-
time_string =
|
125
|
+
time_string = time_input_dom_element.val
|
121
126
|
_, current_hour, current_min, am_pm = time_string.match(/(\d{1,2})\:(\d{1,2})[ ]?([APap]?\.?[Mm]?\.?)/).to_a
|
122
127
|
current_hour ||= default_hour
|
123
128
|
current_min ||= default_min
|
@@ -125,10 +130,15 @@ module Glimmer
|
|
125
130
|
am_pm = am_pm.to_s.gsub('.', '').upcase
|
126
131
|
current_hour += 12 if am_pm == 'PM'
|
127
132
|
current_min = current_min.to_i
|
128
|
-
@selection = DateTime.new(default_year, default_month, default_day, current_hour, current_min, default_sec)
|
129
|
-
else
|
130
|
-
@selection = DateTime.new(input_dom_element.datepicker('getDate')&.year.to_i, input_dom_element.datepicker('getDate')&.month.to_i, input_dom_element.datepicker('getDate')&.day.to_i, default_hour, default_min, default_sec)
|
131
133
|
end
|
134
|
+
|
135
|
+
if date?
|
136
|
+
current_year = date_input_dom_element.datepicker('getDate')&.year.to_i
|
137
|
+
current_month = date_input_dom_element.datepicker('getDate')&.month.to_i
|
138
|
+
current_day = date_input_dom_element.datepicker('getDate')&.day.to_i
|
139
|
+
end
|
140
|
+
|
141
|
+
@selection = DateTime.new(current_year, current_month, current_day, current_hour, current_min, current_sec)
|
132
142
|
@selection = @selection&.to_datetime
|
133
143
|
else
|
134
144
|
@initial_selection
|
@@ -138,15 +148,18 @@ module Glimmer
|
|
138
148
|
def selection=(value)
|
139
149
|
if @added_content
|
140
150
|
@selection = value&.to_datetime || DateTime.new
|
151
|
+
|
141
152
|
if time?
|
142
153
|
formatted_time = @selection.strftime('%I:%M %p')
|
143
154
|
if drop_down? || spinner? || compact?
|
144
|
-
|
155
|
+
time_input_dom_element.val(formatted_time)
|
145
156
|
else
|
146
157
|
clocklet.value(formatted_time)
|
147
158
|
end
|
148
|
-
|
149
|
-
|
159
|
+
end
|
160
|
+
|
161
|
+
if date?
|
162
|
+
date_input_dom_element.datepicker('setDate', @selection.to_time)
|
150
163
|
end
|
151
164
|
else
|
152
165
|
@initial_selection = value
|
@@ -167,7 +180,13 @@ module Glimmer
|
|
167
180
|
end
|
168
181
|
|
169
182
|
def listener_path
|
170
|
-
|
183
|
+
if date_time?
|
184
|
+
"#{date_input_path}, #{time_input_path}"
|
185
|
+
elsif date?
|
186
|
+
date_input_path
|
187
|
+
else # time
|
188
|
+
time_input_path
|
189
|
+
end
|
171
190
|
end
|
172
191
|
|
173
192
|
def time_button_id
|
@@ -190,20 +209,36 @@ module Glimmer
|
|
190
209
|
'span'
|
191
210
|
end
|
192
211
|
|
193
|
-
def
|
194
|
-
"#{id}-input"
|
212
|
+
def date_input_id
|
213
|
+
"#{id}-date-input"
|
195
214
|
end
|
196
215
|
|
197
|
-
def
|
198
|
-
"#{name}-input"
|
216
|
+
def date_input_class
|
217
|
+
"#{name}-date-input"
|
199
218
|
end
|
200
219
|
|
201
|
-
def
|
202
|
-
"#{path} ##{
|
220
|
+
def date_input_path
|
221
|
+
"#{path} ##{date_input_id}"
|
203
222
|
end
|
204
223
|
|
205
|
-
def
|
206
|
-
Document.find(
|
224
|
+
def date_input_dom_element
|
225
|
+
Document.find(date_input_path)
|
226
|
+
end
|
227
|
+
|
228
|
+
def time_input_id
|
229
|
+
"#{id}-time-input"
|
230
|
+
end
|
231
|
+
|
232
|
+
def time_input_class
|
233
|
+
"#{name}-time-input"
|
234
|
+
end
|
235
|
+
|
236
|
+
def time_input_path
|
237
|
+
"#{path} ##{time_input_id}"
|
238
|
+
end
|
239
|
+
|
240
|
+
def time_input_dom_element
|
241
|
+
Document.find(time_input_path)
|
207
242
|
end
|
208
243
|
|
209
244
|
def clock_id
|
@@ -223,26 +258,36 @@ module Glimmer
|
|
223
258
|
end
|
224
259
|
|
225
260
|
def dom
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
261
|
+
date_input_element = simple? ? 'div' : 'input'
|
262
|
+
date_input_attributes = {type: 'text', style: 'display: inline-block; vertical-align: top;', id: date_input_id, class: date_input_class}
|
263
|
+
time_input_class_value = "#{time_input_class} hide" if time? && simple?
|
264
|
+
time_input_attributes = {type: 'text', id: time_input_id, class: time_input_class_value}
|
265
|
+
time_input_attributes['data-clocklet'] = 'format: hh:mm A; appendTo: parent;' if time?
|
266
|
+
clock_attributes = {id: clock_id, class: clock_class, style: 'display: inline-block; vertical-align: top;'}
|
267
|
+
clock_attributes[:style] = 'display: inline-block; vertical-align: top; font-size: 13px; '
|
230
268
|
the_class = name
|
231
269
|
the_class += ' simple' if simple?
|
232
270
|
the_class += ' drop-down' if drop_down?
|
233
|
-
the_class += ' compact' if compact?
|
234
271
|
the_class += ' spinner' if spinner?
|
272
|
+
the_class += ' compact' if compact?
|
235
273
|
@dom ||= html {
|
236
274
|
span(id: id, class: the_class) {
|
275
|
+
# TODO move style somewhere to embed one time for all elements instead of repeating per element
|
237
276
|
style {
|
238
277
|
css {
|
278
|
+
s('.c-date-time.simple .clocklet, .c-date-time.drop-down .clocklet') {
|
279
|
+
pv 'font-size', '13px'
|
280
|
+
pv 'width', '207px'
|
281
|
+
pv 'height', '207px'
|
282
|
+
}
|
239
283
|
s('.c-date-time.compact .clocklet, .c-date-time.spinner .clocklet') {
|
240
284
|
pv 'display', 'none'
|
241
285
|
}
|
242
286
|
}
|
243
287
|
}
|
244
|
-
send(
|
245
|
-
|
288
|
+
send(date_input_element, date_input_attributes) {} if date?
|
289
|
+
input(time_input_attributes) {} if time?
|
290
|
+
div(clock_attributes) {} if time? && simple?
|
246
291
|
button(id: time_button_id, class: time_button_class, style: "border: none; background: url(assets/glimmer/images/ui-icons_222222_256x240.png) -80px, -96px; width: 16px; height: 16px;") if time? && drop_down?
|
247
292
|
}
|
248
293
|
}.to_s
|
@@ -57,13 +57,17 @@ class CDateTimeGallery
|
|
57
57
|
text 'c_date_time'
|
58
58
|
font name: 'Consolas', height: 14
|
59
59
|
}
|
60
|
-
c_date_time
|
60
|
+
c_date_time {
|
61
|
+
selection bind(person, :date_of_birth)
|
62
|
+
}
|
61
63
|
|
62
64
|
label {
|
63
65
|
text 'c_date'
|
64
66
|
font name: 'Consolas', height: 14
|
65
67
|
}
|
66
|
-
c_date
|
68
|
+
c_date {
|
69
|
+
selection bind(person, :date_of_birth)
|
70
|
+
}
|
67
71
|
|
68
72
|
label {
|
69
73
|
text 'c_time'
|
@@ -84,6 +88,7 @@ class CDateTimeGallery
|
|
84
88
|
}
|
85
89
|
c_date_time_drop_down {
|
86
90
|
layout_data(:fill, :center, true, true)
|
91
|
+
selection bind(person, :date_of_birth)
|
87
92
|
}
|
88
93
|
|
89
94
|
label {
|
@@ -92,6 +97,7 @@ class CDateTimeGallery
|
|
92
97
|
}
|
93
98
|
c_date_drop_down {
|
94
99
|
layout_data(:fill, :center, true, true)
|
100
|
+
selection bind(person, :date_of_birth)
|
95
101
|
}
|
96
102
|
|
97
103
|
label {
|
@@ -114,6 +120,7 @@ class CDateTimeGallery
|
|
114
120
|
}
|
115
121
|
c_date_time_spinner {
|
116
122
|
layout_data(:fill, :center, true, true)
|
123
|
+
selection bind(person, :date_of_birth)
|
117
124
|
}
|
118
125
|
|
119
126
|
label {
|
@@ -122,6 +129,7 @@ class CDateTimeGallery
|
|
122
129
|
}
|
123
130
|
c_date_spinner {
|
124
131
|
layout_data(:fill, :center, true, true)
|
132
|
+
selection bind(person, :date_of_birth)
|
125
133
|
}
|
126
134
|
|
127
135
|
label {
|
@@ -144,6 +152,7 @@ class CDateTimeGallery
|
|
144
152
|
}
|
145
153
|
c_date_time_compact {
|
146
154
|
layout_data(:fill, :center, true, true)
|
155
|
+
selection bind(person, :date_of_birth)
|
147
156
|
}
|
148
157
|
|
149
158
|
label {
|
@@ -152,6 +161,7 @@ class CDateTimeGallery
|
|
152
161
|
}
|
153
162
|
c_date_compact {
|
154
163
|
layout_data(:fill, :center, true, true)
|
164
|
+
selection bind(person, :date_of_birth)
|
155
165
|
}
|
156
166
|
|
157
167
|
label {
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-cw-cdatetime-nebula
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0.
|
4
|
+
version: 1.5.0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 4.17.10.
|
18
|
+
version: 4.17.10.2
|
19
19
|
- - "<"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 5.0.0.0
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 4.17.10.
|
29
|
+
version: 4.17.10.2
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 5.0.0.0
|