twitter-bootstrap-rails 2.2.3 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of twitter-bootstrap-rails might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/README.md +460 -185
- data/Rakefile +7 -1
- data/app/assets/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fontawesome-webfont.svg +640 -0
- data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/javascripts/twitter/bootstrap.js +12 -0
- data/app/assets/javascripts/twitter/bootstrap/affix.js +142 -0
- data/app/assets/javascripts/twitter/bootstrap/alert.js +92 -0
- data/app/assets/javascripts/twitter/bootstrap/button.js +110 -0
- data/app/assets/javascripts/twitter/bootstrap/carousel.js +223 -0
- data/app/assets/javascripts/twitter/bootstrap/collapse.js +170 -0
- data/app/assets/javascripts/twitter/bootstrap/dropdown.js +151 -0
- data/app/assets/javascripts/twitter/bootstrap/modal.js +280 -0
- data/app/assets/javascripts/twitter/bootstrap/popover.js +113 -0
- data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +170 -0
- data/app/assets/javascripts/twitter/bootstrap/tab.js +128 -0
- data/app/assets/javascripts/twitter/bootstrap/tooltip.js +457 -0
- data/app/assets/javascripts/twitter/bootstrap/transition.js +59 -0
- data/{vendor → app}/assets/javascripts/twitter/bootstrap_ujs.js +0 -0
- data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -0
- data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +2026 -0
- data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -0
- data/app/helpers/badge_label_helper.rb +16 -0
- data/app/helpers/bootstrap_flash_helper.rb +20 -6
- data/app/helpers/form_errors_helper.rb +22 -0
- data/app/helpers/glyph_helper.rb +13 -5
- data/app/helpers/modal_helper.rb +37 -20
- data/app/helpers/navbar_helper.rb +209 -0
- data/app/helpers/twitter_breadcrumbs_helper.rb +11 -2
- data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +9 -9
- data/lib/generators/bootstrap/install/install_generator.rb +13 -8
- data/lib/generators/bootstrap/install/templates/bootstrap.coffee +2 -3
- data/lib/generators/bootstrap/install/templates/bootstrap.js +2 -3
- data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +14 -13
- data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +11 -5
- data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
- data/lib/generators/bootstrap/layout/templates/layout.html.erb +34 -58
- data/lib/generators/bootstrap/layout/templates/layout.html.haml +25 -44
- data/lib/generators/bootstrap/layout/templates/layout.html.slim +20 -39
- data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
- data/lib/generators/bootstrap/themed/templates/_form.html.erb +30 -10
- data/lib/generators/bootstrap/themed/templates/_form.html.haml +10 -8
- data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -9
- data/lib/generators/bootstrap/themed/templates/edit.html.erb +1 -2
- data/lib/generators/bootstrap/themed/templates/edit.html.haml +1 -1
- data/lib/generators/bootstrap/themed/templates/edit.html.slim +2 -2
- data/lib/generators/bootstrap/themed/templates/index.html.erb +3 -3
- data/lib/generators/bootstrap/themed/templates/index.html.haml +3 -3
- data/lib/generators/bootstrap/themed/templates/index.html.slim +5 -6
- data/lib/generators/bootstrap/themed/templates/new.html.erb +1 -2
- data/lib/generators/bootstrap/themed/templates/new.html.haml +1 -1
- data/lib/generators/bootstrap/themed/templates/new.html.slim +2 -2
- data/lib/generators/bootstrap/themed/templates/show.html.erb +6 -8
- data/lib/generators/bootstrap/themed/templates/show.html.haml +5 -5
- data/lib/generators/bootstrap/themed/templates/show.html.slim +7 -8
- data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
- data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
- data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
- data/lib/generators/bootstrap/themed/themed_generator.rb +4 -4
- data/lib/twitter-bootstrap-rails.rb +4 -4
- data/lib/twitter/bootstrap/rails/breadcrumbs.rb +69 -0
- data/lib/twitter/bootstrap/rails/engine.rb +17 -7
- data/lib/twitter/bootstrap/rails/version.rb +1 -1
- data/spec/lib/breadcrumbs_spec.rb +99 -0
- data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +30 -0
- data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
- data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
- data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
- data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +62 -0
- data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +396 -0
- data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +49 -0
- data/spec/spec_helper.rb +21 -0
- data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5990 -195
- data/vendor/static-source/bootstrap.less +0 -1
- data/vendor/static-source/fontawesome.less +7 -6
- data/vendor/static-source/sprites.less +3 -3
- data/vendor/toolkit/fontawesome/bordered-pulled.less +16 -0
- data/vendor/toolkit/fontawesome/core.less +11 -0
- data/vendor/toolkit/fontawesome/fixed-width.less +6 -0
- data/vendor/toolkit/fontawesome/font-awesome.less +17 -0
- data/vendor/toolkit/fontawesome/icons.less +552 -0
- data/vendor/toolkit/fontawesome/larger.less +13 -0
- data/vendor/toolkit/fontawesome/list.less +19 -0
- data/vendor/toolkit/fontawesome/mixins.less +25 -0
- data/vendor/toolkit/fontawesome/path.less +14 -0
- data/vendor/toolkit/fontawesome/rotated-flipped.less +20 -0
- data/vendor/toolkit/fontawesome/spinning.less +29 -0
- data/vendor/toolkit/fontawesome/stacked.less +20 -0
- data/vendor/toolkit/fontawesome/variables.less +561 -0
- data/vendor/toolkit/twitter/bootstrap/alerts.less +47 -58
- data/vendor/toolkit/twitter/bootstrap/badges.less +55 -0
- data/vendor/toolkit/twitter/bootstrap/bootstrap.less +26 -39
- data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
- data/vendor/toolkit/twitter/bootstrap/button-groups.less +168 -152
- data/vendor/toolkit/twitter/bootstrap/buttons.less +101 -170
- data/vendor/toolkit/twitter/bootstrap/carousel.less +150 -65
- data/vendor/toolkit/twitter/bootstrap/close.less +20 -19
- data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
- data/vendor/toolkit/twitter/bootstrap/component-animations.less +12 -3
- data/vendor/toolkit/twitter/bootstrap/dropdowns.less +124 -146
- data/vendor/toolkit/twitter/bootstrap/forms.less +401 -547
- data/vendor/toolkit/twitter/bootstrap/glyphicons.less +234 -0
- data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
- data/vendor/toolkit/twitter/bootstrap/input-groups.less +166 -0
- data/vendor/toolkit/twitter/bootstrap/jumbotron.less +48 -0
- data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
- data/vendor/toolkit/twitter/bootstrap/list-group.less +132 -0
- data/vendor/toolkit/twitter/bootstrap/media.less +8 -7
- data/vendor/toolkit/twitter/bootstrap/mixins.less +36 -699
- data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +8 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +52 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +29 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +23 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +8 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +224 -0
- data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
- data/vendor/toolkit/twitter/bootstrap/navbar.less +542 -384
- data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
- data/vendor/toolkit/twitter/bootstrap/normalize.less +425 -0
- data/vendor/toolkit/twitter/bootstrap/pager.less +46 -34
- data/vendor/toolkit/twitter/bootstrap/pagination.less +70 -105
- data/vendor/toolkit/twitter/bootstrap/panels.less +248 -0
- data/vendor/toolkit/twitter/bootstrap/popovers.less +61 -61
- data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
- data/vendor/toolkit/twitter/bootstrap/progress-bars.less +51 -73
- data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +34 -0
- data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
- data/vendor/toolkit/twitter/bootstrap/scaffolding.less +120 -23
- data/vendor/toolkit/twitter/bootstrap/tables.less +171 -182
- data/vendor/toolkit/twitter/bootstrap/theme.less +260 -0
- data/vendor/toolkit/twitter/bootstrap/thumbnails.less +26 -43
- data/vendor/toolkit/twitter/bootstrap/tooltip.less +49 -24
- data/vendor/toolkit/twitter/bootstrap/type.less +208 -147
- data/vendor/toolkit/twitter/bootstrap/utilities.less +33 -7
- data/vendor/toolkit/twitter/bootstrap/variables.less +761 -215
- data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
- metadata +199 -92
- data/lib/generators/bootstrap/partial/templates/_navbar.html.erb +0 -13
- data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +0 -42
- data/test/lib/breadcrumbs_test.rb +0 -75
- data/test/test_helper.rb +0 -8
- data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
- data/vendor/assets/javascripts/twitter/bootstrap.js +0 -13
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -165
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -353
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
- data/vendor/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -531
- data/vendor/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +0 -146
- data/vendor/toolkit/fontawesome-ie7.less +0 -350
- data/vendor/toolkit/fontawesome.less +0 -532
- data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
- data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
- data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
- data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
- data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
- data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
- data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
- data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
- data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
- data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
- data/vendor/toolkit/twitter/bootstrap/sprites.less +0 -197
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 82ad6c5731f1ecdfde3cee21594dd12e08611dcb
|
4
|
+
data.tar.gz: b888d8740cf6fd54bef26a89661ad125cdb68d97
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 704e53996debd340259fd22ec6ce0afc7c05ff0113c4f05d921785026b1b5ec91279d726f050627461aa9df38121f0ecad07da1bf278b1c20f3e1798de976675
|
7
|
+
data.tar.gz: ab95adbd943737c5f3074cbc01a06a1cb221db3c0a76f4ad855c807874e67a30c62071498a55e368e91244b3b5985967312218da2baa6b79b99bc530f84a2fe6
|
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
# Twitter Bootstrap for Rails 3.
|
1
|
+
# Twitter Bootstrap for Rails 4, 3.x Asset Pipeline
|
2
2
|
Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites. It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.
|
3
3
|
|
4
|
-
twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails
|
5
|
-
|
6
|
-
[![Build Status](https://secure.travis-ci.org/seyhunak/twitter-bootstrap-rails.png)](http://travis-ci.org/seyhunak/twitter-bootstrap-rails)
|
7
|
-
[![Dependency Status](https://gemnasium.com/seyhunak/twitter-bootstrap-rails.png)](https://gemnasium.com/seyhunak/twitter-bootstrap-rails)
|
8
|
-
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails)
|
9
|
-
[![Still Maintained](https://a248.e.akamai.net/camo.github.com/9c977523be7fce95c026a1b7d9673903f82e59cd/687474703a2f2f7374696c6c6d61696e7461696e65642e636f6d2f7374696c6c6d61696e7461696e65642f7374696c6c6d61696e7461696e65642e706e67)](http://stillmaintained.com/seyhunak/twitter-bootstrap-rails)
|
4
|
+
twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails Asset Pipeline (Rails 4, 3.x versions are supported)
|
10
5
|
|
6
|
+
[![Gem Version](https://badge.fury.io/rb/twitter-bootstrap-rails.svg)](http://badge.fury.io/rb/twitter-bootstrap-rails)
|
7
|
+
[![Dependency Status](https://gemnasium.com/seyhunak/twitter-bootstrap-rails.svg?travis)](https://gemnasium.com/seyhunak/twitter-bootstrap-rails?travis)
|
8
|
+
[![Code Climate](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails/badges/gpa.svg)](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails?branch=master)
|
9
|
+
[![Coverage Status](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.png?branch=master)](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.png?branch=master)
|
10
|
+
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/seyhunak/twitter-bootstrap-rails/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
|
11
11
|
|
12
12
|
## Screencasts
|
13
13
|
#### Installing twitter-bootstrap-rails, generators, usage and more
|
@@ -16,29 +16,24 @@ twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails 3.1 A
|
|
16
16
|
Screencasts provided by <a href="http://railscasts.com">Railscasts</a> (Ryan Bates)
|
17
17
|
|
18
18
|
[Twitter Bootstrap Basics](http://railscasts.com/episodes/328-twitter-bootstrap-basics "Twitter Bootstrap Basics")
|
19
|
-
in this episode you will learn how to include
|
19
|
+
in this episode you will learn how to include Bootstrap into Rails application with the twitter-bootstrap-rails gem.
|
20
20
|
|
21
21
|
[More on Twitter Bootstrap](http://railscasts.com/episodes/329-more-on-twitter-bootstrap "More on Twitter Bootstrap")
|
22
|
-
in this episode continues on the
|
22
|
+
in this episode continues on the Bootstrap project showing how to display flash messages, add form validations with SimpleForm, customize layout with variables, and switch to using Sass.
|
23
23
|
(Note: This episode is pro episode)
|
24
24
|
|
25
|
-
|
26
|
-
## Example Application
|
27
|
-
An example application is available at [toadkicker/teststrap](https://github.com/toadkicker/teststrap). You can view it running on heroku [here.](http://teststrap.herokuapp.com/) Contributions welcome.
|
28
|
-
|
29
|
-
|
30
25
|
## Installing the Gem
|
31
26
|
|
32
|
-
The [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) can provide the
|
27
|
+
The [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) can provide the Bootstrap stylesheets in two ways.
|
33
28
|
|
34
|
-
The plain CSS way is how
|
29
|
+
The plain CSS way is how Bootstrap is provided on [the official website](http://twbs.github.io/bootstrap/).
|
35
30
|
|
36
|
-
The [Less](http://lesscss.org/) way provides more
|
31
|
+
The [Less](http://lesscss.org/) way provides more customization options, like changing theme colors, and provides useful Less mixins for your code, but requires the
|
37
32
|
Less gem and the Ruby Racer Javascript runtime (not available on Microsoft Windows).
|
38
33
|
|
39
34
|
### Installing the Less stylesheets
|
40
35
|
|
41
|
-
To use Less stylesheets, you'll need the [less-rails gem](http://rubygems.org/gems/less-rails), and one of [
|
36
|
+
To use Less stylesheets, you'll need the [less-rails gem](http://rubygems.org/gems/less-rails), and one of [JavaScript runtimes supported by CommonJS](https://github.com/cowboyd/commonjs.rb#supported-runtimes).
|
42
37
|
|
43
38
|
Include these lines in the Gemfile to install the gems from [RubyGems.org](http://rubygems.org):
|
44
39
|
|
@@ -62,6 +57,10 @@ Then run the bootstrap generator to add Bootstrap includes into your assets:
|
|
62
57
|
|
63
58
|
rails generate bootstrap:install less
|
64
59
|
|
60
|
+
If you need to skip coffeescript replacement into app generators, use:
|
61
|
+
|
62
|
+
rails generate bootstrap:install --no-coffeescript
|
63
|
+
|
65
64
|
### Installing the CSS stylesheets
|
66
65
|
|
67
66
|
If you don't need to customize the stylesheets using Less, the only gem you need is the `twitter-bootstrap-rails` gem:
|
@@ -76,31 +75,19 @@ After running `bundle install`, run the generator:
|
|
76
75
|
|
77
76
|
## Generating layouts and views
|
78
77
|
|
79
|
-
You can run following generators to get started with
|
78
|
+
You can run following generators to get started with Bootstrap quickly.
|
80
79
|
|
81
80
|
|
82
|
-
Layout (generates
|
81
|
+
Layout (generates Bootstrap compatible layout) - (Haml and Slim supported)
|
83
82
|
|
84
83
|
|
85
84
|
Usage:
|
86
85
|
|
87
86
|
|
88
|
-
rails g bootstrap:layout [LAYOUT_NAME]
|
89
|
-
|
90
|
-
|
91
|
-
Example of a fixed layout:
|
92
|
-
|
93
|
-
|
94
|
-
rails g bootstrap:layout application fixed
|
87
|
+
rails g bootstrap:layout [LAYOUT_NAME]
|
95
88
|
|
96
89
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
rails g bootstrap:layout application fluid
|
101
|
-
|
102
|
-
|
103
|
-
Themed (generates Twitter Bootstrap compatible scaffold views.) - (Haml and Slim supported)
|
90
|
+
Themed (generates Bootstrap compatible scaffold views.) - (Haml and Slim supported)
|
104
91
|
|
105
92
|
|
106
93
|
Usage:
|
@@ -137,54 +124,132 @@ You have to require Bootstrap LESS (bootstrap_and_overrides.css.less) in your ap
|
|
137
124
|
To use individual components from bootstrap, your bootstrap_and_overrides.less could look like this:
|
138
125
|
|
139
126
|
```css
|
140
|
-
|
127
|
+
// Core variables and mixins
|
141
128
|
@import "twitter/bootstrap/variables.less";
|
142
129
|
@import "twitter/bootstrap/mixins.less";
|
130
|
+
|
131
|
+
// Reset and dependencies
|
132
|
+
@import "twitter/bootstrap/normalize.less";
|
133
|
+
@import "twitter/bootstrap/print.less";
|
134
|
+
//@import "twitter/bootstrap/glyphicons.less"; // Excludes glyphicons
|
135
|
+
|
136
|
+
// Core CSS
|
143
137
|
@import "twitter/bootstrap/scaffolding.less";
|
144
|
-
@import "twitter/bootstrap/grid.less";
|
145
|
-
@import "twitter/bootstrap/layouts.less";
|
146
138
|
@import "twitter/bootstrap/type.less";
|
139
|
+
@import "twitter/bootstrap/code.less";
|
140
|
+
@import "twitter/bootstrap/grid.less";
|
141
|
+
@import "twitter/bootstrap/tables.less";
|
147
142
|
@import "twitter/bootstrap/forms.less";
|
148
|
-
@import "twitter/bootstrap/wells.less";
|
149
|
-
@import "twitter/bootstrap/component-animations.less";
|
150
143
|
@import "twitter/bootstrap/buttons.less";
|
151
|
-
|
144
|
+
|
145
|
+
// Components
|
146
|
+
@import "twitter/bootstrap/component-animations.less";
|
147
|
+
@import "twitter/bootstrap/dropdowns.less";
|
148
|
+
@import "twitter/bootstrap/button-groups.less";
|
149
|
+
@import "twitter/bootstrap/input-groups.less";
|
152
150
|
@import "twitter/bootstrap/navs.less";
|
153
151
|
@import "twitter/bootstrap/navbar.less";
|
154
|
-
@import "twitter/bootstrap/
|
155
|
-
@import "twitter/bootstrap/
|
152
|
+
@import "twitter/bootstrap/breadcrumbs.less";
|
153
|
+
@import "twitter/bootstrap/pagination.less";
|
154
|
+
@import "twitter/bootstrap/pager.less";
|
155
|
+
@import "twitter/bootstrap/labels.less";
|
156
|
+
@import "twitter/bootstrap/badges.less";
|
157
|
+
@import "twitter/bootstrap/jumbotron.less";
|
158
|
+
@import "twitter/bootstrap/thumbnails.less";
|
159
|
+
@import "twitter/bootstrap/alerts.less";
|
160
|
+
@import "twitter/bootstrap/progress-bars.less";
|
161
|
+
@import "twitter/bootstrap/media.less";
|
162
|
+
@import "twitter/bootstrap/list-group.less";
|
163
|
+
@import "twitter/bootstrap/panels.less";
|
164
|
+
@import "twitter/bootstrap/responsive-embed.less";
|
165
|
+
@import "twitter/bootstrap/wells.less";
|
166
|
+
@import "twitter/bootstrap/close.less";
|
167
|
+
|
168
|
+
// Components w/ JavaScript
|
169
|
+
@import "twitter/bootstrap/modals.less";
|
170
|
+
@import "twitter/bootstrap/tooltip.less";
|
171
|
+
@import "twitter/bootstrap/popovers.less";
|
172
|
+
@import "twitter/bootstrap/carousel.less";
|
173
|
+
|
174
|
+
// Utility classes
|
156
175
|
@import "twitter/bootstrap/utilities.less";
|
157
|
-
@import "twitter/bootstrap/responsive";
|
176
|
+
@import "twitter/bootstrap/responsive-utilities.less";
|
158
177
|
```
|
159
178
|
|
160
179
|
If you'd like to alter Bootstrap's own variables, or define your LESS
|
161
180
|
styles inheriting Bootstrap's mixins, you can do so inside bootstrap_and_overrides.css.less:
|
162
181
|
|
182
|
+
|
163
183
|
```css
|
164
|
-
@
|
184
|
+
@link-color: #ff0000;
|
165
185
|
```
|
166
186
|
|
187
|
+
### SASS
|
188
|
+
|
189
|
+
If you are using SASS to compile your application.css (e.g. your manifest file is application.css.sass or application.css.scss) you may get this:
|
190
|
+
|
191
|
+
```
|
192
|
+
Invalid CSS after "*": expected "{", was "= require twitt..."
|
193
|
+
(in app/assets/stylesheets/application.css)
|
194
|
+
(sass)
|
195
|
+
```
|
196
|
+
|
197
|
+
If this is the case, you **must** use @import instead of `*=` in your manifest file, or don't compile your manifest with SASS.
|
198
|
+
|
167
199
|
### Icons
|
168
200
|
|
169
201
|
By default, this gem overrides standard Bootstraps's Glyphicons with Font Awesome (http://fortawesome.github.com/Font-Awesome/).
|
170
|
-
|
202
|
+
|
203
|
+
This should appear inside _bootstrap_and_overrides *(based on you twitter-bootstrap-rails version)*
|
204
|
+
|
205
|
+
**From 2.2.7**
|
206
|
+
|
207
|
+
```css
|
208
|
+
// Font Awesome
|
209
|
+
@fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
|
210
|
+
@fontAwesomeEotPath_iefix: asset-url("fontawesome-webfont.eot?#iefix");
|
211
|
+
@fontAwesomeWoffPath: asset-url("fontawesome-webfont.woff");
|
212
|
+
@fontAwesomeTtfPath: asset-url("fontawesome-webfont.ttf");
|
213
|
+
@fontAwesomeSvgPath: asset-url("fontawesome-webfont.svg#fontawesomeregular");
|
214
|
+
@import "fontawesome/font-awesome";
|
215
|
+
```
|
216
|
+
|
217
|
+
**Before 2.2.7**
|
171
218
|
|
172
219
|
```css
|
173
220
|
// Font Awesome
|
174
|
-
|
221
|
+
@fontAwesomeEotPath: "/assets/fontawesome-webfont.eot";
|
222
|
+
@fontAwesomeEotPath_iefix: "/assets/fontawesome-webfont.eot?#iefix";
|
223
|
+
@fontAwesomeWoffPath: "/assets/fontawesome-webfont.woff";
|
224
|
+
@fontAwesomeTtfPath: "/assets/fontawesome-webfont.ttf";
|
225
|
+
@fontAwesomeSvgPath: "/assets/fontawesome-webfont.svg#fontawesomeregular";
|
226
|
+
@import "fontawesome";
|
227
|
+
```
|
228
|
+
|
229
|
+
If you would like to restore the default Glyphicons, inside the _bootstrap_and_overrides.css.less_ remove the FontAwesome declaration and uncomment the line:
|
230
|
+
|
231
|
+
```less
|
232
|
+
// Font Awesome
|
233
|
+
// @fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
|
234
|
+
// @fontAwesomeEotPath_iefix: asset-url("fontawesome-webfont.eot?#iefix");
|
235
|
+
// @fontAwesomeWoffPath: asset-url("fontawesome-webfont.woff");
|
236
|
+
// @fontAwesomeTtfPath: asset-url("fontawesome-webfont.ttf");
|
237
|
+
// @fontAwesomeSvgPath: asset-url("fontawesome-webfont.svg#fontawesomeregular");
|
238
|
+
// @import "fontawesome/font-awesome";
|
239
|
+
|
175
240
|
// Glyphicons
|
176
|
-
@import "twitter/bootstrap/
|
241
|
+
@import "twitter/bootstrap/glyphicons.less";
|
177
242
|
```
|
178
243
|
|
179
|
-
## Using
|
244
|
+
## Using JavaScript
|
180
245
|
|
181
|
-
|
246
|
+
Require Bootstrap JS (bootstrap.js) in your application.js
|
182
247
|
|
183
248
|
```js
|
184
249
|
//= require twitter/bootstrap
|
185
250
|
|
186
251
|
$(function(){
|
187
|
-
/* Your
|
252
|
+
/* Your JavaScript goes here... */
|
188
253
|
});
|
189
254
|
```
|
190
255
|
|
@@ -193,40 +258,339 @@ If you want to customize what is loaded, your application.js would look somethin
|
|
193
258
|
```js
|
194
259
|
#= require jquery
|
195
260
|
#= require jquery_ujs
|
196
|
-
#= require twitter/bootstrap/
|
197
|
-
#= require twitter/bootstrap/
|
198
|
-
#= require twitter/bootstrap/
|
199
|
-
#= require twitter/bootstrap/
|
200
|
-
#= require twitter/bootstrap/
|
261
|
+
#= require twitter/bootstrap/transition
|
262
|
+
#= require twitter/bootstrap/alert
|
263
|
+
#= require twitter/bootstrap/modal
|
264
|
+
#= require twitter/bootstrap/button
|
265
|
+
#= require twitter/bootstrap/collapse
|
201
266
|
```
|
202
267
|
|
203
268
|
...and so on for each bootstrap js component.
|
204
269
|
|
205
|
-
## Using
|
270
|
+
## Using CoffeeScript (optionally)
|
206
271
|
|
207
|
-
Using
|
272
|
+
Using Bootstrap with the CoffeeScript is easy.
|
208
273
|
twitter-bootstrap-rails generates a "bootstrap.js.coffee" file for you
|
209
274
|
to /app/assets/javascripts/ folder.
|
210
275
|
|
211
276
|
```coffee
|
212
277
|
jQuery ->
|
213
|
-
$("a[rel
|
214
|
-
$(".tooltip").tooltip()
|
215
|
-
$("a[rel=tooltip]").tooltip()
|
278
|
+
$("a[rel~=popover], .has-popover").popover()
|
279
|
+
$("a[rel~=tooltip], .has-tooltip").tooltip()
|
216
280
|
```
|
217
281
|
|
218
282
|
## Using Helpers
|
219
283
|
|
284
|
+
### Modal Helper
|
285
|
+
You can create modals easily using the following example. The header, body, and footer all accept content_tag or plain html.
|
286
|
+
The href of the button to launch the modal must match the id of the modal dialog. It also accepts a block for the header, body, and footer. If you are getting a complaint about the modal_helper unable to merge a hash it is due to this.
|
287
|
+
|
288
|
+
````
|
289
|
+
<%= content_tag :a, "Modal", href: "#modal", class: 'btn', data: {toggle: 'modal'} %>
|
290
|
+
|
291
|
+
<%= modal_dialog id: "modal",
|
292
|
+
header: { show_close: true, dismiss: 'modal', title: 'Modal header' },
|
293
|
+
body: { content: 'This is the body' },
|
294
|
+
footer: { content: content_tag(:button, 'Save', class: 'btn') } %>
|
295
|
+
|
296
|
+
````
|
297
|
+
|
298
|
+
### Navbar Helper
|
299
|
+
It should let you write things like:
|
300
|
+
|
301
|
+
````
|
302
|
+
|
303
|
+
<%= nav_bar fixed: :top, brand: "Fashionable Clicheizr 2.0", responsive: true do %>
|
304
|
+
<%= menu_group do %>
|
305
|
+
<%= menu_item "Home", root_path %>
|
306
|
+
<%= menu_divider %>
|
307
|
+
<%= drop_down "Products" do %>
|
308
|
+
<%= menu_item "Things you can't afford", expensive_products_path %>
|
309
|
+
<%= menu_item "Things that won't suit you anyway", harem_pants_path %>
|
310
|
+
<%= menu_item "Things you're not even cool enough to buy anyway", hipster_products_path %>
|
311
|
+
<% if current_user.lives_in_hackney? %>
|
312
|
+
<%= menu_item "Bikes", fixed_wheel_bikes_path %>
|
313
|
+
<% end %>
|
314
|
+
<% end %>
|
315
|
+
<%= menu_item "About Us", about_us_path %>
|
316
|
+
<%= menu_item "Contact", contact_path %>
|
317
|
+
<% end %>
|
318
|
+
<%= menu_group pull: :right do %>
|
319
|
+
<% if current_user %>
|
320
|
+
<%= menu_item "Log Out", log_out_path %>
|
321
|
+
<% else %>
|
322
|
+
<%= form_for @user, url: session_path(:user), html => {class: "navbar-form pull-right"} do |f| -%>
|
323
|
+
<p><%= f.text_field :email %></p>
|
324
|
+
<p><%= f.password_field :password %></p>
|
325
|
+
<p><%= f.submit "Sign in" %></p>
|
326
|
+
<% end -%>
|
327
|
+
<% end %>
|
328
|
+
<% end %>
|
329
|
+
<% end %>
|
330
|
+
|
331
|
+
|
332
|
+
````
|
333
|
+
|
334
|
+
### Navbar scaffolding
|
335
|
+
|
336
|
+
In your view file (most likely application.html.erb) to get a basic navbar set up you need to do this:
|
337
|
+
|
338
|
+
````
|
339
|
+
<%= nav_bar %>
|
340
|
+
````
|
341
|
+
|
342
|
+
Which will render:
|
343
|
+
|
344
|
+
<div class="navbar">
|
345
|
+
<div class="container">
|
346
|
+
</div>
|
347
|
+
</div>
|
348
|
+
|
349
|
+
|
350
|
+
### Fixed navbar
|
351
|
+
|
352
|
+
If you want the navbar to stick to the top of the screen, pass in the option like this:
|
353
|
+
|
354
|
+
````
|
355
|
+
<%= nav_bar fixed: :top %>
|
356
|
+
````
|
357
|
+
|
358
|
+
To render:
|
359
|
+
|
360
|
+
<div class="navbar navbar-fixed-top">
|
361
|
+
<div class="container">
|
362
|
+
</div>
|
363
|
+
</div>
|
364
|
+
|
365
|
+
### Static navbar
|
366
|
+
|
367
|
+
If you want a full-width navbar that scrolls away with the page, pass in the option like this:
|
368
|
+
|
369
|
+
````
|
370
|
+
<%= nav_bar static: :top %>
|
371
|
+
````
|
372
|
+
|
373
|
+
To render:
|
374
|
+
|
375
|
+
<div class="navbar navbar-static-top">
|
376
|
+
<div class="container">
|
377
|
+
</div>
|
378
|
+
</div>
|
379
|
+
|
380
|
+
|
381
|
+
### Brand name
|
382
|
+
|
383
|
+
Add the name of your site on the left hand edge of the navbar. By default, it will link to root_url. Passing a brand_link option will set the url to whatever you want.
|
384
|
+
|
385
|
+
````
|
386
|
+
<%= nav_bar brand: "We're sooo web 2.0alizr", brand_link: account_dashboard_path %>
|
387
|
+
````
|
388
|
+
|
389
|
+
Which will render:
|
390
|
+
|
391
|
+
<div class="navbar">
|
392
|
+
<div class="container">
|
393
|
+
<a class="navbar-brand" href="/accounts/dashboard">
|
394
|
+
We're sooo web 2.0alizr
|
395
|
+
</a>
|
396
|
+
</div>
|
397
|
+
</div>
|
398
|
+
|
399
|
+
|
400
|
+
### Optional responsive variation
|
401
|
+
|
402
|
+
If you want the responsive version of the navbar to work (One that shrinks down on mobile devices etc.), you need to pass this option:
|
403
|
+
|
404
|
+
````
|
405
|
+
<%= nav_bar responsive: true %>
|
406
|
+
````
|
407
|
+
Which renders the html quite differently:
|
408
|
+
|
409
|
+
|
410
|
+
<div class="navbar">
|
411
|
+
<div class="container">
|
412
|
+
<!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
|
413
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
414
|
+
<span class="icon-bar"></span>
|
415
|
+
<span class="icon-bar"></span>
|
416
|
+
<span class="icon-bar"></span>
|
417
|
+
</button>
|
418
|
+
<!-- Everything in here gets hidden at 940px or less -->
|
419
|
+
<div class="navbar-collapse collapse">
|
420
|
+
<!-- menu items gets rendered here instead -->
|
421
|
+
</div>
|
422
|
+
</div>
|
423
|
+
</div>
|
424
|
+
|
425
|
+
|
426
|
+
### Nav links
|
427
|
+
|
428
|
+
This is the 'meat' of the code where you define your menu items.
|
429
|
+
|
430
|
+
You can group menu items in theoretical boxes which you can apply logic to - e.g. show different collections for logged in users/logged out users, or simply right align a group.
|
431
|
+
|
432
|
+
The active menu item will be inferred from the link for now.
|
433
|
+
|
434
|
+
The important methods here are menu_group and menu_item.
|
435
|
+
|
436
|
+
menu_group only takes one argument - :pull - this moves the group left or right when passed :left or :right.
|
437
|
+
|
438
|
+
menu_item generates a link wrapped in an li tag. It takes two arguments and an options hash. The first argument is the name (the text that will appear in the menu), and the path (which defaults to "#" if left blank). The rest of the options are passed straight through to the link_to helper, so that you can add classes, ids, methods or data tags etc.
|
439
|
+
|
440
|
+
````
|
441
|
+
|
442
|
+
<%= nav_bar fixed: :top, brand: "Ninety Ten" do %>
|
443
|
+
<%= menu_group do %>
|
444
|
+
<%= menu_item "Home", root_path %>
|
445
|
+
<%= menu_item "About Us", about_us_path %>
|
446
|
+
<%= menu_item "Contact", contact_path %>
|
447
|
+
<% end %>
|
448
|
+
<% if current_user %>
|
449
|
+
<%= menu_item "Log Out", log_out_path %>
|
450
|
+
<% else %>
|
451
|
+
<%= menu_group pull: :right do %>
|
452
|
+
<%= menu_item "Sign Up", registration_path %>
|
453
|
+
<%= form_for @user, url: session_path(:user) do |f| -%>
|
454
|
+
<p><%= f.text_field :email %></p>
|
455
|
+
<p><%= f.password_field :password %></p>
|
456
|
+
<p><%= f.submit "Sign in" %></p>
|
457
|
+
<% end -%>
|
458
|
+
<% end %>
|
459
|
+
<% end %>
|
460
|
+
<% end %>
|
461
|
+
|
462
|
+
````
|
463
|
+
|
464
|
+
### Dropdown menus
|
465
|
+
|
466
|
+
For multi-level list options, where it makes logical sense to group menu items, or simply to save space if you have a lot of pages, you can group menu items into drop down lists like this:
|
467
|
+
|
468
|
+
````
|
469
|
+
<%= nav_bar do %>
|
470
|
+
<%= menu_item "Home", root_path %>
|
471
|
+
|
472
|
+
<%= drop_down "Products" do %>
|
473
|
+
<%= menu_item "Latest", latest_products_path %>
|
474
|
+
<%= menu_item "Top Sellers", popular_products_path %>
|
475
|
+
<%= drop_down_divider %>
|
476
|
+
<%= menu_item "Discount Items", discounted_products_path %>
|
477
|
+
<% end %>
|
478
|
+
|
479
|
+
<%= menu_item "About Us", about_us_path %>
|
480
|
+
<%= menu_item "Contact", contact_path %>
|
481
|
+
<% end %>
|
482
|
+
|
483
|
+
````
|
484
|
+
|
485
|
+
### Dividers
|
486
|
+
|
487
|
+
Dividers are just vertical bars that visually separate logically disparate groups of menu items
|
488
|
+
|
489
|
+
````
|
490
|
+
|
491
|
+
<%= nav_bar fixed: :bottom do %>
|
492
|
+
<%= menu_item "Home", root_path %>
|
493
|
+
<%= menu_item "About Us", about_us_path %>
|
494
|
+
<%= menu_item "Contact", contact_path %>
|
495
|
+
|
496
|
+
<%= menu_divider %>
|
497
|
+
|
498
|
+
<%= menu_item "Edit Profile", edit_user_path(current_user) %>
|
499
|
+
<%= menu_item "Account Settings", edit_user_account_path(current_user, @account) %>
|
500
|
+
<%= menu_item "Log Out", log_out_path %>
|
501
|
+
<% end %>
|
502
|
+
|
503
|
+
````
|
504
|
+
|
505
|
+
### Forms in navbar
|
506
|
+
|
507
|
+
At the moment - this is just a how to...
|
508
|
+
|
509
|
+
You need to add this class to the form itself (Different form builders do this in different ways - please check out the relevant docs)
|
510
|
+
|
511
|
+
````css
|
512
|
+
.navbar-form
|
513
|
+
````
|
514
|
+
To pull the form left or right, add either of these classes:
|
515
|
+
````css
|
516
|
+
.pull-left
|
517
|
+
.pull-right
|
518
|
+
````
|
519
|
+
|
520
|
+
If you want the Bootstrap search box (I think it just rounds the corners), use:
|
521
|
+
````css
|
522
|
+
.navbar-search
|
523
|
+
````
|
524
|
+
Instead of:
|
525
|
+
````css
|
526
|
+
.navbar-form
|
527
|
+
````
|
528
|
+
|
529
|
+
To change the size of the form fields, use .span2 (or however many span widths you want) to the input itself.
|
530
|
+
|
531
|
+
### Component alignment
|
532
|
+
|
533
|
+
You can shift things to the left or the right across the nav bar. It's easiest to do this on grouped menu items:
|
534
|
+
|
535
|
+
````
|
536
|
+
<%= nav_bar fixed: :bottom do %>
|
537
|
+
<% menu_group do %>
|
538
|
+
<%= menu_item "Home", root_path %>
|
539
|
+
<%= menu_item "About Us", about_us_path %>
|
540
|
+
<%= menu_item "Contact", contact_path %>
|
541
|
+
<% end %>
|
542
|
+
<% menu_group pull: :right do %>
|
543
|
+
<%= menu_item "Edit Profile", edit_user_path(current_user) %>
|
544
|
+
<%= menu_item "Account Settings", edit_user_account_path(current_user, @account) %>
|
545
|
+
<%= menu_item "Log Out", log_out_path %>
|
546
|
+
<% end %>
|
547
|
+
<% end %>
|
548
|
+
|
549
|
+
````
|
550
|
+
|
551
|
+
### Text in the navbar
|
552
|
+
|
553
|
+
If you want to put regular plain text in the navbar anywhere, you do it like this:
|
554
|
+
|
555
|
+
````
|
556
|
+
<%= nav_bar brand: "Apple" do %>
|
557
|
+
<%= menu_text "We make shiny things" %>
|
558
|
+
<%= menu_item "Home", root_path %>
|
559
|
+
<%= menu_item "About Us", about_us_path %>
|
560
|
+
<% end %>
|
561
|
+
|
562
|
+
````
|
563
|
+
It also takes the :pull option to drag it to the left or right.
|
564
|
+
|
565
|
+
|
220
566
|
### Flash helper
|
221
|
-
|
567
|
+
|
568
|
+
Add flash helper `<%= bootstrap_flash %>` to your layout (built-in with layout generator).
|
569
|
+
You can pass the attributes you want to add to the main div returned: `<%= bootstrap_flash(class: "extra-class", id: "your-id") %>`
|
570
|
+
|
222
571
|
|
223
572
|
### Breadcrumbs Helpers
|
224
573
|
|
574
|
+
*Notice* If your application is using [breadcrumbs-on-rails](https://github.com/weppos/breadcrumbs_on_rails) you will have a namespace collision with the add_breadcrumb method. For this reason if breadcrumbs-on-rails is detected in `Gemfile` gem methods will be accessible using `boostrap` prefix, i.e. `render_bootstrap_breadcrumbs` and `add_bootstrap_breadcrumb`
|
575
|
+
|
576
|
+
Usually you do not need to use these breadcrumb gems since this gem provides the same functionality out of the box without the additional dependency.
|
577
|
+
|
578
|
+
However if there are some `breadcrumbs-on-rails` features you need to keep you can still use them and use this gem with the prefixes explained above.
|
579
|
+
|
225
580
|
Add breadcrumbs helper `<%= render_breadcrumbs %>` to your layout.
|
581
|
+
You can also specify a divider for it like this: `<%= render_breadcrumbs('>') %>` (default divider is `/`).
|
582
|
+
If you do not need dividers at all you can use `nil`: `<%= render_breadcrumbs(nil) %>`.
|
583
|
+
|
584
|
+
Full example:
|
585
|
+
```ruby
|
586
|
+
|
587
|
+
render_breadcrumbs(" / ", { class: '', item_class: '', divider_class: '', active_class: 'active' })
|
588
|
+
|
589
|
+
```
|
226
590
|
|
227
591
|
```ruby
|
228
592
|
class ApplicationController
|
229
|
-
add_breadcrumb :
|
593
|
+
add_breadcrumb :root # 'root_path' will be used as url
|
230
594
|
end
|
231
595
|
```
|
232
596
|
|
@@ -234,154 +598,65 @@ end
|
|
234
598
|
class ExamplesController < ApplicationController
|
235
599
|
add_breadcrumb :index, :examples_path
|
236
600
|
|
237
|
-
def
|
238
|
-
end
|
239
|
-
|
240
|
-
def show
|
601
|
+
def edit
|
241
602
|
@example = Example.find params[:id]
|
242
|
-
add_breadcrumb @example.name, example_path(@example)
|
243
|
-
|
603
|
+
add_breadcrumb @example # @example.to_s as name, example_path(@example) as url
|
604
|
+
add_breadcrumb :edit, edit_example_path(@example)
|
244
605
|
end
|
245
606
|
end
|
246
607
|
```
|
608
|
+
All symbolic names translated with I18n. See [I18n Internationalization Support](#i18n-internationalization-support)
|
609
|
+
section.
|
247
610
|
|
248
|
-
|
611
|
+
### Element utility helpers
|
249
612
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
application:
|
254
|
-
index: "Index"
|
255
|
-
examples:
|
256
|
-
index: "Examples"
|
257
|
-
show: "Example"
|
613
|
+
Badge:
|
614
|
+
```erb
|
615
|
+
<%= badge(12, :warning) %> <span class="badge badge-warning">12</span>
|
258
616
|
```
|
259
|
-
NOTE: If you are using Devise in your project, you must have a devise locale file
|
260
|
-
for handling flash messages, even if those messages are blank. See https://github.com/plataformatec/devise/wiki/I18n
|
261
|
-
|
262
|
-
## Changelog
|
263
|
-
<ul>
|
264
|
-
<li>Version 0.0.5 deprecated</li>
|
265
|
-
<li>Asset files updated to latest and removed version numbers</li>
|
266
|
-
<li>Implemented Less::Rails Railtie to use with LESS</li>
|
267
|
-
<li>Fixed railtie to only initialize Less when installed</li>
|
268
|
-
<li>New branch for the static version of Bootstrap (w/o Less) - check static branch</li>
|
269
|
-
<li>Added path to support heroku deploy</li>
|
270
|
-
<li>Rake precompile issue fixed</li>
|
271
|
-
<li>Updated asset files to 1.4.0</li>
|
272
|
-
<li>Updated dependency less-rails (now requires 2.1.0)</li>
|
273
|
-
<li>Added generators</li>
|
274
|
-
<li>Fixed generators</li>
|
275
|
-
<li>Fixed class name conflicts from (bootstrap.js.coffee)</li>
|
276
|
-
<li>Fixed jquery-rails gem version dependency</li>
|
277
|
-
<li>Updated asset files</li>
|
278
|
-
<li>Added new generators (install, layout and themed)</li>
|
279
|
-
<li>Compability to Rails 3.2</li>
|
280
|
-
<li>Transitioning to 2.0</li>
|
281
|
-
<li>Released gem v.2.0rc0</li>
|
282
|
-
<li>Added Haml and Slim support</li>
|
283
|
-
<li>Added Responsive layout support</li>
|
284
|
-
<li>Fixes and release 2.0.0</li>
|
285
|
-
<li>Updated to v2.0.1, versioned v2.0.1.0</li>
|
286
|
-
<li>Released gem v.2.0.3</li>
|
287
|
-
<li>Released gem v.2.0.4</li>
|
288
|
-
<li>Released gem v.2.0.5</li>
|
289
|
-
<li>Added SimpleForm support</li>
|
290
|
-
<li>Added FontAwesome support</li>
|
291
|
-
<li>Released gem v.2.0.6</li>
|
292
|
-
<li>Released gem v.2.0.7</li>
|
293
|
-
<li>Released gem v.2.0.8</li>
|
294
|
-
<li>Released gem v.2.0.9 (Bootstrap 2.0.4 and FontAwesome 2.0 support)</li>
|
295
|
-
<li>Released gem v.2.1.0 (JRuby support)</li>
|
296
|
-
<li>Released gem v.2.1.1 (minor fixes)</li>
|
297
|
-
<li>Flash block message helper added</li>
|
298
|
-
<li>Released gem v.2.1.2 (minor fixes and updated to Twitter Bootstrap 2.1.0)</li>
|
299
|
-
<li>Released gem v.2.1.3 (minor fixes and updated to Twitter Bootstrap 2.1.1)</li>
|
300
|
-
<li>Released gem v.2.1.4 (minor fixes)</li>
|
301
|
-
<li>Released gem v.2.1.5 (minor fixes, install generator detects javascript template engine, updated to Twitter Bootstrap 2.2.1)</li>
|
302
|
-
<li>Released gem v.2.1.6 (minor fixes)</li>
|
303
|
-
<li>Added static stylesheets support</li>
|
304
|
-
<li>Released gem v.2.1.8 and updated to Twitter Bootstrap 2.2.2</li>
|
305
|
-
<li>Released gem v.2.1.9</li>
|
306
|
-
<li>Released gem v.2.2.0 (Font Awesome 3)</li>
|
307
|
-
<li>Released gem v.2.2.1 (minor fixes and updates)</li>
|
308
|
-
<li>Released gem v.2.2.2 (Bootstrap 2.3.0)</li>
|
309
|
-
<li>Released gem v.2.2.3 (Minor fixes)</li>
|
310
|
-
|
311
|
-
</ul>
|
312
|
-
|
313
617
|
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
<li>Bradly Feeley</li>
|
319
|
-
<li>Guilherme Moreira</li>
|
320
|
-
<li>Alex Behar</li>
|
321
|
-
<li>Brandon Keene</li>
|
322
|
-
<li>Anthony Corcutt</li>
|
323
|
-
<li>Colin Warren</li>
|
324
|
-
<li>Giovanni Cappellotto</li>
|
325
|
-
<li>Masakuni Kato</li>
|
326
|
-
<li>Gudleik Rasch</li>
|
327
|
-
<li>Thomas Volkmar Worm</li>
|
328
|
-
<li>Thiago Almeida</li>
|
329
|
-
<li>Sébastien Grosjean</li>
|
330
|
-
<li>Nick DeSteffen</li>
|
331
|
-
<li>Christian Joudrey</li>
|
332
|
-
<li>Todd Baur</li>
|
333
|
-
<li>Leonid Shevtsov</li>
|
334
|
-
</ul>
|
335
|
-
|
336
|
-
|
337
|
-
### Future
|
338
|
-
<ul>
|
339
|
-
<li>Writing tests (not implemented yet)</li>
|
340
|
-
<li>Markup Helpers (alert, tabs, pagination, breadcrumbs etc.)</li>
|
341
|
-
</ul>
|
618
|
+
Label:
|
619
|
+
```erb
|
620
|
+
<%= tag_label('Gut!', :success) %> <span class="label label-success">Gut!</span>
|
621
|
+
```
|
342
622
|
|
343
|
-
|
344
|
-
|
623
|
+
Glyph:
|
624
|
+
```erb
|
625
|
+
<%= glyph(:pencil) %> <i class="icon-pencil"></i>
|
345
626
|
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
### Follow me
|
350
|
-
<a href="http://zerply.com/seyhunak">
|
351
|
-
<img width="110" height="40" src="http://zerply.com/img/welcomesteps/zerply_logo.png" />
|
352
|
-
</a>
|
627
|
+
<%= glyph(:pencil, {tag: :span}) %> <span class="icon-pencil"></span>
|
628
|
+
```
|
353
629
|
|
354
|
-
|
630
|
+
### I18n Internationalization Support
|
631
|
+
The installer creates an English translation file for you and copies it to config/locales/en.bootstrap.yml
|
355
632
|
|
356
|
-
http://zerply.com/seyhunak
|
357
633
|
|
358
|
-
|
359
|
-
|
360
|
-
<img src="http://api.coderwall.com/seyhunak/endorsecount.png" />
|
361
|
-
</a>
|
634
|
+
NOTE: If you are using Devise in your project, you must have a devise locale file
|
635
|
+
for handling flash messages, even if those messages are blank. See https://github.com/plataformatec/devise/wiki/I18n
|
362
636
|
|
363
|
-
|
364
|
-
|
637
|
+
## Changelog
|
638
|
+
Please see CHANGELOG.md for more details
|
365
639
|
|
366
|
-
|
640
|
+
## Contributors & Patches & Forks
|
641
|
+
Please see CONTRIBUTERS.md for contributors list
|
367
642
|
|
368
|
-
http://klout.com/#/seyhunak
|
369
643
|
|
644
|
+
## About Me
|
645
|
+
CTO / Senior Developer / Programmer
|
646
|
+
@useful (Usefulideas) Istanbul / Turkey
|
370
647
|
|
371
|
-
### Want to donate?
|
372
|
-
<img src="https://www.paypalobjects.com/en_US/i/logo/PayPal_mark_50x34.gif"></img>
|
373
648
|
|
374
|
-
|
375
|
-
|
649
|
+
### Contact me
|
650
|
+
Seyhun Akyürek - seyhunak [at] gmail com
|
376
651
|
|
377
652
|
|
378
653
|
## Thanks
|
379
|
-
|
380
|
-
http://
|
654
|
+
Bootstrap and all twitter-bootstrap-rails contributors
|
655
|
+
http://twbs.github.io/bootstrap
|
381
656
|
|
382
657
|
|
383
658
|
## License
|
384
|
-
Copyright (c)
|
659
|
+
Copyright (c) 2014 Seyhun Akyürek
|
385
660
|
|
386
661
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
387
662
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|