common_core_js 0.3.4 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ed403954e1619e60aed2c0c239679b882ded20fab6876557bc370682866e4e9
4
- data.tar.gz: 82d2eff05dcd520bc721087573fcc01a928651415a66e3b9437e8641082df995
3
+ metadata.gz: e52d23ca84e6aaeb8632f16b726dca47569602e8a30f67930a22aa1c92b85441
4
+ data.tar.gz: e203d956052682ec9e6a41049f001678ef1c6a1a4db90760e48e4f290ca7e2fe
5
5
  SHA512:
6
- metadata.gz: 0d962aeeb62c3a241cb00e774e207f20d6f7d5e0ce73ad18f3d77ee23806531278fcb897172125baf64c234f559b981b40a4e5fbb05e6f96b21c6684eba94e3a
7
- data.tar.gz: fa77bc758647627c1995163e803646dfd144543881fe623c50ba9b5a9f6689337ba054e928623edf37e933e00bd01dd7c5ea16affdd499cd45a570c8edb5f3c1
6
+ metadata.gz: 770808dd3227c4dc7dc6c5cce6d4582f5105c59943839c5424dec7bb4d01f52ca7968a64b4615f96e968198d1f429106e0240c09909485bd9fd8b2f26d6702f0
7
+ data.tar.gz: 48dc5ad547294ab2ce9b41b5db7b2f3ea00738d27a4eb60d3c7e6abfc3c7ce0b93097d88aee4fbfecc2c7c33ff968d488ae32e5d05b307c5f63abed0cf8a3dec
@@ -0,0 +1,4 @@
1
+ # repo: your_github_handle/foobar
2
+ # filename: FUNDING.YML
3
+
4
+ github: [jasonfb]
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
- = THE SALES PITCH:
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 autoamatically along with the controllers.
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
- = HOW EASY?
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
- = TO INSTALL
36
+ ## TO INSTALL
30
37
 
31
38
  - Add common_core_js to your Gemfile
32
39
 
@@ -1,5 +1,10 @@
1
- module CommonCoreJs
2
- module ApplicationHelper
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,12 +15,13 @@ module CommonCoreJs
10
15
  type: 'datetime-local',
11
16
  value: date_to_current_timezone(value, timezone))
12
17
 
13
- res << human_timezone(Time.now, timezone)
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')
@@ -36,31 +42,24 @@ module CommonCoreJs
36
42
  type: 'time',
37
43
  value: date_to_current_timezone(value, timezone))
38
44
 
39
- res << human_timezone(Time.now, timezone)
45
+ res << timezonize(tz)
40
46
  res
41
47
  end
42
48
 
43
49
  def current_timezone
44
- if method(:current_user)
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,4 +1,8 @@
1
1
  %td{style: "position: relative;", colspan: controller.default_colspan}
2
+ - if object.errors.any?
3
+ = render(partial: "#{controller.namespace}errors", locals: {resource: object})
4
+
5
+
2
6
  Editing
3
7
  - if object.try(:to_label)
4
8
  = object.to_label
@@ -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(partial: '#{controller.namespace}errors', locals: {resource: object}) %><%= j render partial: 'edit', locals: {singular.to_sym => object, url: url, colspan: controller.default_colspan}.merge(pass_through_locals || {}) %>")
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()
@@ -1,3 +1,3 @@
1
1
  module CommonCoreJs
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.9'
3
3
  end
@@ -84,16 +84,9 @@ module CommonCore
84
84
  end
85
85
 
86
86
  auth_assoc = @auth.gsub("current_","")
87
- auth_assoc_field = auth_assoc + "_id"
88
-
89
87
 
90
- begin
91
- @columns = object.columns.map(&:name).map(&:to_sym).reject{|field| field==:updated_at ||
92
- field==:created_at || field==:id || field == auth_assoc_field.to_sym }
93
- rescue StandardError => e
94
- puts "Ooops... it looks like is an object for #{class_name}. Please create the database table with fields first. "
95
- exit
96
- end
88
+ @no_delete = false
89
+ @no_create = false
97
90
 
98
91
  flags = meta_args[1]
99
92
  flags.each do |f|
@@ -106,6 +99,10 @@ module CommonCore
106
99
  @specs_only = true
107
100
  when "--no-specs"
108
101
  @no_specs = true
102
+ when "--no-delete"
103
+ @no_delete = true
104
+ when "--no-create"
105
+ @no_create = true
109
106
  end
110
107
  end
111
108
 
@@ -114,18 +111,56 @@ module CommonCore
114
111
  exit
115
112
  end
116
113
 
114
+
115
+ # only used for the before_action
117
116
  if @auth_identifier.nil? && !@auth.nil?
118
117
  @auth_identifier = @auth.gsub("current_", "")
119
118
  end
120
119
 
120
+ # when in self auth, the object is the same as the authenticated object
121
+ if @auth && auth_identifier == @singular
122
+ @self_auth = true
123
+ end
124
+
121
125
  if !@nest.nil?
122
126
  @nested_args = @nest.split("/")
123
-
124
127
  @nested_args_plural = {}
125
128
  @nested_args.each do |a|
126
129
  @nested_args_plural[a] = a + "s"
127
130
  end
128
131
  end
132
+
133
+ # the @object_owner will always be object that will 'own' the object
134
+ # for new and create
135
+
136
+ if @auth && ! @self_auth && @nested_args.none?
137
+ @object_owner_sym = @auth.gsub("current_", "").to_sym
138
+ @object_owner_eval = @auth
139
+ else
140
+ @object_owner_sym = @nested_args.last.to_sym
141
+ @object_owner_eval = "@#{@nested_args.last}"
142
+ end
143
+
144
+
145
+
146
+ # create the columns
147
+ auth_assoc_field = auth_assoc + "_id"
148
+
149
+ ownership_field = eval("#{singular_class}.reflect_on_association(:#{@object_owner_sym})").name.to_s + "_id"
150
+
151
+
152
+ exclude_fields = [auth_assoc_field.to_sym, ownership_field.to_sym, :id, :created_at, :updated_at, :encrypted_password, :reset_password_token,
153
+ :reset_password_sent_at, :remember_created_at, :confirmation_token, :confirmed_at,
154
+ :confirmation_sent_at, :unconfirmed_email]
155
+ begin
156
+ @columns = object.columns.map(&:name).map(&:to_sym).reject{|field| exclude_fields.include?(field) }
157
+ rescue StandardError => e
158
+ puts "Ooops... it looks like is an object for #{class_name}. Please create the database table with fields first. "
159
+ exit
160
+ end
161
+
162
+
163
+
129
164
  end
130
165
 
131
166
  def formats
@@ -141,6 +176,9 @@ module CommonCore
141
176
 
142
177
  unless @specs_only
143
178
  template "controller.rb", File.join("app/controllers#{namespace_with_dash}", "#{plural}_controller.rb")
179
+ if @namespace && defined?(controller_descends_from) == nil
180
+ template "base_controller.rb", File.join("app/controllers#{namespace_with_dash}", "base_controller.rb")
181
+ end
144
182
  end
145
183
 
146
184
  unless @no_specs
@@ -223,6 +261,14 @@ module CommonCore
223
261
  end
224
262
 
225
263
 
264
+ def path_helper_full
265
+ "#{@namespace+"_" if @namespace}#{(@nested_args.join("_") + "_" if @nested_args.any?)}#{singular}_path"
266
+ end
267
+
268
+ def path_helper_args
269
+ [(@nested_args if @nested_args.any?).collect{|a| "@#{a}"} , singular].join(",")
270
+ end
271
+
226
272
  def path_helper_singular
227
273
  "#{@namespace+"_" if @namespace}#{(@nested_args.join("_") + "_" if @nested_args.any?)}#{singular}_path"
228
274
  end
@@ -252,7 +298,7 @@ module CommonCore
252
298
  end
253
299
 
254
300
  def nested_arity_for_path
255
- @nested_args.join(", ") #metaprgramming into arity for the Rails path helper
301
+ [@nested_args[0..-1].collect{|a| "@#{a}"}].join(", ") #metaprgramming into arity for the Rails path helper
256
302
  end
257
303
 
258
304
  def object_scope
@@ -270,7 +316,9 @@ module CommonCore
270
316
 
271
317
  def all_objects_root
272
318
  if @auth
273
- if @nested_args.none?
319
+ if @self_auth
320
+ @singular_class + ".where(id: #{@auth}.id)"
321
+ elsif @nested_args.none?
274
322
  @auth + ".#{plural}"
275
323
  else
276
324
  "@" + @nested_args.last + ".#{plural}"
@@ -285,8 +333,12 @@ module CommonCore
285
333
  end
286
334
 
287
335
  def all_objects_variable
336
+
288
337
  # needs the authenticated root user
289
- "#{@auth}.#{ @nested_args.map{|a| "#{@nested_args_plural[a]}.find(@#{a})"}.join('.') + "." if @nested_args.any?}#{plural}"
338
+ # "#{@auth}.#{ @nested_args.map{|a| "#{@nested_args_plural[a]}.find(@#{a})"}.join('.') + "." if @nested_args.any?}#{plural}"
339
+
340
+ all_objects_root + ".page(params[:page])"
341
+
290
342
  end
291
343
 
292
344
  def auth_object
@@ -344,15 +396,6 @@ module CommonCore
344
396
  :erb
345
397
  end
346
398
 
347
-
348
- def create_merge_params
349
- if @auth
350
- "#{@auth_identifier}: #{@auth}"
351
- else
352
- ""
353
- end
354
- end
355
-
356
399
  def model_has_strings?
357
400
  false
358
401
  end
@@ -383,6 +426,7 @@ module CommonCore
383
426
  puts "*** Oops. on the #{singular_class} object, there doesn't seem to be an association called '#{assoc_name}'"
384
427
  exit
385
428
  end
429
+ assoc_class_name = eval("#{singular_class}.reflect_on_association(:#{assoc_name})").class_name
386
430
 
387
431
  if assoc.active_record.column_names.include?("name")
388
432
  display_column = "name"
@@ -394,11 +438,14 @@ module CommonCore
394
438
  display_column = "display_name"
395
439
  elsif assoc.active_record.column_names.include?("email")
396
440
  display_column = "email"
441
+ else
442
+ puts "Can't find a display_column on {singular_class} object"
397
443
  end
398
444
 
445
+
399
446
  ".row
400
447
  %div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{assoc_name.to_s})}\"}
401
- = f.collection_select(:#{col.to_s}, #{assoc_name.titleize}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control')
448
+ = f.collection_select(:#{col.to_s}, #{assoc_class_name}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control')
402
449
  %label.small.form-text.text-muted
403
450
  #{col.to_s.humanize}"
404
451
 
@@ -410,16 +457,16 @@ module CommonCore
410
457
  #{col.to_s.humanize}\n"
411
458
  end
412
459
  when :string
413
- limit ||= 40
414
- if limit < 50
460
+ limit ||= 256
461
+ if limit <= 256
415
462
  field_output(col, nil, limit)
416
463
  else
417
464
  text_area_output(col, limit)
418
465
  end
419
466
 
420
467
  when :text
421
- limit ||= 40
422
- if limit < 50
468
+ limit ||= 256
469
+ if limit <= 256
423
470
  field_output(col, nil, limit)
424
471
  else
425
472
  text_area_output(col, limit)
@@ -428,15 +475,15 @@ module CommonCore
428
475
  when :datetime
429
476
  ".row
430
477
  %div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
431
- = datetime_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth}.timezone)"
478
+ = datetime_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
432
479
  when :date
433
480
  ".row
434
481
  %div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
435
- = date_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth}.timezone)"
482
+ = date_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
436
483
  when :time
437
484
  ".row
438
485
  %div{class: \"form-group col-md-4 \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
439
- = time_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth}.timezone)"
486
+ = time_field_localized(f, :#{col.to_s}, @#{singular}.#{col.to_s}, '#{col.to_s.humanize}', #{@auth ? @auth+'.timezone' : 'nil'})"
440
487
 
441
488
  end
442
489
 
@@ -499,7 +546,7 @@ module CommonCore
499
546
  when :datetime
500
547
  " %td
501
548
  - unless #{singular}.#{col}.nil?
502
- = #{singular}.#{col}.in_time_zone(current_timezone).strftime('%m/%d/%Y @ %l:%M %p ') + human_timezone(Time.now, current_timezone)
549
+ = #{singular}.#{col}.in_time_zone(current_timezone).strftime('%m/%d/%Y @ %l:%M %p ') + timezonize(current_timezone)
503
550
  - else
504
551
  %span.alert-danger
505
552
  MISSING
@@ -515,7 +562,7 @@ module CommonCore
515
562
  when :time
516
563
  " %td
517
564
  - unless #{singular}.#{col}.nil?
518
- = #{singular}.#{col}.in_time_zone(current_timezone).strftime('%l:%M %p ') + human_timezone(Time.now, current_timezone)
565
+ = #{singular}.#{col}.in_time_zone(current_timezone).strftime('%l:%M %p ') + timezonize(current_timezone)
519
566
  - else
520
567
  %span.alert-danger
521
568
  MISSING
@@ -527,6 +574,25 @@ module CommonCore
527
574
  end
528
575
 
529
576
 
577
+ def controller_descends_from
578
+ if defined?(@namespace.titlecase + "::BaseController")
579
+ @namespace.titlecase + "::BaseController"
580
+ else
581
+ "ApplicationController"
582
+ end
583
+ end
584
+
585
+
586
+ def destroy_action
587
+ return false if @self_auth
588
+ return !@no_delete
589
+ end
590
+
591
+ def create_action
592
+ return false if @self_auth
593
+ return !@no_create
594
+ end
595
+
530
596
 
531
597
  private # thor does something fancy like sending the class all of its own methods during some strange run sequence
532
598
  # does not like public methods
@@ -1,5 +1,7 @@
1
1
  <%= all_line_fields %>
2
2
  %td
3
- = 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 "
3
+ <% if destroy_action %>
4
+ = link_to "Delete <i class='fa fa-1x fa-remove'></i>".html_safe, <%= path_helper_full %>(<%= path_helper_args %>), remote: true, method: :delete, data: {confirm: 'Are you sure?'}, disable_with: "Loading...", class: "delete-<%= singular %>-button btn btn-primary "
5
+ <% end %>
4
6
  &nbsp;
5
- = 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 "
7
+ = link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_full %>(<%= path_helper_args %>), 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
@@ -0,0 +1,3 @@
1
+ class <%= controller_descends_from %> < ApplicationController
2
+ end
3
+
@@ -1,12 +1,13 @@
1
- class <%= controller_class_name %> < ApplicationController
2
- <% unless @auth_identifier.nil? %>
1
+ class <%= controller_class_name %> < <%= controller_descends_from %>
2
+ <% unless @auth_identifier == '' %>
3
3
  before_action :authenticate_<%= auth_identifier %>!
4
4
 
5
5
  <% end %>
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,29 +20,37 @@ 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
- include CommonCoreJs::ControllerHelpers
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
37
- @<%= singular_name %> = <%= class_name %>.new(<%= create_merge_params %>)
45
+ <% if create_action %> def new
46
+ @<%= singular_name %> = <%= class_name %>.new(<%= @object_owner_sym %>: <%= @object_owner_eval %>)
38
47
  respond_to do |format|
39
48
  format.js
40
49
  end
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 %><%end%> ), <%=@auth%>)
53
+ modified_params = modify_date_inputs_on_params(<%=singular_name %>_params.dup<% if !@object_owner_sym.empty? %>.merge!(<%= @object_owner_sym %>: <%= @object_owner_eval %> )<% end %>, <%= @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, <%=@auth%> ))
78
+ if !@<%=singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params, <%= @auth %> ))
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
- def destroy
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 %> )
@@ -1 +1 @@
1
- <%%= render partial: 'common/common_create', locals: {object: @<%= singular %>, singular: "<%= singular %>", plural: "<%= plural %>"} %>
1
+ <%%= render partial: 'common/common_create', locals: {object: @<%= singular %>, singular: "<%= singular %>", plural: "<%= plural %>"<%= ", " + nested_assignments if nested_assignments %>} %>
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
4
+ version: 0.3.9
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/common_core_js/application_helper.rb
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