railsstrap 3.3.0 → 3.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -6
  3. data/app/helpers/railsstrap/date_picker_helper.rb +84 -0
  4. data/lib/generators/railsstrap/install/install_generator.rb +2 -2
  5. data/lib/generators/railsstrap/install/templates/application.css +3 -0
  6. data/lib/generators/railsstrap/install/templates/application.js +2 -0
  7. data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.css +1 -1
  8. data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.less +6 -3
  9. data/lib/generators/railsstrap/themed/templates/_form.html.erb +1 -1
  10. data/lib/generators/railsstrap/themed/templates/_form.html.haml +1 -1
  11. data/lib/generators/railsstrap/themed/templates/_form.html.slim +1 -1
  12. data/lib/generators/railsstrap/themed/templates/edit.html.slim +1 -1
  13. data/lib/generators/railsstrap/themed/templates/index.html.slim +3 -4
  14. data/lib/generators/railsstrap/themed/templates/new.html.slim +1 -1
  15. data/lib/generators/railsstrap/themed/templates/show.html.slim +1 -1
  16. data/lib/railsstrap/constants.rb +1 -1
  17. data/lib/railsstrap/engine.rb +4 -1
  18. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +12 -42
  19. data/vendor/assets/bower_components/bootstrap/README.md +2 -2
  20. data/vendor/assets/bower_components/bootstrap/bower.json +1 -1
  21. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +47 -34
  22. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
  23. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +2 -2
  24. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css +79 -105
  25. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -1
  26. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +2 -2
  27. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +73 -29
  28. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +3 -3
  29. data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +44 -0
  30. data/vendor/assets/bower_components/bootstrap/js/affix.js +2 -2
  31. data/vendor/assets/bower_components/bootstrap/js/alert.js +2 -2
  32. data/vendor/assets/bower_components/bootstrap/js/button.js +3 -3
  33. data/vendor/assets/bower_components/bootstrap/js/carousel.js +3 -2
  34. data/vendor/assets/bower_components/bootstrap/js/collapse.js +2 -2
  35. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +3 -3
  36. data/vendor/assets/bower_components/bootstrap/js/modal.js +48 -5
  37. data/vendor/assets/bower_components/bootstrap/js/popover.js +2 -2
  38. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +2 -2
  39. data/vendor/assets/bower_components/bootstrap/js/tab.js +2 -2
  40. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +2 -2
  41. data/vendor/assets/bower_components/bootstrap/js/transition.js +1 -1
  42. data/vendor/assets/bower_components/bootstrap/less/badges.less +7 -1
  43. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +0 -4
  44. data/vendor/assets/bower_components/bootstrap/less/forms.less +19 -32
  45. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +2 -1
  46. data/vendor/assets/bower_components/bootstrap/less/list-group.less +0 -8
  47. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +2 -2
  48. data/vendor/assets/bower_components/bootstrap/less/modals.less +1 -2
  49. data/vendor/assets/bower_components/bootstrap/less/navbar.less +1 -0
  50. data/vendor/assets/bower_components/bootstrap/less/popovers.less +1 -0
  51. data/vendor/assets/bower_components/bootstrap/less/theme.less +12 -0
  52. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +12 -4
  53. data/vendor/assets/bower_components/bootstrap/less/variables.less +1 -1
  54. data/vendor/assets/bower_components/bootstrap/package.json +4 -4
  55. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/CONTRIBUTING.md +32 -0
  56. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/Gruntfile.js +155 -0
  57. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/LICENSE +21 -0
  58. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/README.md +17 -0
  59. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/bower.json +35 -0
  60. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css +238 -0
  61. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css +5 -0
  62. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js +1 -0
  63. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/component.json +10 -0
  64. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/composer.json +30 -0
  65. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/package.json +35 -0
  66. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js +1384 -0
  67. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/less/bootstrap-datetimepicker-build.less +5 -0
  68. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/less/bootstrap-datetimepicker.less +294 -0
  69. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.CSS.nuspec +30 -0
  70. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.nuspec +30 -0
  71. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/NuGet.exe +0 -0
  72. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/src/nuget/install.ps1 +2 -0
  73. data/vendor/assets/bower_components/eonasdan-bootstrap-datetimepicker/tasks/bump_version.js +88 -0
  74. data/vendor/assets/bower_components/moment/CHANGELOG.md +402 -0
  75. data/vendor/assets/bower_components/moment/LICENSE +22 -0
  76. data/vendor/assets/bower_components/moment/README.md +39 -0
  77. data/vendor/assets/bower_components/moment/benchmarks/clone.js +10 -0
  78. data/vendor/assets/bower_components/moment/bower.json +20 -0
  79. data/vendor/assets/bower_components/moment/locale/af.js +67 -0
  80. data/vendor/assets/bower_components/moment/locale/ar-ma.js +57 -0
  81. data/vendor/assets/bower_components/moment/locale/ar-sa.js +97 -0
  82. data/vendor/assets/bower_components/moment/locale/ar.js +130 -0
  83. data/vendor/assets/bower_components/moment/locale/az.js +103 -0
  84. data/vendor/assets/bower_components/moment/locale/be.js +152 -0
  85. data/vendor/assets/bower_components/moment/locale/bg.js +88 -0
  86. data/vendor/assets/bower_components/moment/locale/bn.js +107 -0
  87. data/vendor/assets/bower_components/moment/locale/bo.js +104 -0
  88. data/vendor/assets/bower_components/moment/locale/br.js +109 -0
  89. data/vendor/assets/bower_components/moment/locale/bs.js +140 -0
  90. data/vendor/assets/bower_components/moment/locale/ca.js +77 -0
  91. data/vendor/assets/bower_components/moment/locale/cs.js +157 -0
  92. data/vendor/assets/bower_components/moment/locale/cv.js +61 -0
  93. data/vendor/assets/bower_components/moment/locale/cy.js +79 -0
  94. data/vendor/assets/bower_components/moment/locale/da.js +58 -0
  95. data/vendor/assets/bower_components/moment/locale/de-at.js +74 -0
  96. data/vendor/assets/bower_components/moment/locale/de.js +73 -0
  97. data/vendor/assets/bower_components/moment/locale/el.js +94 -0
  98. data/vendor/assets/bower_components/moment/locale/en-au.js +64 -0
  99. data/vendor/assets/bower_components/moment/locale/en-ca.js +61 -0
  100. data/vendor/assets/bower_components/moment/locale/en-gb.js +65 -0
  101. data/vendor/assets/bower_components/moment/locale/eo.js +67 -0
  102. data/vendor/assets/bower_components/moment/locale/es.js +77 -0
  103. data/vendor/assets/bower_components/moment/locale/et.js +78 -0
  104. data/vendor/assets/bower_components/moment/locale/eu.js +62 -0
  105. data/vendor/assets/bower_components/moment/locale/fa.js +99 -0
  106. data/vendor/assets/bower_components/moment/locale/fi.js +107 -0
  107. data/vendor/assets/bower_components/moment/locale/fo.js +58 -0
  108. data/vendor/assets/bower_components/moment/locale/fr-ca.js +56 -0
  109. data/vendor/assets/bower_components/moment/locale/fr.js +60 -0
  110. data/vendor/assets/bower_components/moment/locale/gl.js +73 -0
  111. data/vendor/assets/bower_components/moment/locale/he.js +78 -0
  112. data/vendor/assets/bower_components/moment/locale/hi.js +106 -0
  113. data/vendor/assets/bower_components/moment/locale/hr.js +141 -0
  114. data/vendor/assets/bower_components/moment/locale/hu.js +107 -0
  115. data/vendor/assets/bower_components/moment/locale/hy-am.js +114 -0
  116. data/vendor/assets/bower_components/moment/locale/id.js +68 -0
  117. data/vendor/assets/bower_components/moment/locale/is.js +126 -0
  118. data/vendor/assets/bower_components/moment/locale/it.js +68 -0
  119. data/vendor/assets/bower_components/moment/locale/ja.js +59 -0
  120. data/vendor/assets/bower_components/moment/locale/ka.js +109 -0
  121. data/vendor/assets/bower_components/moment/locale/km.js +56 -0
  122. data/vendor/assets/bower_components/moment/locale/ko.js +65 -0
  123. data/vendor/assets/bower_components/moment/locale/lb.js +139 -0
  124. data/vendor/assets/bower_components/moment/locale/lt.js +120 -0
  125. data/vendor/assets/bower_components/moment/locale/lv.js +79 -0
  126. data/vendor/assets/bower_components/moment/locale/mk.js +88 -0
  127. data/vendor/assets/bower_components/moment/locale/ml.js +65 -0
  128. data/vendor/assets/bower_components/moment/locale/mr.js +105 -0
  129. data/vendor/assets/bower_components/moment/locale/ms-my.js +67 -0
  130. data/vendor/assets/bower_components/moment/locale/my.js +89 -0
  131. data/vendor/assets/bower_components/moment/locale/nb.js +59 -0
  132. data/vendor/assets/bower_components/moment/locale/ne.js +106 -0
  133. data/vendor/assets/bower_components/moment/locale/nl.js +69 -0
  134. data/vendor/assets/bower_components/moment/locale/nn.js +58 -0
  135. data/vendor/assets/bower_components/moment/locale/pl.js +100 -0
  136. data/vendor/assets/bower_components/moment/locale/pt-br.js +58 -0
  137. data/vendor/assets/bower_components/moment/locale/pt.js +62 -0
  138. data/vendor/assets/bower_components/moment/locale/ro.js +73 -0
  139. data/vendor/assets/bower_components/moment/locale/ru.js +176 -0
  140. data/vendor/assets/bower_components/moment/locale/sk.js +158 -0
  141. data/vendor/assets/bower_components/moment/locale/sl.js +146 -0
  142. data/vendor/assets/bower_components/moment/locale/sq.js +63 -0
  143. data/vendor/assets/bower_components/moment/locale/sr-cyrl.js +107 -0
  144. data/vendor/assets/bower_components/moment/locale/sr.js +107 -0
  145. data/vendor/assets/bower_components/moment/locale/sv.js +65 -0
  146. data/vendor/assets/bower_components/moment/locale/ta.js +114 -0
  147. data/vendor/assets/bower_components/moment/locale/th.js +59 -0
  148. data/vendor/assets/bower_components/moment/locale/tl-ph.js +60 -0
  149. data/vendor/assets/bower_components/moment/locale/tr.js +94 -0
  150. data/vendor/assets/bower_components/moment/locale/tzm-latn.js +56 -0
  151. data/vendor/assets/bower_components/moment/locale/tzm.js +56 -0
  152. data/vendor/assets/bower_components/moment/locale/uk.js +159 -0
  153. data/vendor/assets/bower_components/moment/locale/uz.js +56 -0
  154. data/vendor/assets/bower_components/moment/locale/vi.js +64 -0
  155. data/vendor/assets/bower_components/moment/locale/zh-cn.js +110 -0
  156. data/vendor/assets/bower_components/moment/locale/zh-tw.js +86 -0
  157. data/vendor/assets/bower_components/moment/min/locales.js +7001 -0
  158. data/vendor/assets/bower_components/moment/min/locales.min.js +4 -0
  159. data/vendor/assets/bower_components/moment/min/moment-with-locales.js +9394 -0
  160. data/vendor/assets/bower_components/moment/min/moment-with-locales.min.js +10 -0
  161. data/vendor/assets/bower_components/moment/min/moment.min.js +7 -0
  162. data/vendor/assets/bower_components/moment/moment.js +2936 -0
  163. data/vendor/assets/bower_components/moment/scripts/npm_prepublish.sh +43 -0
  164. data/vendor/assets/javascripts/datepicker/datepicker.js +3 -0
  165. data/vendor/assets/stylesheets/datepicker/datepicker.js +0 -0
  166. data/vendor/assets/stylesheets/datepicker/datepicker.less +1 -0
  167. data/vendor/assets/stylesheets/dist/railsstrap.css +240 -18
  168. data/vendor/assets/stylesheets/fontawesome.less +2 -0
  169. metadata +116 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 576cfff798a3f38bbdcf0268a8177f0d014af88c
4
- data.tar.gz: 9d433b38d88e8a48020fa97f0c24d8c04c69134d
3
+ metadata.gz: a5368848076f90de4d3bb93d722da03a756c8587
4
+ data.tar.gz: 89ace966b95408b74b85a76027cec3504d264def
5
5
  SHA512:
6
- metadata.gz: 2b31ade8e0cd02f676c593b7deaf183ae816017a1f28018cf2f5f0615b75d2251fe3e03640d6ad50d4025fd6bd6a90dc1555379674943e4061e36d582b36c208
7
- data.tar.gz: 4b9109e82154b84ade8438933212932bcb8bcac474d041331f06e498a071196e04845f46a6dc3a2ca0a3ce73a18125e4082a217acc5d2901c3a6091b99dc473c
6
+ metadata.gz: 84d1f162e59603eba4dd0a94d284c23ce7304a5d2acec3f13d0351f569130505a609813da16aebdf2c37aa2ed3da51bd170f993ff7f27d09c5c89d4a16a13057
7
+ data.tar.gz: 0b193c4a8a0d599cf33a6b56587dae0ea6b59302d212ea496348b0a6d350290c97bd9b25a67b1f186a9f9ebcd85806fd70c326a1da71bcf37cc6a8140c35eb72
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Bootstrap 3.2.0 + FontAwesome 4.2.0 for Rails v3.1 & v4 Asset Pipeline
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
- * Datepicker - A styled HTML5 datepicker.
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
- For Rails 3 applications, add it to config/environments/production.rb. For Rails 4, add it to config/initializers/assets.rb.
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(\sbootstrap/fonts/glyphicons-halflings-regular.eot\sbootstrap/fonts/glyphicons-halflings-regular.svg\sbootstrap/fonts/glyphicons-halflings-regular.ttf\sbootstrap/fonts/glyphicons-halflings-regular.woff\sfontawesome/fonts/fontawesome-webfont.eot\sfontawesome/fonts/fontawesome-webfont.woff\sfontawesome/fonts/fontawesome-webfont.ttf\sfontawesome/fonts/fontawesome-webfont.svg\s)"
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
  */
@@ -15,4 +15,6 @@
15
15
  //= require jquery
16
16
  //= require jquery_ujs
17
17
  //= require bootstrap/dist/js/bootstrap.js
18
+ // Date and Time Picker (remove *):
19
+ //*= require datepicker/datepicker
18
20
  //= require_tree .
@@ -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,4 +1,4 @@
1
1
  - model_class = <%= resource_name.classify %>
2
- div class="page-header"
2
+ .page-header
3
3
  h1=t '.title', :default => [:'helpers.titles.edit', 'Edit %{model}'], :model => model_class.model_name.human.titleize
4
4
  = render :partial => "form"
@@ -1,7 +1,7 @@
1
1
  - model_class = <%= resource_name.classify %>
2
- div class="page-header"
2
+ .page-header
3
3
  h1=t '.title', :default => model_class.model_name.human.pluralize.titleize
4
- table class="table table-striped"
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'
@@ -1,4 +1,4 @@
1
1
  - model_class = <%= resource_name.classify %>
2
- div class="page-header"
2
+ .page-header
3
3
  h1=t '.title', :default => [:'helpers.titles.new', 'New %{model}'], :model => model_class.model_name.human.titleize
4
4
  = render :partial => "form"
@@ -1,5 +1,5 @@
1
1
  - model_class = <%= resource_name.classify %>
2
- div class="page-header"
2
+ .page-header
3
3
  h1=t '.title', :default => model_class.model_name.human.titleize
4
4
 
5
5
  <%- columns.each do |column| -%>
@@ -1,6 +1,6 @@
1
1
  module Railsstrap
2
2
  module Constants
3
3
  #we follow along with Bootstrap's version number for easy identification
4
- VERSION = '3.3.0'
4
+ VERSION = '3.3.1'
5
5
  end
6
6
  end
@@ -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].each do |h|
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
- // NOTE: This jqueryCheck/jqueryVersionCheck code is duplicated in customizer.js;
42
- // if making changes here, be sure to update the other copy too.
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
- // NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
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
- // NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
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.0.zip).
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.3.x).
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,7 +1,7 @@
1
1
  {
2
2
  "name": "bootstrap",
3
3
  "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4
- "version": "3.3.0",
4
+ "version": "3.3.1",
5
5
  "keywords": [
6
6
  "css",
7
7
  "js",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v3.3.0 (http://getbootstrap.com)
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, #428bca 0%, #2d6ca2 100%);
73
- background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
74
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
75
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
76
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
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: #2b669a;
79
+ border-color: #245580;
80
80
  }
81
81
  .btn-primary:hover,
82
82
  .btn-primary:focus {
83
- background-color: #2d6ca2;
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: #2d6ca2;
89
- border-color: #2b669a;
88
+ background-color: #265a88;
89
+ border-color: #245580;
90
90
  }
91
91
  .btn-primary:disabled,
92
92
  .btn-primary[disabled] {
93
- background-color: #2d6ca2;
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: #357ebd;
215
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
216
- background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
217
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
218
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
219
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
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, #428bca 0%, #3071a9 100%);
329
- background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
330
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
331
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
332
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
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 #3071a9;
381
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
382
- background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
383
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
384
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
385
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
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: #3278b3;
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, #428bca 0%, #357ebd 100%);
408
- background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
409
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
410
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
411
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
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 {