effective_assets 0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +341 -72
  4. data/app/assets/javascripts/effective/snippets/effective_asset.js.coffee +53 -0
  5. data/app/assets/javascripts/effective_assets.js +4 -0
  6. data/app/assets/javascripts/effective_assets/asset_box.js.coffee +36 -0
  7. data/app/assets/javascripts/effective_assets/asset_box_dialog.js.coffee +49 -0
  8. data/app/assets/javascripts/effective_assets/asset_box_drag_and_drop.js.coffee +2 -0
  9. data/app/assets/javascripts/effective_assets/asset_box_filtering.js.coffee +16 -0
  10. data/app/assets/javascripts/effective_assets/asset_box_sorting.js.coffee +8 -0
  11. data/app/assets/javascripts/effective_assets/jquery_ui_sortable.js +813 -585
  12. data/app/assets/javascripts/effective_assets/s3_uploader.js.coffee +268 -0
  13. data/app/assets/javascripts/effective_assets_iframe.js.coffee +28 -0
  14. data/app/assets/stylesheets/active_admin/effective_assets.css.scss +57 -0
  15. data/app/assets/stylesheets/effective_assets/_asset_box_input.scss +54 -175
  16. data/app/assets/stylesheets/effective_assets/_iframe_bootstrap.scss +1714 -0
  17. data/app/assets/stylesheets/effective_assets/_input_bootstrap.scss +508 -0
  18. data/app/assets/stylesheets/effective_assets_iframe.css.scss +23 -0
  19. data/app/controllers/effective/assets_controller.rb +41 -0
  20. data/app/controllers/effective/s3_uploads_controller.rb +58 -74
  21. data/app/helpers/effective_assets_helper.rb +30 -14
  22. data/app/helpers/effective_assets_s3_helper.rb +69 -0
  23. data/app/models/concerns/acts_as_asset_box.rb +75 -11
  24. data/app/models/effective/access_denied.rb +17 -0
  25. data/app/models/effective/asset.rb +130 -93
  26. data/app/models/effective/attachment.rb +2 -7
  27. data/app/models/effective/delayed_job.rb +33 -78
  28. data/app/models/effective/snippets/effective_asset.rb +19 -0
  29. data/app/models/effective/user_uploads.rb +19 -0
  30. data/app/models/inputs/asset_box.rb +154 -0
  31. data/app/models/inputs/asset_box_form_input.rb +7 -0
  32. data/app/models/inputs/asset_box_formtastic_input.rb +9 -0
  33. data/app/models/inputs/asset_box_input.rb +13 -82
  34. data/app/models/inputs/asset_box_simple_form_input.rb +7 -0
  35. data/app/uploaders/effective_assets_uploader.rb +14 -2
  36. data/app/uploaders/{asset_uploader.rb → test_asset_uploader.rb} +1 -1
  37. data/app/views/active_admin/effective_assets/_edit.html.haml +3 -3
  38. data/app/views/active_admin/effective_assets/_new.html.haml +2 -1
  39. data/app/views/asset_box_input/_attachment_as_list.html.haml +17 -0
  40. data/app/views/asset_box_input/_attachment_as_table.html.haml +32 -0
  41. data/app/views/asset_box_input/_attachment_as_thumbnail.html.haml +20 -0
  42. data/app/views/asset_box_input/_dialog.html.haml +18 -0
  43. data/app/views/asset_box_input/_progress_bar_template.html.haml +8 -0
  44. data/app/views/asset_box_input/_uploader.html.haml +21 -115
  45. data/app/views/effective/assets/iframe.html.haml +17 -0
  46. data/app/views/effective/snippets/_effective_asset.html.haml +8 -0
  47. data/config/routes.rb +8 -2
  48. data/db/migrate/01_create_effective_assets.rb.erb +3 -0
  49. data/lib/effective_assets.rb +34 -3
  50. data/lib/effective_assets/engine.rb +11 -8
  51. data/lib/effective_assets/version.rb +1 -1
  52. data/lib/generators/templates/asset_uploader.rb +35 -0
  53. data/lib/generators/templates/effective_assets.rb +31 -4
  54. data/lib/tasks/effective_assets_tasks.rake +115 -4
  55. data/spec/internal/config/database.yml +3 -0
  56. data/spec/internal/config/initializers/effective_assets.rb +18 -0
  57. data/spec/internal/config/routes.rb +3 -0
  58. data/spec/internal/db/combustion_test.sqlite +0 -0
  59. data/spec/internal/db/schema.rb +52 -0
  60. data/spec/internal/log/test.log +793 -0
  61. data/spec/{dummy → internal}/public/favicon.ico +0 -0
  62. data/spec/internal/public/sprites.png +0 -0
  63. data/spec/models/asset_spec.rb +119 -35
  64. data/spec/spec_helper.rb +9 -3
  65. metadata +95 -234
  66. data/app/assets/images/effective_assets/s3_down_button.gif +0 -0
  67. data/app/assets/images/effective_assets/s3_over_button.gif +0 -0
  68. data/app/assets/images/effective_assets/s3_up_button.gif +0 -0
  69. data/app/assets/images/effective_assets/s3_upload.swf +0 -0
  70. data/app/assets/javascripts/effective_assets/asset_box_input.js.coffee +0 -71
  71. data/app/assets/javascripts/effective_assets/asset_box_uploader.js +0 -122
  72. data/app/assets/javascripts/effective_assets/asset_box_uploader_customization.js +0 -166
  73. data/app/controllers/effective/attachments_controller.rb +0 -14
  74. data/app/views/asset_box_input/_attachment_fields.html.haml +0 -14
  75. data/spec/dummy/README.rdoc +0 -261
  76. data/spec/dummy/Rakefile +0 -7
  77. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  78. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  79. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  80. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  81. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  82. data/spec/dummy/config.ru +0 -4
  83. data/spec/dummy/config/application.rb +0 -65
  84. data/spec/dummy/config/boot.rb +0 -10
  85. data/spec/dummy/config/database.yml +0 -25
  86. data/spec/dummy/config/environment.rb +0 -5
  87. data/spec/dummy/config/environments/development.rb +0 -37
  88. data/spec/dummy/config/environments/production.rb +0 -67
  89. data/spec/dummy/config/environments/test.rb +0 -37
  90. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  91. data/spec/dummy/config/initializers/inflections.rb +0 -15
  92. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  93. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  94. data/spec/dummy/config/initializers/session_store.rb +0 -8
  95. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  96. data/spec/dummy/config/locales/en.yml +0 -5
  97. data/spec/dummy/config/routes.rb +0 -58
  98. data/spec/dummy/db/development.sqlite3 +0 -0
  99. data/spec/dummy/db/schema.rb +0 -16
  100. data/spec/dummy/db/test.sqlite3 +0 -0
  101. data/spec/dummy/log/development.log +0 -71
  102. data/spec/dummy/log/test.log +0 -33
  103. data/spec/dummy/public/404.html +0 -26
  104. data/spec/dummy/public/422.html +0 -26
  105. data/spec/dummy/public/500.html +0 -25
  106. data/spec/dummy/script/rails +0 -6
  107. data/spec/dummy/spec_link +0 -3
@@ -0,0 +1,508 @@
1
+ .clearfix {
2
+ *zoom: 1;
3
+ }
4
+ .clearfix:before,
5
+ .clearfix:after {
6
+ display: table;
7
+ content: "";
8
+ line-height: 0;
9
+ }
10
+ .clearfix:after {
11
+ clear: both;
12
+ }
13
+ .hide-text {
14
+ font: 0/0 a;
15
+ color: transparent;
16
+ text-shadow: none;
17
+ background-color: transparent;
18
+ border: 0;
19
+ }
20
+ .input-block-level {
21
+ display: block;
22
+ width: 100%;
23
+ min-height: 30px;
24
+ -webkit-box-sizing: border-box;
25
+ -moz-box-sizing: border-box;
26
+ box-sizing: border-box;
27
+ }
28
+ table {
29
+ max-width: 100%;
30
+ background-color: transparent;
31
+ border-collapse: collapse;
32
+ border-spacing: 0;
33
+ }
34
+ .table {
35
+ width: 100%;
36
+ margin-bottom: 20px;
37
+ }
38
+ .table th,
39
+ .table td {
40
+ padding: 8px;
41
+ line-height: 20px;
42
+ text-align: left;
43
+ vertical-align: top;
44
+ border-top: 1px solid #dddddd;
45
+ }
46
+ .table th {
47
+ font-weight: bold;
48
+ }
49
+ .table thead th {
50
+ vertical-align: bottom;
51
+ }
52
+ .table caption + thead tr:first-child th,
53
+ .table caption + thead tr:first-child td,
54
+ .table colgroup + thead tr:first-child th,
55
+ .table colgroup + thead tr:first-child td,
56
+ .table thead:first-child tr:first-child th,
57
+ .table thead:first-child tr:first-child td {
58
+ border-top: 0;
59
+ }
60
+ .table tbody + tbody {
61
+ border-top: 2px solid #dddddd;
62
+ }
63
+ .table .table {
64
+ background-color: #ffffff;
65
+ }
66
+ .table-condensed th,
67
+ .table-condensed td {
68
+ padding: 4px 5px;
69
+ }
70
+ .table-bordered {
71
+ border: 1px solid #dddddd;
72
+ border-collapse: separate;
73
+ *border-collapse: collapse;
74
+ border-left: 0;
75
+ -webkit-border-radius: 4px;
76
+ -moz-border-radius: 4px;
77
+ border-radius: 4px;
78
+ }
79
+ .table-bordered th,
80
+ .table-bordered td {
81
+ border-left: 1px solid #dddddd;
82
+ }
83
+ .table-bordered caption + thead tr:first-child th,
84
+ .table-bordered caption + tbody tr:first-child th,
85
+ .table-bordered caption + tbody tr:first-child td,
86
+ .table-bordered colgroup + thead tr:first-child th,
87
+ .table-bordered colgroup + tbody tr:first-child th,
88
+ .table-bordered colgroup + tbody tr:first-child td,
89
+ .table-bordered thead:first-child tr:first-child th,
90
+ .table-bordered tbody:first-child tr:first-child th,
91
+ .table-bordered tbody:first-child tr:first-child td {
92
+ border-top: 0;
93
+ }
94
+ .table-bordered thead:first-child tr:first-child > th:first-child,
95
+ .table-bordered tbody:first-child tr:first-child > td:first-child,
96
+ .table-bordered tbody:first-child tr:first-child > th:first-child {
97
+ -webkit-border-top-left-radius: 4px;
98
+ -moz-border-radius-topleft: 4px;
99
+ border-top-left-radius: 4px;
100
+ }
101
+ .table-bordered thead:first-child tr:first-child > th:last-child,
102
+ .table-bordered tbody:first-child tr:first-child > td:last-child,
103
+ .table-bordered tbody:first-child tr:first-child > th:last-child {
104
+ -webkit-border-top-right-radius: 4px;
105
+ -moz-border-radius-topright: 4px;
106
+ border-top-right-radius: 4px;
107
+ }
108
+ .table-bordered thead:last-child tr:last-child > th:first-child,
109
+ .table-bordered tbody:last-child tr:last-child > td:first-child,
110
+ .table-bordered tbody:last-child tr:last-child > th:first-child,
111
+ .table-bordered tfoot:last-child tr:last-child > td:first-child,
112
+ .table-bordered tfoot:last-child tr:last-child > th:first-child {
113
+ -webkit-border-bottom-left-radius: 4px;
114
+ -moz-border-radius-bottomleft: 4px;
115
+ border-bottom-left-radius: 4px;
116
+ }
117
+ .table-bordered thead:last-child tr:last-child > th:last-child,
118
+ .table-bordered tbody:last-child tr:last-child > td:last-child,
119
+ .table-bordered tbody:last-child tr:last-child > th:last-child,
120
+ .table-bordered tfoot:last-child tr:last-child > td:last-child,
121
+ .table-bordered tfoot:last-child tr:last-child > th:last-child {
122
+ -webkit-border-bottom-right-radius: 4px;
123
+ -moz-border-radius-bottomright: 4px;
124
+ border-bottom-right-radius: 4px;
125
+ }
126
+ .table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
127
+ -webkit-border-bottom-left-radius: 0;
128
+ -moz-border-radius-bottomleft: 0;
129
+ border-bottom-left-radius: 0;
130
+ }
131
+ .table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
132
+ -webkit-border-bottom-right-radius: 0;
133
+ -moz-border-radius-bottomright: 0;
134
+ border-bottom-right-radius: 0;
135
+ }
136
+ .table-bordered caption + thead tr:first-child th:first-child,
137
+ .table-bordered caption + tbody tr:first-child td:first-child,
138
+ .table-bordered colgroup + thead tr:first-child th:first-child,
139
+ .table-bordered colgroup + tbody tr:first-child td:first-child {
140
+ -webkit-border-top-left-radius: 4px;
141
+ -moz-border-radius-topleft: 4px;
142
+ border-top-left-radius: 4px;
143
+ }
144
+ .table-bordered caption + thead tr:first-child th:last-child,
145
+ .table-bordered caption + tbody tr:first-child td:last-child,
146
+ .table-bordered colgroup + thead tr:first-child th:last-child,
147
+ .table-bordered colgroup + tbody tr:first-child td:last-child {
148
+ -webkit-border-top-right-radius: 4px;
149
+ -moz-border-radius-topright: 4px;
150
+ border-top-right-radius: 4px;
151
+ }
152
+ .table-striped tbody > tr:nth-child(odd) > td,
153
+ .table-striped tbody > tr:nth-child(odd) > th {
154
+ background-color: #f9f9f9;
155
+ }
156
+ .table-hover tbody tr:hover > td,
157
+ .table-hover tbody tr:hover > th {
158
+ background-color: #f5f5f5;
159
+ }
160
+ table td[class*="span"],
161
+ table th[class*="span"],
162
+ .row-fluid table td[class*="span"],
163
+ .row-fluid table th[class*="span"] {
164
+ display: table-cell;
165
+ float: none;
166
+ margin-left: 0;
167
+ }
168
+ .table td.span1,
169
+ .table th.span1 {
170
+ float: none;
171
+ width: 44px;
172
+ margin-left: 0;
173
+ }
174
+ .table td.span2,
175
+ .table th.span2 {
176
+ float: none;
177
+ width: 124px;
178
+ margin-left: 0;
179
+ }
180
+ .table td.span3,
181
+ .table th.span3 {
182
+ float: none;
183
+ width: 204px;
184
+ margin-left: 0;
185
+ }
186
+ .table td.span4,
187
+ .table th.span4 {
188
+ float: none;
189
+ width: 284px;
190
+ margin-left: 0;
191
+ }
192
+ .table td.span5,
193
+ .table th.span5 {
194
+ float: none;
195
+ width: 364px;
196
+ margin-left: 0;
197
+ }
198
+ .table td.span6,
199
+ .table th.span6 {
200
+ float: none;
201
+ width: 444px;
202
+ margin-left: 0;
203
+ }
204
+ .table td.span7,
205
+ .table th.span7 {
206
+ float: none;
207
+ width: 524px;
208
+ margin-left: 0;
209
+ }
210
+ .table td.span8,
211
+ .table th.span8 {
212
+ float: none;
213
+ width: 604px;
214
+ margin-left: 0;
215
+ }
216
+ .table td.span9,
217
+ .table th.span9 {
218
+ float: none;
219
+ width: 684px;
220
+ margin-left: 0;
221
+ }
222
+ .table td.span10,
223
+ .table th.span10 {
224
+ float: none;
225
+ width: 764px;
226
+ margin-left: 0;
227
+ }
228
+ .table td.span11,
229
+ .table th.span11 {
230
+ float: none;
231
+ width: 844px;
232
+ margin-left: 0;
233
+ }
234
+ .table td.span12,
235
+ .table th.span12 {
236
+ float: none;
237
+ width: 924px;
238
+ margin-left: 0;
239
+ }
240
+ .table tbody tr.success > td {
241
+ background-color: #dff0d8;
242
+ }
243
+ .table tbody tr.error > td {
244
+ background-color: #f2dede;
245
+ }
246
+ .table tbody tr.warning > td {
247
+ background-color: #fcf8e3;
248
+ }
249
+ .table tbody tr.info > td {
250
+ background-color: #d9edf7;
251
+ }
252
+ .table-hover tbody tr.success:hover > td {
253
+ background-color: #d0e9c6;
254
+ }
255
+ .table-hover tbody tr.error:hover > td {
256
+ background-color: #ebcccc;
257
+ }
258
+ .table-hover tbody tr.warning:hover > td {
259
+ background-color: #faf2cc;
260
+ }
261
+ .table-hover tbody tr.info:hover > td {
262
+ background-color: #c4e3f3;
263
+ }
264
+ .thumbnails {
265
+ margin-left: -20px;
266
+ list-style: none;
267
+ *zoom: 1;
268
+ }
269
+ .thumbnails:before,
270
+ .thumbnails:after {
271
+ display: table;
272
+ content: "";
273
+ line-height: 0;
274
+ }
275
+ .thumbnails:after {
276
+ clear: both;
277
+ }
278
+ .row-fluid .thumbnails {
279
+ margin-left: 0;
280
+ }
281
+ .thumbnails > li {
282
+ float: left;
283
+ margin-bottom: 20px;
284
+ margin-left: 20px;
285
+ }
286
+ .thumbnail {
287
+ display: block;
288
+ padding: 4px;
289
+ line-height: 20px;
290
+ border: 1px solid #ddd;
291
+ -webkit-border-radius: 4px;
292
+ -moz-border-radius: 4px;
293
+ border-radius: 4px;
294
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
295
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
296
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
297
+ -webkit-transition: all 0.2s ease-in-out;
298
+ -moz-transition: all 0.2s ease-in-out;
299
+ -o-transition: all 0.2s ease-in-out;
300
+ transition: all 0.2s ease-in-out;
301
+ }
302
+ a.thumbnail:hover,
303
+ a.thumbnail:focus {
304
+ border-color: #0088cc;
305
+ -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
306
+ -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
307
+ box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
308
+ }
309
+ .thumbnail > img {
310
+ display: block;
311
+ max-width: 100%;
312
+ margin-left: auto;
313
+ margin-right: auto;
314
+ }
315
+ .thumbnail .caption {
316
+ padding: 9px;
317
+ color: #555555;
318
+ }
319
+ @-webkit-keyframes progress-bar-stripes {
320
+ from {
321
+ background-position: 40px 0;
322
+ }
323
+ to {
324
+ background-position: 0 0;
325
+ }
326
+ }
327
+ @-moz-keyframes progress-bar-stripes {
328
+ from {
329
+ background-position: 40px 0;
330
+ }
331
+ to {
332
+ background-position: 0 0;
333
+ }
334
+ }
335
+ @-ms-keyframes progress-bar-stripes {
336
+ from {
337
+ background-position: 40px 0;
338
+ }
339
+ to {
340
+ background-position: 0 0;
341
+ }
342
+ }
343
+ @-o-keyframes progress-bar-stripes {
344
+ from {
345
+ background-position: 0 0;
346
+ }
347
+ to {
348
+ background-position: 40px 0;
349
+ }
350
+ }
351
+ @keyframes progress-bar-stripes {
352
+ from {
353
+ background-position: 40px 0;
354
+ }
355
+ to {
356
+ background-position: 0 0;
357
+ }
358
+ }
359
+ .progress {
360
+ overflow: hidden;
361
+ height: 20px;
362
+ margin-bottom: 20px;
363
+ background-color: #f7f7f7;
364
+ background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
365
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
366
+ background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
367
+ background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
368
+ background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
369
+ background-repeat: repeat-x;
370
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
371
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
372
+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
373
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
374
+ -webkit-border-radius: 4px;
375
+ -moz-border-radius: 4px;
376
+ border-radius: 4px;
377
+ }
378
+ .progress .bar {
379
+ width: 0%;
380
+ height: 100%;
381
+ color: #ffffff;
382
+ float: left;
383
+ font-size: 12px;
384
+ text-align: center;
385
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
386
+ background-color: #0e90d2;
387
+ background-image: -moz-linear-gradient(top, #149bdf, #0480be);
388
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
389
+ background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
390
+ background-image: -o-linear-gradient(top, #149bdf, #0480be);
391
+ background-image: linear-gradient(to bottom, #149bdf, #0480be);
392
+ background-repeat: repeat-x;
393
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
394
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
395
+ -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
396
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
397
+ -webkit-box-sizing: border-box;
398
+ -moz-box-sizing: border-box;
399
+ box-sizing: border-box;
400
+ -webkit-transition: width 0.6s ease;
401
+ -moz-transition: width 0.6s ease;
402
+ -o-transition: width 0.6s ease;
403
+ transition: width 0.6s ease;
404
+ }
405
+ .progress .bar + .bar {
406
+ -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
407
+ -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
408
+ box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
409
+ }
410
+ .progress-striped .bar {
411
+ background-color: #149bdf;
412
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
413
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
414
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
415
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
416
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
417
+ -webkit-background-size: 40px 40px;
418
+ -moz-background-size: 40px 40px;
419
+ -o-background-size: 40px 40px;
420
+ background-size: 40px 40px;
421
+ }
422
+ .progress.active .bar {
423
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
424
+ -moz-animation: progress-bar-stripes 2s linear infinite;
425
+ -ms-animation: progress-bar-stripes 2s linear infinite;
426
+ -o-animation: progress-bar-stripes 2s linear infinite;
427
+ animation: progress-bar-stripes 2s linear infinite;
428
+ }
429
+ .progress-danger .bar,
430
+ .progress .bar-danger {
431
+ background-color: #dd514c;
432
+ background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
433
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
434
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
435
+ background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
436
+ background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
437
+ background-repeat: repeat-x;
438
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
439
+ }
440
+ .progress-danger.progress-striped .bar,
441
+ .progress-striped .bar-danger {
442
+ background-color: #ee5f5b;
443
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
444
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
445
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
446
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
447
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
448
+ }
449
+ .progress-success .bar,
450
+ .progress .bar-success {
451
+ background-color: #5eb95e;
452
+ background-image: -moz-linear-gradient(top, #62c462, #57a957);
453
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
454
+ background-image: -webkit-linear-gradient(top, #62c462, #57a957);
455
+ background-image: -o-linear-gradient(top, #62c462, #57a957);
456
+ background-image: linear-gradient(to bottom, #62c462, #57a957);
457
+ background-repeat: repeat-x;
458
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
459
+ }
460
+ .progress-success.progress-striped .bar,
461
+ .progress-striped .bar-success {
462
+ background-color: #62c462;
463
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
464
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
465
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
466
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
467
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
468
+ }
469
+ .progress-info .bar,
470
+ .progress .bar-info {
471
+ background-color: #4bb1cf;
472
+ background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
473
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
474
+ background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
475
+ background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
476
+ background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
477
+ background-repeat: repeat-x;
478
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
479
+ }
480
+ .progress-info.progress-striped .bar,
481
+ .progress-striped .bar-info {
482
+ background-color: #5bc0de;
483
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
484
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
485
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
486
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
487
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
488
+ }
489
+ .progress-warning .bar,
490
+ .progress .bar-warning {
491
+ background-color: #faa732;
492
+ background-image: -moz-linear-gradient(top, #fbb450, #f89406);
493
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
494
+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
495
+ background-image: -o-linear-gradient(top, #fbb450, #f89406);
496
+ background-image: linear-gradient(to bottom, #fbb450, #f89406);
497
+ background-repeat: repeat-x;
498
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
499
+ }
500
+ .progress-warning.progress-striped .bar,
501
+ .progress-striped .bar-warning {
502
+ background-color: #fbb450;
503
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
504
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
505
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
506
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
507
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
508
+ }