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,522 @@
1
+ // Forms.scss
2
+ // Base styles for various input types, form layouts, and states
3
+ // -------------------------------------------------------------
4
+
5
+
6
+ // GENERAL STYLES
7
+ // --------------
8
+
9
+ // Make all forms have space below them
10
+ form {
11
+ margin: 0 0 $baseLineHeight;
12
+ }
13
+
14
+ fieldset {
15
+ padding: 0;
16
+ margin: 0;
17
+ border: 0;
18
+ }
19
+
20
+ // Groups of fields with labels on top (legends)
21
+ legend {
22
+ display: block;
23
+ width: 100%;
24
+ padding: 0;
25
+ margin-bottom: $baseLineHeight * 1.5;
26
+ font-size: $baseFontSize * 1.5;
27
+ line-height: $baseLineHeight * 2;
28
+ color: $grayDark;
29
+ border: 0;
30
+ border-bottom: 1px solid #eee;
31
+
32
+ // Small
33
+ small {
34
+ font-size: $baseLineHeight * .75;
35
+ color: $grayLight;
36
+ }
37
+ }
38
+
39
+ // Set font for forms
40
+ label,
41
+ input,
42
+ button,
43
+ select,
44
+ textarea {
45
+ @include font-shorthand(); // Set size, weight, line-height here
46
+ }
47
+ input,
48
+ button,
49
+ select,
50
+ textarea {
51
+ @include font-family-sans-serif(); // And only set font-family here for those that need it (note the missing label element)
52
+ }
53
+
54
+ // Identify controls by their labels
55
+ label {
56
+ display: block;
57
+ margin-bottom: 5px;
58
+ color: $grayDark;
59
+ }
60
+
61
+ // Inputs, Textareas, Selects
62
+ input,
63
+ textarea,
64
+ select,
65
+ .uneditable-input {
66
+ display: inline-block;
67
+ width: 210px;
68
+ height: $baseLineHeight;
69
+ padding: 4px;
70
+ margin-bottom: 9px;
71
+ font-size: $baseFontSize;
72
+ line-height: $baseLineHeight;
73
+ color: $gray;
74
+ border: 1px solid #ccc;
75
+ @include border-radius(3px);
76
+ }
77
+ .uneditable-textarea {
78
+ width: auto;
79
+ height: auto;
80
+ }
81
+
82
+ // Inputs within a label
83
+ label input,
84
+ label textarea,
85
+ label select {
86
+ display: block;
87
+ }
88
+
89
+ // Mini reset for unique input types
90
+ input[type="image"],
91
+ input[type="checkbox"],
92
+ input[type="radio"] {
93
+ width: auto;
94
+ height: auto;
95
+ padding: 0;
96
+ margin: 3px 0;
97
+ *margin-top: 0; /* IE7 */
98
+ line-height: normal;
99
+ cursor: pointer;
100
+ @include border-radius(0);
101
+ border: 0 \9; /* IE9 and down */
102
+ }
103
+ input[type="image"] {
104
+ border: 0;
105
+ }
106
+
107
+ // Reset the file input to browser defaults
108
+ input[type="file"] {
109
+ width: auto;
110
+ padding: initial;
111
+ line-height: initial;
112
+ border: initial;
113
+ background-color: $white;
114
+ background-color: initial;
115
+ @include box-shadow(none);
116
+ }
117
+
118
+ // Help out input buttons
119
+ input[type="button"],
120
+ input[type="reset"],
121
+ input[type="submit"] {
122
+ width: auto;
123
+ height: auto;
124
+ }
125
+
126
+ // Set the height of select and file controls to match text inputs
127
+ select,
128
+ input[type="file"] {
129
+ height: 28px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
130
+ *margin-top: 4px; /* For IE7, add top margin to align select with labels */
131
+ line-height: 28px;
132
+ }
133
+
134
+ // Reset line-height for IE
135
+ input[type="file"] {
136
+ line-height: 18px \9;
137
+ }
138
+
139
+ // Chrome on Linux and Mobile Safari need background-color
140
+ select {
141
+ width: 220px; // default input width + 10px of padding that doesn't get applied
142
+ background-color: $white;
143
+ }
144
+
145
+ // Make multiple select elements height not fixed
146
+ select[multiple],
147
+ select[size] {
148
+ height: auto;
149
+ }
150
+
151
+ // Remove shadow from image inputs
152
+ input[type="image"] {
153
+ @include box-shadow(none);
154
+ }
155
+
156
+ // Make textarea height behave
157
+ textarea {
158
+ height: auto;
159
+ }
160
+
161
+ // Hidden inputs
162
+ input[type="hidden"] {
163
+ display: none;
164
+ }
165
+
166
+
167
+
168
+ // CHECKBOXES & RADIOS
169
+ // -------------------
170
+
171
+ // Indent the labels to position radios/checkboxes as hanging
172
+ .radio,
173
+ .checkbox {
174
+ padding-left: 18px;
175
+ }
176
+ .radio input[type="radio"],
177
+ .checkbox input[type="checkbox"] {
178
+ float: left;
179
+ margin-left: -18px;
180
+ }
181
+
182
+ // Move the options list down to align with labels
183
+ .controls > .radio:first-child,
184
+ .controls > .checkbox:first-child {
185
+ padding-top: 5px; // has to be padding because margin collaspes
186
+ }
187
+
188
+ // Radios and checkboxes on same line
189
+ // TODO v3: Convert .inline to .control-inline
190
+ .radio.inline,
191
+ .checkbox.inline {
192
+ display: inline-block;
193
+ padding-top: 5px;
194
+ margin-bottom: 0;
195
+ vertical-align: middle;
196
+ }
197
+ .radio.inline + .radio.inline,
198
+ .checkbox.inline + .checkbox.inline {
199
+ margin-left: 10px; // space out consecutive inline controls
200
+ }
201
+
202
+
203
+
204
+ // FOCUS STATE
205
+ // -----------
206
+
207
+ input,
208
+ textarea {
209
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
210
+ $transition: border linear .2s, box-shadow linear .2s;
211
+ @include transition($transition);
212
+ }
213
+ input:focus,
214
+ textarea:focus {
215
+ border-color: rgba(82,168,236,.8);
216
+ $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
217
+ @include box-shadow($shadow);
218
+ outline: 0;
219
+ outline: thin dotted \9; /* IE6-9 */
220
+ }
221
+ input[type="file"]:focus,
222
+ input[type="radio"]:focus,
223
+ input[type="checkbox"]:focus,
224
+ select:focus {
225
+ @include box-shadow(none); // override for file inputs
226
+ @include tab-focus();
227
+ }
228
+
229
+
230
+
231
+ // INPUT SIZES
232
+ // -----------
233
+
234
+ // General classes for quick sizes
235
+ .input-mini { width: 60px; }
236
+ .input-small { width: 90px; }
237
+ .input-medium { width: 150px; }
238
+ .input-large { width: 210px; }
239
+ .input-xlarge { width: 270px; }
240
+ .input-xxlarge { width: 530px; }
241
+
242
+ // Grid style input sizes
243
+ input[class*="span"],
244
+ select[class*="span"],
245
+ textarea[class*="span"],
246
+ .uneditable-input {
247
+ float: none;
248
+ margin-left: 0;
249
+ }
250
+
251
+
252
+
253
+ // GRID SIZING FOR INPUTS
254
+ // ----------------------
255
+
256
+ @include inputGridSystem-generate($gridColumns, $gridColumnWidth, $gridGutterWidth);
257
+
258
+
259
+
260
+
261
+ // DISABLED STATE
262
+ // --------------
263
+
264
+ // Disabled and read-only inputs
265
+ input[disabled],
266
+ select[disabled],
267
+ textarea[disabled],
268
+ input[readonly],
269
+ select[readonly],
270
+ textarea[readonly] {
271
+ background-color: #f5f5f5;
272
+ border-color: #ddd;
273
+ cursor: not-allowed;
274
+ }
275
+
276
+
277
+
278
+
279
+ // FORM FIELD FEEDBACK STATES
280
+ // --------------------------
281
+
282
+ // Warning
283
+ .control-group.warning {
284
+ @include formFieldState($warningText, $warningText, $warningBackground);
285
+ }
286
+ // Error
287
+ .control-group.error {
288
+ @include formFieldState($errorText, $errorText, $errorBackground);
289
+ }
290
+ // Success
291
+ .control-group.success {
292
+ @include formFieldState($successText, $successText, $successBackground);
293
+ }
294
+
295
+ // HTML5 invalid states
296
+ // Shares styles with the .control-group.error above
297
+ input:focus:required:invalid,
298
+ textarea:focus:required:invalid,
299
+ select:focus:required:invalid {
300
+ color: #b94a48;
301
+ border-color: #ee5f5b;
302
+ &:focus {
303
+ border-color: darken(#ee5f5b, 10%);
304
+ @include box-shadow(0 0 6px lighten(#ee5f5b, 20%));
305
+ }
306
+ }
307
+
308
+
309
+
310
+ // FORM ACTIONS
311
+ // ------------
312
+
313
+ .form-actions {
314
+ padding: ($baseLineHeight - 1) 20px $baseLineHeight;
315
+ margin-top: $baseLineHeight;
316
+ margin-bottom: $baseLineHeight;
317
+ background-color: #f5f5f5;
318
+ border-top: 1px solid #ddd;
319
+ }
320
+
321
+ // For text that needs to appear as an input but should not be an input
322
+ .uneditable-input {
323
+ display: block;
324
+ background-color: $white;
325
+ border-color: #eee;
326
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
327
+ cursor: not-allowed;
328
+ }
329
+
330
+ // Placeholder text gets special styles; can't be bundled together though for some reason
331
+ @include placeholder($grayLight);
332
+
333
+
334
+
335
+ // HELP TEXT
336
+ // ---------
337
+
338
+ .help-block {
339
+ display: block; // account for any element using help-block
340
+ margin-top: 5px;
341
+ margin-bottom: 0;
342
+ color: $grayLight;
343
+ }
344
+
345
+ .help-inline {
346
+ display: inline-block;
347
+ @include ie7-inline-block();
348
+ margin-bottom: 9px;
349
+ vertical-align: middle;
350
+ padding-left: 5px;
351
+ }
352
+
353
+
354
+
355
+ // INPUT GROUPS
356
+ // ------------
357
+
358
+ // Allow us to put symbols and text within the input field for a cleaner look
359
+ .input-prepend,
360
+ .input-append {
361
+ margin-bottom: 5px;
362
+ @include clearfix(); // Clear the float to prevent wrapping
363
+ input,
364
+ .uneditable-input {
365
+ @include border-radius(0 3px 3px 0);
366
+ &:focus {
367
+ position: relative;
368
+ z-index: 2;
369
+ }
370
+ }
371
+ .uneditable-input {
372
+ border-left-color: #ccc;
373
+ }
374
+ .add-on {
375
+ float: left;
376
+ display: block;
377
+ width: auto;
378
+ min-width: 16px;
379
+ height: $baseLineHeight;
380
+ margin-right: -1px;
381
+ padding: 4px 5px;
382
+ font-weight: normal;
383
+ line-height: $baseLineHeight;
384
+ color: $grayLight;
385
+ text-align: center;
386
+ text-shadow: 0 1px 0 $white;
387
+ background-color: #f5f5f5;
388
+ border: 1px solid #ccc;
389
+ @include border-radius(3px 0 0 3px);
390
+ }
391
+ .active {
392
+ background-color: lighten($green, 30);
393
+ border-color: $green;
394
+ }
395
+ }
396
+ .input-prepend {
397
+ .add-on {
398
+ *margin-top: 1px; /* IE6-7 */
399
+ }
400
+ }
401
+ .input-append {
402
+ input,
403
+ .uneditable-input {
404
+ float: left;
405
+ @include border-radius(3px 0 0 3px);
406
+ }
407
+ .uneditable-input {
408
+ border-left-color: #eee;
409
+ border-right-color: #ccc;
410
+ }
411
+ .add-on {
412
+ margin-right: 0;
413
+ margin-left: -1px;
414
+ @include border-radius(0 3px 3px 0);
415
+ }
416
+ input:first-child {
417
+ // In IE7, having a hasLayout container (from clearfix's zoom:1) can make the first input
418
+ // inherit the sum of its ancestors' margins.
419
+ *margin-left: -160px;
420
+
421
+ &+.add-on {
422
+ *margin-left: -21px;
423
+ }
424
+ }
425
+ }
426
+
427
+
428
+
429
+ // SEARCH FORM
430
+ // -----------
431
+
432
+ .search-query {
433
+ padding-left: 14px;
434
+ padding-right: 14px;
435
+ margin-bottom: 0; // remove the default margin on all inputs
436
+ @include border-radius(14px);
437
+ }
438
+
439
+
440
+
441
+ // HORIZONTAL & VERTICAL FORMS
442
+ // ---------------------------
443
+
444
+ // Common properties
445
+ // -----------------
446
+
447
+ .form-search,
448
+ .form-inline,
449
+ .form-horizontal {
450
+ input,
451
+ textarea,
452
+ select,
453
+ .help-inline,
454
+ .uneditable-input {
455
+ display: inline-block;
456
+ margin-bottom: 0;
457
+ }
458
+ // Re-hide hidden elements due to specifity
459
+ .hide {
460
+ display: none;
461
+ }
462
+ }
463
+ .form-search label,
464
+ .form-inline label,
465
+ .form-search .input-append,
466
+ .form-inline .input-append,
467
+ .form-search .input-prepend,
468
+ .form-inline .input-prepend {
469
+ display: inline-block;
470
+ }
471
+ // Make the prepend and append add-on vertical-align: middle;
472
+ .form-search .input-append .add-on,
473
+ .form-inline .input-prepend .add-on,
474
+ .form-search .input-append .add-on,
475
+ .form-inline .input-prepend .add-on {
476
+ vertical-align: middle;
477
+ }
478
+ // Inline checkbox/radio labels
479
+ .form-search .radio,
480
+ .form-inline .radio,
481
+ .form-search .checkbox,
482
+ .form-inline .checkbox {
483
+ margin-bottom: 0;
484
+ vertical-align: middle;
485
+ }
486
+
487
+ // Margin to space out fieldsets
488
+ .control-group {
489
+ margin-bottom: $baseLineHeight / 2;
490
+ }
491
+
492
+ // Legend collapses margin, so next element is responsible for spacing
493
+ legend + .control-group {
494
+ margin-top: $baseLineHeight;
495
+ -webkit-margin-top-collapse: separate;
496
+ }
497
+
498
+ // Horizontal-specific styles
499
+ // --------------------------
500
+
501
+ .form-horizontal {
502
+ // Increase spacing between groups
503
+ .control-group {
504
+ margin-bottom: $baseLineHeight;
505
+ @include clearfix();
506
+ }
507
+ // Float the labels left
508
+ .control-label {
509
+ float: left;
510
+ width: 140px;
511
+ padding-top: 5px;
512
+ text-align: right;
513
+ }
514
+ // Move over all input controls and content
515
+ .controls {
516
+ margin-left: 160px;
517
+ }
518
+ // Move over buttons in .form-actions to align with .controls
519
+ .form-actions {
520
+ padding-left: 160px;
521
+ }
522
+ }