nutcracker-web 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +4 -13
  4. data/Rakefile +33 -7
  5. data/lib/nutcracker/web.rb +6 -6
  6. data/lib/nutcracker/web/app.rb +10 -8
  7. data/lib/nutcracker/web/version.rb +1 -1
  8. data/{assets/stylesheets/bootstrap.css → public/assets/application.css} +1136 -0
  9. data/public/assets/application.js +263 -0
  10. metadata +59 -32
  11. data/assets/javascripts/application.js +0 -10
  12. data/assets/javascripts/collections/clusters.js.coffee +0 -4
  13. data/assets/javascripts/collections/nodes.js.coffee +0 -19
  14. data/assets/javascripts/models/cluster.js.coffee +0 -16
  15. data/assets/javascripts/models/node.js.coffee +0 -14
  16. data/assets/javascripts/models/overview.js.coffee +0 -27
  17. data/assets/javascripts/nutcracker.js.coffee +0 -20
  18. data/assets/javascripts/routers/nutcracker_router.js.coffee +0 -29
  19. data/assets/javascripts/utils/region_manager.js.coffee +0 -12
  20. data/assets/javascripts/utils/underscore_ext.js.coffee +0 -6
  21. data/assets/javascripts/vendor/backbone.js +0 -1571
  22. data/assets/javascripts/vendor/bootstrap.js +0 -2276
  23. data/assets/javascripts/vendor/google_chart.js.coffee +0 -124
  24. data/assets/javascripts/vendor/humanize.js +0 -459
  25. data/assets/javascripts/vendor/jquery.js +0 -8842
  26. data/assets/javascripts/vendor/underscore.js +0 -1227
  27. data/assets/javascripts/views/cluster.js.coffee +0 -58
  28. data/assets/javascripts/views/config.js.coffee +0 -6
  29. data/assets/javascripts/views/footer.js.coffee +0 -8
  30. data/assets/javascripts/views/navbar.js.coffee +0 -28
  31. data/assets/javascripts/views/node.js.coffee +0 -54
  32. data/assets/javascripts/views/overview.js.coffee +0 -6
  33. data/assets/stylesheets/application.css +0 -24
  34. data/assets/stylesheets/bootstrap-responsive.css +0 -1109
  35. data/assets/templates/cluster.jst.eco +0 -87
  36. data/assets/templates/config.jst.eco +0 -15
  37. data/assets/templates/footer.jst.eco +0 -1
  38. data/assets/templates/navbar.jst.eco +0 -55
  39. data/assets/templates/node.jst.eco +0 -73
  40. data/assets/templates/overview.jst.eco +0 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4de81d42ba8fb87567ef53b49d4d1bf15386731b
4
- data.tar.gz: 0798f7badbd2de2a6ab14e9c4730f6bb07a5a87f
3
+ metadata.gz: 059b9e6810cef19e969f20bc72a96a35772e613b
4
+ data.tar.gz: 240d45c7a0db947982941e626b6de549f836d45f
5
5
  SHA512:
6
- metadata.gz: 3209ed81b50aa9e0acca2783920ff6f1b4cf3dd49ede94833c2b2cda43f84bb20de24c184ce4bb2929e8cf8737522ebe524a2e7c61fc8f6b6da7c688cc583a4d
7
- data.tar.gz: 544850254f729c31c9e7e14a9c145197a5ad67fc7aa5de985d3cabb513122ff1ef31e96afae8a780cced35f9c4af933c27b98b15ceff049a003223e44e1ed873
6
+ metadata.gz: faa0ec138f3f2e2ceda7bf33ae81ddc7ed6fc97381ed7316a657e7ebfeea0c960b1b44d0e38e39c4fe7fb3c17a6e2de08b416395b5dce8f2ae140ced04005835
7
+ data.tar.gz: 7da0cc7cd819169ae6d5486ca01cccd2121a0739433a5b179952adc55948c9bbc72e529019303d4cb4e93df91d9103c4a38870ed817749437e0e7e25b5e36491
data/Gemfile CHANGED
@@ -1,10 +1,10 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'sinatra'
4
- gem 'sinatra-reloader'
5
4
  gem 'haml'
6
5
  gem 'thin'
7
6
  gem 'sprockets'
8
7
  gem 'coffee-script'
9
8
  gem 'eco'
10
- gem 'json'
9
+ gem 'json'
10
+ gem 'uglifier'
@@ -1,7 +1,6 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- backports (3.3.1)
5
4
  coffee-script (2.2.0)
6
5
  coffee-script-source
7
6
  execjs
@@ -23,21 +22,10 @@ GEM
23
22
  rack (1.5.2)
24
23
  rack-protection (1.5.0)
25
24
  rack
26
- rack-test (0.6.2)
27
- rack (>= 1.0)
28
25
  sinatra (1.4.2)
29
26
  rack (~> 1.5, >= 1.5.2)
30
27
  rack-protection (~> 1.4)
31
28
  tilt (~> 1.3, >= 1.3.4)
32
- sinatra-contrib (1.4.0)
33
- backports (>= 2.0)
34
- eventmachine
35
- rack-protection
36
- rack-test
37
- sinatra (~> 1.4.2)
38
- tilt (~> 1.3)
39
- sinatra-reloader (1.0)
40
- sinatra-contrib
41
29
  sprockets (2.10.0)
42
30
  hike (~> 1.2)
43
31
  multi_json (~> 1.0)
@@ -48,6 +36,9 @@ GEM
48
36
  eventmachine (>= 0.12.6)
49
37
  rack (>= 1.0.0)
50
38
  tilt (1.4.1)
39
+ uglifier (2.1.1)
40
+ execjs (>= 0.3.0)
41
+ multi_json (~> 1.0, >= 1.0.2)
51
42
 
52
43
  PLATFORMS
53
44
  ruby
@@ -58,6 +49,6 @@ DEPENDENCIES
58
49
  haml
59
50
  json
60
51
  sinatra
61
- sinatra-reloader
62
52
  sprockets
63
53
  thin
54
+ uglifier
data/Rakefile CHANGED
@@ -1,19 +1,45 @@
1
1
  $:.unshift File.expand_path '../lib', __FILE__
2
- require 'nutcracker/web/version'
2
+ require 'nutcracker/web'
3
3
  require 'rake'
4
4
  require 'rubygems/package_task'
5
5
  require "rake/testtask"
6
6
 
7
- Nutcracker::Web::GemSpec = eval File.read 'nutcracker-web.gemspec'
7
+ desc "Compile assets"
8
+ task :compile do
9
+ require 'logger'
10
+ require 'pathname'
11
+ require 'sprockets'
12
+ require 'uglifier'
13
+ require 'eco'
8
14
 
9
- task :gem => [:clobber_package]
15
+ rm_rf 'public'
16
+ mkdir_p 'public/assets'
17
+ build_dir = Pathname(File.dirname(__FILE__)).join("public/assets")
18
+
19
+ environment = Nutcracker::Web::App.assets
20
+ environment.logger = Logger.new STDOUT
21
+ environment.js_compressor = Uglifier.new(mangle: true)
22
+
23
+ %w( javascripts/application.js stylesheets/application.css ).each do |target|
24
+ target = File.expand_path("../assets/#{target}",__FILE__)
25
+ environment.logger.info "#{'#'*10} Building #{target} #{'#'*10} "
26
+ asset = environment[target] or abort "Unknown target #{target.inspect}"
27
+ prefix, basename = asset.pathname.to_s.split('/')[-2..-1]
28
+ asset.write_to build_dir.join(basename)
29
+ end
30
+ end
31
+
32
+ Gem::PackageTask.new(eval File.read('nutcracker-web.gemspec')) do |pkg|
33
+ pkg.need_zip = false
34
+ pkg.need_tar = false
35
+ end
10
36
 
11
- Gem::PackageTask.new Nutcracker::Web::GemSpec do |p|
12
- p.gem_spec = Nutcracker::Web::GemSpec
37
+ task :build => [:compile] do
38
+ `rake gem`
13
39
  end
14
40
 
15
- task :install => [:gem] do
16
- sh "gem install pkg/nutcracker"
41
+ task :install => [:build] do
42
+ sh "gem install pkg/nutcracker-web"
17
43
  Rake::Task['clobber_package'].execute
18
44
  end
19
45
 
@@ -2,18 +2,18 @@ require "rack"
2
2
 
3
3
  module Nutcracker
4
4
  module Web
5
- def self.start nutcracker, options
5
+ def self.start(nutcracker, options = {})
6
+ $nutcracker = nutcracker
6
7
  @thread = Thread.new do
7
8
  Thread.current.abort_on_exception=true
8
- Thread.current[:nutcracker] = nutcracker
9
9
  Rack::Server.start(
10
10
  {
11
- :environment => 'development',
11
+ :app => Nutcracker::Web::App,
12
+ :environment => 'production',
12
13
  :pid => nil,
13
- :Port => 9393,
14
+ :Port => 9292,
14
15
  :Host => '0.0.0.0',
15
- :AccessLog => [],
16
- :config => File.expand_path("../../../config.ru", __FILE__)
16
+ :AccessLog => []
17
17
  }.merge( options )
18
18
  )
19
19
  end
@@ -1,7 +1,5 @@
1
1
  require 'haml'
2
2
  require 'sinatra'
3
- require 'eco'
4
- require 'sprockets'
5
3
  require 'json'
6
4
 
7
5
  module Nutcracker
@@ -9,20 +7,24 @@ module Nutcracker
9
7
  class App < Sinatra::Base
10
8
  enable :inline_templates
11
9
  set :root, File.expand_path('../'*4,__FILE__)
12
- set :assets, Sprockets::Environment.new { |env|
13
- %w(javascripts stylesheets templates).each { |asset|
14
- env.append_path File.join(settings.root,"assets/#{asset}")
15
- }
16
- }
17
10
 
18
11
  get '/' do
19
12
  haml :index
20
13
  end
21
14
 
22
15
  def overview
23
- Thread.current[:nutcracker].overview rescue
16
+ $nutcracker.overview rescue
24
17
  JSON.parse File.read File.join(settings.root,"example.json")
25
18
  end
19
+
20
+ def self.assets
21
+ require 'sprockets'
22
+ Sprockets::Environment.new { |env|
23
+ %w(javascripts stylesheets templates).each { |asset|
24
+ env.append_path File.join(settings.root,"assets/#{asset}")
25
+ }
26
+ }
27
+ end
26
28
 
27
29
  end
28
30
  end
@@ -1,5 +1,5 @@
1
1
  module Nutcracker
2
2
  module Web
3
- VERSION="0.0.1"
3
+ VERSION="0.0.2"
4
4
  end
5
5
  end
@@ -1,3 +1,1138 @@
1
+ /*
2
+
3
+
4
+ */
5
+
6
+ body { padding-top: 60px; }
7
+
8
+ a.nextPrevButton,a.nextPrevButton:hover {
9
+ color: #333333;
10
+ }
11
+
12
+ .nosel {
13
+ user-select: none;
14
+ -webkit-user-select: none;
15
+ }
16
+ .chartsBox {
17
+ border-left:2px solid #dddddd;
18
+ border-right:2px solid #dddddd;
19
+ border-top:2px solid #dddddd;
20
+ border-bottom:2px solid #dddddd;
21
+ padding-top: 0px;
22
+ -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
23
+ -moz-box-sizing: border-box; /* Firefox, other Gecko */
24
+ box-sizing: border-box; /* Opera/IE 8+ */
25
+ }
26
+ /*!
27
+ * Bootstrap Responsive v2.3.1
28
+ *
29
+ * Copyright 2012 Twitter, Inc
30
+ * Licensed under the Apache License v2.0
31
+ * http://www.apache.org/licenses/LICENSE-2.0
32
+ *
33
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
34
+ */
35
+
36
+
37
+ .clearfix {
38
+ *zoom: 1;
39
+ }
40
+
41
+ .clearfix:before,
42
+ .clearfix:after {
43
+ display: table;
44
+ line-height: 0;
45
+ content: "";
46
+ }
47
+
48
+ .clearfix:after {
49
+ clear: both;
50
+ }
51
+
52
+ .hide-text {
53
+ font: 0/0 a;
54
+ color: transparent;
55
+ text-shadow: none;
56
+ background-color: transparent;
57
+ border: 0;
58
+ }
59
+
60
+ .input-block-level {
61
+ display: block;
62
+ width: 100%;
63
+ min-height: 30px;
64
+ -webkit-box-sizing: border-box;
65
+ -moz-box-sizing: border-box;
66
+ box-sizing: border-box;
67
+ }
68
+
69
+ @-ms-viewport {
70
+ width: device-width;
71
+ }
72
+
73
+ .hidden {
74
+ display: none;
75
+ visibility: hidden;
76
+ }
77
+
78
+ .visible-phone {
79
+ display: none !important;
80
+ }
81
+
82
+ .visible-tablet {
83
+ display: none !important;
84
+ }
85
+
86
+ .hidden-desktop {
87
+ display: none !important;
88
+ }
89
+
90
+ .visible-desktop {
91
+ display: inherit !important;
92
+ }
93
+
94
+ @media (min-width: 768px) and (max-width: 979px) {
95
+ .hidden-desktop {
96
+ display: inherit !important;
97
+ }
98
+ .visible-desktop {
99
+ display: none !important ;
100
+ }
101
+ .visible-tablet {
102
+ display: inherit !important;
103
+ }
104
+ .hidden-tablet {
105
+ display: none !important;
106
+ }
107
+ }
108
+
109
+ @media (max-width: 767px) {
110
+ .hidden-desktop {
111
+ display: inherit !important;
112
+ }
113
+ .visible-desktop {
114
+ display: none !important;
115
+ }
116
+ .visible-phone {
117
+ display: inherit !important;
118
+ }
119
+ .hidden-phone {
120
+ display: none !important;
121
+ }
122
+ }
123
+
124
+ .visible-print {
125
+ display: none !important;
126
+ }
127
+
128
+ @media print {
129
+ .visible-print {
130
+ display: inherit !important;
131
+ }
132
+ .hidden-print {
133
+ display: none !important;
134
+ }
135
+ }
136
+
137
+ @media (min-width: 1200px) {
138
+ .row {
139
+ margin-left: -30px;
140
+ *zoom: 1;
141
+ }
142
+ .row:before,
143
+ .row:after {
144
+ display: table;
145
+ line-height: 0;
146
+ content: "";
147
+ }
148
+ .row:after {
149
+ clear: both;
150
+ }
151
+ [class*="span"] {
152
+ float: left;
153
+ min-height: 1px;
154
+ margin-left: 30px;
155
+ }
156
+ .container,
157
+ .navbar-static-top .container,
158
+ .navbar-fixed-top .container,
159
+ .navbar-fixed-bottom .container {
160
+ width: 1170px;
161
+ }
162
+ .span12 {
163
+ width: 1170px;
164
+ }
165
+ .span11 {
166
+ width: 1070px;
167
+ }
168
+ .span10 {
169
+ width: 970px;
170
+ }
171
+ .span9 {
172
+ width: 870px;
173
+ }
174
+ .span8 {
175
+ width: 770px;
176
+ }
177
+ .span7 {
178
+ width: 670px;
179
+ }
180
+ .span6 {
181
+ width: 570px;
182
+ }
183
+ .span5 {
184
+ width: 470px;
185
+ }
186
+ .span4 {
187
+ width: 370px;
188
+ }
189
+ .span3 {
190
+ width: 270px;
191
+ }
192
+ .span2 {
193
+ width: 170px;
194
+ }
195
+ .span1 {
196
+ width: 70px;
197
+ }
198
+ .offset12 {
199
+ margin-left: 1230px;
200
+ }
201
+ .offset11 {
202
+ margin-left: 1130px;
203
+ }
204
+ .offset10 {
205
+ margin-left: 1030px;
206
+ }
207
+ .offset9 {
208
+ margin-left: 930px;
209
+ }
210
+ .offset8 {
211
+ margin-left: 830px;
212
+ }
213
+ .offset7 {
214
+ margin-left: 730px;
215
+ }
216
+ .offset6 {
217
+ margin-left: 630px;
218
+ }
219
+ .offset5 {
220
+ margin-left: 530px;
221
+ }
222
+ .offset4 {
223
+ margin-left: 430px;
224
+ }
225
+ .offset3 {
226
+ margin-left: 330px;
227
+ }
228
+ .offset2 {
229
+ margin-left: 230px;
230
+ }
231
+ .offset1 {
232
+ margin-left: 130px;
233
+ }
234
+ .row-fluid {
235
+ width: 100%;
236
+ *zoom: 1;
237
+ }
238
+ .row-fluid:before,
239
+ .row-fluid:after {
240
+ display: table;
241
+ line-height: 0;
242
+ content: "";
243
+ }
244
+ .row-fluid:after {
245
+ clear: both;
246
+ }
247
+ .row-fluid [class*="span"] {
248
+ display: block;
249
+ float: left;
250
+ width: 100%;
251
+ min-height: 30px;
252
+ margin-left: 2.564102564102564%;
253
+ *margin-left: 2.5109110747408616%;
254
+ -webkit-box-sizing: border-box;
255
+ -moz-box-sizing: border-box;
256
+ box-sizing: border-box;
257
+ }
258
+ .row-fluid [class*="span"]:first-child {
259
+ margin-left: 0;
260
+ }
261
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
262
+ margin-left: 2.564102564102564%;
263
+ }
264
+ .row-fluid .span12 {
265
+ width: 100%;
266
+ *width: 99.94680851063829%;
267
+ }
268
+ .row-fluid .span11 {
269
+ width: 91.45299145299145%;
270
+ *width: 91.39979996362975%;
271
+ }
272
+ .row-fluid .span10 {
273
+ width: 82.90598290598291%;
274
+ *width: 82.8527914166212%;
275
+ }
276
+ .row-fluid .span9 {
277
+ width: 74.35897435897436%;
278
+ *width: 74.30578286961266%;
279
+ }
280
+ .row-fluid .span8 {
281
+ width: 65.81196581196582%;
282
+ *width: 65.75877432260411%;
283
+ }
284
+ .row-fluid .span7 {
285
+ width: 57.26495726495726%;
286
+ *width: 57.21176577559556%;
287
+ }
288
+ .row-fluid .span6 {
289
+ width: 48.717948717948715%;
290
+ *width: 48.664757228587014%;
291
+ }
292
+ .row-fluid .span5 {
293
+ width: 40.17094017094017%;
294
+ *width: 40.11774868157847%;
295
+ }
296
+ .row-fluid .span4 {
297
+ width: 31.623931623931625%;
298
+ *width: 31.570740134569924%;
299
+ }
300
+ .row-fluid .span3 {
301
+ width: 23.076923076923077%;
302
+ *width: 23.023731587561375%;
303
+ }
304
+ .row-fluid .span2 {
305
+ width: 14.52991452991453%;
306
+ *width: 14.476723040552828%;
307
+ }
308
+ .row-fluid .span1 {
309
+ width: 5.982905982905983%;
310
+ *width: 5.929714493544281%;
311
+ }
312
+ .row-fluid .offset12 {
313
+ margin-left: 105.12820512820512%;
314
+ *margin-left: 105.02182214948171%;
315
+ }
316
+ .row-fluid .offset12:first-child {
317
+ margin-left: 102.56410256410257%;
318
+ *margin-left: 102.45771958537915%;
319
+ }
320
+ .row-fluid .offset11 {
321
+ margin-left: 96.58119658119658%;
322
+ *margin-left: 96.47481360247316%;
323
+ }
324
+ .row-fluid .offset11:first-child {
325
+ margin-left: 94.01709401709402%;
326
+ *margin-left: 93.91071103837061%;
327
+ }
328
+ .row-fluid .offset10 {
329
+ margin-left: 88.03418803418803%;
330
+ *margin-left: 87.92780505546462%;
331
+ }
332
+ .row-fluid .offset10:first-child {
333
+ margin-left: 85.47008547008548%;
334
+ *margin-left: 85.36370249136206%;
335
+ }
336
+ .row-fluid .offset9 {
337
+ margin-left: 79.48717948717949%;
338
+ *margin-left: 79.38079650845607%;
339
+ }
340
+ .row-fluid .offset9:first-child {
341
+ margin-left: 76.92307692307693%;
342
+ *margin-left: 76.81669394435352%;
343
+ }
344
+ .row-fluid .offset8 {
345
+ margin-left: 70.94017094017094%;
346
+ *margin-left: 70.83378796144753%;
347
+ }
348
+ .row-fluid .offset8:first-child {
349
+ margin-left: 68.37606837606839%;
350
+ *margin-left: 68.26968539734497%;
351
+ }
352
+ .row-fluid .offset7 {
353
+ margin-left: 62.393162393162385%;
354
+ *margin-left: 62.28677941443899%;
355
+ }
356
+ .row-fluid .offset7:first-child {
357
+ margin-left: 59.82905982905982%;
358
+ *margin-left: 59.72267685033642%;
359
+ }
360
+ .row-fluid .offset6 {
361
+ margin-left: 53.84615384615384%;
362
+ *margin-left: 53.739770867430444%;
363
+ }
364
+ .row-fluid .offset6:first-child {
365
+ margin-left: 51.28205128205128%;
366
+ *margin-left: 51.175668303327875%;
367
+ }
368
+ .row-fluid .offset5 {
369
+ margin-left: 45.299145299145295%;
370
+ *margin-left: 45.1927623204219%;
371
+ }
372
+ .row-fluid .offset5:first-child {
373
+ margin-left: 42.73504273504273%;
374
+ *margin-left: 42.62865975631933%;
375
+ }
376
+ .row-fluid .offset4 {
377
+ margin-left: 36.75213675213675%;
378
+ *margin-left: 36.645753773413354%;
379
+ }
380
+ .row-fluid .offset4:first-child {
381
+ margin-left: 34.18803418803419%;
382
+ *margin-left: 34.081651209310785%;
383
+ }
384
+ .row-fluid .offset3 {
385
+ margin-left: 28.205128205128204%;
386
+ *margin-left: 28.0987452264048%;
387
+ }
388
+ .row-fluid .offset3:first-child {
389
+ margin-left: 25.641025641025642%;
390
+ *margin-left: 25.53464266230224%;
391
+ }
392
+ .row-fluid .offset2 {
393
+ margin-left: 19.65811965811966%;
394
+ *margin-left: 19.551736679396257%;
395
+ }
396
+ .row-fluid .offset2:first-child {
397
+ margin-left: 17.094017094017094%;
398
+ *margin-left: 16.98763411529369%;
399
+ }
400
+ .row-fluid .offset1 {
401
+ margin-left: 11.11111111111111%;
402
+ *margin-left: 11.004728132387708%;
403
+ }
404
+ .row-fluid .offset1:first-child {
405
+ margin-left: 8.547008547008547%;
406
+ *margin-left: 8.440625568285142%;
407
+ }
408
+ input,
409
+ textarea,
410
+ .uneditable-input {
411
+ margin-left: 0;
412
+ }
413
+ .controls-row [class*="span"] + [class*="span"] {
414
+ margin-left: 30px;
415
+ }
416
+ input.span12,
417
+ textarea.span12,
418
+ .uneditable-input.span12 {
419
+ width: 1156px;
420
+ }
421
+ input.span11,
422
+ textarea.span11,
423
+ .uneditable-input.span11 {
424
+ width: 1056px;
425
+ }
426
+ input.span10,
427
+ textarea.span10,
428
+ .uneditable-input.span10 {
429
+ width: 956px;
430
+ }
431
+ input.span9,
432
+ textarea.span9,
433
+ .uneditable-input.span9 {
434
+ width: 856px;
435
+ }
436
+ input.span8,
437
+ textarea.span8,
438
+ .uneditable-input.span8 {
439
+ width: 756px;
440
+ }
441
+ input.span7,
442
+ textarea.span7,
443
+ .uneditable-input.span7 {
444
+ width: 656px;
445
+ }
446
+ input.span6,
447
+ textarea.span6,
448
+ .uneditable-input.span6 {
449
+ width: 556px;
450
+ }
451
+ input.span5,
452
+ textarea.span5,
453
+ .uneditable-input.span5 {
454
+ width: 456px;
455
+ }
456
+ input.span4,
457
+ textarea.span4,
458
+ .uneditable-input.span4 {
459
+ width: 356px;
460
+ }
461
+ input.span3,
462
+ textarea.span3,
463
+ .uneditable-input.span3 {
464
+ width: 256px;
465
+ }
466
+ input.span2,
467
+ textarea.span2,
468
+ .uneditable-input.span2 {
469
+ width: 156px;
470
+ }
471
+ input.span1,
472
+ textarea.span1,
473
+ .uneditable-input.span1 {
474
+ width: 56px;
475
+ }
476
+ .thumbnails {
477
+ margin-left: -30px;
478
+ }
479
+ .thumbnails > li {
480
+ margin-left: 30px;
481
+ }
482
+ .row-fluid .thumbnails {
483
+ margin-left: 0;
484
+ }
485
+ }
486
+
487
+ @media (min-width: 768px) and (max-width: 979px) {
488
+ .row {
489
+ margin-left: -20px;
490
+ *zoom: 1;
491
+ }
492
+ .row:before,
493
+ .row:after {
494
+ display: table;
495
+ line-height: 0;
496
+ content: "";
497
+ }
498
+ .row:after {
499
+ clear: both;
500
+ }
501
+ [class*="span"] {
502
+ float: left;
503
+ min-height: 1px;
504
+ margin-left: 20px;
505
+ }
506
+ .container,
507
+ .navbar-static-top .container,
508
+ .navbar-fixed-top .container,
509
+ .navbar-fixed-bottom .container {
510
+ width: 724px;
511
+ }
512
+ .span12 {
513
+ width: 724px;
514
+ }
515
+ .span11 {
516
+ width: 662px;
517
+ }
518
+ .span10 {
519
+ width: 600px;
520
+ }
521
+ .span9 {
522
+ width: 538px;
523
+ }
524
+ .span8 {
525
+ width: 476px;
526
+ }
527
+ .span7 {
528
+ width: 414px;
529
+ }
530
+ .span6 {
531
+ width: 352px;
532
+ }
533
+ .span5 {
534
+ width: 290px;
535
+ }
536
+ .span4 {
537
+ width: 228px;
538
+ }
539
+ .span3 {
540
+ width: 166px;
541
+ }
542
+ .span2 {
543
+ width: 104px;
544
+ }
545
+ .span1 {
546
+ width: 42px;
547
+ }
548
+ .offset12 {
549
+ margin-left: 764px;
550
+ }
551
+ .offset11 {
552
+ margin-left: 702px;
553
+ }
554
+ .offset10 {
555
+ margin-left: 640px;
556
+ }
557
+ .offset9 {
558
+ margin-left: 578px;
559
+ }
560
+ .offset8 {
561
+ margin-left: 516px;
562
+ }
563
+ .offset7 {
564
+ margin-left: 454px;
565
+ }
566
+ .offset6 {
567
+ margin-left: 392px;
568
+ }
569
+ .offset5 {
570
+ margin-left: 330px;
571
+ }
572
+ .offset4 {
573
+ margin-left: 268px;
574
+ }
575
+ .offset3 {
576
+ margin-left: 206px;
577
+ }
578
+ .offset2 {
579
+ margin-left: 144px;
580
+ }
581
+ .offset1 {
582
+ margin-left: 82px;
583
+ }
584
+ .row-fluid {
585
+ width: 100%;
586
+ *zoom: 1;
587
+ }
588
+ .row-fluid:before,
589
+ .row-fluid:after {
590
+ display: table;
591
+ line-height: 0;
592
+ content: "";
593
+ }
594
+ .row-fluid:after {
595
+ clear: both;
596
+ }
597
+ .row-fluid [class*="span"] {
598
+ display: block;
599
+ float: left;
600
+ width: 100%;
601
+ min-height: 30px;
602
+ margin-left: 2.7624309392265194%;
603
+ *margin-left: 2.709239449864817%;
604
+ -webkit-box-sizing: border-box;
605
+ -moz-box-sizing: border-box;
606
+ box-sizing: border-box;
607
+ }
608
+ .row-fluid [class*="span"]:first-child {
609
+ margin-left: 0;
610
+ }
611
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
612
+ margin-left: 2.7624309392265194%;
613
+ }
614
+ .row-fluid .span12 {
615
+ width: 100%;
616
+ *width: 99.94680851063829%;
617
+ }
618
+ .row-fluid .span11 {
619
+ width: 91.43646408839778%;
620
+ *width: 91.38327259903608%;
621
+ }
622
+ .row-fluid .span10 {
623
+ width: 82.87292817679558%;
624
+ *width: 82.81973668743387%;
625
+ }
626
+ .row-fluid .span9 {
627
+ width: 74.30939226519337%;
628
+ *width: 74.25620077583166%;
629
+ }
630
+ .row-fluid .span8 {
631
+ width: 65.74585635359117%;
632
+ *width: 65.69266486422946%;
633
+ }
634
+ .row-fluid .span7 {
635
+ width: 57.18232044198895%;
636
+ *width: 57.12912895262725%;
637
+ }
638
+ .row-fluid .span6 {
639
+ width: 48.61878453038674%;
640
+ *width: 48.56559304102504%;
641
+ }
642
+ .row-fluid .span5 {
643
+ width: 40.05524861878453%;
644
+ *width: 40.00205712942283%;
645
+ }
646
+ .row-fluid .span4 {
647
+ width: 31.491712707182323%;
648
+ *width: 31.43852121782062%;
649
+ }
650
+ .row-fluid .span3 {
651
+ width: 22.92817679558011%;
652
+ *width: 22.87498530621841%;
653
+ }
654
+ .row-fluid .span2 {
655
+ width: 14.3646408839779%;
656
+ *width: 14.311449394616199%;
657
+ }
658
+ .row-fluid .span1 {
659
+ width: 5.801104972375691%;
660
+ *width: 5.747913483013988%;
661
+ }
662
+ .row-fluid .offset12 {
663
+ margin-left: 105.52486187845304%;
664
+ *margin-left: 105.41847889972962%;
665
+ }
666
+ .row-fluid .offset12:first-child {
667
+ margin-left: 102.76243093922652%;
668
+ *margin-left: 102.6560479605031%;
669
+ }
670
+ .row-fluid .offset11 {
671
+ margin-left: 96.96132596685082%;
672
+ *margin-left: 96.8549429881274%;
673
+ }
674
+ .row-fluid .offset11:first-child {
675
+ margin-left: 94.1988950276243%;
676
+ *margin-left: 94.09251204890089%;
677
+ }
678
+ .row-fluid .offset10 {
679
+ margin-left: 88.39779005524862%;
680
+ *margin-left: 88.2914070765252%;
681
+ }
682
+ .row-fluid .offset10:first-child {
683
+ margin-left: 85.6353591160221%;
684
+ *margin-left: 85.52897613729868%;
685
+ }
686
+ .row-fluid .offset9 {
687
+ margin-left: 79.8342541436464%;
688
+ *margin-left: 79.72787116492299%;
689
+ }
690
+ .row-fluid .offset9:first-child {
691
+ margin-left: 77.07182320441989%;
692
+ *margin-left: 76.96544022569647%;
693
+ }
694
+ .row-fluid .offset8 {
695
+ margin-left: 71.2707182320442%;
696
+ *margin-left: 71.16433525332079%;
697
+ }
698
+ .row-fluid .offset8:first-child {
699
+ margin-left: 68.50828729281768%;
700
+ *margin-left: 68.40190431409427%;
701
+ }
702
+ .row-fluid .offset7 {
703
+ margin-left: 62.70718232044199%;
704
+ *margin-left: 62.600799341718584%;
705
+ }
706
+ .row-fluid .offset7:first-child {
707
+ margin-left: 59.94475138121547%;
708
+ *margin-left: 59.838368402492065%;
709
+ }
710
+ .row-fluid .offset6 {
711
+ margin-left: 54.14364640883978%;
712
+ *margin-left: 54.037263430116376%;
713
+ }
714
+ .row-fluid .offset6:first-child {
715
+ margin-left: 51.38121546961326%;
716
+ *margin-left: 51.27483249088986%;
717
+ }
718
+ .row-fluid .offset5 {
719
+ margin-left: 45.58011049723757%;
720
+ *margin-left: 45.47372751851417%;
721
+ }
722
+ .row-fluid .offset5:first-child {
723
+ margin-left: 42.81767955801105%;
724
+ *margin-left: 42.71129657928765%;
725
+ }
726
+ .row-fluid .offset4 {
727
+ margin-left: 37.01657458563536%;
728
+ *margin-left: 36.91019160691196%;
729
+ }
730
+ .row-fluid .offset4:first-child {
731
+ margin-left: 34.25414364640884%;
732
+ *margin-left: 34.14776066768544%;
733
+ }
734
+ .row-fluid .offset3 {
735
+ margin-left: 28.45303867403315%;
736
+ *margin-left: 28.346655695309746%;
737
+ }
738
+ .row-fluid .offset3:first-child {
739
+ margin-left: 25.69060773480663%;
740
+ *margin-left: 25.584224756083227%;
741
+ }
742
+ .row-fluid .offset2 {
743
+ margin-left: 19.88950276243094%;
744
+ *margin-left: 19.783119783707537%;
745
+ }
746
+ .row-fluid .offset2:first-child {
747
+ margin-left: 17.12707182320442%;
748
+ *margin-left: 17.02068884448102%;
749
+ }
750
+ .row-fluid .offset1 {
751
+ margin-left: 11.32596685082873%;
752
+ *margin-left: 11.219583872105325%;
753
+ }
754
+ .row-fluid .offset1:first-child {
755
+ margin-left: 8.56353591160221%;
756
+ *margin-left: 8.457152932878806%;
757
+ }
758
+ input,
759
+ textarea,
760
+ .uneditable-input {
761
+ margin-left: 0;
762
+ }
763
+ .controls-row [class*="span"] + [class*="span"] {
764
+ margin-left: 20px;
765
+ }
766
+ input.span12,
767
+ textarea.span12,
768
+ .uneditable-input.span12 {
769
+ width: 710px;
770
+ }
771
+ input.span11,
772
+ textarea.span11,
773
+ .uneditable-input.span11 {
774
+ width: 648px;
775
+ }
776
+ input.span10,
777
+ textarea.span10,
778
+ .uneditable-input.span10 {
779
+ width: 586px;
780
+ }
781
+ input.span9,
782
+ textarea.span9,
783
+ .uneditable-input.span9 {
784
+ width: 524px;
785
+ }
786
+ input.span8,
787
+ textarea.span8,
788
+ .uneditable-input.span8 {
789
+ width: 462px;
790
+ }
791
+ input.span7,
792
+ textarea.span7,
793
+ .uneditable-input.span7 {
794
+ width: 400px;
795
+ }
796
+ input.span6,
797
+ textarea.span6,
798
+ .uneditable-input.span6 {
799
+ width: 338px;
800
+ }
801
+ input.span5,
802
+ textarea.span5,
803
+ .uneditable-input.span5 {
804
+ width: 276px;
805
+ }
806
+ input.span4,
807
+ textarea.span4,
808
+ .uneditable-input.span4 {
809
+ width: 214px;
810
+ }
811
+ input.span3,
812
+ textarea.span3,
813
+ .uneditable-input.span3 {
814
+ width: 152px;
815
+ }
816
+ input.span2,
817
+ textarea.span2,
818
+ .uneditable-input.span2 {
819
+ width: 90px;
820
+ }
821
+ input.span1,
822
+ textarea.span1,
823
+ .uneditable-input.span1 {
824
+ width: 28px;
825
+ }
826
+ }
827
+
828
+ @media (max-width: 767px) {
829
+ body {
830
+ padding-right: 20px;
831
+ padding-left: 20px;
832
+ }
833
+ .navbar-fixed-top,
834
+ .navbar-fixed-bottom,
835
+ .navbar-static-top {
836
+ margin-right: -20px;
837
+ margin-left: -20px;
838
+ }
839
+ .container-fluid {
840
+ padding: 0;
841
+ }
842
+ .dl-horizontal dt {
843
+ float: none;
844
+ width: auto;
845
+ clear: none;
846
+ text-align: left;
847
+ }
848
+ .dl-horizontal dd {
849
+ margin-left: 0;
850
+ }
851
+ .container {
852
+ width: auto;
853
+ }
854
+ .row-fluid {
855
+ width: 100%;
856
+ }
857
+ .row,
858
+ .thumbnails {
859
+ margin-left: 0;
860
+ }
861
+ .thumbnails > li {
862
+ float: none;
863
+ margin-left: 0;
864
+ }
865
+ [class*="span"],
866
+ .uneditable-input[class*="span"],
867
+ .row-fluid [class*="span"] {
868
+ display: block;
869
+ float: none;
870
+ width: 100%;
871
+ margin-left: 0;
872
+ -webkit-box-sizing: border-box;
873
+ -moz-box-sizing: border-box;
874
+ box-sizing: border-box;
875
+ }
876
+ .span12,
877
+ .row-fluid .span12 {
878
+ width: 100%;
879
+ -webkit-box-sizing: border-box;
880
+ -moz-box-sizing: border-box;
881
+ box-sizing: border-box;
882
+ }
883
+ .row-fluid [class*="offset"]:first-child {
884
+ margin-left: 0;
885
+ }
886
+ .input-large,
887
+ .input-xlarge,
888
+ .input-xxlarge,
889
+ input[class*="span"],
890
+ select[class*="span"],
891
+ textarea[class*="span"],
892
+ .uneditable-input {
893
+ display: block;
894
+ width: 100%;
895
+ min-height: 30px;
896
+ -webkit-box-sizing: border-box;
897
+ -moz-box-sizing: border-box;
898
+ box-sizing: border-box;
899
+ }
900
+ .input-prepend input,
901
+ .input-append input,
902
+ .input-prepend input[class*="span"],
903
+ .input-append input[class*="span"] {
904
+ display: inline-block;
905
+ width: auto;
906
+ }
907
+ .controls-row [class*="span"] + [class*="span"] {
908
+ margin-left: 0;
909
+ }
910
+ .modal {
911
+ position: fixed;
912
+ top: 20px;
913
+ right: 20px;
914
+ left: 20px;
915
+ width: auto;
916
+ margin: 0;
917
+ }
918
+ .modal.fade {
919
+ top: -100px;
920
+ }
921
+ .modal.fade.in {
922
+ top: 20px;
923
+ }
924
+ }
925
+
926
+ @media (max-width: 480px) {
927
+ .nav-collapse {
928
+ -webkit-transform: translate3d(0, 0, 0);
929
+ }
930
+ .page-header h1 small {
931
+ display: block;
932
+ line-height: 20px;
933
+ }
934
+ input[type="checkbox"],
935
+ input[type="radio"] {
936
+ border: 1px solid #ccc;
937
+ }
938
+ .form-horizontal .control-label {
939
+ float: none;
940
+ width: auto;
941
+ padding-top: 0;
942
+ text-align: left;
943
+ }
944
+ .form-horizontal .controls {
945
+ margin-left: 0;
946
+ }
947
+ .form-horizontal .control-list {
948
+ padding-top: 0;
949
+ }
950
+ .form-horizontal .form-actions {
951
+ padding-right: 10px;
952
+ padding-left: 10px;
953
+ }
954
+ .media .pull-left,
955
+ .media .pull-right {
956
+ display: block;
957
+ float: none;
958
+ margin-bottom: 10px;
959
+ }
960
+ .media-object {
961
+ margin-right: 0;
962
+ margin-left: 0;
963
+ }
964
+ .modal {
965
+ top: 10px;
966
+ right: 10px;
967
+ left: 10px;
968
+ }
969
+ .modal-header .close {
970
+ padding: 10px;
971
+ margin: -10px;
972
+ }
973
+ .carousel-caption {
974
+ position: static;
975
+ }
976
+ }
977
+
978
+ @media (max-width: 979px) {
979
+ body {
980
+ padding-top: 0;
981
+ }
982
+ .navbar-fixed-top,
983
+ .navbar-fixed-bottom {
984
+ position: static;
985
+ }
986
+ .navbar-fixed-top {
987
+ margin-bottom: 20px;
988
+ }
989
+ .navbar-fixed-bottom {
990
+ margin-top: 20px;
991
+ }
992
+ .navbar-fixed-top .navbar-inner,
993
+ .navbar-fixed-bottom .navbar-inner {
994
+ padding: 5px;
995
+ }
996
+ .navbar .container {
997
+ width: auto;
998
+ padding: 0;
999
+ }
1000
+ .navbar .brand {
1001
+ padding-right: 10px;
1002
+ padding-left: 10px;
1003
+ margin: 0 0 0 -5px;
1004
+ }
1005
+ .nav-collapse {
1006
+ clear: both;
1007
+ }
1008
+ .nav-collapse .nav {
1009
+ float: none;
1010
+ margin: 0 0 10px;
1011
+ }
1012
+ .nav-collapse .nav > li {
1013
+ float: none;
1014
+ }
1015
+ .nav-collapse .nav > li > a {
1016
+ margin-bottom: 2px;
1017
+ }
1018
+ .nav-collapse .nav > .divider-vertical {
1019
+ display: none;
1020
+ }
1021
+ .nav-collapse .nav .nav-header {
1022
+ color: #777777;
1023
+ text-shadow: none;
1024
+ }
1025
+ .nav-collapse .nav > li > a,
1026
+ .nav-collapse .dropdown-menu a {
1027
+ padding: 9px 15px;
1028
+ font-weight: bold;
1029
+ color: #777777;
1030
+ -webkit-border-radius: 3px;
1031
+ -moz-border-radius: 3px;
1032
+ border-radius: 3px;
1033
+ }
1034
+ .nav-collapse .btn {
1035
+ padding: 4px 10px 4px;
1036
+ font-weight: normal;
1037
+ -webkit-border-radius: 4px;
1038
+ -moz-border-radius: 4px;
1039
+ border-radius: 4px;
1040
+ }
1041
+ .nav-collapse .dropdown-menu li + li a {
1042
+ margin-bottom: 2px;
1043
+ }
1044
+ .nav-collapse .nav > li > a:hover,
1045
+ .nav-collapse .nav > li > a:focus,
1046
+ .nav-collapse .dropdown-menu a:hover,
1047
+ .nav-collapse .dropdown-menu a:focus {
1048
+ background-color: #f2f2f2;
1049
+ }
1050
+ .navbar-inverse .nav-collapse .nav > li > a,
1051
+ .navbar-inverse .nav-collapse .dropdown-menu a {
1052
+ color: #999999;
1053
+ }
1054
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
1055
+ .navbar-inverse .nav-collapse .nav > li > a:focus,
1056
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover,
1057
+ .navbar-inverse .nav-collapse .dropdown-menu a:focus {
1058
+ background-color: #111111;
1059
+ }
1060
+ .nav-collapse.in .btn-group {
1061
+ padding: 0;
1062
+ margin-top: 5px;
1063
+ }
1064
+ .nav-collapse .dropdown-menu {
1065
+ position: static;
1066
+ top: auto;
1067
+ left: auto;
1068
+ display: none;
1069
+ float: none;
1070
+ max-width: none;
1071
+ padding: 0;
1072
+ margin: 0 15px;
1073
+ background-color: transparent;
1074
+ border: none;
1075
+ -webkit-border-radius: 0;
1076
+ -moz-border-radius: 0;
1077
+ border-radius: 0;
1078
+ -webkit-box-shadow: none;
1079
+ -moz-box-shadow: none;
1080
+ box-shadow: none;
1081
+ }
1082
+ .nav-collapse .open > .dropdown-menu {
1083
+ display: block;
1084
+ }
1085
+ .nav-collapse .dropdown-menu:before,
1086
+ .nav-collapse .dropdown-menu:after {
1087
+ display: none;
1088
+ }
1089
+ .nav-collapse .dropdown-menu .divider {
1090
+ display: none;
1091
+ }
1092
+ .nav-collapse .nav > li > .dropdown-menu:before,
1093
+ .nav-collapse .nav > li > .dropdown-menu:after {
1094
+ display: none;
1095
+ }
1096
+ .nav-collapse .navbar-form,
1097
+ .nav-collapse .navbar-search {
1098
+ float: none;
1099
+ padding: 10px 15px;
1100
+ margin: 10px 0;
1101
+ border-top: 1px solid #f2f2f2;
1102
+ border-bottom: 1px solid #f2f2f2;
1103
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1104
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1105
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1106
+ }
1107
+ .navbar-inverse .nav-collapse .navbar-form,
1108
+ .navbar-inverse .nav-collapse .navbar-search {
1109
+ border-top-color: #111111;
1110
+ border-bottom-color: #111111;
1111
+ }
1112
+ .navbar .nav-collapse .nav.pull-right {
1113
+ float: none;
1114
+ margin-left: 0;
1115
+ }
1116
+ .nav-collapse,
1117
+ .nav-collapse.collapse {
1118
+ height: 0;
1119
+ overflow: hidden;
1120
+ }
1121
+ .navbar .btn-navbar {
1122
+ display: block;
1123
+ }
1124
+ .navbar-static .navbar-inner {
1125
+ padding-right: 10px;
1126
+ padding-left: 10px;
1127
+ }
1128
+ }
1129
+
1130
+ @media (min-width: 980px) {
1131
+ .nav-collapse.collapse {
1132
+ height: auto !important;
1133
+ overflow: visible !important;
1134
+ }
1135
+ }
1
1136
  /*!
2
1137
  * Bootstrap v2.3.1
3
1138
  *
@@ -8,6 +1143,7 @@
8
1143
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
1144
  */
10
1145
 
1146
+
11
1147
  .clearfix {
12
1148
  *zoom: 1;
13
1149
  }