window_rails 0.2.10 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +4 -0
- data/LICENSE +1 -1
- data/README.rdoc +18 -12
- data/lib/window_rails.rb +4 -1
- data/lib/window_rails/engine.rb +4 -5
- data/lib/window_rails/version.rb +1 -1
- data/lib/window_rails/window_rails_generators.rb +5 -2
- data/lib/window_rails/window_rails_view.rb +1 -1
- data/lib/window_rails/window_rails_windows.rb +45 -0
- metadata +5 -5
- data/lib/window_rails/tasks.rb +0 -69
data/CHANGELOG.rdoc
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Current WindowRails License:
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2012 Chris Roberts <chrisroberts.code@gmail.com>
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
a copy of this software and associated documentation files (the
|
data/README.rdoc
CHANGED
@@ -4,7 +4,7 @@ WindowRails is a plugin for Rails that provides easy to use AJAXy windows. It is
|
|
4
4
|
completely on {jQueryUI}[http://jquery-ui.com] with helpers for Rails to make it easy to
|
5
5
|
use from a Rails app.
|
6
6
|
|
7
|
-
WindowRails is now happily compatible with Rails 2 and Rails 3.
|
7
|
+
WindowRails is now happily compatible with Rails 2 and Rails 3 (and now 3.1).
|
8
8
|
|
9
9
|
== Requirements
|
10
10
|
|
@@ -13,7 +13,9 @@ WindowRails is now happily compatible with Rails 2 and Rails 3.
|
|
13
13
|
|
14
14
|
== Installation
|
15
15
|
|
16
|
-
|
16
|
+
Add window_rails to your application Gemfile:
|
17
|
+
|
18
|
+
gem 'window_rails'
|
17
19
|
|
18
20
|
=== Basic examples to get you started
|
19
21
|
|
@@ -42,20 +44,24 @@ WindowRails is now happily compatible with Rails 2 and Rails 3.
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
|
46
|
-
|
47
|
-
<%= link_to_window('Link', :iframe => {:controller => :my_controller, :action => :my_action}, :window => 'some_name') %>
|
48
|
-
|
49
|
-
With this approach the contents of the HTML respond to block will be loaded into the window
|
47
|
+
# or via JS template:
|
48
|
+
# app/views/my_resources/action.js.erb
|
50
49
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
<%=
|
51
|
+
open_window(
|
52
|
+
{:partial => 'action_partial'},
|
53
|
+
:width => 400,
|
54
|
+
:height => 500,
|
55
|
+
:title => 'My Window',
|
56
|
+
:window => 'unique_window_name'
|
57
|
+
)
|
58
|
+
%>
|
56
59
|
|
57
60
|
== Window Interactions
|
58
61
|
|
62
|
+
Examples are shown using the old generator style. For rails 3.1 and beyond, the methods should be defined
|
63
|
+
within the JS views
|
64
|
+
|
59
65
|
==== Opening a window via AJAX
|
60
66
|
def open_my_window
|
61
67
|
respond_to do |format|
|
data/lib/window_rails.rb
CHANGED
@@ -3,7 +3,10 @@ require 'window_rails/version'
|
|
3
3
|
if(defined?(Rails::Engine))
|
4
4
|
require 'window_rails/engine'
|
5
5
|
else
|
6
|
-
|
6
|
+
if(defined?(ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods))
|
7
|
+
require 'window_rails/window_rails_generators'
|
8
|
+
end
|
9
|
+
%w(window_rails_windows window_rails_view).each do |part|
|
7
10
|
require "window_rails/#{part}"
|
8
11
|
end
|
9
12
|
end
|
data/lib/window_rails/engine.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
module WindowRails
|
2
2
|
class Engine < Rails::Engine
|
3
|
-
|
4
|
-
rake_tasks do
|
5
|
-
require 'window_rails/tasks'
|
6
|
-
end
|
7
3
|
|
8
4
|
# We do all our setup in here
|
9
5
|
config.to_prepare do
|
10
|
-
|
6
|
+
if(defined?(ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods))
|
7
|
+
require 'window_rails/window_rails_generators'
|
8
|
+
end
|
9
|
+
%w(window_rails_windows window_rails_view).each do |part|
|
11
10
|
require "window_rails/#{part}"
|
12
11
|
end
|
13
12
|
end
|
data/lib/window_rails/version.rb
CHANGED
@@ -91,7 +91,7 @@ module WindowRailsGenerators
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def window_setup
|
94
|
-
@
|
94
|
+
@_window_rails_setup ||= false
|
95
95
|
unless(@set)
|
96
96
|
self << '
|
97
97
|
if(typeof(window.window_rails_windows) == "undefined") {
|
@@ -101,7 +101,7 @@ module WindowRailsGenerators
|
|
101
101
|
}
|
102
102
|
'
|
103
103
|
end
|
104
|
-
@
|
104
|
+
@_window_rails_setup = true
|
105
105
|
nil
|
106
106
|
end
|
107
107
|
|
@@ -131,6 +131,7 @@ module WindowRailsGenerators
|
|
131
131
|
# result will be placed in the window (basically an easy way to integrate partials:
|
132
132
|
# page.update_window(:partial => 'my_parital'))
|
133
133
|
def update_window(content, options={})
|
134
|
+
window_setup
|
134
135
|
win = options.delete(:window)
|
135
136
|
error = options.delete(:error)
|
136
137
|
key = store_content(content)
|
@@ -228,6 +229,7 @@ module WindowRailsGenerators
|
|
228
229
|
# so we aren't storing worthless junk:
|
229
230
|
# window.window_rails_windows_array.splice(window.window_rails_windows_array.indexOf('#{win}'), 1);
|
230
231
|
def create_window(key, win, options)
|
232
|
+
window_setup
|
231
233
|
options[:auto_open] ||= false
|
232
234
|
options[:close] = "function(event,ui){
|
233
235
|
#{
|
@@ -313,6 +315,7 @@ module WindowRailsGenerators
|
|
313
315
|
# be isolated from the current page, but this isolation means it cannot communicate with other windows on the page (including
|
314
316
|
# its own).
|
315
317
|
def open_window(content, options={})
|
318
|
+
window_setup
|
316
319
|
key = nil
|
317
320
|
if(options[:iframe])
|
318
321
|
iframe = @context.url_for(options.delete(:iframe))
|
@@ -24,7 +24,7 @@ module WindowRailsView
|
|
24
24
|
# options:: Options hash supplied to windowing system
|
25
25
|
# Extra options include :method and :delay. :delay is the number
|
26
26
|
# of seconds to wait after page load to open window
|
27
|
-
def
|
27
|
+
def open_window_deprecated(options={})
|
28
28
|
frame_url = options.has_key?(:iframe) ? url_for(options.delete(:iframe)) : nil
|
29
29
|
window_url = options.has_key?(:url) ? url_for(options.delete(:url)) : nil
|
30
30
|
method = options.delete(:method) || 'get'
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module WindowRails
|
2
|
+
class Holder
|
3
|
+
include WindowRailsGenerators
|
4
|
+
|
5
|
+
attr_accessor :context
|
6
|
+
|
7
|
+
def initialize(args={})
|
8
|
+
@context = args[:context]
|
9
|
+
@buffer = ''
|
10
|
+
end
|
11
|
+
|
12
|
+
def << (string)
|
13
|
+
@buffer << string.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def window_flush
|
17
|
+
buf = @buffer.dup
|
18
|
+
@buffer = ''
|
19
|
+
buf
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module WindowRails
|
25
|
+
module Windows
|
26
|
+
def self.included(base)
|
27
|
+
WindowRailsGenerators.instance_methods(false).each do |method|
|
28
|
+
base.class_eval do
|
29
|
+
def _window_rails_holder
|
30
|
+
@_window_rails_holder ||= WindowRails::Holder.new
|
31
|
+
end
|
32
|
+
|
33
|
+
define_method method do |*args|
|
34
|
+
_window_rails_holder.context = self
|
35
|
+
_window_rails_holder.send(method, *args)
|
36
|
+
_window_rails_holder.window_flush.html_safe
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
ActionView::Base.send(:include, WindowRails::Windows)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: window_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 11
|
10
|
+
version: 0.2.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chris Roberts
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-02-10 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -66,7 +66,7 @@ files:
|
|
66
66
|
- lib/window_rails.rb
|
67
67
|
- lib/window_rails/engine.rb
|
68
68
|
- lib/window_rails/window_rails_view.rb
|
69
|
-
- lib/window_rails/
|
69
|
+
- lib/window_rails/window_rails_windows.rb
|
70
70
|
- lib/window_rails/window_rails_generators.rb
|
71
71
|
- lib/window_rails/version.rb
|
72
72
|
- rails/init.rb
|
data/lib/window_rails/tasks.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
namespace :window_rails do
|
4
|
-
|
5
|
-
desc 'Install window_rails'
|
6
|
-
task :install do
|
7
|
-
FileUtils.mkdir_p(File.join(Rails.root, 'public', 'window_rails'))
|
8
|
-
Rake::Task['window_rails:install_javascripts'].invoke
|
9
|
-
Rake::Task['window_rails:install_stylesheets'].invoke
|
10
|
-
Rake::Task['window_rails:install_assets'].invoke
|
11
|
-
Rake::Task['window_rails:install_version'].invoke
|
12
|
-
puts '*' * 50
|
13
|
-
puts 'WindowRails installation is complete.'
|
14
|
-
puts 'NOTE: Please refer to README file for any additional setup.'
|
15
|
-
puts '*' * 50
|
16
|
-
end
|
17
|
-
|
18
|
-
task :upgrade do
|
19
|
-
Rake::Task['window_rails:install_javascripts'].invoke
|
20
|
-
Rake::Task['window_rails:install_stylesheets'].invoke
|
21
|
-
Rake::Task['window_rails:install_assets'].invoke
|
22
|
-
puts 'WindowRails files have been updated to most current version'
|
23
|
-
end
|
24
|
-
|
25
|
-
task :install_javascripts do
|
26
|
-
install_items('javascripts')
|
27
|
-
end
|
28
|
-
|
29
|
-
task :install_stylesheets do
|
30
|
-
install_items('stylesheets')
|
31
|
-
end
|
32
|
-
|
33
|
-
task :install_assets do
|
34
|
-
install_items('images')
|
35
|
-
end
|
36
|
-
|
37
|
-
task :install_version do
|
38
|
-
f = File.open(File.join(Rails.root, 'public', 'window_rails', 'version'), 'w')
|
39
|
-
f.write WindowRails::VERSION
|
40
|
-
f.close
|
41
|
-
puts 'Version file written'
|
42
|
-
end
|
43
|
-
|
44
|
-
desc 'Output current version information'
|
45
|
-
task :version do
|
46
|
-
asset_version = nil
|
47
|
-
if(File.exists?(File.join(Rails.root, 'public', 'window_rails', 'version')))
|
48
|
-
asset_version = File.read(File.join(Rails.root, 'public', 'window_rails', 'version')).strip
|
49
|
-
end
|
50
|
-
puts "Current WindowRails version: #{WindowRails::VERSION}"
|
51
|
-
puts "Current WindowRails assets version: #{asset_version}"
|
52
|
-
if(WindowRails::VERSION != asset_version.to_s)
|
53
|
-
puts "WARNING #{'*' * 50}"
|
54
|
-
puts 'WindowRails assets within project are out of date'
|
55
|
-
puts 'Please run: rake window_rails:upgrade'
|
56
|
-
puts "WARNING #{'*' * 50}"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def install_items(item)
|
62
|
-
FileUtils.mkdir_p(File.join(Rails.root, 'public', 'window_rails', item))
|
63
|
-
FileUtils.cp_r(
|
64
|
-
File.join(File.dirname(__FILE__), '..', '..', 'files', item, File::SEPARATOR, '.'),
|
65
|
-
File.join(Rails.root, 'public', 'window_rails', item)
|
66
|
-
)
|
67
|
-
puts "#{item.titleize} files installed."
|
68
|
-
end
|
69
|
-
|