bootstrap-generators 2.3.1.2 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](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
|
|