ajax_scaffold_generator 3.1.2 → 3.1.3
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/ajax_scaffold_generator.rb +1 -2
- data/templates/controller.rb +14 -17
- data/templates/functional_test.rb +4 -2
- data/templates/lib_ajax_scaffold.rb +17 -7
- data/templates/partial_new_edit.rhtml +1 -1
- data/templates/rjs_create.rjs +1 -0
- data/templates/rjs_update.rjs +1 -0
- data/templates/view_component.rhtml +2 -3
- metadata +2 -4
- data/templates/lib_ajax_scaffold_util.rb +0 -30
- data/templates/lib_content_column_patch.rb +0 -10
data/ajax_scaffold_generator.rb
CHANGED
@@ -52,7 +52,6 @@ class AjaxScaffoldGenerator < ScaffoldGenerator
|
|
52
52
|
m.class_collisions class_path, class_name, "#{singular_name}Test"
|
53
53
|
|
54
54
|
# Model, controller, helper, views, and test directories.
|
55
|
-
m.directory File.join('app/models', class_path)
|
56
55
|
m.directory File.join('test/unit', class_path)
|
57
56
|
m.directory File.join('test/fixtures', class_path)
|
58
57
|
m.directory File.join('app/controllers', controller_class_path)
|
@@ -65,7 +64,7 @@ class AjaxScaffoldGenerator < ScaffoldGenerator
|
|
65
64
|
# Model class, unit test, and fixtures.
|
66
65
|
m.template 'model.rb', File.join('app/models', "#{singular_name}.rb")
|
67
66
|
m.template 'unit_test.rb', File.join('test/unit', "#{singular_name}_test.rb")
|
68
|
-
m.template 'fixtures.yml', File.join('test/fixtures', "#{
|
67
|
+
m.template 'fixtures.yml', File.join('test/fixtures', "#{plural_name}.yml")
|
69
68
|
|
70
69
|
# Scaffolded forms.
|
71
70
|
m.complex_template 'form.rhtml',
|
data/templates/controller.rb
CHANGED
@@ -2,18 +2,16 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
2
2
|
include AjaxScaffold::Controller
|
3
3
|
|
4
4
|
after_filter :clear_flashes
|
5
|
+
before_filter :update_params_filter
|
5
6
|
|
7
|
+
def update_params_filter
|
8
|
+
update_params :default_scaffold_id => "<%= singular_name %>", :default_sort => nil, :default_sort_direction => "asc"
|
9
|
+
end
|
6
10
|
<% unless suffix -%>
|
7
11
|
def index
|
8
12
|
redirect_to :action => 'list'
|
9
13
|
end
|
10
14
|
<% end -%>
|
11
|
-
|
12
|
-
<% for action in unscaffolded_actions -%>
|
13
|
-
def <%= action %><%= suffix %>
|
14
|
-
end
|
15
|
-
<% end -%>
|
16
|
-
|
17
15
|
def return_to_main
|
18
16
|
# If you have multiple scaffolds on the same view then you will want to change this to
|
19
17
|
# to whatever controller/action shows all the views
|
@@ -25,21 +23,20 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
25
23
|
end
|
26
24
|
|
27
25
|
# All posts to change scaffold level variables like sort values or page changes go through this action
|
28
|
-
def component_update
|
26
|
+
def component_update
|
27
|
+
@show_wrapper = false # don't show the outer wrapper elements if we are just updating an existing scaffold
|
29
28
|
if request.xhr?
|
30
29
|
# If this is an AJAX request then we just want to delegate to the component to rerender itself
|
31
30
|
component
|
32
31
|
else
|
33
32
|
# If this is from a client without javascript we want to update the session parameters and then delegate
|
34
33
|
# back to whatever page is displaying the scaffold, which will then rerender all scaffolds with these update parameters
|
35
|
-
update_params :default_scaffold_id => "<%= singular_name %>", :default_sort => nil, :default_sort_direction => "asc"
|
36
34
|
return_to_main
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
40
|
-
def component
|
41
|
-
|
42
|
-
|
38
|
+
def component
|
39
|
+
@show_wrapper = true if @show_wrapper.nil?
|
43
40
|
@sort_sql = <%= model_name %>.scaffold_columns_hash[current_sort(params)].sort_sql rescue nil
|
44
41
|
@sort_by = @sort_sql.nil? ? "#{<%= model_name %>.table_name}.#{<%= model_name %>.primary_key} asc" : @sort_sql + " " + current_sort_direction(params)
|
45
42
|
@paginator, @<%= plural_name %> = paginate(:<%= plural_name %>, :order => @sort_by, :per_page => default_per_page)
|
@@ -51,7 +48,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
51
48
|
@<%= singular_name %> = <%= model_name %>.new
|
52
49
|
@successful = true
|
53
50
|
|
54
|
-
return render
|
51
|
+
return render(:action => 'new.rjs') if request.xhr?
|
55
52
|
|
56
53
|
# Javascript disabled fallback
|
57
54
|
if @successful
|
@@ -70,7 +67,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
70
67
|
flash[:error], @successful = $!.to_s, false
|
71
68
|
end
|
72
69
|
|
73
|
-
return render
|
70
|
+
return render(:action => 'create.rjs') if request.xhr?
|
74
71
|
if @successful
|
75
72
|
return_to_main
|
76
73
|
else
|
@@ -87,7 +84,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
87
84
|
flash[:error], @successful = $!.to_s, false
|
88
85
|
end
|
89
86
|
|
90
|
-
return render
|
87
|
+
return render(:action => 'edit.rjs') if request.xhr?
|
91
88
|
|
92
89
|
if @successful
|
93
90
|
@options = { :scaffold_id => params[:scaffold_id], :action => "update", :id => params[:id] }
|
@@ -105,7 +102,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
105
102
|
flash[:error], @successful = $!.to_s, false
|
106
103
|
end
|
107
104
|
|
108
|
-
return render
|
105
|
+
return render(:action => 'update.rjs') if request.xhr?
|
109
106
|
|
110
107
|
if @successful
|
111
108
|
return_to_main
|
@@ -122,7 +119,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
122
119
|
flash[:error], @successful = $!.to_s, false
|
123
120
|
end
|
124
121
|
|
125
|
-
return render
|
122
|
+
return render(:action => 'destroy.rjs') if request.xhr?
|
126
123
|
|
127
124
|
# Javascript disabled fallback
|
128
125
|
return_to_main
|
@@ -131,7 +128,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
131
128
|
def cancel
|
132
129
|
@successful = true
|
133
130
|
|
134
|
-
return render
|
131
|
+
return render(:action => 'cancel.rjs') if request.xhr?
|
135
132
|
|
136
133
|
return_to_main
|
137
134
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '<%= "/.." * controller_class_nesting_depth %>/../test_helper'
|
2
|
-
require '<%=
|
2
|
+
require '<%= base_controller_file_path %>_controller'
|
3
3
|
|
4
4
|
# Re-raise errors caught by the controller.
|
5
5
|
class <%= controller_class_name %>Controller; def rescue_action(e) raise e end; end
|
@@ -14,5 +14,7 @@ class <%= controller_class_name %>ControllerTest < Test::Unit::TestCase
|
|
14
14
|
end
|
15
15
|
|
16
16
|
# A better generator might actually keep updated tests in here, until then its probably better to have nothing than something broken
|
17
|
-
|
17
|
+
def test_truth
|
18
|
+
assert true
|
19
|
+
end
|
18
20
|
end
|
@@ -8,10 +8,11 @@ module AjaxScaffold
|
|
8
8
|
# based on the given class.
|
9
9
|
def initialize(klass, options)
|
10
10
|
@name = options[:name]
|
11
|
-
@eval = options[:eval].nil? ?
|
11
|
+
@eval = options[:eval].nil? ? "h(#{klass.to_s.downcase}.#{@name})" : options[:eval]
|
12
12
|
@label = options[:label].nil? ? Inflector.titleize(@name) : options[:label]
|
13
13
|
@sortable = options[:sortable].nil? ? true : options[:sortable]
|
14
|
-
@sort_sql = options[:sort_sql].nil? ? klass.
|
14
|
+
@sort_sql = options[:sort_sql].nil? ? Inflector.tableize(klass.to_s) + "." + @name : options[:sort_sql] unless !@sortable
|
15
|
+
@class = options[:class] unless options[:class].nil?
|
15
16
|
end
|
16
17
|
|
17
18
|
def sortable?
|
@@ -54,9 +55,7 @@ module AjaxScaffold
|
|
54
55
|
module Controller
|
55
56
|
include AjaxScaffold::Common
|
56
57
|
|
57
|
-
|
58
|
-
25
|
59
|
-
end
|
58
|
+
# Filters
|
60
59
|
|
61
60
|
def clear_flashes
|
62
61
|
#We want to clear flashes so they don't appear on a page reload
|
@@ -67,6 +66,12 @@ module AjaxScaffold
|
|
67
66
|
end
|
68
67
|
end
|
69
68
|
|
69
|
+
# Helper Methods
|
70
|
+
|
71
|
+
def default_per_page
|
72
|
+
5
|
73
|
+
end
|
74
|
+
|
70
75
|
def store_or_get_from_session(id_key, value_key)
|
71
76
|
session[id_key][value_key] = params[value_key] if !params[value_key].nil?
|
72
77
|
params[value_key] ||= session[id_key][value_key]
|
@@ -131,6 +136,12 @@ module AjaxScaffold
|
|
131
136
|
|
132
137
|
def column_sort_direction(column_name, params)
|
133
138
|
column_name && current_sort_direction(params) == "asc" ? "desc" : "asc"
|
139
|
+
|
140
|
+
if column_name && column_name == current_sort(params)
|
141
|
+
current_sort_direction(params) == "asc" ? "desc" : "asc"
|
142
|
+
else
|
143
|
+
"asc"
|
144
|
+
end
|
134
145
|
end
|
135
146
|
|
136
147
|
def column_class(column_name, column_value, sort_column)
|
@@ -141,8 +152,7 @@ module AjaxScaffold
|
|
141
152
|
end
|
142
153
|
|
143
154
|
def loading_indicator_tag(options)
|
144
|
-
|
145
|
-
"<img src=\"/images/#{image_filename}\" style=\"display: none;\" id=\"#{loading_indicator_id(options)}\" alt=\"loading indicator\" class=\"loading-indicator\" />"
|
155
|
+
image_tag "indicator.gif", :style => "display:none;", :id => loading_indicator_id(options), :alt => "loading indicator", :class => "loading-indicator"
|
146
156
|
end
|
147
157
|
|
148
158
|
# The following are a bunch of helper methods to produce the common scaffold view id's
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<td id="<%%= element_cell_id(@options) %>" class="<%%= @options[:action] %>" colspan="<%%= num_columns %>">
|
7
7
|
|
8
8
|
<%%= form_remote_tag :url => @options.merge(:controller => '<%= controller_file_path %>'),
|
9
|
-
:loading => "Element.show('#{loading_indicator_id(@options)}');",
|
9
|
+
:loading => "Element.show('#{loading_indicator_id(@options)}'); Form.disable('#{element_form_id(@options)}');",
|
10
10
|
:html => { :href => url_for(@options.merge(:controller => '<%= controller_file_path %>')),
|
11
11
|
:id => element_form_id(@options) } %>
|
12
12
|
|
data/templates/rjs_create.rjs
CHANGED
@@ -11,6 +11,7 @@ if @successful
|
|
11
11
|
page.replace_html scaffold_messages_id(@options), :partial => 'messages'
|
12
12
|
else
|
13
13
|
page.replace_html element_messages_id(@create_options), :partial => 'form_messages'
|
14
|
+
page << "Form.enable('#{element_form_id(@create_options)}');"
|
14
15
|
page.hide loading_indicator_id(@create_options)
|
15
16
|
end
|
16
17
|
|
data/templates/rjs_update.rjs
CHANGED
@@ -12,6 +12,7 @@ if @successful
|
|
12
12
|
page.replace_html scaffold_messages_id(@options), :partial => 'messages'
|
13
13
|
else
|
14
14
|
page.replace_html element_messages_id(@update_options), :partial => 'form_messages'
|
15
|
+
page << "Form.enable('#{element_form_id(@update_options)}');"
|
15
16
|
page.hide loading_indicator_id(@update_options)
|
16
17
|
end
|
17
18
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%% if
|
1
|
+
<%% if @show_wrapper %>
|
2
2
|
<div id="<%%= params[:scaffold_id] %>" class="ajax-scaffold">
|
3
3
|
<div id="<%%= scaffold_content_id(params) %>">
|
4
4
|
<%% end %>
|
@@ -41,10 +41,9 @@
|
|
41
41
|
<div class="ajax-scaffold-footer">
|
42
42
|
<%%= render :partial => 'pagination_links', :locals => { :paginator => @paginator } %>
|
43
43
|
</div>
|
44
|
-
<%% if
|
44
|
+
<%% if @show_wrapper %>
|
45
45
|
</div>
|
46
46
|
</div>
|
47
|
-
|
48
47
|
<script type="text/javascript">
|
49
48
|
Rico.Corner.round('<%%= params[:scaffold_id] %>', {color: '#005CB8', bgColor: '#fff', compact: true});
|
50
49
|
</script>
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ajax_scaffold_generator
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 3.1.
|
7
|
-
date: 2006-
|
6
|
+
version: 3.1.3
|
7
|
+
date: 2006-07-13 00:00:00 -06:00
|
8
8
|
summary: Ajax scaffold generator is a rails generator for ajaxified scaffolds
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -50,8 +50,6 @@ files:
|
|
50
50
|
- templates/partial_form_messages.rhtml
|
51
51
|
- templates/partial_column_headings.rhtml
|
52
52
|
- templates/model.rb
|
53
|
-
- templates/lib_content_column_patch.rb
|
54
|
-
- templates/lib_ajax_scaffold_util.rb
|
55
53
|
- templates/lib_ajax_scaffold.rb
|
56
54
|
- templates/layout.rhtml
|
57
55
|
- templates/information.gif
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module AjaxScaffoldUtil
|
2
|
-
|
3
|
-
def default_per_page
|
4
|
-
25
|
5
|
-
end
|
6
|
-
|
7
|
-
def clear_flashes
|
8
|
-
#We want to clear flashes so they don't appear on a page reload
|
9
|
-
if request.xhr?
|
10
|
-
flash.keys.each do |flash_key|
|
11
|
-
flash[flash_key] = nil
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def store_or_get_from_session(id_key, value_key)
|
17
|
-
session[id_key][value_key] = params[value_key] if !params[value_key].nil?
|
18
|
-
params[value_key] ||= session[id_key][value_key]
|
19
|
-
end
|
20
|
-
|
21
|
-
def update_params(options)
|
22
|
-
@scaffold_id = params[:scaffold_id] ||= options[:default_scaffold_id]
|
23
|
-
session[@scaffold_id] ||= {:sort => options[:default_sort], :sort_direction => options[:default_sort_direction], :page => 1}
|
24
|
-
|
25
|
-
store_or_get_from_session(@scaffold_id, :sort)
|
26
|
-
store_or_get_from_session(@scaffold_id, :sort_direction)
|
27
|
-
store_or_get_from_session(@scaffold_id, :page)
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|