dynamic_scaffold 1.4.2 → 1.7.1

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: 9f6b62c290ce99a5fa514f83e0998cef5d7e85af27e3bba74414b759d2031934
4
- data.tar.gz: 6109815b67cbc151a20534021b9c8b8381262bb972cde348665fa0fc66f0bf7d
3
+ metadata.gz: a42e42644e59b8b8f43dfe73eed5089f76f471c20bbd788c44c2e3eb0ba68ea3
4
+ data.tar.gz: aaa19ee4e6ff49e27e12c1383f7ec3233ec3dcb436eca830b52c4fe5b2901d85
5
5
  SHA512:
6
- metadata.gz: a5bb524f13d06670c74cee5516b63b902880485b3a60c56f97dba78bcd83e9b844c58bf47bd2663e611ed7d53049c34e14a66dfa80363ec0060be074ae92cbdd
7
- data.tar.gz: '01904df0fd4fccfeb9d226b9d5f7fbeb79f5c5b427b5c0a2d8d6c14636668dc0c0bbfd2d9f5d7f854b2dc8cd146cbc5d77e3a4584d4e1cd4735d1dd0f0772859'
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
- <%= flash[:dynamic_scaffold_danger] %>
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.each do |record|%>
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
@@ -1,3 +1,3 @@
1
1
  module DynamicScaffold
2
- VERSION = '1.4.2'.freeze
2
+ VERSION = '1.7.1'.freeze
3
3
  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.2
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: 2020-02-04 00:00:00.000000000 Z
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.0'
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.0'
60
+ version: '6.1'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: capybara
63
63
  requirement: !ruby/object:Gem::Requirement