bootstrap-generators 2.3.1.2 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +24 -623
- data/Rakefile +106 -0
- data/lib/bootstrap/generators/version.rb +1 -1
- data/lib/generators/bootstrap/install/install_generator.rb +5 -2
- data/lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.css.scss +3 -3
- data/lib/generators/bootstrap/install/templates/lib/templates/erb/scaffold/index.html.erb +1 -1
- data/lib/generators/bootstrap/install/templates/lib/templates/haml/scaffold/index.html.haml +1 -1
- data/readme-template.md.erb +179 -0
- data/test/lib/generators/bootstrap/install_generator_test.rb +9 -1
- data/vendor/assets/javascripts/bootstrap-affix.js +3 -3
- data/vendor/assets/javascripts/bootstrap-alert.js +3 -3
- data/vendor/assets/javascripts/bootstrap-button.js +3 -3
- data/vendor/assets/javascripts/bootstrap-carousel.js +3 -3
- data/vendor/assets/javascripts/bootstrap-collapse.js +3 -3
- data/vendor/assets/javascripts/bootstrap-dropdown.js +8 -4
- data/vendor/assets/javascripts/bootstrap-modal.js +3 -3
- data/vendor/assets/javascripts/bootstrap-popover.js +3 -3
- data/vendor/assets/javascripts/bootstrap-scrollspy.js +3 -3
- data/vendor/assets/javascripts/bootstrap-tab.js +3 -3
- data/vendor/assets/javascripts/bootstrap-tooltip.js +3 -3
- data/vendor/assets/javascripts/bootstrap-transition.js +3 -3
- data/vendor/assets/javascripts/bootstrap-typeahead.js +3 -3
- data/vendor/assets/javascripts/bootstrap.js +6 -6
- data/vendor/assets/stylesheets/bootstrap-responsive.css +1 -1
- data/vendor/assets/stylesheets/bootstrap.css +12 -3
- data/vendor/twitter/bootstrap/less/bootstrap.less +3 -3
- data/vendor/twitter/bootstrap/less/dropdowns.less +11 -0
- data/vendor/twitter/bootstrap/less/mixins.less +2 -2
- data/vendor/twitter/bootstrap/less/responsive.less +3 -3
- data/vendor/twitter/bootstrap/less/type.less +1 -1
- data/vendor/twitter/bootstrap/less/variables.less +2 -2
- data/vendor/twitter/bootstrap/sass/_dropdowns.scss +11 -0
- data/vendor/twitter/bootstrap/sass/_mixins.scss +25 -19
- data/vendor/twitter/bootstrap/sass/_variables.scss +5 -5
- data/vendor/twitter/bootstrap/sass/bootstrap.scss +1 -1
- data/vendor/twitter/bootstrap/sass/responsive.scss +1 -1
- metadata +3 -2
data/Rakefile
CHANGED
@@ -8,3 +8,109 @@ Rake::TestTask.new do |t|
|
|
8
8
|
end
|
9
9
|
|
10
10
|
task :default => :test
|
11
|
+
|
12
|
+
namespace :bootstrap do
|
13
|
+
desc "Update to a new version of Twitter Bootstrap"
|
14
|
+
task :update do
|
15
|
+
bootstrap_version = "2.3.2"
|
16
|
+
striped_bootstrap_generators_version = "2.3"
|
17
|
+
|
18
|
+
twitter_latest_dist_zip_url = "https://github.com/twbs/bootstrap/archive/v#{bootstrap_version}.zip"
|
19
|
+
twitter_sass_lastest_dist_zip_url = "https://github.com/jlong/sass-bootstrap/archive/v#{bootstrap_version}.zip"
|
20
|
+
twitter_bootstrap_dir = "tmp/bootstrap-#{bootstrap_version}"
|
21
|
+
twitter_sass_bootstrap_dir = "tmp/sass-bootstrap-#{bootstrap_version}"
|
22
|
+
|
23
|
+
# Make sure tmp/ dir exists
|
24
|
+
Dir.mkdir('tmp') unless File.exists?('tmp')
|
25
|
+
|
26
|
+
if File.exists?(twitter_bootstrap_dir)
|
27
|
+
puts "Twitter Bootstrap already downloaded."
|
28
|
+
else
|
29
|
+
# Download the latest version of Twitter Bootstrap
|
30
|
+
`wget -O tmp/bootstrap.zip #{twitter_latest_dist_zip_url}`
|
31
|
+
|
32
|
+
# Extract Twitter Bootstrap
|
33
|
+
`unzip -d tmp tmp/bootstrap.zip`
|
34
|
+
end
|
35
|
+
|
36
|
+
if File.exists?(twitter_sass_bootstrap_dir)
|
37
|
+
puts "Twitter Bootstrap Sass already downloaded."
|
38
|
+
else
|
39
|
+
# Download the latest version of Twitter Bootstrap Sass
|
40
|
+
`wget -O tmp/sass-bootstrap.zip #{twitter_sass_lastest_dist_zip_url}`
|
41
|
+
|
42
|
+
# Extract Twitter Bootstrap
|
43
|
+
`unzip -d tmp tmp/sass-bootstrap.zip`
|
44
|
+
end
|
45
|
+
|
46
|
+
# Reset Twitter Bootstrap JS files
|
47
|
+
bootstrap_javascript_dir = 'vendor/assets/javascripts'
|
48
|
+
bootstrap_main_javascript = 'vendor/assets/javascripts/bootstrap.js'
|
49
|
+
|
50
|
+
FileUtils.rm Dir.glob("#{bootstrap_javascript_dir}/*.js")
|
51
|
+
FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/js/*.js"), bootstrap_javascript_dir
|
52
|
+
|
53
|
+
# Rewrite base bootstrap.js
|
54
|
+
require_files = []
|
55
|
+
Dir.glob("#{bootstrap_javascript_dir}/*.js") do |js_file|
|
56
|
+
require_files << File.basename(js_file, '.*')
|
57
|
+
end
|
58
|
+
|
59
|
+
# Make sure that tooltip.js is before popover.js (Popover requires tooltip.js)
|
60
|
+
tooltip_position = require_files.index('bootstrap-tooltip')
|
61
|
+
popover_position = require_files.index('bootstrap-popover')
|
62
|
+
require_files.insert(popover_position, require_files.delete_at(tooltip_position))
|
63
|
+
|
64
|
+
File.open(bootstrap_main_javascript, 'w') do |file|
|
65
|
+
require_files.each do |require_file|
|
66
|
+
file.write("//= require #{require_file}\n")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# Reset Twitter Bootstrap Images
|
71
|
+
bootstrap_images_dir = 'vendor/assets/images'
|
72
|
+
|
73
|
+
FileUtils.rm Dir.glob("#{bootstrap_images_dir}/*")
|
74
|
+
FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/img/*"), bootstrap_images_dir
|
75
|
+
|
76
|
+
# Reset Twitter Bootstrap CSS file
|
77
|
+
FileUtils.cp "#{twitter_bootstrap_dir}/docs/assets/css/bootstrap.css", "vendor/assets/stylesheets/bootstrap.css"
|
78
|
+
FileUtils.cp "#{twitter_bootstrap_dir}/docs/assets/css/bootstrap-responsive.css", "vendor/assets/stylesheets/bootstrap-responsive.css"
|
79
|
+
|
80
|
+
# Reset Twitter Bootstrap LESS files
|
81
|
+
bootstrap_less_dir = 'vendor/twitter/bootstrap/less'
|
82
|
+
|
83
|
+
FileUtils.rm Dir.glob("#{bootstrap_less_dir}/*.less")
|
84
|
+
FileUtils.cp Dir.glob("#{twitter_bootstrap_dir}/less/*.less"), bootstrap_less_dir
|
85
|
+
|
86
|
+
# Reset Twitter Bootstrap SASS files
|
87
|
+
bootstrap_sass_dir = 'vendor/twitter/bootstrap/sass'
|
88
|
+
|
89
|
+
FileUtils.rm Dir.glob("#{bootstrap_sass_dir}/*.scss")
|
90
|
+
FileUtils.cp Dir.glob("#{twitter_sass_bootstrap_dir}/lib/*.scss"), bootstrap_sass_dir
|
91
|
+
|
92
|
+
# Copy bootstrap variables
|
93
|
+
FileUtils.cp "#{bootstrap_less_dir}/variables.less", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.less"
|
94
|
+
FileUtils.cp "#{bootstrap_sass_dir}/_variables.scss", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.css.scss"
|
95
|
+
|
96
|
+
# Change icon-font-path
|
97
|
+
["vendor/assets/stylesheets/bootstrap.css", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.less", "lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.css.scss"].each do |filepath|
|
98
|
+
file_content = File.read(filepath).gsub("../img/", "")
|
99
|
+
File.open(filepath, 'w') { |file| file.puts file_content }
|
100
|
+
end
|
101
|
+
|
102
|
+
# Generate README.md
|
103
|
+
require 'erb'
|
104
|
+
|
105
|
+
javascript_bootstrap_content_code = ""
|
106
|
+
File.open(bootstrap_main_javascript, 'r').each_line do |line|
|
107
|
+
javascript_bootstrap_content_code += " #{line}"
|
108
|
+
end
|
109
|
+
|
110
|
+
template = ERB.new File.read("readme-template.md.erb")
|
111
|
+
|
112
|
+
File.open('README.md', 'w') do |file|
|
113
|
+
file.write(template.result(binding))
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -48,8 +48,11 @@ module Bootstrap
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def inject_backbone
|
51
|
-
|
52
|
-
|
51
|
+
application_js_path = "app/assets/javascripts/application.js"
|
52
|
+
if File.exists?(File.join(destination_root, application_js_path))
|
53
|
+
inject_into_file application_js_path, :before => "//= require_tree" do
|
54
|
+
"//= require bootstrap\n"
|
55
|
+
end
|
53
56
|
end
|
54
57
|
end
|
55
58
|
end
|
data/lib/generators/bootstrap/install/templates/assets/stylesheets/bootstrap-variables.css.scss
CHANGED
@@ -62,9 +62,9 @@ $headingsColor: inherit !default; // empty to use BS default, $textColor
|
|
62
62
|
// -------------------------
|
63
63
|
// Based on 14px font-size and 20px line-height
|
64
64
|
|
65
|
-
$fontSizeLarge: $baseFontSize * 1.25; // ~18px
|
66
|
-
$fontSizeSmall: $baseFontSize * 0.85; // ~12px
|
67
|
-
$fontSizeMini: $baseFontSize * 0.75; // ~11px
|
65
|
+
$fontSizeLarge: $baseFontSize * 1.25 !default; // ~18px
|
66
|
+
$fontSizeSmall: $baseFontSize * 0.85 !default; // ~12px
|
67
|
+
$fontSizeMini: $baseFontSize * 0.75 !default; // ~11px
|
68
68
|
|
69
69
|
$paddingLarge: 11px 19px !default; // 44px
|
70
70
|
$paddingSmall: 2px 10px !default; // 26px
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<% end -%>
|
27
27
|
<td><%%= link_to 'Show', <%= singular_table_name %> %></td>
|
28
28
|
<td><%%= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>) %></td>
|
29
|
-
<td><%%= link_to 'Destroy', <%= singular_table_name %>, confirm: 'Are you sure?', method: :delete %></td>
|
29
|
+
<td><%%= link_to 'Destroy', <%= singular_table_name %>, data: { confirm: 'Are you sure?' }, method: :delete %></td>
|
30
30
|
</tr>
|
31
31
|
<%% end %>
|
32
32
|
</tbody>
|
@@ -22,4 +22,4 @@
|
|
22
22
|
<% end -%>
|
23
23
|
%td= link_to 'Show', <%= singular_table_name %>
|
24
24
|
%td= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
|
25
|
-
%td= link_to 'Destroy', <%= singular_table_name %>, :
|
25
|
+
%td= link_to 'Destroy', <%= singular_table_name %>, :data => { confirm: 'Are you sure?' }, :method => :delete
|
@@ -0,0 +1,179 @@
|
|
1
|
+
# Bootstrap Generators
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/decioferreira/bootstrap-generators.png?branch=master)](https://travis-ci.org/decioferreira/bootstrap-generators)
|
4
|
+
|
5
|
+
Bootstrap-generators provides [Twitter Bootstrap](http://twitter.github.com/bootstrap/) generators for Rails 4 (supported Rails >= 3.1). Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites.
|
6
|
+
|
7
|
+
## Current Twitter Bootstrap version
|
8
|
+
|
9
|
+
The current version of Twitter Bootstrap is <%= bootstrap_version %>.
|
10
|
+
|
11
|
+
## Installing Gem
|
12
|
+
|
13
|
+
In your Gemfile, add this line:
|
14
|
+
|
15
|
+
gem 'bootstrap-generators', '~> <%= striped_bootstrap_generators_version %>'
|
16
|
+
|
17
|
+
Or you can install from latest build:
|
18
|
+
|
19
|
+
gem 'bootstrap-generators', :git => 'git://github.com/decioferreira/bootstrap-generators.git'
|
20
|
+
|
21
|
+
By default Bootstrap Generators requires [SimpleForm 2.0](https://github.com/plataformatec/simple_form). Add the dependency on your Gemfile:
|
22
|
+
|
23
|
+
gem 'simple_form'
|
24
|
+
|
25
|
+
If you don't want to use SimpleForm, just pass the `--form_builder=form_builder` option:
|
26
|
+
|
27
|
+
rails generate bootstrap:install --form_builder=form_builder
|
28
|
+
|
29
|
+
Run bundle install:
|
30
|
+
|
31
|
+
bundle install
|
32
|
+
|
33
|
+
## Generators
|
34
|
+
|
35
|
+
Get started:
|
36
|
+
|
37
|
+
rails generate bootstrap:install -f
|
38
|
+
|
39
|
+
Once you've done that, any time you generate a controller or scaffold, you'll get [Bootstrap](http://twitter.github.com/bootstrap/) templates.
|
40
|
+
|
41
|
+
### Give it a try
|
42
|
+
|
43
|
+
rails generate scaffold post title:string body:text published:boolean
|
44
|
+
|
45
|
+
You can easily customize colors, grid system, fonts, and much more by editing `bootstrap-variables.[less|scss]` on your application assets folder.
|
46
|
+
|
47
|
+
## Usage
|
48
|
+
|
49
|
+
To print the options and usage run the command `rails generate bootstrap:install --help`
|
50
|
+
|
51
|
+
rails generate bootstrap:install [options]
|
52
|
+
|
53
|
+
Options:
|
54
|
+
[--layout=LAYOUT] # Bootstrap layout templates (hero or fluid)
|
55
|
+
# Default: hero
|
56
|
+
[--form-builder=FORM_BUILDER] # Select your form builder (simple_form or form_builder)
|
57
|
+
# Default: simple_form
|
58
|
+
-e, [--template-engine=TEMPLATE_ENGINE] # Indicates when to generate template engine
|
59
|
+
# Default: erb
|
60
|
+
-se, [--stylesheet-engine=STYLESHEET_ENGINE] # Indicates when to generate stylesheet engine
|
61
|
+
# Default: scss
|
62
|
+
|
63
|
+
Runtime options:
|
64
|
+
-f, [--force] # Overwrite files that already exist
|
65
|
+
-p, [--pretend] # Run but do not make any changes
|
66
|
+
-q, [--quiet] # Supress status output
|
67
|
+
-s, [--skip] # Skip files that already exist
|
68
|
+
|
69
|
+
Copy BootstrapGenerators default files
|
70
|
+
|
71
|
+
### Options
|
72
|
+
|
73
|
+
#### Layouts
|
74
|
+
|
75
|
+
There are the two available layouts, based on Bootstrap's quick-start examples:
|
76
|
+
|
77
|
+
* [Basic marketing site](http://getbootstrap.com/<%= bootstrap_version %>/examples/hero.html) (default)
|
78
|
+
* [Fluid layout](http://getbootstrap.com/<%= bootstrap_version %>/examples/fluid.html)
|
79
|
+
|
80
|
+
To select one of these layouts just pass the option `--layout=LAYOUT` to the install generator.
|
81
|
+
|
82
|
+
#### Form builders
|
83
|
+
|
84
|
+
* SimpleForm
|
85
|
+
|
86
|
+
By default Bootstrap Generators requires SimpleForm 2.0. Add the dependency on your Gemfile:
|
87
|
+
|
88
|
+
gem 'simple_form'
|
89
|
+
|
90
|
+
And then run:
|
91
|
+
|
92
|
+
rails generate bootstrap:install --form_builder=simple_form
|
93
|
+
|
94
|
+
* Default Rails form builder
|
95
|
+
|
96
|
+
If you don't want to use SimpleForm, just pass the `--form_builder=form_builder` option:
|
97
|
+
|
98
|
+
rails generate bootstrap:install --form_builder=form_builder
|
99
|
+
|
100
|
+
#### Template engines
|
101
|
+
|
102
|
+
Supported template engines:
|
103
|
+
|
104
|
+
* ERB
|
105
|
+
* Haml
|
106
|
+
|
107
|
+
##### Haml
|
108
|
+
|
109
|
+
Add the dependency on your Gemfile:
|
110
|
+
|
111
|
+
gem 'haml-rails'
|
112
|
+
|
113
|
+
And then run:
|
114
|
+
|
115
|
+
rails generate bootstrap:install --template-engine=haml
|
116
|
+
|
117
|
+
#### Stylesheet engines
|
118
|
+
|
119
|
+
Supported stylesheet engines:
|
120
|
+
|
121
|
+
* CSS
|
122
|
+
* SCSS
|
123
|
+
* LESS
|
124
|
+
|
125
|
+
##### SCSS
|
126
|
+
|
127
|
+
Make sure you have `sass-rails` dependency on your Gemfile:
|
128
|
+
|
129
|
+
gem 'sass-rails'
|
130
|
+
|
131
|
+
And then run:
|
132
|
+
|
133
|
+
rails generate bootstrap:install --stylesheet-engine=scss
|
134
|
+
|
135
|
+
Now you can customize the look and feel of Bootstrap.
|
136
|
+
|
137
|
+
##### LESS
|
138
|
+
|
139
|
+
Add the dependency on your Gemfile:
|
140
|
+
|
141
|
+
gem 'less-rails'
|
142
|
+
|
143
|
+
And then run:
|
144
|
+
|
145
|
+
rails generate bootstrap:install --stylesheet-engine=less
|
146
|
+
|
147
|
+
Now you can customize the look and feel of Bootstrap.
|
148
|
+
|
149
|
+
## Assets
|
150
|
+
|
151
|
+
<a name="customize"></a>
|
152
|
+
|
153
|
+
### Customize and extend Bootstrap
|
154
|
+
|
155
|
+
In Rails 3.0 and above, generators don’t just look in the source root for templates, they also search for templates in other paths. And one of them is lib/templates.
|
156
|
+
|
157
|
+
### Javascript
|
158
|
+
|
159
|
+
Select all jQuery plugins (`app/assets/javascripts/bootstrap.js`)
|
160
|
+
|
161
|
+
//= require bootstrap
|
162
|
+
|
163
|
+
Or quickly add only the necessary javascript (Transitions: required for any animation; Popovers: requires Tooltips)
|
164
|
+
|
165
|
+
<%= javascript_bootstrap_content_code %>
|
166
|
+
|
167
|
+
## Customizing Templates
|
168
|
+
|
169
|
+
In Rails 3.0 and above, generators don’t just look in the source root for templates, they also search for templates in other paths. And one of them is lib/templates.
|
170
|
+
|
171
|
+
Since Bootstrap Generators installs its templates under lib/templates, you can go and customize them.
|
172
|
+
|
173
|
+
## Credits
|
174
|
+
|
175
|
+
* [Twitter Bootstrap](http://twitter.github.com/bootstrap)
|
176
|
+
* [Twitter Bootstrap - Sass Conversion](https://github.com/jlong/sass-twitter-bootstrap)
|
177
|
+
* [SimpleForm](https://github.com/plataformatec/simple_form)
|
178
|
+
|
179
|
+
[customize]: #customize
|
@@ -44,7 +44,15 @@ class InstallGeneratorTest < Rails::Generators::TestCase
|
|
44
44
|
test "should require javascript bootstrap file" do
|
45
45
|
run_generator
|
46
46
|
|
47
|
-
assert_file "app/assets/javascripts/application.js", /require bootstrap/
|
47
|
+
assert_file "app/assets/javascripts/application.js", /require bootstrap/
|
48
|
+
end
|
49
|
+
|
50
|
+
test "should work when there is no application.js file" do
|
51
|
+
File.delete(File.join(destination_root, "app/assets/javascripts/application.js"))
|
52
|
+
|
53
|
+
assert_nothing_raised Errno::ENOENT do
|
54
|
+
run_generator
|
55
|
+
end
|
48
56
|
end
|
49
57
|
|
50
58
|
test "should copy css files" do
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* ==========================================================
|
2
|
-
* bootstrap-affix.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-affix.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#affix
|
4
4
|
* ==========================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* ==========================================================
|
2
|
-
* bootstrap-alert.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-alert.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#alerts
|
4
4
|
* ==========================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* ============================================================
|
2
|
-
* bootstrap-button.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-button.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#buttons
|
4
4
|
* ============================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* ==========================================================
|
2
|
-
* bootstrap-carousel.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-carousel.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#carousel
|
4
4
|
* ==========================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* =============================================================
|
2
|
-
* bootstrap-collapse.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-collapse.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#collapse
|
4
4
|
* =============================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/* ============================================================
|
2
|
-
* bootstrap-dropdown.js v2.3.
|
3
|
-
* http://
|
2
|
+
* bootstrap-dropdown.js v2.3.2
|
3
|
+
* http://getbootstrap.com/2.3.2/javascript.html#dropdowns
|
4
4
|
* ============================================================
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2013 Twitter, Inc.
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -52,6 +52,10 @@
|
|
52
52
|
clearMenus()
|
53
53
|
|
54
54
|
if (!isActive) {
|
55
|
+
if ('ontouchstart' in document.documentElement) {
|
56
|
+
// if mobile we we use a backdrop because click events don't delegate
|
57
|
+
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
|
58
|
+
}
|
55
59
|
$parent.toggleClass('open')
|
56
60
|
}
|
57
61
|
|
@@ -104,6 +108,7 @@
|
|
104
108
|
}
|
105
109
|
|
106
110
|
function clearMenus() {
|
111
|
+
$('.dropdown-backdrop').remove()
|
107
112
|
$(toggle).each(function () {
|
108
113
|
getParent($(this)).removeClass('open')
|
109
114
|
})
|
@@ -158,7 +163,6 @@
|
|
158
163
|
$(document)
|
159
164
|
.on('click.dropdown.data-api', clearMenus)
|
160
165
|
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
161
|
-
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
|
162
166
|
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
|
163
167
|
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
|
164
168
|
|