templus_models 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/raro_crud.js +3 -0
- data/app/helpers/crud_helper.rb +17 -2
- data/app/raro_crud/raro_crud.rb +49 -22
- data/app/views/crud/_form.html.erb +1 -2
- data/app/views/crud/_record.html.erb +3 -3
- data/app/views/crud/_shared.html.erb +7 -3
- data/app/views/crud/create.js.erb +1 -1
- data/app/views/layouts/_template_raro_crud.html.erb +6 -7
- data/lib/templus_models/version.rb +1 -1
- data/test/dummy/app/models/usuario.rb +2 -1
- data/test/dummy/app/raro_crud/usuario_crud.rb +5 -4
- data/test/dummy/db/development.sqlite3 +0 -0
- 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: bfad85131bd19efb453328996e69385d9e4c9342
|
4
|
+
data.tar.gz: c8d4b46fddeda767f28b832c3ca9bd460a0aa74d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 603316b3e62cc51bda580620a885b7731056106c9a7902735f5d0c6d7b6295b41d6cef997e200f49a37a2e7679fdd0bb7f24578efa61f6e7be1120395bd8a9aa
|
7
|
+
data.tar.gz: 483f928f955f6803c94c099bb0e70148848b9ebde9a18da9b2fcc68eb8abeb1773e392fb18e82b29731354e146b13747eda17428c6c2cb7ec8507ceff6df48e7
|
@@ -21,6 +21,9 @@ function new_record(id,name){
|
|
21
21
|
text: entity_desc,
|
22
22
|
selected: 'selected'
|
23
23
|
}));
|
24
|
+
if($('#' + id).hasClass("chosen")){
|
25
|
+
$('#' + id).trigger("chosen:updated");
|
26
|
+
}
|
24
27
|
$(model_target).attr('data-saved','false');
|
25
28
|
$(model_target).attr('data-entity-name','')
|
26
29
|
$(model_target).attr('data-entity-id','')
|
data/app/helpers/crud_helper.rb
CHANGED
@@ -8,13 +8,13 @@ module CrudHelper
|
|
8
8
|
params[:action] == action_name ? "active" : nil
|
9
9
|
end
|
10
10
|
|
11
|
-
def is_raro_crud(
|
11
|
+
def is_raro_crud(classe)
|
12
12
|
#if(Rails.env == "production")
|
13
13
|
# @@cruds = Dir[Rails.root.join("app","raro_crud","*.rb")].map{|f| f.split(/\//).last.gsub(/_crud\.rb/,'')} unless @@cruds
|
14
14
|
#else
|
15
15
|
@@cruds = Dir[Rails.root.join("app","raro_crud","*.rb")].map{|f| f.split(/\//).last.gsub(/_crud\.rb/,'')}
|
16
16
|
#end
|
17
|
-
return @@cruds.include?(
|
17
|
+
return @@cruds.include?(classe.underscore.to_s)
|
18
18
|
end
|
19
19
|
|
20
20
|
def lista_menus_crud(raro_models)
|
@@ -109,6 +109,7 @@ module CrudHelper
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def render_field(field,f,modelo,record)
|
112
|
+
field[:sf][:wrapper] ||= :default
|
112
113
|
if field[:sf].present? && field[:sf][:if].present?
|
113
114
|
return unless field[:sf][:if].call(f.object)
|
114
115
|
end
|
@@ -167,4 +168,18 @@ module CrudHelper
|
|
167
168
|
def render_default_actions_crud
|
168
169
|
render "default_actions_crud"
|
169
170
|
end
|
171
|
+
|
172
|
+
#Permissions
|
173
|
+
def shold_view?(crud_helper,record)
|
174
|
+
return true if crud_helper.condition_view_action.nil?
|
175
|
+
crud_helper.condition_view_action.call(record)
|
176
|
+
end
|
177
|
+
def shold_edit?(crud_helper,record)
|
178
|
+
return true if crud_helper.condition_edit_action.nil?
|
179
|
+
crud_helper.condition_edit_action.call(record)
|
180
|
+
end
|
181
|
+
def shold_destroy?(crud_helper,record)
|
182
|
+
return true if crud_helper.condition_destroy_action.nil?
|
183
|
+
crud_helper.condition_destroy_action.call(record)
|
184
|
+
end
|
170
185
|
end
|
data/app/raro_crud/raro_crud.rb
CHANGED
@@ -1,26 +1,29 @@
|
|
1
1
|
class RaroCrud
|
2
|
-
@@order_field
|
3
|
-
@@per_page
|
4
|
-
@@index_fields
|
5
|
-
@@form_fields
|
6
|
-
@@form_group
|
7
|
-
@@form_scripts
|
8
|
-
@@view_fields
|
9
|
-
@@search_fields
|
10
|
-
@@test_fields
|
11
|
-
@@top_links
|
12
|
-
@@title
|
13
|
-
@@subtitle_index
|
14
|
-
@@description_index
|
15
|
-
@@actions
|
16
|
-
@@links
|
17
|
-
@@edit_action
|
18
|
-
@@
|
19
|
-
@@
|
20
|
-
@@
|
21
|
-
@@
|
22
|
-
@@
|
23
|
-
@@
|
2
|
+
@@order_field = {}
|
3
|
+
@@per_page = {}
|
4
|
+
@@index_fields = {}
|
5
|
+
@@form_fields = {}
|
6
|
+
@@form_group = {}
|
7
|
+
@@form_scripts = {}
|
8
|
+
@@view_fields = {}
|
9
|
+
@@search_fields = {}
|
10
|
+
@@test_fields = {}
|
11
|
+
@@top_links = {}
|
12
|
+
@@title = {}
|
13
|
+
@@subtitle_index = {}
|
14
|
+
@@description_index = {}
|
15
|
+
@@actions = {}
|
16
|
+
@@links = {}
|
17
|
+
@@edit_action = {}
|
18
|
+
@@condition_edit_action = {}
|
19
|
+
@@destroy_action = {}
|
20
|
+
@@condition_destroy_action = {}
|
21
|
+
@@view_action = {}
|
22
|
+
@@condition_view_action = {}
|
23
|
+
@@options_link = {}
|
24
|
+
@@scopes = {}
|
25
|
+
@@menus = []
|
26
|
+
@@index_path = nil
|
24
27
|
|
25
28
|
def self.edit_action
|
26
29
|
if @@edit_action[self.to_s.to_sym] == false
|
@@ -30,6 +33,10 @@ class RaroCrud
|
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
36
|
+
def self.condition_edit_action
|
37
|
+
(@@condition_edit_action[self.to_s.to_sym]) ? @@condition_edit_action[self.to_s.to_sym] : nil
|
38
|
+
end
|
39
|
+
|
33
40
|
def self.destroy_action
|
34
41
|
if @@destroy_action[self.to_s.to_sym] == false
|
35
42
|
return false
|
@@ -37,6 +44,10 @@ class RaroCrud
|
|
37
44
|
return true
|
38
45
|
end
|
39
46
|
end
|
47
|
+
|
48
|
+
def self.condition_destroy_action
|
49
|
+
(@@condition_destroy_action[self.to_s.to_sym]) ? @@condition_destroy_action[self.to_s.to_sym] : nil
|
50
|
+
end
|
40
51
|
|
41
52
|
def self.view_action
|
42
53
|
if @@view_action[self.to_s.to_sym] == false
|
@@ -45,6 +56,10 @@ class RaroCrud
|
|
45
56
|
return true
|
46
57
|
end
|
47
58
|
end
|
59
|
+
|
60
|
+
def self.condition_view_action
|
61
|
+
(@@condition_view_action[self.to_s.to_sym]) ? @@condition_view_action[self.to_s.to_sym] : nil
|
62
|
+
end
|
48
63
|
|
49
64
|
def self.root_path
|
50
65
|
"/crud/#{self.to_s.gsub('Crud', '').underscore}"
|
@@ -248,15 +263,27 @@ class RaroCrud
|
|
248
263
|
def self.sem_visualizacao
|
249
264
|
@@view_action[self.to_s.to_sym] = false
|
250
265
|
end
|
266
|
+
|
267
|
+
def self.visualizacao(condicao)
|
268
|
+
@@condition_view_action[self.to_s.to_sym] = condicao
|
269
|
+
end
|
251
270
|
|
252
271
|
def self.sem_edicao
|
253
272
|
@@edit_action[self.to_s.to_sym] = false
|
254
273
|
end
|
274
|
+
|
275
|
+
def self.edicao(condicao)
|
276
|
+
@@condition_edit_action[self.to_s.to_sym] = condicao
|
277
|
+
end
|
255
278
|
|
256
279
|
def self.sem_exclusao
|
257
280
|
@@destroy_action[self.to_s.to_sym] = false
|
258
281
|
end
|
259
282
|
|
283
|
+
def self.exclusao(condicao)
|
284
|
+
@@condition_destroy_action[self.to_s.to_sym] = condicao
|
285
|
+
end
|
286
|
+
|
260
287
|
def self.acoes(method,desc,proc = nil)
|
261
288
|
@@actions[self.to_s.to_sym] = [] unless @@actions[self.to_s.to_sym]
|
262
289
|
@@actions[self.to_s.to_sym].push([method,desc,proc])
|
@@ -21,12 +21,11 @@
|
|
21
21
|
<%= simple_nested_form_for @record, remote: remote_form, html: {class: "form-horizontal"}, url: url do |f| %>
|
22
22
|
<%= flash_messages_error(@record.errors) %>
|
23
23
|
<%@crud_helper.form_fields.each do |field|%>
|
24
|
-
<% if @model.reflect_on_association(field[:attribute]).class == ActiveRecord::Reflection::BelongsToReflection
|
24
|
+
<% if @model.reflect_on_association(field[:attribute]).class == ActiveRecord::Reflection::BelongsToReflection && is_raro_crud(@model.reflect_on_association(field[:attribute]).class_name) && field[:sf][:add_registro].nil?%>
|
25
25
|
<%= render_plus_button(field,f,@model,@record) %>
|
26
26
|
<%else%>
|
27
27
|
<%= render_field(field,f,@model,@record) %>
|
28
28
|
<%end%>
|
29
|
-
|
30
29
|
<% end %>
|
31
30
|
<%@crud_helper.form_groups.each do |key, groups|%>
|
32
31
|
<% modelo = @model.reflect_on_association(key.to_s).class_name.constantize %>
|
@@ -52,15 +52,15 @@
|
|
52
52
|
</a>
|
53
53
|
<% end %>
|
54
54
|
<% end %>
|
55
|
-
<%if @crud_helper.view_action%>
|
55
|
+
<%if @crud_helper.view_action && shold_view?(@crud_helper, record)%>
|
56
56
|
<a href="/crud/<%=@model.name.underscore%>/<%=record.id%>"
|
57
57
|
class="btn btn-primary btn-xs" data-push="partial" data-target="#form">Visualizar</a>
|
58
58
|
<% end %>
|
59
|
-
<%if @crud_helper.edit_action%>
|
59
|
+
<%if @crud_helper.edit_action && shold_edit?(@crud_helper, record) %>
|
60
60
|
<a href="/crud/<%=@model.name.underscore%>/<%=record.id%>/edit"
|
61
61
|
class="btn btn-primary btn-xs" data-push="partial" data-target="#form">Editar</a>
|
62
62
|
<% end %>
|
63
|
-
<%if @crud_helper.destroy_action%>
|
63
|
+
<%if @crud_helper.destroy_action && shold_destroy?(@crud_helper, record)%>
|
64
64
|
<a href="/crud/<%=@model.name.underscore%>/<%=record.id%>/destroy"
|
65
65
|
class="btn btn-danger btn-xs" data-push="partial" data-target="#form" data-method="delete">Excluir</a>
|
66
66
|
<% end %>
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<%unless params[:render] == 'modal'%>
|
1
2
|
<div class="wrapper wrapper-content animated fadeInRight">
|
2
3
|
<div class="row">
|
3
4
|
<div class="col-lg-12">
|
@@ -10,7 +11,7 @@
|
|
10
11
|
</h5>
|
11
12
|
<% elsif is_action_create? && @model.present? %>
|
12
13
|
<h5>Cadastrar</h5>
|
13
|
-
<% elsif @record.present? %>
|
14
|
+
<% elsif @record.present? && !@record.new_record? %>
|
14
15
|
<h5>
|
15
16
|
<%= @record.to_s %>
|
16
17
|
<small style="margin-left: 2px;">#<%= @record.id %></small>
|
@@ -21,7 +22,7 @@
|
|
21
22
|
<small><%= @crud_helper.description(:index) %></small>
|
22
23
|
</h5>
|
23
24
|
<% end %>
|
24
|
-
<% if is_action_index? || is_action_query
|
25
|
+
<% if (@crud_helper.present? && (is_action_index? || is_action_query?))%>
|
25
26
|
<div class="pull-right actions">
|
26
27
|
<% @crud_helper.top_links.each do |link| %>
|
27
28
|
<% if link[:can].present? %>
|
@@ -44,4 +45,7 @@
|
|
44
45
|
</div>
|
45
46
|
</div>
|
46
47
|
</div>
|
47
|
-
</div>
|
48
|
+
</div>
|
49
|
+
<% else %>
|
50
|
+
<% block.call %>
|
51
|
+
<% end %>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<%if @saved %>
|
5
5
|
var modal_target = "#modal_new_record." + '<%=@model.name.underscore%>';
|
6
6
|
$(modal_target).attr('data-saved','true')
|
7
|
-
|
7
|
+
$(modal_target).attr('data-entity-name','<%=@record.to_s%>')
|
8
8
|
$(modal_target).attr('data-entity-id','<%=@record.id%>')
|
9
9
|
$(modal_target).modal('hide')
|
10
10
|
<%else%>
|
@@ -23,11 +23,10 @@
|
|
23
23
|
</div>
|
24
24
|
</div>
|
25
25
|
</div>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<% if content_for? :corpo %>
|
28
|
+
<%= yield :corpo %>
|
29
|
+
<% end %>
|
30
|
+
<% if content_for? :modal %>
|
31
|
+
<%= yield :modal %>
|
33
32
|
<% end %>
|
@@ -4,7 +4,8 @@ class Usuario < ActiveRecord::Base
|
|
4
4
|
devise :database_authenticatable, :registerable,
|
5
5
|
:recoverable, :rememberable, :trackable, :validatable
|
6
6
|
|
7
|
-
belongs_to :papel
|
7
|
+
# belongs_to :papel
|
8
|
+
belongs_to :perfil, :class_name => "Papel", :foreign_key => "papel_id"
|
8
9
|
validates_presence_of :nome, :email
|
9
10
|
|
10
11
|
def to_s
|
@@ -4,21 +4,22 @@ class UsuarioCrud < RaroCrud
|
|
4
4
|
link_superior "Novo Usuário", id: "novo-button", icon: "plus", link: "new"
|
5
5
|
|
6
6
|
ordenar_por :nome
|
7
|
+
edicao Proc.new {|obj| !obj.root? }
|
8
|
+
exclusao Proc.new {|obj| !obj.root? }
|
9
|
+
visualizacao Proc.new {|obj| obj.root? }
|
7
10
|
|
8
11
|
campo_tabela :nome, label: "Nome"
|
9
12
|
campo_tabela :email, label: "email"
|
10
13
|
|
11
|
-
|
12
14
|
campo_formulario :nome, label: "Nome"
|
13
15
|
campo_formulario :email, label: "Email", default_test_pos: "@rarolabs.com"
|
14
16
|
campo_formulario :password, label: "Senha", default_test: "12345678", edit: false
|
15
17
|
campo_formulario :password_confirmation, label: "Confirmação Senha", default_test: "12345678", edit: false
|
16
|
-
campo_formulario :
|
17
|
-
label_method: :descricao
|
18
|
+
campo_formulario :perfil, label: "Perfil", label_method: :descricao, input_html: {class: "chosen" , "data-placeholder" => "Escolha o perfil..."}, if: Proc.new {|obj| Usuario.current.root? }
|
18
19
|
|
19
20
|
campo_visualizacao :nome, label: "Nome"
|
20
21
|
campo_visualizacao :email, label: "email"
|
21
|
-
campo_visualizacao :
|
22
|
+
campo_visualizacao :perfil, label: "Papel"
|
22
23
|
|
23
24
|
campo_busca :nome, label: "Nome"
|
24
25
|
campo_busca :email, label: "email"
|
Binary file
|
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: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Sol
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|