active_scaffold 3.2.20 → 3.3.0.rc
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +19 -13
- data/README +66 -0
- data/app/assets/javascripts/jquery/active_scaffold.js +156 -113
- data/app/assets/javascripts/jquery/active_scaffold_chosen.js +11 -0
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +0 -1
- data/app/assets/javascripts/jquery/jquery.editinplace.js +132 -128
- data/app/assets/javascripts/prototype/active_scaffold.js +68 -25
- data/{frontends/default/views/_horizontal_subform_footer.html.erb → app/assets/javascripts/prototype/active_scaffold_chosen.js} +0 -0
- data/app/assets/stylesheets/active_scaffold_colors.css.scss +8 -1
- data/app/assets/stylesheets/active_scaffold_layout.css +14 -8
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_add_existing_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_base_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_create_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_create_form_on_list.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_field_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_association.html.erb +8 -3
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_association_footer.html.erb +5 -4
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +85 -0
- data/app/views/active_scaffold_overrides/_form_attribute.html.erb +23 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_hidden_attribute.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_messages.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +12 -0
- data/app/views/active_scaffold_overrides/_horizontal_subform_footer.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_horizontal_subform_header.html.erb +3 -2
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_human_conditions.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list.html.erb +35 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_calculations.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_column_headings.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list_header.html.erb +8 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_inline_adapter.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_messages.html.erb +4 -4
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination_links.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_list_record.html.erb +30 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_with_header.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_messages.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +1 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_render_field.js.erb +9 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_row.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_search_attribute.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_show.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_show_columns.html.erb +0 -0
- data/app/views/active_scaffold_overrides/_update_actions.html.erb +9 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_calculations.js.erb +0 -0
- data/app/views/active_scaffold_overrides/_update_column.js.erb +16 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/_update_messages.js.erb +0 -0
- data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +8 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/action_confirmation.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/add_existing.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/add_existing_form.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/create.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/delete.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/destroy.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/edit_associated.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/field_search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/form_messages.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/list.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_action_update.js.erb +3 -3
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_create.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_mark.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/on_update.js.erb +4 -4
- data/{frontends/default/views → app/views/active_scaffold_overrides}/render_field.js.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/row.js.erb +1 -1
- data/{frontends/default/views → app/views/active_scaffold_overrides}/search.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/show.html.erb +0 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/update.html.erb +1 -1
- data/app/views/active_scaffold_overrides/update_column.js.erb +26 -0
- data/{frontends/default/views → app/views/active_scaffold_overrides}/update_row.js.erb +0 -0
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/hu.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/lib/active_scaffold.rb +14 -26
- data/lib/active_scaffold/actions/core.rb +14 -11
- data/lib/active_scaffold/actions/create.rb +3 -3
- data/lib/active_scaffold/actions/delete.rb +3 -0
- data/lib/active_scaffold/actions/list.rb +9 -6
- data/lib/active_scaffold/actions/mark.rb +1 -1
- data/lib/active_scaffold/actions/nested.rb +8 -6
- data/lib/active_scaffold/actions/show.rb +6 -1
- data/lib/active_scaffold/actions/update.rb +39 -19
- data/lib/active_scaffold/active_record_permissions.rb +29 -12
- data/lib/active_scaffold/attribute_params.rb +14 -7
- data/lib/active_scaffold/bridges/calendar_date_select.rb +1 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +1 -2
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/chosen.rb +14 -0
- data/lib/active_scaffold/bridges/chosen/helpers.rb +48 -0
- data/lib/active_scaffold/bridges/date_picker/helper.rb +7 -6
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/file_column.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +2 -2
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +4 -4
- data/lib/active_scaffold/bridges/paperclip.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +1 -1
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -1
- data/lib/active_scaffold/config/core.rb +9 -2
- data/lib/active_scaffold/config/list.rb +9 -13
- data/lib/active_scaffold/config/nested.rb +11 -2
- data/lib/active_scaffold/data_structures/action_columns.rb +19 -5
- data/lib/active_scaffold/data_structures/action_link.rb +9 -2
- data/lib/active_scaffold/data_structures/action_links.rb +5 -36
- data/lib/active_scaffold/data_structures/column.rb +21 -21
- data/lib/active_scaffold/data_structures/nested_info.rb +31 -44
- data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -0
- data/lib/active_scaffold/extensions/action_view_rendering.rb +30 -36
- data/lib/active_scaffold/extensions/reverse_associations.rb +10 -6
- data/lib/active_scaffold/extensions/routing_mapper.rb +6 -5
- data/lib/active_scaffold/extensions/unsaved_associated.rb +1 -1
- data/lib/active_scaffold/finder.rb +18 -10
- data/lib/active_scaffold/helpers/association_helpers.rb +21 -2
- data/lib/active_scaffold/helpers/controller_helpers.rb +14 -16
- data/lib/active_scaffold/helpers/form_column_helpers.rb +161 -21
- data/lib/active_scaffold/helpers/id_helpers.rb +7 -7
- data/lib/active_scaffold/helpers/list_column_helpers.rb +42 -92
- data/lib/active_scaffold/helpers/search_column_helpers.rb +10 -3
- data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -9
- data/lib/active_scaffold/helpers/view_helpers.rb +278 -78
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/generators/active_scaffold_controller/templates/controller.rb +1 -1
- data/test/bridges/paperclip_test.rb +2 -2
- data/vendor/assets/javascripts/jquery-ui-timepicker-addon.js +1882 -1276
- metadata +79 -80
- data/README.md +0 -67
- data/frontends/default/views/_action_group.html.erb +0 -24
- data/frontends/default/views/_form_attribute.html.erb +0 -23
- data/frontends/default/views/_horizontal_subform.html.erb +0 -22
- data/frontends/default/views/_horizontal_subform_record.html.erb +0 -43
- data/frontends/default/views/_list.html.erb +0 -18
- data/frontends/default/views/_list_actions.html.erb +0 -15
- data/frontends/default/views/_list_header.html.erb +0 -10
- data/frontends/default/views/_list_record.html.erb +0 -13
- data/frontends/default/views/_list_record_columns.html.erb +0 -8
- data/frontends/default/views/_refresh_list.js.erb +0 -1
- data/frontends/default/views/_update_actions.html.erb +0 -9
- data/frontends/default/views/_vertical_subform.html.erb +0 -12
- data/frontends/default/views/_vertical_subform_record.html.erb +0 -43
- data/frontends/default/views/refresh_list.js.erb +0 -2
- data/frontends/default/views/update_column.js.erb +0 -15
- data/lib/active_scaffold/extensions/active_record_offset.rb +0 -12
- data/lib/active_scaffold/extensions/nil_id_in_url_params.rb +0 -7
File without changes
|
@@ -48,6 +48,7 @@ $nested_bg: #DAFFCD !default;
|
|
48
48
|
$nested_border_color: #7FCF00 !default;
|
49
49
|
$nested_footer_color: #444 !default;
|
50
50
|
$nested_column_bg: #ECFFE7 !default;
|
51
|
+
$nested_column_even_bg: #fff !default;
|
51
52
|
$nested_column_border_color: $column_border_color !default;
|
52
53
|
|
53
54
|
$second_nested_bg: #FFFFBB !default;
|
@@ -228,10 +229,13 @@ border-color: $nested_border_color;
|
|
228
229
|
color: $nested_footer_color;
|
229
230
|
}
|
230
231
|
|
231
|
-
.active-scaffold .active-scaffold
|
232
|
+
.active-scaffold .active-scaffold tr.record {
|
232
233
|
background-color: $nested_column_bg;
|
233
234
|
border-color: $nested_column_border_color;
|
234
235
|
}
|
236
|
+
.active-scaffold .active-scaffold tr.even-record {
|
237
|
+
background-color: $nested_column_even_bg;
|
238
|
+
}
|
235
239
|
|
236
240
|
.active-scaffold .active-scaffold td.inline-adapter-cell {
|
237
241
|
background-color: $second_nested_bg;
|
@@ -335,6 +339,9 @@ color: $placeholder_color;
|
|
335
339
|
border-color: $input_border_color;
|
336
340
|
}
|
337
341
|
|
342
|
+
.active-scaffold input:invalid,
|
343
|
+
.active-scaffold textarea:invalid,
|
344
|
+
.active-scaffold select:invalid,
|
338
345
|
.active-scaffold .fieldWithErrors input,
|
339
346
|
.active-scaffold .field_with_errors input,
|
340
347
|
.active-scaffold .fieldWithErrors textarea,
|
@@ -139,13 +139,6 @@ background-color: transparent;
|
|
139
139
|
cursor: default;
|
140
140
|
}
|
141
141
|
|
142
|
-
.active-scaffold-header div.actions {
|
143
|
-
position: absolute;
|
144
|
-
right: 5px;
|
145
|
-
top: 5px;
|
146
|
-
text-align: right;
|
147
|
-
}
|
148
|
-
|
149
142
|
/* Table :: Column Headers
|
150
143
|
============================= */
|
151
144
|
|
@@ -264,6 +257,11 @@ line-height: 200%;
|
|
264
257
|
display: none;
|
265
258
|
width: 150px;
|
266
259
|
right: 0px;
|
260
|
+
z-index: 2;
|
261
|
+
}
|
262
|
+
.active-scaffold .actions .action_group.dyn ul {
|
263
|
+
width: auto;
|
264
|
+
display: block;
|
267
265
|
}
|
268
266
|
|
269
267
|
.active-scaffold .actions .action_group ul ul {
|
@@ -279,7 +277,7 @@ border-top: 1px dashed;
|
|
279
277
|
display: block;
|
280
278
|
position: relative;
|
281
279
|
width: auto;
|
282
|
-
|
280
|
+
text-align: left;
|
283
281
|
}
|
284
282
|
|
285
283
|
.active-scaffold .actions .action_group ul li div {
|
@@ -296,6 +294,9 @@ z-index: 2;
|
|
296
294
|
background-position: 5px 50%;
|
297
295
|
background-repeat: no-repeat;
|
298
296
|
}
|
297
|
+
.active-scaffold .actions .action_group.dyn ul li a {
|
298
|
+
padding-left: 5px;
|
299
|
+
}
|
299
300
|
|
300
301
|
.active-scaffold .actions .action_group ul li.top {
|
301
302
|
border-top-width: 0px;
|
@@ -787,6 +788,11 @@ background: none;
|
|
787
788
|
display: none;
|
788
789
|
}
|
789
790
|
|
791
|
+
.active-scaffold .horizontal-sub-form .associated-record dl {
|
792
|
+
float: left;
|
793
|
+
margin-right: 5px;
|
794
|
+
}
|
795
|
+
|
790
796
|
.active-scaffold .sub-form .checkbox-list {
|
791
797
|
padding: 0 2px 2px 2px;
|
792
798
|
border: solid 1px;
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_add_existing_form.html.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_create_form_on_list.html.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_association.html.erb
RENAMED
@@ -5,13 +5,18 @@ associated = associated.sort_by {|r| r.new_record? ? 99999999999 : r.id} unless
|
|
5
5
|
if show_blank_record = column.show_blank_record?(associated)
|
6
6
|
associated << build_associated(column, parent_record)
|
7
7
|
end
|
8
|
+
@disable_required_for_new = show_blank_record unless (column.singular_association? && column.required?)
|
8
9
|
subform_div_id = "#{sub_form_id({:association => column.name, :id => parent_record.id || 99999999999})}-div"
|
9
10
|
-%>
|
10
11
|
<h5><%= column.label -%></h5>
|
11
12
|
<div id ="<%= subform_div_id %>" <%= 'style="display: none;"'.html_safe if column.collapsed -%>>
|
12
13
|
<%# HACK to be able to delete all associated records %>
|
13
|
-
<%= hidden_field_tag "#{active_scaffold_input_options(column, scope)[:name]}[0]", '' if column.plural_association? %>
|
14
|
-
<%= render :partial => subform_partial_for_column(column), :locals => {:column => column, :parent_record => parent_record, :associated => associated, :show_blank_record => show_blank_record, :scope => scope} %>
|
14
|
+
<%= hidden_field_tag "#{active_scaffold_input_options(column, scope)[:name]}[0]", '' if column.plural_association? %>
|
15
|
+
<%= render :partial => subform_partial_for_column(column), :locals => {:column => column, :parent_record => parent_record, :associated => associated, :show_blank_record => show_blank_record, :scope => scope} %>
|
16
|
+
<%= render :partial => 'form_association_footer', :locals => {:parent_record => parent_record, :column => column, :associated => associated, :scope => scope} -%>
|
15
17
|
</div>
|
16
18
|
<%= link_to_visibility_toggle(subform_div_id, {:default_visible => !column.collapsed}) -%>
|
17
|
-
<%
|
19
|
+
<%
|
20
|
+
@record = parent_record
|
21
|
+
@disable_required_for_new = nil
|
22
|
+
-%>
|
@@ -34,12 +34,13 @@ add_new_url = params_for(:action => 'edit_associated', :child_association => col
|
|
34
34
|
|
35
35
|
<% if show_add_existing -%>
|
36
36
|
<% if remote_controller and remote_controller.respond_to? :uses_record_select? and remote_controller.uses_record_select? -%>
|
37
|
-
<%= link_to_record_select as_(:add_existing), remote_controller.controller_path, :onselect => "ActiveScaffold.record_select_onselect(#{
|
37
|
+
<%= link_to_record_select as_(:add_existing), remote_controller.controller_path, :onselect => "ActiveScaffold.record_select_onselect(#{edit_associated_url.to_json}, #{active_scaffold_id.to_json}, id);" -%>
|
38
38
|
<% else -%>
|
39
|
-
<% select_options =
|
40
|
-
add_existing_id = "#{sub_form_id(:association => column.name)}-add-existing"
|
39
|
+
<% select_options = options_from_collection_for_select(sorted_association_options_find(column.association), :id, :to_label)
|
40
|
+
add_existing_id = "#{sub_form_id(:association => column.name)}-add-existing"
|
41
|
+
add_existing_label = column.plural_association? ? :add_existing : :replace_existing %>
|
41
42
|
<%= select_tag 'associated_id', '<option value="">'.html_safe + as_(:_select_) + '</option>'.html_safe + select_options %>
|
42
|
-
<%= link_to as_(
|
43
|
+
<%= link_to as_(add_existing_label), edit_associated_url, :id => add_existing_id, :remote => true, :class=> "as_#{add_existing_label}", :style => "display: none;" %>
|
43
44
|
<%= javascript_tag("ActiveScaffold.show('#{add_existing_id}');") %>
|
44
45
|
<% end -%>
|
45
46
|
<% end -%>
|
@@ -0,0 +1,85 @@
|
|
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
|
+
if config.subform.layout == :vertical
|
11
|
+
record_tag ||= :div
|
12
|
+
row_tag ||= :ol
|
13
|
+
column_tag ||= :li
|
14
|
+
error_tag ||= :div
|
15
|
+
error_inner_tag ||= nil
|
16
|
+
default_col_class = ['form-element']
|
17
|
+
flatten = true unless local_assigns.has_key? :flatten
|
18
|
+
else
|
19
|
+
record_tag ||= :tbody
|
20
|
+
row_tag ||= :tr
|
21
|
+
column_tag ||= :td
|
22
|
+
error_tag ||= :tr
|
23
|
+
error_inner_tag ||= :td
|
24
|
+
default_col_class = []
|
25
|
+
flatten ||= false
|
26
|
+
end
|
27
|
+
index ||= nil
|
28
|
+
|
29
|
+
columns_length = 0
|
30
|
+
columns_groups = []
|
31
|
+
-%>
|
32
|
+
<<%= record_tag %> class="sub-form-record">
|
33
|
+
<% unless @record.errors.empty? -%>
|
34
|
+
<%= content_tag error_tag, :class => "association-record-errors", :id => element_messages_id(:action => @record.class.name.underscore, :id => "#{parent_record.id}-#{index}") do %>
|
35
|
+
<% errors = active_scaffold_error_messages_for(:record, :object_name => @record.class.model_name.human.downcase) %>
|
36
|
+
<%= error_inner_tag ? content_tag(error_inner_tag, errors, :colspan => (active_scaffold_config_for(@record.class).subform.columns.length + 1 if error_inner_tag == :td)) : errors %>
|
37
|
+
<% end %>
|
38
|
+
<% end %>
|
39
|
+
<%= content_tag row_tag, :id => tr_id, :class => "association-record#{' association-record-new' if @record.new_record?}#{' locked' if locked}" do %>
|
40
|
+
<% config.subform.columns.each :for => @record.class, :crud_type => :read, :flatten => flatten do |column| %>
|
41
|
+
<%
|
42
|
+
if column.is_a? ActiveScaffold::DataStructures::ActionColumns
|
43
|
+
columns_groups << column
|
44
|
+
next
|
45
|
+
end
|
46
|
+
|
47
|
+
next unless in_subform?(column, parent_record)
|
48
|
+
columns_length += 1
|
49
|
+
show_actions = true
|
50
|
+
column = column.clone
|
51
|
+
column.form_ui ||= :select if column.association
|
52
|
+
|
53
|
+
col_class = default_col_class.clone
|
54
|
+
col_class << 'required' if column.required?
|
55
|
+
col_class << column.css_class unless column.css_class.nil? || column.css_class.is_a?(Proc)
|
56
|
+
col_class << 'hidden' if column_renders_as(column) == :hidden
|
57
|
+
-%>
|
58
|
+
<%= content_tag column_tag, :class => col_class.join(' ') do %>
|
59
|
+
<%= active_scaffold_render_subform_column(column, scope, crud_type, readonly) %>
|
60
|
+
<% end %>
|
61
|
+
<% end -%>
|
62
|
+
<% if show_actions -%>
|
63
|
+
<%= content_tag column_tag, :class => "actions" do %>
|
64
|
+
<% if record_column.plural_association? and (@record.authorized_for?(:crud_type => :delete) or not [:destroy, :delete_all].include?(record_column.association.options[:dependent])) %>
|
65
|
+
<% destroy_id = "#{options[:id]}-destroy" %>
|
66
|
+
<%= link_to as_(:remove), '#', :class => 'destroy', :id => destroy_id , :onclick => "ActiveScaffold.delete_subform_record(\"#{tr_id}\"); return false;", :style=> "display: none;" %>
|
67
|
+
<%= javascript_tag("ActiveScaffold.show('#{destroy_id}');") if !locked %>
|
68
|
+
<% end %>
|
69
|
+
<% unless @record.new_record? %>
|
70
|
+
<input type="hidden" name="<%= options[:name] -%>" id="<%= options[:id] -%>" value="<%= @record.id -%>" />
|
71
|
+
<% end -%>
|
72
|
+
<% end %>
|
73
|
+
<% end -%>
|
74
|
+
<% end %>
|
75
|
+
|
76
|
+
<% columns_groups.each do |column| %>
|
77
|
+
<%= content_tag row_tag, :class => 'associated-record' do %>
|
78
|
+
<%= content_tag column_tag, :colspan => (columns_length if column_tag == :td) do %>
|
79
|
+
<% column.each :for => @record.class, :crud_type => :read, :flatten => true do |col| %>
|
80
|
+
<%= active_scaffold_render_subform_column(col, scope, crud_type, readonly, true) %>
|
81
|
+
<% end %>
|
82
|
+
<% end %>
|
83
|
+
<% end %>
|
84
|
+
<% end %>
|
85
|
+
</<%= record_tag %>>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%
|
2
|
+
scope ||= nil
|
3
|
+
column_options = active_scaffold_input_options(column, scope)
|
4
|
+
%>
|
5
|
+
<dl<%= " class=\"#{col_class}\"".html_safe if local_assigns[:col_class].present? %>>
|
6
|
+
<dt>
|
7
|
+
<label for="<%= column_options[:id] %>"><%= column.label %></label>
|
8
|
+
</dt>
|
9
|
+
<dd>
|
10
|
+
<% unless local_assigns[:only_value] %>
|
11
|
+
<%=raw active_scaffold_input_for column, scope %>
|
12
|
+
<% else %>
|
13
|
+
<%= content_tag :span, get_column_value(@record, column), column_options.except(:name) %>
|
14
|
+
<%= hidden_field :record, column.association ? column.association.foreign_key : column.name, column_options -%>
|
15
|
+
<% end %>
|
16
|
+
<% if column.update_columns -%>
|
17
|
+
<%= loading_indicator_tag(:action => :render_field, :id => params[:id]) %>
|
18
|
+
<% end -%>
|
19
|
+
<% if column.description.present? -%>
|
20
|
+
<span class="description"><%= column.description %></span>
|
21
|
+
<% end -%>
|
22
|
+
</dd>
|
23
|
+
</dl>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_hidden_attribute.html.erb
RENAMED
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_form_messages.html.erb
RENAMED
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<table cellpadding="0" cellspacing="0" id="<%= sub_form_list_id(:association => column.name) %>">
|
2
|
+
<% @record = associated.empty? ? build_associated(column, parent_record) : associated.last -%>
|
3
|
+
<%= render :partial => 'horizontal_subform_header', :locals => {:parent_record => parent_record, :record => @record} %>
|
4
|
+
|
5
|
+
<% associated.each_index do |index| %>
|
6
|
+
<% @record = associated[index] -%>
|
7
|
+
<%= render :partial => 'form_association_record', :locals => {:scope => column_scope(column, scope), :parent_record => parent_record, :column => column, :locked => show_blank_record && @record.new_record? && @record == associated.last, :index => index} %>
|
8
|
+
<% end -%>
|
9
|
+
<tfoot>
|
10
|
+
<%= render :partial => 'horizontal_subform_footer', :locals => {:scope => column_scope(column, scope), :parent_record => parent_record, :column => column} %>
|
11
|
+
</tfoot>
|
12
|
+
</table>
|
File without changes
|
@@ -1,9 +1,10 @@
|
|
1
1
|
<thead>
|
2
2
|
<tr>
|
3
3
|
<%
|
4
|
-
active_scaffold_config_for(record.class).subform.columns.each :for => record.class, :crud_type => :read
|
5
|
-
|
4
|
+
active_scaffold_config_for(record.class).subform.columns.each :for => record.class, :crud_type => :read do |column|
|
5
|
+
next if column.is_a? ActiveScaffold::DataStructures::ActionColumns
|
6
6
|
next unless in_subform?(column, parent_record)
|
7
|
+
hidden = column_renders_as(column) == :hidden
|
7
8
|
-%>
|
8
9
|
<th class="<%= "#{column.name}-column #{'required' if column.required?} #{'hidden' if hidden}" %>"><label><%= column.label unless hidden %></label></th>
|
9
10
|
<% end -%>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_human_conditions.html.erb
RENAMED
File without changes
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<% if active_scaffold_config.list.messages_above_header %>
|
2
|
+
<table>
|
3
|
+
<tbody>
|
4
|
+
<tr>
|
5
|
+
<td class="messages-container">
|
6
|
+
<p class="error-message message server-error" style="display:none;">
|
7
|
+
<%= as_(:internal_error).html_safe %>
|
8
|
+
<a href="#" class="close" title="<%= as_(:close).html_safe %>"><%= as_(:close).html_safe %></a>
|
9
|
+
</p>
|
10
|
+
<div id="<%= active_scaffold_messages_id -%>" class="action-messages">
|
11
|
+
<%= render :partial => 'messages' %>
|
12
|
+
</div>
|
13
|
+
</td>
|
14
|
+
</tr>
|
15
|
+
</tbody>
|
16
|
+
</table>
|
17
|
+
<% end %>
|
18
|
+
<table cellpadding="0" cellspacing="0">
|
19
|
+
<thead>
|
20
|
+
<tr>
|
21
|
+
<% columns = list_columns %>
|
22
|
+
<%= render :partial => 'list_column_headings', :locals => {:columns => columns} %>
|
23
|
+
</tr>
|
24
|
+
</thead>
|
25
|
+
<%= render :partial => 'list_messages', :locals => {:columns => columns} %>
|
26
|
+
<tbody class="records" id="<%= active_scaffold_tbody_id %>">
|
27
|
+
<% if !@records.empty? -%>
|
28
|
+
<%= render :partial => 'list_record', :collection => @page.items, :locals => {:hidden => false, :columns => columns, :action_links => active_scaffold_config.action_links.member, :data_refresh => url_for(params_for(:action => :row, :id => '--ID--', :_method => :get))} %>
|
29
|
+
<% end -%>
|
30
|
+
<% if columns.any? {|c| c.calculation?} -%>
|
31
|
+
<%= render :partial => 'list_calculations', :locals => {:columns => columns} %>
|
32
|
+
<% end -%>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
<%= render :partial => 'list_pagination' %>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_calculations.html.erb
RENAMED
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_column_headings.html.erb
RENAMED
File without changes
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<% action_links = active_scaffold_config.action_links.collection
|
2
|
+
unless action_links.empty? -%>
|
3
|
+
<div class="actions">
|
4
|
+
<%= display_action_links(action_links, nil, :skip_unauthorized => true, :reverse => nested?) %>
|
5
|
+
<%= loading_indicator_tag(:action => :table) %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
8
|
+
<h2><%= active_scaffold_config.list.user.label %></h2>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_inline_adapter.html.erb
RENAMED
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_messages.html.erb
RENAMED
@@ -2,19 +2,21 @@
|
|
2
2
|
<tbody class="messages">
|
3
3
|
<tr class="record even-record">
|
4
4
|
<td colspan="<%= column_count -%>" class="messages-container">
|
5
|
+
<% unless active_scaffold_config.list.messages_above_header %>
|
5
6
|
<p class="error-message message server-error" style="display:none;">
|
6
7
|
<%= as_(:internal_error).html_safe %>
|
7
8
|
<a href="#" class="close" title="<%= as_(:close).html_safe %>"><%= as_(:close).html_safe %></a>
|
8
9
|
</p>
|
9
|
-
<div id="<%= active_scaffold_messages_id -%>">
|
10
|
+
<div id="<%= active_scaffold_messages_id -%>" class="action-messages">
|
10
11
|
<%= render :partial => 'messages' %>
|
11
12
|
</div>
|
13
|
+
<% end %>
|
12
14
|
<div class="filtered-message" <%= ' style="display:none;" '.html_safe unless @filtered %>>
|
13
15
|
<%= @filtered.is_a?(Array) ? render(:partial => 'human_conditions', :locals => {:columns => @filtered}) : as_(active_scaffold_config.list.filtered_message) %>
|
14
16
|
<% if active_scaffold_config.list.show_search_reset && @filtered -%>
|
15
17
|
<div class="reset">
|
16
18
|
<%= loading_indicator_tag(:action => :record, :id => nil) %>
|
17
|
-
<%= render_action_link(active_scaffold_config.list.reset_link
|
19
|
+
<%= render_action_link(active_scaffold_config.list.reset_link) %>
|
18
20
|
</div>
|
19
21
|
<% end -%>
|
20
22
|
</div>
|
@@ -24,5 +26,3 @@
|
|
24
26
|
</td>
|
25
27
|
</tr>
|
26
28
|
</tbody>
|
27
|
-
|
28
|
-
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination.html.erb
RENAMED
File without changes
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_pagination_links.html.erb
RENAMED
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%
|
2
|
+
record = list_record if list_record # compat with render :partial :collection
|
3
|
+
columns ||= list_columns
|
4
|
+
tr_class = cycle("", "even-record") + ' ' + list_row_class(record)
|
5
|
+
action_links ||= active_scaffold_config.action_links.member
|
6
|
+
data_refresh ||= url_for(params_for(:action => :row, :id => '--ID--', :_method => :get))
|
7
|
+
-%>
|
8
|
+
|
9
|
+
<tr class="record <%= tr_class %>" id="<%= element_row_id(:action => :list, :id => record.id) %>" data-refresh="<%= data_refresh.sub('--ID--', record.id.to_s).html_safe %>">
|
10
|
+
<% columns.each do |column| %>
|
11
|
+
<% authorized = record.authorized_for?(:crud_type => :read, :column => column.name) -%>
|
12
|
+
<% column_value = authorized ? get_column_value(record, column) : active_scaffold_config.list.empty_field_text -%>
|
13
|
+
|
14
|
+
<%= content_tag :td, column_attributes(column, record).merge(:class => column_class(column, column_value, record)) do %>
|
15
|
+
<%= authorized ? render_list_column(column_value, column, record) : column_value %>
|
16
|
+
<% end %>
|
17
|
+
<% end -%>
|
18
|
+
|
19
|
+
<td class="actions"><table cellpadding="0" cellspacing="0">
|
20
|
+
<tr>
|
21
|
+
<td class="indicator-container">
|
22
|
+
<%= loading_indicator_tag(:action => :record, :id => record.id) %>
|
23
|
+
</td>
|
24
|
+
<%= display_action_links(action_links, record, :level_0_tag => :td, :for => record.persisted? ? record : record.class) %>
|
25
|
+
</tr>
|
26
|
+
</table></td>
|
27
|
+
|
28
|
+
|
29
|
+
<%= render_nested_view(action_links, record) unless @nested_auto_open.nil? %>
|
30
|
+
</tr>
|
data/{frontends/default/views → app/views/active_scaffold_overrides}/_list_with_header.html.erb
RENAMED
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveScaffold.replace_html('<%= active_scaffold_content_id %>', '<%= escape_javascript(render('list')) %>');
|
@@ -4,6 +4,7 @@
|
|
4
4
|
else
|
5
5
|
active_scaffold_config.columns[render_field.to_sym]
|
6
6
|
end
|
7
|
+
return unless @main_columns.include? column.name
|
7
8
|
@rendered ||= Set.new
|
8
9
|
return if @rendered.include? column.name
|
9
10
|
@rendered << column.name
|
@@ -12,9 +13,16 @@
|
|
12
13
|
else
|
13
14
|
options = {:is_subform => false, :field_class => "#{column.name}-input"}
|
14
15
|
end
|
16
|
+
html = if scope
|
17
|
+
readonly = (@record.readonly? or not @record.authorized_for?(:crud_type => :update))
|
18
|
+
crud_type = @record.new_record? ? :create : (readonly ? :read : :update)
|
19
|
+
active_scaffold_render_subform_column(column, scope, crud_type, readonly, !active_scaffold_config.subform.columns.names_without_auth_check.include?(column.name))
|
20
|
+
else
|
21
|
+
render(:partial => form_partial_for_column(column), :locals => { :column => column, :scope => scope })
|
22
|
+
end
|
15
23
|
-%>
|
16
24
|
|
17
|
-
ActiveScaffold.render_form_field('<%= source_id %>','<%= escape_javascript(
|
25
|
+
ActiveScaffold.render_form_field('<%= source_id %>','<%= escape_javascript(html) %>', <%= options.to_json.html_safe %>);
|
18
26
|
<%if column.update_columns && !column.update_columns.empty?%>
|
19
27
|
<%= render(:partial => "render_field", :collection => column.update_columns, :locals => {:source_id => source_id, :scope => scope})%>
|
20
28
|
<%end%>
|