active_scaffold 3.0.22 → 3.0.23
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.
- data/frontends/default/stylesheets/stylesheet.css +5 -1
- data/frontends/default/views/_horizontal_subform_header.html.erb +3 -2
- data/frontends/default/views/_horizontal_subform_header.html.erb~ +10 -0
- data/frontends/default/views/_horizontal_subform_record.html.erb +1 -1
- data/frontends/default/views/_horizontal_subform_record.html.erb~ +38 -0
- data/lib/active_scaffold/bridges/record_select/lib/record_select_bridge.rb +8 -3
- data/lib/active_scaffold/bridges/record_select/lib/record_select_bridge.rb~ +11 -5
- data/lib/active_scaffold/helpers/association_helpers.rb +3 -1
- data/lib/active_scaffold/version.rb +1 -1
- metadata +6 -4
@@ -260,6 +260,10 @@ background: #333 url(../../../images/active_scaffold/default/indicator-small.gif
|
|
260
260
|
margin-left: 5px;
|
261
261
|
}
|
262
262
|
|
263
|
+
.active-scaffold th.hidden, .active-scaffold td.hidden {
|
264
|
+
display: none;
|
265
|
+
}
|
266
|
+
|
263
267
|
/* Table :: Record Rows
|
264
268
|
============================= */
|
265
269
|
|
@@ -1086,4 +1090,4 @@ padding: 5px 2px 5px 5px;
|
|
1086
1090
|
|
1087
1091
|
.as_touch tr.record td {
|
1088
1092
|
padding: 5px 10px;
|
1089
|
-
}
|
1093
|
+
}
|
@@ -2,9 +2,10 @@
|
|
2
2
|
<tr>
|
3
3
|
<%
|
4
4
|
active_scaffold_config_for(@record.class).subform.columns.each :for => @record.class, :flatten => true do |column|
|
5
|
-
|
5
|
+
hidden = column_renders_as(column) == :hidden
|
6
|
+
next unless in_subform?(column, parent_record)
|
6
7
|
-%>
|
7
|
-
<th
|
8
|
+
<th class="<%= "#{'required' if column.required?} #{'hidden' if hidden}" %>"><label><%= column.label unless hidden %></label></th>
|
8
9
|
<% end -%>
|
9
10
|
</tr>
|
10
11
|
</thead>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<thead>
|
2
|
+
<tr>
|
3
|
+
<%
|
4
|
+
active_scaffold_config_for(@record.class).subform.columns.each :for => @record.class, :flatten => true do |column|
|
5
|
+
next unless in_subform?(column, parent_record) and column_renders_as(column) != :hidden
|
6
|
+
-%>
|
7
|
+
<th<%= ' class="required"' if column.required? %>><label><%= column.label %></label></th>
|
8
|
+
<% end -%>
|
9
|
+
</tr>
|
10
|
+
</thead>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
column = column.clone
|
16
16
|
column.form_ui ||= :select if column.association
|
17
17
|
-%>
|
18
|
-
<td
|
18
|
+
<td<%= ' class="hidden"'.html_safe if column_renders_as(column) == :hidden %>>
|
19
19
|
<% unless readonly and not @record.new_record? or not @record.authorized_for?(:crud_type => crud_type, :column => column.name) -%>
|
20
20
|
<%= render :partial => form_partial_for_column(column), :locals => { :column => column, :scope => scope } -%>
|
21
21
|
<% else -%>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<%
|
2
|
+
record_column = column
|
3
|
+
readonly = (@record.readonly? or not @record.authorized_for?(:crud_type => :update))
|
4
|
+
crud_type = @record.new_record? ? :create : (readonly ? :read : :update)
|
5
|
+
show_actions = false
|
6
|
+
config = active_scaffold_config_for(@record.class)
|
7
|
+
options = active_scaffold_input_options(config.columns[@record.class.primary_key], scope)
|
8
|
+
tr_id = "association-#{options[:id]}"
|
9
|
+
%>
|
10
|
+
<tr id="<%= tr_id %>" class="association-record <%= 'association-record-new' if @record.new_record? -%> <%= 'locked' if locked -%>">
|
11
|
+
<% config.subform.columns.each :for => @record.class, :crud_type => crud_type, :flatten => true do |column| %>
|
12
|
+
<%
|
13
|
+
next unless in_subform?(column, parent_record)
|
14
|
+
show_actions = true
|
15
|
+
column = column.clone
|
16
|
+
column.form_ui ||= :select if column.association
|
17
|
+
-%>
|
18
|
+
<td class="<%= 'hidden' if column_renders_as(column) == :hidden %>">
|
19
|
+
<% unless readonly and not @record.new_record? or not @record.authorized_for?(:crud_type => crud_type, :column => column.name) -%>
|
20
|
+
<%= render :partial => form_partial_for_column(column), :locals => { :column => column, :scope => scope } -%>
|
21
|
+
<% else -%>
|
22
|
+
<p><%= get_column_value(@record, column) -%></p>
|
23
|
+
<% end -%>
|
24
|
+
</td>
|
25
|
+
<% end -%>
|
26
|
+
<% if show_actions -%>
|
27
|
+
<td class="actions">
|
28
|
+
<% if record_column.plural_association? and (@record.authorized_for?(:crud_type => :delete) or not [:destroy, :delete_all].include?(record_column.association.options[:dependent])) %>
|
29
|
+
<% destroy_id = "#{options[:id]}-destroy" %>
|
30
|
+
<%= link_to as_(:remove), '#', :class => 'destroy', :id => destroy_id , :onclick => "ActiveScaffold.delete_subform_record(\"#{tr_id}\"); return false;", :style=> "display: none;" %>
|
31
|
+
<%= javascript_tag("ActiveScaffold.show('#{destroy_id}');") if !locked %>
|
32
|
+
<% end %>
|
33
|
+
<% unless @record.new_record? %>
|
34
|
+
<input type="hidden" name="<%= options[:name] -%>" id="<%= options[:id] -%>" value="<%= @record.id -%>" />
|
35
|
+
<% end -%>
|
36
|
+
</td>
|
37
|
+
<% end -%>
|
38
|
+
</tr>
|
@@ -42,8 +42,11 @@ module ActiveScaffold
|
|
42
42
|
params.merge!({column.association.primary_key_name => ''})
|
43
43
|
end
|
44
44
|
|
45
|
-
record_select_options =
|
46
|
-
|
45
|
+
record_select_options = active_scaffold_input_text_options(
|
46
|
+
:controller => remote_controller,
|
47
|
+
:id => options[:id],
|
48
|
+
:class => options[:class]
|
49
|
+
)
|
47
50
|
record_select_options.merge!(column.options)
|
48
51
|
if options['data-update_url']
|
49
52
|
record_select_options[:onchange] = %|function(id, label) {
|
@@ -51,11 +54,13 @@ module ActiveScaffold
|
|
51
54
|
}|
|
52
55
|
end
|
53
56
|
|
54
|
-
if multiple
|
57
|
+
html = if multiple
|
55
58
|
record_multi_select_field(options[:name], value || [], record_select_options)
|
56
59
|
else
|
57
60
|
record_select_field(options[:name], value || column.association.klass.new, record_select_options)
|
58
61
|
end
|
62
|
+
html = self.class.field_error_proc.call(html, self) if @record.errors[column.name].any?
|
63
|
+
html
|
59
64
|
end
|
60
65
|
end
|
61
66
|
|
@@ -42,9 +42,17 @@ module ActiveScaffold
|
|
42
42
|
params.merge!({column.association.primary_key_name => ''})
|
43
43
|
end
|
44
44
|
|
45
|
-
record_select_options =
|
46
|
-
|
45
|
+
record_select_options = active_scaffold_input_text_options(
|
46
|
+
:controller => remote_controller,
|
47
|
+
:id => options[:id],
|
48
|
+
:class => options[:class]
|
49
|
+
)
|
47
50
|
record_select_options.merge!(column.options)
|
51
|
+
if options['data-update_url']
|
52
|
+
record_select_options[:onchange] = %|function(id, label) {
|
53
|
+
ActiveScaffold.update_column($("##{options[:id]}"), "#{options['data-update_url']}", #{options['data-update_send_form'].to_json}, "#{options[:id]}", id);
|
54
|
+
}|
|
55
|
+
end
|
48
56
|
|
49
57
|
if multiple
|
50
58
|
record_multi_select_field(options[:name], value || [], record_select_options)
|
@@ -63,7 +71,7 @@ module ActiveScaffold
|
|
63
71
|
def field_search_record_select_value(column)
|
64
72
|
begin
|
65
73
|
value = field_search_params[column.name]
|
66
|
-
|
74
|
+
unless value.blank?
|
67
75
|
if column.options[:multiple]
|
68
76
|
column.association.klass.find value.collect!(&:to_i)
|
69
77
|
else
|
@@ -74,8 +82,6 @@ module ActiveScaffold
|
|
74
82
|
logger.error Time.now.to_s + "Sorry, we are not that smart yet. Attempted to restore search values to search fields but instead got -- #{e.inspect} -- on the ActiveScaffold column = :#{column.name} in #{@controller.class}"
|
75
83
|
raise e
|
76
84
|
end
|
77
|
-
|
78
|
-
active_scaffold_record_select(column, options, value, column.options[:multiple])
|
79
85
|
end
|
80
86
|
end
|
81
87
|
end
|
@@ -3,7 +3,9 @@ module ActiveScaffold
|
|
3
3
|
module AssociationHelpers
|
4
4
|
# Provides a way to honor the :conditions on an association while searching the association's klass
|
5
5
|
def association_options_find(association, conditions = nil)
|
6
|
-
association.klass.where(conditions).where(association.options[:conditions])
|
6
|
+
relation = association.klass.where(conditions).where(association.options[:conditions])
|
7
|
+
relation = relation.includes(association.options[:include]) if association.options[:include]
|
8
|
+
relation.all
|
7
9
|
end
|
8
10
|
|
9
11
|
def association_options_count(association, conditions = nil)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_scaffold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 41
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 23
|
10
|
+
version: 3.0.23
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Many, see README
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-09-05 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -195,7 +195,9 @@ files:
|
|
195
195
|
- frontends/default/views/_search_attribute.html.erb
|
196
196
|
- frontends/default/views/action_confirmation.html.erb
|
197
197
|
- frontends/default/views/_base_form.html.erb~
|
198
|
+
- frontends/default/views/_horizontal_subform_header.html.erb~
|
198
199
|
- frontends/default/views/_form_association_footer.html.erb~
|
200
|
+
- frontends/default/views/_horizontal_subform_record.html.erb~
|
199
201
|
- lib/active_scaffold.rb
|
200
202
|
- lib/active_scaffold_env.rb
|
201
203
|
- lib/active_scaffold/actions/common_search.rb
|