common_core_js 0.3.2 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/app/helpers/common_core_helper.rb +79 -0
- data/app/helpers/common_core_js/controller_helper.rb +21 -0
- data/app/views/common/_common_create.js.erb +1 -1
- data/app/views/common/_common_edit_form.haml +4 -0
- data/app/views/common/_common_update.js.erb +2 -1
- data/lib/common_core_js.rb +20 -0
- data/lib/common_core_js/engine.rb +2 -0
- data/lib/common_core_js/version.rb +1 -1
- data/lib/generators/common_core/install_generator.rb +3 -4
- data/lib/generators/common_core/scaffold_generator.rb +103 -22
- data/lib/generators/common_core/templates/_errors.haml +5 -0
- data/lib/generators/common_core/templates/_flash_notices.haml +7 -0
- data/lib/generators/common_core/templates/_line.haml +5 -1
- data/lib/generators/common_core/templates/_list.haml +2 -2
- data/lib/generators/common_core/templates/all.haml +2 -1
- data/lib/generators/common_core/templates/base_controller.rb +3 -0
- data/lib/generators/common_core/templates/common_core.js +23 -8
- data/lib/generators/common_core/templates/common_core.scss +5 -0
- data/lib/generators/common_core/templates/controller.rb +21 -11
- metadata +6 -3
- data/app/helpers/common_core_js/application_helper.rb +0 -4
- data/app/helpers/common_core_js/generator_helper.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bd570ce32ada5b0551a77526d1b25e82f9b10a4ce9199e9abc60c3256a0c824
|
4
|
+
data.tar.gz: 39d7097d4e3daa434959ec9c72d93f83bee971d715f7ccde0fcb791332b8f490
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 344db104a6bcca04942313947217d71f786698f6656590b5f49f03974046a557e8de438c3ba9146c1f2041996926341942f84ef3ff2b947883386e6c7ab2e9c0
|
7
|
+
data.tar.gz: 5c51d14d8d1055b3652ce5e2351582951a60b0d5cb78b1b91153cbf60aab5e141579f177c4de169dd5de3d9cc059c4795c6b45d3024c9d720dcd361ae37814b9
|
data/.gitignore
CHANGED
@@ -0,0 +1,79 @@
|
|
1
|
+
module CommonCoreHelper
|
2
|
+
|
3
|
+
def timezonize(tz)
|
4
|
+
tz = tz.to_i
|
5
|
+
(tz >= 0 ? "+" : "-") + sprintf('%02d',tz.abs) + ":00"
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
def datetime_field_localized(form_object, field_name, value, label, timezone = nil )
|
10
|
+
|
11
|
+
res = form_object.label(label,
|
12
|
+
field_name,
|
13
|
+
class: 'small form-text text-muted')
|
14
|
+
|
15
|
+
res << form_object.text_field(field_name, class: 'form-control',
|
16
|
+
type: 'datetime-local',
|
17
|
+
value: date_to_current_timezone(value, timezone))
|
18
|
+
|
19
|
+
res << timezonize(timezone)
|
20
|
+
res
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def date_field_localized(form_object, field_name, value, label, timezone = nil )
|
25
|
+
res = form_object.label(label,
|
26
|
+
field_name,
|
27
|
+
class: 'small form-text text-muted')
|
28
|
+
|
29
|
+
res << form_object.text_field(field_name, class: 'form-control',
|
30
|
+
type: 'date',
|
31
|
+
value: value )
|
32
|
+
|
33
|
+
res
|
34
|
+
end
|
35
|
+
|
36
|
+
def time_field_localized(form_object, field_name, value, label, timezone = nil )
|
37
|
+
res = form_object.label(label,
|
38
|
+
field_name,
|
39
|
+
class: 'small form-text text-muted')
|
40
|
+
|
41
|
+
res << form_object.text_field(field_name, class: 'form-control',
|
42
|
+
type: 'time',
|
43
|
+
value: date_to_current_timezone(value, timezone))
|
44
|
+
|
45
|
+
res << timezonize(tz)
|
46
|
+
res
|
47
|
+
end
|
48
|
+
|
49
|
+
def current_timezone
|
50
|
+
if controller.try(:current_timezone)
|
51
|
+
controller.current_timezone
|
52
|
+
elsif defined?(current_user)
|
53
|
+
if current_user.try(:timezone)
|
54
|
+
Time.now.in_time_zone(current_user.timezone).strftime("%z").to_i/100
|
55
|
+
else
|
56
|
+
Time.now.strftime("%z").to_i/100
|
57
|
+
end
|
58
|
+
else
|
59
|
+
raise "no method current_user is available or it does not implement timezone; please implement/override the method current_timezone IN YOUR CONTROLLER"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def date_to_current_timezone(date, timezone = nil)
|
65
|
+
|
66
|
+
# if the timezone is nil, use the server date'
|
67
|
+
if timezone.nil?
|
68
|
+
timezone = Time.now.strftime("%z").to_i/100
|
69
|
+
end
|
70
|
+
|
71
|
+
return nil if date.nil?
|
72
|
+
|
73
|
+
begin
|
74
|
+
return date.in_time_zone(timezone).strftime("%Y-%m-%dT%H:%M")
|
75
|
+
rescue
|
76
|
+
return nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module CommonCoreJs
|
2
|
+
module ControllerHelper
|
3
|
+
def modify_date_inputs_on_params(modified_params)
|
4
|
+
use_timezone = current_account.timezone || Time.now.strftime("%z")
|
5
|
+
|
6
|
+
modified_params = modified_params.tap do |params|
|
7
|
+
params.keys.each{|k|
|
8
|
+
if k.ends_with?("_at") || k.ends_with?("_date")
|
9
|
+
|
10
|
+
begin
|
11
|
+
params[k] = DateTime.strptime("#{params[k]} #{use_timezone}", '%Y-%m-%dT%H:%M %z')
|
12
|
+
rescue StandardError
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
}
|
17
|
+
end
|
18
|
+
modified_params
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<% if object.errors.any? %>
|
10
10
|
$(".flash-notices").html("<%= j render 'layouts/flash_notices' %>");
|
11
|
-
$("<%= (scope + " ") if controller.common_scope %> .new-<%=singular%>-form").html(
|
11
|
+
$("<%= (scope + " ") if controller.common_scope %> .new-<%=singular%>-form").html('<%= j render(partial: "#{controller.namespace}errors", locals: {resource: object}) %>')
|
12
12
|
$("<%= (scope + " ") if controller.common_scope %> .new-<%=singular%>-form").append("<%= j render(partial: "new", locals: { singular.to_sym => object}) %><i class='fa fa-times-circle fa-2x' data-name='<%=singular%>' data-role='close-button' />").slideDown();
|
13
13
|
<% else %>
|
14
14
|
$("<%= (scope + " ") if controller.common_scope %> .new-<%=singular%>-form").slideUp();
|
@@ -1,6 +1,7 @@
|
|
1
1
|
<% if object.errors.any? %>
|
2
2
|
<% pass_through_locals ||= {} %>
|
3
|
-
$(".<%= singular %>-table tr[data-id=<%= object.id %>][data-edit='true']").html("<%= j render
|
3
|
+
$(".<%= singular %>-table tr[data-id=<%= object.id %>][data-edit='true']").html("<%= j render partial: 'edit', locals: {singular.to_sym => object, url: url, colspan: controller.default_colspan}.merge(pass_through_locals || {}) %>")
|
4
|
+
|
4
5
|
$(".flash-notices").html("<%= j render 'layouts/flash_notices' %>");
|
5
6
|
<% else %>
|
6
7
|
$(".<%= singular %>-table tr[data-id=<%= object.id %>]:not([data-edit='true'])").replaceWith("<%= j render partial: 'line', locals: {singular.to_sym => object } %>").fadeIn()
|
data/lib/common_core_js.rb
CHANGED
@@ -6,4 +6,24 @@ require 'haml-rails'
|
|
6
6
|
|
7
7
|
module CommonCoreJs
|
8
8
|
# Your code goes here...
|
9
|
+
#
|
10
|
+
module ControllerHelpers
|
11
|
+
def modify_date_inputs_on_params(modified_params, authenticated_user = nil)
|
12
|
+
use_timezone = authenticated_user.timezone || Time.now.strftime("%z")
|
13
|
+
|
14
|
+
modified_params = modified_params.tap do |params|
|
15
|
+
params.keys.each{|k|
|
16
|
+
if k.ends_with?("_at") || k.ends_with?("_date")
|
17
|
+
|
18
|
+
begin
|
19
|
+
params[k] = DateTime.strptime("#{params[k]} #{use_timezone}", '%Y-%m-%dT%H:%M %z')
|
20
|
+
rescue StandardError
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
}
|
25
|
+
end
|
26
|
+
modified_params
|
27
|
+
end
|
28
|
+
end
|
9
29
|
end
|
@@ -10,12 +10,11 @@ module CommonCore
|
|
10
10
|
|
11
11
|
def initialize(*args) #:nodoc:
|
12
12
|
super
|
13
|
-
|
14
|
-
copy_file "common_core.
|
15
|
-
copy_file "
|
13
|
+
copy_file "common_core.js", "app/javascript/common_core.js"
|
14
|
+
copy_file "common_core.scss", "app/assets/stylesheets/common_core.scss"
|
15
|
+
copy_file "_flash_notices.haml", "app/views/layouts/_flash_notices.haml"
|
16
16
|
|
17
17
|
end
|
18
|
-
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
@@ -13,7 +13,7 @@ module CommonCore
|
|
13
13
|
end
|
14
14
|
|
15
15
|
".row
|
16
|
-
|
16
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
17
17
|
= f.text_area :#{col.to_s}, class: 'form-control', cols: 40, rows: '#{lines}'
|
18
18
|
%label.form-text
|
19
19
|
#{col.to_s.humanize}\n"
|
@@ -23,7 +23,7 @@ module CommonCore
|
|
23
23
|
|
24
24
|
def field_output(col, type = nil, width)
|
25
25
|
".row
|
26
|
-
|
26
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
27
27
|
= f.text_field :#{col.to_s}, value: @#{singular}.#{col.to_s}, size: #{width}, class: 'form-control', type: '#{type}'
|
28
28
|
%label.form-text
|
29
29
|
#{col.to_s.humanize}\n"
|
@@ -83,13 +83,17 @@ module CommonCore
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
|
87
|
+
|
86
88
|
auth_assoc = @auth.gsub("current_","")
|
87
89
|
auth_assoc_field = auth_assoc + "_id"
|
88
90
|
|
89
91
|
|
92
|
+
|
93
|
+
exclude_fields = [auth_assoc_field.to_sym, :id, :created_at, :updated_at, :encrypted_password, :reset_password_token,
|
94
|
+
:reset_password_sent_at, :remember_created_at]
|
90
95
|
begin
|
91
|
-
@columns = object.columns.map(&:name).map(&:to_sym).reject{|field| field
|
92
|
-
field==:created_at || field==:id || field == auth_assoc_field.to_sym }
|
96
|
+
@columns = object.columns.map(&:name).map(&:to_sym).reject{|field| exclude_fields.include?(field) }
|
93
97
|
rescue StandardError => e
|
94
98
|
puts "Ooops... it looks like is an object for #{class_name}. Please create the database table with fields first. "
|
95
99
|
exit
|
@@ -118,6 +122,11 @@ module CommonCore
|
|
118
122
|
@auth_identifier = @auth.gsub("current_", "")
|
119
123
|
end
|
120
124
|
|
125
|
+
|
126
|
+
if auth_identifier == @singular
|
127
|
+
@self_auth = true
|
128
|
+
end
|
129
|
+
|
121
130
|
if !@nest.nil?
|
122
131
|
@nested_args = @nest.split("/")
|
123
132
|
|
@@ -141,11 +150,16 @@ module CommonCore
|
|
141
150
|
|
142
151
|
unless @specs_only
|
143
152
|
template "controller.rb", File.join("app/controllers#{namespace_with_dash}", "#{plural}_controller.rb")
|
153
|
+
if @namespace
|
154
|
+
template "base_controller.rb", File.join("app/controllers#{namespace_with_dash}", "base_controller.rb")
|
155
|
+
end
|
144
156
|
end
|
145
157
|
|
146
158
|
unless @no_specs
|
147
159
|
template "controller_spec.rb", File.join("spec/controllers#{namespace_with_dash}", "#{plural}_controller_spec.rb")
|
148
160
|
end
|
161
|
+
|
162
|
+
template "_errors.haml", File.join("app/views#{namespace_with_dash}", "_errors.haml")
|
149
163
|
end
|
150
164
|
|
151
165
|
def list_column_headings
|
@@ -268,7 +282,9 @@ module CommonCore
|
|
268
282
|
|
269
283
|
def all_objects_root
|
270
284
|
if @auth
|
271
|
-
if @
|
285
|
+
if @self_auth
|
286
|
+
@singular_class + ".where(id: #{@auth}.id)"
|
287
|
+
elsif @nested_args.none?
|
272
288
|
@auth + ".#{plural}"
|
273
289
|
else
|
274
290
|
"@" + @nested_args.last + ".#{plural}"
|
@@ -344,7 +360,7 @@ module CommonCore
|
|
344
360
|
|
345
361
|
|
346
362
|
def create_merge_params
|
347
|
-
if @auth
|
363
|
+
if @auth && ! @self_auth
|
348
364
|
"#{@auth_identifier}: #{@auth}"
|
349
365
|
else
|
350
366
|
""
|
@@ -392,45 +408,55 @@ module CommonCore
|
|
392
408
|
display_column = "display_name"
|
393
409
|
elsif assoc.active_record.column_names.include?("email")
|
394
410
|
display_column = "email"
|
411
|
+
else
|
412
|
+
puts "Can't find a display_column on {singular_class} object"
|
395
413
|
end
|
396
414
|
|
397
415
|
".row
|
398
|
-
|
399
|
-
= f.collection_select(:#{col.to_s}, #{assoc_name.titleize}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} , class: 'form-control')
|
416
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{assoc_name.to_s})}\"}
|
417
|
+
= f.collection_select(:#{col.to_s}, #{assoc_name.titleize}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control')
|
400
418
|
%label.small.form-text.text-muted
|
401
419
|
#{col.to_s.humanize}"
|
402
420
|
|
403
421
|
else
|
404
422
|
".row
|
405
|
-
|
423
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
406
424
|
= f.text_field :#{col.to_s}, value: @#{singular}.#{col.to_s}, class: 'form-control', size: 4, type: 'number'
|
407
425
|
%label.form-text
|
408
426
|
#{col.to_s.humanize}\n"
|
409
427
|
end
|
410
428
|
when :string
|
411
|
-
limit ||=
|
412
|
-
if limit
|
429
|
+
limit ||= 256
|
430
|
+
if limit <= 256
|
413
431
|
field_output(col, nil, limit)
|
414
432
|
else
|
415
433
|
text_area_output(col, limit)
|
416
434
|
end
|
417
435
|
|
418
436
|
when :text
|
419
|
-
limit ||=
|
420
|
-
if limit
|
437
|
+
limit ||= 256
|
438
|
+
if limit <= 256
|
421
439
|
field_output(col, nil, limit)
|
422
440
|
else
|
423
441
|
text_area_output(col, limit)
|
424
442
|
end
|
425
443
|
|
426
444
|
when :datetime
|
427
|
-
|
428
|
-
|
429
|
-
= f
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
445
|
+
".row
|
446
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
447
|
+
= datetime_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
448
|
+
when :date
|
449
|
+
".row
|
450
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
451
|
+
= date_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
452
|
+
when :time
|
453
|
+
".row
|
454
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
455
|
+
= time_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
456
|
+
|
457
|
+
end
|
458
|
+
|
459
|
+
}.join("\n")
|
434
460
|
return res
|
435
461
|
end
|
436
462
|
|
@@ -458,8 +484,22 @@ module CommonCore
|
|
458
484
|
exit
|
459
485
|
end
|
460
486
|
|
487
|
+
if assoc.active_record.column_names.include?("name")
|
488
|
+
display_column = "name"
|
489
|
+
elsif assoc.active_record.column_names.include?("to_label")
|
490
|
+
display_column = "to_label"
|
491
|
+
elsif assoc.active_record.column_names.include?("full_name")
|
492
|
+
display_column = "full_name"
|
493
|
+
elsif assoc.active_record.column_names.include?("display_name")
|
494
|
+
display_column = "display_name"
|
495
|
+
elsif assoc.active_record.column_names.include?("email")
|
496
|
+
display_column = "email"
|
497
|
+
else
|
498
|
+
puts "cant find any column to use as label for #{assoc.name.to_s}; any of name, to_labe, full_name, display_name, or email"
|
499
|
+
end
|
500
|
+
|
461
501
|
" %td
|
462
|
-
= #{singular}.#{assoc.name.to_s}
|
502
|
+
= #{singular}.#{assoc.name.to_s}.#{display_column}"
|
463
503
|
|
464
504
|
else
|
465
505
|
" %td
|
@@ -474,13 +514,54 @@ module CommonCore
|
|
474
514
|
= #{singular}.#{col}"
|
475
515
|
when :datetime
|
476
516
|
" %td
|
477
|
-
|
517
|
+
- unless #{singular}.#{col}.nil?
|
518
|
+
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%m/%d/%Y @ %l:%M %p ') + timezonize(current_timezone)
|
519
|
+
- else
|
520
|
+
%span.alert-danger
|
521
|
+
MISSING
|
522
|
+
"
|
523
|
+
when :date
|
524
|
+
" %td
|
525
|
+
- unless #{singular}.#{col}.nil?
|
526
|
+
= #{singular}.#{col}
|
527
|
+
- else
|
528
|
+
%span.alert-danger
|
529
|
+
MISSING
|
530
|
+
"
|
531
|
+
when :time
|
532
|
+
" %td
|
533
|
+
- unless #{singular}.#{col}.nil?
|
534
|
+
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%l:%M %p ') + timezonize(current_timezone)
|
535
|
+
- else
|
536
|
+
%span.alert-danger
|
537
|
+
MISSING
|
538
|
+
"
|
539
|
+
|
478
540
|
end
|
479
541
|
}.join("\n")
|
480
542
|
return res
|
481
543
|
end
|
482
544
|
|
483
545
|
|
546
|
+
def controller_descends_from
|
547
|
+
if defined?(@namespace.titlecase + "::BaseController")
|
548
|
+
@namespace.titlecase + "::BaseController"
|
549
|
+
else
|
550
|
+
"ApplicationController"
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
554
|
+
|
555
|
+
def destroy_action
|
556
|
+
return false if @self_auth
|
557
|
+
return true
|
558
|
+
end
|
559
|
+
|
560
|
+
def create_action
|
561
|
+
return false if @self_auth
|
562
|
+
return true
|
563
|
+
end
|
564
|
+
|
484
565
|
|
485
566
|
private # thor does something fancy like sending the class all of its own methods during some strange run sequence
|
486
567
|
# does not like public methods
|
@@ -1,3 +1,7 @@
|
|
1
1
|
<%= all_line_fields %>
|
2
2
|
%td
|
3
|
-
|
3
|
+
<% if destroy_action %>
|
4
|
+
= link_to "Delete <i class='fa fa-1x fa-remove'></i>".html_safe, <%= path_helper_singular %>(<%= singular %>), remote: true ,method: :delete, disable_with: "Loading...", class: "delete-<%= singular %>-button btn btn-primary "
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= singular %>), remote: true , disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary "
|
@@ -1,9 +1,9 @@
|
|
1
1
|
|
2
|
+
<% if create_action %>
|
2
3
|
= link_to "New <%= singular.gsub('_',' ') %>", new_<%= path_helper_singular %>(<%= nested_arity_for_path %>), disable_with: "Loading...", remote: true, class: "new-<%= singular %>-button btn btn-primary pull-right"
|
3
|
-
|
4
4
|
.clearfix
|
5
5
|
.new-<%= singular %>-form{style: "display: none; position: relative;"}
|
6
|
-
|
6
|
+
<% end %>
|
7
7
|
|
8
8
|
|
9
9
|
%table.table.table-striped.<%= singular %>-table
|
@@ -1,4 +1,5 @@
|
|
1
1
|
.container-fluid
|
2
2
|
.row
|
3
3
|
.col-md-12
|
4
|
-
|
4
|
+
.<%= singular %>-list
|
5
|
+
= render partial: "<%= namespace_with_trailing_dash %><%= plural %>/list", locals: {<%= plural %>: <%= all_objects_root %>.order("created_at DESC").page(1)}
|
@@ -1,16 +1,31 @@
|
|
1
1
|
|
2
2
|
require("jquery")
|
3
|
-
console.log("loading common core...")
|
3
|
+
// console.log("loading common core...")
|
4
|
+
|
5
|
+
// require("jstimezonedetect/dist/jstz.min")
|
6
|
+
// var JSTZ = require('jstimezonedetect');
|
7
|
+
|
8
|
+
|
4
9
|
|
5
|
-
$(function(){
|
6
|
-
// always pass csrf tokens on ajax calls
|
7
|
-
$.ajaxSetup({
|
8
|
-
headers: { 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') }
|
9
|
-
});
|
10
|
-
});
|
11
10
|
|
12
11
|
$(document).on('turbolinks:load', function() {
|
12
|
+
|
13
13
|
$(document).ready(() => {
|
14
|
+
var user_timezone = '';
|
15
|
+
try {user_timezone = JSTZ.determine().name();} catch(e){}
|
16
|
+
// always pass csrf tokens on ajax calls
|
17
|
+
|
18
|
+
|
19
|
+
// $.ajaxSetup({
|
20
|
+
// beforeSend: (xhr) => {
|
21
|
+
//
|
22
|
+
// xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))
|
23
|
+
// xhr.setRequestHeader( 'X-User-Timezone', user_timezone)
|
24
|
+
//
|
25
|
+
//
|
26
|
+
// }
|
27
|
+
// })
|
28
|
+
|
14
29
|
$("body").on("click", "[data-role='close-button']", (event) => {
|
15
30
|
var form_name;
|
16
31
|
form_name = $(event.currentTarget).data("name");
|
@@ -30,7 +45,7 @@ $(document).on('turbolinks:load', function() {
|
|
30
45
|
$form.find("i").remove()
|
31
46
|
}
|
32
47
|
})
|
33
|
-
})
|
48
|
+
});
|
34
49
|
});
|
35
50
|
|
36
51
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class <%= controller_class_name %> <
|
1
|
+
class <%= controller_class_name %> < <%= controller_descends_from %>
|
2
2
|
<% unless @auth_identifier.nil? %>
|
3
3
|
before_action :authenticate_<%= auth_identifier %>!
|
4
4
|
|
@@ -6,7 +6,8 @@ class <%= controller_class_name %> < ApplicationController
|
|
6
6
|
<% if any_nested? %> <% @nested_args.each do |arg| %>
|
7
7
|
before_action :load_<%= arg %><% end %> <% end %>
|
8
8
|
before_action :load_<%= singular_name %>, only: [:show, :edit, :update, :destroy]
|
9
|
-
|
9
|
+
helper :common_core
|
10
|
+
include CommonCoreJs::ControllerHelpers
|
10
11
|
|
11
12
|
<% if any_nested? %><% nest_chain = [] %> <% @nested_args.each do |arg| %>
|
12
13
|
<% if nest_chain.empty?
|
@@ -19,20 +20,29 @@ class <%= controller_class_name %> < ApplicationController
|
|
19
20
|
@<%= arg %> = <%= this_scope %>.find(params[:<%= arg %>_id])
|
20
21
|
end<% end %> <% end %>
|
21
22
|
|
23
|
+
|
24
|
+
<% if !@self_auth %>
|
22
25
|
def load_<%= singular_name %>
|
23
26
|
@<%= singular_name %> = <%= object_scope %>.find(params[:id])
|
24
27
|
end
|
28
|
+
<% else %>
|
29
|
+
def load_<%= singular_name %>
|
30
|
+
@<%= singular_name %> = <%= auth_object %>
|
31
|
+
end<% end %>
|
25
32
|
|
26
33
|
def index
|
34
|
+
<% if !@self_auth %>
|
27
35
|
@<%= plural_name %> = <%= object_scope %><% if model_has_strings? %>.where(<%=class_name %>.arel_table[:email].matches("%#{@__general_string}%"))<% end %>.page(params[:page])
|
28
|
-
|
36
|
+
<% else %>
|
37
|
+
@<%= plural_name %> = [<%= auth_object %>]
|
38
|
+
<% end %>
|
29
39
|
respond_to do |format|
|
30
40
|
format.js<% if @with_index %>
|
31
41
|
format.html {render 'all.haml'}<% end %>
|
32
42
|
end
|
33
43
|
end
|
34
44
|
|
35
|
-
def new
|
45
|
+
<% if create_action %> def new
|
36
46
|
@<%= singular_name %> = <%= class_name %>.new(<%= create_merge_params %>)
|
37
47
|
respond_to do |format|
|
38
48
|
format.js
|
@@ -40,16 +50,16 @@ class <%= controller_class_name %> < ApplicationController
|
|
40
50
|
end
|
41
51
|
|
42
52
|
def create
|
43
|
-
|
53
|
+
modified_params = modify_date_inputs_on_params(<%=singular_name %>_params.dup<% if !create_merge_params.empty? %>.merge!(<%= create_merge_params %>)<%end%> , <%= @auth ? @auth : "nil" %>)
|
54
|
+
@<%=singular_name %> = <%=class_name %>.create(modified_params)
|
44
55
|
respond_to do |format|
|
45
56
|
if @<%= singular_name %>.save
|
46
|
-
format.js
|
47
57
|
else
|
48
58
|
flash[:alert] = "Oops, your <%=singular_name %> could not be saved."
|
49
|
-
format.js
|
50
59
|
end
|
60
|
+
format.js
|
51
61
|
end
|
52
|
-
end
|
62
|
+
end<% end %>
|
53
63
|
|
54
64
|
def show
|
55
65
|
respond_to do |format|
|
@@ -65,14 +75,14 @@ class <%= controller_class_name %> < ApplicationController
|
|
65
75
|
|
66
76
|
def update
|
67
77
|
respond_to do |format|
|
68
|
-
if !@<%=singular_name %>.update(<%= singular %>_params)
|
78
|
+
if !@<%=singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params, <%= @auth ? @auth : "nil" %> ))
|
69
79
|
flash[:alert] = "<%=singular_name.titlecase %> could not be saved"
|
70
80
|
end
|
71
81
|
format.js {}
|
72
82
|
end
|
73
83
|
end
|
74
84
|
|
75
|
-
|
85
|
+
<% if destroy_action %>def destroy
|
76
86
|
respond_to do |format|
|
77
87
|
begin
|
78
88
|
@<%=singular_name%>.destroy
|
@@ -81,7 +91,7 @@ class <%= controller_class_name %> < ApplicationController
|
|
81
91
|
end
|
82
92
|
format.js {}
|
83
93
|
end
|
84
|
-
end
|
94
|
+
end<% end %>
|
85
95
|
|
86
96
|
def <%=singular_name%>_params
|
87
97
|
params.require(:<%=singular_name%>).permit( <%= @columns %> )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: common_core_js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
@@ -142,8 +142,8 @@ files:
|
|
142
142
|
- app/assets/stylesheets/common_core_js/application.css
|
143
143
|
- app/assets/stylesheets/common_core_js/common_core.scss
|
144
144
|
- app/controllers/common_core_js/application_controller.rb
|
145
|
-
- app/helpers/
|
146
|
-
- app/helpers/common_core_js/
|
145
|
+
- app/helpers/common_core_helper.rb
|
146
|
+
- app/helpers/common_core_js/controller_helper.rb
|
147
147
|
- app/jobs/common_core_js/application_job.rb
|
148
148
|
- app/mailers/common_core_js/application_mailer.rb
|
149
149
|
- app/models/common_core_js/application_record.rb
|
@@ -170,11 +170,14 @@ files:
|
|
170
170
|
- lib/generators/common_core/install_generator.rb
|
171
171
|
- lib/generators/common_core/scaffold_generator.rb
|
172
172
|
- lib/generators/common_core/templates/_edit.haml
|
173
|
+
- lib/generators/common_core/templates/_errors.haml
|
174
|
+
- lib/generators/common_core/templates/_flash_notices.haml
|
173
175
|
- lib/generators/common_core/templates/_form.haml
|
174
176
|
- lib/generators/common_core/templates/_line.haml
|
175
177
|
- lib/generators/common_core/templates/_list.haml
|
176
178
|
- lib/generators/common_core/templates/_new.haml
|
177
179
|
- lib/generators/common_core/templates/all.haml
|
180
|
+
- lib/generators/common_core/templates/base_controller.rb
|
178
181
|
- lib/generators/common_core/templates/common_core.js
|
179
182
|
- lib/generators/common_core/templates/common_core.scss
|
180
183
|
- lib/generators/common_core/templates/controller.rb
|
File without changes
|