diff --git a/Appraisals b/Appraisals index 50fe710..8e0b11c 100644 --- a/Appraisals +++ b/Appraisals @@ -1,5 +1,5 @@ appraise 'rails-3.2' do - gem 'rails', '3.2.21' + gem 'rails', '3.2.22' gem 'minitest', '~> 4.7' end @@ -8,9 +8,9 @@ appraise 'rails-4.0' do end appraise 'rails-4.1' do - gem 'rails', '4.1.10' + gem 'rails', '4.1.11' end appraise 'rails-4.2' do - gem 'rails', '4.2.1' + gem 'rails', '4.2.2' end diff --git a/CHANGELOG.md b/CHANGELOG.md index b525ca3..4dc490c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.20.0 + +* bootstrap 3.3.5 +* Test against Rails 3.22, 4.1.11 and 4.2.2 + ## 2.19.0 * bootstrap 3.3.4 diff --git a/gemfiles/rails_3.2.gemfile b/gemfiles/rails_3.2.gemfile index 6aa0b43..6a22adc 100644 --- a/gemfiles/rails_3.2.gemfile +++ b/gemfiles/rails_3.2.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "rails", "3.2.21" +gem "rails", "3.2.22" gem "minitest", "~> 4.7" gemspec :path => "../" diff --git a/gemfiles/rails_4.1.gemfile b/gemfiles/rails_4.1.gemfile index 9537116..d71f298 100644 --- a/gemfiles/rails_4.1.gemfile +++ b/gemfiles/rails_4.1.gemfile @@ -2,6 +2,6 @@ source "https://rubygems.org" -gem "rails", "4.1.10" +gem "rails", "4.1.11" gemspec :path => "../" diff --git a/gemfiles/rails_4.2.gemfile b/gemfiles/rails_4.2.gemfile index 2ce2652..abc566f 100644 --- a/gemfiles/rails_4.2.gemfile +++ b/gemfiles/rails_4.2.gemfile @@ -2,6 +2,6 @@ source "https://rubygems.org" -gem "rails", "4.2.1" +gem "rails", "4.2.2" gemspec :path => "../" diff --git a/lib/twbs_less_rails/version.rb b/lib/twbs_less_rails/version.rb index 7113862..c51b5dd 100644 --- a/lib/twbs_less_rails/version.rb +++ b/lib/twbs_less_rails/version.rb @@ -1,3 +1,3 @@ module TwbsLessRails - VERSION = "2.19.0" + VERSION = "2.20.0" end diff --git a/src/twbs/bootstrap b/src/twbs/bootstrap index a10eb60..16b4825 160000 --- a/src/twbs/bootstrap +++ b/src/twbs/bootstrap @@ -1 +1 @@ -Subproject commit a10eb60bc0b07b747fa0c4ebd8821eb7307bd07f +Subproject commit 16b48259a62f576e52c903c476bd42b90ab22482 diff --git a/vendor/assets/javascripts/twbs/bootstrap/affix.js b/vendor/assets/javascripts/twbs/bootstrap/affix.js index 9819764..11a3d39 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/affix.js +++ b/vendor/assets/javascripts/twbs/bootstrap/affix.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: affix.js v3.3.4 + * Bootstrap: affix.js v3.3.5 * http://getbootstrap.com/javascript/#affix * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -28,7 +28,7 @@ this.checkPosition() } - Affix.VERSION = '3.3.4' + Affix.VERSION = '3.3.5' Affix.RESET = 'affix affix-top affix-bottom' @@ -78,7 +78,7 @@ var offset = this.options.offset var offsetTop = offset.top var offsetBottom = offset.bottom - var scrollHeight = $(document.body).height() + var scrollHeight = Math.max($(document).height(), $(document.body).height()) if (typeof offset != 'object') offsetBottom = offsetTop = offset if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) diff --git a/vendor/assets/javascripts/twbs/bootstrap/alert.js b/vendor/assets/javascripts/twbs/bootstrap/alert.js index 1925ef0..a7787cb 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/alert.js +++ b/vendor/assets/javascripts/twbs/bootstrap/alert.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: alert.js v3.3.4 + * Bootstrap: alert.js v3.3.5 * http://getbootstrap.com/javascript/#alerts * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -18,7 +18,7 @@ $(el).on('click', dismiss, this.close) } - Alert.VERSION = '3.3.4' + Alert.VERSION = '3.3.5' Alert.TRANSITION_DURATION = 150 diff --git a/vendor/assets/javascripts/twbs/bootstrap/button.js b/vendor/assets/javascripts/twbs/bootstrap/button.js index 7c7c021..15d7dca 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/button.js +++ b/vendor/assets/javascripts/twbs/bootstrap/button.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: button.js v3.3.4 + * Bootstrap: button.js v3.3.5 * http://getbootstrap.com/javascript/#buttons * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -19,7 +19,7 @@ this.isLoading = false } - Button.VERSION = '3.3.4' + Button.VERSION = '3.3.5' Button.DEFAULTS = { loadingText: 'loading...' @@ -31,7 +31,7 @@ var val = $el.is('input') ? 'val' : 'html' var data = $el.data() - state = state + 'Text' + state += 'Text' if (data.resetText == null) $el.data('resetText', $el[val]()) @@ -56,15 +56,19 @@ if ($parent.length) { var $input = this.$element.find('input') if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') + if ($input.prop('checked')) changed = false + $parent.find('.active').removeClass('active') + this.$element.addClass('active') + } else if ($input.prop('type') == 'checkbox') { + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false + this.$element.toggleClass('active') } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + $input.prop('checked', this.$element.hasClass('active')) + if (changed) $input.trigger('change') } else { this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + this.$element.toggleClass('active') } - - if (changed) this.$element.toggleClass('active') } @@ -107,7 +111,7 @@ var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') Plugin.call($btn, 'toggle') - e.preventDefault() + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() }) .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) diff --git a/vendor/assets/javascripts/twbs/bootstrap/carousel.js b/vendor/assets/javascripts/twbs/bootstrap/carousel.js index a38ef14..6b2f1c4 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/carousel.js +++ b/vendor/assets/javascripts/twbs/bootstrap/carousel.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: carousel.js v3.3.4 + * Bootstrap: carousel.js v3.3.5 * http://getbootstrap.com/javascript/#carousel * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -30,7 +30,7 @@ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } - Carousel.VERSION = '3.3.4' + Carousel.VERSION = '3.3.5' Carousel.TRANSITION_DURATION = 600 diff --git a/vendor/assets/javascripts/twbs/bootstrap/collapse.js b/vendor/assets/javascripts/twbs/bootstrap/collapse.js index 954513c..329e535 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/collapse.js +++ b/vendor/assets/javascripts/twbs/bootstrap/collapse.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: collapse.js v3.3.4 + * Bootstrap: collapse.js v3.3.5 * http://getbootstrap.com/javascript/#collapse * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -29,7 +29,7 @@ if (this.options.toggle) this.toggle() } - Collapse.VERSION = '3.3.4' + Collapse.VERSION = '3.3.5' Collapse.TRANSITION_DURATION = 350 diff --git a/vendor/assets/javascripts/twbs/bootstrap/dropdown.js b/vendor/assets/javascripts/twbs/bootstrap/dropdown.js index 9874600..bc4d373 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/dropdown.js +++ b/vendor/assets/javascripts/twbs/bootstrap/dropdown.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: dropdown.js v3.3.4 + * Bootstrap: dropdown.js v3.3.5 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -19,7 +19,41 @@ $(element).on('click.bs.dropdown', this.toggle) } - Dropdown.VERSION = '3.3.4' + Dropdown.VERSION = '3.3.5' + + function getParent($this) { + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = selector && $(selector) + + return $parent && $parent.length ? $parent : $this.parent() + } + + function clearMenus(e) { + if (e && e.which === 3) return + $(backdrop).remove() + $(toggle).each(function () { + var $this = $(this) + var $parent = getParent($this) + var relatedTarget = { relatedTarget: this } + + if (!$parent.hasClass('open')) return + + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return + + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) + + if (e.isDefaultPrevented()) return + + $this.attr('aria-expanded', 'false') + $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) + }) + } Dropdown.prototype.toggle = function (e) { var $this = $(this) @@ -34,7 +68,10 @@ if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate - $('