right-rails 1.2.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/init.rb +1 -0
- data/lib/generators/right_rails/right_rails_generator.rb +15 -6
- data/lib/right_rails.rb +1 -1
- data/lib/right_rails/controller_extensions.rb +28 -15
- data/lib/right_rails/helpers/misc.rb +38 -38
- data/lib/right_rails/helpers/rails.rb +50 -7
- data/lib/rjs_renderer.rb +26 -0
- data/spec/lib/right_rails/controller_extensions_spec.rb +25 -14
- data/spec/lib/right_rails/helpers/forms_spec.rb +6 -6
- data/spec/lib/right_rails/helpers/rails_spec.rb +44 -45
- data/vendor/assets/images/rightjs-ui/rte.png +0 -0
- data/vendor/assets/javascripts/right-safe-src.js +2 -2
- data/vendor/assets/javascripts/right-safe.js +2 -2
- data/vendor/assets/javascripts/right-src.js +386 -100
- data/vendor/assets/javascripts/right.js +2 -2
- data/vendor/assets/javascripts/right/calendar-src.js +19 -3
- data/vendor/assets/javascripts/right/calendar.js +2 -2
- data/vendor/assets/javascripts/right/colorpicker-src.js +59 -20
- data/vendor/assets/javascripts/right/colorpicker.js +2 -2
- data/vendor/assets/javascripts/right/i18n/de.js +43 -42
- data/vendor/assets/javascripts/right/i18n/es.js +1 -0
- data/vendor/assets/javascripts/right/i18n/fi.js +1 -0
- data/vendor/assets/javascripts/right/i18n/fr.js +1 -0
- data/vendor/assets/javascripts/right/i18n/hu.js +1 -0
- data/vendor/assets/javascripts/right/i18n/it.js +1 -0
- data/vendor/assets/javascripts/right/i18n/jp.js +1 -0
- data/vendor/assets/javascripts/right/i18n/lt.js +96 -0
- data/vendor/assets/javascripts/right/i18n/nl.js +1 -0
- data/vendor/assets/javascripts/right/i18n/pt-br.js +1 -0
- data/vendor/assets/javascripts/right/i18n/ru.js +1 -0
- data/vendor/assets/javascripts/right/i18n/ua.js +1 -0
- data/vendor/assets/javascripts/right/jquerysh-src.js +4 -4
- data/vendor/assets/javascripts/right/jquerysh.js +2 -2
- data/vendor/assets/javascripts/right/rails-src.js +51 -15
- data/vendor/assets/javascripts/right/rails.js +2 -2
- data/vendor/assets/javascripts/right/resizable-src.js +11 -11
- data/vendor/assets/javascripts/right/rte-src.js +33 -13
- data/vendor/assets/javascripts/right/rte.js +2 -2
- data/vendor/assets/javascripts/right/slider-src.js +137 -28
- data/vendor/assets/javascripts/right/slider.js +2 -2
- metadata +24 -126
- data/generators/right_rails/right_rails_generator.rb +0 -46
- data/generators/right_rails/templates/iframed.html.erb +0 -10
- data/generators/right_scaffold/right_scaffold_generator.rb +0 -53
- data/generators/right_scaffold/templates/controller.rb +0 -99
- data/generators/right_scaffold/templates/helper.rb +0 -2
- data/generators/right_scaffold/templates/layout.html.erb +0 -18
- data/generators/right_scaffold/templates/style.css +0 -54
- data/generators/right_scaffold/templates/view__form.html.erb +0 -16
- data/generators/right_scaffold/templates/view__item.html.erb +0 -13
- data/generators/right_scaffold/templates/view_edit.html.erb +0 -6
- data/generators/right_scaffold/templates/view_index.html.erb +0 -9
- data/generators/right_scaffold/templates/view_new.html.erb +0 -5
- data/generators/right_scaffold/templates/view_show.html.erb +0 -10
- data/lib/generators/right_rails/templates/iframed.html.erb +0 -10
- data/public/images/rightjs-ui/colorpicker.png +0 -0
- data/public/images/rightjs-ui/resizable.png +0 -0
- data/public/images/rightjs-ui/rte.png +0 -0
- data/public/javascripts/right-olds-src.js +0 -652
- data/public/javascripts/right-olds.js +0 -9
- data/public/javascripts/right-safe-src.js +0 -68
- data/public/javascripts/right-safe.js +0 -7
- data/public/javascripts/right-src.js +0 -6014
- data/public/javascripts/right.js +0 -7
- data/public/javascripts/right/autocompleter-src.js +0 -625
- data/public/javascripts/right/autocompleter.js +0 -7
- data/public/javascripts/right/billboard-src.js +0 -564
- data/public/javascripts/right/billboard.js +0 -7
- data/public/javascripts/right/calendar-src.js +0 -1464
- data/public/javascripts/right/calendar.js +0 -7
- data/public/javascripts/right/casting-src.js +0 -183
- data/public/javascripts/right/casting.js +0 -7
- data/public/javascripts/right/colorpicker-src.js +0 -981
- data/public/javascripts/right/colorpicker.js +0 -7
- data/public/javascripts/right/dialog-src.js +0 -768
- data/public/javascripts/right/dialog.js +0 -7
- data/public/javascripts/right/dnd-src.js +0 -591
- data/public/javascripts/right/dnd.js +0 -7
- data/public/javascripts/right/effects-src.js +0 -508
- data/public/javascripts/right/effects.js +0 -7
- data/public/javascripts/right/i18n/de.js +0 -95
- data/public/javascripts/right/i18n/en-us.js +0 -11
- data/public/javascripts/right/i18n/es.js +0 -95
- data/public/javascripts/right/i18n/fi.js +0 -96
- data/public/javascripts/right/i18n/fr.js +0 -95
- data/public/javascripts/right/i18n/hu.js +0 -100
- data/public/javascripts/right/i18n/it.js +0 -95
- data/public/javascripts/right/i18n/jp.js +0 -99
- data/public/javascripts/right/i18n/nl.js +0 -95
- data/public/javascripts/right/i18n/pt-br.js +0 -95
- data/public/javascripts/right/i18n/ru.js +0 -95
- data/public/javascripts/right/i18n/ua.js +0 -99
- data/public/javascripts/right/in-edit-src.js +0 -373
- data/public/javascripts/right/in-edit.js +0 -7
- data/public/javascripts/right/jquerysh-src.js +0 -362
- data/public/javascripts/right/jquerysh.js +0 -7
- data/public/javascripts/right/json-src.js +0 -147
- data/public/javascripts/right/json.js +0 -7
- data/public/javascripts/right/keys-src.js +0 -87
- data/public/javascripts/right/keys.js +0 -7
- data/public/javascripts/right/lightbox-src.js +0 -931
- data/public/javascripts/right/lightbox.js +0 -7
- data/public/javascripts/right/rails-src.js +0 -402
- data/public/javascripts/right/rails.js +0 -7
- data/public/javascripts/right/rater-src.js +0 -384
- data/public/javascripts/right/rater.js +0 -7
- data/public/javascripts/right/resizable-src.js +0 -465
- data/public/javascripts/right/resizable.js +0 -7
- data/public/javascripts/right/rte-src.js +0 -2685
- data/public/javascripts/right/rte.js +0 -7
- data/public/javascripts/right/selectable-src.js +0 -725
- data/public/javascripts/right/selectable.js +0 -7
- data/public/javascripts/right/sizzle-src.js +0 -1132
- data/public/javascripts/right/sizzle.js +0 -7
- data/public/javascripts/right/slider-src.js +0 -395
- data/public/javascripts/right/slider.js +0 -7
- data/public/javascripts/right/sortable-src.js +0 -430
- data/public/javascripts/right/sortable.js +0 -7
- data/public/javascripts/right/table-src.js +0 -176
- data/public/javascripts/right/table.js +0 -7
- data/public/javascripts/right/tabs-src.js +0 -1157
- data/public/javascripts/right/tabs.js +0 -7
- data/public/javascripts/right/tags-src.js +0 -745
- data/public/javascripts/right/tags.js +0 -7
- data/public/javascripts/right/tooltips-src.js +0 -331
- data/public/javascripts/right/tooltips.js +0 -7
- data/public/javascripts/right/uploader-src.js +0 -302
- data/public/javascripts/right/uploader.js +0 -7
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -29,7 +29,7 @@ Just add the following into your +Gemfile+
|
|
29
29
|
|
30
30
|
If you're on Rails < 3.1 then run the +right_rails+ generator
|
31
31
|
|
32
|
-
|
32
|
+
rails g right_rails
|
33
33
|
|
34
34
|
If you're using Rails 3.1 with the pipeline assets handler, then you
|
35
35
|
can require things in your +application.js+ file
|
data/Rakefile
CHANGED
data/init.rb
CHANGED
@@ -7,17 +7,26 @@ class RightRailsGenerator < Rails::Generators::Base
|
|
7
7
|
|
8
8
|
def manifest
|
9
9
|
source_path = File.dirname(__FILE__)
|
10
|
-
images_path = "#{source_path}/../../../
|
11
|
-
javascripts_path = "#{source_path}/../../../
|
10
|
+
images_path = "#{source_path}/../../../vendor/assets/images/rightjs-ui"
|
11
|
+
javascripts_path = "#{source_path}/../../../vendor/assets/javascripts"
|
12
12
|
|
13
13
|
# copying the javascript javascript files
|
14
|
-
directory javascripts_path , "public/javascripts
|
15
|
-
|
16
|
-
# creating the iframed uploads layout
|
17
|
-
copy_file source_path + "/templates/iframed.html.erb", "app/views/layouts/iframed.html.erb"
|
14
|
+
directory javascripts_path , "public/javascripts"
|
18
15
|
|
19
16
|
# copying the images in place
|
20
17
|
directory images_path, "public/images/rightjs-ui"
|
18
|
+
|
19
|
+
# patching up the JS files to use images from 'pubic/images'
|
20
|
+
Dir['public/javascripts/right/*.js'].each do |filename|
|
21
|
+
old_content = File.read(filename)
|
22
|
+
new_content = old_content.gsub("url(/assets/rightjs-ui/", "url(/images/rightjs-ui/")
|
23
|
+
|
24
|
+
if old_content != new_content
|
25
|
+
File.open(filename, "w") do |f|
|
26
|
+
f.write new_content
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
21
30
|
end
|
22
31
|
|
23
32
|
def banner
|
data/lib/right_rails.rb
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
#
|
4
4
|
#
|
5
5
|
module RightRails::ControllerExtensions
|
6
|
-
|
6
|
+
|
7
7
|
#
|
8
8
|
# This method returns a wrapped RightRails scripts builder
|
9
9
|
#
|
10
10
|
# USAGE:
|
11
11
|
# def create
|
12
12
|
# @zing = Zing.new(params[:zing])
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# if @zing.save
|
15
15
|
# flash[:notice] = 'Here you go'
|
16
16
|
# render rjs.insert @zing
|
@@ -36,21 +36,21 @@ module RightRails::ControllerExtensions
|
|
36
36
|
else
|
37
37
|
view_context
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
wrapper = RenderWrapper.new(template, options)
|
41
|
-
|
41
|
+
|
42
42
|
if block_given?
|
43
43
|
wrapper.render_block(&block)
|
44
44
|
else
|
45
45
|
wrapper
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
private
|
50
|
-
|
50
|
+
|
51
51
|
#
|
52
52
|
# This class wraps the standard JavaScript responses in the controller
|
53
|
-
#
|
53
|
+
#
|
54
54
|
# It delegates all the script generating calls to the JavaScriptGenerator
|
55
55
|
# instance, then grabs thre reults and creates a suitable hash of options
|
56
56
|
# for the ActionController::Base#render method
|
@@ -61,30 +61,43 @@ private
|
|
61
61
|
@generator = RightRails::JavaScriptGenerator.new(template)
|
62
62
|
@options = options
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
def render_block(&block)
|
66
66
|
yield(@generator)
|
67
67
|
render
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
70
|
def method_missing(name, *args)
|
71
71
|
@generator.send(name, *args)
|
72
|
-
render
|
72
|
+
render
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
#
|
76
76
|
# Compiles the options for the controller#render method
|
77
77
|
#
|
78
78
|
def render
|
79
79
|
result = {:text => @generator.to_s, :content_type => Mime::JS}
|
80
|
-
|
80
|
+
|
81
81
|
# iframed uploads context overloading
|
82
82
|
if @template.request.content_type == 'multipart/form-data'
|
83
|
-
result
|
83
|
+
result[:content_type] = Mime::HTML
|
84
|
+
result[:layout] = nil
|
85
|
+
result[:text] = %Q{
|
86
|
+
<!-- iframed uploads JS responses layout -->
|
87
|
+
<html>
|
88
|
+
<head>
|
89
|
+
<script type="text/javascript">
|
90
|
+
with (window.parent) {
|
91
|
+
#{result[:text]}
|
92
|
+
}
|
93
|
+
</script>
|
94
|
+
</head>
|
95
|
+
</html>
|
96
|
+
}.strip
|
84
97
|
end
|
85
|
-
|
98
|
+
|
86
99
|
result.merge! @options
|
87
100
|
end
|
88
101
|
end
|
89
|
-
|
102
|
+
|
90
103
|
end
|
@@ -9,12 +9,12 @@ module RightRails::Helpers::Misc
|
|
9
9
|
items = flash.collect{ |key, text|
|
10
10
|
content_tag(:div, text, :class => key)
|
11
11
|
}.sort.join("")
|
12
|
-
|
12
|
+
|
13
13
|
content_tag(:div, RightRails::Helpers.html_safe(items),
|
14
14
|
:id => :flashes, :style => (flash.empty? ? 'display: none' : nil))
|
15
15
|
end
|
16
|
-
|
17
|
-
|
16
|
+
|
17
|
+
|
18
18
|
#
|
19
19
|
# the autocompletion list result
|
20
20
|
#
|
@@ -30,26 +30,26 @@ module RightRails::Helpers::Misc
|
|
30
30
|
#
|
31
31
|
def autocomplete_result(entries, *args)
|
32
32
|
return if entries.empty?
|
33
|
-
|
33
|
+
|
34
34
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
35
35
|
highlight = options[:highlight]
|
36
36
|
escape = options[:escape].nil? ? true : options[:escape]
|
37
37
|
field = args.first
|
38
|
-
|
39
|
-
|
38
|
+
|
39
|
+
|
40
40
|
items = entries.collect{ |entry|
|
41
41
|
entry = entry.send(field) if field
|
42
|
-
text = highlight ? highlight(entry, highlight) : escape ?
|
43
|
-
|
42
|
+
text = highlight ? highlight(entry, highlight) : escape ? ERB::Util.html_escape(entry) : entry
|
43
|
+
|
44
44
|
content_tag :li, RightRails::Helpers.html_safe(text)
|
45
45
|
}.join("")
|
46
|
-
|
46
|
+
|
47
47
|
content_tag :ul, RightRails::Helpers.html_safe(items)
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
alias_method :autocompleter_result, :autocomplete_result
|
51
|
-
|
52
|
-
|
51
|
+
|
52
|
+
|
53
53
|
#
|
54
54
|
# Generates a link that whil load the refered address in a lightbox
|
55
55
|
#
|
@@ -61,21 +61,21 @@ module RightRails::Helpers::Misc
|
|
61
61
|
#
|
62
62
|
def link_to_lightbox(name, url={}, options={}, &block)
|
63
63
|
rightjs_require_module 'lightbox'
|
64
|
-
|
64
|
+
|
65
65
|
group = options.delete(:roadtrip) || options.delete(:group)
|
66
|
-
|
66
|
+
|
67
67
|
if RightRails::Config.rightjs_version < 2
|
68
68
|
options[:rel] = 'lightbox'
|
69
69
|
options[:rel] << "[roadtrip]" if group
|
70
70
|
else
|
71
71
|
options[:group] = group.to_s if group
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
RightRails::Helpers.add_unit_options(options, 'lightbox')
|
75
|
-
|
75
|
+
|
76
76
|
link_to name, url, options, &block
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
#
|
80
80
|
# Tabs container generator
|
81
81
|
#
|
@@ -99,25 +99,25 @@ module RightRails::Helpers::Misc
|
|
99
99
|
rightjs_require_module 'tabs'
|
100
100
|
@__tabs = []
|
101
101
|
yield()
|
102
|
-
|
102
|
+
|
103
103
|
options.stringify_keys!
|
104
|
-
|
104
|
+
|
105
105
|
tabs_type = options.delete('type')
|
106
106
|
options['id'] = options.delete('id') || "tabs-#{rand.to_s.split('.').last}"
|
107
|
-
|
107
|
+
|
108
108
|
# checking for the carousel class
|
109
109
|
if tabs_type == :carousel
|
110
110
|
options['class'] ||= ''
|
111
111
|
options['class'] << (options['class'] == '' ? '' : ' ') + "#{RightRails::Helpers.css_prefix}-tabs-carousel"
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
# extracting the tab id prefix option
|
115
115
|
tab_id_prefix = options[:idPrefix] || options['idPrefix'] || options[:id_prefix] || options['id_prefix'] || ''
|
116
|
-
|
116
|
+
|
117
117
|
RightRails::Helpers.add_unit_options(options, 'tabs')
|
118
|
-
|
118
|
+
|
119
119
|
tabs_widget_options = options.delete('data-tabs') || options.delete('data-tabs-options')
|
120
|
-
|
120
|
+
|
121
121
|
# simple tabs and carousels generator
|
122
122
|
content = if tabs_type != :harmonica
|
123
123
|
# tabs list
|
@@ -130,12 +130,12 @@ module RightRails::Helpers::Misc
|
|
130
130
|
}.join("\n")
|
131
131
|
)
|
132
132
|
) + "\n";
|
133
|
-
|
133
|
+
|
134
134
|
# contents list
|
135
135
|
bodies_list = @__tabs.collect{|tab|
|
136
136
|
tab[:content] ? content_tag(:li, tab[:content], :id => "#{tab_id_prefix}#{tab[:options][:id]}") + "\n" : ''
|
137
137
|
}.join("")
|
138
|
-
|
138
|
+
|
139
139
|
content_tag(:ul, tabs_list + RightRails::Helpers.html_safe(bodies_list), options)
|
140
140
|
else
|
141
141
|
# the harmonicas generator
|
@@ -149,26 +149,26 @@ module RightRails::Helpers::Misc
|
|
149
149
|
}.join("\n")
|
150
150
|
), options
|
151
151
|
)
|
152
|
-
|
152
|
+
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
content = content + RightRails::Helpers.html_safe("\n") + javascript_tag(
|
156
156
|
"new Tabs('#{options['id']}', #{tabs_widget_options || '{}'});"
|
157
157
|
)
|
158
|
-
|
158
|
+
|
159
159
|
defined?(Rails) && Rails::VERSION::MAJOR < 3 ? concat(content) : content
|
160
160
|
end
|
161
|
-
|
161
|
+
|
162
162
|
def tab(title, options={}, &block)
|
163
163
|
options[:id] = "tab-#{rand.to_s.split('.').last}" if !options[:id] && !options[:url]
|
164
|
-
|
164
|
+
|
165
165
|
@__tabs << {
|
166
166
|
:title => title,
|
167
167
|
:options => options,
|
168
168
|
:content => block_given? ? capture(&block) : nil
|
169
169
|
}
|
170
170
|
end
|
171
|
-
|
171
|
+
|
172
172
|
#
|
173
173
|
# The resizable unit helper
|
174
174
|
#
|
@@ -179,23 +179,23 @@ module RightRails::Helpers::Misc
|
|
179
179
|
#
|
180
180
|
def resizable(options={}, &block)
|
181
181
|
rightjs_require_module 'resizable'
|
182
|
-
|
182
|
+
|
183
183
|
RightRails::Helpers.add_unit_options(options, 'resizable')
|
184
|
-
|
184
|
+
|
185
185
|
options.delete('data-resizable') if options['data-resizable'] == "{}"
|
186
|
-
|
186
|
+
|
187
187
|
options[:class] ||= ''
|
188
188
|
options[:class] << " #{RightRails::Helpers.css_prefix}-resizable#{options[:direction] ? "-#{options.delete(:direction)}" : ''}"
|
189
189
|
options[:class].strip!
|
190
|
-
|
190
|
+
|
191
191
|
content = content_tag(:div, (
|
192
192
|
content_tag(:div, RightRails::Helpers.html_safe(capture(&block)),
|
193
193
|
:class => "#{RightRails::Helpers.css_prefix}-resizable-content") +
|
194
194
|
content_tag(:div, '', :class => "#{RightRails::Helpers.css_prefix}-resizable-handle")
|
195
195
|
), options
|
196
196
|
)
|
197
|
-
|
197
|
+
|
198
198
|
defined?(Rails) && Rails::VERSION::MAJOR < 3 ? concat(content) : content
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
end
|
@@ -55,6 +55,18 @@ module RightRails::Helpers::Rails
|
|
55
55
|
button_to_remote(value, options, html_options)
|
56
56
|
end
|
57
57
|
|
58
|
+
#
|
59
|
+
# Getting back Rails 3.0 kind of method that supports blocks
|
60
|
+
#
|
61
|
+
def button_to_function(name, *args, &block)
|
62
|
+
html_options = args.extract_options!.symbolize_keys
|
63
|
+
|
64
|
+
function = block_given? ? update_page(&block) : args[0] || ''
|
65
|
+
onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function};"
|
66
|
+
|
67
|
+
tag(:input, html_options.merge(:type => 'button', :value => name, :onclick => onclick))
|
68
|
+
end
|
69
|
+
|
58
70
|
#
|
59
71
|
# Replacing `periodically_call_remote` method
|
60
72
|
#
|
@@ -67,21 +79,28 @@ module RightRails::Helpers::Rails
|
|
67
79
|
#
|
68
80
|
# replacing the draggables generator to make our autoscripts stuff working
|
69
81
|
#
|
70
|
-
def draggable_element_js(
|
82
|
+
def draggable_element_js(element_id, options)
|
71
83
|
rightjs_require_module 'dnd'
|
72
|
-
|
73
|
-
super *args
|
84
|
+
%(new Draggable(#{ActiveSupport::JSON.encode(element_id)}, #{options_for_javascript(options)});)
|
74
85
|
end
|
75
86
|
|
76
87
|
#
|
77
88
|
# replace the droppables generator to be used with RightJS
|
78
89
|
#
|
79
|
-
def drop_receiving_element_js(
|
90
|
+
def drop_receiving_element_js(element_id, options={})
|
80
91
|
rightjs_require_module 'dnd'
|
81
92
|
|
82
|
-
|
83
|
-
|
84
|
-
|
93
|
+
options[:with] ||= "'id=' + encodeURIComponent(draggable.element.id)"
|
94
|
+
options[:onDrop] ||= "function(draggable){" + remote_function(options) + "}"
|
95
|
+
options.delete_if { |key, value| AJAX_OPTIONS.include?(key) }
|
96
|
+
|
97
|
+
options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept]
|
98
|
+
options[:hoverclass] = "'#{options[:hoverclass]}'" if options[:hoverclass]
|
99
|
+
|
100
|
+
# Confirmation happens during the onDrop callback, so it can be removed from the options
|
101
|
+
options.delete(:confirm) if options[:confirm]
|
102
|
+
|
103
|
+
%(new Droppable(#{ActiveSupport::JSON.encode(element_id)}, #{options_for_javascript(options)});)
|
85
104
|
end
|
86
105
|
|
87
106
|
#
|
@@ -100,4 +119,28 @@ module RightRails::Helpers::Rails
|
|
100
119
|
script << ")"
|
101
120
|
end
|
102
121
|
|
122
|
+
# ScriptaculousHelper substitute
|
123
|
+
|
124
|
+
CALLBACKS = Set.new([ :create, :uninitialized, :loading, :loaded, :interactive, :complete, :failure, :success ] + (100..599).to_a)
|
125
|
+
AJAX_OPTIONS = Set.new([ :before, :after, :condition, :url, :asynchronous, :method, :insertion, :position, :form, :with, :update, :script, :type ]).merge(CALLBACKS)
|
126
|
+
|
127
|
+
def array_or_string_for_javascript(option)
|
128
|
+
if option.kind_of?(Array)
|
129
|
+
"['#{option.join('\',\'')}']"
|
130
|
+
elsif !option.nil?
|
131
|
+
"'#{option}'"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def draggable_element(element_id, options = {})
|
136
|
+
javascript_tag(draggable_element_js(element_id, options).chop!)
|
137
|
+
end
|
138
|
+
|
139
|
+
def drop_receiving_element(element_id, options = {})
|
140
|
+
javascript_tag(drop_receiving_element_js(element_id, options).chop!)
|
141
|
+
end
|
142
|
+
|
143
|
+
def sortable_element(element_id, options = {})
|
144
|
+
javascript_tag(sortable_element_js(element_id, options).chop!)
|
145
|
+
end
|
103
146
|
end
|