lotus_admin 1.4.4 → 1.5.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d3ca80072d89b813035c6b9362226840dd8acefa668e97002c2cbb142998b9d
4
- data.tar.gz: 1a275b54e059f89ee5384a40fb5fcf697440c1195ada84d50e071d2e31dd3e77
3
+ metadata.gz: 1a6d6f7dab65888fc3cc1d0c1823baa23eb80d80605bc11c292bccff92f2242a
4
+ data.tar.gz: 72edd101b774056720d793cbab45c79f52519add43976762c1a32f1962719037
5
5
  SHA512:
6
- metadata.gz: 90247f44db4b6b0785556c8469c6b1aa62c5e3c45db85213a41b7449bbd02b914981fdda3f76e823349236d902289f52ee9e396adcd3bc4157f17949667e76eb
7
- data.tar.gz: 2b4d3029f59c37c53fd14b213102d870a597ba33096965d4021d7632b8f7ce284691fce30eace6031a1c51c686e8328e724e69fb927050fe50cc65a0282ddc02
6
+ metadata.gz: 442cdf1f5eaf5ee45be321bfdf1dcbd0cf503101abf3a1f441e98521bb3d70a37b802e6526319edac810f46932ece767d389290fb379a27ff73ba87f917ed2f2
7
+ data.tar.gz: 7427bb13393baf8774e1be6bdc0613bccec45baaac602fb718e8abdedc659c4219bef7ad0b09b94a6c8a0e3bc7da890271635a2d6ca836b01513819512fb9f7c
@@ -15,34 +15,58 @@ class LotusAdmin::ResourceController < LotusAdmin::AuthenticatedController
15
15
  let(:resource_class) { self.class._resource_class }
16
16
  let(:collection_path) { url_for(resource_class) }
17
17
 
18
- def new
18
+ def new(&block)
19
19
  self.resource = build_resource
20
20
 
21
21
  authorize(resource) if using_pundit?
22
+
23
+ block.call if block.present?
22
24
  end
23
25
 
24
- def create
26
+ def create(&block)
25
27
  self.resource = build_resource(permitted_params)
26
28
 
27
29
  authorize(resource) if using_pundit?
28
30
 
29
- if resource.save
30
- redirect_to after_create_redirect, notice: "Created new #{ resource_class.model_name.human } successfully"
31
- else
32
- render :new
31
+ respond_to do |format|
32
+ format.html
33
+
34
+ if block.present?
35
+ block.call
36
+ else
37
+ if resource.save
38
+ redirect_to after_create_redirect, notice: "Created new #{ resource_class.model_name.human } successfully"
39
+ else
40
+ render :new
41
+ end
42
+ end
33
43
  end
34
44
  end
35
45
 
36
- def update
46
+ def edit(&block)
37
47
  authorize(resource) if using_pundit?
38
48
 
39
- if resource.update(permitted_params)
40
- redirect_to after_update_redirect, notice: "Updated new #{ resource_class.model_name.human } successfully"
49
+ if block.present?
50
+ block.call
41
51
  else
42
52
  render :edit
43
53
  end
44
54
  end
45
55
 
56
+ def update(&block)
57
+ authorize(resource) if using_pundit?
58
+
59
+ if block.present?
60
+ block.call
61
+ else
62
+ if resource.update(permitted_params)
63
+ redirect_to after_update_redirect, notice: "Updated #{ resource_class.model_name.human } successfully"
64
+ else
65
+ render :edit
66
+ end
67
+ end
68
+ end
69
+
46
70
  def index(&block)
47
71
  authorize(resource_class) if using_pundit?
48
72
 
@@ -11,39 +11,18 @@ module LotusAdmin
11
11
  filter :created_at
12
12
  filter :last_sign_in_at
13
13
 
14
- def new
15
- self.resource = resource_class.new
16
- end
17
-
18
14
  def create
19
- self.resource = resource_class.new(permitted_params)
20
- resource.password = Devise.friendly_token.first(8)
21
-
22
- if resource.save
23
- resource.send_invited_email_notification
15
+ super do
16
+ resource.password = Devise.friendly_token.first(8)
24
17
 
25
- redirect_to [lotus_admin, resource_class], notice: "Created new #{ resource_class.model_name.human }"
26
- else
27
- render :new
28
- end
29
- end
18
+ if resource.save
19
+ resource.send_invited_email_notification
30
20
 
31
- def update
32
- if resource.update(permitted_params)
33
- redirect_to [lotus_admin, resource], notice: 'Changes saved'
34
- else
35
- render :edit
21
+ redirect_to after_create_redirect, notice: "Created new #{ resource_class.model_name.human }"
22
+ else
23
+ render :new
24
+ end
36
25
  end
37
26
  end
38
-
39
- def destroy
40
- if user.destroy
41
- flash[:notice] = "#{ resource_class.model_name.human } has been removed"
42
- else
43
- flash[:error] = "There was an error removing that #{ resource_class.model_name.human }"
44
- end
45
-
46
- redirect_to [lotus_admin, resource_class]
47
- end
48
27
  end
49
28
  end
@@ -1,25 +1,57 @@
1
1
  module LotusAdmin
2
2
  module LinkHelpers
3
+ def default_table_actions_column(resource)
4
+ render 'lotus_admin/shared/table/actions', resource: resource
5
+ end
6
+
7
+ def undecorated(resource)
8
+ resource.try(:object).presence || resource
9
+ end
10
+
11
+ def view_resource_item(resource)
12
+ if policy(resource).show?
13
+ content_tag(:li) { view_link(resource) }
14
+ end
15
+ end
16
+
17
+ def new_resource_item(parent = nil)
18
+ if policy(resource_class).new?
19
+ content_tag(:li) { new_link(parent) }
20
+ end
21
+ end
22
+
23
+ def edit_resource_item(resource)
24
+ if policy(resource).edit?
25
+ content_tag(:li) { edit_link(resource) }
26
+ end
27
+ end
28
+
29
+ def destroy_resource_item(resource)
30
+ if policy(resource).destroy?
31
+ content_tag(:li) { destroy_link(resource) }
32
+ end
33
+ end
34
+
3
35
  def view_link(resource)
4
- link_to lotus_admin.polymorphic_path(resource) do
36
+ link_to lotus_admin.polymorphic_path(undecorated(resource)) do
5
37
  content_tag(:i, nil, class: 'zmdi zmdi-eye')
6
38
  end
7
39
  end
8
40
 
9
- def new_link
10
- link_to lotus_admin.new_polymorphic_path(resource_class) do
41
+ def new_link(parent = nil)
42
+ link_to lotus_admin.new_polymorphic_path([parent, resource_class].compact) do
11
43
  content_tag(:i, nil, class: 'zmdi zmdi-plus-circle')
12
44
  end
13
45
  end
14
46
 
15
47
  def edit_link(resource)
16
- link_to lotus_admin.edit_polymorphic_path(resource) do
48
+ link_to lotus_admin.edit_polymorphic_path(undecorated(resource)) do
17
49
  content_tag(:i, nil, class: 'zmdi zmdi-edit')
18
50
  end
19
51
  end
20
52
 
21
53
  def destroy_link(resource)
22
- link_to lotus_admin.polymorphic_path(resource), data: { method: :delete, confirm: "Are you sure you want to remove this #{ resource.model_name.human }?" } do
54
+ link_to lotus_admin.polymorphic_path(undecorated(resource)), data: { method: :delete, confirm: "Are you sure you want to remove this #{ resource.model_name.human }?" } do
23
55
  content_tag(:i, nil, class: 'zmdi zmdi-delete')
24
56
  end
25
57
  end
@@ -1,15 +1,17 @@
1
- = material_form_for [lotus_admin, resource] do |f|
2
- .form-inputs
3
- - f.object.class.columns.each do |column|
4
- - case column.type
5
- - when :text
6
- = f.input column.name, as: :text, input_html: { rows: 5 }
7
- - else
8
- - case column.name
9
- - when /_at$/
10
- - else
11
- = f.input column.name
1
+ .card
2
+ .card-body.card-padding
3
+ = material_form_for [lotus_admin, resource] do |f|
4
+ .form-inputs
5
+ - f.object.class.columns.each do |column|
6
+ - case column.type
7
+ - when :text
8
+ = f.input column.name, as: :text, input_html: { rows: 5 }
9
+ - else
10
+ - case column.name
11
+ - when /_at$/
12
+ - else
13
+ = f.input column.name
12
14
 
13
- .form-actions
14
- = material_form_submit(resource)
15
- = material_form_cancel(lotus_admin.polymorphic_path(resource_class))
15
+ .form-actions
16
+ = material_form_submit(resource)
17
+ = material_form_cancel(lotus_admin.polymorphic_path(resource_class))
@@ -2,11 +2,6 @@
2
2
  %h2= page_title!("Edit #{ resource_class.model_name.human }")
3
3
 
4
4
  %ul.actions
5
- %li= new_link
5
+ = new_resource_item
6
6
 
7
- .card
8
- .card-header
9
- = t('.help', resource: resource_class.model_name.human)
10
-
11
- .card-body.card-padding
12
- = render 'form'
7
+ = render 'form'
@@ -1,5 +1,5 @@
1
1
  - content_for :action_items do
2
- %li= new_link
2
+ = new_resource_item
3
3
 
4
4
  = render_index do
5
5
  .table-responsive
@@ -12,8 +12,4 @@
12
12
  - collection.each do |resource|
13
13
  %tr
14
14
  %td= link_to resource.id, [lotus_admin, resource]
15
- %td.actions-col
16
- %ul.actions
17
- %li= view_link(resource)
18
- %li= edit_link(resource)
19
- %li= destroy_link(resource)
15
+ = default_table_actions_column(resource)
@@ -1,9 +1,4 @@
1
1
  .block-header
2
2
  %h2= page_title!("New #{ resource_class.model_name.human }")
3
3
 
4
- .card
5
- .card-header
6
- = t('.help', resource: resource_class.model_name.human)
7
-
8
- .card-body.card-padding
9
- = render 'form'
4
+ = render 'form'
@@ -2,9 +2,9 @@
2
2
  %h2= page_title!("#{ resource_class.model_name.human } Details")
3
3
 
4
4
  %ul.actions
5
- %li= edit_link(resource)
6
- %li= destroy_link(resource)
7
- %li= new_link
5
+ = edit_resource_item(resource)
6
+ = destroy_resource_item(resource)
7
+ = new_resource_item
8
8
 
9
9
  .card
10
10
  .card-header
@@ -0,0 +1,5 @@
1
+ %td.actions-col
2
+ %ul.actions
3
+ = view_resource_item(resource)
4
+ = edit_resource_item(resource)
5
+ = destroy_resource_item(resource)
@@ -2,7 +2,7 @@
2
2
  %h2= page_title!("Edit #{ resource_class.model_name.human }")
3
3
 
4
4
  %ul.actions
5
- %li= new_link
5
+ = new_resource_item
6
6
 
7
7
  .card
8
8
  .card-header
@@ -1,5 +1,5 @@
1
1
  - content_for :action_items do
2
- %li= new_link
2
+ = new_resource_item
3
3
 
4
4
  = render_index do
5
5
  .table-responsive
@@ -20,6 +20,6 @@
20
20
  %td= user.email
21
21
  %td.actions-col
22
22
  %ul.actions
23
- %li= view_link(user)
24
- %li= edit_link(user)
25
- %li= destroy_link(user)
23
+ = view_resource_item(user)
24
+ = edit_resource_item(user)
25
+ = destroy_resource_item(user)
@@ -2,8 +2,8 @@
2
2
  %h2= page_title!("#{ resource_class.model_name.human } Details")
3
3
 
4
4
  %ul.actions
5
- %li= edit_link(resource)
6
- %li= destroy_link(resource)
5
+ = edit_resource_item(resource)
6
+ = destroy_resource_item(resource)
7
7
 
8
8
  .card
9
9
  .card-header
@@ -205,7 +205,7 @@ Devise.setup do |config|
205
205
  # Time interval you can reset your password with a reset password key.
206
206
  # Don't put a too small interval or your users won't have the time to
207
207
  # change their passwords.
208
- config.reset_password_within = 6.hours
208
+ config.reset_password_within = 2.days
209
209
 
210
210
  # When set to false, does not sign a user in automatically after their password is
211
211
  # reset. Defaults to true, so a user is signed in automatically after a reset.
@@ -1,3 +1,3 @@
1
1
  module LotusAdmin
2
- VERSION = '1.4.4'
2
+ VERSION = '1.5.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lotus_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.4
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Millsaps-Brewer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-03 00:00:00.000000000 Z
11
+ date: 2020-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -453,6 +453,7 @@ files:
453
453
  - app/views/lotus_admin/shared/_index.html.haml
454
454
  - app/views/lotus_admin/shared/filters/_modal.html.haml
455
455
  - app/views/lotus_admin/shared/filters/_results_banner.html.haml
456
+ - app/views/lotus_admin/shared/table/_actions.html.haml
456
457
  - app/views/lotus_admin/user_mailer/invited.html.haml
457
458
  - app/views/lotus_admin/user_mailer/invited.text.erb
458
459
  - app/views/lotus_admin/users/_form.html.haml