templus_models 2.0.16 → 3.0.4
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 +4 -4
- data/app/controllers/crud_controller.rb +59 -117
- data/app/helpers/crud_helper.rb +17 -43
- data/app/helpers/search_helper.rb +18 -47
- data/app/raro_crud/raro_crud.rb +186 -190
- data/app/views/crud/_form.html.erb +11 -3
- data/app/views/crud/_record.html.erb +14 -30
- data/app/views/crud/_records.html.erb +51 -51
- data/app/views/crud/_search.html.erb +28 -28
- data/app/views/crud/_shared.html.erb +94 -105
- data/app/views/crud/listing.pdf.erb +41 -48
- data/app/views/crud/listing.xls.erb +39 -44
- data/app/views/crud/printing.pdf.erb +55 -50
- data/config/initializers/raro_search.rb +0 -7
- data/lib/templus_models/version.rb +1 -1
- data/lib/templus_models.rb +1 -1
- data/test/dummy/config/locales/pt-BR.yml +3 -4
- metadata +631 -633
- data/app/helpers/attributes_helper.rb +0 -32
- data/app/helpers/imagens_helper.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2a32e3baae3e617d1b3d1ba52b72275de3e69f7
|
4
|
+
data.tar.gz: 94f286c2f34c143da3381f2eb9cb1169b826cc51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73c6ef467a04541e8df8888172fda866744c1f3381e0aaeb7991e2ce483366bf4f96e57483bf7af8884af14dbcce528ca2cd297434321d2337910b68ac02ddcf
|
7
|
+
data.tar.gz: 37bca7a88955f38e9364c06c68a40d52a8bd1d07898f70eb429586f1206599164ef288a2716790913bf0b598872234f54438e9465c188ddaa08895a1ec354c64
|
@@ -1,26 +1,46 @@
|
|
1
1
|
class CrudController < ApplicationController
|
2
2
|
before_filter :setup, except: :autocomplete
|
3
3
|
|
4
|
+
private
|
5
|
+
def setup
|
6
|
+
if params[:associacao]
|
7
|
+
@crud_associacao = Module.const_get("#{params[:model].to_s.singularize}_crud".camelize)
|
8
|
+
@model = Module.const_get(params[:model].camelize).find(params[:id]).send(params[:associacao])
|
9
|
+
c_helper = Module.const_get(params[:model].camelize).reflect_on_association(params[:associacao]).class_name
|
10
|
+
@crud_helper = Module.const_get("#{c_helper}Crud") unless params[:render] == "modal" and params[:action] == "new"
|
11
|
+
@url = crud_associacao_models_path(model: params[:model], id: params[:id], associacao: params[:associacao], page: params[:page], q: params[:q])
|
12
|
+
@clean_url = crud_associacao_models_path(model: params[:model], id: params[:id], associacao: params[:associacao])
|
13
|
+
@model_permission = c_helper.constantize
|
14
|
+
@id = params[:associacao_id] if params[:associacao_id]
|
15
|
+
else
|
16
|
+
@model = Module.const_get(params[:model].camelize)
|
17
|
+
@model_permission = @model
|
18
|
+
@crud_helper = Module.const_get("#{params[:model]}_crud".camelize) unless params[:render] == "modal" and params[:action] == "new"
|
19
|
+
@url = crud_models_path(model: params[:model], page: params[:page], q: params[:q])
|
20
|
+
@clean_url = crud_models_path(model: params[:model])
|
21
|
+
@id = params[:id] if params[:id]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
public
|
4
26
|
def index
|
5
27
|
authorize! :read, @model_permission if respond_to?(:current_usuario)
|
6
|
-
if params[:scope].present?
|
28
|
+
if params[:scope].present?
|
7
29
|
@q = @model.send(params[:scope]).search(params[:q])
|
8
30
|
else
|
9
31
|
@q = @model.search(params[:q])
|
10
32
|
end
|
11
|
-
|
12
33
|
if @q.sorts.empty?
|
13
|
-
if @crud_helper.order_field.
|
14
|
-
@q.sorts = @crud_helper.order_field
|
34
|
+
if "#{@crud_helper.order_field}".include?("desc") or "#{@crud_helper.order_field}".include?("asc")
|
35
|
+
@q.sorts = "#{@crud_helper.order_field}"
|
15
36
|
else
|
16
37
|
@q.sorts = "#{@crud_helper.order_field} asc"
|
17
38
|
end
|
18
39
|
end
|
19
|
-
|
20
40
|
if respond_to?(:current_usuario)
|
21
|
-
@records = @q.result.accessible_by(current_ability, :read).
|
41
|
+
@records = @q.result.accessible_by(current_ability, :read).page(params[:page]).per(@crud_helper.per_page)
|
22
42
|
else
|
23
|
-
@records = @q.result.
|
43
|
+
@records = @q.result.page(params[:page]).per(@crud_helper.per_page)
|
24
44
|
end
|
25
45
|
@titulo = @model.name.pluralize
|
26
46
|
render partial: 'records' if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial?
|
@@ -55,13 +75,13 @@ class CrudController < ApplicationController
|
|
55
75
|
def action
|
56
76
|
@record = @model.find(@id)
|
57
77
|
authorize! :create_or_update, @record if respond_to?(:current_usuario)
|
58
|
-
if
|
78
|
+
if @model.method_defined?(params[:acao])
|
59
79
|
if @record.send(params[:acao])
|
60
80
|
flash.now[:success] = I18n.t("mensagem_action", acao: params[:acao])
|
61
81
|
else
|
62
82
|
flash.now[:error] = I18n.t("mensagem_erro_action", acao: params[:acao])
|
63
83
|
end
|
64
|
-
redirect_to @url
|
84
|
+
redirect_to "#{@url}?page=#{params[:page]}"
|
65
85
|
else
|
66
86
|
@titulo = @record.to_s
|
67
87
|
@texto = params[:acao]
|
@@ -84,7 +104,7 @@ class CrudController < ApplicationController
|
|
84
104
|
respond_to do |format|
|
85
105
|
if @saved
|
86
106
|
flash[:success] = params[:id].present? ? I18n.t("updated", model: I18n.t("model.#{@model.name.underscore}")) : I18n.t("created", model: I18n.t("model.#{@model.name.underscore}"))
|
87
|
-
format.html { redirect_to @url }
|
107
|
+
format.html { redirect_to "#{@url}?page=#{params[:page]}" }
|
88
108
|
unless params[:render] == 'modal'
|
89
109
|
format.js { render action: :index}
|
90
110
|
else
|
@@ -119,19 +139,13 @@ class CrudController < ApplicationController
|
|
119
139
|
def query
|
120
140
|
authorize! :read, @model_permission if respond_to?(:current_usuario)
|
121
141
|
@resource = @model
|
122
|
-
|
123
|
-
@q = @model.send(params[:scope]).search(params[:q])
|
124
|
-
else
|
125
|
-
@q = @model.search(params[:q])
|
126
|
-
end
|
142
|
+
@q = @resource.search(params[:q])
|
127
143
|
@q.sorts = 'updated_at desc' if @q.sorts.empty?
|
128
|
-
|
129
144
|
if respond_to?(:current_usuario)
|
130
|
-
results = @q.result.accessible_by(current_ability).
|
145
|
+
results = @q.result.accessible_by(current_ability).page(params[:page])
|
131
146
|
else
|
132
|
-
results = @q.result.
|
147
|
+
results = @q.result.page(params[:page])
|
133
148
|
end
|
134
|
-
|
135
149
|
instance_variable_set("@#{params[:var]}", results)
|
136
150
|
if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial?
|
137
151
|
render :partial => params[:partial]
|
@@ -148,46 +162,36 @@ class CrudController < ApplicationController
|
|
148
162
|
@q = @model.search(parametros)
|
149
163
|
@q.sorts = 'updated_at desc' if @q.sorts.empty?
|
150
164
|
if respond_to?(:current_usuario)
|
151
|
-
results = @q.result.accessible_by(current_ability).
|
165
|
+
results = @q.result.accessible_by(current_ability).page(params[:page])
|
152
166
|
else
|
153
|
-
results = @q.result.
|
154
|
-
end
|
155
|
-
if valid_instance_method?(params[:label])
|
156
|
-
method_label = params[:label]
|
157
|
-
else
|
158
|
-
raise "Ação inválida"
|
167
|
+
results = @q.result.page(params[:page])
|
159
168
|
end
|
169
|
+
method_label = params[:label]
|
160
170
|
render json: results.map {|result| {id: result.id, label: result.send(method_label), value: result.send(method_label)} }
|
161
171
|
end
|
162
172
|
|
163
173
|
def listing
|
164
174
|
authorize! :read, @model_permission if respond_to?(:current_usuario)
|
165
|
-
|
166
|
-
@q = @model.send(params[:scope]).search(params[:q])
|
167
|
-
else
|
168
|
-
@q = @model.search(params[:q])
|
169
|
-
end
|
170
|
-
|
171
|
-
if @q.sorts.empty?
|
172
|
-
if @crud_helper.order_field.to_s.include?("desc") || @crud_helper.order_field.to_s.include?("asc")
|
173
|
-
@q.sorts = @crud_helper.order_field.to_s
|
174
|
-
else
|
175
|
-
@q.sorts = "#{@crud_helper.order_field} asc"
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
175
|
+
@q = @model.search(params[:q])
|
179
176
|
if respond_to?(:current_usuario)
|
180
|
-
@records = @q.result.
|
177
|
+
@records = @q.result.accessible_by(current_ability)
|
181
178
|
else
|
182
|
-
@records = @q.result
|
179
|
+
@records = @q.result
|
183
180
|
end
|
184
181
|
report_name = "#{@crud_helper.title}_#{DateTime.now.strftime('%Y%m%d')}"
|
185
182
|
respond_to do |format|
|
186
|
-
format.xls {
|
183
|
+
format.xls {headers["Content-Disposition"] = "attachment; filename=#{report_name}.xls"}
|
187
184
|
format.pdf do
|
188
|
-
pdf =
|
185
|
+
pdf = WickedPdf.new.pdf_from_string(
|
186
|
+
render_to_string('crud/listing.pdf.erb'),
|
187
|
+
encoding: 'UTF-8',
|
188
|
+
page_size: 'A4',
|
189
|
+
show_as_html: params[:debug],
|
190
|
+
margin: { top: 20, bottom: 20 }
|
191
|
+
)
|
189
192
|
send_data(pdf, filename: "#{report_name}.pdf", type: "application/pdf", disposition: "inline")
|
190
193
|
end
|
194
|
+
format.html
|
191
195
|
end
|
192
196
|
end
|
193
197
|
|
@@ -197,7 +201,13 @@ class CrudController < ApplicationController
|
|
197
201
|
report_name = "#{@record}_#{DateTime.now.strftime('%Y%m%d')}"
|
198
202
|
respond_to do |format|
|
199
203
|
format.pdf do
|
200
|
-
pdf =
|
204
|
+
pdf = WickedPdf.new.pdf_from_string(
|
205
|
+
render_to_string('crud/printing.pdf.erb'),
|
206
|
+
encoding: 'UTF-8',
|
207
|
+
page_size: 'A4',
|
208
|
+
show_as_html: params[:debug],
|
209
|
+
margin: { top: 20, bottom: 20 }
|
210
|
+
)
|
201
211
|
send_data(pdf, filename: "#{report_name}.pdf", type: "application/pdf", disposition: "inline")
|
202
212
|
end
|
203
213
|
format.html
|
@@ -205,50 +215,8 @@ class CrudController < ApplicationController
|
|
205
215
|
end
|
206
216
|
|
207
217
|
private
|
208
|
-
def generate_pdf_report(opts, layout)
|
209
|
-
html = render_to_string(layout)
|
210
|
-
options = {
|
211
|
-
encoding: 'UTF-8',
|
212
|
-
orientation: opts[:orientation],
|
213
|
-
page_size: 'A4',
|
214
|
-
show_as_html: params[:debug],
|
215
|
-
margin: { top: opts[:top], bottom: opts[:bottom] }
|
216
|
-
}
|
217
|
-
if opts[:header].present?
|
218
|
-
options[:header] = {content: render_to_string(template: opts[:header], locals: {title: @crud_helper.title})}
|
219
|
-
end
|
220
|
-
if opts[:footer].present?
|
221
|
-
options[:footer] = {content: render_to_string(template: opts[:footer])}
|
222
|
-
end
|
223
|
-
WickedPdf.new.pdf_from_string(html, options)
|
224
|
-
end
|
225
|
-
|
226
|
-
def setup
|
227
|
-
if params[:associacao]
|
228
|
-
@crud_associacao = Module.const_get("#{params[:model].to_s.singularize}_crud".camelize)
|
229
|
-
if Module.const_get(params[:model].camelize).reflect_on_association(params[:associacao])
|
230
|
-
@model = Module.const_get(params[:model].camelize).find(params[:id]).send(params[:associacao])
|
231
|
-
else
|
232
|
-
raise "Ação inválida"
|
233
|
-
end
|
234
|
-
c_helper = Module.const_get(params[:model].camelize).reflect_on_association(params[:associacao]).class_name
|
235
|
-
@crud_helper = Module.const_get("#{c_helper}Crud") unless params[:render] == "modal" and params[:action] == "new"
|
236
|
-
@url = crud_associacao_models_path(model: params[:model], id: params[:id], associacao: params[:associacao], page: params[:page], q: params[:q])
|
237
|
-
@clean_url = crud_associacao_models_path(model: params[:model], id: params[:id], associacao: params[:associacao])
|
238
|
-
@model_permission = c_helper.constantize
|
239
|
-
@id = params[:associacao_id] if params[:associacao_id]
|
240
|
-
else
|
241
|
-
@model = Module.const_get(params[:model].camelize)
|
242
|
-
@model_permission = @model
|
243
|
-
@crud_helper = Module.const_get("#{params[:model]}_crud".camelize) unless params[:render] == "modal" and params[:action] == "new"
|
244
|
-
@url = crud_models_path(model: params[:model], page: params[:page], q: params[:q])
|
245
|
-
@clean_url = crud_models_path(model: params[:model])
|
246
|
-
@id = params[:id] if params[:id]
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
218
|
def params_permitt
|
251
|
-
params.require(@model.name.underscore.
|
219
|
+
params.require(@model.name.underscore.to_sym).permit(fields_model)
|
252
220
|
end
|
253
221
|
|
254
222
|
def fields_model
|
@@ -264,16 +232,12 @@ class CrudController < ApplicationController
|
|
264
232
|
fields << {"#{field[:attribute].to_s.singularize}_ids".to_sym => []}
|
265
233
|
end
|
266
234
|
elsif @model.columns_hash[field[:attribute].to_s]
|
267
|
-
|
268
|
-
fields << {field[:attribute] => []}
|
269
|
-
else
|
270
|
-
fields << field[:attribute]
|
271
|
-
end
|
235
|
+
fields << field[:attribute]
|
272
236
|
end
|
273
237
|
end
|
274
238
|
end
|
275
239
|
#TODO - Deprecated
|
276
|
-
|
240
|
+
@crud_helper.form_groups.each do |key, groups|
|
277
241
|
fields << permitt_group(fields, key, groups[:fields],@model)
|
278
242
|
end
|
279
243
|
#Fim - Deprecated
|
@@ -300,32 +264,10 @@ class CrudController < ApplicationController
|
|
300
264
|
group[chave] << {"#{field[:attribute].to_s.singularize}_ids".to_sym => []}
|
301
265
|
end
|
302
266
|
elsif (modelo.columns_hash[field[:attribute].to_s] || (modelo.respond_to?(:params_permitt) && modelo.params_permitt.include?(field[:attribute].to_sym)))
|
303
|
-
|
304
|
-
group[chave] << {field[:attribute] => []}
|
305
|
-
else
|
306
|
-
group[chave] << field[:attribute]
|
307
|
-
end
|
267
|
+
group[chave] << field[:attribute]
|
308
268
|
end
|
309
269
|
end
|
310
270
|
end
|
311
271
|
group
|
312
272
|
end
|
313
|
-
|
314
|
-
def valid_method?(method)
|
315
|
-
list_methods = []
|
316
|
-
@model.ancestors.each do |m|
|
317
|
-
list_methods << m.methods(false).reject{ |m| /^_/ =~ m.to_s }
|
318
|
-
break if m.superclass.to_s == "ActiveRecord::Base"
|
319
|
-
end
|
320
|
-
list_methods.flatten.include? method.to_sym
|
321
|
-
end
|
322
|
-
|
323
|
-
def valid_instance_method?(method)
|
324
|
-
list_methods = []
|
325
|
-
@model.ancestors.each do |m|
|
326
|
-
list_methods << m.instance_methods(false).reject{ |m| /^_/ =~ m.to_s }
|
327
|
-
break if m.superclass.to_s == "ActiveRecord::Base"
|
328
|
-
end
|
329
|
-
list_methods.flatten.include? method.to_sym
|
330
|
-
end
|
331
273
|
end
|
data/app/helpers/crud_helper.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
module CrudHelper
|
2
2
|
|
3
3
|
def is_active_controller(controller_name)
|
4
|
-
|
4
|
+
params[:controller] == controller_name ? "active" : nil
|
5
5
|
end
|
6
6
|
|
7
7
|
def is_active_action(action_name)
|
8
|
-
|
8
|
+
params[:action] == action_name ? "active" : nil
|
9
9
|
end
|
10
10
|
|
11
11
|
def is_raro_crud(classe)
|
@@ -110,12 +110,12 @@ module CrudHelper
|
|
110
110
|
permissions.uniq.flatten
|
111
111
|
end
|
112
112
|
|
113
|
-
def render_plus_button(field,
|
114
|
-
field[:sf][:wrapper] =
|
115
|
-
render_field(field,
|
113
|
+
def render_plus_button(field,f,modelo,record)
|
114
|
+
field[:sf][:wrapper] = :with_button
|
115
|
+
render_field(field,f,modelo,record)
|
116
116
|
end
|
117
117
|
|
118
|
-
def render_field(field,
|
118
|
+
def render_field(field,f,modelo,record)
|
119
119
|
field[:sf][:wrapper] ||= :default
|
120
120
|
if field[:sf].present? && field[:sf][:if].present?
|
121
121
|
return unless field[:sf][:if].call(f.object)
|
@@ -174,11 +174,11 @@ module CrudHelper
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def render_field_file(field)
|
177
|
-
if imagem?(field) && field.
|
178
|
-
if is_active_action("printing")
|
179
|
-
|
177
|
+
if imagem?(field) && field.url(:thumb)
|
178
|
+
if is_active_action("printing")
|
179
|
+
wicked_pdf_image_tag(field.url(:thumb))
|
180
180
|
else
|
181
|
-
image_tag(field.url(:thumb)
|
181
|
+
image_tag(field.url(:thumb))
|
182
182
|
end
|
183
183
|
elsif video?(field)
|
184
184
|
link_to field, field.url, target: "_blank"
|
@@ -196,71 +196,45 @@ module CrudHelper
|
|
196
196
|
end
|
197
197
|
|
198
198
|
#Permissions
|
199
|
-
def should_view?(crud_helper,
|
199
|
+
def should_view?(crud_helper,record)
|
200
200
|
return false unless can?(:read, record)
|
201
201
|
return true if crud_helper.condition_view_action.nil?
|
202
202
|
crud_helper.condition_view_action.call(record)
|
203
203
|
end
|
204
204
|
|
205
|
-
def should_edit?(crud_helper,
|
205
|
+
def should_edit?(crud_helper,record)
|
206
206
|
return false unless can?(:update, record)
|
207
207
|
return true if crud_helper.condition_edit_action.nil?
|
208
208
|
crud_helper.condition_edit_action.call(record)
|
209
209
|
end
|
210
210
|
|
211
|
-
def should_destroy?(crud_helper,
|
211
|
+
def should_destroy?(crud_helper,record)
|
212
212
|
return false unless can?(:destroy, record)
|
213
213
|
return true if crud_helper.condition_destroy_action.nil?
|
214
214
|
crud_helper.condition_destroy_action.call(record)
|
215
215
|
end
|
216
216
|
|
217
|
-
def should_listing?(crud_helper,
|
217
|
+
def should_listing?(crud_helper,model)
|
218
218
|
return false unless can?(:read, model)
|
219
219
|
return true if crud_helper.condition_listing_action.nil?
|
220
220
|
crud_helper.condition_listing_action.call(model)
|
221
221
|
end
|
222
222
|
|
223
|
-
def should_listing_excel?(crud_helper,
|
223
|
+
def should_listing_excel?(crud_helper,model)
|
224
224
|
return false unless can?(:read, model)
|
225
225
|
return true if crud_helper.condition_listing_excel.nil?
|
226
226
|
crud_helper.condition_listing_excel.call(model)
|
227
227
|
end
|
228
228
|
|
229
|
-
def should_listing_pdf?(crud_helper,
|
229
|
+
def should_listing_pdf?(crud_helper,model)
|
230
230
|
return false unless can?(:read, model)
|
231
231
|
return true if crud_helper.condition_listing_pdf.nil?
|
232
232
|
crud_helper.condition_listing_pdf.call(model)
|
233
233
|
end
|
234
234
|
|
235
|
-
def
|
235
|
+
def should_printing?(crud_helper,record)
|
236
236
|
return false unless can?(:read, record)
|
237
237
|
return true if crud_helper.condition_printing_action.nil?
|
238
238
|
crud_helper.condition_printing_action.call(record)
|
239
239
|
end
|
240
|
-
|
241
|
-
|
242
|
-
private
|
243
|
-
|
244
|
-
def pdf_image_tag(field, options = {})
|
245
|
-
if Rails.env.development? || Rails.env.test?
|
246
|
-
# Unless running a web server that can process 2 requests at the same
|
247
|
-
# time, trying to insert an image in a PDF creates a deadlock: the server
|
248
|
-
# can't finish processing the PDF request until it gets the image, but it
|
249
|
-
# can't start processing the image request until it has finished
|
250
|
-
# processing the PDF request.
|
251
|
-
# This will not be a problem in production, but in dev, a workaround is
|
252
|
-
# to base64 the image and insert its contents into the HTML
|
253
|
-
if field.respond_to?(:thumb)
|
254
|
-
image_data = File.read(field.thumb.path)
|
255
|
-
else
|
256
|
-
image_data = Rails.application.assets[field].to_s
|
257
|
-
end
|
258
|
-
image_tag("data:image/png;base64,#{::Base64.encode64(image_data)}", options)
|
259
|
-
else
|
260
|
-
if field.respond_to?(:thumb)
|
261
|
-
field = field.thumb.url
|
262
|
-
end
|
263
|
-
wicked_pdf_image_tag(field, options)
|
264
|
-
end
|
265
|
-
end
|
266
240
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module SearchHelper
|
2
2
|
|
3
|
-
def raro_search_form(model,
|
4
|
-
@buffer = raro_before_form(model,
|
3
|
+
def raro_search_form(model,partial,collection_name,url,sort = nil)
|
4
|
+
@buffer = raro_before_form(model,partial,collection_name,url,sort)
|
5
5
|
@model = model
|
6
6
|
yield
|
7
7
|
@buffer << raro_submit(I18n.t('search'))
|
@@ -16,7 +16,7 @@ module SearchHelper
|
|
16
16
|
"<div><input type='submit' class='btn btn-primary pull-right' value='#{name}' id='submit_raro_search'></div><br><br>"
|
17
17
|
end
|
18
18
|
|
19
|
-
def raro_field(name, opts = {})
|
19
|
+
def raro_field (name, opts = {})
|
20
20
|
modelo = opts[:model] || @model
|
21
21
|
unless opts[:model]
|
22
22
|
prototype = @model.columns_hash[name.to_s]
|
@@ -26,7 +26,7 @@ module SearchHelper
|
|
26
26
|
modelo = Module.const_get(opts[:model])
|
27
27
|
name = opts[:full_name]
|
28
28
|
end
|
29
|
-
label = "simple_form.labels.#{modelo.name.underscore}.#{name}"
|
29
|
+
label = I18n.t("simple_form.labels.#{modelo.name.underscore}.#{name}")
|
30
30
|
label = opts[:label] if opts[:label]
|
31
31
|
|
32
32
|
@buffer << "<div class=\"form-group\">"
|
@@ -78,22 +78,20 @@ module SearchHelper
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def raro_input_as(name,type,opts)
|
81
|
-
if opts[:collection_if] and opts[:collection_if].class == Proc
|
82
|
-
opts[:collection] = ActionView::Helpers::FormBuilder.instance_eval(&opts[:collection_if])
|
83
|
-
end
|
84
81
|
case opts[:as]
|
85
82
|
when :select
|
83
|
+
if opts[:collection_if] and opts[:collection_if].class == Proc
|
84
|
+
opts[:collection] = ActionView::Helpers::FormBuilder.instance_eval &opts[:collection_if]
|
85
|
+
end
|
86
86
|
raro_select(name,opts,opts[:collection])
|
87
87
|
when :hidden
|
88
88
|
return raro_hidden_field(name,opts[:value],opts)
|
89
89
|
when :string
|
90
90
|
raro_text_field(name, opts)
|
91
91
|
when :range
|
92
|
-
raro_range(name
|
92
|
+
raro_range(name)
|
93
93
|
when :monthyear
|
94
94
|
raro_monthyear(name, opts)
|
95
|
-
when :check_boxes
|
96
|
-
raro_check_boxes(name, opts, opts[:collection])
|
97
95
|
end
|
98
96
|
end
|
99
97
|
|
@@ -107,23 +105,6 @@ module SearchHelper
|
|
107
105
|
return raro_select("q[#{model_name}_id_eq]",opts,collection)
|
108
106
|
end
|
109
107
|
|
110
|
-
def raro_check_boxes(name, opts, collection)
|
111
|
-
unless opts[:model]
|
112
|
-
name = "q[#{name}_eq]"
|
113
|
-
end
|
114
|
-
buf = "<div class='col-sm-12'>"
|
115
|
-
input_class = opts[:input_html].try(:[], :class)
|
116
|
-
collection.each do |e|
|
117
|
-
buf << "<span class='checkbox' style='display: inline;'>"
|
118
|
-
buf << "<label class='control-label'>"
|
119
|
-
buf << "<input class='form-control check_boxes optional #{input_class}' type='checkbox' value='#{e[0]}' name='#{name}' style=''> #{e[1]}"
|
120
|
-
buf << '</label>'
|
121
|
-
buf << '</span>'
|
122
|
-
end
|
123
|
-
buf << '</div>'
|
124
|
-
return buf
|
125
|
-
end
|
126
|
-
|
127
108
|
def raro_select(name,opts,collection)
|
128
109
|
unless opts[:model]
|
129
110
|
name = "q[#{name}_eq]"
|
@@ -134,9 +115,7 @@ module SearchHelper
|
|
134
115
|
else
|
135
116
|
buf << "<select name=#{name} class='form-control'>"
|
136
117
|
end
|
137
|
-
|
138
|
-
buf << "<option value='' selected>#{I18n.t('search')}</option>"
|
139
|
-
end
|
118
|
+
buf <<"<option value ='' selected>#{I18n.t('search')}</option>"
|
140
119
|
collection.each do |e|
|
141
120
|
buf << "<option value=#{e[0]}>#{e[1]}</option>"
|
142
121
|
end
|
@@ -149,7 +128,7 @@ module SearchHelper
|
|
149
128
|
if opts[:as] and opts[:as] == :hidden
|
150
129
|
""
|
151
130
|
else
|
152
|
-
"<label class='col-sm-2 control-label'>#{
|
131
|
+
"<label class='col-sm-2 control-label'>#{name}</label>"
|
153
132
|
end
|
154
133
|
end
|
155
134
|
|
@@ -231,33 +210,26 @@ module SearchHelper
|
|
231
210
|
</div></div>"
|
232
211
|
end
|
233
212
|
|
234
|
-
def raro_range(name
|
235
|
-
attrs_gteq, attrs_lteq = "", ""
|
236
|
-
|
237
|
-
if opts[:placeholders]
|
238
|
-
placeholders = opts[:placeholders]
|
239
|
-
attrs_gteq << "placeholder='#{placeholders.first}' "
|
240
|
-
attrs_lteq << "placeholder='#{placeholders.last}' "
|
241
|
-
end
|
242
|
-
|
213
|
+
def raro_range(name)
|
243
214
|
buffer = ""
|
244
215
|
buffer += "<div class='col-sm-4'>"
|
245
|
-
buffer += "<input type='text' name='q[#{name}_gteq]' class='form-control'
|
216
|
+
buffer += "<input type='text' name='q[#{name}_gteq]' class='form-control'/>"
|
246
217
|
buffer += "</div>"
|
247
218
|
buffer += "<div class='col-sm-4 range-separator'>"
|
248
|
-
buffer += "<input type='text' name='q[#{name}_lteq]' class='form-control'
|
219
|
+
buffer += "<input type='text' name='q[#{name}_lteq]' class='form-control'/>"
|
249
220
|
buffer += "</div>"
|
250
221
|
buffer
|
251
222
|
end
|
252
223
|
|
253
|
-
def raro_before_form(model,
|
224
|
+
def raro_before_form(model,partial,var,url,sort)
|
254
225
|
buffer = "<div id='search_box'>"+
|
255
226
|
"<form method='get' class=form-horizontal action='#{url}' data-push='partial' data-target='#form'>" +
|
256
227
|
"<input type='hidden' name='partial' value='#{partial}'>" +
|
257
228
|
"<input type='hidden' name='var' value='#{var}'>"
|
258
|
-
|
259
|
-
|
260
|
-
|
229
|
+
if sort
|
230
|
+
buffer << "<input type='hidden' name='q[s]' value='#{sort}'>"
|
231
|
+
end
|
232
|
+
buffer
|
261
233
|
end
|
262
234
|
|
263
235
|
def raro_after_form
|
@@ -289,7 +261,6 @@ module SearchHelper
|
|
289
261
|
<option value=not_cont>#{I18n.t('not_contains')}</option>
|
290
262
|
<option value=start>#{I18n.t('begins')}</option>
|
291
263
|
<option value=end>#{I18n.t('ends')}</option>
|
292
|
-
<option value=has_any_term>#{I18n.t('word')}</option>
|
293
264
|
</select>"
|
294
265
|
end
|
295
266
|
|