templus_models 3.0.8 → 3.0.9
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 +30 -4
- data/app/helpers/crud_helper.rb +2 -2
- data/app/views/crud/printing.pdf.erb +5 -1
- data/lib/templus_models/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b531514ac31823cc29637db8216e63b519bb8cd0
|
4
|
+
data.tar.gz: 48076b17649e28cdf40022c4e9c62da7825998ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a49da204233098191f6e4dcd499baa0f2583c17ac3fb0f9ff5256e9e721bf8873516e3e5236fb15f69546421facd17064f81f900398fe3c9bffb11c8e6d8c987
|
7
|
+
data.tar.gz: 09c0e33ea8e3131230b5fcda03d1d7ad716367160efe509821507d5f4f7cf1dfcfd8c2be3f83ea27d505e871e2ae97a84ec51af1ebdfbbb1bbc8be36d9d813f3
|
@@ -4,7 +4,7 @@ class CrudController < ApplicationController
|
|
4
4
|
|
5
5
|
def index
|
6
6
|
authorize! :read, @model_permission if respond_to?(:current_usuario)
|
7
|
-
if params[:scope].present?
|
7
|
+
if params[:scope].present? && valid_method?(params[:scope])
|
8
8
|
@q = @model.send(params[:scope]).search(params[:q])
|
9
9
|
else
|
10
10
|
@q = @model.search(params[:q])
|
@@ -54,7 +54,7 @@ class CrudController < ApplicationController
|
|
54
54
|
def action
|
55
55
|
@record = @model.find(@id)
|
56
56
|
authorize! :create_or_update, @record if respond_to?(:current_usuario)
|
57
|
-
if
|
57
|
+
if valid_instance_method?(params[:acao])
|
58
58
|
if @record.send(params[:acao])
|
59
59
|
flash.now[:success] = I18n.t("mensagem_action", acao: params[:acao])
|
60
60
|
else
|
@@ -145,7 +145,11 @@ class CrudController < ApplicationController
|
|
145
145
|
else
|
146
146
|
results = @q.result.page(params[:page])
|
147
147
|
end
|
148
|
-
|
148
|
+
if valid_instance_method?(params[:label])
|
149
|
+
method_label = params[:label]
|
150
|
+
else
|
151
|
+
raise "Ação inválida"
|
152
|
+
end
|
149
153
|
render json: results.map {|result| {id: result.id, label: result.send(method_label), value: result.send(method_label)} }
|
150
154
|
end
|
151
155
|
|
@@ -188,7 +192,11 @@ class CrudController < ApplicationController
|
|
188
192
|
def setup
|
189
193
|
if params[:associacao]
|
190
194
|
@crud_associacao = Module.const_get("#{params[:model].to_s.singularize}_crud".camelize)
|
191
|
-
|
195
|
+
if Module.const_get(params[:model].camelize).reflect_on_association(params[:associacao])
|
196
|
+
@model = Module.const_get(params[:model].camelize).find(params[:id]).send(params[:associacao])
|
197
|
+
else
|
198
|
+
raise "Ação inválida"
|
199
|
+
end
|
192
200
|
c_helper = Module.const_get(params[:model].camelize).reflect_on_association(params[:associacao]).class_name
|
193
201
|
@crud_helper = Module.const_get("#{c_helper}Crud") unless params[:render] == "modal" and params[:action] == "new"
|
194
202
|
@url = crud_associacao_models_path(model: params[:model], id: params[:id], associacao: params[:associacao], page: params[:page], q: params[:q])
|
@@ -260,4 +268,22 @@ class CrudController < ApplicationController
|
|
260
268
|
end
|
261
269
|
group
|
262
270
|
end
|
271
|
+
|
272
|
+
def valid_method?(method)
|
273
|
+
list_methods = []
|
274
|
+
@model.ancestors.each do |m|
|
275
|
+
list_methods << m.methods(false).reject{ |m| /^_/ =~ m.to_s }
|
276
|
+
break if ["ApplicationRecord", "ActiveRecord::Base"].include? m.superclass.to_s
|
277
|
+
end
|
278
|
+
list_methods.flatten.include? method.to_sym
|
279
|
+
end
|
280
|
+
|
281
|
+
def valid_instance_method?(method)
|
282
|
+
list_methods = []
|
283
|
+
@model.ancestors.each do |m|
|
284
|
+
list_methods << m.instance_methods(false).reject{ |m| /^_/ =~ m.to_s }
|
285
|
+
break if ["ApplicationRecord", "ActiveRecord::Base"].include? m.superclass.to_s
|
286
|
+
end
|
287
|
+
list_methods.flatten.include? method.to_sym
|
288
|
+
end
|
263
289
|
end
|
data/app/helpers/crud_helper.rb
CHANGED
@@ -176,10 +176,10 @@ module CrudHelper
|
|
176
176
|
def render_field_file(field)
|
177
177
|
if imagem?(field) && field.respond_to?(:thumb)
|
178
178
|
if is_active_action("printing")
|
179
|
-
pdf_image_tag(field)
|
179
|
+
pdf_image_tag(field, width: '100px')
|
180
180
|
else
|
181
181
|
link_to field.url, target: "_blank" do
|
182
|
-
image_tag(field.url(:thumb))
|
182
|
+
image_tag(field.url(:thumb), width: '100px')
|
183
183
|
end
|
184
184
|
end
|
185
185
|
elsif video?(field)
|
@@ -9,7 +9,11 @@
|
|
9
9
|
<% if @crud_helper.logo_printing_field.present? %>
|
10
10
|
<div class="col-xs-3">
|
11
11
|
<% if @crud_helper.logo_printing_field[:field].present? %>
|
12
|
-
|
12
|
+
<% if @record.send(@crud_helper.logo_printing_field[:field]).present? %>
|
13
|
+
<%= render_field_file(@record.send(@crud_helper.logo_printing_field[:field])) %>
|
14
|
+
<% else %>
|
15
|
+
<%= pdf_image_tag(Templus.logo, width: '100px') %>
|
16
|
+
<% end %>
|
13
17
|
<% elsif @crud_helper.logo_printing_field[:url].present? %>
|
14
18
|
<%= pdf_image_tag(@crud_helper.logo_printing_field[:url], width: '100px') %>
|
15
19
|
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: templus_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Sol
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-04-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|