dynamic_scaffold 0.4.2 → 0.5.0
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/assets/stylesheets/dynamic_scaffold/common.scss +5 -0
- data/app/views/dynamic_scaffold/bootstrap/_edit.html.erb +1 -1
- data/app/views/dynamic_scaffold/bootstrap/_form.html.erb +8 -8
- data/app/views/dynamic_scaffold/bootstrap/_list.html.erb +4 -5
- data/app/views/dynamic_scaffold/bootstrap/_new.html.erb +1 -1
- data/config/locales/en.yml +2 -1
- data/config/locales/ja.yml +1 -0
- data/lib/dynamic_scaffold/config.rb +5 -1
- data/lib/dynamic_scaffold/controller.rb +10 -7
- data/lib/dynamic_scaffold/controller_utilities.rb +5 -1
- data/lib/dynamic_scaffold/error/{config.rb → invalid_operation.rb} +1 -1
- data/lib/dynamic_scaffold/error/{controller.rb → invalid_parameter.rb} +1 -1
- data/lib/dynamic_scaffold/form/item/base.rb +7 -0
- data/lib/dynamic_scaffold/version.rb +1 -1
- data/lib/dynamic_scaffold.rb +4 -4
- 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: 3510af104ad96b427d07fb37304e8ef027ac1304b44690eba6f4396765913dce
|
4
|
+
data.tar.gz: 10d59ca97b95307e52f470ed9b9b4d7d54baa33488f9ffdb07a9f0403ff5cf87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e54bbebed15b73ae7f90c3cfcf602e023bdcb6fc0a0aa7ea7594b12770c69db8132465180f51b7278d478e7d3ee91aeff5dcb341b63d8ef9724c5c5d5ac95962
|
7
|
+
data.tar.gz: 65c53fd1541da71f1635fd0741da54148377c9c6566a062e5c5cc759db3da9c1f2979dc59f5d6450b75faeb6130626a13e18dac8bf3c6161fc001892f0f5015d
|
@@ -1 +1 @@
|
|
1
|
-
<%= render 'dynamic_scaffold/bootstrap/form', method: :patch, url: dynamic_scaffold_path(:update) %>
|
1
|
+
<%= render 'dynamic_scaffold/bootstrap/form', method: :patch, url: dynamic_scaffold_path(:update, request_queries) %>
|
@@ -4,7 +4,8 @@
|
|
4
4
|
<% if !elem.label? && elem.type?(:hidden_field) %>
|
5
5
|
<%= elem.render(self, form) %>
|
6
6
|
<% else %>
|
7
|
-
|
7
|
+
<%- errors = elem.errors(@record) -%>
|
8
|
+
<div class="<%= class_names('form-group', 'has-error': errors.present?) %>">
|
8
9
|
<label><%= elem.proxy_field.label %></label>
|
9
10
|
<div class="clearfix">
|
10
11
|
<%- elem.insert(:before).each do |block| -%>
|
@@ -45,19 +46,19 @@
|
|
45
46
|
<%end%>
|
46
47
|
</div>
|
47
48
|
<% else %>
|
48
|
-
<%= elem.render(self, form, class_names('form-control', {'is-invalid':
|
49
|
+
<%= elem.render(self, form, class_names('form-control', {'is-invalid': errors.present?})) %>
|
49
50
|
<% end %>
|
50
51
|
<%- elem.insert(:after).each do |block| -%>
|
51
52
|
<%= self.instance_exec(@record, &block) %>
|
52
53
|
<%-end-%>
|
53
54
|
</div>
|
54
|
-
|
55
|
-
<ul class="dynamicScaffold-error-message">
|
56
|
-
|
55
|
+
<%- if errors.present? -%>
|
56
|
+
<ul class="list-unstyled dynamicScaffold-error-message">
|
57
|
+
<% errors.each do |err|%>
|
57
58
|
<li><%= dynamic_scaffold_icon :error %> <%= err %></li>
|
58
59
|
<%end%>
|
59
60
|
</ul>
|
60
|
-
|
61
|
+
<%- end -%>
|
61
62
|
<%if elem.notes?%>
|
62
63
|
<div class="form-text text-muted"><%= elem.render_notes(form.object, self) %></div>
|
63
64
|
<%end%>
|
@@ -66,8 +67,7 @@
|
|
66
67
|
<% end %>
|
67
68
|
<% end %>
|
68
69
|
<div>
|
69
|
-
|
70
|
-
<%= link_to dynamic_scaffold_path(:index, path_options), class: 'btn btn-outline-secondary btn-default' do%>
|
70
|
+
<%= link_to dynamic_scaffold_path(:index, request_queries), class: 'btn btn-outline-secondary btn-default back' do%>
|
71
71
|
<%= dynamic_scaffold_icon :back %> <%= t('dynamic_scaffold.button.back') %>
|
72
72
|
<%end%>
|
73
73
|
<button type="submit" class="btn btn-outline-warning btn-warning">
|
@@ -4,9 +4,9 @@
|
|
4
4
|
</div>
|
5
5
|
<%end%>
|
6
6
|
<input type="hidden" class="authenticity_param_name" value="<%= request_forgery_protection_token %>">
|
7
|
-
<%= form_with method: :patch, url: dynamic_scaffold_path(:sort) do%>
|
7
|
+
<%= form_with method: :patch, url: dynamic_scaffold_path(:sort, request_queries(dynamic_scaffold.list.page_param_name)), local: true do%>
|
8
8
|
<div class="dynamicScaffold-row">
|
9
|
-
<%= link_to dynamic_scaffold_path(:new), class: 'btn btn-outline-primary btn-primary btn-sm' do%>
|
9
|
+
<%= link_to dynamic_scaffold_path(:new, request_queries), class: 'btn btn-outline-primary btn-primary btn-sm' do%>
|
10
10
|
<%= dynamic_scaffold_icon(:add) %> <%= t('dynamic_scaffold.button.add') %>
|
11
11
|
<%end%>
|
12
12
|
</div>
|
@@ -41,8 +41,7 @@
|
|
41
41
|
<div class="resplist-footer clearfix">
|
42
42
|
<div class="float-right pull-right">
|
43
43
|
<div class="btn-group">
|
44
|
-
|
45
|
-
<%= link_to dynamic_scaffold_path(:edit, id: record[record.class.primary_key], page: params[page_param_name]), class: 'btn btn-primary btn-outline-primary btn-sm' do %>
|
44
|
+
<%= link_to dynamic_scaffold_path(:edit, request_queries.merge(id: record[record.class.primary_key])), class: 'btn btn-primary btn-outline-primary btn-sm edit' do %>
|
46
45
|
<%= dynamic_scaffold_icon(:edit) %> <%= t('dynamic_scaffold.button.edit') %>
|
47
46
|
<%end%>
|
48
47
|
</div>
|
@@ -67,7 +66,7 @@
|
|
67
66
|
<% end %>
|
68
67
|
<div class="btn-group">
|
69
68
|
<button
|
70
|
-
data-action="<%= dynamic_scaffold_path(:update, id: record[record.class.primary_key]) %>"
|
69
|
+
data-action="<%= dynamic_scaffold_path(:update, request_queries(dynamic_scaffold.list.page_param_name).merge(id: record[record.class.primary_key])) %>"
|
71
70
|
data-confirm-message="<%= t('dynamic_scaffold.message.destroy_confirm') %>"
|
72
71
|
class="btn btn-danger btn-sm dynamicScaffoldJs-destory"
|
73
72
|
>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render 'dynamic_scaffold/bootstrap/form', method: :post, url: dynamic_scaffold_path(:index) %>
|
1
|
+
<%= render 'dynamic_scaffold/bootstrap/form', method: :post, url: dynamic_scaffold_path(:index, request_queries) %>
|
data/config/locales/en.yml
CHANGED
@@ -16,4 +16,5 @@ en:
|
|
16
16
|
confirm_ok: 'OK'
|
17
17
|
alert:
|
18
18
|
destroy:
|
19
|
-
invalid_foreign_key: 'That item can not be deleted because it has associated record(s).'
|
19
|
+
invalid_foreign_key: 'That item can not be deleted because it has associated record(s).'
|
20
|
+
failed: 'That item can not be deleted'
|
data/config/locales/ja.yml
CHANGED
@@ -159,6 +159,10 @@ module DynamicScaffold
|
|
159
159
|
@pagination
|
160
160
|
end
|
161
161
|
|
162
|
+
def page_param_name
|
163
|
+
pagination ? pagination.param_name : nil
|
164
|
+
end
|
165
|
+
|
162
166
|
def sorter(params = nil)
|
163
167
|
@sorter = params if params
|
164
168
|
@sorter
|
@@ -267,7 +271,7 @@ module DynamicScaffold
|
|
267
271
|
:carrierwave_image then
|
268
272
|
item = Form::Item::CarrierWaveImage.new(@config, type, *args)
|
269
273
|
else
|
270
|
-
raise DynamicScaffold::Error::
|
274
|
+
raise DynamicScaffold::Error::InvalidParameter, "Unknown form item type #{type}"
|
271
275
|
end
|
272
276
|
@items << item
|
273
277
|
item
|
@@ -4,7 +4,7 @@ module DynamicScaffold
|
|
4
4
|
include ControllerUtilities
|
5
5
|
|
6
6
|
included do
|
7
|
-
helper_method :dynamic_scaffold_path, :dynamic_scaffold_icon, :dynamic_scaffold, :primary_key_value
|
7
|
+
helper_method :dynamic_scaffold_path, :dynamic_scaffold_icon, :dynamic_scaffold, :primary_key_value, :request_queries
|
8
8
|
attr_reader :dynamic_scaffold
|
9
9
|
before_action lambda {
|
10
10
|
@dynamic_scaffold = Config.new(self.class.dynamic_scaffold_model, self)
|
@@ -25,7 +25,7 @@ module DynamicScaffold
|
|
25
25
|
|
26
26
|
def index # rubocop:disable Metrics/AbcSize
|
27
27
|
@records = dynamic_scaffold.model.all
|
28
|
-
raise Error::
|
28
|
+
raise Error::InvalidOperation, 'You must return ActiveRecord::Relation' unless @records.is_a? ::ActiveRecord::Relation
|
29
29
|
|
30
30
|
if dynamic_scaffold.list.pagination
|
31
31
|
@records = @records
|
@@ -38,7 +38,7 @@ module DynamicScaffold
|
|
38
38
|
@records = @records.order(*dynamic_scaffold.list.order) unless dynamic_scaffold.list.order.empty?
|
39
39
|
|
40
40
|
@records = yield(@records) if block_given?
|
41
|
-
raise Error::
|
41
|
+
raise Error::InvalidOperation, 'You must return ActiveRecord::Relation' if @records.nil?
|
42
42
|
@records
|
43
43
|
end
|
44
44
|
|
@@ -63,7 +63,7 @@ module DynamicScaffold
|
|
63
63
|
dynamic_scaffold.model.transaction do
|
64
64
|
yield(@record) if block_given?
|
65
65
|
if @record.save
|
66
|
-
redirect_to dynamic_scaffold_path(:index)
|
66
|
+
redirect_to dynamic_scaffold_path(:index, request_queries)
|
67
67
|
else
|
68
68
|
render "#{params[:controller]}/new"
|
69
69
|
end
|
@@ -78,7 +78,7 @@ module DynamicScaffold
|
|
78
78
|
dynamic_scaffold.model.transaction do
|
79
79
|
yield(@record, prev_attribute) if block_given?
|
80
80
|
if @record.save
|
81
|
-
redirect_to dynamic_scaffold_path(:index)
|
81
|
+
redirect_to dynamic_scaffold_path(:index, request_queries)
|
82
82
|
else
|
83
83
|
render "#{params[:controller]}/edit"
|
84
84
|
end
|
@@ -94,8 +94,11 @@ module DynamicScaffold
|
|
94
94
|
end
|
95
95
|
rescue ::ActiveRecord::InvalidForeignKey => _error
|
96
96
|
flash[:dynamic_scaffold_danger] = I18n.t('dynamic_scaffold.alert.destroy.invalid_foreign_key')
|
97
|
+
rescue => error
|
98
|
+
flash[:dynamic_scaffold_danger] = I18n.t('dynamic_scaffold.alert.destroy.failed')
|
99
|
+
logger.error(error)
|
97
100
|
end
|
98
|
-
redirect_to dynamic_scaffold_path(:index)
|
101
|
+
redirect_to dynamic_scaffold_path(:index, request_queries)
|
99
102
|
end
|
100
103
|
|
101
104
|
def sort
|
@@ -109,7 +112,7 @@ module DynamicScaffold
|
|
109
112
|
rec.save
|
110
113
|
end
|
111
114
|
end
|
112
|
-
redirect_to dynamic_scaffold_path(:index)
|
115
|
+
redirect_to dynamic_scaffold_path(:index, request_queries)
|
113
116
|
end
|
114
117
|
end
|
115
118
|
end
|
@@ -39,7 +39,7 @@ module DynamicScaffold
|
|
39
39
|
.permit(*permitting)
|
40
40
|
|
41
41
|
if dynamic_scaffold.scope && !valid_for_scope?(values)
|
42
|
-
raise DynamicScaffold::Error::
|
42
|
+
raise DynamicScaffold::Error::InvalidOperation, "You can update only to #{scope_params} on this scope"
|
43
43
|
end
|
44
44
|
|
45
45
|
values
|
@@ -110,5 +110,9 @@ module DynamicScaffold
|
|
110
110
|
value = dynamic_scaffold.model.maximum(attr)
|
111
111
|
record[attr] = value ? value + 1 : 0
|
112
112
|
end
|
113
|
+
|
114
|
+
def request_queries(*except)
|
115
|
+
request.query_parameters.to_hash.delete_if{|k, v| except.select(&:present?).include?(k.to_sym)}
|
116
|
+
end
|
113
117
|
end
|
114
118
|
end
|
@@ -104,6 +104,13 @@ module DynamicScaffold
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
def errors(record)
|
108
|
+
msg = record.errors.full_messages_for(proxy_field.name)
|
109
|
+
rel = @config.model.reflect_on_all_associations.find{|r| r.foreign_key.to_s == name.to_s}
|
110
|
+
msg.concat(record.errors.full_messages_for(rel.name)) if rel.present?
|
111
|
+
msg
|
112
|
+
end
|
113
|
+
|
107
114
|
protected
|
108
115
|
|
109
116
|
def build_html_attributes(classnames)
|
data/lib/dynamic_scaffold.rb
CHANGED
@@ -7,10 +7,10 @@ require 'dynamic_scaffold/config'
|
|
7
7
|
|
8
8
|
module DynamicScaffold
|
9
9
|
module Error
|
10
|
-
autoload :Base,
|
11
|
-
autoload :InvalidIcon,
|
12
|
-
autoload :
|
13
|
-
autoload :
|
10
|
+
autoload :Base, 'dynamic_scaffold/error/base'
|
11
|
+
autoload :InvalidIcon, 'dynamic_scaffold/error/invalid_icon'
|
12
|
+
autoload :InvalidParameter, 'dynamic_scaffold/error/invalid_parameter'
|
13
|
+
autoload :InvalidOperation, 'dynamic_scaffold/error/invalid_operation'
|
14
14
|
end
|
15
15
|
|
16
16
|
module List
|
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: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masamoto Miyata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: classnames-rails-view
|
@@ -255,9 +255,9 @@ files:
|
|
255
255
|
- lib/dynamic_scaffold/controller_utilities.rb
|
256
256
|
- lib/dynamic_scaffold/engine.rb
|
257
257
|
- lib/dynamic_scaffold/error/base.rb
|
258
|
-
- lib/dynamic_scaffold/error/config.rb
|
259
|
-
- lib/dynamic_scaffold/error/controller.rb
|
260
258
|
- lib/dynamic_scaffold/error/invalid_icon.rb
|
259
|
+
- lib/dynamic_scaffold/error/invalid_operation.rb
|
260
|
+
- lib/dynamic_scaffold/error/invalid_parameter.rb
|
261
261
|
- lib/dynamic_scaffold/form/item/base.rb
|
262
262
|
- lib/dynamic_scaffold/form/item/block.rb
|
263
263
|
- lib/dynamic_scaffold/form/item/carrier_wave_image.rb
|