dynamic_scaffold 1.4.2 → 1.7.1
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/README.md +5 -0
- data/app/views/dynamic_scaffold/bootstrap/_list.html.erb +3 -3
- data/app/views/dynamic_scaffold/bootstrap/form/_row.html.erb +2 -2
- data/lib/dynamic_scaffold/controller.rb +9 -2
- data/lib/dynamic_scaffold/form/item/base.rb +5 -1
- data/lib/dynamic_scaffold/list_builder.rb +9 -0
- data/lib/dynamic_scaffold/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a42e42644e59b8b8f43dfe73eed5089f76f471c20bbd788c44c2e3eb0ba68ea3
|
4
|
+
data.tar.gz: aaa19ee4e6ff49e27e12c1383f7ec3233ec3dcb436eca830b52c4fe5b2901d85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa010c42fbdbf64be8d31c8eb2323ba27219dd94639ea8d10de646b9b028deef6400b7aba98463e62b2bb98dfe01e9aa2f6a4dcb84ead17e65555af1e79dfd24
|
7
|
+
data.tar.gz: b06d1e642763f3b399a098316bb4de3bc8af90bb3765d3fb22bf13bc525c57115c4a6cbafe25d4b4b9ae941d8ff3bdffeebacf975e2bb977948c0978e9ae2745
|
data/README.md
CHANGED
@@ -170,6 +170,11 @@ class ShopController < ApplicationController
|
|
170
170
|
# config.list.title do |record|
|
171
171
|
# record.name
|
172
172
|
# end
|
173
|
+
|
174
|
+
# You can add class to list page's each row.
|
175
|
+
config.list.row_class do |record|
|
176
|
+
'disabled' unless record.active?
|
177
|
+
end
|
173
178
|
|
174
179
|
# First arg is attribute name of model.
|
175
180
|
# Last hash arg is given to HTML attributes options.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%unless flash[:dynamic_scaffold_danger].nil? -%>
|
2
2
|
<div class="alert alert-danger" role="alert">
|
3
|
-
|
3
|
+
<%== flash[:dynamic_scaffold_danger] %>
|
4
4
|
</div>
|
5
5
|
<%end%>
|
6
6
|
<input type="hidden" class="authenticity_param_name" value="<%= request_forgery_protection_token %>">
|
@@ -30,8 +30,8 @@
|
|
30
30
|
data-confirm-cancel="<%= t('dynamic_scaffold.message.confirm_cancel') %>"
|
31
31
|
data-confirm-cancel-class="btn btn-outline-secondary btn-default btn-sm"
|
32
32
|
>
|
33
|
-
<%@records.
|
34
|
-
<li class="ds-list-row js-ds-list-row">
|
33
|
+
<%@records.each_with_index do |record, index|%>
|
34
|
+
<li class="<%= class_names('ds-list-row js-ds-list-row', dynamic_scaffold.list.row_class(record)) %>">
|
35
35
|
<% if dynamic_scaffold.list.title? %>
|
36
36
|
<div class="ds-list-heading"><%= dynamic_scaffold.list.title(record) %></div>
|
37
37
|
<% end %>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<%= elem.render(self, form) %>
|
4
4
|
<% else %>
|
5
5
|
<%- errors = elem.errors(form) -%>
|
6
|
-
<div class="<%= class_names('form-group', 'has-error': errors.present?) %>">
|
6
|
+
<div class="<%= class_names('form-group', 'has-error': errors.present?) %>" data-name="<%= elem.unique_name %>">
|
7
7
|
<%= elem.render_label(self, depth) %>
|
8
|
-
<div>
|
8
|
+
<div class="ds-form-item">
|
9
9
|
<%- elem.insert(:before).each do |block| -%>
|
10
10
|
<%= self.instance_exec(@record, &block) %>
|
11
11
|
<%-end-%>
|
@@ -77,7 +77,7 @@ module DynamicScaffold
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
def update # rubocop:disable Metrics/AbcSize
|
80
|
+
def update # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
81
81
|
values = update_values
|
82
82
|
@record = find_record(dynamic_scaffold.model.primary_key => params['id'])
|
83
83
|
datetime_select_keys = []
|
@@ -89,6 +89,10 @@ module DynamicScaffold
|
|
89
89
|
|
90
90
|
datetime_select_keys << k = match[1]
|
91
91
|
end
|
92
|
+
|
93
|
+
# globalize
|
94
|
+
next [:translations_attributes, @record.translations] if k == 'translations_attributes'
|
95
|
+
|
92
96
|
[k, @record.public_send(k)]
|
93
97
|
end.compact.to_h.with_indifferent_access
|
94
98
|
|
@@ -103,7 +107,7 @@ module DynamicScaffold
|
|
103
107
|
end
|
104
108
|
end
|
105
109
|
|
106
|
-
def destroy
|
110
|
+
def destroy # rubocop:disable Metrics/AbcSize
|
107
111
|
# `Destroy` also does not support multiple primary keys too.
|
108
112
|
record = find_record(dynamic_scaffold.model.primary_key => params['id'])
|
109
113
|
begin
|
@@ -118,6 +122,9 @@ module DynamicScaffold
|
|
118
122
|
flash[:dynamic_scaffold_danger] = I18n.t('dynamic_scaffold.alert.destroy.failed')
|
119
123
|
logger.error(e)
|
120
124
|
end
|
125
|
+
|
126
|
+
flash[:dynamic_scaffold_danger] = record.errors[:base].join('<br>') if record.errors[:base].any?
|
127
|
+
|
121
128
|
redirect_to dynamic_scaffold_path(:index, request_queries)
|
122
129
|
end
|
123
130
|
|
@@ -31,6 +31,10 @@ module DynamicScaffold
|
|
31
31
|
@label_block = nil
|
32
32
|
end
|
33
33
|
|
34
|
+
def unique_name
|
35
|
+
"#{@config.model.table_name}_#{name}"
|
36
|
+
end
|
37
|
+
|
34
38
|
def notes?
|
35
39
|
!@notes.empty?
|
36
40
|
end
|
@@ -95,7 +99,7 @@ module DynamicScaffold
|
|
95
99
|
# return label unless label.nil?
|
96
100
|
# end
|
97
101
|
|
98
|
-
view.tag.label(proxy_field.label, label_attrs)
|
102
|
+
view.tag.label(proxy_field.label, label_attrs) if proxy_field.label.present?
|
99
103
|
end
|
100
104
|
|
101
105
|
def extract_parameters(permitting)
|
@@ -7,6 +7,7 @@ module DynamicScaffold
|
|
7
7
|
@order = []
|
8
8
|
@title = nil
|
9
9
|
@filter = nil
|
10
|
+
@row_class_block = nil
|
10
11
|
end
|
11
12
|
|
12
13
|
def pagination(options = nil)
|
@@ -88,5 +89,13 @@ module DynamicScaffold
|
|
88
89
|
@filter = block if block_given?
|
89
90
|
@filter
|
90
91
|
end
|
92
|
+
|
93
|
+
def row_class(record = nil, &block)
|
94
|
+
if block_given?
|
95
|
+
@row_class_block = block
|
96
|
+
elsif record.present? && @row_class_block
|
97
|
+
@config.controller.view_context.instance_exec(record, &@row_class_block)
|
98
|
+
end
|
99
|
+
end
|
91
100
|
end
|
92
101
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamic_scaffold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masamoto Miyata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: classnames-rails-view
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: '5.0'
|
48
48
|
- - "<="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '6.
|
50
|
+
version: '6.1'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
version: '5.0'
|
58
58
|
- - "<="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '6.
|
60
|
+
version: '6.1'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: capybara
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|