openshift-origin-console 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. data/COPYRIGHT +1 -0
  2. data/Gemfile +21 -0
  3. data/LICENSE +203 -0
  4. data/README.md +123 -0
  5. data/Rakefile +44 -0
  6. data/app/assets/images/cartridge-edge.gif +0 -0
  7. data/app/assets/images/console/arrow-down.png +0 -0
  8. data/app/assets/images/console/console-sprite.png +0 -0
  9. data/app/assets/images/favicon-32.png +0 -0
  10. data/app/assets/images/loader-dark.gif +0 -0
  11. data/app/assets/images/loader.gif +0 -0
  12. data/app/assets/images/sprite-vert.png +0 -0
  13. data/app/assets/javascripts/console.js +10 -0
  14. data/app/assets/javascripts/console/form.js.coffee +51 -0
  15. data/app/assets/stylesheets/_alerts.scss +84 -0
  16. data/app/assets/stylesheets/_breadcrumbs.scss +31 -0
  17. data/app/assets/stylesheets/_buttons.scss +229 -0
  18. data/app/assets/stylesheets/_code.scss +86 -0
  19. data/app/assets/stylesheets/_custom.scss +207 -0
  20. data/app/assets/stylesheets/_footer.scss +54 -0
  21. data/app/assets/stylesheets/_forms.scss +710 -0
  22. data/app/assets/stylesheets/_grid.scss +28 -0
  23. data/app/assets/stylesheets/_input-prepend-append.scss +138 -0
  24. data/app/assets/stylesheets/_labels.scss +40 -0
  25. data/app/assets/stylesheets/_mixins.scss +76 -0
  26. data/app/assets/stylesheets/_override-variables.scss +1 -0
  27. data/app/assets/stylesheets/_responsive.scss +438 -0
  28. data/app/assets/stylesheets/_ribbon.scss +57 -0
  29. data/app/assets/stylesheets/_type.scss +306 -0
  30. data/app/assets/stylesheets/_utilities.scss +10 -0
  31. data/app/assets/stylesheets/_variables.scss +131 -0
  32. data/app/assets/stylesheets/common.css.scss +82 -0
  33. data/app/assets/stylesheets/console/_application.scss +194 -0
  34. data/app/assets/stylesheets/console/_base.scss +26 -0
  35. data/app/assets/stylesheets/console/_breadcrumbs.scss +32 -0
  36. data/app/assets/stylesheets/console/_buttons.scss +214 -0
  37. data/app/assets/stylesheets/console/_core.scss +1002 -0
  38. data/app/assets/stylesheets/console/_dropdowns.scss +63 -0
  39. data/app/assets/stylesheets/console/_help.scss +54 -0
  40. data/app/assets/stylesheets/console/_mixins.scss +11 -0
  41. data/app/assets/stylesheets/console/_navbar.scss +415 -0
  42. data/app/assets/stylesheets/console/_ribbon.scss +82 -0
  43. data/app/assets/stylesheets/console/_tile.scss +122 -0
  44. data/app/assets/stylesheets/origin.css.scss +37 -0
  45. data/app/controllers/account/dashboard.rb +13 -0
  46. data/app/controllers/account_controller.rb +3 -0
  47. data/app/controllers/application_types_controller.rb +80 -0
  48. data/app/controllers/applications_controller.rb +183 -0
  49. data/app/controllers/building_controller.rb +81 -0
  50. data/app/controllers/capability_aware.rb +18 -0
  51. data/app/controllers/cartridge_types_controller.rb +53 -0
  52. data/app/controllers/cartridges_controller.rb +43 -0
  53. data/app/controllers/console/auth/basic.rb +65 -0
  54. data/app/controllers/console/auth/none.rb +5 -0
  55. data/app/controllers/console/auth/remote_user.rb +69 -0
  56. data/app/controllers/console/rescue.rb +48 -0
  57. data/app/controllers/console_controller.rb +19 -0
  58. data/app/controllers/console_index_controller.rb +14 -0
  59. data/app/controllers/domain_aware.rb +26 -0
  60. data/app/controllers/domain_session_sweeper.rb +29 -0
  61. data/app/controllers/domains_controller.rb +30 -0
  62. data/app/controllers/keys_controller.rb +43 -0
  63. data/app/controllers/scaling_controller.rb +46 -0
  64. data/app/controllers/sshkey_aware.rb +23 -0
  65. data/app/controllers/sshkey_session_sweeper.rb +29 -0
  66. data/app/controllers/user_session_sweeper.rb +29 -0
  67. data/app/helpers/console/community_helper.rb +78 -0
  68. data/app/helpers/console/console_helper.rb +26 -0
  69. data/app/helpers/console/help_helper.rb +270 -0
  70. data/app/helpers/console/html5_boilerplate_helper.rb +63 -0
  71. data/app/helpers/console/layout_helper.rb +277 -0
  72. data/app/helpers/console/model_helper.rb +106 -0
  73. data/app/helpers/console/secured_helper.rb +5 -0
  74. data/app/models/alias.rb +10 -0
  75. data/app/models/application.rb +148 -0
  76. data/app/models/application_associations.rb +36 -0
  77. data/app/models/application_template.rb +90 -0
  78. data/app/models/application_type.rb +258 -0
  79. data/app/models/async_aware.rb +60 -0
  80. data/app/models/capabilities.rb +62 -0
  81. data/app/models/cartridge.rb +122 -0
  82. data/app/models/cartridge_type.rb +140 -0
  83. data/app/models/domain.rb +44 -0
  84. data/app/models/domain_associations.rb +33 -0
  85. data/app/models/embedded.rb +11 -0
  86. data/app/models/gear.rb +13 -0
  87. data/app/models/gear_group.rb +104 -0
  88. data/app/models/key.rb +87 -0
  89. data/app/models/quickstart.rb +135 -0
  90. data/app/models/rest_api.rb +130 -0
  91. data/app/models/rest_api/base.rb +781 -0
  92. data/app/models/rest_api/cacheable.rb +91 -0
  93. data/app/models/rest_api/environment.rb +13 -0
  94. data/app/models/rest_api/info.rb +34 -0
  95. data/app/models/rest_api/log_subscriber.rb +29 -0
  96. data/app/models/rest_api/railties/controller_runtime.rb +37 -0
  97. data/app/models/user.rb +27 -0
  98. data/app/models/user_associations.rb +6 -0
  99. data/app/views/account/_domain.html.haml +14 -0
  100. data/app/views/account/_keys.html.haml +20 -0
  101. data/app/views/account/_user.html.haml +5 -0
  102. data/app/views/account/show.html.haml +15 -0
  103. data/app/views/application_templates/_application_template.html.haml +5 -0
  104. data/app/views/application_types/_application_type.html.haml +19 -0
  105. data/app/views/application_types/_custom.html.haml +19 -0
  106. data/app/views/application_types/_persisted.html.haml +26 -0
  107. data/app/views/application_types/_tile.html.haml +9 -0
  108. data/app/views/application_types/index.html.haml +87 -0
  109. data/app/views/application_types/search.html.haml +67 -0
  110. data/app/views/application_types/show.html.haml +219 -0
  111. data/app/views/applications/_application.html.haml +34 -0
  112. data/app/views/applications/_applications_filter.html.haml +8 -0
  113. data/app/views/applications/_footer.html.haml +0 -0
  114. data/app/views/applications/_name.html.haml +28 -0
  115. data/app/views/applications/delete.html.haml +19 -0
  116. data/app/views/applications/get_started.html.haml +145 -0
  117. data/app/views/applications/index.html.haml +55 -0
  118. data/app/views/applications/show.html.haml +193 -0
  119. data/app/views/building/delete.html.haml +22 -0
  120. data/app/views/building/new.html.haml +57 -0
  121. data/app/views/building/show.html.haml +12 -0
  122. data/app/views/cartridge_types/_cartridge_type.html.haml +61 -0
  123. data/app/views/cartridge_types/index.html.haml +37 -0
  124. data/app/views/cartridge_types/show.html.haml +21 -0
  125. data/app/views/cartridges/next_steps.html.haml +58 -0
  126. data/app/views/cartridges/show.html.haml +1 -0
  127. data/app/views/console/error.html.haml +58 -0
  128. data/app/views/console/help.html.haml +90 -0
  129. data/app/views/console/not_found.html.haml +69 -0
  130. data/app/views/console/unauthorized.html.haml +7 -0
  131. data/app/views/domains/_domain.html.haml +14 -0
  132. data/app/views/domains/_form.html.haml +13 -0
  133. data/app/views/domains/edit.html.haml +5 -0
  134. data/app/views/domains/new.html.haml +6 -0
  135. data/app/views/keys/_form.html.haml +14 -0
  136. data/app/views/keys/_simple_form.html.haml +14 -0
  137. data/app/views/keys/new.html.haml +2 -0
  138. data/app/views/layouts/_footer.html.haml +38 -0
  139. data/app/views/layouts/_head.html.haml +35 -0
  140. data/app/views/layouts/console.html.haml +60 -0
  141. data/app/views/layouts/console/_header.html.haml +44 -0
  142. data/app/views/layouts/console/_identity.html.haml +7 -0
  143. data/app/views/layouts/console/_javascripts.html.haml +5 -0
  144. data/app/views/layouts/console/_stylesheets.html.haml +6 -0
  145. data/app/views/scaling/delete.html.haml +17 -0
  146. data/app/views/scaling/new.html.haml +24 -0
  147. data/app/views/scaling/show.html.haml +81 -0
  148. data/app/views/shared/_tracking.html.haml +0 -0
  149. data/conf/console.conf.example +108 -0
  150. data/conf/openshift_console.conf +10 -0
  151. data/config/cartridge_types.yml +54 -0
  152. data/config/initializers/barista_config.rb +86 -0
  153. data/config/initializers/cartridge_types.rb +5 -0
  154. data/config/initializers/console_security.rb +1 -0
  155. data/config/initializers/date_helper.rb +5 -0
  156. data/config/initializers/extended_logger.rb +51 -0
  157. data/config/initializers/formtastic.rb +100 -0
  158. data/config/initializers/inflections.rb +38 -0
  159. data/config/initializers/rdiscount.rb +8 -0
  160. data/config/initializers/rest_api.rb +22 -0
  161. data/config/initializers/sass.rb +30 -0
  162. data/config/initializers/session_trace.rb +32 -0
  163. data/config/initializers/x_frame_options.rb +53 -0
  164. data/config/locales/en.yml +12 -0
  165. data/lib/active_resource/associations.rb +107 -0
  166. data/lib/active_resource/associations/builder/association.rb +35 -0
  167. data/lib/active_resource/associations/builder/belongs_to.rb +5 -0
  168. data/lib/active_resource/associations/builder/has_many.rb +5 -0
  169. data/lib/active_resource/associations/builder/has_one.rb +5 -0
  170. data/lib/active_resource/persistent_connection.rb +341 -0
  171. data/lib/active_resource/persistent_http_mock.rb +68 -0
  172. data/lib/active_resource/reflection.rb +78 -0
  173. data/lib/console.rb +8 -0
  174. data/lib/console/config_file.rb +13 -0
  175. data/lib/console/configuration.rb +163 -0
  176. data/lib/console/engine.rb +28 -0
  177. data/lib/console/formtastic/bootstrap_form_builder.rb +369 -0
  178. data/lib/console/rails/app_redirector.rb +40 -0
  179. data/lib/console/rails/filter_hash.rb +15 -0
  180. data/lib/console/rails/routes.rb +51 -0
  181. data/lib/console/version.rb +5 -0
  182. data/lib/tasks/assets.rake +79 -0
  183. data/lib/tasks/stats.rake +18 -0
  184. data/lib/tasks/test_suites.rake +73 -0
  185. data/test/coverage_helper.rb +27 -0
  186. data/test/fixtures/cartridges.json +1 -0
  187. data/test/fixtures/quickstarts.csv +3 -0
  188. data/test/functional/account_controller_test.rb +14 -0
  189. data/test/functional/application_types_controller_test.rb +251 -0
  190. data/test/functional/applications_controller_sanity_test.rb +26 -0
  191. data/test/functional/applications_controller_test.rb +365 -0
  192. data/test/functional/building_controller_test.rb +203 -0
  193. data/test/functional/cartridge_types_controller_isolation_test.rb +68 -0
  194. data/test/functional/cartridge_types_controller_test.rb +48 -0
  195. data/test/functional/cartridges_controller_test.rb +83 -0
  196. data/test/functional/console_auth_basic_controller_test.rb +82 -0
  197. data/test/functional/console_auth_remote_user_controller_test.rb +90 -0
  198. data/test/functional/console_index_controller_test.rb +22 -0
  199. data/test/functional/domains_controller_test.rb +194 -0
  200. data/test/functional/keys_controller_test.rb +163 -0
  201. data/test/functional/quickstarts.json +18 -0
  202. data/test/functional/scaling_controller_test.rb +153 -0
  203. data/test/integration/assets_test.rb +34 -0
  204. data/test/integration/help_link_test.rb +43 -0
  205. data/test/integration/quickstarts_test.rb +24 -0
  206. data/test/integration/rescue_from_test.rb +25 -0
  207. data/test/integration/rest_api/application_test.rb +115 -0
  208. data/test/integration/rest_api/cartridge_test.rb +44 -0
  209. data/test/integration/rest_api/cartridge_type_test.rb +143 -0
  210. data/test/integration/rest_api/domain_test.rb +91 -0
  211. data/test/integration/rest_api/info_test.rb +9 -0
  212. data/test/integration/rest_api/key_test.rb +85 -0
  213. data/test/integration/static_pages_test.rb +44 -0
  214. data/test/rails_app/Rakefile +7 -0
  215. data/test/rails_app/app/controllers/application_controller.rb +5 -0
  216. data/test/rails_app/config.ru +4 -0
  217. data/test/rails_app/config/application.rb +48 -0
  218. data/test/rails_app/config/boot.rb +10 -0
  219. data/test/rails_app/config/database.yml +25 -0
  220. data/test/rails_app/config/environment.rb +5 -0
  221. data/test/rails_app/config/environments/development.rb +38 -0
  222. data/test/rails_app/config/environments/production.rb +70 -0
  223. data/test/rails_app/config/environments/test.rb +43 -0
  224. data/test/rails_app/config/initializers/auth.rb +0 -0
  225. data/test/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  226. data/test/rails_app/config/initializers/inflections.rb +10 -0
  227. data/test/rails_app/config/initializers/mime_types.rb +5 -0
  228. data/test/rails_app/config/initializers/secret_token.rb +7 -0
  229. data/test/rails_app/config/initializers/session_store.rb +8 -0
  230. data/test/rails_app/config/locales/en.yml +5 -0
  231. data/test/rails_app/config/routes.rb +4 -0
  232. data/test/rails_app/script/rails +6 -0
  233. data/test/support/auth.rb +111 -0
  234. data/test/support/base.rb +142 -0
  235. data/test/support/errors.rb +28 -0
  236. data/test/support/rest_api.rb +189 -0
  237. data/test/test_helper.rb +14 -0
  238. data/test/unit/active_model_compliance_test.rb +23 -0
  239. data/test/unit/async_aware_test.rb +55 -0
  240. data/test/unit/configuration_test.rb +158 -0
  241. data/test/unit/filter_hash_test.rb +64 -0
  242. data/test/unit/helpers/model_helper_test.rb +61 -0
  243. data/test/unit/overrides_test.rb +9 -0
  244. data/test/unit/rest_api_test.rb +1590 -0
  245. data/vendor/assets/javascripts/MIT-LICENSE.txt +20 -0
  246. data/vendor/assets/javascripts/bootstrap-collapse.js +157 -0
  247. data/vendor/assets/javascripts/bootstrap-dropdown.js +100 -0
  248. data/vendor/assets/javascripts/bootstrap-tab.js +135 -0
  249. data/vendor/assets/javascripts/bootstrap-transition.js +61 -0
  250. data/vendor/assets/javascripts/jquery.spin.js +47 -0
  251. data/vendor/assets/javascripts/jquery.ui.widget.js +16 -0
  252. data/vendor/assets/javascripts/jquery_cookie.js +41 -0
  253. data/vendor/assets/javascripts/jquery_validate_min.js +51 -0
  254. data/vendor/assets/javascripts/modernizr.min.js +2 -0
  255. data/vendor/assets/javascripts/plugins.js +16 -0
  256. data/vendor/assets/stylesheets/bootstrap/_accordion.scss +28 -0
  257. data/vendor/assets/stylesheets/bootstrap/_alerts.scss +70 -0
  258. data/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +22 -0
  259. data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +147 -0
  260. data/vendor/assets/stylesheets/bootstrap/_buttons.scss +183 -0
  261. data/vendor/assets/stylesheets/bootstrap/_carousel.scss +121 -0
  262. data/vendor/assets/stylesheets/bootstrap/_close.scss +18 -0
  263. data/vendor/assets/stylesheets/bootstrap/_code.scss +57 -0
  264. data/vendor/assets/stylesheets/bootstrap/_component-animations.scss +18 -0
  265. data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +130 -0
  266. data/vendor/assets/stylesheets/bootstrap/_forms.scss +522 -0
  267. data/vendor/assets/stylesheets/bootstrap/_grid.scss +8 -0
  268. data/vendor/assets/stylesheets/bootstrap/_hero-unit.scss +20 -0
  269. data/vendor/assets/stylesheets/bootstrap/_labels.scss +32 -0
  270. data/vendor/assets/stylesheets/bootstrap/_layouts.scss +17 -0
  271. data/vendor/assets/stylesheets/bootstrap/_mixins.scss +602 -0
  272. data/vendor/assets/stylesheets/bootstrap/_modals.scss +84 -0
  273. data/vendor/assets/stylesheets/bootstrap/_navbar.scss +299 -0
  274. data/vendor/assets/stylesheets/bootstrap/_navs.scss +353 -0
  275. data/vendor/assets/stylesheets/bootstrap/_pager.scss +30 -0
  276. data/vendor/assets/stylesheets/bootstrap/_pagination.scss +55 -0
  277. data/vendor/assets/stylesheets/bootstrap/_popovers.scss +49 -0
  278. data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +95 -0
  279. data/vendor/assets/stylesheets/bootstrap/_reset.scss +126 -0
  280. data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +33 -0
  281. data/vendor/assets/stylesheets/bootstrap/_sprites.scss +158 -0
  282. data/vendor/assets/stylesheets/bootstrap/_tables.scss +150 -0
  283. data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +35 -0
  284. data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +35 -0
  285. data/vendor/assets/stylesheets/bootstrap/_type.scss +218 -0
  286. data/vendor/assets/stylesheets/bootstrap/_utilities.scss +23 -0
  287. data/vendor/assets/stylesheets/bootstrap/_variables.scss +107 -0
  288. data/vendor/assets/stylesheets/bootstrap/_wells.scss +17 -0
  289. data/vendor/assets/stylesheets/bootstrap/bootstrap.scss +66 -0
  290. data/vendor/assets/stylesheets/bootstrap/responsive.scss +334 -0
  291. metadata +506 -0
@@ -0,0 +1,28 @@
1
+ // Allow a span to be implicitly wrapped to set grid backgrounds, while allowing
2
+ // a responsive stylesheet to know about the wrapper.
3
+ .grid-wrapper {
4
+ margin-left: 0; // overrides the corresponding style from 'span'
5
+ float: left;
6
+ }
7
+
8
+ // Allow a row to have an right gutter equal to a left gutter
9
+ .row-flush-right {
10
+ margin-right: -$gridGutterWidth;
11
+
12
+ .span-flush-right {
13
+ padding-right: $gridGutterWidth;
14
+ }
15
+ }
16
+
17
+ // For use in inlined elements in combination with existing padding
18
+ .gutter {
19
+ margin-left: $gridGutterWidth;
20
+ }
21
+ .gutter-right {
22
+ margin-right: $gridGutterWidth/2;
23
+ }
24
+
25
+ // Put content into a box with gutters compatible with the grid
26
+ .box-content {
27
+ padding: 20px $gridGutterWidth;
28
+ }
@@ -0,0 +1,138 @@
1
+ .input-prepend, .input-append, .input-prepend-append {
2
+ margin-bottom: 5px;
3
+ *zoom: 1;
4
+ }
5
+ .input-prepend:before,
6
+ .input-append:before,
7
+ .input-prepend:after,
8
+ .input-append:after,
9
+ .input-prepend-append:before,
10
+ .input-prepend-append:after {
11
+ display: table;
12
+ content: "";
13
+ }
14
+ .input-prepend:after, .input-append:after, .input-prepend-append:after {
15
+ clear: both;
16
+ }
17
+ .input-append input,
18
+ .input-append .uneditable-input {
19
+ @include border-radius(3px 0 0 3px);
20
+ }
21
+ .input-prepend input,
22
+ .input-prepend .uneditable-input {
23
+ @include border-radius(0 3px 3px 0);
24
+ }
25
+ .input-prepend input:focus,
26
+ .input-append input:focus,
27
+ .input-prepend-append input:focus,
28
+ .input-prepend .uneditable-input:focus,
29
+ .input-append .uneditable-input:focus {
30
+ position: relative;
31
+ z-index: 2;
32
+ }
33
+ .input-prepend .uneditable-input, .input-append .uneditable-input {
34
+ border-left-color: #ccc;
35
+ }
36
+ .input-prepend .add-on, .input-append .add-on,
37
+ .input-prepend-append .add-on-first, .input-prepend-append .add-on-last {
38
+ float: left;
39
+ display: block;
40
+ width: auto;
41
+ min-width: 16px;
42
+ height: 18px;
43
+ margin-right: -1px;
44
+ padding: 4px 11px;
45
+ font-weight: normal;
46
+ line-height: 18px;
47
+ color: #999999;
48
+ text-align: center;
49
+ background-color: #f4f4f4;
50
+ border: 1px solid #ccc;
51
+ @include border-radius(3px 0 0 3px);
52
+ }
53
+ .input-append .add-on {
54
+ border-radius: 0 3px 3px 0;
55
+ }
56
+ .input-prepend-append input {
57
+ @include border-radius(0);
58
+ border-left: 0;
59
+ border-right: 0;
60
+ float: left;
61
+ }
62
+ .input-prepend-append .add-on-first {
63
+ margin-right: 0;
64
+ }
65
+ .input-prepend-append .add-on-last {
66
+ display: inline;
67
+ @include border-radius(0 3px 3px 0);
68
+ }
69
+ .input-prepend-append .add-on-middle {
70
+ display: block;
71
+ float: left;
72
+ height: 18px;
73
+ line-height: 18px;
74
+ padding: 4px 5px;
75
+ text-align: center;
76
+ background-color: #fff;
77
+ color: #999;
78
+ border-top: 1px solid #ccc;
79
+ border-bottom: 1px solid #ccc;
80
+ @include box-shadow(0 1px 1px rgba(0, 0, 0, 0.075) inset);
81
+ }
82
+ .input-prepend .active, .input-append .active, .input-prepend-append .active {
83
+ background-color: #a9dba9;
84
+ border-color: #46a546;
85
+ }
86
+ .input-prepend-append .add-on {
87
+ border: 1px solid #f4f4f4;
88
+ }
89
+ .form-inline .input-prepend-append {
90
+ display: inline-block;
91
+ }
92
+ .form-inline .input-prepend-append .add-on-first,
93
+ .form-inline .input-prepend-append .add-on-last {
94
+ vertical-align: middle;
95
+ }
96
+ .control-group-important .input-prepend-append .add-on-first,
97
+ .control-group-important .input-prepend-append .add-on-last,
98
+ .control-group-important .input-prepend-append .add-on-middle,
99
+ .control-group-important .input-prepend-append input,
100
+ .control-group-important .input-prepend-append input {
101
+ font-size: 15px;
102
+ padding: 8px 10px;
103
+ max-width: 716px;
104
+ }
105
+ .control-group-important label {
106
+ font-size: 15px;
107
+ }
108
+ .form-horizontal .control-group-important > label {
109
+ padding-top: 10px;
110
+ }
111
+
112
+ .input-prepend-append .error {
113
+ color: $errorBackground;
114
+ border-color: $errorBackground;
115
+ &:focus {
116
+ border-color: darken($errorBackground, 10%);
117
+ @include box-shadow(0 0 2px lighten($errorBackground, 20%));
118
+ }
119
+ }
120
+
121
+
122
+ @media (max-width: 480px) {
123
+ .input-prepend-append input {
124
+ border-left: 1px solid;
125
+ border-radius: 0 0 0 0;
126
+ border-right: 1px solid;
127
+ }
128
+ .input-prepend-append .add-on-middle {
129
+ background-color: #FFFFFF;
130
+ border-bottom: 0 none;
131
+ border-top: 0 none;
132
+ box-shadow: none;
133
+ display: block;
134
+ float: left;
135
+ padding: 0px 6px 5px;
136
+ }
137
+ }
138
+
@@ -0,0 +1,40 @@
1
+ // LABELS
2
+ // ------
3
+
4
+ // Base
5
+ .label {
6
+ padding: 0 6px;
7
+ font-size: $baseFontSize * .75;
8
+ font-weight: bold;
9
+ color: #111;
10
+ text-shadow: 0 0 1px rgba(255, 255, 255, 0.25);
11
+ background-color: #8a8b8c;
12
+ @include border-radius(3px);
13
+ text-transform: uppercase;
14
+ }
15
+
16
+ // Hover state
17
+ .label:hover {
18
+ //color: $white;
19
+ text-decoration: none;
20
+ }
21
+
22
+ // Colors
23
+ .label-important { background-color: $errorBackground; }
24
+ //.label-important:hover { background-color: darken($errorBackground, 10%); }
25
+
26
+ .label-warning { background-color: $orange; }
27
+ //.label-warning:hover { background-color: darken($orange, 10%); }
28
+
29
+ .label-success { background-color: $successBackground; }
30
+ //.label-success:hover { background-color: darken($successBackground, 10%); }
31
+
32
+ .label-info { background-color: $infoBackground; }
33
+ //.label-info:hover { background-color: darken($infoBackground, 10%); }
34
+
35
+ // Margins between labels
36
+ .labels {
37
+ .label {
38
+ margin-left: 4px;
39
+ }
40
+ }
@@ -0,0 +1,76 @@
1
+ // If an element has a background and should stretch across the
2
+ // width of the page on a phone, include this mixin.
3
+ @mixin expand_for_phone($padding:true) {
4
+ margin-left: -$gridGutterWidthPhone;
5
+ margin-right: -$gridGutterWidthPhone;
6
+ @if $padding {
7
+ padding-left: $gridGutterWidthPhone;
8
+ padding-right: $gridGutterWidthPhone;
9
+ }
10
+ }
11
+
12
+ @mixin font-family-monospace() {
13
+ font-family: Menlo, Monaco, "Liberation Mono", Consolas, monospace;
14
+ }
15
+
16
+
17
+ // Override Mixin for generating button backgrounds
18
+ // ---------------------------------------
19
+ @mixin buttonBackground($startColor, $endColor) {
20
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
21
+ @include gradientBar($startColor, $endColor);
22
+ @include reset-filter();
23
+
24
+ &:hover, &:focus {
25
+ background-color: $endColor;
26
+ }
27
+
28
+ &:active, &.active, &.disabled, &[disabled] {
29
+ background-color: $startColor;
30
+ }
31
+
32
+ }
33
+
34
+ @mixin buttonBackgroundConsole($startColor, $endColor) {
35
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
36
+ @include gradientBar($startColor, $endColor);
37
+ @include reset-filter();
38
+
39
+ &:hover {
40
+ background-color: $startColor;
41
+ color: #fff;
42
+ }
43
+
44
+ &:active, &.active, &.disabled, &[disabled] {
45
+ background-color: $startColor;
46
+ color: #ccc;
47
+ border-color: rgba(255, 255, 255, 0.2) rgba(255, 255, 255, 0.2) rgba(255, 255, 255, 0.1) rgba(255, 255, 255, 0.1);
48
+ }
49
+
50
+ }
51
+
52
+
53
+ // IE7 inline-block
54
+ // ----------------
55
+ @mixin ie7-inline-block() {
56
+ *display: inline; /* IE7 inline-block hack */
57
+ *zoom: 1;
58
+ }
59
+
60
+
61
+ // Block-level
62
+ // -----------
63
+ @mixin block-level() {
64
+ display: block;
65
+ width: 100%;
66
+ padding-left: 0;
67
+ padding-right: 0;
68
+ @include box-sizing(border-box);
69
+ }
70
+ .block-level {
71
+ @include block-level();
72
+ }
73
+ // Vertically space out multiple blocks
74
+ .block-level + .block-level {
75
+ margin-top: 8px;
76
+ }
@@ -0,0 +1 @@
1
+ // Downstream Rails applications can provide variables in this file
@@ -0,0 +1,438 @@
1
+ /*!
2
+ * Bootstrap Responsive v2.0.1
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ *
10
+ * Converted to Sass by @johnwlong / @m5o.
11
+ *
12
+ * Date: @DATE
13
+ */
14
+
15
+ // Responsive.scss
16
+ // For phone and tablet devices
17
+ // -------------------------------------------------------------
18
+
19
+
20
+ // REPEAT VARIABLES & MIXINS
21
+ // -------------------------
22
+ // Required since we compile the responsive stuff separately
23
+
24
+ .clearfix {
25
+ @include clearfix();
26
+ }
27
+
28
+ // RESPONSIVE CLASSES
29
+ // ------------------
30
+
31
+ // Hide from screenreaders and browsers
32
+ // Credit: HTML5 Boilerplate
33
+ .hidden {
34
+ display: none;
35
+ visibility: hidden;
36
+ }
37
+
38
+ // DEVICE SPECIFIC CLASSES
39
+ // ------------------
40
+
41
+ .visible-phone {
42
+ display: none !important;
43
+ }
44
+
45
+ .visible-tablet {
46
+ display: none !important;
47
+ }
48
+
49
+ .hidden-desktop {
50
+ display: none !important;
51
+ }
52
+
53
+ @media (max-width: 767px) {
54
+ .visible-phone {
55
+ display: inherit !important;
56
+ }
57
+ .hidden-phone {
58
+ display: none !important;
59
+ }
60
+ .hidden-desktop {
61
+ display: inherit !important;
62
+ }
63
+ .visible-desktop {
64
+ display: none !important;
65
+ }
66
+ }
67
+
68
+ @media (min-width: 768px) and (max-width: 979px) {
69
+ .visible-tablet {
70
+ display: inherit !important;
71
+ }
72
+ .hidden-tablet {
73
+ display: none !important;
74
+ }
75
+ .hidden-desktop {
76
+ display: inherit !important;
77
+ }
78
+ .visible-desktop {
79
+ display: none !important ;
80
+ }
81
+ }
82
+
83
+
84
+ // UP TO LANDSCAPE PHONE
85
+ // ---------------------
86
+
87
+ @media (max-width: 480px) {
88
+ .is-under-481 { content: 'true'; }
89
+
90
+ // Smooth out the collapsing/expanding nav
91
+ .nav-collapse {
92
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
93
+ }
94
+
95
+ // Block level the page header small tag for readability
96
+ .page-header h1 small {
97
+ display: block;
98
+ line-height: $baseLineHeight;
99
+ }
100
+
101
+ // Update checkboxes for iOS
102
+ input[type="checkbox"],
103
+ input[type="radio"] {
104
+ border: 1px solid #ccc;
105
+ }
106
+
107
+ // Remove the horizontal form styles
108
+ .form-horizontal .control-group > label {
109
+ float: none;
110
+ width: auto;
111
+ padding-top: 0;
112
+ text-align: left;
113
+ }
114
+ // Move over all input controls and content
115
+ .form-horizontal .controls {
116
+ margin-left: 0;
117
+ }
118
+ // Move the options list down to align with labels
119
+ .form-horizontal .control-list {
120
+ padding-top: 0; // has to be padding because margin collaspes
121
+ }
122
+ // Move over buttons in .form-actions to align with .controls
123
+ .form-horizontal .form-actions {
124
+ padding-left: 10px;
125
+ padding-right: 10px;
126
+ }
127
+
128
+ // Modals
129
+ .modal {
130
+ position: absolute;
131
+ top: 10px;
132
+ left: 10px;
133
+ right: 10px;
134
+ width: auto;
135
+ margin: 0;
136
+ &.fade.in { top: auto; }
137
+ }
138
+ .modal-header .close {
139
+ padding: 10px;
140
+ margin: -10px;
141
+ }
142
+
143
+ // Carousel
144
+ .carousel-caption {
145
+ position: static;
146
+ }
147
+
148
+ // Block button for phone
149
+ .btn-block-phone {
150
+ display: block;
151
+ width: 100%;
152
+ padding-left: 0;
153
+ padding-right: 0;
154
+ margin-bottom: $baseLineHeight / 2;
155
+ @include box-sizing(border-box);
156
+ }
157
+
158
+ // Specificity overrides
159
+ input[type="submit"],
160
+ input[type="reset"],
161
+ input[type="button"] {
162
+ &.btn-block-phone {
163
+ width: 100%;
164
+ margin-bottom: $baseLineHeight / 2;
165
+ }
166
+ }
167
+ }
168
+
169
+
170
+
171
+ // LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
172
+ // --------------------------------------------------
173
+
174
+ @media (max-width: 767px) {
175
+ .is-under-767 { content: 'true'; }
176
+ // GRID & CONTAINERS
177
+ // -----------------
178
+ // Remove width from containers
179
+ .container {
180
+ width: auto;
181
+ padding: 0 20px;
182
+ }
183
+
184
+ // FORM FIELDS
185
+ // -----------
186
+ // Make span* classes full width
187
+ .input-large,
188
+ .input-xlarge,
189
+ .input-xxlarge,
190
+ input[class*="span"],
191
+ select[class*="span"],
192
+ textarea[class*="span"],
193
+ .uneditable-input {
194
+ @include input-block-level();
195
+ }
196
+ // But don't let it screw up prepend/append inputs
197
+ .input-prepend input,
198
+ .input-append input,
199
+ .input-prepend input[class*="span"],
200
+ .input-append input[class*="span"] {
201
+ display: inline-block; // redeclare so they don't wrap to new lines
202
+ width: auto;
203
+ }
204
+ .controls-row [class*="span"] + [class*="span"] {
205
+ margin-left: 0;
206
+ }
207
+
208
+ // ADDED: containers which don't need gutters in small layouts
209
+ .container-inset {
210
+ padding: 0;
211
+ }
212
+
213
+ // Fluid rows
214
+ .row-fluid {
215
+ width: 100%;
216
+ }
217
+ // Undo negative margin on rows
218
+ .row {
219
+ margin-left: 0;
220
+ }
221
+ // Make all columns even
222
+ .row > [class*="span"],
223
+ .row > .grid-wrapper,
224
+ .row > .grid-wrapper > [class*="span"],
225
+ .row > .grid-wrapper > div > [class*="span"],
226
+ .row-fluid > [class*="span"] {
227
+ float: none;
228
+ display: block;
229
+ width: auto;
230
+ margin: 0;
231
+ }
232
+
233
+ // Custom: adjust a span to adjust to the right of a box
234
+ .row-flush-right {
235
+ margin-right: 0;
236
+
237
+ .span-flush-right {
238
+ padding-right: 0;
239
+ }
240
+ }
241
+
242
+ // For use in inlined elements in combination with existing padding
243
+ .gutter {
244
+ margin-left: $gridGutterWidthPhone;
245
+ }
246
+ .gutter-right {
247
+ margin-right: 0;
248
+ }
249
+
250
+ // Put content into a box with gutters compatible with the grid
251
+ .box-content {
252
+ padding: $gridGutterWidthPhone/2 $gridGutterWidthPhone;
253
+ }
254
+ }
255
+
256
+
257
+
258
+ // PORTRAIT TABLET TO DEFAULT DESKTOP
259
+ // ----------------------------------
260
+
261
+ @media (min-width: 768px) and (max-width: 979px) {
262
+ .is-in-portrait { content: 'true'; }
263
+
264
+ // Fixed grid
265
+ @include gridSystem-generate(12, $gridColumnWidthTablet, $gridGutterWidthTablet);
266
+
267
+ // Fluid grid
268
+ @include fluidGridSystem-generate(12, 5.801104972%, 2.762430939%);
269
+
270
+ // Input grid
271
+ @include inputGridSystem-generate(12, $gridColumnWidthTablet, $gridGutterWidthTablet);
272
+
273
+ // Custom: adjust a span to adjust to the right of a box
274
+ .row-flush-right {
275
+ margin-right: -$gridGutterWidthTablet;
276
+
277
+ .span-flush-right {
278
+ padding-right: $gridGutterWidthTablet;
279
+ }
280
+ }
281
+
282
+ body:first-of-type .row-flush-right .span-flush-right {padding-right:19px;} /* Target Chrome bug 851389 */
283
+
284
+ // For use in inlined elements in combination with existing padding
285
+ .gutter {
286
+ margin-left: $gridGutterWidthTablet;
287
+ }
288
+ .gutter-right {
289
+ margin-right: $gridGutterWidthTablet/2;
290
+ }
291
+
292
+ // Put content into a box with gutters compatible with the grid
293
+ .box-content {
294
+ padding: $gridGutterWidthTablet;
295
+ }
296
+ }
297
+
298
+
299
+
300
+ // TABLETS AND BELOW
301
+ // -----------------
302
+ @media (max-width: 979px) {
303
+ .is-under-979 { content: 'true'; }
304
+
305
+ // UNFIX THE TOPBAR
306
+ // ----------------
307
+ // Remove any padding from the body
308
+ body {
309
+ padding-top: 0;
310
+ }
311
+ // Unfix the navbar
312
+ .navbar-fixed-top {
313
+ position: static;
314
+ margin-bottom: $baseLineHeight;
315
+ }
316
+ .navbar-fixed-top .navbar-inner {
317
+ padding: 5px;
318
+ }
319
+ /* Prefer to leave navbar aligned with column edges
320
+ .navbar .container {
321
+ width: auto;
322
+ padding: 0;
323
+ }
324
+ */
325
+ // Account for brand name
326
+ .navbar .brand {
327
+ padding-left: 10px;
328
+ padding-right: 10px;
329
+ margin: 0 0 0 -5px;
330
+ }
331
+ // Nav collapse clears brand
332
+ .navbar .nav-collapse {
333
+ clear: both;
334
+ }
335
+ // Block-level the nav
336
+ .navbar .nav {
337
+ float: none;
338
+ margin: 0 0 ($baseLineHeight / 2);
339
+ }
340
+ .navbar .nav > li {
341
+ float: none;
342
+ }
343
+ .navbar .nav > li > a {
344
+ margin-bottom: 2px;
345
+ }
346
+ .navbar .nav > .divider-vertical {
347
+ display: none;
348
+ }
349
+ .navbar .nav .nav-header {
350
+ color: $navbarText;
351
+ text-shadow: none;
352
+ }
353
+ // Forms in navbar
354
+ .navbar-form,
355
+ .navbar-search {
356
+ float: none;
357
+ padding: ($baseLineHeight / 2) 15px;
358
+ margin: ($baseLineHeight / 2) 0;
359
+ border-top: 1px solid $navbarBackground;
360
+ border-bottom: 1px solid $navbarBackground;
361
+ $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
362
+ @include box-shadow($shadow);
363
+ }
364
+ // Pull right (secondary) nav content
365
+ .navbar .nav.pull-right {
366
+ float: none;
367
+ margin-left: 0;
368
+ }
369
+ // Static navbar
370
+ .navbar-static .navbar-inner {
371
+ padding-left: 10px;
372
+ padding-right: 10px;
373
+ }
374
+
375
+ // Hide everything in the navbar save .brand and toggle button */
376
+ .nav-collapse {
377
+ overflow: hidden;
378
+ height: 0;
379
+ }
380
+ }
381
+
382
+
383
+ // DEFAULT DESKTOP
384
+ // ---------------
385
+
386
+ @media (min-width: 980px) {
387
+ .is-above-980 { content: 'true'; }
388
+ .nav-collapse.collapse {
389
+ //height: auto !important;
390
+ }
391
+ }
392
+
393
+
394
+
395
+ // LARGE DESKTOP & UP
396
+ // ------------------
397
+
398
+ @media (min-width: 1200px) {
399
+ .is-above-1200 { content: 'true'; }
400
+
401
+ // Fixed grid
402
+ @include gridSystem-generate(12, $gridColumnWidthLarge, $gridGutterWidthLarge);
403
+
404
+ // Fluid grid
405
+ @include fluidGridSystem-generate(12, 5.982905983%, 2.564102564%);
406
+
407
+ // Input grid
408
+ @include inputGridSystem-generate(12, $gridColumnWidthLarge, $gridGutterWidthLarge);
409
+
410
+ // Thumbnails
411
+ .thumbnails {
412
+ margin-left: -$gridGutterWidthLarge;
413
+ }
414
+ .thumbnails > li {
415
+ margin-left: $gridGutterWidthLarge;
416
+ }
417
+
418
+ // Custom: adjust a span to adjust to the right of a box
419
+ .row-flush-right {
420
+ margin-right: -$gridGutterWidthLarge;
421
+
422
+ .span-flush-right {
423
+ padding-right: $gridGutterWidthLarge;
424
+ }
425
+ }
426
+ // For use in inlined elements in combination with existing padding
427
+ .gutter {
428
+ margin-left: $gridGutterWidthLarge;
429
+ }
430
+ .gutter-right {
431
+ margin-right: $gridGutterWidthLarge/2;
432
+ }
433
+
434
+ // Put content into a box with gutters compatible with the grid
435
+ .box-content {
436
+ padding: $gridGutterWidthLarge;
437
+ }
438
+ }