dynamic_scaffold 1.4.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76369253caa437f8e867900e860b295055e087c9a305215239ef1d70e40e22b8
4
- data.tar.gz: 957625148912b7291c7ad8fe0af232c291eb42a369ac32b6c2d54f5c1c4e8170
3
+ metadata.gz: c38dbab86d238886a3fc797a81804715a0b4299473cda34cbee0878f6c17500e
4
+ data.tar.gz: 9a2c173022936a56a7d6af715d60c71accadf070c9d34698af8a2512c841ee07
5
5
  SHA512:
6
- metadata.gz: d544f44c76007716567503200dfb66fa33311ff73aad7db0482a70746b4889f54bb3c016ac9ed04d850fa881e32f8afd098b9d2f3c5b3fb182a67d2acec556b8
7
- data.tar.gz: 2dbd1c064951d4217cca523a93be7575a4b39f159d2d057151dfbca9dbb5a33a5bd9bebc2749588db8d69e0be2d03045905a53144e20b10a1d9573afc1257bc2
6
+ metadata.gz: 93cc76ad613015794c0cdbb260e0d2e94c5246997bbadffa9d89c18839224439f7101ab6ccafa42b1e740aa57288888db93a8fa87ff1ea6430404606b773c537
7
+ data.tar.gz: 842c32cce00a22e526bb1db3f9adc5f017ec188e5b8fd2ec0a91c693e999fc5e46de3272b80884cad0b60c27138afe31e17faeb89477540f905cabcd8ed77a53
@@ -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 %>">
@@ -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,13 +77,28 @@ module DynamicScaffold
77
77
  end
78
78
  end
79
79
 
80
- def update
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
- prev_attribute = @record.attributes
83
+ datetime_select_keys = []
84
+ prev_values = values.keys.map do |k|
85
+ # handle paramters like `start_time(1i)`
86
+ match = k.match(/(.*?)\(\d+i\)/)
87
+ if match
88
+ next if datetime_select_keys.include?(match[1])
89
+
90
+ datetime_select_keys << k = match[1]
91
+ end
92
+
93
+ # globalize
94
+ next [:translations_attributes, @record.translations] if k == 'translations_attributes'
95
+
96
+ [k, @record.public_send(k)]
97
+ end.compact.to_h.with_indifferent_access
98
+
84
99
  @record.attributes = values
85
100
  dynamic_scaffold.model.transaction do
86
- yield(@record, prev_attribute) if block_given?
101
+ yield(@record, prev_values) if block_given?
87
102
  if @record.save
88
103
  redirect_to dynamic_scaffold_path(:index, request_queries)
89
104
  else
@@ -92,7 +107,7 @@ module DynamicScaffold
92
107
  end
93
108
  end
94
109
 
95
- def destroy
110
+ def destroy # rubocop:disable Metrics/AbcSize
96
111
  # `Destroy` also does not support multiple primary keys too.
97
112
  record = find_record(dynamic_scaffold.model.primary_key => params['id'])
98
113
  begin
@@ -107,6 +122,9 @@ module DynamicScaffold
107
122
  flash[:dynamic_scaffold_danger] = I18n.t('dynamic_scaffold.alert.destroy.failed')
108
123
  logger.error(e)
109
124
  end
125
+
126
+ flash[:dynamic_scaffold_danger] = record.errors[:base].join('<br>') if record.errors[:base].any?
127
+
110
128
  redirect_to dynamic_scaffold_path(:index, request_queries)
111
129
  end
112
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)
@@ -1,3 +1,3 @@
1
1
  module DynamicScaffold
2
- VERSION = '1.4.0'.freeze
2
+ VERSION = '1.6.0'.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.0
4
+ version: 1.6.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: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: classnames-rails-view