active_scaffold 3.1.5 → 3.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/active_scaffold.js.erb +1 -0
- data/app/assets/javascripts/active_scaffold.js.erb~ +16 -0
- data/app/assets/javascripts/jquery/active_scaffold.js +4 -0
- data/app/assets/javascripts/jquery/active_scaffold.js~ +5 -0
- data/app/assets/javascripts/jquery/draggable_lists.js +27 -0
- data/app/assets/javascripts/jquery/draggable_lists.js~ +27 -0
- data/app/assets/javascripts/prototype/active_scaffold.js +4 -0
- data/app/assets/javascripts/prototype/active_scaffold.js~ +1 -0
- data/app/assets/stylesheets/active_scaffold.css.erb +4 -0
- data/app/assets/stylesheets/active_scaffold.css.erb~ +1098 -0
- data/frontends/default/views/_horizontal_subform_header.html.erb +1 -1
- data/frontends/default/views/_horizontal_subform_header.html.erb~ +1 -1
- data/frontends/default/views/_horizontal_subform_record.html.erb +1 -1
- data/frontends/default/views/_horizontal_subform_record.html.erb~ +1 -1
- data/frontends/default/views/_show.html.erb~ +9 -0
- data/frontends/default/views/on_create.js.erb +1 -1
- data/frontends/default/views/on_create.js.erb~ +45 -0
- data/frontends/default/views/on_update.js.erb +1 -1
- data/frontends/default/views/on_update.js.erb~ +31 -0
- data/lib/active_scaffold/actions/core.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +23 -26
- data/lib/active_scaffold/config/base.rb +2 -1
- data/lib/active_scaffold/config/base.rb~ +70 -0
- data/lib/active_scaffold/helpers/form_column_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/form_column_helpers.rb~ +1 -2
- data/lib/active_scaffold/version.rb +1 -1
- metadata +13 -5
@@ -1,7 +1,7 @@
|
|
1
1
|
<thead>
|
2
2
|
<tr>
|
3
3
|
<%
|
4
|
-
active_scaffold_config_for(record.class).subform.columns.each :for => record.class, :flatten => true do |column|
|
4
|
+
active_scaffold_config_for(record.class).subform.columns.each :for => record.class, :crud_type => :read, :flatten => true do |column|
|
5
5
|
hidden = column_renders_as(column) == :hidden
|
6
6
|
next unless in_subform?(column, parent_record)
|
7
7
|
-%>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<thead>
|
2
2
|
<tr>
|
3
3
|
<%
|
4
|
-
active_scaffold_config_for(
|
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
6
|
next unless in_subform?(column, parent_record)
|
7
7
|
-%>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
tr_id = "association-#{options[:id]}"
|
9
9
|
%>
|
10
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 =>
|
11
|
+
<% config.subform.columns.each :for => @record.class, :crud_type => :read, :flatten => true do |column| %>
|
12
12
|
<%
|
13
13
|
next unless in_subform?(column, parent_record)
|
14
14
|
show_actions = true
|
@@ -15,7 +15,7 @@
|
|
15
15
|
column = column.clone
|
16
16
|
column.form_ui ||= :select if column.association
|
17
17
|
-%>
|
18
|
-
<td class="
|
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,9 @@
|
|
1
|
+
<% debugger %>
|
2
|
+
<h4><%= active_scaffold_config.show.label(@record.to_label.nil? ? nil : clean_column_value(@record.to_label)) %></h4>
|
3
|
+
|
4
|
+
<%= render :partial => 'show_columns', :locals => {:columns => active_scaffold_config.show.columns} -%>
|
5
|
+
|
6
|
+
<p class="form-footer">
|
7
|
+
<%= link_to as_(:close), main_path_to_return, :class => 'as_cancel', :remote => request.xhr?, 'data-refresh' => false %>
|
8
|
+
<%= loading_indicator_tag(:action => :create, :id => params[:id]) %>
|
9
|
+
</p>
|
@@ -2,7 +2,7 @@ try {
|
|
2
2
|
<% form_selector = "#{element_form_id(:action => :create)}"
|
3
3
|
insert_at ||= :top %>
|
4
4
|
var action_link = ActiveScaffold.find_action_link('<%= form_selector%>');
|
5
|
-
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages')
|
5
|
+
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages'))%>');
|
6
6
|
<% if controller.send :successful? %>
|
7
7
|
<% if render_parent? && controller.respond_to?(:render_component_into_view) %>
|
8
8
|
<% parent_rendered = controller.send(:render_component_into_view, render_parent_options) %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
try {
|
2
|
+
<% form_selector = "#{element_form_id(:action => :create)}"
|
3
|
+
insert_at ||= :top %>
|
4
|
+
var action_link = ActiveScaffold.find_action_link('<%= form_selector%>');
|
5
|
+
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages').strip)%>');
|
6
|
+
<% if controller.send :successful? %>
|
7
|
+
<% if render_parent? && controller.respond_to?(:render_component_into_view) %>
|
8
|
+
<% parent_rendered = controller.send(:render_component_into_view, render_parent_options) %>
|
9
|
+
<% if nested_singular_association? %>
|
10
|
+
action_link.close('<%= escape_javascript(parent_rendered)%>');
|
11
|
+
<% else %>
|
12
|
+
<% if render_parent_action == :row %>
|
13
|
+
ActiveScaffold.create_record_row(action_link.scaffold(),'<%= escape_javascript(parent_rendered)%>', <%= {:insert_at => insert_at}.to_json.html_safe %>);
|
14
|
+
<% elsif render_parent_action == :index %>
|
15
|
+
<%= escape_javascript(parent_rendered) %>
|
16
|
+
<% end %>
|
17
|
+
action_link.close();
|
18
|
+
<% end %>
|
19
|
+
<%#page.call 'ActiveScaffold.replace', active_scaffold_calculations_id, render(:partial => 'list_calculations') if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
20
|
+
<% elsif (active_scaffold_config.create.refresh_list) %>
|
21
|
+
ActiveScaffold.replace_html(<%= active_scaffold_content_id%>, <%= escape_javascript(render(:partial => 'list', :layout => false)) %>);
|
22
|
+
<% elsif params[:parent_controller].nil? %>
|
23
|
+
<% new_row = render :partial => 'list_record', :locals => {:record => @record} %>
|
24
|
+
ActiveScaffold.create_record_row(action_link.scaffold(),'<%=escape_javascript(new_row)%>', <%={:insert_at => insert_at}.to_json.html_safe%>);
|
25
|
+
<% if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
26
|
+
ActiveScaffold.replace('<%=active_scaffold_calculations_id%>', '<%=escape_javascript(render(:partial => 'list_calculations'))%>');
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<% unless render_parent? %>
|
31
|
+
<% if (active_scaffold_config.create.persistent) %>
|
32
|
+
action_link.reload();
|
33
|
+
<% else %>
|
34
|
+
action_link.close();
|
35
|
+
<% end %>
|
36
|
+
<% if (active_scaffold_config.create.action_after_create) %>
|
37
|
+
var link = $('<%=action_link_id active_scaffold_config.create.action_after_create, @record.id%>');
|
38
|
+
if (link) (function() { link.action_link.open() }).defer();
|
39
|
+
<% end %>
|
40
|
+
<% end %>
|
41
|
+
<% else %>
|
42
|
+
ActiveScaffold.replace('<%=form_selector%>','<%=escape_javascript(render(:partial => 'create_form', :locals => {:xhr => true}))%>');
|
43
|
+
ActiveScaffold.scroll_to('<%=form_selector%>');
|
44
|
+
<% end %>
|
45
|
+
} catch (e) { alert('RJS error:\n\n' + e.toString());}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
try {
|
2
2
|
<% form_selector = "#{element_form_id(:action => :update)}" %>
|
3
3
|
var action_link = ActiveScaffold.find_action_link('<%= form_selector%>');
|
4
|
-
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages')
|
4
|
+
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages'))%>');
|
5
5
|
<% if controller.send :successful? %>
|
6
6
|
<% if render_parent? && controller.respond_to?(:render_component_into_view) %>
|
7
7
|
<% parent_rendered = controller.send(:render_component_into_view, render_parent_options) %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
try {
|
2
|
+
<% form_selector = "#{element_form_id(:action => :update)}" %>
|
3
|
+
var action_link = ActiveScaffold.find_action_link('<%= form_selector%>');
|
4
|
+
action_link.update_flash_messages('<%=escape_javascript(render(:partial => 'messages').strip)%>');
|
5
|
+
<% if controller.send :successful? %>
|
6
|
+
<% if render_parent? && controller.respond_to?(:render_component_into_view) %>
|
7
|
+
<% parent_rendered = controller.send(:render_component_into_view, render_parent_options) %>
|
8
|
+
<% if nested_singular_association? %>
|
9
|
+
action_link.close('<%= escape_javascript(parent_rendered)%>');
|
10
|
+
<% else %>
|
11
|
+
<% if render_parent_action == :row %>
|
12
|
+
action_link.close('<%= escape_javascript(parent_rendered)%>');
|
13
|
+
<% elsif render_parent_action == :index %>
|
14
|
+
<%= escape_javascript(parent_rendered) %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<%#page.call 'ActiveScaffold.replace', active_scaffold_calculations_id, render(:partial => 'list_calculations') if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
18
|
+
<% elsif update_refresh_list? %>
|
19
|
+
ActiveScaffold.replace_html('<%= active_scaffold_content_id%>', '<%= escape_javascript(render(:partial => 'list', :layout => false))%>');
|
20
|
+
<% else %>
|
21
|
+
<% updated_row = render :partial => 'list_record', :locals => {:record => @record}%>
|
22
|
+
action_link.close('<%= escape_javascript(updated_row)%>');
|
23
|
+
<% if active_scaffold_config.list.columns.any? {|c| c.calculation?}%>
|
24
|
+
ActiveScaffold.replace('<%=active_scaffold_calculations_id%>', '<%=escape_javascript(render(:partial => 'list_calculations'))%>');
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<% else %>
|
28
|
+
ActiveScaffold.replace('<%=form_selector%>','<%=escape_javascript(render(:partial => 'update_form', :locals => {:xhr => true}))%>');
|
29
|
+
ActiveScaffold.scroll_to('<%=form_selector%>');
|
30
|
+
<% end %>
|
31
|
+
} catch (e) { alert('RJS error:\n\n' + e.toString());}
|
@@ -165,7 +165,7 @@ module ActiveScaffold::Actions
|
|
165
165
|
params = params[:record] || {} unless params[model.inheritance_column] # in create action must be inside record key
|
166
166
|
model = params.delete(model.inheritance_column).camelize.constantize if params[model.inheritance_column]
|
167
167
|
end
|
168
|
-
model.
|
168
|
+
model.new(build_options || {})
|
169
169
|
end
|
170
170
|
|
171
171
|
private
|
@@ -3,35 +3,32 @@ module ActiveScaffold
|
|
3
3
|
# Helpers that assist with the rendering of a Form Column
|
4
4
|
module FormColumnHelpers
|
5
5
|
def active_scaffold_input_file_column(column, options)
|
6
|
-
|
7
|
-
# we already have a value?
|
6
|
+
if @record.send(column.name)
|
7
|
+
# we already have a value? display the form for deletion.
|
8
8
|
if ActiveScaffold.js_framework == :jquery
|
9
|
-
|
9
|
+
remove_file_js = "$(this).prev().val('true'); $(this).parent().hide().next().show(); return false;";
|
10
10
|
else
|
11
|
-
|
11
|
+
remove_file_js = "$(this).previous().value='true'; p=$(this).up(); p.hide(); p.next().show(); return false;";
|
12
|
+
end
|
13
|
+
|
14
|
+
hidden_options = options.dup
|
15
|
+
hidden_options[:id] += '_delete'
|
16
|
+
hidden_options[:name].sub!("[#{column.name}]", "[delete_#{column.name}]")
|
17
|
+
hidden_options[:value] = 'false'
|
18
|
+
custom_hidden_field_tag = hidden_field(:record, column.name, hidden_options)
|
19
|
+
|
20
|
+
content_tag(:div) do
|
21
|
+
content_tag(:div) do
|
22
|
+
content = get_column_value(@record, column) + " #{custom_hidden_field_tag} | ".html_safe
|
23
|
+
content += content_tag(:a, as_(:remove_file), {:href => '#', :onclick => remove_file_js})
|
24
|
+
content += content_tag(:div, file_column_field("record", column.name, options), :style => "display: none")
|
25
|
+
end
|
12
26
|
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
custom_hidden_field_tag +
|
19
|
-
" | " +
|
20
|
-
content_tag(:a, as_(:remove_file), {:href => '#', :onclick => js_remove_file_code}),
|
21
|
-
{}
|
22
|
-
) +
|
23
|
-
content_tag(
|
24
|
-
:div,
|
25
|
-
file_column_field("record", column.name, options),
|
26
|
-
:style => "display: none"
|
27
|
-
),
|
28
|
-
{}
|
29
|
-
)
|
30
|
-
else
|
31
|
-
# no, just display the file_column_field
|
32
|
-
file_column_field("record", column.name, options)
|
33
|
-
end
|
34
|
-
end
|
27
|
+
else
|
28
|
+
file_column_field("record", column.name, options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
35
32
|
end
|
36
33
|
end
|
37
34
|
end
|
@@ -26,7 +26,8 @@ module ActiveScaffold::Config
|
|
26
26
|
def crud_type; self.class.crud_type end
|
27
27
|
|
28
28
|
def label(model = nil)
|
29
|
-
|
29
|
+
model ||= @core.label(:count => 1)
|
30
|
+
@label.nil? ? model : as_(@label, :model => model)
|
30
31
|
end
|
31
32
|
|
32
33
|
# the user property gets set to the instantiation of the local UserSettings class during the automatic instantiation of this class.
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module ActiveScaffold::Config
|
2
|
+
class Base
|
3
|
+
include ActiveScaffold::Configurable
|
4
|
+
extend ActiveScaffold::Configurable
|
5
|
+
|
6
|
+
def initialize(core_config)
|
7
|
+
@core = core_config
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.inherited(subclass)
|
11
|
+
class << subclass
|
12
|
+
# the crud type of the action. possible values are :create, :read, :update, :delete, and nil.
|
13
|
+
# this is not a setting for the developer. it's self-description for the actions.
|
14
|
+
def crud_type; @crud_type; end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def crud_type=(val)
|
19
|
+
raise ArgumentError, "unknown CRUD type #{val}" unless [:create, :read, :update, :delete].include?(val.to_sym)
|
20
|
+
@crud_type = val.to_sym
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# delegate
|
26
|
+
def crud_type; self.class.crud_type end
|
27
|
+
|
28
|
+
def label(model = @core.label(:count => 1))
|
29
|
+
@label.nil? ? model : as_(@label, :model => model)
|
30
|
+
end
|
31
|
+
|
32
|
+
# the user property gets set to the instantiation of the local UserSettings class during the automatic instantiation of this class.
|
33
|
+
attr_accessor :user
|
34
|
+
|
35
|
+
# define a default action_group for this action
|
36
|
+
# e.g. 'members.crud'
|
37
|
+
class_attribute :action_group
|
38
|
+
|
39
|
+
# action_group this action should belong to
|
40
|
+
attr_accessor :action_group
|
41
|
+
|
42
|
+
class UserSettings
|
43
|
+
def initialize(conf, storage, params)
|
44
|
+
# the session hash relevant to this action
|
45
|
+
@session = storage
|
46
|
+
# all the request params
|
47
|
+
@params = params
|
48
|
+
# the configuration object for this action
|
49
|
+
@conf = conf
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def formats
|
54
|
+
@formats ||= []
|
55
|
+
end
|
56
|
+
|
57
|
+
def formats=(val)
|
58
|
+
@formats=val
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def columns=(val)
|
64
|
+
@columns = ActiveScaffold::DataStructures::ActionColumns.new(*val)
|
65
|
+
@columns.action = self
|
66
|
+
@columns.set_columns(@core.columns) if @columns.respond_to?(:set_columns)
|
67
|
+
@columns
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -133,7 +133,7 @@ module ActiveScaffold
|
|
133
133
|
end
|
134
134
|
content
|
135
135
|
end
|
136
|
-
html << javascript_tag("
|
136
|
+
html << javascript_tag("ActiveScaffold.draggable_lists('#{options[:id]}')") if column.options[:draggable_lists]
|
137
137
|
html
|
138
138
|
end
|
139
139
|
|
@@ -121,8 +121,7 @@ module ActiveScaffold
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def active_scaffold_checkbox_list(column, select_options, associated_ids, options)
|
124
|
-
options[:class]
|
125
|
-
html = content_tag :ul, :class => options[:class], :id => options[:id] do
|
124
|
+
html = content_tag :ul, :class => "#{options[:class]} checkbox-list", :id => options[:id] do
|
126
125
|
content = "".html_safe
|
127
126
|
select_options.each_with_index do |option, i|
|
128
127
|
label, id = option
|
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: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 3.1.
|
9
|
+
- 6
|
10
|
+
version: 3.1.6
|
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-10-
|
18
|
+
date: 2011-10-20 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -101,14 +101,18 @@ files:
|
|
101
101
|
- app/assets/javascripts/jquery/active_scaffold.js
|
102
102
|
- app/assets/javascripts/jquery/date_picker_bridge.js.erb
|
103
103
|
- app/assets/javascripts/jquery/jquery.editinplace.js
|
104
|
+
- app/assets/javascripts/jquery/draggable_lists.js
|
104
105
|
- app/assets/javascripts/jquery/active_scaffold.js~
|
106
|
+
- app/assets/javascripts/jquery/draggable_lists.js~
|
105
107
|
- app/assets/javascripts/prototype/active_scaffold.js
|
106
108
|
- app/assets/javascripts/prototype/dhtml_history.js
|
107
109
|
- app/assets/javascripts/prototype/form_enhancements.js
|
108
110
|
- app/assets/javascripts/prototype/rico_corner.js
|
109
111
|
- app/assets/javascripts/prototype/active_scaffold.js~
|
112
|
+
- app/assets/javascripts/active_scaffold.js.erb~
|
110
113
|
- app/assets/stylesheets/active_scaffold-ie.css
|
111
114
|
- app/assets/stylesheets/active_scaffold.css.erb
|
115
|
+
- app/assets/stylesheets/active_scaffold.css.erb~
|
112
116
|
- config/locales/de.yml
|
113
117
|
- config/locales/en.yml
|
114
118
|
- config/locales/es.yml
|
@@ -182,13 +186,13 @@ files:
|
|
182
186
|
- frontends/default/views/_form.html.erb~
|
183
187
|
- frontends/default/views/_row.html.erb~
|
184
188
|
- frontends/default/views/render_field.js.erb~
|
185
|
-
- frontends/default/views/_horizontal_subform_record.html.erb~
|
186
189
|
- frontends/default/views/_form_association_footer.html.erb~
|
187
190
|
- frontends/default/views/edit_associated.js.erb~
|
188
191
|
- frontends/default/views/_list_inline_adapter.html.erb~
|
189
192
|
- frontends/default/views/_form_association.html.erb~
|
190
193
|
- frontends/default/views/_vertical_subform.html.erb~
|
191
194
|
- frontends/default/views/_horizontal_subform.html.erb~
|
195
|
+
- frontends/default/views/_show.html.erb~
|
192
196
|
- frontends/default/views/_horizontal_subform_header.html.erb~
|
193
197
|
- frontends/default/views/_list_pagination.html.erb~
|
194
198
|
- frontends/default/views/_list_actions.html.erb~
|
@@ -196,6 +200,9 @@ files:
|
|
196
200
|
- frontends/default/views/_list_messages.html.erb~
|
197
201
|
- frontends/default/views/_render_field.js.erb~
|
198
202
|
- frontends/default/views/_action_group.html.erb~
|
203
|
+
- frontends/default/views/on_update.js.erb~
|
204
|
+
- frontends/default/views/on_create.js.erb~
|
205
|
+
- frontends/default/views/_horizontal_subform_record.html.erb~
|
199
206
|
- lib/active_scaffold.rb
|
200
207
|
- lib/active_scaffold_env.rb
|
201
208
|
- lib/active_scaffold/actions/core.rb
|
@@ -233,6 +240,7 @@ files:
|
|
233
240
|
- lib/active_scaffold/config/mark.rb
|
234
241
|
- lib/active_scaffold/config/search.rb~
|
235
242
|
- lib/active_scaffold/config/nested.rb~
|
243
|
+
- lib/active_scaffold/config/base.rb~
|
236
244
|
- lib/active_scaffold/configurable.rb
|
237
245
|
- lib/active_scaffold/constraints.rb
|
238
246
|
- lib/active_scaffold/data_structures/action_columns.rb
|