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 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