five-two-nw-olivander 0.1.2.7 → 0.1.2.8

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: 1b489861cd3f93d004b29e2d2748b070c6853b4ecceac386484857feb34fcc36
4
- data.tar.gz: 8c95fc16ca20a716fe779cc3c9be95505ab6f2ef0b02d064be6dd928cf20743a
3
+ metadata.gz: 3f3115b1794baed9344d980ed505a3df7d1ae0cee954e4896163618a91d47f58
4
+ data.tar.gz: '09d31e3619bfa1d7111077c3be1c9f5c0005a1417dd041bc68aa71bf32014988'
5
5
  SHA512:
6
- metadata.gz: 53ac199d454b63de8430392693c8e0bb34df97ce76401c1bcd49dfc62bb3ede1b675dc44689cc110b87e449a0b80938cb17d025662101a0225c82d37b7366da2
7
- data.tar.gz: 2bb18d88fdf0ac9ae99bd344a434e7eef01b7635abe7296d59f8845bce95aefcbb58bc7f8d0accce8e8eb83f03fd7747e2919e754dc9e692f67b6f3b08651ba1
6
+ metadata.gz: 7e34e263e6a3b6788b7764882d65e0caa54f5ca0c99109f3908c7d3c5f42af2a7328bc35fe2a6904643b6c624b9ca1ba3fcbeee671e5dd5f8a86a8b59dc5a58d
7
+ data.tar.gz: 18d6f99fba59c05f75b2c1e5394496be073965270682d778111a735600303734801c2e821a95cb41c62d0207bdfd9f8b71fc874fe0dbade368224b9df6957361
@@ -1,7 +1,9 @@
1
1
  module Olivander
2
2
  module Resources
3
3
  class ResourceAction
4
- attr_accessor :sym, :action, :verb, :confirm, :turbo_frame, :collection, :controller, :crud_action, :show_in_form, :show_in_datatable, :no_route
4
+ attr_accessor :sym, :action, :verb, :confirm, :turbo_frame, :collection,
5
+ :controller, :crud_action, :show_in_form, :show_in_datatable,
6
+ :no_route, :path_helper
5
7
 
6
8
  def initialize(sym, action: nil, controller: nil, verb: :get, confirm: false, turbo_frame: nil, collection: false, crud_action: false,
7
9
  show_in_form: true, show_in_datatable: true, no_route: false)
@@ -83,6 +85,7 @@ module Olivander
83
85
  included do
84
86
  class_attribute :resources, default: {}
85
87
  class_attribute :current_resource
88
+ class_attribute :last_path_helper
86
89
  end
87
90
 
88
91
  class_methods do
@@ -107,6 +110,13 @@ module Olivander
107
110
  build_resource_routes(mapper)
108
111
  end
109
112
 
113
+ def set_controller_and_helper(a)
114
+ last_route = Rails.application.routes.routes.last
115
+ a.controller = last_route.defaults[:controller]
116
+ a.path_helper = last_route.name.blank? ? last_path_helper : "#{last_route.name}_path"
117
+ self.last_path_helper = a.path_helper
118
+ end
119
+
110
120
  def build_resource_routes(mapper)
111
121
  resources.keys.each do |k|
112
122
  r = resources[k]
@@ -118,9 +128,11 @@ module Olivander
118
128
 
119
129
  if ba.confirm
120
130
  mapper.get ba.action, action: "confirm_#{ba.action}"
131
+ set_controller_and_helper(ba)
121
132
  mapper.post ba.action
122
133
  else
123
134
  mapper.send(ba.verb, ba.action)
135
+ set_controller_and_helper(ba)
124
136
  end
125
137
  end
126
138
  end
@@ -134,9 +146,11 @@ module Olivander
134
146
  next if ma.no_route
135
147
  if ma.confirm
136
148
  mapper.get ma.action, action: "confirm_#{ma.action}"
149
+ set_controller_and_helper(ma)
137
150
  mapper.post ma.action
138
151
  else
139
152
  mapper.send(ma.verb, ma.action)
153
+ set_controller_and_helper(ma)
140
154
  end
141
155
  end
142
156
  end
@@ -14,5 +14,29 @@ module Olivander
14
14
  link_to r.send(field), send(path, args)
15
15
  end
16
16
  end
17
+
18
+ def self.auto_datatable(klazz, link_path: nil, only: [])
19
+ collection do
20
+ klazz.all
21
+ end
22
+
23
+ datatable do
24
+ bulk_actions_col
25
+ klazz.new.attributes.each do |att|
26
+ key = att[0]
27
+ next if only.size.positive? && !only.include?(key)
28
+ sym = key.gsub('_id', '').to_sym
29
+ visible = !['created', 'updated', 'created_at', 'updated_at', 'deleted_at', 'current_user', 'current_action'].include?(key)
30
+ if link_path.present? && sym == :id
31
+ link_col sym, link_path, :id
32
+ elsif link_path.present? && sym == :name
33
+ link_col sym, link_path, [:id, :name]
34
+ else
35
+ col sym, visible: visible
36
+ end
37
+ end
38
+ actions_col
39
+ end
40
+ end
17
41
  end
18
42
  end
@@ -7,6 +7,7 @@
7
7
  - keys = @datatable._charts.keys
8
8
  - ks = keys.size
9
9
  - if ks.positive?
10
+ %br
10
11
  .row
11
12
  - @datatable._charts.keys.each do |k|
12
13
  %div{ class: "#{col_class_num('xl', ks, 3)} #{col_class_num('lg', ks, 2)} #{col_class_num('md', ks, 6)} #{col_class_num('sm', ks, 6)}"}
@@ -21,6 +22,7 @@
21
22
 
22
23
  - if @datatable
23
24
  = content_for :datatable_charts
25
+
24
26
  .row
25
27
  .col-12
26
28
  .card
@@ -1,7 +1,4 @@
1
- - if @context.nil?
2
- - parts = datatable.class.name.split('::')
3
- - parts[parts.size-1] = 'Controller'
4
- - parts.join('::').constantize.new.build_context
1
+ - route_builder = @context&.route_builder || datatable.class::ROUTE_BUILDER
5
2
  = dropdown(variation: :dropleft, btn_class: btn_class) do
6
- - authorized_resource_actions(@context.route_builder, resource, for_action: action_name).select{ |x| x.show_in_datatable }.each do |a|
7
- = dropdown_link_to a.sym, { controller: a.controller, action: a.action, id: resource.id }
3
+ - authorized_resource_actions(route_builder, resource, for_action: action_name).select{ |x| x.show_in_datatable }.each do |a|
4
+ = dropdown_link_to a.sym, send(a.path_helper, resource.id)
@@ -11,7 +11,7 @@
11
11
  .image
12
12
  %img.img-circle.elevation-2{:alt => "User Image", :src => image_path(user_image_path(nil))}/
13
13
  .info
14
- %a.d-block{:href => "#"}= 'current_user'
14
+ = link_to current_erp_user, destroy_erp_user_session_path, method: :delete, class: 'd-block'
15
15
  / SidebarSearch Form
16
16
  .form-inline
17
17
  .input-group{"data-widget" => "sidebar-search"}
@@ -5,3 +5,4 @@ require 'chartkick'
5
5
  require 'view_component'
6
6
  require 'simple_form'
7
7
  require 'olivander'
8
+ require 'devise'
@@ -1,3 +1,3 @@
1
1
  module Olivander
2
- VERSION = "0.1.2.7"
2
+ VERSION = "0.1.2.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: five-two-nw-olivander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.7
4
+ version: 0.1.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Dennis