railsstrap 3.3.0 → 3.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -6
- data/app/helpers/railsstrap/date_picker_helper.rb +84 -0
- data/lib/generators/railsstrap/install/install_generator.rb +2 -2
- data/lib/generators/railsstrap/install/templates/application.css +3 -0
- data/lib/generators/railsstrap/install/templates/application.js +2 -0
- data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.css +1 -1
- data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.less +6 -3
- data/lib/generators/railsstrap/themed/templates/_form.html.erb +1 -1
- data/lib/generators/railsstrap/themed/templates/_form.html.haml +1 -1
- data/lib/generators/railsstrap/themed/templates/_form.html.slim +1 -1
- data/lib/generators/railsstrap/themed/templates/edit.html.slim +1 -1
- data/lib/generators/railsstrap/themed/templates/index.html.slim +3 -4
- data/lib/generators/railsstrap/themed/templates/new.html.slim +1 -1
- data/lib/generators/railsstrap/themed/templates/show.html.slim +1 -1
- data/lib/railsstrap/constants.rb +1 -1
- data/lib/railsstrap/engine.rb +4 -1
- data/vendor/assets/bower_components/bootstrap/Gruntfile.js +12 -42
- data/vendor/assets/bower_components/bootstrap/README.md +2 -2
- data/vendor/assets/bower_components/bootstrap/bower.json +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +47 -34
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +2 -2
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css +79 -105
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +2 -2
- data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +73 -29
- data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +3 -3
- data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +44 -0
- data/vendor/assets/bower_components/bootstrap/js/affix.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/alert.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/button.js +3 -3
- data/vendor/assets/bower_components/bootstrap/js/carousel.js +3 -2
- data/vendor/assets/bower_components/bootstrap/js/collapse.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/dropdown.js +3 -3
- data/vendor/assets/bower_components/bootstrap/js/modal.js +48 -5
- data/vendor/assets/bower_components/bootstrap/js/popover.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/tab.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/tooltip.js +2 -2
- data/vendor/assets/bower_components/bootstrap/js/transition.js +1 -1
- data/vendor/assets/bower_components/bootstrap/less/badges.less +7 -1
- data/vendor/assets/bower_components/bootstrap/less/button-groups.less +0 -4
- data/vendor/assets/bower_components/bootstrap/less/forms.less +19 -32
- data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +2 -1
- data/vendor/assets/bower_components/bootstrap/less/list-group.less +0 -8
- data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +2 -2
- data/vendor/assets/bower_components/bootstrap/less/modals.less +1 -2
- data/vendor/assets/bower_components/bootstrap/less/navbar.less +1 -0
- data/vendor/assets/bower_components/bootstrap/less/popovers.less +1 -0
- data/vendor/assets/bower_components/bootstrap/less/theme.less +12 -0
- data/vendor/assets/bower_components/bootstrap/less/tooltip.less +12 -4
- data/vendor/assets/bower_components/bootstrap/less/variables.less +1 -1
- data/vendor/assets/bower_components/bootstrap/package.json +4 -4
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/CONTRIBUTING.md +32 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/Gruntfile.js +155 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/LICENSE +21 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/README.md +17 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/bower.json +35 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css +238 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css +5 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js +1 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/component.json +10 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/composer.json +30 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/package.json +35 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js +1384 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/less/bootstrap-datetimepicker-build.less +5 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/less/bootstrap-datetimepicker.less +294 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.CSS.nuspec +30 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.nuspec +30 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/NuGet.exe +0 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/install.ps1 +2 -0
- data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/tasks/bump_version.js +88 -0
- data/vendor/assets/bower_components/moment/CHANGELOG.md +402 -0
- data/vendor/assets/bower_components/moment/LICENSE +22 -0
- data/vendor/assets/bower_components/moment/README.md +39 -0
- data/vendor/assets/bower_components/moment/benchmarks/clone.js +10 -0
- data/vendor/assets/bower_components/moment/bower.json +20 -0
- data/vendor/assets/bower_components/moment/locale/af.js +67 -0
- data/vendor/assets/bower_components/moment/locale/ar-ma.js +57 -0
- data/vendor/assets/bower_components/moment/locale/ar-sa.js +97 -0
- data/vendor/assets/bower_components/moment/locale/ar.js +130 -0
- data/vendor/assets/bower_components/moment/locale/az.js +103 -0
- data/vendor/assets/bower_components/moment/locale/be.js +152 -0
- data/vendor/assets/bower_components/moment/locale/bg.js +88 -0
- data/vendor/assets/bower_components/moment/locale/bn.js +107 -0
- data/vendor/assets/bower_components/moment/locale/bo.js +104 -0
- data/vendor/assets/bower_components/moment/locale/br.js +109 -0
- data/vendor/assets/bower_components/moment/locale/bs.js +140 -0
- data/vendor/assets/bower_components/moment/locale/ca.js +77 -0
- data/vendor/assets/bower_components/moment/locale/cs.js +157 -0
- data/vendor/assets/bower_components/moment/locale/cv.js +61 -0
- data/vendor/assets/bower_components/moment/locale/cy.js +79 -0
- data/vendor/assets/bower_components/moment/locale/da.js +58 -0
- data/vendor/assets/bower_components/moment/locale/de-at.js +74 -0
- data/vendor/assets/bower_components/moment/locale/de.js +73 -0
- data/vendor/assets/bower_components/moment/locale/el.js +94 -0
- data/vendor/assets/bower_components/moment/locale/en-au.js +64 -0
- data/vendor/assets/bower_components/moment/locale/en-ca.js +61 -0
- data/vendor/assets/bower_components/moment/locale/en-gb.js +65 -0
- data/vendor/assets/bower_components/moment/locale/eo.js +67 -0
- data/vendor/assets/bower_components/moment/locale/es.js +77 -0
- data/vendor/assets/bower_components/moment/locale/et.js +78 -0
- data/vendor/assets/bower_components/moment/locale/eu.js +62 -0
- data/vendor/assets/bower_components/moment/locale/fa.js +99 -0
- data/vendor/assets/bower_components/moment/locale/fi.js +107 -0
- data/vendor/assets/bower_components/moment/locale/fo.js +58 -0
- data/vendor/assets/bower_components/moment/locale/fr-ca.js +56 -0
- data/vendor/assets/bower_components/moment/locale/fr.js +60 -0
- data/vendor/assets/bower_components/moment/locale/gl.js +73 -0
- data/vendor/assets/bower_components/moment/locale/he.js +78 -0
- data/vendor/assets/bower_components/moment/locale/hi.js +106 -0
- data/vendor/assets/bower_components/moment/locale/hr.js +141 -0
- data/vendor/assets/bower_components/moment/locale/hu.js +107 -0
- data/vendor/assets/bower_components/moment/locale/hy-am.js +114 -0
- data/vendor/assets/bower_components/moment/locale/id.js +68 -0
- data/vendor/assets/bower_components/moment/locale/is.js +126 -0
- data/vendor/assets/bower_components/moment/locale/it.js +68 -0
- data/vendor/assets/bower_components/moment/locale/ja.js +59 -0
- data/vendor/assets/bower_components/moment/locale/ka.js +109 -0
- data/vendor/assets/bower_components/moment/locale/km.js +56 -0
- data/vendor/assets/bower_components/moment/locale/ko.js +65 -0
- data/vendor/assets/bower_components/moment/locale/lb.js +139 -0
- data/vendor/assets/bower_components/moment/locale/lt.js +120 -0
- data/vendor/assets/bower_components/moment/locale/lv.js +79 -0
- data/vendor/assets/bower_components/moment/locale/mk.js +88 -0
- data/vendor/assets/bower_components/moment/locale/ml.js +65 -0
- data/vendor/assets/bower_components/moment/locale/mr.js +105 -0
- data/vendor/assets/bower_components/moment/locale/ms-my.js +67 -0
- data/vendor/assets/bower_components/moment/locale/my.js +89 -0
- data/vendor/assets/bower_components/moment/locale/nb.js +59 -0
- data/vendor/assets/bower_components/moment/locale/ne.js +106 -0
- data/vendor/assets/bower_components/moment/locale/nl.js +69 -0
- data/vendor/assets/bower_components/moment/locale/nn.js +58 -0
- data/vendor/assets/bower_components/moment/locale/pl.js +100 -0
- data/vendor/assets/bower_components/moment/locale/pt-br.js +58 -0
- data/vendor/assets/bower_components/moment/locale/pt.js +62 -0
- data/vendor/assets/bower_components/moment/locale/ro.js +73 -0
- data/vendor/assets/bower_components/moment/locale/ru.js +176 -0
- data/vendor/assets/bower_components/moment/locale/sk.js +158 -0
- data/vendor/assets/bower_components/moment/locale/sl.js +146 -0
- data/vendor/assets/bower_components/moment/locale/sq.js +63 -0
- data/vendor/assets/bower_components/moment/locale/sr-cyrl.js +107 -0
- data/vendor/assets/bower_components/moment/locale/sr.js +107 -0
- data/vendor/assets/bower_components/moment/locale/sv.js +65 -0
- data/vendor/assets/bower_components/moment/locale/ta.js +114 -0
- data/vendor/assets/bower_components/moment/locale/th.js +59 -0
- data/vendor/assets/bower_components/moment/locale/tl-ph.js +60 -0
- data/vendor/assets/bower_components/moment/locale/tr.js +94 -0
- data/vendor/assets/bower_components/moment/locale/tzm-latn.js +56 -0
- data/vendor/assets/bower_components/moment/locale/tzm.js +56 -0
- data/vendor/assets/bower_components/moment/locale/uk.js +159 -0
- data/vendor/assets/bower_components/moment/locale/uz.js +56 -0
- data/vendor/assets/bower_components/moment/locale/vi.js +64 -0
- data/vendor/assets/bower_components/moment/locale/zh-cn.js +110 -0
- data/vendor/assets/bower_components/moment/locale/zh-tw.js +86 -0
- data/vendor/assets/bower_components/moment/min/locales.js +7001 -0
- data/vendor/assets/bower_components/moment/min/locales.min.js +4 -0
- data/vendor/assets/bower_components/moment/min/moment-with-locales.js +9394 -0
- data/vendor/assets/bower_components/moment/min/moment-with-locales.min.js +10 -0
- data/vendor/assets/bower_components/moment/min/moment.min.js +7 -0
- data/vendor/assets/bower_components/moment/moment.js +2936 -0
- data/vendor/assets/bower_components/moment/scripts/npm_prepublish.sh +43 -0
- data/vendor/assets/javascripts/datepicker/datepicker.js +3 -0
- data/vendor/assets/stylesheets/datepicker/datepicker.js +0 -0
- data/vendor/assets/stylesheets/datepicker/datepicker.less +1 -0
- data/vendor/assets/stylesheets/dist/railsstrap.css +240 -18
- data/vendor/assets/stylesheets/fontawesome.less +2 -0
- metadata +116 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5368848076f90de4d3bb93d722da03a756c8587
|
4
|
+
data.tar.gz: 89ace966b95408b74b85a76027cec3504d264def
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84d1f162e59603eba4dd0a94d284c23ce7304a5d2acec3f13d0351f569130505a609813da16aebdf2c37aa2ed3da51bd170f993ff7f27d09c5c89d4a16a13057
|
7
|
+
data.tar.gz: 0b193c4a8a0d599cf33a6b56587dae0ea6b59302d212ea496348b0a6d350290c97bd9b25a67b1f186a9f9ebcd85806fd70c326a1da71bcf37cc6a8140c35eb72
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Bootstrap
|
1
|
+
# Bootstrap + FontAwesome for Rails v3.1 & v4 Asset Pipeline
|
2
2
|
|
3
3
|
[![Bower version](https://badge.fury.io/bo/bootstrap.svg)](http://badge.fury.io/bo/bootstrap)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/railsstrap.svg)](http://badge.fury.io/rb/railsstrap)
|
@@ -16,16 +16,15 @@ Railsstrap is more than just another gem providing bootstrap and fontawesome for
|
|
16
16
|
|
17
17
|
###Custom Components (in development)
|
18
18
|
* Asides - A modal that slides in from the left or right. Used often in mobile apps for off-screen sidebars or overlays.
|
19
|
-
* Callouts - Similar to an alert, it is used for drawing attention to content.
|
20
|
-
*
|
19
|
+
* Callouts - Similar to an alert, it is used for drawing attention to content. - New in 3.3.0!
|
20
|
+
* Date & Time picker - A styled HTML5 datepicker. - New in 3.3.1!
|
21
21
|
* Modal enhancements - animations and real centering placement.
|
22
22
|
* Popover enhancements - animations and custom placements for popover arrows and locations.
|
23
|
-
* Timepicker - A styled HTML5 time picker.
|
24
23
|
* Tooltip - animations and custom placements for tooltip arrows and locations.
|
25
24
|
|
26
25
|
###Animations
|
27
26
|
|
28
|
-
Railsstrap comes with over 75 CSS animations. See the wiki or the [vendor/assets/stylesheets/animate](https://github.com/toadkicker/railsstrap/tree/develop/vendor/assets/stylesheets/animate) folder for more info.
|
27
|
+
Railsstrap comes with over 75 CSS animations. See the wiki or the [vendor/assets/stylesheets/animate](https://github.com/toadkicker/railsstrap/tree/develop/vendor/assets/stylesheets/animate) folder for more info. Also the wiki has detailed instructions on using them.
|
29
28
|
|
30
29
|
## Example Application
|
31
30
|
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.
|
@@ -48,11 +47,17 @@ This will insert the appropriate entries into your application.js and applicatio
|
|
48
47
|
|
49
48
|
You will need to precompile your assets for FontAwesome support. To do this add this line:
|
50
49
|
|
50
|
+
This is verbose:
|
51
51
|
```
|
52
52
|
Rails.application.config.assets.precompile += %w( fontawesome/fonts/fontawesome-webfont.eot fontawesome/fonts/fontawesome-webfont.woff fontawesome/fonts/fontawesome-webfont.ttf fontawesome/fonts/fontawesome-webfont.svg )
|
53
53
|
```
|
54
54
|
|
55
|
-
|
55
|
+
This is all you really need:
|
56
|
+
```
|
57
|
+
Rails.application.config.assets.precompile += %w(.svg .eot .woff .ttf)
|
58
|
+
```
|
59
|
+
|
60
|
+
For Rails 3 applications, add it to ```config/environments/production.rb```. For Rails 4, add it to ```config/initializers/assets.rb```.
|
56
61
|
|
57
62
|
|
58
63
|
Most of the info you'll need is in the wiki, and if it isn't please contribute!
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# Railsstrap Datepicker Helper
|
2
|
+
#
|
3
|
+
# Setup instructions:
|
4
|
+
# open your application.js & application.css asset manifest file and uncomment the block to include the UI libraries
|
5
|
+
# use the date_picker helper for the html and the date_picker_javascript helper in your templates
|
6
|
+
#
|
7
|
+
# You can set these options a few ways:
|
8
|
+
# with html data-date-{OPTIONNAME},
|
9
|
+
# or pass a data option hash into date_picker, but change the key name to_underscore format so content_tag renders the data tag properly.
|
10
|
+
# or in date_picker_javascript, keeping it as camelCase
|
11
|
+
#
|
12
|
+
# pickDate: true, //en/disables the date picker
|
13
|
+
# pickTime: true, //en/disables the time picker
|
14
|
+
# useMinutes: true, //en/disables the minutes picker
|
15
|
+
# useSeconds: true, //en/disables the seconds picker
|
16
|
+
# useCurrent: true, //when true, picker will set the value to the current date/time
|
17
|
+
# minuteStepping:1, //set the minute stepping
|
18
|
+
# minDate:`1/1/1900`, //set a minimum date
|
19
|
+
# maxDate: , //set a maximum date (defaults to today +100 years)
|
20
|
+
# showToday: true, //shows the today indicator
|
21
|
+
# language:'en', //sets language locale
|
22
|
+
# defaultDate:"", //sets a default date, accepts js dates, strings and moment objects
|
23
|
+
# disabledDates:[], //an array of dates that cannot be selected
|
24
|
+
# enabledDates:[], //an array of dates that can be selected
|
25
|
+
# icons = {
|
26
|
+
# time: 'glyphicon glyphicon-time',
|
27
|
+
# date: 'glyphicon glyphicon-calendar',
|
28
|
+
# up: 'glyphicon glyphicon-chevron-up',
|
29
|
+
# down: 'glyphicon glyphicon-chevron-down'
|
30
|
+
# }
|
31
|
+
# useStrict: false, //use strict when validating dates
|
32
|
+
# sideBySide: false, //show the date and time picker side by side
|
33
|
+
# daysOfWeekDisabled:[] //for example use daysOfWeekDisabled: [0,6] to disable weekends
|
34
|
+
#
|
35
|
+
|
36
|
+
module Railsstrap
|
37
|
+
module DatePickerHelper
|
38
|
+
|
39
|
+
def date_picker(options = {})
|
40
|
+
opts = default_options.merge(options)
|
41
|
+
input = text_field_tag opts[:input_name], '', class: opts[:input_class]
|
42
|
+
icon_wrapper = content_tag opts[:icon_wrapper_tag], class: opts[:icon_wrapper_class] do
|
43
|
+
content_tag :i, '', class: opts[:icon]
|
44
|
+
end
|
45
|
+
content_tag(opts[:wrapper_tag], id: opts[:id], class: opts[:wrapper_class], data: opts[:data]) {
|
46
|
+
opts[:show_input] ? input + icon_wrapper : icon_wrapper
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
def date_picker_javascript(options = {})
|
51
|
+
opts = default_js_options.merge(options)
|
52
|
+
javascript_tag "(function ($) { $('#{opts[:selector]}').datetimepicker(#{opts.to_json});})(jQuery);"
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
def default_options
|
57
|
+
{ id: 'date_picker',
|
58
|
+
wrapper_tag: :div,
|
59
|
+
show_input: true,
|
60
|
+
input_name: 'date_picker',
|
61
|
+
input_class: 'form-control',
|
62
|
+
input_type: 'text',
|
63
|
+
wrapper_class: 'input-group date',
|
64
|
+
icon_wrapper_tag: :span,
|
65
|
+
icon_wrapper_class: 'input-group-addon',
|
66
|
+
icon: 'fa fa-calendar',
|
67
|
+
data: { datepicker: true, date_language: 'en' }
|
68
|
+
}
|
69
|
+
end
|
70
|
+
|
71
|
+
def default_js_options
|
72
|
+
{
|
73
|
+
selector: '[data-datepicker="true"]',
|
74
|
+
language: 'en',
|
75
|
+
icons: {
|
76
|
+
time: 'fa fa-clock-o',
|
77
|
+
date: 'fa fa-calendar',
|
78
|
+
up: 'fa fa-chevron-up',
|
79
|
+
down: 'fa fa-chevron-down'
|
80
|
+
}
|
81
|
+
}
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -14,7 +14,7 @@ module Railsstrap
|
|
14
14
|
js_manifest = 'app/assets/javascripts/application.js'
|
15
15
|
css_manifest = 'app/assets/stylesheets/application.css'
|
16
16
|
asset_initializer = 'config/initializers/assets.rb'
|
17
|
-
config_asset_insert_line = "Rails.application.config.assets.precompile\s+=\s%w(
|
17
|
+
config_asset_insert_line = "Rails.application.config.assets.precompile\s+=\s%w(.svg .eot .woff .ttf)"
|
18
18
|
|
19
19
|
if File.exists?(asset_initializer) && Rails::VERSION::MAJOR >= 4 #Must be Rails 4
|
20
20
|
content = File.read(asset_initializer)
|
@@ -44,7 +44,7 @@ module Railsstrap
|
|
44
44
|
if content.match(/require_tree\s+\.\s*$/)
|
45
45
|
# Good enough - that'll include our bootstrap_and_overrides.css.less
|
46
46
|
else
|
47
|
-
style_require_block = " *= require bootstrap_and_overrides\n"
|
47
|
+
style_require_block = " *= require bootstrap_and_overrides\n*=require fontawesome"
|
48
48
|
insert_into_file css_manifest, style_require_block, :after => "require_self\n"
|
49
49
|
end
|
50
50
|
else
|
@@ -2,6 +2,9 @@
|
|
2
2
|
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
3
|
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
4
|
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*= require 'bootstrap'
|
6
|
+
*= require 'railsstrap'
|
7
|
+
*= require 'fontawesome'
|
5
8
|
*= require_self
|
6
9
|
*= require_tree .
|
7
10
|
*/
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
=require bootstrap/dist/bootstrap.css
|
3
3
|
=require bootstrap/dist/bootstrap-theme.css
|
4
|
-
If you want exotic placement features, animations, and more, uncomment this
|
4
|
+
If you want exotic placement features, animations, components, and more, uncomment this:
|
5
5
|
=require dist/railsstrap.css
|
6
6
|
To use Font Awesome
|
7
7
|
=require fontawesome/css/font-awesome.(min).css
|
@@ -2,9 +2,6 @@
|
|
2
2
|
//If you want exotic placement features, animations, and more, import this
|
3
3
|
//@import "railsstrap";
|
4
4
|
|
5
|
-
// Font Awesome
|
6
|
-
@import "fontawesome/less/font-awesome";
|
7
|
-
|
8
5
|
// Glyphicons - included by default in bootstrap.
|
9
6
|
// You may need to customize config/initializers/assets.rb (Rails 4), or config/environments/[env].rb to add font paths in.
|
10
7
|
// In either case of FontAwesome or Glyphicons, the railsstrap:install task should insert the appropriate entries for you.
|
@@ -21,3 +18,9 @@
|
|
21
18
|
// Example:
|
22
19
|
// @import (reference) 'bootstrap/less/variables.less';
|
23
20
|
// @link-color: #ff0000;
|
21
|
+
//
|
22
|
+
// Date and Time Picker
|
23
|
+
//
|
24
|
+
// To enable the date and time picker, uncomment this line:
|
25
|
+
// @import "datepicker/datepicker.less";
|
26
|
+
// Don't forget to include the javascript library as well.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%%= form_for @<%= resource_name %>, :html => { :class => "form-horizontal <%= resource_name %>" } do |f| %>
|
1
|
+
<%%= form_for @<%= resource_name %>, :html => { :role=> 'form', :class => "form-horizontal <%= resource_name %>" } do |f| %>
|
2
2
|
|
3
3
|
<%% if @<%= resource_name %>.errors.any? %>
|
4
4
|
<div id="error_expl" class="panel panel-danger">
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= form_for @<%= resource_name %>, html: { class: "form form-horizontal <%= resource_name %>" } do |f|
|
1
|
+
= form_for @<%= resource_name %>, html: { role: "form", class: "form form-horizontal <%= resource_name %>" } do |f|
|
2
2
|
<%- columns.each do |column| -%>
|
3
3
|
.form-group
|
4
4
|
= f.label :<%= column.name %>, class: 'control-label col-lg-2'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= form_for @<%= resource_name %>, html: { class: "form form-horizontal <%= resource_name %>" } do |f|
|
1
|
+
= form_for @<%= resource_name %>, html: { role: "form", class: "form form-horizontal <%= resource_name %>" } do |f|
|
2
2
|
<%- columns.each do |column| -%>
|
3
3
|
.form-group
|
4
4
|
= f.label :<%= column.name %>, :class => 'control-label col-lg-2'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
- model_class = <%= resource_name.classify %>
|
2
|
-
|
2
|
+
.page-header
|
3
3
|
h1=t '.title', :default => model_class.model_name.human.pluralize.titleize
|
4
|
-
table
|
4
|
+
table.table table-striped
|
5
5
|
thead
|
6
6
|
tr
|
7
7
|
th= model_class.human_attribute_name(:id)
|
@@ -23,5 +23,4 @@ table class="table table-striped"
|
|
23
23
|
'
|
24
24
|
= link_to t('.destroy', :default => t("helpers.links.destroy")), <%= singular_controller_routing_path %>_path(<%= resource_name %>), :method => :delete, :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) }, :class => 'btn btn-xs btn-danger'
|
25
25
|
|
26
|
-
= link_to t('.new', :default => t("helpers.links.new")), new_<%= singular_controller_routing_path %>_path, :class => 'btn btn-primary'
|
27
|
-
|
26
|
+
= link_to t('.new', :default => t("helpers.links.new")), new_<%= singular_controller_routing_path %>_path, :class => 'btn btn-primary'
|
data/lib/railsstrap/constants.rb
CHANGED
data/lib/railsstrap/engine.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative '../../app/helpers/railsstrap/modal_helper.rb'
|
|
7
7
|
require_relative '../../app/helpers/railsstrap/navbar_helper.rb'
|
8
8
|
require_relative '../../app/helpers/railsstrap/bootstrap_flash_helper.rb'
|
9
9
|
require_relative '../../app/helpers/railsstrap/form_errors_helper.rb'
|
10
|
+
require_relative '../../app/helpers/railsstrap/date_picker_helper.rb'
|
10
11
|
|
11
12
|
module Railsstrap
|
12
13
|
class Engine < ::Rails::Engine
|
@@ -28,11 +29,13 @@ module Railsstrap
|
|
28
29
|
Railsstrap::GlyphHelper,
|
29
30
|
Railsstrap::IconHelper,
|
30
31
|
Railsstrap::NavbarHelper,
|
31
|
-
Railsstrap::BadgeLabelHelper
|
32
|
+
Railsstrap::BadgeLabelHelper,
|
33
|
+
Railsstrap::DatePickerHelper].each do |h|
|
32
34
|
app.config.to_prepare do
|
33
35
|
ActionController::Base.send :helper, h
|
34
36
|
end
|
35
37
|
end
|
38
|
+
|
36
39
|
ActionView::Helpers::FormBuilder.send :include, Railsstrap::FormErrorsHelper
|
37
40
|
end
|
38
41
|
end
|
@@ -27,6 +27,13 @@ module.exports = function (grunt) {
|
|
27
27
|
};
|
28
28
|
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
|
29
29
|
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
|
30
|
+
var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' });
|
31
|
+
|
32
|
+
Object.keys(configBridge.paths).forEach(function (key) {
|
33
|
+
configBridge.paths[key].forEach(function (val, i, arr) {
|
34
|
+
arr[i] = path.join('./docs/assets', val);
|
35
|
+
});
|
36
|
+
});
|
30
37
|
|
31
38
|
// Project configuration.
|
32
39
|
grunt.initConfig({
|
@@ -38,21 +45,8 @@ module.exports = function (grunt) {
|
|
38
45
|
' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
39
46
|
' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
|
40
47
|
' */\n',
|
41
|
-
|
42
|
-
|
43
|
-
jqueryCheck: [
|
44
|
-
'if (typeof jQuery === \'undefined\') {',
|
45
|
-
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
|
46
|
-
'}\n'
|
47
|
-
].join('\n'),
|
48
|
-
jqueryVersionCheck: [
|
49
|
-
'+function ($) {',
|
50
|
-
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
|
51
|
-
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
|
52
|
-
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
|
53
|
-
' }',
|
54
|
-
'}(jQuery);\n\n'
|
55
|
-
].join('\n'),
|
48
|
+
jqueryCheck: configBridge.config.jqueryCheck.join('\n'),
|
49
|
+
jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'),
|
56
50
|
|
57
51
|
// Task configuration.
|
58
52
|
clean: {
|
@@ -138,25 +132,11 @@ module.exports = function (grunt) {
|
|
138
132
|
dest: 'dist/js/<%= pkg.name %>.min.js'
|
139
133
|
},
|
140
134
|
customize: {
|
141
|
-
|
142
|
-
src: [
|
143
|
-
'docs/assets/js/vendor/less.min.js',
|
144
|
-
'docs/assets/js/vendor/jszip.min.js',
|
145
|
-
'docs/assets/js/vendor/uglify.min.js',
|
146
|
-
'docs/assets/js/vendor/Blob.js',
|
147
|
-
'docs/assets/js/vendor/FileSaver.js',
|
148
|
-
'docs/assets/js/raw-files.min.js',
|
149
|
-
'docs/assets/js/src/customizer.js'
|
150
|
-
],
|
135
|
+
src: configBridge.paths.customizerJs,
|
151
136
|
dest: 'docs/assets/js/customize.min.js'
|
152
137
|
},
|
153
138
|
docsJs: {
|
154
|
-
|
155
|
-
src: [
|
156
|
-
'docs/assets/js/vendor/holder.js',
|
157
|
-
'docs/assets/js/vendor/ZeroClipboard.min.js',
|
158
|
-
'docs/assets/js/src/application.js'
|
159
|
-
],
|
139
|
+
src: configBridge.paths.docsJs,
|
160
140
|
dest: 'docs/assets/js/docs.min.js'
|
161
141
|
}
|
162
142
|
},
|
@@ -195,16 +175,7 @@ module.exports = function (grunt) {
|
|
195
175
|
|
196
176
|
autoprefixer: {
|
197
177
|
options: {
|
198
|
-
browsers:
|
199
|
-
'Android 2.3',
|
200
|
-
'Android >= 4',
|
201
|
-
'Chrome >= 20',
|
202
|
-
'Firefox >= 24', // Firefox 24 is the latest ESR
|
203
|
-
'Explorer >= 8',
|
204
|
-
'iOS >= 6',
|
205
|
-
'Opera >= 12',
|
206
|
-
'Safari >= 6'
|
207
|
-
]
|
178
|
+
browsers: configBridge.config.autoprefixerBrowsers
|
208
179
|
},
|
209
180
|
core: {
|
210
181
|
options: {
|
@@ -350,7 +321,6 @@ module.exports = function (grunt) {
|
|
350
321
|
failHard: true,
|
351
322
|
reset: true,
|
352
323
|
relaxerror: [
|
353
|
-
'Bad value X-UA-Compatible for attribute http-equiv on element meta.',
|
354
324
|
'Element img is missing required attribute src.',
|
355
325
|
'Attribute autocomplete not allowed on element input at this point.',
|
356
326
|
'Attribute autocomplete not allowed on element button at this point.'
|
@@ -24,7 +24,7 @@ To get started, check out <http://getbootstrap.com>!
|
|
24
24
|
|
25
25
|
Four quick start options are available:
|
26
26
|
|
27
|
-
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.
|
27
|
+
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.1.zip).
|
28
28
|
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
29
29
|
- Install with [Bower](http://bower.io): `bower install bootstrap`.
|
30
30
|
- Install with [npm](https://www.npmjs.org): `npm install bootstrap`.
|
@@ -67,7 +67,7 @@ Bootstrap's documentation, included in this repo in the root directory, is built
|
|
67
67
|
|
68
68
|
### Running documentation locally
|
69
69
|
|
70
|
-
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.
|
70
|
+
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.5.x).
|
71
71
|
- **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
|
72
72
|
2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.
|
73
73
|
3. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v3.3.
|
2
|
+
* Bootstrap v3.3.1 (http://getbootstrap.com)
|
3
3
|
* Copyright 2011-2014 Twitter, Inc.
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
5
|
*/
|
@@ -69,28 +69,28 @@
|
|
69
69
|
background-image: none;
|
70
70
|
}
|
71
71
|
.btn-primary {
|
72
|
-
background-image: -webkit-linear-gradient(top, #
|
73
|
-
background-image: -o-linear-gradient(top, #
|
74
|
-
background-image: -webkit-gradient(linear, left top, left bottom, from(#
|
75
|
-
background-image: linear-gradient(to bottom, #
|
76
|
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#
|
72
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
73
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
74
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
|
75
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
|
76
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
|
77
77
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
78
78
|
background-repeat: repeat-x;
|
79
|
-
border-color: #
|
79
|
+
border-color: #245580;
|
80
80
|
}
|
81
81
|
.btn-primary:hover,
|
82
82
|
.btn-primary:focus {
|
83
|
-
background-color: #
|
83
|
+
background-color: #265a88;
|
84
84
|
background-position: 0 -15px;
|
85
85
|
}
|
86
86
|
.btn-primary:active,
|
87
87
|
.btn-primary.active {
|
88
|
-
background-color: #
|
89
|
-
border-color: #
|
88
|
+
background-color: #265a88;
|
89
|
+
border-color: #245580;
|
90
90
|
}
|
91
91
|
.btn-primary:disabled,
|
92
92
|
.btn-primary[disabled] {
|
93
|
-
background-color: #
|
93
|
+
background-color: #265a88;
|
94
94
|
background-image: none;
|
95
95
|
}
|
96
96
|
.btn-success {
|
@@ -211,12 +211,12 @@
|
|
211
211
|
.dropdown-menu > .active > a,
|
212
212
|
.dropdown-menu > .active > a:hover,
|
213
213
|
.dropdown-menu > .active > a:focus {
|
214
|
-
background-color: #
|
215
|
-
background-image: -webkit-linear-gradient(top, #
|
216
|
-
background-image: -o-linear-gradient(top, #
|
217
|
-
background-image: -webkit-gradient(linear, left top, left bottom, from(#
|
218
|
-
background-image: linear-gradient(to bottom, #
|
219
|
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#
|
214
|
+
background-color: #2e6da4;
|
215
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
216
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
217
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
218
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
219
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
220
220
|
background-repeat: repeat-x;
|
221
221
|
}
|
222
222
|
.navbar-default {
|
@@ -275,6 +275,19 @@
|
|
275
275
|
.navbar-fixed-bottom {
|
276
276
|
border-radius: 0;
|
277
277
|
}
|
278
|
+
@media (max-width: 767px) {
|
279
|
+
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
280
|
+
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
281
|
+
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
282
|
+
color: #fff;
|
283
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
284
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
285
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
286
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
287
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
288
|
+
background-repeat: repeat-x;
|
289
|
+
}
|
290
|
+
}
|
278
291
|
.alert {
|
279
292
|
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
|
280
293
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
@@ -325,11 +338,11 @@
|
|
325
338
|
background-repeat: repeat-x;
|
326
339
|
}
|
327
340
|
.progress-bar {
|
328
|
-
background-image: -webkit-linear-gradient(top, #
|
329
|
-
background-image: -o-linear-gradient(top, #
|
330
|
-
background-image: -webkit-gradient(linear, left top, left bottom, from(#
|
331
|
-
background-image: linear-gradient(to bottom, #
|
332
|
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#
|
341
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
|
342
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
|
343
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
|
344
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
|
345
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
|
333
346
|
background-repeat: repeat-x;
|
334
347
|
}
|
335
348
|
.progress-bar-success {
|
@@ -377,14 +390,14 @@
|
|
377
390
|
.list-group-item.active,
|
378
391
|
.list-group-item.active:hover,
|
379
392
|
.list-group-item.active:focus {
|
380
|
-
text-shadow: 0 -1px 0 #
|
381
|
-
background-image: -webkit-linear-gradient(top, #
|
382
|
-
background-image: -o-linear-gradient(top, #
|
383
|
-
background-image: -webkit-gradient(linear, left top, left bottom, from(#
|
384
|
-
background-image: linear-gradient(to bottom, #
|
385
|
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#
|
393
|
+
text-shadow: 0 -1px 0 #286090;
|
394
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
395
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
396
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
|
397
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
|
398
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
|
386
399
|
background-repeat: repeat-x;
|
387
|
-
border-color: #
|
400
|
+
border-color: #2b669a;
|
388
401
|
}
|
389
402
|
.list-group-item.active .badge,
|
390
403
|
.list-group-item.active:hover .badge,
|
@@ -404,11 +417,11 @@
|
|
404
417
|
background-repeat: repeat-x;
|
405
418
|
}
|
406
419
|
.panel-primary > .panel-heading {
|
407
|
-
background-image: -webkit-linear-gradient(top, #
|
408
|
-
background-image: -o-linear-gradient(top, #
|
409
|
-
background-image: -webkit-gradient(linear, left top, left bottom, from(#
|
410
|
-
background-image: linear-gradient(to bottom, #
|
411
|
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#
|
420
|
+
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
421
|
+
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
422
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
423
|
+
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
424
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
412
425
|
background-repeat: repeat-x;
|
413
426
|
}
|
414
427
|
.panel-success > .panel-heading {
|