zutils 1.0.0 → 1.1.2
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/views/shared/_card_list.html.erb +44 -0
- data/app/views/shared/_index.html.erb +1 -1
- data/app/views/shared/_list.html.erb +104 -59
- data/app/views/shared/_show.html.erb +18 -14
- data/lib/zutils/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bff9fb81ac8f0156f7d46644f0da08d0324b413f72ab8a2fc293d2963bafed93
|
4
|
+
data.tar.gz: a5ab72d937c600876d05e1dcceca038bb08873077e7760170b0a89a486326649
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33345cf00d787c3c7c5ea059c2e6d671071e62b6331492a5f799e9bd6c1493a51dcb577da6bb57f74701c3b1bef37c08c22206ee73ffb04d2798b9ab7c537a70
|
7
|
+
data.tar.gz: b980a28133573afad4290a1f7e1124182e44fe4a4d12da0c7cdddf727c7873650faf0e4997f16168be76e88fa719db69080eb602eec999b1e3b434843fb0e4a9
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<% exceptions ||= ['created_at', 'updated_at', 'deleted_at'] %>
|
2
|
+
<% show_columns ||= [] %>
|
3
|
+
<% table_class ||= 'datatables styletable' %>
|
4
|
+
<% card_class ||= 'primary' %>
|
5
|
+
<% sort_all ||= false %>
|
6
|
+
<% show_new &&= true %>
|
7
|
+
<% sort_fields ||= [] %>
|
8
|
+
|
9
|
+
<% hide_actions ||= false %>
|
10
|
+
|
11
|
+
<% if show_columns.empty? %>
|
12
|
+
<% show_columns = list.klass.column_names - exceptions %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div class="card card-outline card-<%= card_class %>">
|
16
|
+
<div class="card-header with-border">
|
17
|
+
<h3 class="card-title">
|
18
|
+
<strong>
|
19
|
+
<i class="fa fa-list"></i>
|
20
|
+
Listagem
|
21
|
+
</strong>
|
22
|
+
<% if show_new %>
|
23
|
+
<%= link_to eval("new_#{list.klass.model_name.singular}_path"), class: "btn btn-xs btn-#{card_class}" do %>
|
24
|
+
Cadastar <i class="fa fa-plus"></i>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<div class="text-muted text-xs">
|
28
|
+
<%= page_entries_info list, entry_name: '' %>
|
29
|
+
</div>
|
30
|
+
</h3>
|
31
|
+
<div class='card-tools'>
|
32
|
+
<%= paginate list, window: 1 %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<div class="card-body p-0">
|
36
|
+
<%= render 'shared/list', list: list, show_columns: show_columns, box_class: card_class,
|
37
|
+
table_class: table_class, exceptions: exceptions, sort_all: sort_all, sort_fields: sort_fields,
|
38
|
+
hide_actions: hide_actions
|
39
|
+
%>
|
40
|
+
</div>
|
41
|
+
<div class="pagination justify-content-center pt-3">
|
42
|
+
<%= paginate list %>
|
43
|
+
</div>
|
44
|
+
</div>
|
@@ -6,7 +6,10 @@
|
|
6
6
|
<% sort_fields ||= [] %>
|
7
7
|
<% sort_all ||= false %>
|
8
8
|
<% table_class ||= 'datatables styletable' %>
|
9
|
+
|
9
10
|
<% box_class ||= 'primary' %>
|
11
|
+
<% card_class ||= 'primary' %>
|
12
|
+
|
10
13
|
<% show_columns ||= [] %>
|
11
14
|
|
12
15
|
<% hide_read_action ||= false %>
|
@@ -17,29 +20,58 @@
|
|
17
20
|
<% show_columns = list.klass.column_names - exceptions - excluded_columns + additional_columns %>
|
18
21
|
<% end %>
|
19
22
|
|
20
|
-
<table class="table table-striped <%= table_class %>
|
23
|
+
<table class="table table-striped <%= table_class %>">
|
21
24
|
<thead>
|
22
25
|
<tr>
|
23
26
|
<% show_columns.each do |column| %>
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
<%
|
30
|
-
<%
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
27
|
+
|
28
|
+
<% column_method = nil %>
|
29
|
+
<% column_name = column %>
|
30
|
+
<% column_align = ''%>
|
31
|
+
<% if column.class == Hash %>
|
32
|
+
<% column_name = column[:attribute] %>
|
33
|
+
<% column_method = column[:method] %>
|
34
|
+
<% column_align = column[:align] %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<% next if /_currency$/ =~ column_name %>
|
38
|
+
|
39
|
+
<th data-field="<%= column_method || column_name %>" data-align="<%= column_align %>">
|
40
|
+
<% if sort_all || sort_fields.include?(column_name) %>
|
41
|
+
<% if column_name.include?('.') %>
|
42
|
+
<% mname = column_name.split('.')[-2]&.camelize %>
|
43
|
+
<% cname = column_name.split('.')[-1] %>
|
44
|
+
<% model = Kernel.const_get(mname) %>
|
45
|
+
<%= sort_link(@q, column_name.split('.').join('_'),
|
46
|
+
"#{model.model_name.human} (#{model.human_attribute_name(cname)})")
|
47
|
+
%>
|
48
|
+
<% elsif /_id$/ =~ column_name %>
|
49
|
+
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name.split("_id")[0])) %>
|
50
|
+
<% elsif /_cents$/ =~ column_name %>
|
51
|
+
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name.split("_cents")[0])) %>
|
52
|
+
<% elsif /_currency$/ =~ column_name %>
|
53
|
+
<!-- faz nada -->
|
54
|
+
<% elsif column_name == 'id' %>
|
55
|
+
<%= sort_link(@q, column_name, '#') %>
|
56
|
+
<% else %>
|
57
|
+
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name)) %>
|
58
|
+
<% end %>
|
39
59
|
<% else %>
|
40
|
-
|
60
|
+
<% if column_name.include?('.') %>
|
61
|
+
<% s_name = column_method || column_name %>
|
62
|
+
<%= "#{s_name.split('.')[-2]&.camelize} (#{s_name.split('.')[-1]})" %>
|
63
|
+
<% elsif /_id$/ =~ column_name %>
|
64
|
+
<%= list.klass.human_attribute_name(column_name.split("_id")[0]) %>
|
65
|
+
<% elsif /_cents$/ =~ column_name %>
|
66
|
+
<%= list.klass.human_attribute_name(column_name.split("_cents")[0]) %>
|
67
|
+
<% elsif /_currency$/ =~ column_name %>
|
68
|
+
<% elsif column_name == 'id' %>
|
69
|
+
#
|
70
|
+
<% else %>
|
71
|
+
<%= list.klass.human_attribute_name(column_name) %>
|
72
|
+
<% end %>
|
41
73
|
<% end %>
|
42
|
-
|
74
|
+
</th>
|
43
75
|
<% end %>
|
44
76
|
<% unless hide_actions %>
|
45
77
|
<th>Ações</th>
|
@@ -48,50 +80,63 @@
|
|
48
80
|
</thead>
|
49
81
|
<tbody>
|
50
82
|
<% list.each do |object| %>
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
<%
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
83
|
+
<tr>
|
84
|
+
<% show_columns.each do |column| %>
|
85
|
+
|
86
|
+
<% column_method = nil %>
|
87
|
+
<% column_name = column %>
|
88
|
+
<% if column.class == Hash %>
|
89
|
+
<% column_name = column[:attribute] %>
|
90
|
+
<% column_method = column[:method] %>
|
91
|
+
<% end %>
|
92
|
+
|
93
|
+
<% next if /_currency$/ =~ column_name %>
|
94
|
+
|
95
|
+
<td>
|
96
|
+
<% if column_name.include?('.') %>
|
97
|
+
<% if column_method.nil? %>
|
98
|
+
<% o = object %>
|
99
|
+
<% column_name.split('.').each{|m| o = o.send(m) if o } %>
|
100
|
+
<%= o %>
|
101
|
+
<% else %>
|
102
|
+
<%= object.send(column_method) %>
|
103
|
+
<% end %>
|
104
|
+
<% elsif object.send(column_name).class == Date or
|
105
|
+
object.send(column_name).class == DateTime or
|
106
|
+
object.send(column_name).class == ActiveSupport::TimeWithZone or
|
107
|
+
object.send(column_name).class == Time %>
|
108
|
+
<%=l object.send(column_name) %>
|
109
|
+
<% elsif object.send(column_name).respond_to? 'attached?' %>
|
110
|
+
<% if object.send(column_name).class == ActiveStorage::Attached::One %>
|
111
|
+
<% if object.send(column_name).attached? %>
|
112
|
+
<%= link_to rails_blob_path(object.send(column_name)), class: "btn btn-#{box_class} #{card_class} btn-xs", target: '_blank' do %>
|
113
|
+
<i class="fa fa-file-o"></i> Arquivo
|
114
|
+
<% end %>
|
115
|
+
<% end %>
|
69
116
|
<% end %>
|
117
|
+
<% elsif /_id$/ =~ column_name && object.respond_to?(column_name.split('_id')[0]) %>
|
118
|
+
<%= object.send(column_name.split("_id")[0])&.name %>
|
119
|
+
<% elsif /_cents$/ =~ column_name %>
|
120
|
+
<%= number_to_currency object.send(column_name.split("_cents")[0]) %>
|
121
|
+
<% elsif /_currency$/ =~ column_name %>
|
122
|
+
<!-- faz nada -->
|
123
|
+
<% elsif column_name.include?(".") %>
|
124
|
+
<%= eval("object.#{column_name}") %>
|
125
|
+
<% elsif column_name == 'id' %>
|
126
|
+
<%= link_to object.id, object %>
|
127
|
+
<% else %>
|
128
|
+
<%= object.send(column_method || column_name) %>
|
70
129
|
<% end %>
|
71
|
-
|
72
|
-
<% elsif /_id$/ =~ column && object.respond_to?(column.split('_id')[0]) %>
|
73
|
-
<%= object.send(column.split("_id")[0])&.name %>
|
74
|
-
<% elsif /_cents$/ =~ column %>
|
75
|
-
<%= number_to_currency object.send(column.split("_cents")[0]) %>
|
76
|
-
<% elsif /_currency$/ =~ column %>
|
77
|
-
<!-- faz nada -->
|
78
|
-
<% elsif column.include?(".") %>
|
79
|
-
<%= eval("object.#{column}") %>
|
80
|
-
<% elsif column == 'id' %>
|
81
|
-
<%= link_to object.id, object %>
|
82
|
-
<% else %>
|
83
|
-
<%= object.send(column) %>
|
130
|
+
</td>
|
84
131
|
<% end %>
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
<% end %>
|
94
|
-
</tr>
|
132
|
+
<% unless hide_actions %>
|
133
|
+
<td>
|
134
|
+
<%= render 'shared/action_links', object: object, additional_actions: additional_actions,
|
135
|
+
hide_read_action: hide_read_action, hide_edit_action: hide_edit_action, hide_destroy_action: hide_destroy_action
|
136
|
+
%>
|
137
|
+
</td>
|
138
|
+
<% end %>
|
139
|
+
</tr>
|
95
140
|
<% end %>
|
96
141
|
</tbody>
|
97
142
|
</table>
|
@@ -40,9 +40,13 @@
|
|
40
40
|
<% end %>
|
41
41
|
<% if show_actions.include?('index') %>
|
42
42
|
<% if nested_resource %>
|
43
|
-
<%= link_to
|
43
|
+
<%= link_to eval_with_rescue("#{parent_resource.class.model_name.singular}_#{object.class.model_name.plural}_path(#{parent_resource.id})"), class: "btn btn-default btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Listagem' } do %>
|
44
|
+
Listagem <i class="fa fa-bars"></i>
|
45
|
+
<% end %>
|
44
46
|
<% else %>
|
45
|
-
<%= link_to
|
47
|
+
<%= link_to eval_with_rescue("#{object.class.model_name.plural}_path"), class: "btn btn-default btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Listagem' } do %>
|
48
|
+
Listagem <i class="fa fa-bars"></i>
|
49
|
+
<% end %>
|
46
50
|
<% end %>
|
47
51
|
<% end %>
|
48
52
|
<% end %>
|
@@ -52,8 +56,8 @@
|
|
52
56
|
</h3>
|
53
57
|
</div>
|
54
58
|
<% end %>
|
55
|
-
<div class="box-body
|
56
|
-
<table class="table table-bordered table-striped datatables
|
59
|
+
<div class="box-body no-padding">
|
60
|
+
<table class="table table-bordered table-striped no-padding datatables">
|
57
61
|
<% unless hide_table_header %>
|
58
62
|
<thead>
|
59
63
|
<tr>
|
@@ -111,14 +115,14 @@
|
|
111
115
|
<% relationships.each do |key, value| %>
|
112
116
|
<% if object.association(key.to_s).kind_of?(ActiveRecord::Associations::BelongsToAssociation) ||
|
113
117
|
object.association(key.to_s).kind_of?(ActiveRecord::Associations::HasOneAssociation) %>
|
114
|
-
<div class="box box-<%= box_class %>
|
115
|
-
<div class="box-header with-border
|
116
|
-
<h3 class="box-title
|
118
|
+
<div class="box box-<%= box_class %>">
|
119
|
+
<div class="box-header with-border">
|
120
|
+
<h3 class="box-title">
|
117
121
|
<%= Kernel.const_get(key.to_s.singularize.camelize).model_name.human %>
|
118
122
|
</h3>
|
119
123
|
</div>
|
120
|
-
<div class="box-body
|
121
|
-
<table class="table table-bordered table-striped datatables
|
124
|
+
<div class="box-body no-padding">
|
125
|
+
<table class="table table-bordered table-striped no-padding datatables">
|
122
126
|
<% unless hide_table_header %>
|
123
127
|
<thead>
|
124
128
|
<tr>
|
@@ -162,14 +166,14 @@
|
|
162
166
|
</div>
|
163
167
|
</div>
|
164
168
|
<% else %>
|
165
|
-
<div class="box box-<%= box_class %>
|
166
|
-
<div class="box-header with-border
|
167
|
-
<h3 class="box-title
|
169
|
+
<div class="box box-<%= box_class %>">
|
170
|
+
<div class="box-header with-border">
|
171
|
+
<h3 class="box-title">
|
168
172
|
<%= Kernel.const_get(key.to_s.singularize.camelize).model_name.human.pluralize %>
|
169
173
|
</h3>
|
170
174
|
</div>
|
171
|
-
<div class="box-body no-padding
|
172
|
-
<table class="table table-bordered table-striped datatables
|
175
|
+
<div class="box-body no-padding">
|
176
|
+
<table class="table table-bordered table-striped no-padding datatables">
|
173
177
|
<thead>
|
174
178
|
<tr>
|
175
179
|
<% value.each do |v| %>
|
data/lib/zutils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Viana
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- app/assets/javascripts/zutils.js
|
69
69
|
- app/assets/stylesheets/zutils.scss
|
70
70
|
- app/views/shared/_action_links.html.erb
|
71
|
+
- app/views/shared/_card_list.html.erb
|
71
72
|
- app/views/shared/_fields.html.erb
|
72
73
|
- app/views/shared/_form.html.erb
|
73
74
|
- app/views/shared/_index.html.erb
|