rails_adserver 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +0 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/rails_adserver/adspaces.js +2 -0
  5. data/app/assets/javascripts/rails_adserver/advertisements.js +2 -0
  6. data/app/assets/javascripts/rails_adserver/application.js +15 -0
  7. data/app/assets/javascripts/rails_adserver/rails_adserver_form.js.coffee +47 -0
  8. data/app/assets/stylesheets/rails_adserver/adspaces.css +4 -0
  9. data/app/assets/stylesheets/rails_adserver/advertisements.css +4 -0
  10. data/app/assets/stylesheets/rails_adserver/application.css +13 -0
  11. data/app/assets/stylesheets/rails_adserver/bootstrap-responsive.css +581 -0
  12. data/app/assets/stylesheets/rails_adserver/bootstrap.css +3496 -0
  13. data/app/assets/stylesheets/rails_adserver/pages.css +16 -0
  14. data/app/controllers/rails_adserver/adspaces_controller.rb +88 -0
  15. data/app/controllers/rails_adserver/advertisements_controller.rb +113 -0
  16. data/app/controllers/rails_adserver/application_controller.rb +25 -0
  17. data/app/controllers/rails_adserver/pages_controller.rb +9 -0
  18. data/app/helpers/rails_adserver/adspaces_helper.rb +4 -0
  19. data/app/helpers/rails_adserver/advertisements_helper.rb +4 -0
  20. data/app/helpers/rails_adserver/application_helper.rb +4 -0
  21. data/app/helpers/rails_adserver/pages_helper.rb +5 -0
  22. data/app/models/rails_adserver/adspace.rb +6 -0
  23. data/app/models/rails_adserver/advertisement.rb +110 -0
  24. data/app/models/rails_adserver/click.rb +5 -0
  25. data/app/uploaders/rails_adserver/advertisement_uploader.rb +56 -0
  26. data/app/views/layouts/rails_adserver/_sidebar.html.haml +21 -0
  27. data/app/views/layouts/rails_adserver/_topbar.html.haml +15 -0
  28. data/app/views/layouts/rails_adserver/advertisement.html.haml +3 -0
  29. data/app/views/layouts/rails_adserver/application.html.haml +25 -0
  30. data/app/views/rails_adserver/adspaces/_form.html.haml +16 -0
  31. data/app/views/rails_adserver/adspaces/edit.html.haml +1 -0
  32. data/app/views/rails_adserver/adspaces/index.html.haml +17 -0
  33. data/app/views/rails_adserver/adspaces/new.html.haml +1 -0
  34. data/app/views/rails_adserver/adspaces/show.html.haml +0 -0
  35. data/app/views/rails_adserver/advertisements/_advertisement.html.haml +7 -0
  36. data/app/views/rails_adserver/advertisements/_advertisements_table.html.haml +38 -0
  37. data/app/views/rails_adserver/advertisements/_form.html.haml +103 -0
  38. data/app/views/rails_adserver/advertisements/edit.html.haml +1 -0
  39. data/app/views/rails_adserver/advertisements/index.html.haml +2 -0
  40. data/app/views/rails_adserver/advertisements/new.html.haml +1 -0
  41. data/app/views/rails_adserver/advertisements/show.html.haml +5 -0
  42. data/app/views/rails_adserver/pages/home.html.haml +9 -0
  43. data/config/initializers/geokit.rb +1 -0
  44. data/config/initializers/haml.rb +2 -0
  45. data/config/routes.rb +10 -0
  46. data/db/migrate/20120227014859_create_rails_adserver_advertisements.rb +13 -0
  47. data/db/migrate/20120227014945_create_rails_adserver_clicks.rb +9 -0
  48. data/db/migrate/20120228000410_add_param_restriction_to_advertisement.rb +5 -0
  49. data/db/migrate/20120228000647_add_name_of_param_restriction_to_advertisement.rb +5 -0
  50. data/db/migrate/20120228010151_create_rails_adserver_adspaces.rb +8 -0
  51. data/db/migrate/20120228010315_add_name_to_adspace.rb +5 -0
  52. data/db/migrate/20120228043946_add_adspace_id_to_advertisement.rb +6 -0
  53. data/db/migrate/20120305034458_add_ad_type_to_advertisement.rb +6 -0
  54. data/db/migrate/20120305040026_add_parameter_restriction_boolean_to_advertisement.rb +6 -0
  55. data/db/migrate/20120305044238_add_more_options_to_advertisement.rb +7 -0
  56. data/db/migrate/20120305054319_add_image_to_advertisement.rb +5 -0
  57. data/db/migrate/20120305195421_add_max_clicks_to_advertisement.rb +6 -0
  58. data/db/migrate/20120305203049_add_indexes.rb +8 -0
  59. data/db/migrate/20120305212451_change_indexes.rb +11 -0
  60. data/db/migrate/20120305214753_add_click_count_to_advertisement.rb +6 -0
  61. data/db/migrate/20120306023105_geolocation.rb +5 -0
  62. data/db/migrate/20120306052705_add_geolocation_names_to_advertisements.rb +7 -0
  63. data/db/migrate/20120306065447_add_advertisement_indexes.rb +8 -0
  64. data/db/migrate/20120323174313_add_backup_boolean_to_ads.rb +5 -0
  65. data/db/migrate/20120328043354_add_view_count_to_ads.rb +6 -0
  66. data/db/migrate/20120328043651_add_views_to_ads.rb +6 -0
  67. data/lib/rails_adserver.rb +13 -0
  68. data/lib/rails_adserver/config.rb +13 -0
  69. data/lib/rails_adserver/engine.rb +5 -0
  70. data/lib/rails_adserver/version.rb +3 -0
  71. data/lib/tasks/rails_adserver_tasks.rake +4 -0
  72. data/test/dummy/README.rdoc +261 -0
  73. data/test/dummy/Rakefile +7 -0
  74. data/test/dummy/app/assets/javascripts/application.js +15 -0
  75. data/test/dummy/app/assets/javascripts/page.js +5 -0
  76. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  77. data/test/dummy/app/assets/stylesheets/page.css +4 -0
  78. data/test/dummy/app/controllers/application_controller.rb +3 -0
  79. data/test/dummy/app/controllers/page_controller.rb +4 -0
  80. data/test/dummy/app/helpers/application_helper.rb +2 -0
  81. data/test/dummy/app/helpers/page_helper.rb +2 -0
  82. data/test/dummy/app/models/user.rb +9 -0
  83. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  84. data/test/dummy/app/views/page/home.html.haml +1 -0
  85. data/test/dummy/config.ru +4 -0
  86. data/test/dummy/config/application.rb +57 -0
  87. data/test/dummy/config/boot.rb +10 -0
  88. data/test/dummy/config/database.yml +25 -0
  89. data/test/dummy/config/environment.rb +5 -0
  90. data/test/dummy/config/environments/development.rb +37 -0
  91. data/test/dummy/config/environments/production.rb +67 -0
  92. data/test/dummy/config/environments/test.rb +37 -0
  93. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  94. data/test/dummy/config/initializers/carrierwave.rb +4 -0
  95. data/test/dummy/config/initializers/devise.rb +223 -0
  96. data/test/dummy/config/initializers/inflections.rb +15 -0
  97. data/test/dummy/config/initializers/mime_types.rb +5 -0
  98. data/test/dummy/config/initializers/rails_adserver.rb +5 -0
  99. data/test/dummy/config/initializers/secret_token.rb +7 -0
  100. data/test/dummy/config/initializers/session_store.rb +8 -0
  101. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  102. data/test/dummy/config/locales/devise.en.yml +57 -0
  103. data/test/dummy/config/locales/en.yml +5 -0
  104. data/test/dummy/config/routes.rb +10 -0
  105. data/test/dummy/db/development.sqlite3 +0 -0
  106. data/test/dummy/db/migrate/20120227204751_devise_create_users.rb +49 -0
  107. data/test/dummy/db/migrate/20120307204255_add_can_manage_ads_to_users.rb +6 -0
  108. data/test/dummy/db/schema.rb +84 -0
  109. data/test/dummy/db/test.sqlite3 +0 -0
  110. data/test/dummy/log/development.log +26491 -0
  111. data/test/dummy/public/404.html +26 -0
  112. data/test/dummy/public/422.html +26 -0
  113. data/test/dummy/public/500.html +25 -0
  114. data/test/dummy/public/favicon.ico +0 -0
  115. data/test/dummy/public/public/uploads/rails_adserver/advertisement/image/1/uszgP.jpg +0 -0
  116. data/test/dummy/script/rails +6 -0
  117. data/test/dummy/test/fixtures/users.yml +11 -0
  118. data/test/dummy/test/functional/page_controller_test.rb +9 -0
  119. data/test/dummy/test/unit/helpers/page_helper_test.rb +4 -0
  120. data/test/dummy/test/unit/user_test.rb +7 -0
  121. data/test/dummy/tmp/cache/assets/C8F/860/sprockets%2Fd57276033f66173927e782e5c5b90c7b +0 -0
  122. data/test/dummy/tmp/cache/assets/C9E/E90/sprockets%2F4cebc1ca866a787736432410406a1b50 +0 -0
  123. data/test/dummy/tmp/cache/assets/CA6/990/sprockets%2F379e6655f2bcbb2380bc62b313314727 +0 -0
  124. data/test/dummy/tmp/cache/assets/CA7/ED0/sprockets%2F1e7b5a8a1137789918c115c01224bf4e +0 -0
  125. data/test/dummy/tmp/cache/assets/CC5/850/sprockets%2F7744952a67b1f4545bee9716f198c19b +0 -0
  126. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  127. data/test/dummy/tmp/cache/assets/CE6/0F0/sprockets%2Ff173f2af55165a9415194d3e854c85da +0 -0
  128. data/test/dummy/tmp/cache/assets/CE7/DA0/sprockets%2F8ed8b29fe6a806301c31c79881a90c09 +0 -0
  129. data/test/dummy/tmp/cache/assets/CF2/CD0/sprockets%2Fda5995b74493c93c586f584b54c74a0b +0 -0
  130. data/test/dummy/tmp/cache/assets/CF3/920/sprockets%2F55f039ac18775d9358bdc75406f1e8f5 +0 -0
  131. data/test/dummy/tmp/cache/assets/D11/7F0/sprockets%2F9bcb57444f3287a8fa6fc45404e414c2 +0 -0
  132. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  133. data/test/dummy/tmp/cache/assets/D35/D40/sprockets%2F75eff8f38359ea04cb0101ae2b91d702 +0 -0
  134. data/test/dummy/tmp/cache/assets/D3C/710/sprockets%2Fe62ab8b4376ed759a9cb72a62b0651e0 +0 -0
  135. data/test/dummy/tmp/cache/assets/D3D/A90/sprockets%2Fb9991dccd27b48a625b6a0146717ade3 +0 -0
  136. data/test/dummy/tmp/cache/assets/D3E/910/sprockets%2F5fdb0e602ada6a930583809f853d39bb +0 -0
  137. data/test/dummy/tmp/cache/assets/D3F/D00/sprockets%2Fbe9a1d851c3b30e4a710983eda7f7196 +0 -0
  138. data/test/dummy/tmp/cache/assets/D42/E30/sprockets%2F261c172e1fdf9b39a4678a48371eaad6 +0 -0
  139. data/test/dummy/tmp/cache/assets/D4D/2F0/sprockets%2Fd7dd6367378df15e4f0bb6d93fb41529 +0 -0
  140. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  141. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  142. data/test/dummy/tmp/cache/assets/D5C/210/sprockets%2Fc78ac0bb1ca02e0ac1a566663840f8d6 +0 -0
  143. data/test/dummy/tmp/cache/assets/D5D/040/sprockets%2F539152cca8a2a9422e2a3ffa2a285d2d +0 -0
  144. data/test/dummy/tmp/cache/assets/D6D/670/sprockets%2F6ca4a9214539aeaf6f8401d3b77af16f +0 -0
  145. data/test/dummy/tmp/cache/assets/D73/BD0/sprockets%2Fac1f8d241dad59f05983cc1039ff4c58 +0 -0
  146. data/test/dummy/tmp/cache/assets/D7B/EA0/sprockets%2F0faa78844d169df84da0f122c89eb4f9 +0 -0
  147. data/test/dummy/tmp/cache/assets/D93/220/sprockets%2Fc0dcb0c6b055384fbd88d5b529c0da08 +0 -0
  148. data/test/dummy/tmp/cache/assets/DA0/180/sprockets%2F399fd2be6e4cf00a819a2630f8dd7ea2 +0 -0
  149. data/test/dummy/tmp/cache/assets/DB3/D90/sprockets%2F13d110dd2bde3bcd20b72f882330feae +0 -0
  150. data/test/dummy/tmp/cache/assets/DBA/2C0/sprockets%2F3879aa153bb0fe0de0fa0281f8cba2f2 +0 -0
  151. data/test/dummy/tmp/cache/assets/DCD/700/sprockets%2F57ee5a1f5e64e611b990eeadb75b14cb +0 -0
  152. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  153. data/test/dummy/tmp/cache/assets/DDD/700/sprockets%2F78da8de4fc4dba2a5e7fa624ff518973 +0 -0
  154. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  155. data/test/dummy/tmp/cache/assets/E06/950/sprockets%2Fbc8b0eff6fc13759f0c069b4f8bc3e6c +0 -0
  156. data/test/dummy/tmp/cache/assets/EB3/120/sprockets%2Fbaadea6fabac9ad5d1215ef8d3bf67a6 +0 -0
  157. data/test/fixtures/rails_adserver/adspaces.yml +11 -0
  158. data/test/fixtures/rails_adserver/advertisements.yml +15 -0
  159. data/test/fixtures/rails_adserver/clicks.yml +7 -0
  160. data/test/functional/rails_adserver/adspaces_controller_test.rb +51 -0
  161. data/test/functional/rails_adserver/advertisements_controller_test.rb +51 -0
  162. data/test/functional/rails_adserver/pages_controller_test.rb +9 -0
  163. data/test/integration/navigation_test.rb +10 -0
  164. data/test/rails_adserver_test.rb +7 -0
  165. data/test/test_helper.rb +10 -0
  166. data/test/unit/helpers/rails_adserver/adspaces_helper_test.rb +6 -0
  167. data/test/unit/helpers/rails_adserver/advertisements_helper_test.rb +6 -0
  168. data/test/unit/helpers/rails_adserver/pages_helper_test.rb +6 -0
  169. data/test/unit/rails_adserver/adspace_test.rb +9 -0
  170. data/test/unit/rails_adserver/advertisement_test.rb +9 -0
  171. data/test/unit/rails_adserver/click_test.rb +9 -0
  172. data/test/unit/rails_adserver/clicks_test.rb +9 -0
  173. metadata +401 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2012 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'RailsAdserver'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ require 'rake/testtask'
31
+
32
+ Rake::TestTask.new(:test) do |t|
33
+ t.libs << 'lib'
34
+ t.libs << 'test'
35
+ t.pattern = 'test/**/*_test.rb'
36
+ t.verbose = false
37
+ end
38
+
39
+
40
+ task :default => :test
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,47 @@
1
+ jQuery ->
2
+ $('#width').parent().hide()
3
+ $('#height').parent().hide()
4
+ $('#url').parent().hide()
5
+ $('#ad_text').parent().hide()
6
+ $('#param_name').parent().hide()
7
+ $('#param_restriction_value').parent().hide()
8
+ $('#image').parent().hide()
9
+ $('#clicks').parent().hide()
10
+ $('#geo_location').parent().hide()
11
+ if($('#advertisement_ad_type_image_link').attr('checked'))
12
+ $('#width').parent().show()
13
+ $('#height').parent().show()
14
+ $('#url').parent().show()
15
+ $('#image').parent().show()
16
+ $('#clicks').parent().show()
17
+ if($('#advertisement_ad_type_ad_service').attr('checked'))
18
+ $('#ad_text').parent().show()
19
+ if($('#advertisement_parameter_restriction_boolean_true').attr('checked'))
20
+ $('#param_name').parent().show()
21
+ $('#param_restriction_value').parent().show()
22
+ if($('#advertisement_geolocation_boolean_true').attr('checked'))
23
+ $('#geo_location').parent().show()
24
+ $('#advertisement_ad_type_ad_service').change ->
25
+ $('#width').parent().hide()
26
+ $('#height').parent().hide()
27
+ $('#url').parent().hide()
28
+ $('#image').parent().hide()
29
+ $('#clicks').parent().hide()
30
+ $('#ad_text').parent().show()
31
+ $('#advertisement_ad_type_image_link').change ->
32
+ $('#width').parent().show()
33
+ $('#height').parent().show()
34
+ $('#url').parent().show()
35
+ $('#image').parent().show()
36
+ $('#clicks').parent().show()
37
+ $('#ad_text').parent().hide()
38
+ $('#advertisement_parameter_restriction_boolean_true').change ->
39
+ $('#param_name').parent().show()
40
+ $('#param_restriction_value').parent().show()
41
+ $('#advertisement_parameter_restriction_boolean_false').change ->
42
+ $('#param_name').parent().hide()
43
+ $('#param_restriction_value').parent().hide()
44
+ $('#advertisement_geolocation_boolean_true').change ->
45
+ $('#geo_location').parent().show()
46
+ $('#advertisement_geolocation_boolean_false').change ->
47
+ $('#geo_location').parent().hide()
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,581 @@
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
+ .clearfix {
11
+ *zoom: 1;
12
+ }
13
+ .clearfix:before, .clearfix:after {
14
+ display: table;
15
+ content: "";
16
+ }
17
+ .clearfix:after {
18
+ clear: both;
19
+ }
20
+ .hidden {
21
+ display: none;
22
+ visibility: hidden;
23
+ }
24
+ @media (max-width: 480px) {
25
+ .nav-collapse {
26
+ -webkit-transform: translate3d(0, 0, 0);
27
+ }
28
+ .page-header h1 small {
29
+ display: block;
30
+ line-height: 18px;
31
+ }
32
+ input[class*="span"],
33
+ select[class*="span"],
34
+ textarea[class*="span"],
35
+ .uneditable-input {
36
+ display: block;
37
+ width: 100%;
38
+ min-height: 28px;
39
+ /* Make inputs at least the height of their button counterpart */
40
+
41
+ /* Makes inputs behave like true block-level elements */
42
+
43
+ -webkit-box-sizing: border-box;
44
+ /* Older Webkit */
45
+
46
+ -moz-box-sizing: border-box;
47
+ /* Older FF */
48
+
49
+ -ms-box-sizing: border-box;
50
+ /* IE8 */
51
+
52
+ box-sizing: border-box;
53
+ /* CSS3 spec*/
54
+
55
+ }
56
+ .input-prepend input[class*="span"], .input-append input[class*="span"] {
57
+ width: auto;
58
+ }
59
+ input[type="checkbox"], input[type="radio"] {
60
+ border: 1px solid #ccc;
61
+ }
62
+ .form-horizontal .control-group > label {
63
+ float: none;
64
+ width: auto;
65
+ padding-top: 0;
66
+ text-align: left;
67
+ }
68
+ .form-horizontal .controls {
69
+ margin-left: 0;
70
+ }
71
+ .form-horizontal .control-list {
72
+ padding-top: 0;
73
+ }
74
+ .form-horizontal .form-actions {
75
+ padding-left: 10px;
76
+ padding-right: 10px;
77
+ }
78
+ .modal {
79
+ position: absolute;
80
+ top: 10px;
81
+ left: 10px;
82
+ right: 10px;
83
+ width: auto;
84
+ margin: 0;
85
+ }
86
+ .modal.fade.in {
87
+ top: auto;
88
+ }
89
+ .modal-header .close {
90
+ padding: 10px;
91
+ margin: -10px;
92
+ }
93
+ .carousel-caption {
94
+ position: static;
95
+ }
96
+ }
97
+ @media (max-width: 767px) {
98
+ .container {
99
+ width: auto;
100
+ padding: 0 20px;
101
+ }
102
+ .row-fluid {
103
+ width: 100%;
104
+ }
105
+ .row {
106
+ margin-left: 0;
107
+ }
108
+ .row > [class*="span"], .row-fluid > [class*="span"] {
109
+ float: none;
110
+ display: block;
111
+ width: auto;
112
+ margin: 0;
113
+ }
114
+ }
115
+ @media (min-width: 768px) and (max-width: 979px) {
116
+ .row {
117
+ margin-left: -20px;
118
+ *zoom: 1;
119
+ }
120
+ .row:before, .row:after {
121
+ display: table;
122
+ content: "";
123
+ }
124
+ .row:after {
125
+ clear: both;
126
+ }
127
+ [class*="span"] {
128
+ float: left;
129
+ margin-left: 20px;
130
+ }
131
+ .span1 {
132
+ width: 42px;
133
+ }
134
+ .span2 {
135
+ width: 104px;
136
+ }
137
+ .span3 {
138
+ width: 166px;
139
+ }
140
+ .span4 {
141
+ width: 228px;
142
+ }
143
+ .span5 {
144
+ width: 290px;
145
+ }
146
+ .span6 {
147
+ width: 352px;
148
+ }
149
+ .span7 {
150
+ width: 414px;
151
+ }
152
+ .span8 {
153
+ width: 476px;
154
+ }
155
+ .span9 {
156
+ width: 538px;
157
+ }
158
+ .span10 {
159
+ width: 600px;
160
+ }
161
+ .span11 {
162
+ width: 662px;
163
+ }
164
+ .span12, .container {
165
+ width: 724px;
166
+ }
167
+ .offset1 {
168
+ margin-left: 82px;
169
+ }
170
+ .offset2 {
171
+ margin-left: 144px;
172
+ }
173
+ .offset3 {
174
+ margin-left: 206px;
175
+ }
176
+ .offset4 {
177
+ margin-left: 268px;
178
+ }
179
+ .offset5 {
180
+ margin-left: 330px;
181
+ }
182
+ .offset6 {
183
+ margin-left: 392px;
184
+ }
185
+ .offset7 {
186
+ margin-left: 454px;
187
+ }
188
+ .offset8 {
189
+ margin-left: 516px;
190
+ }
191
+ .offset9 {
192
+ margin-left: 578px;
193
+ }
194
+ .offset10 {
195
+ margin-left: 640px;
196
+ }
197
+ .offset11 {
198
+ margin-left: 702px;
199
+ }
200
+ .row-fluid {
201
+ width: 100%;
202
+ *zoom: 1;
203
+ }
204
+ .row-fluid:before, .row-fluid:after {
205
+ display: table;
206
+ content: "";
207
+ }
208
+ .row-fluid:after {
209
+ clear: both;
210
+ }
211
+ .row-fluid > [class*="span"] {
212
+ float: left;
213
+ margin-left: 2.762430939%;
214
+ }
215
+ .row-fluid > [class*="span"]:first-child {
216
+ margin-left: 0;
217
+ }
218
+ .row-fluid > .span1 {
219
+ width: 5.801104972%;
220
+ }
221
+ .row-fluid > .span2 {
222
+ width: 14.364640883%;
223
+ }
224
+ .row-fluid > .span3 {
225
+ width: 22.928176794%;
226
+ }
227
+ .row-fluid > .span4 {
228
+ width: 31.491712705%;
229
+ }
230
+ .row-fluid > .span5 {
231
+ width: 40.055248616%;
232
+ }
233
+ .row-fluid > .span6 {
234
+ width: 48.618784527%;
235
+ }
236
+ .row-fluid > .span7 {
237
+ width: 57.182320438000005%;
238
+ }
239
+ .row-fluid > .span8 {
240
+ width: 65.74585634900001%;
241
+ }
242
+ .row-fluid > .span9 {
243
+ width: 74.30939226%;
244
+ }
245
+ .row-fluid > .span10 {
246
+ width: 82.87292817100001%;
247
+ }
248
+ .row-fluid > .span11 {
249
+ width: 91.436464082%;
250
+ }
251
+ .row-fluid > .span12 {
252
+ width: 99.999999993%;
253
+ }
254
+ input.span1, textarea.span1, .uneditable-input.span1 {
255
+ width: 32px;
256
+ }
257
+ input.span2, textarea.span2, .uneditable-input.span2 {
258
+ width: 94px;
259
+ }
260
+ input.span3, textarea.span3, .uneditable-input.span3 {
261
+ width: 156px;
262
+ }
263
+ input.span4, textarea.span4, .uneditable-input.span4 {
264
+ width: 218px;
265
+ }
266
+ input.span5, textarea.span5, .uneditable-input.span5 {
267
+ width: 280px;
268
+ }
269
+ input.span6, textarea.span6, .uneditable-input.span6 {
270
+ width: 342px;
271
+ }
272
+ input.span7, textarea.span7, .uneditable-input.span7 {
273
+ width: 404px;
274
+ }
275
+ input.span8, textarea.span8, .uneditable-input.span8 {
276
+ width: 466px;
277
+ }
278
+ input.span9, textarea.span9, .uneditable-input.span9 {
279
+ width: 528px;
280
+ }
281
+ input.span10, textarea.span10, .uneditable-input.span10 {
282
+ width: 590px;
283
+ }
284
+ input.span11, textarea.span11, .uneditable-input.span11 {
285
+ width: 652px;
286
+ }
287
+ input.span12, textarea.span12, .uneditable-input.span12 {
288
+ width: 714px;
289
+ }
290
+ }
291
+ @media (max-width: 979px) {
292
+ body {
293
+ padding-top: 0;
294
+ }
295
+ .navbar-fixed-top {
296
+ position: static;
297
+ margin-bottom: 18px;
298
+ }
299
+ .navbar-fixed-top .navbar-inner {
300
+ padding: 5px;
301
+ }
302
+ .navbar .container {
303
+ width: auto;
304
+ padding: 0;
305
+ }
306
+ .navbar .brand {
307
+ padding-left: 10px;
308
+ padding-right: 10px;
309
+ margin: 0 0 0 -5px;
310
+ }
311
+ .navbar .nav-collapse {
312
+ clear: left;
313
+ }
314
+ .navbar .nav {
315
+ float: none;
316
+ margin: 0 0 9px;
317
+ }
318
+ .navbar .nav > li {
319
+ float: none;
320
+ }
321
+ .navbar .nav > li > a {
322
+ margin-bottom: 2px;
323
+ }
324
+ .navbar .nav > .divider-vertical {
325
+ display: none;
326
+ }
327
+ .navbar .nav .nav-header {
328
+ color: #999999;
329
+ text-shadow: none;
330
+ }
331
+ .navbar .nav > li > a, .navbar .dropdown-menu a {
332
+ padding: 6px 15px;
333
+ font-weight: bold;
334
+ color: #999999;
335
+ -webkit-border-radius: 3px;
336
+ -moz-border-radius: 3px;
337
+ border-radius: 3px;
338
+ }
339
+ .navbar .dropdown-menu li + li a {
340
+ margin-bottom: 2px;
341
+ }
342
+ .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover {
343
+ background-color: #222222;
344
+ }
345
+ .navbar .dropdown-menu {
346
+ position: static;
347
+ top: auto;
348
+ left: auto;
349
+ float: none;
350
+ display: block;
351
+ max-width: none;
352
+ margin: 0 15px;
353
+ padding: 0;
354
+ background-color: transparent;
355
+ border: none;
356
+ -webkit-border-radius: 0;
357
+ -moz-border-radius: 0;
358
+ border-radius: 0;
359
+ -webkit-box-shadow: none;
360
+ -moz-box-shadow: none;
361
+ box-shadow: none;
362
+ }
363
+ .navbar .dropdown-menu:before, .navbar .dropdown-menu:after {
364
+ display: none;
365
+ }
366
+ .navbar .dropdown-menu .divider {
367
+ display: none;
368
+ }
369
+ .navbar-form, .navbar-search {
370
+ float: none;
371
+ padding: 9px 15px;
372
+ margin: 9px 0;
373
+ border-top: 1px solid #222222;
374
+ border-bottom: 1px solid #222222;
375
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
376
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
377
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
378
+ }
379
+ .navbar .nav.pull-right {
380
+ float: none;
381
+ margin-left: 0;
382
+ }
383
+ .navbar-static .navbar-inner {
384
+ padding-left: 10px;
385
+ padding-right: 10px;
386
+ }
387
+ .btn-navbar {
388
+ display: block;
389
+ }
390
+ .nav-collapse {
391
+ overflow: hidden;
392
+ height: 0;
393
+ }
394
+ }
395
+ @media (min-width: 980px) {
396
+ .nav-collapse.collapse {
397
+ height: auto !important;
398
+ }
399
+ }
400
+ @media (min-width: 1200px) {
401
+ .row {
402
+ margin-left: -30px;
403
+ *zoom: 1;
404
+ }
405
+ .row:before, .row:after {
406
+ display: table;
407
+ content: "";
408
+ }
409
+ .row:after {
410
+ clear: both;
411
+ }
412
+ [class*="span"] {
413
+ float: left;
414
+ margin-left: 30px;
415
+ }
416
+ .span1 {
417
+ width: 70px;
418
+ }
419
+ .span2 {
420
+ width: 170px;
421
+ }
422
+ .span3 {
423
+ width: 270px;
424
+ }
425
+ .span4 {
426
+ width: 370px;
427
+ }
428
+ .span5 {
429
+ width: 470px;
430
+ }
431
+ .span6 {
432
+ width: 570px;
433
+ }
434
+ .span7 {
435
+ width: 670px;
436
+ }
437
+ .span8 {
438
+ width: 770px;
439
+ }
440
+ .span9 {
441
+ width: 870px;
442
+ }
443
+ .span10 {
444
+ width: 970px;
445
+ }
446
+ .span11 {
447
+ width: 1070px;
448
+ }
449
+ .span12, .container {
450
+ width: 1170px;
451
+ }
452
+ .offset1 {
453
+ margin-left: 130px;
454
+ }
455
+ .offset2 {
456
+ margin-left: 230px;
457
+ }
458
+ .offset3 {
459
+ margin-left: 330px;
460
+ }
461
+ .offset4 {
462
+ margin-left: 430px;
463
+ }
464
+ .offset5 {
465
+ margin-left: 530px;
466
+ }
467
+ .offset6 {
468
+ margin-left: 630px;
469
+ }
470
+ .offset7 {
471
+ margin-left: 730px;
472
+ }
473
+ .offset8 {
474
+ margin-left: 830px;
475
+ }
476
+ .offset9 {
477
+ margin-left: 930px;
478
+ }
479
+ .offset10 {
480
+ margin-left: 1030px;
481
+ }
482
+ .offset11 {
483
+ margin-left: 1130px;
484
+ }
485
+ .row-fluid {
486
+ width: 100%;
487
+ *zoom: 1;
488
+ }
489
+ .row-fluid:before, .row-fluid:after {
490
+ display: table;
491
+ content: "";
492
+ }
493
+ .row-fluid:after {
494
+ clear: both;
495
+ }
496
+ .row-fluid > [class*="span"] {
497
+ float: left;
498
+ margin-left: 2.564102564%;
499
+ }
500
+ .row-fluid > [class*="span"]:first-child {
501
+ margin-left: 0;
502
+ }
503
+ .row-fluid > .span1 {
504
+ width: 5.982905983%;
505
+ }
506
+ .row-fluid > .span2 {
507
+ width: 14.529914530000001%;
508
+ }
509
+ .row-fluid > .span3 {
510
+ width: 23.076923077%;
511
+ }
512
+ .row-fluid > .span4 {
513
+ width: 31.623931624%;
514
+ }
515
+ .row-fluid > .span5 {
516
+ width: 40.170940171000005%;
517
+ }
518
+ .row-fluid > .span6 {
519
+ width: 48.717948718%;
520
+ }
521
+ .row-fluid > .span7 {
522
+ width: 57.264957265%;
523
+ }
524
+ .row-fluid > .span8 {
525
+ width: 65.81196581200001%;
526
+ }
527
+ .row-fluid > .span9 {
528
+ width: 74.358974359%;
529
+ }
530
+ .row-fluid > .span10 {
531
+ width: 82.905982906%;
532
+ }
533
+ .row-fluid > .span11 {
534
+ width: 91.45299145300001%;
535
+ }
536
+ .row-fluid > .span12 {
537
+ width: 100%;
538
+ }
539
+ input.span1, textarea.span1, .uneditable-input.span1 {
540
+ width: 60px;
541
+ }
542
+ input.span2, textarea.span2, .uneditable-input.span2 {
543
+ width: 160px;
544
+ }
545
+ input.span3, textarea.span3, .uneditable-input.span3 {
546
+ width: 260px;
547
+ }
548
+ input.span4, textarea.span4, .uneditable-input.span4 {
549
+ width: 360px;
550
+ }
551
+ input.span5, textarea.span5, .uneditable-input.span5 {
552
+ width: 460px;
553
+ }
554
+ input.span6, textarea.span6, .uneditable-input.span6 {
555
+ width: 560px;
556
+ }
557
+ input.span7, textarea.span7, .uneditable-input.span7 {
558
+ width: 660px;
559
+ }
560
+ input.span8, textarea.span8, .uneditable-input.span8 {
561
+ width: 760px;
562
+ }
563
+ input.span9, textarea.span9, .uneditable-input.span9 {
564
+ width: 860px;
565
+ }
566
+ input.span10, textarea.span10, .uneditable-input.span10 {
567
+ width: 960px;
568
+ }
569
+ input.span11, textarea.span11, .uneditable-input.span11 {
570
+ width: 1060px;
571
+ }
572
+ input.span12, textarea.span12, .uneditable-input.span12 {
573
+ width: 1160px;
574
+ }
575
+ .thumbnails {
576
+ margin-left: -30px;
577
+ }
578
+ .thumbnails > li {
579
+ margin-left: 30px;
580
+ }
581
+ }