diff --git a/jquery-rails.gemspec b/jquery-rails_vho.gemspec similarity index 55% rename from jquery-rails.gemspec rename to jquery-rails_vho.gemspec index 8a810bcf..06c1dabf 100644 --- a/jquery-rails.gemspec +++ b/jquery-rails_vho.gemspec @@ -1,15 +1,15 @@ # -*- encoding: utf-8 -*- -require File.expand_path('../lib/jquery/rails/version', __FILE__) +require File.expand_path('../lib/jquery-rails/version', __FILE__) Gem::Specification.new do |s| - s.name = "jquery-rails" + s.name = "jquery-rails_vho" s.version = Jquery::Rails::VERSION s.platform = Gem::Platform::RUBY - s.authors = ["André Arko"] - s.email = ["andre@arko.net"] - s.homepage = "http://rubygems.org/gems/jquery-rails" - s.summary = "Use jQuery with Rails 3" - s.description = "This gem provides jQuery and the jQuery-ujs driver for your Rails 3 application." + s.authors = ["André Arko", "Volker Hochstein"] + s.email = ["andre@arko.net", "vhochstein@googlemail.com"] + s.homepage = "https://github.com/vhochstein/jquery-rails" + s.summary = "Use jQuery with Rails 3.1 and ActiveScaffold" + s.description = "This gem provides jQuery and the jQuery-ujs drivers for your Rails 3.1 activescaffold application." s.required_rubygems_version = ">= 1.3.6" s.rubyforge_project = "jquery-rails" @@ -17,9 +17,9 @@ Gem::Specification.new do |s| s.add_dependency "railties", "~> 3.0" s.add_dependency "thor", "~> 0.14" s.add_development_dependency "bundler", "~> 1.0.0" - s.add_development_dependency "rails", "~> 3.0" + s.add_development_dependency "rails", "~> 3.1" s.files = `git ls-files`.split("\n") s.executables = `git ls-files`.split("\n").select{|f| f =~ /^bin/} s.require_path = 'lib' -end \ No newline at end of file +end diff --git a/lib/jquery-rails.rb b/lib/jquery-rails.rb deleted file mode 100644 index a0fcf9a2..00000000 --- a/lib/jquery-rails.rb +++ /dev/null @@ -1 +0,0 @@ -require 'jquery/rails' \ No newline at end of file diff --git a/lib/jquery/assert_select.rb b/lib/jquery-rails/assert_select_jquery.rb similarity index 100% rename from lib/jquery/assert_select.rb rename to lib/jquery-rails/assert_select_jquery.rb diff --git a/lib/jquery/rails/engine.rb b/lib/jquery-rails/engine.rb similarity index 72% rename from lib/jquery/rails/engine.rb rename to lib/jquery-rails/engine.rb index ee6139bf..a059e416 100644 --- a/lib/jquery/rails/engine.rb +++ b/lib/jquery-rails/engine.rb @@ -4,7 +4,7 @@ module Rails class Engine < ::Rails::Engine config.before_configuration do - require "jquery/assert_select" if ::Rails.env.test? + require "jquery-rails/assert_select_jquery" if ::Rails.env.test? end end diff --git a/lib/jquery/rails/railtie.rb b/lib/jquery-rails/railtie.rb similarity index 92% rename from lib/jquery/rails/railtie.rb rename to lib/jquery-rails/railtie.rb index bead2d29..1b70a50e 100644 --- a/lib/jquery/rails/railtie.rb +++ b/lib/jquery-rails/railtie.rb @@ -4,7 +4,7 @@ module Rails class Railtie < ::Rails::Railtie config.before_configuration do - require "jquery/assert_select" if ::Rails.env.test? + require "jquery-rails/assert_select_jquery" if ::Rails.env.test? if ::Rails.root.join("public/javascripts/jquery-ui.min.js").exist? jq_defaults = %w(jquery jquery-ui) diff --git a/lib/jquery/rails/version.rb b/lib/jquery-rails/version.rb similarity index 63% rename from lib/jquery/rails/version.rb rename to lib/jquery-rails/version.rb index 421e89ac..580152ae 100644 --- a/lib/jquery/rails/version.rb +++ b/lib/jquery-rails/version.rb @@ -1,5 +1,5 @@ module Jquery module Rails - VERSION = "1.0.9" + VERSION = "0.0.3" end end diff --git a/lib/jquery-rails_vho.rb b/lib/jquery-rails_vho.rb new file mode 100644 index 00000000..2ac167ae --- /dev/null +++ b/lib/jquery-rails_vho.rb @@ -0,0 +1,12 @@ +module Jquery + PROTOTYPE_JS = %w{prototype effects dragdrop controls} + + module Rails + if ::Rails.version < "3.1" + require 'jquery-rails/railtie' + else + require 'jquery-rails/engine' + end + end + +end diff --git a/lib/jquery/rails.rb b/lib/jquery/rails.rb deleted file mode 100644 index ead695dd..00000000 --- a/lib/jquery/rails.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Jquery - module Rails - PROTOTYPE_JS = %w{prototype effects dragdrop controls} - - if ::Rails.version < "3.1" - require 'jquery/rails/railtie' - else - require 'jquery/rails/engine' - end - end -end diff --git a/vendor/assets/javascripts/jquery_ujs.js b/vendor/assets/javascripts/jquery_ujs.js index a129ef4a..49ad092a 100644 --- a/vendor/assets/javascripts/jquery_ujs.js +++ b/vendor/assets/javascripts/jquery_ujs.js @@ -49,7 +49,7 @@ $.rails = rails = { // Link elements bound by jquery-ujs - linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]', + linkClickSelector: 'a[data-confirm], input[data-confirm], a[data-method], a[data-remote], input[data-remote]', // Form elements bound by jquery-ujs formSubmitSelector: 'form', @@ -79,7 +79,7 @@ fire: function(obj, name, data) { var event = $.Event(name); obj.trigger(event, data); - return event.result !== false; + return event; }, // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm @@ -94,14 +94,14 @@ // Submits "remote" forms and links with ajax handleRemote: function(element) { - var method, url, data, - dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType); - - if (rails.fire(element, 'ajax:before')) { - + var method, url, data, dataType; + + var event = rails.fire(element, 'ajax:before'); + if (event.result !== false) { + dataType = event.data_type || element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType); + method = event.data_method || element.attr('method') || element.attr('data-method') || 'GET' if (element.is('form')) { - method = element.attr('method'); - url = element.attr('action'); + url = event.data_url || element.attr('action'); data = element.serializeArray(); // memoized value from clicked submit button var button = element.data('ujs:submit-button'); @@ -110,8 +110,7 @@ element.data('ujs:submit-button', null); } } else { - method = element.data('method'); - url = element.attr('href'); + url = event.data_url || element.attr('href'); data = element.data('params') || null; } @@ -119,10 +118,10 @@ url: url, type: method || 'GET', data: data, dataType: dataType, // stopping the "ajax:beforeSend" event will cancel the ajax request beforeSend: function(xhr, settings) { - if (settings.dataType === undefined) { + if (settings.dataType === undefined || settings.dataType === 'text') { xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script); } - return rails.fire(element, 'ajax:beforeSend', [xhr, settings]); + return rails.fire(element, 'ajax:beforeSend', [xhr, settings]).result !== false; }, success: function(data, status, xhr) { element.trigger('ajax:success', [data, status, xhr]); @@ -196,9 +195,9 @@ answer = false, callback; if (!message) { return true; } - if (rails.fire(element, 'confirm')) { + if (rails.fire(element, 'confirm').result !== false) { answer = rails.confirm(message); - callback = rails.fire(element, 'confirm:complete', [answer]); + callback = rails.fire(element, 'confirm:complete', [answer]).result !== false; } return answer && callback; }, @@ -271,13 +270,13 @@ if (!rails.allowAction(form)) return rails.stopEverything(e); // skip other logic when required values are missing or file upload is present - if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) { + if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs]).result !== false) { return rails.stopEverything(e); } if (remote) { if (nonBlankFileInputs) { - return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]); + return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]).result !== false; } // If browser does not support submit bubbling, then this live-binding will be called before direct