dynamic_scaffold 1.4.0 → 1.6.0

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