common_core_js 0.3.3 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/FUNDING.yml +4 -0
- data/README.md +12 -5
- data/app/helpers/{common_core_js/application_helper.rb → common_core_helper.rb} +16 -18
- data/app/helpers/common_core_js/controller_helper.rb +21 -0
- 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/version.rb +1 -1
- data/lib/generators/common_core/scaffold_generator.rb +67 -22
- 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 +3 -3
- data/lib/generators/common_core/templates/common_core.scss +5 -0
- data/lib/generators/common_core/templates/controller.rb +19 -10
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69b48d2b11f7087d3a842266d1c08df9da022bc7191dbc71f286431ac02112f0
|
4
|
+
data.tar.gz: cdc77c41c2dff7e393837fb1954fc0bd599083c2ce305e98416c097866d6c4a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bceefae2fd396020f7225df73e9f74a4f6ea7d06b94250880c872e68c921b43ac1eb0b0f34805098fbab5ca877fe26d54dc152230d2990a9b58428ccf9f6e6ea
|
7
|
+
data.tar.gz: d40870c3538adc2a9d687d583e7b3821544eff497425bf00f712d6426945477d7ac0bc191072ef5befbe0f38b9b0eb1b28b81298719d6eec38a427c458299509
|
data/FUNDING.yml
ADDED
data/README.md
CHANGED
@@ -8,25 +8,32 @@ Yes, it's opinionated. Yes, it's metaprogramming. A lot of metaprogramming. Ruby
|
|
8
8
|
No, I would not use this to build an intricate app. Yes, it's a great tool for prototyping. Yes, I think prototyping is a lost art.
|
9
9
|
|
10
10
|
|
11
|
-
|
11
|
+
## THE SALES PITCH:
|
12
12
|
* Build plug-and-play scaffolding mixing HAML with jQuery-based Javascript
|
13
13
|
* Automatically Reads Your Models (make them before building your scaffolding!)
|
14
|
-
* Excellent for CRUD, lists with pagination, searching, sorting
|
14
|
+
* Excellent for CRUD, lists with pagination, searching, ~~sorting.~~
|
15
15
|
* Wonderful for prototyping.
|
16
16
|
* Plays nicely with Devise, Kaminari, Haml-Rails, Rspec.
|
17
|
-
* Create specs
|
17
|
+
* Create specs automatically along with the controllers.
|
18
18
|
* Nest your routes model-by-model for built-in poor man's authentication
|
19
19
|
* Throw the scaffolding away when your app is ready to graduate to its next phase.
|
20
20
|
|
21
|
+
## THE BLOG POST
|
21
22
|
|
22
|
-
|
23
|
+
It's really easy to get started by following along with this blog post that creates three simple tables (User, Event, and Format).
|
24
|
+
|
25
|
+
Feel free to build your own tables when you get to the sections for building the 'Event' scaffold:
|
26
|
+
|
27
|
+
https://blog.jasonfleetwoodboldt.com/common-core-js
|
28
|
+
|
29
|
+
## HOW EASY?
|
23
30
|
|
24
31
|
|
25
32
|
```
|
26
33
|
rails generate common_core:scaffold Thing
|
27
34
|
```
|
28
35
|
|
29
|
-
|
36
|
+
## TO INSTALL
|
30
37
|
|
31
38
|
- Add common_core_js to your Gemfile
|
32
39
|
|
@@ -1,5 +1,10 @@
|
|
1
|
-
module
|
2
|
-
|
1
|
+
module CommonCoreHelper
|
2
|
+
|
3
|
+
def timezonize(tz)
|
4
|
+
tz = tz.to_i
|
5
|
+
(tz >= 0 ? "+" : "-") + sprintf('%02d',tz.abs) + ":00"
|
6
|
+
end
|
7
|
+
|
3
8
|
|
4
9
|
def datetime_field_localized(form_object, field_name, value, label, timezone = nil )
|
5
10
|
res = form_object.label(label,
|
@@ -10,19 +15,20 @@ module CommonCoreJs
|
|
10
15
|
type: 'datetime-local',
|
11
16
|
value: date_to_current_timezone(value, timezone))
|
12
17
|
|
13
|
-
res <<
|
18
|
+
res << timezonize(timezone)
|
14
19
|
res
|
15
20
|
end
|
16
21
|
|
17
22
|
|
18
23
|
def date_field_localized(form_object, field_name, value, label, timezone = nil )
|
24
|
+
|
19
25
|
res = form_object.label(label,
|
20
26
|
field_name,
|
21
27
|
class: 'small form-text text-muted')
|
22
28
|
|
23
29
|
res << form_object.text_field(field_name, class: 'form-control',
|
24
30
|
type: 'date',
|
25
|
-
value:
|
31
|
+
value: value )
|
26
32
|
|
27
33
|
res
|
28
34
|
end
|
@@ -36,31 +42,24 @@ module CommonCoreJs
|
|
36
42
|
type: 'time',
|
37
43
|
value: date_to_current_timezone(value, timezone))
|
38
44
|
|
39
|
-
res <<
|
45
|
+
res << timezonize(tz)
|
40
46
|
res
|
41
47
|
end
|
42
48
|
|
43
49
|
def current_timezone
|
44
|
-
if
|
50
|
+
if controller.try(:current_timezone)
|
51
|
+
controller.current_timezone
|
52
|
+
elsif defined?(current_user)
|
45
53
|
if current_user.try(:timezone)
|
46
|
-
Time.now.in_time_zone(current_user.timezone).strftime("%z").to_i/100
|
54
|
+
Time.now.in_time_zone(current_user.timezone.to_i).strftime("%z").to_i/100
|
47
55
|
else
|
48
56
|
Time.now.strftime("%z").to_i/100
|
49
57
|
end
|
50
58
|
else
|
51
|
-
raise "no method current_user is available or it does not implement timezone; please implement/override the method current_timezone"
|
59
|
+
raise "no method current_user is available or it does not implement timezone; please implement/override the method current_timezone IN YOUR CONTROLLER"
|
52
60
|
end
|
53
61
|
end
|
54
62
|
|
55
|
-
def human_timezone(time_string, timezone)
|
56
|
-
time = time_string.in_time_zone(timezone)
|
57
|
-
|
58
|
-
if time.zone.match?(/^\w/)
|
59
|
-
time.zone
|
60
|
-
else
|
61
|
-
time.formatted_offset
|
62
|
-
end
|
63
|
-
end
|
64
63
|
|
65
64
|
def date_to_current_timezone(date, timezone = nil)
|
66
65
|
# if the timezone is nil, use the server date'
|
@@ -76,5 +75,4 @@ module CommonCoreJs
|
|
76
75
|
return nil
|
77
76
|
end
|
78
77
|
end
|
79
|
-
end
|
80
78
|
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
|
@@ -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()
|
@@ -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"
|
@@ -86,15 +86,19 @@ module CommonCore
|
|
86
86
|
auth_assoc = @auth.gsub("current_","")
|
87
87
|
auth_assoc_field = auth_assoc + "_id"
|
88
88
|
|
89
|
-
|
89
|
+
exclude_fields = [auth_assoc_field.to_sym, :id, :created_at, :updated_at, :encrypted_password, :reset_password_token,
|
90
|
+
:reset_password_sent_at, :remember_created_at, :confirmation_token, :confirmed_at,
|
91
|
+
:confirmation_sent_at, :unconfirmed_email]
|
90
92
|
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 }
|
93
|
+
@columns = object.columns.map(&:name).map(&:to_sym).reject{|field| exclude_fields.include?(field) }
|
93
94
|
rescue StandardError => e
|
94
95
|
puts "Ooops... it looks like is an object for #{class_name}. Please create the database table with fields first. "
|
95
96
|
exit
|
96
97
|
end
|
97
98
|
|
99
|
+
@no_delete = false
|
100
|
+
@no_create = false
|
101
|
+
|
98
102
|
flags = meta_args[1]
|
99
103
|
flags.each do |f|
|
100
104
|
case (f)
|
@@ -106,6 +110,10 @@ module CommonCore
|
|
106
110
|
@specs_only = true
|
107
111
|
when "--no-specs"
|
108
112
|
@no_specs = true
|
113
|
+
when "--no-delete"
|
114
|
+
@no_delete = true
|
115
|
+
when "--no-create"
|
116
|
+
@no_create = true
|
109
117
|
end
|
110
118
|
end
|
111
119
|
|
@@ -118,6 +126,11 @@ module CommonCore
|
|
118
126
|
@auth_identifier = @auth.gsub("current_", "")
|
119
127
|
end
|
120
128
|
|
129
|
+
|
130
|
+
if @auth && auth_identifier == @singular
|
131
|
+
@self_auth = true
|
132
|
+
end
|
133
|
+
|
121
134
|
if !@nest.nil?
|
122
135
|
@nested_args = @nest.split("/")
|
123
136
|
|
@@ -141,6 +154,9 @@ module CommonCore
|
|
141
154
|
|
142
155
|
unless @specs_only
|
143
156
|
template "controller.rb", File.join("app/controllers#{namespace_with_dash}", "#{plural}_controller.rb")
|
157
|
+
if @namespace && defined?(controller_descends_from) == nil
|
158
|
+
template "base_controller.rb", File.join("app/controllers#{namespace_with_dash}", "base_controller.rb")
|
159
|
+
end
|
144
160
|
end
|
145
161
|
|
146
162
|
unless @no_specs
|
@@ -270,7 +286,9 @@ module CommonCore
|
|
270
286
|
|
271
287
|
def all_objects_root
|
272
288
|
if @auth
|
273
|
-
if @
|
289
|
+
if @self_auth
|
290
|
+
@singular_class + ".where(id: #{@auth}.id)"
|
291
|
+
elsif @nested_args.none?
|
274
292
|
@auth + ".#{plural}"
|
275
293
|
else
|
276
294
|
"@" + @nested_args.last + ".#{plural}"
|
@@ -285,8 +303,12 @@ module CommonCore
|
|
285
303
|
end
|
286
304
|
|
287
305
|
def all_objects_variable
|
306
|
+
|
288
307
|
# needs the authenticated root user
|
289
|
-
"#{@auth}.#{ @nested_args.map{|a| "#{@nested_args_plural[a]}.find(@#{a})"}.join('.') + "." if @nested_args.any?}#{plural}"
|
308
|
+
# "#{@auth}.#{ @nested_args.map{|a| "#{@nested_args_plural[a]}.find(@#{a})"}.join('.') + "." if @nested_args.any?}#{plural}"
|
309
|
+
|
310
|
+
all_objects_root + ".page(params[:page])"
|
311
|
+
|
290
312
|
end
|
291
313
|
|
292
314
|
def auth_object
|
@@ -346,7 +368,7 @@ module CommonCore
|
|
346
368
|
|
347
369
|
|
348
370
|
def create_merge_params
|
349
|
-
if @auth
|
371
|
+
if @auth && ! @self_auth
|
350
372
|
"#{@auth_identifier}: #{@auth}"
|
351
373
|
else
|
352
374
|
""
|
@@ -394,32 +416,34 @@ module CommonCore
|
|
394
416
|
display_column = "display_name"
|
395
417
|
elsif assoc.active_record.column_names.include?("email")
|
396
418
|
display_column = "email"
|
419
|
+
else
|
420
|
+
puts "Can't find a display_column on {singular_class} object"
|
397
421
|
end
|
398
422
|
|
399
423
|
".row
|
400
|
-
|
424
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{assoc_name.to_s})}\"}
|
401
425
|
= f.collection_select(:#{col.to_s}, #{assoc_name.titleize}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control')
|
402
426
|
%label.small.form-text.text-muted
|
403
427
|
#{col.to_s.humanize}"
|
404
428
|
|
405
429
|
else
|
406
430
|
".row
|
407
|
-
|
431
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
408
432
|
= f.text_field :#{col.to_s}, value: @#{singular}.#{col.to_s}, class: 'form-control', size: 4, type: 'number'
|
409
433
|
%label.form-text
|
410
434
|
#{col.to_s.humanize}\n"
|
411
435
|
end
|
412
436
|
when :string
|
413
|
-
limit ||=
|
414
|
-
if limit
|
437
|
+
limit ||= 256
|
438
|
+
if limit <= 256
|
415
439
|
field_output(col, nil, limit)
|
416
440
|
else
|
417
441
|
text_area_output(col, limit)
|
418
442
|
end
|
419
443
|
|
420
444
|
when :text
|
421
|
-
limit ||=
|
422
|
-
if limit
|
445
|
+
limit ||= 256
|
446
|
+
if limit <= 256
|
423
447
|
field_output(col, nil, limit)
|
424
448
|
else
|
425
449
|
text_area_output(col, limit)
|
@@ -427,16 +451,16 @@ module CommonCore
|
|
427
451
|
|
428
452
|
when :datetime
|
429
453
|
".row
|
430
|
-
|
431
|
-
= datetime_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth
|
454
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
455
|
+
= datetime_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
432
456
|
when :date
|
433
457
|
".row
|
434
|
-
|
435
|
-
= date_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth
|
458
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
459
|
+
= date_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
436
460
|
when :time
|
437
461
|
".row
|
438
|
-
|
439
|
-
= time_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth
|
462
|
+
%div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
463
|
+
= time_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
|
440
464
|
|
441
465
|
end
|
442
466
|
|
@@ -499,7 +523,7 @@ module CommonCore
|
|
499
523
|
when :datetime
|
500
524
|
" %td
|
501
525
|
- unless #{singular}.#{col}.nil?
|
502
|
-
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%m/%d/%Y @ %l:%M %p ') +
|
526
|
+
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%m/%d/%Y @ %l:%M %p ') + timezonize(current_timezone)
|
503
527
|
- else
|
504
528
|
%span.alert-danger
|
505
529
|
MISSING
|
@@ -510,13 +534,15 @@ module CommonCore
|
|
510
534
|
= #{singular}.#{col}
|
511
535
|
- else
|
512
536
|
%span.alert-danger
|
537
|
+
MISSING
|
513
538
|
"
|
514
539
|
when :time
|
515
540
|
" %td
|
516
541
|
- unless #{singular}.#{col}.nil?
|
517
|
-
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%l:%M %p ') +
|
542
|
+
= #{singular}.#{col}.in_time_zone(current_timezone).strftime('%l:%M %p ') + timezonize(current_timezone)
|
518
543
|
- else
|
519
544
|
%span.alert-danger
|
545
|
+
MISSING
|
520
546
|
"
|
521
547
|
|
522
548
|
end
|
@@ -525,6 +551,25 @@ module CommonCore
|
|
525
551
|
end
|
526
552
|
|
527
553
|
|
554
|
+
def controller_descends_from
|
555
|
+
if defined?(@namespace.titlecase + "::BaseController")
|
556
|
+
@namespace.titlecase + "::BaseController"
|
557
|
+
else
|
558
|
+
"ApplicationController"
|
559
|
+
end
|
560
|
+
end
|
561
|
+
|
562
|
+
|
563
|
+
def destroy_action
|
564
|
+
return false if @self_auth
|
565
|
+
return !@no_delete
|
566
|
+
end
|
567
|
+
|
568
|
+
def create_action
|
569
|
+
return false if @self_auth
|
570
|
+
return !@no_create
|
571
|
+
end
|
572
|
+
|
528
573
|
|
529
574
|
private # thor does something fancy like sending the class all of its own methods during some strange run sequence
|
530
575
|
# 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, data: {confirm: 'Are you sure?'}, 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,9 +1,9 @@
|
|
1
1
|
|
2
2
|
require("jquery")
|
3
|
-
console.log("loading common core...")
|
3
|
+
// console.log("loading common core...")
|
4
4
|
|
5
|
-
require("jstimezonedetect/dist/jstz.min")
|
6
|
-
var JSTZ = require('jstimezonedetect');
|
5
|
+
// require("jstimezonedetect/dist/jstz.min")
|
6
|
+
// var JSTZ = require('jstimezonedetect');
|
7
7
|
|
8
8
|
|
9
9
|
|
@@ -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,21 +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
|
25
|
-
|
28
|
+
<% else %>
|
29
|
+
def load_<%= singular_name %>
|
30
|
+
@<%= singular_name %> = <%= auth_object %>
|
31
|
+
end<% end %>
|
26
32
|
|
27
33
|
def index
|
34
|
+
<% if !@self_auth %>
|
28
35
|
@<%= plural_name %> = <%= object_scope %><% if model_has_strings? %>.where(<%=class_name %>.arel_table[:email].matches("%#{@__general_string}%"))<% end %>.page(params[:page])
|
29
|
-
|
36
|
+
<% else %>
|
37
|
+
@<%= plural_name %> = [<%= auth_object %>]
|
38
|
+
<% end %>
|
30
39
|
respond_to do |format|
|
31
40
|
format.js<% if @with_index %>
|
32
41
|
format.html {render 'all.haml'}<% end %>
|
33
42
|
end
|
34
43
|
end
|
35
44
|
|
36
|
-
def new
|
45
|
+
<% if create_action %> def new
|
37
46
|
@<%= singular_name %> = <%= class_name %>.new(<%= create_merge_params %>)
|
38
47
|
respond_to do |format|
|
39
48
|
format.js
|
@@ -41,7 +50,7 @@ class <%= controller_class_name %> < ApplicationController
|
|
41
50
|
end
|
42
51
|
|
43
52
|
def create
|
44
|
-
modified_params = modify_date_inputs_on_params(<%=singular_name %>_params.dup<% if !create_merge_params.empty? %>.merge!(<%= create_merge_params
|
53
|
+
modified_params = modify_date_inputs_on_params(<%=singular_name %>_params.dup<% if !create_merge_params.empty? %>.merge!(<%= create_merge_params %>)<% end %> <%= @auth ? ",#{@auth}" : "" %>)
|
45
54
|
@<%=singular_name %> = <%=class_name %>.create(modified_params)
|
46
55
|
respond_to do |format|
|
47
56
|
if @<%= singular_name %>.save
|
@@ -50,7 +59,7 @@ class <%= controller_class_name %> < ApplicationController
|
|
50
59
|
end
|
51
60
|
format.js
|
52
61
|
end
|
53
|
-
end
|
62
|
+
end<% end %>
|
54
63
|
|
55
64
|
def show
|
56
65
|
respond_to do |format|
|
@@ -66,14 +75,14 @@ class <%= controller_class_name %> < ApplicationController
|
|
66
75
|
|
67
76
|
def update
|
68
77
|
respond_to do |format|
|
69
|
-
if !@<%=singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params,
|
78
|
+
if !@<%=singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params, <%= @auth ? @auth : "nil" %> ))
|
70
79
|
flash[:alert] = "<%=singular_name.titlecase %> could not be saved"
|
71
80
|
end
|
72
81
|
format.js {}
|
73
82
|
end
|
74
83
|
end
|
75
84
|
|
76
|
-
|
85
|
+
<% if destroy_action %>def destroy
|
77
86
|
respond_to do |format|
|
78
87
|
begin
|
79
88
|
@<%=singular_name%>.destroy
|
@@ -82,7 +91,7 @@ class <%= controller_class_name %> < ApplicationController
|
|
82
91
|
end
|
83
92
|
format.js {}
|
84
93
|
end
|
85
|
-
end
|
94
|
+
end<% end %>
|
86
95
|
|
87
96
|
def <%=singular_name%>_params
|
88
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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- ".generators"
|
132
132
|
- ".gitignore"
|
133
133
|
- ".rakeTasks"
|
134
|
+
- FUNDING.yml
|
134
135
|
- Gemfile
|
135
136
|
- Gemfile.lock
|
136
137
|
- LICENSE
|
@@ -142,7 +143,8 @@ files:
|
|
142
143
|
- app/assets/stylesheets/common_core_js/application.css
|
143
144
|
- app/assets/stylesheets/common_core_js/common_core.scss
|
144
145
|
- app/controllers/common_core_js/application_controller.rb
|
145
|
-
- app/helpers/
|
146
|
+
- app/helpers/common_core_helper.rb
|
147
|
+
- app/helpers/common_core_js/controller_helper.rb
|
146
148
|
- app/jobs/common_core_js/application_job.rb
|
147
149
|
- app/mailers/common_core_js/application_mailer.rb
|
148
150
|
- app/models/common_core_js/application_record.rb
|
@@ -176,6 +178,7 @@ files:
|
|
176
178
|
- lib/generators/common_core/templates/_list.haml
|
177
179
|
- lib/generators/common_core/templates/_new.haml
|
178
180
|
- lib/generators/common_core/templates/all.haml
|
181
|
+
- lib/generators/common_core/templates/base_controller.rb
|
179
182
|
- lib/generators/common_core/templates/common_core.js
|
180
183
|
- lib/generators/common_core/templates/common_core.scss
|
181
184
|
- lib/generators/common_core/templates/controller.rb
|