cruyff 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/SpecRunner.html +3 -2
- data/lib/cruyff/version.rb +1 -1
- data/lib/cruyff.rb +20 -0
- data/lib/generators/cruyff/install/install_generator.rb +61 -0
- data/lib/generators/cruyff/templates/jquery.cruyff.js +89 -0
- data/{spec/js_lib/rails-11.01.12.js → lib/generators/cruyff/templates/rails.js} +12 -3
- data/spec/CruyffSpec.js +10 -4
- metadata +58 -59
- data/lib/generators/cruyff_generator.rb +0 -14
- data/lib/generators/templates/jquery.cruyff.js +0 -174
data/SpecRunner.html
CHANGED
@@ -8,10 +8,10 @@
|
|
8
8
|
<script type="text/javascript" src="spec/js_lib/jquery-1.4.4.js"></script>
|
9
9
|
<script type="text/javascript" src="spec/js_lib/jquery.ba-bbq-1.2.1.js"></script>
|
10
10
|
<script type="text/javascript" src="spec/js_lib/jquery.form-2.52.js"></script>
|
11
|
-
<script type="text/javascript" src="spec/js_lib/rails-11.01.12.js"></script>
|
12
11
|
<script type="text/javascript" src="spec/js_lib/jasmine-jquery-1.1.3.js"></script>
|
13
12
|
|
14
|
-
<script type="text/javascript" src="lib/generators/templates/
|
13
|
+
<script type="text/javascript" src="lib/generators/cruyff/templates/rails.js"></script>
|
14
|
+
<script type="text/javascript" src="lib/generators/cruyff/templates/jquery.cruyff.js"></script>
|
15
15
|
|
16
16
|
<script type="text/javascript" src="spec/SpecHelper.js"></script>
|
17
17
|
<script type="text/javascript" src="spec/js_lib/jasmine-fixture.js"></script>
|
@@ -24,6 +24,7 @@
|
|
24
24
|
<script type="text/javascript">
|
25
25
|
$(function() {
|
26
26
|
/*
|
27
|
+
//this ajax call don't works on chrome. WTF???
|
27
28
|
$.ajax({
|
28
29
|
url: 'spec/fixtures/view.html',
|
29
30
|
success: function(data, status, xhr) {
|
data/lib/cruyff/version.rb
CHANGED
data/lib/cruyff.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Jquery
|
2
|
+
module Rails
|
3
|
+
class Railtie < ::Rails::Railtie
|
4
|
+
|
5
|
+
config.before_configuration do
|
6
|
+
require "jquery-rails/assert_select_jquery" if ::Rails.env.test?
|
7
|
+
|
8
|
+
if ::Rails.root.join("public/javascripts/jquery-ui.min.js").exist?
|
9
|
+
jq_defaults = %w(jquery jquery-ui)
|
10
|
+
jq_defaults.map!{|a| a + ".min" } if ::Rails.env.production?
|
11
|
+
else
|
12
|
+
jq_defaults = ::Rails.env.production? ? %w(jquery.min) : %w(jquery)
|
13
|
+
end
|
14
|
+
|
15
|
+
config.action_view.javascript_expansions[:defaults] = jq_defaults + %w(rails)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Cruyff
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
desc "This generator downloads and installs jQuery, jQuery-ujs HEAD, and (optionally) the newest jQuery UI"
|
5
|
+
class_option :ui, :type => :boolean, :default => false, :desc => "Include jQueryUI"
|
6
|
+
class_option :version, :type => :string, :default => "1.4.4", :desc => "Which version of jQuery to fetch"
|
7
|
+
@@default_version = "1.4.4"
|
8
|
+
|
9
|
+
def remove_prototype
|
10
|
+
%w(controls.js dragdrop.js effects.js prototype.js).each do |js|
|
11
|
+
remove_file "public/javascripts/#{js}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def download_jquery
|
16
|
+
say_status("fetching", "jQuery (#{options.version})", :green)
|
17
|
+
get_jquery(options.version)
|
18
|
+
rescue OpenURI::HTTPError
|
19
|
+
say_status("warning", "could not find jQuery (#{options.version})", :yellow)
|
20
|
+
say_status("fetching", "jQuery (#{@@default_version})", :green)
|
21
|
+
get_jquery(@@default_version)
|
22
|
+
end
|
23
|
+
|
24
|
+
def download_jquery_ui
|
25
|
+
if options.ui?
|
26
|
+
say_status("fetching", "jQuery UI (latest 1.x release)", :green)
|
27
|
+
get "http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js", "public/javascripts/jquery-ui.js"
|
28
|
+
get "http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js", "public/javascripts/jquery-ui.min.js"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def download_ujs_driver
|
33
|
+
say_status("fetching", "jQuery UJS Cruyff adapter (github HEAD)", :green)
|
34
|
+
get "https://github.com/andref5/cruyff/raw/master/lib/generators/cruyff/templates/rails.js", "public/javascripts/rails.js"
|
35
|
+
end
|
36
|
+
|
37
|
+
def download_cruyff
|
38
|
+
say_status("fetching", "jQuery Cruyff plugin (github HEAD)", :green)
|
39
|
+
get "https://github.com/andref5/cruyff/raw/master/lib/generators/cruyff/templates/jquery.cruyff.js", "public/javascripts/jquery.cruyff.js"
|
40
|
+
end
|
41
|
+
|
42
|
+
def download_jquery_bbq
|
43
|
+
say_status("fetching", "jQuery BBQ plugin: Back Button & Query Library (github HEAD)", :green)
|
44
|
+
get "https://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.js", "public/javascripts/jquery.ba-bbq.js"
|
45
|
+
end
|
46
|
+
|
47
|
+
def download_jquery_form
|
48
|
+
say_status("fetching", "jQuery Form plugin (github HEAD)", :green)
|
49
|
+
get "https://github.com/malsup/form/raw/master/jquery.form.js", "public/javascripts/jquery.form.js"
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def get_jquery(version)
|
55
|
+
get "http://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.js", "public/javascripts/jquery.js"
|
56
|
+
get "http://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.min.js", "public/javascripts/jquery.min.js"
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
(function($) {
|
2
|
+
|
3
|
+
var cruyffSettings = {
|
4
|
+
url: "",
|
5
|
+
method: "",
|
6
|
+
dataType: "",
|
7
|
+
data: "",
|
8
|
+
responseSelector: "#response",
|
9
|
+
response: [],
|
10
|
+
};
|
11
|
+
|
12
|
+
$.fn.handleRemoteCrud = function(element) {
|
13
|
+
var cs = this.cruyffSetup(element);
|
14
|
+
|
15
|
+
//call ajaxSubmit from jquery.form because provides a file upload mechanism.
|
16
|
+
element.ajaxSubmit({
|
17
|
+
url: cs.url,
|
18
|
+
type: cs.method || 'GET',
|
19
|
+
data: cs.data,
|
20
|
+
dataType: cs.dataType,
|
21
|
+
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
22
|
+
beforeSend: function(xhr, settings) {
|
23
|
+
if (settings.dataType === undefined) {
|
24
|
+
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
25
|
+
}
|
26
|
+
return fire(element, 'ajax:beforeSend', [xhr, settings]);
|
27
|
+
},
|
28
|
+
success: function(data, status, xhr) {
|
29
|
+
element.trigger('ajax:success', [data, status, xhr]);
|
30
|
+
cs.response.html(data);
|
31
|
+
},
|
32
|
+
complete: function(xhr, status) {
|
33
|
+
element.trigger('ajax:complete', [xhr, status]);
|
34
|
+
},
|
35
|
+
error: function(xhr, status, error) {
|
36
|
+
element.trigger('ajax:error', [xhr, status, error]);
|
37
|
+
cs.response.html(error.toString());
|
38
|
+
}
|
39
|
+
});
|
40
|
+
|
41
|
+
$.bbq.pushState("app=" + cs.url);
|
42
|
+
|
43
|
+
};
|
44
|
+
|
45
|
+
$.fn.cruyffSetup = function(element) {
|
46
|
+
var cs = cruyffSettings;
|
47
|
+
|
48
|
+
cs.response = $(cs.responseSelector);
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Rails.js Code 2011-01-12
|
52
|
+
**/
|
53
|
+
cs.dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
|
54
|
+
|
55
|
+
if (element.is('form')) {
|
56
|
+
cs.method = element.attr('method');
|
57
|
+
cs.url = element.attr('action');
|
58
|
+
cs.data = element.serializeArray();
|
59
|
+
// memoized value from clicked submit button
|
60
|
+
var button = element.data('ujs:submit-button');
|
61
|
+
if (button) {
|
62
|
+
cs.data.push(button);
|
63
|
+
element.data('ujs:submit-button', null);
|
64
|
+
}
|
65
|
+
} else {
|
66
|
+
cs.method = element.attr('data-method');
|
67
|
+
cs.url = element.attr('href');
|
68
|
+
cs.data = null;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* End Rails.js
|
72
|
+
**/
|
73
|
+
|
74
|
+
return cs;
|
75
|
+
};
|
76
|
+
|
77
|
+
//Override rails.js handleRemote
|
78
|
+
$.fn.handleRemote = function(element) {
|
79
|
+
this.handleRemoteCrud(element);
|
80
|
+
};
|
81
|
+
|
82
|
+
//Wrapper to rails.js fire function
|
83
|
+
function fire(obj, name, data) {
|
84
|
+
$.fn.fire(obj, name, data);
|
85
|
+
}
|
86
|
+
|
87
|
+
//$.fn.cruyffUrl = $.bbq.getState("app");
|
88
|
+
|
89
|
+
})( jQuery );
|
@@ -7,14 +7,22 @@
|
|
7
7
|
|
8
8
|
(function($) {
|
9
9
|
// Triggers an event on an element and returns the event result
|
10
|
-
|
10
|
+
function fire(obj, name, data) {
|
11
|
+
this.fire(obj, name, data);
|
12
|
+
}
|
13
|
+
// create a jQuery object to call from another context
|
14
|
+
$.fn.fire = function (obj, name, data) {
|
11
15
|
var event = new $.Event(name);
|
12
16
|
obj.trigger(event, data);
|
13
17
|
return event.result !== false;
|
14
18
|
}
|
15
19
|
|
16
20
|
// Submits "remote" forms and links with ajax
|
17
|
-
|
21
|
+
function handleRemote(element) {
|
22
|
+
$.fn.handleRemote(element);
|
23
|
+
}
|
24
|
+
// create a jQuery object to override
|
25
|
+
$.fn.handleRemote = function (element) {
|
18
26
|
var method, url, data,
|
19
27
|
dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
|
20
28
|
|
@@ -126,7 +134,7 @@
|
|
126
134
|
var name = button.attr('name'), data = name ? {name:name, value:button.val()} : null;
|
127
135
|
button.closest('form').data('ujs:submit-button', data);
|
128
136
|
});
|
129
|
-
|
137
|
+
|
130
138
|
$('form').live('ajax:beforeSend.rails', function(event) {
|
131
139
|
if (this == event.target) disableFormElements($(this));
|
132
140
|
});
|
@@ -135,3 +143,4 @@
|
|
135
143
|
if (this == event.target) enableFormElements($(this));
|
136
144
|
});
|
137
145
|
})( jQuery );
|
146
|
+
|
data/spec/CruyffSpec.js
CHANGED
@@ -6,6 +6,12 @@ describe('Cruyff',function() {
|
|
6
6
|
$.jasmine.inject('<div id="response"></div>');
|
7
7
|
});
|
8
8
|
|
9
|
+
it('should override rails handleRemote function',function(){
|
10
|
+
spyOn($.fn, 'handleRemoteCrud');
|
11
|
+
$.fn.handleRemote('element');
|
12
|
+
expect($.fn.handleRemoteCrud).wasCalled();
|
13
|
+
})
|
14
|
+
|
9
15
|
describe('Setup from hyperlink', function() {
|
10
16
|
beforeEach(function() {
|
11
17
|
$.jasmine.inject('<a href="spec/fixtures/view.html"\
|
@@ -110,7 +116,7 @@ describe('Cruyff',function() {
|
|
110
116
|
|
111
117
|
it('should render success response',function(){
|
112
118
|
runs(function() {
|
113
|
-
|
119
|
+
element.trigger('click');
|
114
120
|
});
|
115
121
|
waits(100);
|
116
122
|
runs(function() {
|
@@ -121,7 +127,7 @@ describe('Cruyff',function() {
|
|
121
127
|
it('should render error response',function(){
|
122
128
|
element.attr('href', 'bad/url');
|
123
129
|
runs(function() {
|
124
|
-
|
130
|
+
element.trigger('click');
|
125
131
|
});
|
126
132
|
waits(100);
|
127
133
|
runs(function() {
|
@@ -141,7 +147,7 @@ describe('Cruyff',function() {
|
|
141
147
|
|
142
148
|
it('should bookmark',function() {
|
143
149
|
runs(function() {
|
144
|
-
|
150
|
+
element.trigger('click');
|
145
151
|
});
|
146
152
|
waits(100);
|
147
153
|
runs(function() {
|
@@ -149,7 +155,7 @@ describe('Cruyff',function() {
|
|
149
155
|
});
|
150
156
|
});
|
151
157
|
|
152
|
-
|
158
|
+
xit('should load browser url',function() {
|
153
159
|
$.bbq.pushState('app=spec/fixtures/view.html');
|
154
160
|
expect($.fn.cruyffUrl).toEqual('spec/fixtures/view.html');
|
155
161
|
});
|
metadata
CHANGED
@@ -1,40 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cruyff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
version: 0.0.1
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
|
-
- Charger Tec
|
8
|
+
- Charger Tec
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-01-
|
13
|
+
date: 2011-01-21 00:00:00 -02:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
- 6
|
32
|
-
version: 0.2.6
|
33
|
-
type: :runtime
|
34
|
-
version_requirements: *id001
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: jquery-rails
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.2.6
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
35
27
|
description: Cruyff is a Ajax CRUD solution for Rails applications.
|
36
28
|
email:
|
37
|
-
- DM @andrefarina
|
29
|
+
- DM @andrefarina
|
38
30
|
executables: []
|
39
31
|
|
40
32
|
extensions: []
|
@@ -42,27 +34,28 @@ extensions: []
|
|
42
34
|
extra_rdoc_files: []
|
43
35
|
|
44
36
|
files:
|
45
|
-
- .gitignore
|
46
|
-
- Gemfile
|
47
|
-
- Rakefile
|
48
|
-
- Readme.md
|
49
|
-
- SpecRunner.html
|
50
|
-
- cruyff.gemspec
|
51
|
-
- lib/cruyff
|
52
|
-
- lib/
|
53
|
-
- lib/generators/
|
54
|
-
-
|
55
|
-
-
|
56
|
-
- spec/
|
57
|
-
- spec/
|
58
|
-
- spec/
|
59
|
-
- spec/js_lib/jasmine-1.0.1/jasmine.js
|
60
|
-
- spec/js_lib/jasmine-
|
61
|
-
- spec/js_lib/jasmine-
|
62
|
-
- spec/js_lib/
|
63
|
-
- spec/js_lib/jquery
|
64
|
-
- spec/js_lib/jquery
|
65
|
-
- spec/js_lib/
|
37
|
+
- .gitignore
|
38
|
+
- Gemfile
|
39
|
+
- Rakefile
|
40
|
+
- Readme.md
|
41
|
+
- SpecRunner.html
|
42
|
+
- cruyff.gemspec
|
43
|
+
- lib/cruyff.rb
|
44
|
+
- lib/cruyff/version.rb
|
45
|
+
- lib/generators/cruyff/install/install_generator.rb
|
46
|
+
- lib/generators/cruyff/templates/jquery.cruyff.js
|
47
|
+
- lib/generators/cruyff/templates/rails.js
|
48
|
+
- spec/CruyffSpec.js
|
49
|
+
- spec/SpecHelper.js
|
50
|
+
- spec/fixtures/view.html
|
51
|
+
- spec/js_lib/jasmine-1.0.1/jasmine-html.js
|
52
|
+
- spec/js_lib/jasmine-1.0.1/jasmine.css
|
53
|
+
- spec/js_lib/jasmine-1.0.1/jasmine.js
|
54
|
+
- spec/js_lib/jasmine-fixture.js
|
55
|
+
- spec/js_lib/jasmine-jquery-1.1.3.js
|
56
|
+
- spec/js_lib/jquery-1.4.4.js
|
57
|
+
- spec/js_lib/jquery.ba-bbq-1.2.1.js
|
58
|
+
- spec/js_lib/jquery.form-2.52.js
|
66
59
|
has_rdoc: true
|
67
60
|
homepage: https://github.com/andref5/cruyff
|
68
61
|
licenses: []
|
@@ -71,29 +64,35 @@ post_install_message:
|
|
71
64
|
rdoc_options: []
|
72
65
|
|
73
66
|
require_paths:
|
74
|
-
- lib
|
67
|
+
- lib
|
75
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
76
69
|
none: false
|
77
70
|
requirements:
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
- 0
|
82
|
-
version: "0"
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
83
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
75
|
none: false
|
85
76
|
requirements:
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
- 0
|
90
|
-
version: "0"
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
91
80
|
requirements: []
|
92
81
|
|
93
82
|
rubyforge_project:
|
94
|
-
rubygems_version: 1.
|
83
|
+
rubygems_version: 1.4.2
|
95
84
|
signing_key:
|
96
85
|
specification_version: 3
|
97
86
|
summary: Ajax CRUD solution for Rails applications.
|
98
|
-
test_files:
|
99
|
-
|
87
|
+
test_files:
|
88
|
+
- spec/CruyffSpec.js
|
89
|
+
- spec/SpecHelper.js
|
90
|
+
- spec/fixtures/view.html
|
91
|
+
- spec/js_lib/jasmine-1.0.1/jasmine-html.js
|
92
|
+
- spec/js_lib/jasmine-1.0.1/jasmine.css
|
93
|
+
- spec/js_lib/jasmine-1.0.1/jasmine.js
|
94
|
+
- spec/js_lib/jasmine-fixture.js
|
95
|
+
- spec/js_lib/jasmine-jquery-1.1.3.js
|
96
|
+
- spec/js_lib/jquery-1.4.4.js
|
97
|
+
- spec/js_lib/jquery.ba-bbq-1.2.1.js
|
98
|
+
- spec/js_lib/jquery.form-2.52.js
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
class CruyffGenerator < Rails::Generators::Base
|
4
|
-
def self.source_root
|
5
|
-
File.join(File.dirname(__FILE__), 'templates')
|
6
|
-
end
|
7
|
-
|
8
|
-
def install_cruyff
|
9
|
-
copy_file(
|
10
|
-
'jquery.cruyff.js',
|
11
|
-
'public/javascripts/jquery.cruyff.js'
|
12
|
-
)
|
13
|
-
end
|
14
|
-
end
|
@@ -1,174 +0,0 @@
|
|
1
|
-
(function($) {
|
2
|
-
|
3
|
-
var cruyffSettings = {
|
4
|
-
url: "",
|
5
|
-
method: "",
|
6
|
-
dataType: "",
|
7
|
-
data: "",
|
8
|
-
responseSelector: "#response",
|
9
|
-
response: [],
|
10
|
-
};
|
11
|
-
|
12
|
-
$.fn.handleRemoteCrud = function(element) {
|
13
|
-
var cs = this.cruyffSetup(element);
|
14
|
-
|
15
|
-
//call ajaxSubmit from jquery.form because provides a file upload mechanism.
|
16
|
-
element.ajaxSubmit({
|
17
|
-
url: cs.url,
|
18
|
-
type: cs.method || 'GET',
|
19
|
-
data: cs.data,
|
20
|
-
dataType: cs.dataType,
|
21
|
-
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
22
|
-
beforeSend: function(xhr, settings) {
|
23
|
-
if (settings.dataType === undefined) {
|
24
|
-
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
25
|
-
}
|
26
|
-
return fire(element, 'ajax:beforeSend', [xhr, settings]);
|
27
|
-
},
|
28
|
-
success: function(data, status, xhr) {
|
29
|
-
element.trigger('ajax:success', [data, status, xhr]);
|
30
|
-
cs.response.html(data);
|
31
|
-
},
|
32
|
-
complete: function(xhr, status) {
|
33
|
-
element.trigger('ajax:complete', [xhr, status]);
|
34
|
-
},
|
35
|
-
error: function(xhr, status, error) {
|
36
|
-
element.trigger('ajax:error', [xhr, status, error]);
|
37
|
-
cs.response.html(error.toString());
|
38
|
-
}
|
39
|
-
});
|
40
|
-
|
41
|
-
$.bbq.pushState("app=" + cs.url);
|
42
|
-
|
43
|
-
};
|
44
|
-
function handleRemote(element) {
|
45
|
-
$.fn.handleRemoteCrud(element);
|
46
|
-
}
|
47
|
-
|
48
|
-
$.fn.cruyffSetup = function(element) {
|
49
|
-
var cs = cruyffSettings;
|
50
|
-
|
51
|
-
cs.response = $(cs.responseSelector);
|
52
|
-
|
53
|
-
/**
|
54
|
-
* Rails.js Code 2011-01-12
|
55
|
-
**/
|
56
|
-
cs.dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
|
57
|
-
|
58
|
-
if (element.is('form')) {
|
59
|
-
cs.method = element.attr('method');
|
60
|
-
cs.url = element.attr('action');
|
61
|
-
cs.data = element.serializeArray();
|
62
|
-
// memoized value from clicked submit button
|
63
|
-
var button = element.data('ujs:submit-button');
|
64
|
-
if (button) {
|
65
|
-
cs.data.push(button);
|
66
|
-
element.data('ujs:submit-button', null);
|
67
|
-
}
|
68
|
-
} else {
|
69
|
-
cs.method = element.attr('data-method');
|
70
|
-
cs.url = element.attr('href');
|
71
|
-
cs.data = null;
|
72
|
-
}
|
73
|
-
/**
|
74
|
-
* End Rails.js $.bbq.getState
|
75
|
-
**/
|
76
|
-
|
77
|
-
return cs;
|
78
|
-
};
|
79
|
-
|
80
|
-
$.fn.cruyffUrl = $.bbq.getState("app");
|
81
|
-
|
82
|
-
console.log($.fn.cruyffUrl);
|
83
|
-
|
84
|
-
/**
|
85
|
-
* Rails.js Code 2011-01-12. I don't know yet how to override inner functions.
|
86
|
-
**/
|
87
|
-
function fire(obj, name, data) {
|
88
|
-
var event = new $.Event(name);
|
89
|
-
obj.trigger(event, data);
|
90
|
-
return event.result !== false;
|
91
|
-
}
|
92
|
-
// Handles "data-method" on links such as:
|
93
|
-
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
|
94
|
-
function handleMethod(link) {
|
95
|
-
var href = link.attr('href'),
|
96
|
-
method = link.attr('data-method'),
|
97
|
-
csrf_token = $('meta[name=csrf-token]').attr('content'),
|
98
|
-
csrf_param = $('meta[name=csrf-param]').attr('content'),
|
99
|
-
form = $('<form method="post" action="' + href + '"></form>'),
|
100
|
-
metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
|
101
|
-
|
102
|
-
if (csrf_param !== undefined && csrf_token !== undefined) {
|
103
|
-
metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
|
104
|
-
}
|
105
|
-
|
106
|
-
form.hide().append(metadata_input).appendTo('body');
|
107
|
-
form.submit();
|
108
|
-
}
|
109
|
-
|
110
|
-
function disableFormElements(form) {
|
111
|
-
form.find('input[data-disable-with]').each(function() {
|
112
|
-
var input = $(this);
|
113
|
-
input.data('ujs:enable-with', input.val())
|
114
|
-
.val(input.attr('data-disable-with'))
|
115
|
-
.attr('disabled', 'disabled');
|
116
|
-
});
|
117
|
-
}
|
118
|
-
|
119
|
-
function enableFormElements(form) {
|
120
|
-
form.find('input[data-disable-with]').each(function() {
|
121
|
-
var input = $(this);
|
122
|
-
input.val(input.data('ujs:enable-with')).removeAttr('disabled');
|
123
|
-
});
|
124
|
-
}
|
125
|
-
|
126
|
-
function allowAction(element) {
|
127
|
-
var message = element.attr('data-confirm');
|
128
|
-
return !message || (fire(element, 'confirm') && confirm(message));
|
129
|
-
}
|
130
|
-
|
131
|
-
$('a[data-confirm], a[data-method], a[data-remote]').die('click.rails').live('click.rails', function(e) {
|
132
|
-
var link = $(this);
|
133
|
-
if (!allowAction(link)) return false;
|
134
|
-
|
135
|
-
if (link.attr('data-remote')) {
|
136
|
-
handleRemote(link);
|
137
|
-
return false;
|
138
|
-
} else if (link.attr('data-method')) {
|
139
|
-
handleMethod(link);
|
140
|
-
return false;
|
141
|
-
}
|
142
|
-
});
|
143
|
-
|
144
|
-
$('form').die('submit.rails').live('submit.rails', function(e) {
|
145
|
-
var form = $(this);
|
146
|
-
if (!allowAction(form)) return false;
|
147
|
-
|
148
|
-
if (form.attr('data-remote')) {
|
149
|
-
handleRemote(form);
|
150
|
-
return false;
|
151
|
-
} else {
|
152
|
-
disableFormElements(form);
|
153
|
-
}
|
154
|
-
});
|
155
|
-
|
156
|
-
$('form input[type=submit], form button[type=submit], form button:not([type])').die('click.rails').live('click.rails', function() {
|
157
|
-
var button = $(this);
|
158
|
-
if (!allowAction(button)) return false;
|
159
|
-
// register the pressed submit button
|
160
|
-
var name = button.attr('name'), data = name ? {name:name, value:button.val()} : null;
|
161
|
-
button.closest('form').data('ujs:submit-button', data);
|
162
|
-
});
|
163
|
-
|
164
|
-
$('form').live('ajax:beforeSend.rails', function(event) {
|
165
|
-
if (this == event.target) disableFormElements($(this));
|
166
|
-
});
|
167
|
-
|
168
|
-
$('form').live('ajax:complete.rails', function(event) {
|
169
|
-
if (this == event.target) enableFormElements($(this));
|
170
|
-
});
|
171
|
-
/**
|
172
|
-
* End Rails.js
|
173
|
-
**/
|
174
|
-
})( jQuery );
|