zutils 1.0.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c149d9195250f9f394b8cfda619c8df775cdb7dd9a7853cae66b7cc19b53f2f6
4
- data.tar.gz: 836a4930072fd3a696052a857c782c18411393a9e710c3215815bcce614fb7e6
3
+ metadata.gz: bff9fb81ac8f0156f7d46644f0da08d0324b413f72ab8a2fc293d2963bafed93
4
+ data.tar.gz: a5ab72d937c600876d05e1dcceca038bb08873077e7760170b0a89a486326649
5
5
  SHA512:
6
- metadata.gz: ad38bf5c390df6cd13bf980479aa2c5af6c659420395dd05231822481c7625b5a557f383352006823c32b051388195efb9384fd28b787424a61bfc0045cd1453
7
- data.tar.gz: 634890763235592646345f705bf28c18f41d10bf7f48029bc449819c25fdb817fca70cd32301d862781af4b02ad925911d11eb2987ef101c2fb802cf6d10e25a
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>
@@ -9,7 +9,7 @@
9
9
  <% additional_actions ||= [] %>
10
10
  <% box_class ||= 'primary' %>
11
11
  <% table_no_padding ||= false %>
12
- <% table_class ||= 'datatables styletable' %>
12
+ <% table_class ||= 'datatables' %>
13
13
 
14
14
  <% hide_links ||= false %>
15
15
  <% hide_actions ||= false %>
@@ -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 %> table-bordered">
23
+ <table class="table table-striped <%= table_class %>">
21
24
  <thead>
22
25
  <tr>
23
26
  <% show_columns.each do |column| %>
24
- <% if sort_all || sort_fields.include?(column) %>
25
- <% if /_id$/ =~ column %>
26
- <th><%= sort_link(@q, column, list.klass.human_attribute_name(column.split("_id")[0])) %></th>
27
- <% elsif /_cents$/ =~ column %>
28
- <th><%= sort_link(@q, column, list.klass.human_attribute_name(column.split("_cents")[0])) %></th>
29
- <% elsif /_currency$/ =~ column %>
30
- <% else %>
31
- <th><%= sort_link(@q, column, list.klass.human_attribute_name(column)) %></th>
32
- <% end %>
33
- <% else %>
34
- <% if /_id$/ =~ column %>
35
- <th><%= list.klass.human_attribute_name(column.split("_id")[0]) %></th>
36
- <% elsif /_cents$/ =~ column %>
37
- <th><%= list.klass.human_attribute_name(column.split("_cents")[0]) %></th>
38
- <% elsif /_currency$/ =~ column %>
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
- <th><%= list.klass.human_attribute_name(column) %></th>
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
- <% end %>
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
- <tr>
52
- <% show_columns.each do |column| %>
53
- <% next if /_currency$/ =~ column %>
54
- <td>
55
- <% if column.include?('.') %>
56
- <% o = object %>
57
- <% column.split('.').each{|m| o = o.send(m) if o } %>
58
- <%= o %>
59
- <% elsif object.send(column).class == Date or
60
- object.send(column).class == DateTime or
61
- object.send(column).class == ActiveSupport::TimeWithZone or
62
- object.send(column).class == Time %>
63
- <%=l object.send(column) %>
64
- <% elsif object.send(column).respond_to? 'attached?' %>
65
- <% if object.send(column).class == ActiveStorage::Attached::One %>
66
- <% if object.send(column).attached? %>
67
- <%= link_to rails_blob_path(object.send(column)), class: "btn btn-#{box_class} btn-xs", target: '_blank' do %>
68
- <i class="fa fa-file-o"></i> Arquivo
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
- <% end %>
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
- </td>
86
- <% end %>
87
- <% unless hide_actions %>
88
- <td>
89
- <%= render 'shared/action_links', object: object, additional_actions: additional_actions,
90
- hide_read_action: hide_read_action, hide_edit_action: hide_edit_action, hide_destroy_action: hide_destroy_action
91
- %>
92
- </td>
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 'Listagem', 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' } %>
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 'Listagem', eval_with_rescue("#{object.class.model_name.plural}_path"), class: "btn btn-default btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Listagem' } %>
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 card-body p-0 no-padding">
56
- <table class="table table-bordered table-striped datatables styletable">
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 %> card card-outline card-<%= box_class %>">
115
- <div class="box-header with-border card-header">
116
- <h3 class="box-title card-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 card-body p-0 no-padding">
121
- <table class="table table-bordered table-striped datatables styletable">
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 %> card card-outline card-<%= box_class %>">
166
- <div class="box-header with-border card-header">
167
- <h3 class="box-title card-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 card-body p-0">
172
- <table class="table table-bordered table-striped datatables styletable">
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| %>
@@ -1,3 +1,3 @@
1
1
  module Zutils
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.2"
3
3
  end
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.0.0
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: 2020-01-17 00:00:00.000000000 Z
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