platformx 0.0.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 +7 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +13 -0
- data/README.md +31 -0
- data/Rakefile +20 -0
- data/lib/platformx.rb +106 -0
- data/lib/platformx/auth.rb +74 -0
- data/lib/platformx/configuration.rb +35 -0
- data/lib/platformx/date.rb +96 -0
- data/lib/platformx/facebook.rb +16 -0
- data/lib/platformx/faker.rb +100 -0
- data/lib/platformx/form.rb +953 -0
- data/lib/platformx/google_map.rb +42 -0
- data/lib/platformx/instagram.rb +115 -0
- data/lib/platformx/layout.rb +155 -0
- data/lib/platformx/mail.rb +43 -0
- data/lib/platformx/notify.rb +45 -0
- data/lib/platformx/omniauth_helpers.rb +16 -0
- data/lib/platformx/omniauth_routes.rb +64 -0
- data/lib/platformx/pdf.rb +0 -0
- data/lib/platformx/stripe.rb +65 -0
- data/lib/platformx/template.rb +16 -0
- data/lib/platformx/text.rb +32 -0
- data/lib/platformx/timeline.rb +55 -0
- data/lib/platformx/twitter.rb +47 -0
- data/lib/platformx/version.rb +3 -0
- data/platformx.gemspec +48 -0
- data/spec/layout_spec.rb +19 -0
- data/spec/spec_helper.rb +16 -0
- metadata +426 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
module Platformx
|
2
|
+
module FakerHelpers
|
3
|
+
########################################################
|
4
|
+
#
|
5
|
+
# Start Helpers
|
6
|
+
#
|
7
|
+
########################################################
|
8
|
+
|
9
|
+
################# Faker Email #################
|
10
|
+
def x_faker_email()
|
11
|
+
return Faker::Internet.safe_email
|
12
|
+
end
|
13
|
+
|
14
|
+
################# Faker First Name #################
|
15
|
+
def x_faker_first_name()
|
16
|
+
return Faker::Name.first_name
|
17
|
+
end
|
18
|
+
|
19
|
+
################# Faker Last Name #################
|
20
|
+
def x_faker_last_name()
|
21
|
+
return Faker::Name.last_name
|
22
|
+
end
|
23
|
+
|
24
|
+
################# Faker Street Address #################
|
25
|
+
def x_faker_street_address()
|
26
|
+
return Faker::Address.street_address
|
27
|
+
end
|
28
|
+
|
29
|
+
################# Faker City #################
|
30
|
+
def x_faker_city()
|
31
|
+
return Faker::Address.city
|
32
|
+
end
|
33
|
+
|
34
|
+
################# Faker State #################
|
35
|
+
def x_faker_state()
|
36
|
+
return Faker::Address.state_abbr
|
37
|
+
end
|
38
|
+
|
39
|
+
################# Faker Zip #################
|
40
|
+
def x_faker_zip()
|
41
|
+
return Faker::Address.zip
|
42
|
+
end
|
43
|
+
|
44
|
+
################# Faker Phone #################
|
45
|
+
def x_faker_phone()
|
46
|
+
return Faker::PhoneNumber.phone_number
|
47
|
+
end
|
48
|
+
|
49
|
+
################# Faker Password #################
|
50
|
+
def x_faker_password()
|
51
|
+
return Faker::Internet.password
|
52
|
+
end
|
53
|
+
|
54
|
+
################# UUID #################
|
55
|
+
def x_faker_uuid()
|
56
|
+
return UUIDTools::UUID.random_create
|
57
|
+
end
|
58
|
+
|
59
|
+
################# Faker Birthday #################
|
60
|
+
def x_faker_birthday()
|
61
|
+
return Faker::Time.between(15.years.ago, 5.years.ago)
|
62
|
+
end
|
63
|
+
|
64
|
+
################# Faker Number #################
|
65
|
+
def x_faker_number(length: 2)
|
66
|
+
return Faker::Number.number(length)
|
67
|
+
end
|
68
|
+
|
69
|
+
################# Faker Boolean #################
|
70
|
+
def x_faker_boolean()
|
71
|
+
return Faker::Boolean.boolean(0.2)
|
72
|
+
end
|
73
|
+
|
74
|
+
################# Faker Range #################
|
75
|
+
def x_faker_range(low:1, high:10)
|
76
|
+
return Faker::Number.between(low, high)
|
77
|
+
end
|
78
|
+
|
79
|
+
################# Faker Price #################
|
80
|
+
def x_faker_price()
|
81
|
+
return Faker::Commerce.price
|
82
|
+
end
|
83
|
+
|
84
|
+
################# Faker Chars #################
|
85
|
+
def x_faker_characters(length: 10)
|
86
|
+
return Faker::Lorem.characters(length)
|
87
|
+
end
|
88
|
+
|
89
|
+
################# Faker Full Name #################
|
90
|
+
def x_faker_full_name()
|
91
|
+
return Faker::Name.name
|
92
|
+
end
|
93
|
+
|
94
|
+
########################################################
|
95
|
+
#
|
96
|
+
# End
|
97
|
+
#
|
98
|
+
########################################################
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,953 @@
|
|
1
|
+
module Platformx
|
2
|
+
module FormHelpers
|
3
|
+
########################################################
|
4
|
+
#
|
5
|
+
# Start Helpers
|
6
|
+
#
|
7
|
+
########################################################
|
8
|
+
########################################################
|
9
|
+
#
|
10
|
+
# Checkbox helper
|
11
|
+
#
|
12
|
+
########################################################
|
13
|
+
def x_checkbox(id: "", name: "", value: "", label: "", checked: false, switch: false, align: false, inline: false, form_group: true, required: false)
|
14
|
+
|
15
|
+
checked_output = ""
|
16
|
+
switchery_div = ""
|
17
|
+
switchery_input = ""
|
18
|
+
align_class = ""
|
19
|
+
inline_class = ""
|
20
|
+
form_group_start = ""
|
21
|
+
form_group_end = ""
|
22
|
+
required_output = ""
|
23
|
+
|
24
|
+
if checked == true then checked_output='checked="checked"' end
|
25
|
+
if switch == true then switchery_div='checkbox-switchery' end
|
26
|
+
if switch == true then switchery_input='switch' end
|
27
|
+
if align == "left" then align_class='pull-left' end
|
28
|
+
if align == "right" then align_class='pull-right' end
|
29
|
+
if inline == true then inline_class ='inline' end
|
30
|
+
if form_group == true then form_group_start = '<div class="form-group">' end
|
31
|
+
if form_group == true then form_group_end = '</div>' end
|
32
|
+
if required == true then required_output = "data-parsley-mincheck='1'" end
|
33
|
+
|
34
|
+
cb = <<EOS
|
35
|
+
#{form_group_start}
|
36
|
+
<div class="checkbox #{switchery_div}">
|
37
|
+
<label class="#{align_class} #{inline_class}">
|
38
|
+
<input type="hidden" id="#{id}" name="post[#{name}]" value="0">
|
39
|
+
<input type="checkbox" class="#{switchery_input}" id="#{id}" name="post[#{name}]" value="1" #{checked_output} data-toggle="checkbox" #{required_output}/>
|
40
|
+
#{label} </label>
|
41
|
+
</div>
|
42
|
+
#{form_group_end}
|
43
|
+
EOS
|
44
|
+
return cb
|
45
|
+
end
|
46
|
+
|
47
|
+
########################################################
|
48
|
+
#
|
49
|
+
# Checkbox helper
|
50
|
+
#
|
51
|
+
########################################################
|
52
|
+
def x_checkbox_string(id: "", name: "", value: "", label: "", checked: false, switch: false, align: false, inline: false, form_group: true, required: false)
|
53
|
+
|
54
|
+
checked_output = ""
|
55
|
+
switchery_div = ""
|
56
|
+
switchery_input = ""
|
57
|
+
align_class = ""
|
58
|
+
inline_class = ""
|
59
|
+
form_group_start = ""
|
60
|
+
form_group_end = ""
|
61
|
+
required_output = ""
|
62
|
+
|
63
|
+
if checked == true then checked_output='checked="checked"' end
|
64
|
+
if switch == true then switchery_div='checkbox-switchery' end
|
65
|
+
if switch == true then switchery_input='switch' end
|
66
|
+
if align == "left" then align_class='pull-left' end
|
67
|
+
if align == "right" then align_class='pull-right' end
|
68
|
+
if inline == true then inline_class ='inline' end
|
69
|
+
if form_group == true then form_group_start = '<div class="form-group">' end
|
70
|
+
if form_group == true then form_group_end = '</div>' end
|
71
|
+
if required == true then required_output = "data-parsley-mincheck='1'" end
|
72
|
+
|
73
|
+
cb = <<EOS
|
74
|
+
#{form_group_start}
|
75
|
+
<div class="checkbox #{switchery_div}">
|
76
|
+
<label class="#{align_class} #{inline_class}">
|
77
|
+
<input type="checkbox" class="#{switchery_input}" id="#{id}" name="#{name}" value="#{value}" #{checked_output} data-toggle="checkbox" #{required_output}/>
|
78
|
+
#{label} </label>
|
79
|
+
</div>
|
80
|
+
#{form_group_end}
|
81
|
+
EOS
|
82
|
+
return cb
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
########################################################
|
87
|
+
#
|
88
|
+
# Radio helper
|
89
|
+
#
|
90
|
+
########################################################
|
91
|
+
def x_radio(id: "", name: "", value: "", label: "", checked: false, align: false, inline: false, form_group: true)
|
92
|
+
|
93
|
+
checked_output = ""
|
94
|
+
align_class = ""
|
95
|
+
inline_class = ""
|
96
|
+
form_group_start = ""
|
97
|
+
form_group_end = ""
|
98
|
+
|
99
|
+
if checked == true then checked_output='checked="checked"' end
|
100
|
+
if align == "left" then align_class='pull-left' end
|
101
|
+
if align == "right" then align_class='pull-right' end
|
102
|
+
if inline == true then inline_class ='inline' end
|
103
|
+
if form_group == true then form_group_start = '<div class="form-group">' end
|
104
|
+
if form_group == true then form_group_end = '</div>' end
|
105
|
+
|
106
|
+
cb = <<EOS
|
107
|
+
#{form_group_start}
|
108
|
+
<div class="radio">
|
109
|
+
<label class="#{align_class} #{inline_class}">
|
110
|
+
<input type="hidden" id="#{id}" name="post[#{name}]" value="0">
|
111
|
+
<input type="radio" id="#{id}" name="post[#{name}]" value="1" #{checked_output} data-toggle="radio"/>
|
112
|
+
#{label} </label>
|
113
|
+
</div>
|
114
|
+
#{form_group_end}
|
115
|
+
EOS
|
116
|
+
return cb
|
117
|
+
end
|
118
|
+
|
119
|
+
########################################################
|
120
|
+
#
|
121
|
+
# Hidden input helper
|
122
|
+
#
|
123
|
+
########################################################
|
124
|
+
def x_hidden(id: "", name: "", value: "")
|
125
|
+
|
126
|
+
hi = <<EOS
|
127
|
+
<input type="hidden" id="#{id}" name="post[#{name}]" value="#{value}"/>
|
128
|
+
EOS
|
129
|
+
return hi
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
########################################################
|
134
|
+
#
|
135
|
+
# Text input helper
|
136
|
+
#
|
137
|
+
########################################################
|
138
|
+
def x_input(id: "", name: "", value: "", label: "", required: false, placeholder: "", mask: "", maxlength: "")
|
139
|
+
|
140
|
+
id = name unless id != ""
|
141
|
+
if required
|
142
|
+
if label != ""
|
143
|
+
required_output = '<sup class="text-danger">*</sup>'
|
144
|
+
else
|
145
|
+
required_output = ''
|
146
|
+
end
|
147
|
+
required_tag = 'required="required"'
|
148
|
+
else
|
149
|
+
required_output = ""
|
150
|
+
required_tag = ""
|
151
|
+
end
|
152
|
+
|
153
|
+
if label != ""
|
154
|
+
label = "<label>#{label}</label>"
|
155
|
+
end
|
156
|
+
|
157
|
+
if maxlength != ""
|
158
|
+
maxlength = "maxlength='#{maxlength}'"
|
159
|
+
end
|
160
|
+
|
161
|
+
if mask != ""
|
162
|
+
mask = "data-masked-input='#{mask}'"
|
163
|
+
end
|
164
|
+
|
165
|
+
tb = <<EOS
|
166
|
+
<div class="form-group">
|
167
|
+
#{label}#{required_output}
|
168
|
+
<input type="text" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" placeholder="#{placeholder}" #{required_tag} #{mask} #{maxlength} />
|
169
|
+
</div>
|
170
|
+
EOS
|
171
|
+
return tb
|
172
|
+
end
|
173
|
+
|
174
|
+
|
175
|
+
########################################################
|
176
|
+
#
|
177
|
+
# Number input helper
|
178
|
+
#
|
179
|
+
########################################################
|
180
|
+
def x_number(id: "", name: "", value: "", label: "", required: false, placeholder: "", mask: "", maxlength: "")
|
181
|
+
|
182
|
+
if required
|
183
|
+
if label != ""
|
184
|
+
required_output = '<sup class="text-danger">*</sup>'
|
185
|
+
else
|
186
|
+
required_output = ''
|
187
|
+
end
|
188
|
+
required_tag = 'required="required"'
|
189
|
+
else
|
190
|
+
required_output = ""
|
191
|
+
required_tag = ""
|
192
|
+
end
|
193
|
+
|
194
|
+
if label != ""
|
195
|
+
label = "<label>#{label}#{required_output}</label>"
|
196
|
+
end
|
197
|
+
|
198
|
+
if maxlength != ""
|
199
|
+
maxlength = "maxlength='#{maxlength}'"
|
200
|
+
end
|
201
|
+
|
202
|
+
if mask != ""
|
203
|
+
mask = "data-masked-input='#{mask}'"
|
204
|
+
end
|
205
|
+
|
206
|
+
tb = <<EOS
|
207
|
+
<div class="form-group">
|
208
|
+
#{label}
|
209
|
+
<input type="text" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} placeholder="#{placeholder}" data-parsley-type="number" #{mask} #{maxlength}/>
|
210
|
+
</div>
|
211
|
+
EOS
|
212
|
+
return tb
|
213
|
+
end
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
########################################################
|
218
|
+
#
|
219
|
+
# Phone input helper
|
220
|
+
#
|
221
|
+
########################################################
|
222
|
+
def x_phone(id: "", name: "", value: "", label: "", required: false, placeholder: "", mask: "(999) 999-9999", maxlength: "12")
|
223
|
+
|
224
|
+
if required
|
225
|
+
if label != ""
|
226
|
+
required_output = '<sup class="text-danger">*</sup>'
|
227
|
+
else
|
228
|
+
required_output = ''
|
229
|
+
end
|
230
|
+
required_tag = 'required="required"'
|
231
|
+
else
|
232
|
+
required_output = ""
|
233
|
+
required_tag = ""
|
234
|
+
end
|
235
|
+
|
236
|
+
if label != ""
|
237
|
+
label = "<label>#{label}#{required_output}</label>"
|
238
|
+
end
|
239
|
+
|
240
|
+
if mask != ""
|
241
|
+
mask = "data-masked-input='#{mask}'"
|
242
|
+
end
|
243
|
+
|
244
|
+
if maxlength != ""
|
245
|
+
maxlength = "maxlength='#{maxlength}'"
|
246
|
+
end
|
247
|
+
|
248
|
+
tb = <<EOS
|
249
|
+
<div class="form-group">
|
250
|
+
#{label}
|
251
|
+
<input type="text" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} placeholder="#{placeholder}" #{mask} #{maxlength} />
|
252
|
+
</div>
|
253
|
+
EOS
|
254
|
+
return tb
|
255
|
+
end
|
256
|
+
|
257
|
+
|
258
|
+
########################################################
|
259
|
+
#
|
260
|
+
# Number input helper
|
261
|
+
#
|
262
|
+
########################################################
|
263
|
+
def x_credit_card(id: "", name: "", value: "", label: "", required: false, placeholder: "", maxlength: "16", mask:"")
|
264
|
+
|
265
|
+
if required
|
266
|
+
if label != ""
|
267
|
+
required_output = '<sup class="text-danger">*</sup>'
|
268
|
+
else
|
269
|
+
required_output = ''
|
270
|
+
end
|
271
|
+
required_tag = 'required="required"'
|
272
|
+
else
|
273
|
+
required_output = ""
|
274
|
+
required_tag = ""
|
275
|
+
end
|
276
|
+
|
277
|
+
if label != ""
|
278
|
+
label = "<label>#{label}#{required_output} <small>(Numbers Only)</small></label>"
|
279
|
+
end
|
280
|
+
|
281
|
+
if mask != ""
|
282
|
+
mask = "data-masked-input='#{mask}'"
|
283
|
+
end
|
284
|
+
|
285
|
+
if maxlength != ""
|
286
|
+
maxlength = "maxlength='#{maxlength}'"
|
287
|
+
end
|
288
|
+
|
289
|
+
tb = <<EOS
|
290
|
+
<div class="form-group">
|
291
|
+
#{label}
|
292
|
+
<input type="number" pattern="[0-9]{13,16}" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} data-parsley-type="integer" data-parsley-length="[13, 16]" placeholder="#{placeholder}" #{mask} #{maxlength} />
|
293
|
+
</div>
|
294
|
+
EOS
|
295
|
+
return tb
|
296
|
+
end
|
297
|
+
|
298
|
+
########################################################
|
299
|
+
#
|
300
|
+
# Number input helper
|
301
|
+
#
|
302
|
+
########################################################
|
303
|
+
def x_cvc(id: "", name: "", value: "", label: "", required: false, placeholder: "", maxlength: "4", mask:"999999999999999999")
|
304
|
+
|
305
|
+
if required
|
306
|
+
if label != ""
|
307
|
+
required_output = '<sup class="text-danger">*</sup>'
|
308
|
+
else
|
309
|
+
required_output = ''
|
310
|
+
end
|
311
|
+
required_tag = 'required="required"'
|
312
|
+
else
|
313
|
+
required_output = ""
|
314
|
+
required_tag = ""
|
315
|
+
end
|
316
|
+
if label != ""
|
317
|
+
label = "<label>#{label}</label>"
|
318
|
+
end
|
319
|
+
|
320
|
+
if mask != ""
|
321
|
+
mask = "data-masked-input='#{mask}'"
|
322
|
+
end
|
323
|
+
|
324
|
+
if maxlength != ""
|
325
|
+
maxlength = "maxlength='#{maxlength}'"
|
326
|
+
end
|
327
|
+
|
328
|
+
tb = <<EOS
|
329
|
+
<div class="form-group">
|
330
|
+
#{label}#{required_output}
|
331
|
+
<input type="number" pattern="[0-9]{3,4}" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} data-parsley-type="integer" data-parsley-length="[3, 4]" placeholder="#{placeholder}" #{mask} #{maxlength} />
|
332
|
+
</div>
|
333
|
+
EOS
|
334
|
+
return tb
|
335
|
+
end
|
336
|
+
########################################################
|
337
|
+
#
|
338
|
+
# Email input helper
|
339
|
+
#
|
340
|
+
########################################################
|
341
|
+
def x_email(id: "", name: "", value: "", label: "", required: false, placeholder: "")
|
342
|
+
|
343
|
+
if required
|
344
|
+
if label != ""
|
345
|
+
required_output = '<sup class="text-danger">*</sup>'
|
346
|
+
else
|
347
|
+
required_output = ''
|
348
|
+
end
|
349
|
+
required_tag = 'required="required"'
|
350
|
+
else
|
351
|
+
required_output = ""
|
352
|
+
required_tag = ""
|
353
|
+
end
|
354
|
+
if label != ""
|
355
|
+
label = "<label>#{label}</label>"
|
356
|
+
end
|
357
|
+
|
358
|
+
tb = <<EOS
|
359
|
+
<div class="form-group">
|
360
|
+
#{label}#{required_output}
|
361
|
+
<input type="email" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} data-parsley-type="email" placeholder="#{placeholder}" />
|
362
|
+
</div>
|
363
|
+
EOS
|
364
|
+
return tb
|
365
|
+
end
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
########################################################
|
370
|
+
#
|
371
|
+
# URL input helper
|
372
|
+
#
|
373
|
+
########################################################
|
374
|
+
def x_url(id:"", name:"", value:"", label:"", required: false, placeholder: "")
|
375
|
+
|
376
|
+
if required
|
377
|
+
if label != ""
|
378
|
+
required_output = '<sup class="text-danger">*</sup>'
|
379
|
+
else
|
380
|
+
required_output = ''
|
381
|
+
end
|
382
|
+
required_tag = 'required="required"'
|
383
|
+
else
|
384
|
+
required_output = ""
|
385
|
+
required_tag = ""
|
386
|
+
end
|
387
|
+
if label != ""
|
388
|
+
label = "<label>#{label}</label>"
|
389
|
+
end
|
390
|
+
|
391
|
+
tb = <<EOS
|
392
|
+
<div class="form-group">
|
393
|
+
#{label}#{required_output}
|
394
|
+
<input type="url" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} data-parsley-type="url" placeholder="#{placeholder}" />
|
395
|
+
</div>
|
396
|
+
EOS
|
397
|
+
return tb
|
398
|
+
end
|
399
|
+
|
400
|
+
########################################################
|
401
|
+
#
|
402
|
+
# File input helper
|
403
|
+
#
|
404
|
+
########################################################
|
405
|
+
def x_file(id:"", name:"", value:"", label:"", required: false, placeholder: "", css: "")
|
406
|
+
|
407
|
+
if required
|
408
|
+
if label != ""
|
409
|
+
required_output = '<sup class="text-danger">*</sup>'
|
410
|
+
else
|
411
|
+
required_output = ''
|
412
|
+
end
|
413
|
+
required_tag = 'required="required"'
|
414
|
+
else
|
415
|
+
required_output = ""
|
416
|
+
required_tag = ""
|
417
|
+
end
|
418
|
+
if label != ""
|
419
|
+
label = "<label>#{label}</label>"
|
420
|
+
end
|
421
|
+
tb = <<EOS
|
422
|
+
<div class="form-group">
|
423
|
+
#{label}#{required_output}
|
424
|
+
<input type="file" class="form-control file #{css}" id="#{id}" name="filename" value="#{value}" #{required_tag} placeholder="#{placeholder}" />
|
425
|
+
</div>
|
426
|
+
EOS
|
427
|
+
return tb
|
428
|
+
end
|
429
|
+
|
430
|
+
########################################################
|
431
|
+
#
|
432
|
+
# Image Upload
|
433
|
+
#
|
434
|
+
########################################################
|
435
|
+
def x_image_upload(id: "input1",name: "input1",value: "",label: "Input1",required: false, size: "1M",height: "",default: "")
|
436
|
+
|
437
|
+
if required && label != ""
|
438
|
+
required_output = '<sup class="text-danger">*</sup>'
|
439
|
+
required_tag = 'required="required"'
|
440
|
+
else
|
441
|
+
required_output = ""
|
442
|
+
required_tag = ""
|
443
|
+
end
|
444
|
+
|
445
|
+
if height == ""
|
446
|
+
height = ""
|
447
|
+
else
|
448
|
+
height="data-height='#{height}'"
|
449
|
+
end
|
450
|
+
|
451
|
+
|
452
|
+
tb = <<EOS
|
453
|
+
<div class="form-group">
|
454
|
+
<label>#{label}</label>
|
455
|
+
<input type="file" class="form-control file dropify" data-default-file="#{value}" data-max-file-size="#{size}" id="#{id}" name="filename" value="#{value}" #{required_tag} #{height}/>
|
456
|
+
</div>
|
457
|
+
EOS
|
458
|
+
return tb
|
459
|
+
end
|
460
|
+
|
461
|
+
########################################################
|
462
|
+
#
|
463
|
+
# Date input helper
|
464
|
+
#
|
465
|
+
########################################################
|
466
|
+
def x_date(id: "", name: "", value: "", label: "", required: false, placeholder: "")
|
467
|
+
|
468
|
+
if required
|
469
|
+
if label != ""
|
470
|
+
required_output = '<sup class="text-danger">*</sup>'
|
471
|
+
else
|
472
|
+
required_output = ''
|
473
|
+
end
|
474
|
+
required_tag = 'required="required"'
|
475
|
+
else
|
476
|
+
required_output = ""
|
477
|
+
required_tag = ""
|
478
|
+
end
|
479
|
+
if label != ""
|
480
|
+
label = "<label for='#{id}' class='control-label'>#{label}</label>"
|
481
|
+
end
|
482
|
+
|
483
|
+
tb = <<EOS
|
484
|
+
<div class="form-group">
|
485
|
+
#{label}#{required_output}
|
486
|
+
<div class="input-group">
|
487
|
+
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
488
|
+
<input type="text" class="form-control datepicker" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} placeholder="#{placeholder}" />
|
489
|
+
</div>
|
490
|
+
</div>
|
491
|
+
EOS
|
492
|
+
return tb
|
493
|
+
end
|
494
|
+
|
495
|
+
########################################################
|
496
|
+
#
|
497
|
+
# Datetime input helper
|
498
|
+
#
|
499
|
+
########################################################
|
500
|
+
def x_datetime(id: "", name: "", value: "", label: "", required: false, placeholder: "")
|
501
|
+
|
502
|
+
if required
|
503
|
+
if label != ""
|
504
|
+
required_output = '<sup class="text-danger">*</sup>'
|
505
|
+
else
|
506
|
+
required_output = ''
|
507
|
+
end
|
508
|
+
required_tag = 'required="required"'
|
509
|
+
else
|
510
|
+
required_output = ""
|
511
|
+
required_tag = ""
|
512
|
+
end
|
513
|
+
if label != ""
|
514
|
+
label = "<label for='#{id}' class='control-label'>#{label}</label>"
|
515
|
+
end
|
516
|
+
|
517
|
+
tb = <<EOS
|
518
|
+
<div class="form-group">
|
519
|
+
#{label}#{required_output}
|
520
|
+
<div class="input-group">
|
521
|
+
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
522
|
+
<input type="text" class="form-control datetimepicker" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} placeholder="#{placeholder}" />
|
523
|
+
</div>
|
524
|
+
</div>
|
525
|
+
EOS
|
526
|
+
return tb
|
527
|
+
end
|
528
|
+
|
529
|
+
########################################################
|
530
|
+
#
|
531
|
+
# Time input helper
|
532
|
+
#
|
533
|
+
########################################################
|
534
|
+
def x_time(id: "", name: "", value: "", label: "", required: false, placeholder: "")
|
535
|
+
|
536
|
+
if required
|
537
|
+
if label != ""
|
538
|
+
required_output = '<sup class="text-danger">*</sup>'
|
539
|
+
else
|
540
|
+
required_output = ''
|
541
|
+
end
|
542
|
+
required_tag = 'required="required"'
|
543
|
+
else
|
544
|
+
required_output = ""
|
545
|
+
required_tag = ""
|
546
|
+
end
|
547
|
+
if label != ""
|
548
|
+
label = "<label for='#{id}' class='control-label'>#{label}</label>"
|
549
|
+
end
|
550
|
+
|
551
|
+
tb = <<EOS
|
552
|
+
<div class="form-group">
|
553
|
+
#{label}#{required_output}
|
554
|
+
<div class="input-group">
|
555
|
+
<span class="input-group-addon"><i class="fa fa fa-clock-o"></i></span>
|
556
|
+
<input type="text" class="form-control timepicker" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} placeholder="#{placeholder}" />
|
557
|
+
</div>
|
558
|
+
</div>
|
559
|
+
EOS
|
560
|
+
return tb
|
561
|
+
end
|
562
|
+
|
563
|
+
|
564
|
+
########################################################
|
565
|
+
#
|
566
|
+
# Password input helper
|
567
|
+
#
|
568
|
+
########################################################
|
569
|
+
def x_password(id: "",name: "", value: "", label: "", required: false, placeholder: "")
|
570
|
+
|
571
|
+
if required
|
572
|
+
if label != ""
|
573
|
+
required_output = '<sup class="text-danger">*</sup>'
|
574
|
+
else
|
575
|
+
required_output = ''
|
576
|
+
end
|
577
|
+
required_tag = 'required="required"'
|
578
|
+
else
|
579
|
+
required_output = ""
|
580
|
+
required_tag = ""
|
581
|
+
end
|
582
|
+
if label != ""
|
583
|
+
label = "<label>#{label}</label>"
|
584
|
+
end
|
585
|
+
|
586
|
+
tb = <<EOS
|
587
|
+
<div class="form-group">
|
588
|
+
#{label}#{required_output}
|
589
|
+
<input type="password" class="form-control" id="#{id}" name="post[#{name}]" value="#{value}" #{required_tag} data-parsley-length="[6, 34]" placeholder="#{placeholder}" />
|
590
|
+
</div>
|
591
|
+
EOS
|
592
|
+
return tb
|
593
|
+
end
|
594
|
+
|
595
|
+
########################################################
|
596
|
+
#
|
597
|
+
# Submit Helper
|
598
|
+
#
|
599
|
+
########################################################
|
600
|
+
def x_submit(label: "Submit", css: "btn-primary", icon: "", size: "", wrapper_css: "pull-right")
|
601
|
+
|
602
|
+
if icon != ""
|
603
|
+
icon = "<i class='fa #{icon}'></i> "
|
604
|
+
end
|
605
|
+
|
606
|
+
submit = <<EOS
|
607
|
+
<div class="form-group form-actions #{wrapper_css}">
|
608
|
+
<button type="submit" class="btn #{css} #{size}">#{icon}#{label}</button>
|
609
|
+
</div>
|
610
|
+
<div class="clearfix"></div>
|
611
|
+
EOS
|
612
|
+
|
613
|
+
return submit
|
614
|
+
end
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
########################################################
|
619
|
+
#
|
620
|
+
# Text Area Helper
|
621
|
+
#
|
622
|
+
########################################################
|
623
|
+
def x_textarea(id: "", name: "", value: "",label: "",placeholder: "",required: false, maxlength:"")
|
624
|
+
|
625
|
+
if required
|
626
|
+
if label != ""
|
627
|
+
required_output = '<sup class="text-danger">*</sup>'
|
628
|
+
else
|
629
|
+
required_output = ''
|
630
|
+
end
|
631
|
+
required_tag = 'required="required"'
|
632
|
+
else
|
633
|
+
required_output = ""
|
634
|
+
required_tag = ""
|
635
|
+
end
|
636
|
+
|
637
|
+
if label != ""
|
638
|
+
label = "<label for='#{id}'>#{label}</label>"
|
639
|
+
end
|
640
|
+
|
641
|
+
if label != ""
|
642
|
+
label = "<label for='#{id}'>#{label}</label>"
|
643
|
+
end
|
644
|
+
|
645
|
+
if maxlength != ""
|
646
|
+
maxlength = "maxlength='#{maxlength}'"
|
647
|
+
end
|
648
|
+
|
649
|
+
ta = <<EOS
|
650
|
+
<div class="form-group">
|
651
|
+
#{label}#{required_output}
|
652
|
+
<textarea name="post[#{name}]" id="#{id}" rows="4" class="form-control" placeholder="#{placeholder}" #{maxlength}>#{value}</textarea>
|
653
|
+
</div>
|
654
|
+
EOS
|
655
|
+
return ta
|
656
|
+
end
|
657
|
+
|
658
|
+
########################################################
|
659
|
+
#
|
660
|
+
# Summernote
|
661
|
+
#
|
662
|
+
########################################################
|
663
|
+
def x_html(id: "", name: "", value: "", label: "", help: "", required: false)
|
664
|
+
|
665
|
+
if required
|
666
|
+
if label != ""
|
667
|
+
required_output = '<sup class="text-danger">*</sup>'
|
668
|
+
else
|
669
|
+
required_output = ''
|
670
|
+
end
|
671
|
+
required_tag = 'required="required"'
|
672
|
+
else
|
673
|
+
required_output = ""
|
674
|
+
required_tag = ""
|
675
|
+
end
|
676
|
+
if label != ""
|
677
|
+
label = "<label for='#{id}'>#{label}</label>"
|
678
|
+
end
|
679
|
+
ta = <<EOS
|
680
|
+
<div class="form-group">
|
681
|
+
#{label}
|
682
|
+
<textarea name="post[#{name}]" id="#{id}" rows="4" class="form-control summernote">#{value}</textarea>
|
683
|
+
</div>
|
684
|
+
EOS
|
685
|
+
return ta
|
686
|
+
end
|
687
|
+
|
688
|
+
|
689
|
+
|
690
|
+
########################################################
|
691
|
+
#
|
692
|
+
# Year Drop down
|
693
|
+
#
|
694
|
+
########################################################
|
695
|
+
|
696
|
+
def x_year
|
697
|
+
current_year = Time.now.year
|
698
|
+
|
699
|
+
year_dd = <<EOS
|
700
|
+
<select id="selected_year" name="selected_year" class="selectpicker" data-style="btn-primary btn" data-width="auto">
|
701
|
+
<option selected="selected" value="#{current_year}">#{current_year}</option>
|
702
|
+
<option value="#{current_year - 1}">#{current_year - 1}</option>
|
703
|
+
<option value="#{current_year - 2}">#{current_year - 2}</option>
|
704
|
+
<option value="#{current_year - 3}">#{current_year - 3}</option>
|
705
|
+
<option value="#{current_year - 4}">#{current_year - 4}</option>
|
706
|
+
<option value="#{current_year - 5}">#{current_year - 5}</option>
|
707
|
+
<option value="#{current_year - 6}">#{current_year - 6}</option>
|
708
|
+
<option value="#{current_year - 7}">#{current_year - 7}</option>
|
709
|
+
</select>
|
710
|
+
EOS
|
711
|
+
end
|
712
|
+
|
713
|
+
|
714
|
+
########################################################
|
715
|
+
#
|
716
|
+
# Year Drop down
|
717
|
+
#
|
718
|
+
########################################################
|
719
|
+
|
720
|
+
def x_exp_year
|
721
|
+
current_year = Time.now.year
|
722
|
+
begining_year = Time.now.year + 6
|
723
|
+
|
724
|
+
year_dd = <<EOS
|
725
|
+
<div class="col-md-6">
|
726
|
+
<div class="form-group">
|
727
|
+
<label>Expiration Year</label>
|
728
|
+
<select id="exp_year" name="post[exp_year]" class="form-control" data-stripe="exp-year">
|
729
|
+
<option value="#{(current_year)}">#{current_year}</option>
|
730
|
+
<option value="#{(current_year + 1)}">#{current_year + 1}</option>
|
731
|
+
<option value="#{(current_year + 2)}">#{current_year + 2}</option>
|
732
|
+
<option value="#{(current_year + 3)}">#{current_year + 3}</option>
|
733
|
+
<option value="#{(current_year + 4)}">#{current_year + 4}</option>
|
734
|
+
<option value="#{(current_year + 5)}">#{current_year + 5}</option>
|
735
|
+
<option value="#{(current_year + 6)}">#{current_year + 6}</option>
|
736
|
+
<option value="#{(current_year + 7)}">#{current_year + 7}</option>
|
737
|
+
</select>
|
738
|
+
</div>
|
739
|
+
</div>
|
740
|
+
EOS
|
741
|
+
end
|
742
|
+
|
743
|
+
########################################################
|
744
|
+
#
|
745
|
+
# Month Drop down
|
746
|
+
#
|
747
|
+
########################################################
|
748
|
+
|
749
|
+
def x_exp_month
|
750
|
+
current_year = Time.now.year
|
751
|
+
begining_year = Time.now.year - 6
|
752
|
+
|
753
|
+
year_dd = <<EOS
|
754
|
+
<div class="col-md-6">
|
755
|
+
<div class="form-group">
|
756
|
+
<label>Expiration Month</label>
|
757
|
+
<select id="exp_mo" name="post[exp_mo]" class="form-control" data-stripe="exp-month">
|
758
|
+
<option value="01">01</option>
|
759
|
+
<option value="02">02</option>
|
760
|
+
<option value="03">03</option>
|
761
|
+
<option value="04">04</option>
|
762
|
+
<option value="05">05</option>
|
763
|
+
<option value="06">06</option>
|
764
|
+
<option value="07">07</option>
|
765
|
+
<option value="08">08</option>
|
766
|
+
<option value="09">09</option>
|
767
|
+
<option value="10">10</option>
|
768
|
+
<option value="11">11</option>
|
769
|
+
<option value="12">12</option>
|
770
|
+
</select>
|
771
|
+
</div>
|
772
|
+
</div>
|
773
|
+
EOS
|
774
|
+
end
|
775
|
+
|
776
|
+
########################################################
|
777
|
+
#
|
778
|
+
# Switch
|
779
|
+
#
|
780
|
+
########################################################
|
781
|
+
def x_switch(id: "", name: "", value: "", label: "", checked: false)
|
782
|
+
|
783
|
+
checked_output = ""
|
784
|
+
|
785
|
+
if checked == true then checked_output='checked="checked"' end
|
786
|
+
|
787
|
+
cb = <<EOS
|
788
|
+
<div class="form-group">
|
789
|
+
<label>#{label}</label><br>
|
790
|
+
<div class="switch"
|
791
|
+
data-on-label="<i class='fa fa-check'></i>"
|
792
|
+
data-off-label="<i class='fa fa-times'></i>">
|
793
|
+
<input type="hidden" id="#{id}" name="post[#{name}]" value="0">
|
794
|
+
<input type="checkbox" id="#{id}" name="post[#{name}]" value="1" #{checked_output}/>
|
795
|
+
</div>
|
796
|
+
</div>
|
797
|
+
EOS
|
798
|
+
return cb
|
799
|
+
end
|
800
|
+
|
801
|
+
########################################################
|
802
|
+
#
|
803
|
+
# Tags
|
804
|
+
#
|
805
|
+
########################################################
|
806
|
+
def x_tags(id: "", name: "", value: "", label: "", required: false, placeholder: "")
|
807
|
+
|
808
|
+
id = name unless id != ""
|
809
|
+
if required
|
810
|
+
if label != ""
|
811
|
+
required_output = '<sup class="text-danger">*</sup>'
|
812
|
+
else
|
813
|
+
required_output = ''
|
814
|
+
end
|
815
|
+
required_tag = 'required="required"'
|
816
|
+
else
|
817
|
+
required_output = ""
|
818
|
+
required_tag = ""
|
819
|
+
end
|
820
|
+
|
821
|
+
if label != ""
|
822
|
+
label = "<label>#{label}</label>"
|
823
|
+
end
|
824
|
+
tb = <<EOS
|
825
|
+
<div class="form-group">
|
826
|
+
#{label}#{required_output}
|
827
|
+
<input type="text" class="form-control tagsinput typeahead tag-azure tag-fill" id="#{id}" name="post[#{name}]" value="#{value}" placeholder="#{placeholder}" #{required_tag}/>
|
828
|
+
</div>
|
829
|
+
EOS
|
830
|
+
return tb
|
831
|
+
end
|
832
|
+
|
833
|
+
|
834
|
+
########################################################
|
835
|
+
#
|
836
|
+
# Typeahead
|
837
|
+
#
|
838
|
+
########################################################
|
839
|
+
def x_typeahead(id: "", name: "", value: "", label: "", required: false, placeholder: "", css: "")
|
840
|
+
|
841
|
+
id = name unless id != ""
|
842
|
+
if required
|
843
|
+
if label != ""
|
844
|
+
required_output = '<sup class="text-danger">*</sup>'
|
845
|
+
else
|
846
|
+
required_output = ''
|
847
|
+
end
|
848
|
+
required_tag = 'required="required"'
|
849
|
+
else
|
850
|
+
required_output = ""
|
851
|
+
required_tag = ""
|
852
|
+
end
|
853
|
+
|
854
|
+
if label != ""
|
855
|
+
label = "<label>#{label}</label>"
|
856
|
+
end
|
857
|
+
tb = <<EOS
|
858
|
+
<div class="form-group">
|
859
|
+
#{label}#{required_output}
|
860
|
+
<input type="text" class="form-control typeahead #{css}" autocomplete="off" id="#{id}" name="post[#{name}]" value="#{value}" placeholder="#{placeholder}" #{required_tag}/>
|
861
|
+
</div>
|
862
|
+
EOS
|
863
|
+
return tb
|
864
|
+
end
|
865
|
+
|
866
|
+
|
867
|
+
########################################################
|
868
|
+
#
|
869
|
+
# Rating Radios
|
870
|
+
#
|
871
|
+
########################################################
|
872
|
+
def x_survey_radio(id: "", name: "")
|
873
|
+
tb = <<EOS
|
874
|
+
<label class="radio radio-inline">
|
875
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="1">
|
876
|
+
</label>
|
877
|
+
<label class="radio radio-inline">
|
878
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="2">
|
879
|
+
</label>
|
880
|
+
<label class="radio radio-inline">
|
881
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="3">
|
882
|
+
</label>
|
883
|
+
<label class="radio radio-inline">
|
884
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="4">
|
885
|
+
</label>
|
886
|
+
<label class="radio radio-inline">
|
887
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="5">
|
888
|
+
</label>
|
889
|
+
<label class="radio radio-inline">
|
890
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="6">
|
891
|
+
</label>
|
892
|
+
<label class="radio radio-inline">
|
893
|
+
<input type="radio" id="#{id}" name="#{name}" data-toggle="radio" value="7">
|
894
|
+
</label>
|
895
|
+
EOS
|
896
|
+
return tb
|
897
|
+
end
|
898
|
+
|
899
|
+
|
900
|
+
########################################################
|
901
|
+
#
|
902
|
+
# Select Dropdown
|
903
|
+
#
|
904
|
+
########################################################
|
905
|
+
def x_select(id: "", name: "", value: "",name_col: "name", value_col: "id", label: "", css: "", menu_style: "dropdown-blue", style: "btn-default btn-block", option_data: "", option_name: "name", option_value: "id", selected_value: "")
|
906
|
+
|
907
|
+
options_html = ""
|
908
|
+
|
909
|
+
option_data.each do |i|
|
910
|
+
selected = ""
|
911
|
+
|
912
|
+
if selected_value == i[:id]
|
913
|
+
selected = "selected='selected'"
|
914
|
+
end
|
915
|
+
|
916
|
+
unless name_col.kind_of?(Array)
|
917
|
+
options_html << "<option value='#{i[value_col.to_sym]}' #{selected}>#{i[name_col.to_sym]}</option>"
|
918
|
+
else
|
919
|
+
label = ""
|
920
|
+
|
921
|
+
options_html << "<option value='#{i[value_col.to_sym]}' #{selected}>"
|
922
|
+
name_col.each do |n|
|
923
|
+
options_html << "#{i[n.to_sym]} "
|
924
|
+
end
|
925
|
+
options_html << "</option>"
|
926
|
+
|
927
|
+
end
|
928
|
+
end
|
929
|
+
|
930
|
+
if option_data.count == 0 || option_data.nil?
|
931
|
+
options_html << "<option value=''>No available selections</option>"
|
932
|
+
end
|
933
|
+
|
934
|
+
|
935
|
+
select = <<EOS
|
936
|
+
<div class="form-group">
|
937
|
+
<label>#{label}</label>
|
938
|
+
<select name="post[#{name}]" class="selectpicker #{css}" data-title="Single Select" data-style="#{style}" data-menu-style="#{menu_style}">
|
939
|
+
#{options_html}
|
940
|
+
</select>
|
941
|
+
</div>
|
942
|
+
EOS
|
943
|
+
|
944
|
+
return select
|
945
|
+
|
946
|
+
end
|
947
|
+
########################################################
|
948
|
+
#
|
949
|
+
# End
|
950
|
+
#
|
951
|
+
########################################################
|
952
|
+
end
|
953
|
+
end
|