abstracted 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/abstract_resources_controller.rb +3 -0
- data/app/controllers/concerns/parent_control.rb +127 -0
- data/app/controllers/concerns/print_control.rb +190 -0
- data/app/controllers/concerns/resource_control.rb +220 -0
- data/lib/abstracted/version.rb +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3eb85a893fc241b14df9db62dc8e5f7e6bfb070
|
4
|
+
data.tar.gz: a441bb37f0703fd705f4fb369ef97d008fce9713
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 550b2dcd201453b90e5bcacdc148f8fc77aeda8db01d249116c81cbb914e021e9409111c51c4305b475bc42e716bb26ab73bd79303405771f4d23fe77f65a09b
|
7
|
+
data.tar.gz: 1f66fc01ffda843425e566df943be521e704eca8d69fe7a0c47d0ea77e5fe98c68ca236f3611eb4ac2e3cbc9ebf3367b2b3e0247e72923032715782ae170be81
|
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module ParentControl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
before_filter :set_parents, only: [ :new, :edit, :show ]
|
8
|
+
end
|
9
|
+
|
10
|
+
def parent
|
11
|
+
@parent ||= find_parent
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def parent_class
|
16
|
+
@parent_class ||= @parent.class
|
17
|
+
end
|
18
|
+
|
19
|
+
def parent_class= val
|
20
|
+
@parent_class = val
|
21
|
+
end
|
22
|
+
|
23
|
+
def parent?
|
24
|
+
!(%w{NilClass TrueClass FalseClass}.include? parent.class.to_s)
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# parent_url returns the parent url - /employees/1
|
29
|
+
def parent_url options={}
|
30
|
+
parent? ? url_for(@parent) : ""
|
31
|
+
# parent? ? ( "/%s/%s" % [ @parent.class.table_name, @parent.id ] ) : ""
|
32
|
+
rescue Exception => e
|
33
|
+
scoop_from_error e
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
#
|
38
|
+
# build an array of the resource - particular to <SELECT>
|
39
|
+
def set_parents
|
40
|
+
@parents = []
|
41
|
+
return @parents unless resource_class.respond_to? :roots #( 'arraying') && resource? )
|
42
|
+
@parents = resource_class.arraying({ order: 'name'}, resource.possible_parents)
|
43
|
+
rescue Exception => e
|
44
|
+
scoop_from_error e
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
#
|
49
|
+
#
|
50
|
+
# /employees/1/teams
|
51
|
+
# /employees/1/teams/5
|
52
|
+
# /employees/1/teams/5/attach
|
53
|
+
# /theatres/2/contacts/5/uris.js
|
54
|
+
def find_parent path=nil, parms=nil
|
55
|
+
path ||= request.path
|
56
|
+
parms ||= params
|
57
|
+
if parms[:parent].nil? #or params[:parent_id].nil?
|
58
|
+
paths=path.split("/")
|
59
|
+
paths.pop if %w{new edit show create update delete index}.include? paths[-1]
|
60
|
+
return nil if (paths.size < 3) #or (paths.size==4 and %w{edit new}.include?( parms[:action]))
|
61
|
+
recognise_path paths.join("/")
|
62
|
+
else
|
63
|
+
parms[:parent].classify.constantize.find(parms[:parent_id])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
#
|
67
|
+
# ['theatres','5','contacts','2','uris.js']
|
68
|
+
def recognise_path path
|
69
|
+
path_elements = Rails.application.routes.recognize_path path.gsub /\..*$/,'' # "/admin/users/2/printers/3/attach" => {:controller=>"printers", :action=>"attach", :user_id=>"2", :id=>"3"}
|
70
|
+
recognise_parent( recognise_resource( path_elements ) )
|
71
|
+
|
72
|
+
rescue Exception => e
|
73
|
+
nil
|
74
|
+
# return [ nil, nil, false ] if e.class.to_s == "ActionController::RoutingError"
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
# {:controller=>"printers", :action=>"attach", :user_id=>"2", :id=>"3"}
|
79
|
+
def recognise_resource elems
|
80
|
+
resource_class = elems.delete(:controller).singularize.classify.constantize
|
81
|
+
resource = resource_class.find( elems.delete(:id) )
|
82
|
+
elems
|
83
|
+
rescue Exception => e
|
84
|
+
return elems if e.class.to_s == "ActiveRecord::RecordNotFound"
|
85
|
+
resource_class = nil
|
86
|
+
elems
|
87
|
+
end
|
88
|
+
|
89
|
+
# { :action=>"attach", :user_id=>"2" }
|
90
|
+
def recognise_parent elems
|
91
|
+
elems.delete :action
|
92
|
+
arr = elems.keys.first.to_s.split("_")
|
93
|
+
return nil unless arr.include? "id"
|
94
|
+
arr.pop
|
95
|
+
arr.join("_").singularize.classify.constantize.find(elems.values.first)
|
96
|
+
rescue
|
97
|
+
nil
|
98
|
+
end
|
99
|
+
|
100
|
+
#
|
101
|
+
# # /employees/1/teams/new
|
102
|
+
# # /employees/1/teams/1/edit
|
103
|
+
# # /employees/1/teams/1/delete
|
104
|
+
def update_parenthood
|
105
|
+
if params[:parent] and params[:parent_id]
|
106
|
+
# raise "Ups - is this ready for prime time yet?"
|
107
|
+
parent = params[:parent].classify.constantize.find(params[:parent_id])
|
108
|
+
unless parent.blank?
|
109
|
+
case params[:action]
|
110
|
+
when "create"
|
111
|
+
children = eval("parent.#{resource_name}")
|
112
|
+
children << resource unless children.include? resource
|
113
|
+
# when "edit"
|
114
|
+
when "delete"
|
115
|
+
children = eval("parent.#{resource_name}")
|
116
|
+
children >> resource
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
true
|
121
|
+
rescue
|
122
|
+
false
|
123
|
+
end
|
124
|
+
#
|
125
|
+
#
|
126
|
+
|
127
|
+
end
|
@@ -0,0 +1,190 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# ARGS # first value is default
|
5
|
+
#
|
6
|
+
# collation # 'list' | 'record'
|
7
|
+
# paper # 'A4' | 'label' | ...
|
8
|
+
# template # '' | 'slip' | 'quote'
|
9
|
+
# cmd # '' | 'print_label' - a particular method on the printing_class
|
10
|
+
#
|
11
|
+
# PRINTPROMPT
|
12
|
+
# print[medium] # 'display' | 'email' | 'printer' | 'download'
|
13
|
+
# print[output_type] # 'html' | 'pdf' | 'text'
|
14
|
+
# print[printer] # what printer to send output to
|
15
|
+
# print[email_to] # email address
|
16
|
+
# print[message] # body of email
|
17
|
+
# print[range] # which pages should print
|
18
|
+
# print[copies] # number of copies
|
19
|
+
#
|
20
|
+
# PRINTJOB
|
21
|
+
# id,
|
22
|
+
# account_id, # what 'system' / customer
|
23
|
+
# printer_id, # on what printer
|
24
|
+
# printed_by_id, # what id has the printed_by entity
|
25
|
+
# printed_by_type, # what entity - like user
|
26
|
+
# view_template_path, # what template
|
27
|
+
# name, # label the job
|
28
|
+
# printing_class, # what entity provides the data
|
29
|
+
# print_driver, # what 'driver' - like :pdf, :cab, :zebra, :csv, :html, etc
|
30
|
+
# print_format, # data collation - like 'record', 'list'
|
31
|
+
# state, # record the progress
|
32
|
+
# paper, # what material - like 'label32x42', 'A4', etc
|
33
|
+
# copies, # number of identical prints
|
34
|
+
# print_sql, # how to find what will be printed
|
35
|
+
# created_at,
|
36
|
+
# updated_at
|
37
|
+
#
|
38
|
+
# TEMPLATE
|
39
|
+
# id
|
40
|
+
# account_id, # what 'system' / customer
|
41
|
+
# template_key, # a key to search the template by
|
42
|
+
# template_path, # where the template is stored - like stock_items/print/zebra.html.haml
|
43
|
+
# template_content, # or what the template contains - all HTML, CSS etc.
|
44
|
+
# template_print_driver # identification of a particular driver -if necessary - like the :zebra
|
45
|
+
# template_paper # identification of a particular paper -if necessary - like the :label10x32
|
46
|
+
# created_at
|
47
|
+
# updated_at
|
48
|
+
|
49
|
+
|
50
|
+
module PrintControl
|
51
|
+
extend ActiveSupport::Concern
|
52
|
+
|
53
|
+
included do
|
54
|
+
|
55
|
+
PRINTSUCCESS = 1
|
56
|
+
NOQUEUE = -1
|
57
|
+
NOUSER = -2
|
58
|
+
PRINTRECERROR = -3
|
59
|
+
PRINTCMDERROR = -4
|
60
|
+
PRINTLISTERROR = -5
|
61
|
+
PRINTEXCEPTION = -99
|
62
|
+
|
63
|
+
end
|
64
|
+
#
|
65
|
+
# print this view - let the Class handle everything
|
66
|
+
# returning either the ID to a print_job or false (in which case something went terribly wrong)
|
67
|
+
#
|
68
|
+
# always an Ajax call - hence will always update the print_jobs link with 'yellow'-blink
|
69
|
+
# POST /printers/print.js
|
70
|
+
# params[:id] holds records to be printed
|
71
|
+
#
|
72
|
+
# from the print-dialog:
|
73
|
+
#
|
74
|
+
# from a link tag
|
75
|
+
def print
|
76
|
+
authorize resource, :print?
|
77
|
+
if resources.any?
|
78
|
+
params[:printed_by] = current_user || User.first
|
79
|
+
params[:print] ||= {}
|
80
|
+
params[:print][:collation] ||= 'list'
|
81
|
+
params[:print_job] ||= {}
|
82
|
+
# params[:print_job][:view_template] ||= current_user.account.find_print_template(params[:print][:template]) || Template.new( template_path: 'list.html.haml')
|
83
|
+
# params[:print_job][:print_driver] = params[:print][:print_driver] || params[:print_job][:view_template].template_print_driver
|
84
|
+
# params[:print_job][:paper] = params[:print_job][:view_template].template_paper || params[:print][:paper] || "A4"
|
85
|
+
params[:print_job][:paper] = params[:print][:paper] || "A4"
|
86
|
+
#
|
87
|
+
# ok so we have items to print!
|
88
|
+
status = case params[:print][:medium]
|
89
|
+
when "display" ; display_print_result and return
|
90
|
+
when "email" ; email_print_result
|
91
|
+
when "printer" ; print_print_result
|
92
|
+
when "download" ; download_print_result and return
|
93
|
+
else
|
94
|
+
flash[:error] = t('output.medium.no_medium_found');
|
95
|
+
301
|
96
|
+
end
|
97
|
+
end
|
98
|
+
render :print, layout: false, status: status and return
|
99
|
+
|
100
|
+
rescue Exception => e
|
101
|
+
scoop_from_error e
|
102
|
+
end
|
103
|
+
|
104
|
+
#
|
105
|
+
# send HTML or PDF down the wire
|
106
|
+
#
|
107
|
+
def display_print_result
|
108
|
+
params[:print][:output_type] ||= 'html'
|
109
|
+
case params[:print][:output_type].downcase
|
110
|
+
when 'html'; render params[:print][:view_template_path], layout: 'print'
|
111
|
+
when 'pdf'; render action: :new, status: :unprocessable_entity
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
#
|
116
|
+
# send PDF down the wire
|
117
|
+
#
|
118
|
+
def download_print_result
|
119
|
+
params[:print][:output_type] ||= 'pdf'
|
120
|
+
end
|
121
|
+
|
122
|
+
#
|
123
|
+
# send PDF via email
|
124
|
+
#
|
125
|
+
def email_print_result
|
126
|
+
params[:print][:output_type] ||= 'pdf'
|
127
|
+
if params[:print][:email_to].blank?
|
128
|
+
flash[:error] = t('output.email.email_address_missing')
|
129
|
+
return 301
|
130
|
+
else
|
131
|
+
flash[:info] = t('output.email.email_sent')
|
132
|
+
return 200
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def print_print_result
|
137
|
+
params[:print][:output_type] ||= 'pdf'
|
138
|
+
if (result = print_resources) > 0
|
139
|
+
flash[:info] = t(:resources_printed_correct)
|
140
|
+
status = 200
|
141
|
+
else
|
142
|
+
case result
|
143
|
+
when NOQUEUE; flash[:error] = t(:noqueue_created)
|
144
|
+
when NOUSER; flash[:error] = t(:no_user_present)
|
145
|
+
when PRINTRECERROR; flash[:error] = t(:printing_record_error)
|
146
|
+
when PRINTCMDERROR; flash[:error] = t(:print_command_error)
|
147
|
+
when PRINTLISTERROR; flash[:error] = t(:printing_list_error)
|
148
|
+
when PRINTEXCEPTION ; flash[:error] = t(:exception_in_print_engine)
|
149
|
+
end
|
150
|
+
status = 301
|
151
|
+
end
|
152
|
+
status
|
153
|
+
end
|
154
|
+
|
155
|
+
|
156
|
+
#
|
157
|
+
# print_resources will try to add a print_job
|
158
|
+
# return error code
|
159
|
+
def print_resources
|
160
|
+
if resource_class == PrintJob
|
161
|
+
resources.each do |res|
|
162
|
+
return NOQUEUE unless Delayed::Job.enqueue res, :queue => 'printing'
|
163
|
+
end
|
164
|
+
return PRINTSUCCESS
|
165
|
+
else
|
166
|
+
return NOUSER if params[:printed_by].nil?
|
167
|
+
case params[:print][:collation]
|
168
|
+
when 'record'
|
169
|
+
if params[:print][:cmd].blank?
|
170
|
+
resources.each do |res|
|
171
|
+
return PRINTRECERROR unless res.print_record params.merge context: self
|
172
|
+
end
|
173
|
+
else
|
174
|
+
resources.each do |res|
|
175
|
+
return PRINTCMDERROR unless res.send(params[:print][:cmd],params)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
when 'list'
|
180
|
+
params[:resources] = resources
|
181
|
+
return PRINTLISTERROR unless resource_class.print_list( params )
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
return PRINTSUCCESS
|
187
|
+
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|
@@ -0,0 +1,220 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module ResourceControl
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
|
8
|
+
before_action :set_resource #, except: :index
|
9
|
+
before_action :set_resources, only: [:index, :print]
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
def resource_params
|
14
|
+
raise 'You need to "def resource_params" on the %sController! (see: http://blog.trackets.com/2013/08/17/strong-parameters-by-example.html)' % params[:controller].capitalize
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_resource
|
18
|
+
parent
|
19
|
+
resource
|
20
|
+
end
|
21
|
+
|
22
|
+
def set_resources
|
23
|
+
resources
|
24
|
+
end
|
25
|
+
|
26
|
+
def resource?
|
27
|
+
!(%w{NilClass TrueClass FalseClass}.include? @resource.class.to_s)
|
28
|
+
rescue Exception => e
|
29
|
+
scoop_from_error e
|
30
|
+
end
|
31
|
+
|
32
|
+
def resource
|
33
|
+
@resource ||= (_id.nil? ? new_resource : resource_class.find(_id) )
|
34
|
+
return @resource if @resource.nil?
|
35
|
+
@resource.current_user = (current_user || nil) if @resource.respond_to? :current_user
|
36
|
+
@resource
|
37
|
+
rescue Exception => e
|
38
|
+
scoop_from_error e
|
39
|
+
end
|
40
|
+
|
41
|
+
# def resource=val
|
42
|
+
# @resource=val
|
43
|
+
# end
|
44
|
+
|
45
|
+
def new_resource
|
46
|
+
return nil if resource_class.nil?
|
47
|
+
return resource_class.new if resource_class.ancestors.include?( ActiveRecord::Base ) and !(params.include? resource_class.to_s.underscore) #[ 'create', 'update' ].include? params[:action]
|
48
|
+
p = resource_params
|
49
|
+
p=p.compact.first if p.class==Array
|
50
|
+
return resource_class.new(p.merge(current_user: current_user)) if resource_class.ancestors.include? ActiveRecord::Base
|
51
|
+
nil
|
52
|
+
rescue Exception => e
|
53
|
+
scoop_from_error e
|
54
|
+
end
|
55
|
+
|
56
|
+
def _id
|
57
|
+
return nil if !params[:id] || params[:id]=="0"
|
58
|
+
params[:id] || params["#{resource_class.to_s.downcase}_id".to_sym]
|
59
|
+
rescue Exception => e
|
60
|
+
scoop_from_error e
|
61
|
+
end
|
62
|
+
|
63
|
+
def resource_name options={}
|
64
|
+
resource_class.table_name
|
65
|
+
rescue Exception => e
|
66
|
+
scoop_from_error e
|
67
|
+
# resource_class.to_s.underscore.pluralize
|
68
|
+
end
|
69
|
+
|
70
|
+
def resource_class
|
71
|
+
return @resource_class if resource?
|
72
|
+
@resource_class ||= params[:controller].singularize.classify.constantize
|
73
|
+
rescue Exception => e
|
74
|
+
scoop_from_error e
|
75
|
+
end
|
76
|
+
|
77
|
+
def resource_class= val
|
78
|
+
@resource_class = val
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
#
|
83
|
+
# return the resources collection - preferably from the cache
|
84
|
+
def resources options={}
|
85
|
+
@resources ||= find_resources options
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
#
|
90
|
+
# returns the url for the resource - like /users/1
|
91
|
+
def resource_url options={}
|
92
|
+
r=request.path
|
93
|
+
id=params[:id]
|
94
|
+
options = case params[:action]
|
95
|
+
when 'create','update','delete','destroy'; ""
|
96
|
+
else resource_options(options)
|
97
|
+
end
|
98
|
+
return "%s%s" % [r,options] if r.match "#{resource.class.to_s.tableize}\/#{id}$"
|
99
|
+
"%s%s" % [ r.split("/#{params[:action]}")[0], options]
|
100
|
+
rescue Exception => e
|
101
|
+
scoop_from_error e
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
#
|
106
|
+
# returns the url for the resources - /employees or /employees/1/events
|
107
|
+
def resources_url options={}
|
108
|
+
r=request.path
|
109
|
+
options = case params[:action]
|
110
|
+
when 'create','update','delete','destroy'; ""
|
111
|
+
else resource_options(options)
|
112
|
+
end
|
113
|
+
return "%s%s" % [r,options] if r.match "#{resource.class.to_s.tableize}$"
|
114
|
+
"%s%s%s" % [ r.split( resource.class.to_s.tableize)[0],resource.class.to_s.tableize, options]
|
115
|
+
rescue Exception => e
|
116
|
+
scoop_from_error e
|
117
|
+
end
|
118
|
+
|
119
|
+
def resource_options options
|
120
|
+
options.merge! params.except( "id", "controller", "action", "utf8", "_method", "authenticity_token" )
|
121
|
+
options = (options.empty? ? "" : "?" + options.collect{ |k,v| "#{k}=#{v}" }.join("&"))
|
122
|
+
end
|
123
|
+
|
124
|
+
#
|
125
|
+
# find the resources collection
|
126
|
+
def find_resources options
|
127
|
+
|
128
|
+
# return [] unless resource_class.ancestors.include? ActiveRecord::Base
|
129
|
+
params[:ids] ||= []
|
130
|
+
params[:ids] << params[:id] unless params[:id].nil?
|
131
|
+
|
132
|
+
if params[:ids].compact.any?
|
133
|
+
policy_scope(resource_class).where(id: params[:ids].compact.split(",").flatten)
|
134
|
+
else
|
135
|
+
# search
|
136
|
+
r = _search options
|
137
|
+
# sort
|
138
|
+
r = _sort r, options
|
139
|
+
|
140
|
+
# paginate
|
141
|
+
r = _paginate r
|
142
|
+
|
143
|
+
# (params[:format].nil? or params[:format]=='html') ? r.page(params[:page]).per(params[:perpage]) : r
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
#
|
148
|
+
# search - it at all
|
149
|
+
#
|
150
|
+
def _search options
|
151
|
+
if params[:q].blank? #or params[:q]=="undefined"
|
152
|
+
parent? ? parent.send(resource_name) : (resource_class.nil? ? nil : find_all_resources(options))
|
153
|
+
else
|
154
|
+
find_resources_queried options
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
#
|
159
|
+
# sort - it at all
|
160
|
+
#
|
161
|
+
# %th{ role:"sort", data{ field: "*barcode", direction: "DESC"} }
|
162
|
+
# $('th[role="sort"]')
|
163
|
+
def _sort r, options
|
164
|
+
r.order "%s %s" % [ (params[:s] || "id"), sorting_direction(params[:d]) ]
|
165
|
+
end
|
166
|
+
|
167
|
+
def sorting_direction val=nil
|
168
|
+
_flip(val || @sorting_direction)
|
169
|
+
end
|
170
|
+
|
171
|
+
def _flip val
|
172
|
+
@sorting_direction = (val == "ASC" ? "DESC" : "ASC")
|
173
|
+
val
|
174
|
+
rescue
|
175
|
+
@sorting_direction = "ASC"
|
176
|
+
end
|
177
|
+
|
178
|
+
#
|
179
|
+
# paginate - it at all
|
180
|
+
#
|
181
|
+
def _paginate r
|
182
|
+
return r if params[:action]=='print'
|
183
|
+
# will it obey the #page call?
|
184
|
+
# is it without format or html or scrolling or with search?
|
185
|
+
if (r.respond_to?( :page)) && (params[:format].nil? or params[:format]=='html' or params[:scrolling] or params[:s])
|
186
|
+
params[:perpage] ||= 20
|
187
|
+
params[:page] ||= 1
|
188
|
+
return r.page(params[:page]).per(params[:perpage])
|
189
|
+
else
|
190
|
+
return r
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
#
|
195
|
+
# find queried resources collection - implement on each controller to customize
|
196
|
+
# raise an exception
|
197
|
+
def find_all_resources options
|
198
|
+
policy_scope(resource_class)
|
199
|
+
end
|
200
|
+
|
201
|
+
#
|
202
|
+
# find queried resources collection - implement on each controller to customize
|
203
|
+
# raise an exception
|
204
|
+
def find_resources_queried options
|
205
|
+
case params[:f]
|
206
|
+
when nil
|
207
|
+
if parent?
|
208
|
+
policy_scope(resource_class).tags_included?( params[:q].split(" ") ).where( options )
|
209
|
+
else
|
210
|
+
policy_scope(resource_class).tags_included?( params[:q].split(" ") )
|
211
|
+
end
|
212
|
+
else
|
213
|
+
policy_scope(resource_class)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
class_methods do
|
218
|
+
end
|
219
|
+
|
220
|
+
end
|
data/lib/abstracted/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstracted
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Walther H Diechmann
|
@@ -288,6 +288,9 @@ files:
|
|
288
288
|
- app/controllers/.keep
|
289
289
|
- app/controllers/abstract_resources_controller.rb
|
290
290
|
- app/controllers/application_controller.rb
|
291
|
+
- app/controllers/concerns/parent_control.rb
|
292
|
+
- app/controllers/concerns/print_control.rb
|
293
|
+
- app/controllers/concerns/resource_control.rb
|
291
294
|
- app/helpers/.keep
|
292
295
|
- app/helpers/abstract_resources_helper.rb
|
293
296
|
- app/helpers/fab_button_helper.rb
|