active_admin_multi_upload 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +56 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/stylesheets/active_admin_multi_upload/jquery_upload.scss +1105 -0
  6. data/app/models/concerns/active_admin_multi_upload/uploadable.rb +26 -0
  7. data/app/views/active_admin_multi_upload/_upload_form.html.erb +158 -0
  8. data/config/routes.rb +2 -0
  9. data/lib/active_admin_multi_upload.rb +7 -0
  10. data/lib/active_admin_multi_upload/dsl.rb +49 -0
  11. data/lib/active_admin_multi_upload/engine.rb +5 -0
  12. data/lib/active_admin_multi_upload/version.rb +3 -0
  13. data/lib/generators/active_admin_multi_upload/resource/USAGE +5 -0
  14. data/lib/generators/active_admin_multi_upload/resource/resource_generator.rb +16 -0
  15. data/lib/tasks/active_admin_multi_upload_tasks.rake +4 -0
  16. data/test/active_admin_multi_upload_test.rb +7 -0
  17. data/test/dummy/README.rdoc +28 -0
  18. data/test/dummy/Rakefile +6 -0
  19. data/test/dummy/app/assets/javascripts/application.js +13 -0
  20. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  21. data/test/dummy/app/controllers/application_controller.rb +5 -0
  22. data/test/dummy/app/helpers/application_helper.rb +2 -0
  23. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  24. data/test/dummy/bin/bundle +3 -0
  25. data/test/dummy/bin/rails +4 -0
  26. data/test/dummy/bin/rake +4 -0
  27. data/test/dummy/config.ru +4 -0
  28. data/test/dummy/config/application.rb +28 -0
  29. data/test/dummy/config/boot.rb +5 -0
  30. data/test/dummy/config/environment.rb +5 -0
  31. data/test/dummy/config/environments/development.rb +27 -0
  32. data/test/dummy/config/environments/production.rb +80 -0
  33. data/test/dummy/config/environments/test.rb +36 -0
  34. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  35. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  36. data/test/dummy/config/initializers/inflections.rb +16 -0
  37. data/test/dummy/config/initializers/mime_types.rb +5 -0
  38. data/test/dummy/config/initializers/secret_token.rb +12 -0
  39. data/test/dummy/config/initializers/session_store.rb +3 -0
  40. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  41. data/test/dummy/config/locales/en.yml +23 -0
  42. data/test/dummy/config/routes.rb +56 -0
  43. data/test/dummy/public/404.html +58 -0
  44. data/test/dummy/public/422.html +58 -0
  45. data/test/dummy/public/500.html +57 -0
  46. data/test/dummy/public/favicon.ico +0 -0
  47. data/test/integration/navigation_test.rb +9 -0
  48. data/test/test_helper.rb +15 -0
  49. metadata +151 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0dc8427bdb39330b47afc1f6ad2952d1b3fa670b
4
+ data.tar.gz: 46ad944860f272f63383f45b5347ec2f1a450d54
5
+ SHA512:
6
+ metadata.gz: 82f3e958f1158f9f7a30bf300b3183dd153d460ce3794c64eecc81593c95475a6f7965ded3eb2753d632bd09e739e234499f4f8dec754341e4d0449f724e3f94
7
+ data.tar.gz: e69265b3fdc8aa5bf7a194d650c73bad64f1da65c0de21ace0ac8391dc576508f900e1e3c71bb505bf37a20bb547b201fe2bff2b1b690e1ee0ed1907948e0fd1
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 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
@@ -0,0 +1,56 @@
1
+ ActiveAdminMultiUpload
2
+ ========
3
+
4
+ ### Support for multiple image upload for a nested resource in ActiveAdmin
5
+
6
+ _This gem was built to work with Carrierwave & ActiveAdmin, and is based on the excellent jquery-fileupload-system._
7
+
8
+ ActiveAdminMultiUpload is a version of jquery-fileupload-ui built to work with nested objects and ActiveAdmin 1.0. It supports all major features including file-previews and progress bars, and has been built so as to have the simplest implentation possible. It has been tested with Rails 4.0.2 and Ruby 2.1.0
9
+
10
+ Getting Started
11
+ ========
12
+
13
+ Carrierwave
14
+ --------
15
+
16
+ This gem relies on [Carrierwave](https://github.com/carrierwaveuploader/carrierwave) to work. If you are unfamiliar with Carrierwave then I recommend have a look through it before using this gem. You can also check out [This Railscast](http://railscasts.com/episodes/253-carrierwave-file-uploads) by Ryan Bates to help you get started.
17
+
18
+ Installation
19
+ --------
20
+
21
+ Add the gem to your Gemfile
22
+
23
+ `gem "active_admin_multi_upload"`
24
+
25
+ and then run `bundle install`
26
+
27
+ Setup
28
+ --------
29
+
30
+ For the sake of simplification for all examples below I am going to use the sample data.
31
+
32
+ * `Picture` will be the model that has an uploader associated with its `:image` attribute
33
+ * `Gallery` has many `:pictures`
34
+
35
+ You can also assume the `@gallery` refers to the current gallery that we are creating/editing.
36
+
37
+ **Substitute these with your own models and associations**
38
+
39
+ ### Allow the Params
40
+
41
+ In `/admin/gallery.rb` add `permit_params picture_ids: []`
42
+
43
+ ### Add the uploader
44
+
45
+ Within your form render the `active_admin_multi_upload/upload_form`
46
+
47
+ <%= f.inputs "Pictures" do %>
48
+ <%= render "active_admin_multi_upload/upload_form", :resource => @gallery, :association => "pictures", attribute: "image" %>
49
+ <% end %>
50
+
51
+ Options
52
+ ---------
53
+
54
+
55
+
56
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'ActiveAdminMultiUpload'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+
18
+
19
+
20
+ Bundler::GemHelper.install_tasks
21
+
22
+ require 'rake/testtask'
23
+
24
+ Rake::TestTask.new(:test) do |t|
25
+ t.libs << 'lib'
26
+ t.libs << 'test'
27
+ t.pattern = 'test/**/*_test.rb'
28
+ t.verbose = false
29
+ end
30
+
31
+
32
+ task default: :test
@@ -0,0 +1,1105 @@
1
+ // This is mostly just imported Bootstrap, slightly edited to not interfere with Active Admin.
2
+ .row {
3
+ margin-right: -15px;
4
+ margin-left: -15px;
5
+ }
6
+
7
+ .row:before,
8
+ .row:after {
9
+ display: table;
10
+ content: " ";
11
+ }
12
+
13
+ .row:after {
14
+ clear: both;
15
+ }
16
+
17
+ .row:before,
18
+ .row:after {
19
+ display: table;
20
+ content: " ";
21
+ }
22
+
23
+ .row:after {
24
+ clear: both;
25
+ }
26
+
27
+ .btn-default,
28
+ .btn-primary,
29
+ .btn-success,
30
+ .btn-info,
31
+ .btn-warning,
32
+ .btn-danger {
33
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
34
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
35
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
36
+ }
37
+
38
+ .btn-default:active,
39
+ .btn-primary:active,
40
+ .btn-success:active,
41
+ .btn-info:active,
42
+ .btn-warning:active,
43
+ .btn-danger:active,
44
+ .btn-default.active,
45
+ .btn-primary.active,
46
+ .btn-success.active,
47
+ .btn-info.active,
48
+ .btn-warning.active,
49
+ .btn-danger.active {
50
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
51
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
52
+ }
53
+
54
+ .btn:active,
55
+ .btn.active {
56
+ background-image: none;
57
+ }
58
+
59
+ .btn-default:active,
60
+ .btn-default.active {
61
+ background-color: #e6e6e6;
62
+ border-color: #e0e0e0;
63
+ }
64
+
65
+ .btn-primary { // Start Upload
66
+ }
67
+
68
+ .btn-primary:active,
69
+ .btn-primary.active {
70
+ background-color: #3071a9;
71
+ border-color: #2d6ca2;
72
+ }
73
+
74
+ .btn-success { // Add Files
75
+ }
76
+
77
+ .btn-success:active,
78
+ .btn-success.active {
79
+ background-color: #449d44;
80
+ border-color: #419641;
81
+ }
82
+
83
+ .btn-warning { // Cancel Upload
84
+
85
+ }
86
+
87
+ .btn-warning:active,
88
+ .btn-warning.active {
89
+ background-color: #ec971f;
90
+ border-color: #eb9316;
91
+ }
92
+
93
+ .btn-danger { // Delete
94
+
95
+ }
96
+
97
+ .btn-danger:active,
98
+ .btn-danger.active {
99
+ background-color: #c9302c;
100
+ border-color: #c12e2a;
101
+ }
102
+
103
+ .btn-info {
104
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
105
+ background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%);
106
+ background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
107
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
108
+ background-repeat: repeat-x;
109
+ border-color: #2aabd2;
110
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
111
+ }
112
+
113
+ .btn-info:active,
114
+ .btn-info.active {
115
+ background-color: #31b0d5;
116
+ border-color: #2aabd2;
117
+ }
118
+
119
+ .thumbnail,
120
+ .img-thumbnail {
121
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
122
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
123
+ }
124
+
125
+ .dropdown-menu > li > a:hover,
126
+ .dropdown-menu > li > a:focus,
127
+ .dropdown-menu > .active > a,
128
+ .dropdown-menu > .active > a:hover,
129
+ .dropdown-menu > .active > a:focus {
130
+ background-color: #357ebd;
131
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
132
+ background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%);
133
+ background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
134
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
135
+ background-repeat: repeat-x;
136
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
137
+ }
138
+
139
+ .navbar {
140
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8));
141
+ background-image: -webkit-linear-gradient(top, #ffffff, 0%, #f8f8f8, 100%);
142
+ background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
143
+ background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
144
+ background-repeat: repeat-x;
145
+ border-radius: 4px;
146
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
147
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
148
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
149
+ }
150
+
151
+ .navbar .navbar-nav > .active > a {
152
+ background-color: #f8f8f8;
153
+ }
154
+
155
+ .navbar-brand,
156
+ .navbar-nav > li > a {
157
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
158
+ }
159
+
160
+ .navbar-inverse {
161
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222));
162
+ background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%);
163
+ background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
164
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
165
+ background-repeat: repeat-x;
166
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
167
+ }
168
+
169
+ .navbar-inverse .navbar-nav > .active > a {
170
+ background-color: #222222;
171
+ }
172
+
173
+ .navbar-inverse .navbar-brand,
174
+ .navbar-inverse .navbar-nav > li > a {
175
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
176
+ }
177
+
178
+ .navbar-static-top,
179
+ .navbar-fixed-top,
180
+ .navbar-fixed-bottom {
181
+ border-radius: 0;
182
+ }
183
+
184
+ .alert {
185
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
186
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
187
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
188
+ }
189
+
190
+ .alert-success {
191
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc));
192
+ background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #c8e5bc, 100%);
193
+ background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
194
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
195
+ background-repeat: repeat-x;
196
+ border-color: #b2dba1;
197
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
198
+ }
199
+
200
+ .alert-info {
201
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0));
202
+ background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #b9def0, 100%);
203
+ background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
204
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
205
+ background-repeat: repeat-x;
206
+ border-color: #9acfea;
207
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
208
+ }
209
+
210
+ .alert-warning {
211
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0));
212
+ background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #f8efc0, 100%);
213
+ background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
214
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
215
+ background-repeat: repeat-x;
216
+ border-color: #f5e79e;
217
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
218
+ }
219
+
220
+ .alert-danger {
221
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3));
222
+ background-image: -webkit-linear-gradient(top, #f2dede, 0%, #e7c3c3, 100%);
223
+ background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
224
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
225
+ background-repeat: repeat-x;
226
+ border-color: #dca7a7;
227
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
228
+ }
229
+
230
+ .progress {
231
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5));
232
+ background-image: -webkit-linear-gradient(top, #ebebeb, 0%, #f5f5f5, 100%);
233
+ background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
234
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
235
+ background-repeat: repeat-x;
236
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
237
+ }
238
+
239
+ .progress-bar {
240
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
241
+ background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%);
242
+ background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
243
+ background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
244
+ background-repeat: repeat-x;
245
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
246
+ }
247
+
248
+ .progress-bar-success {
249
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
250
+ background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%);
251
+ background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
252
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
253
+ background-repeat: repeat-x;
254
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
255
+ }
256
+
257
+ .progress-bar-info {
258
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
259
+ background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%);
260
+ background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
261
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
262
+ background-repeat: repeat-x;
263
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
264
+ }
265
+
266
+ .progress-bar-warning {
267
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
268
+ background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%);
269
+ background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
270
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
271
+ background-repeat: repeat-x;
272
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
273
+ }
274
+
275
+ .progress-bar-danger {
276
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
277
+ background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%);
278
+ background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
279
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
280
+ background-repeat: repeat-x;
281
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
282
+ }
283
+
284
+ .list-group {
285
+ border-radius: 4px;
286
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
287
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
288
+ }
289
+
290
+ .list-group-item.active,
291
+ .list-group-item.active:hover,
292
+ .list-group-item.active:focus {
293
+ text-shadow: 0 -1px 0 #3071a9;
294
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3));
295
+ background-image: -webkit-linear-gradient(top, #428bca, 0%, #3278b3, 100%);
296
+ background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%);
297
+ background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
298
+ background-repeat: repeat-x;
299
+ border-color: #3278b3;
300
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
301
+ }
302
+
303
+ .panel {
304
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
305
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
306
+ }
307
+
308
+ .panel-default > .panel-heading {
309
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
310
+ background-image: -webkit-linear-gradient(top, #f5f5f5, 0%, #e8e8e8, 100%);
311
+ background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
312
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
313
+ background-repeat: repeat-x;
314
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
315
+ }
316
+
317
+ .panel-primary > .panel-heading {
318
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
319
+ background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%);
320
+ background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
321
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
322
+ background-repeat: repeat-x;
323
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
324
+ }
325
+
326
+ .panel-success > .panel-heading {
327
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6));
328
+ background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #d0e9c6, 100%);
329
+ background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
330
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
331
+ background-repeat: repeat-x;
332
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
333
+ }
334
+
335
+ .panel-info > .panel-heading {
336
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3));
337
+ background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #c4e3f3, 100%);
338
+ background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
339
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
340
+ background-repeat: repeat-x;
341
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
342
+ }
343
+
344
+ .panel-warning > .panel-heading {
345
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc));
346
+ background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #faf2cc, 100%);
347
+ background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
348
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
349
+ background-repeat: repeat-x;
350
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
351
+ }
352
+
353
+ .panel-danger > .panel-heading {
354
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc));
355
+ background-image: -webkit-linear-gradient(top, #f2dede, 0%, #ebcccc, 100%);
356
+ background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
357
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
358
+ background-repeat: repeat-x;
359
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
360
+ }
361
+
362
+ .well {
363
+ background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5));
364
+ background-image: -webkit-linear-gradient(top, #e8e8e8, 0%, #f5f5f5, 100%);
365
+ background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
366
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
367
+ background-repeat: repeat-x;
368
+ border-color: #dcdcdc;
369
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
370
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
371
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
372
+ }
373
+
374
+ .btn {
375
+ display: inline-block;
376
+ padding: 6px 12px;
377
+ margin-bottom: 0;
378
+ font-size: 14px;
379
+ font-weight: normal;
380
+ line-height: 1.428571429;
381
+ text-align: center;
382
+ white-space: nowrap;
383
+ vertical-align: middle;
384
+ cursor: pointer;
385
+ border: 1px solid transparent;
386
+ border-radius: 4px;
387
+ -webkit-user-select: none;
388
+ -moz-user-select: none;
389
+ -ms-user-select: none;
390
+ -o-user-select: none;
391
+ user-select: none;
392
+ }
393
+
394
+ .btn:focus {
395
+ outline: thin dotted #333;
396
+ outline: 5px auto -webkit-focus-ring-color;
397
+ outline-offset: -2px;
398
+ }
399
+
400
+ .btn:hover,
401
+ .btn:focus {
402
+ color: #333333;
403
+ text-decoration: none;
404
+ }
405
+
406
+ .btn:active,
407
+ .btn.active {
408
+ background-image: none;
409
+ outline: 0;
410
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
411
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
412
+ }
413
+
414
+ .btn.disabled,
415
+ .btn[disabled],
416
+ fieldset[disabled] .btn {
417
+ pointer-events: none;
418
+ cursor: not-allowed;
419
+ opacity: 0.65;
420
+ filter: alpha(opacity=65);
421
+ -webkit-box-shadow: none;
422
+ box-shadow: none;
423
+ }
424
+
425
+ .btn-default {
426
+ color: #333333;
427
+ background-color: #ffffff;
428
+ border-color: #cccccc;
429
+ }
430
+
431
+ .btn-default:hover,
432
+ .btn-default:focus,
433
+ .btn-default:active,
434
+ .btn-default.active,
435
+ .open .dropdown-toggle.btn-default {
436
+ color: #333333;
437
+ background-color: #ebebeb;
438
+ border-color: #adadad;
439
+ }
440
+
441
+ .btn-default:active,
442
+ .btn-default.active,
443
+ .open .dropdown-toggle.btn-default {
444
+ background-image: none;
445
+ }
446
+
447
+ .btn-default.disabled,
448
+ .btn-default[disabled],
449
+ fieldset[disabled] .btn-default,
450
+ .btn-default.disabled:hover,
451
+ .btn-default[disabled]:hover,
452
+ fieldset[disabled] .btn-default:hover,
453
+ .btn-default.disabled:focus,
454
+ .btn-default[disabled]:focus,
455
+ fieldset[disabled] .btn-default:focus,
456
+ .btn-default.disabled:active,
457
+ .btn-default[disabled]:active,
458
+ fieldset[disabled] .btn-default:active,
459
+ .btn-default.disabled.active,
460
+ .btn-default[disabled].active,
461
+ fieldset[disabled] .btn-default.active {
462
+ background-color: #ffffff;
463
+ border-color: #cccccc;
464
+ }
465
+
466
+ .btn-primary {
467
+ color: #ffffff;
468
+ background-color: #428bca;
469
+ border-color: #357ebd;
470
+ }
471
+
472
+ .btn-primary:hover,
473
+ .btn-primary:focus,
474
+ .btn-primary:active,
475
+ .btn-primary.active,
476
+ .open .dropdown-toggle.btn-primary {
477
+ color: #ffffff;
478
+ background-color: #3276b1;
479
+ border-color: #285e8e;
480
+ }
481
+
482
+ .btn-primary:active,
483
+ .btn-primary.active,
484
+ .open .dropdown-toggle.btn-primary {
485
+ background-image: none;
486
+ }
487
+
488
+ .btn-primary.disabled,
489
+ .btn-primary[disabled],
490
+ fieldset[disabled] .btn-primary,
491
+ .btn-primary.disabled:hover,
492
+ .btn-primary[disabled]:hover,
493
+ fieldset[disabled] .btn-primary:hover,
494
+ .btn-primary.disabled:focus,
495
+ .btn-primary[disabled]:focus,
496
+ fieldset[disabled] .btn-primary:focus,
497
+ .btn-primary.disabled:active,
498
+ .btn-primary[disabled]:active,
499
+ fieldset[disabled] .btn-primary:active,
500
+ .btn-primary.disabled.active,
501
+ .btn-primary[disabled].active,
502
+ fieldset[disabled] .btn-primary.active {
503
+ background-color: #428bca;
504
+ border-color: #357ebd;
505
+ }
506
+
507
+ .btn-warning {
508
+ color: #ffffff;
509
+ background-color: #f0ad4e;
510
+ border-color: #eea236;
511
+ }
512
+
513
+ .btn-warning:hover,
514
+ .btn-warning:focus,
515
+ .btn-warning:active,
516
+ .btn-warning.active,
517
+ .open .dropdown-toggle.btn-warning {
518
+ color: #ffffff;
519
+ background-color: #ed9c28;
520
+ border-color: #d58512;
521
+ }
522
+
523
+ .btn-warning:active,
524
+ .btn-warning.active,
525
+ .open .dropdown-toggle.btn-warning {
526
+ background-image: none;
527
+ }
528
+
529
+ .btn-warning.disabled,
530
+ .btn-warning[disabled],
531
+ fieldset[disabled] .btn-warning,
532
+ .btn-warning.disabled:hover,
533
+ .btn-warning[disabled]:hover,
534
+ fieldset[disabled] .btn-warning:hover,
535
+ .btn-warning.disabled:focus,
536
+ .btn-warning[disabled]:focus,
537
+ fieldset[disabled] .btn-warning:focus,
538
+ .btn-warning.disabled:active,
539
+ .btn-warning[disabled]:active,
540
+ fieldset[disabled] .btn-warning:active,
541
+ .btn-warning.disabled.active,
542
+ .btn-warning[disabled].active,
543
+ fieldset[disabled] .btn-warning.active {
544
+ background-color: #f0ad4e;
545
+ border-color: #eea236;
546
+ }
547
+
548
+ .btn-danger {
549
+ color: #ffffff;
550
+ background-color: #d9534f;
551
+ border-color: #d43f3a;
552
+ }
553
+
554
+ .btn-danger:hover,
555
+ .btn-danger:focus,
556
+ .btn-danger:active,
557
+ .btn-danger.active,
558
+ .open .dropdown-toggle.btn-danger {
559
+ color: #ffffff;
560
+ background-color: #d2322d;
561
+ border-color: #ac2925;
562
+ }
563
+
564
+ .btn-danger:active,
565
+ .btn-danger.active,
566
+ .open .dropdown-toggle.btn-danger {
567
+ background-image: none;
568
+ }
569
+
570
+ .btn-danger.disabled,
571
+ .btn-danger[disabled],
572
+ fieldset[disabled] .btn-danger,
573
+ .btn-danger.disabled:hover,
574
+ .btn-danger[disabled]:hover,
575
+ fieldset[disabled] .btn-danger:hover,
576
+ .btn-danger.disabled:focus,
577
+ .btn-danger[disabled]:focus,
578
+ fieldset[disabled] .btn-danger:focus,
579
+ .btn-danger.disabled:active,
580
+ .btn-danger[disabled]:active,
581
+ fieldset[disabled] .btn-danger:active,
582
+ .btn-danger.disabled.active,
583
+ .btn-danger[disabled].active,
584
+ fieldset[disabled] .btn-danger.active {
585
+ background-color: #d9534f;
586
+ border-color: #d43f3a;
587
+ }
588
+
589
+ .btn-success {
590
+ color: #ffffff;
591
+ background-color: #5cb85c;
592
+ border-color: #4cae4c;
593
+ }
594
+
595
+ .btn-success:hover,
596
+ .btn-success:focus,
597
+ .btn-success:active,
598
+ .btn-success.active,
599
+ .open .dropdown-toggle.btn-success {
600
+ color: #ffffff;
601
+ background-color: #47a447;
602
+ border-color: #398439;
603
+ }
604
+
605
+ .btn-success:active,
606
+ .btn-success.active,
607
+ .open .dropdown-toggle.btn-success {
608
+ background-image: none;
609
+ }
610
+
611
+ .btn-success.disabled,
612
+ .btn-success[disabled],
613
+ fieldset[disabled] .btn-success,
614
+ .btn-success.disabled:hover,
615
+ .btn-success[disabled]:hover,
616
+ fieldset[disabled] .btn-success:hover,
617
+ .btn-success.disabled:focus,
618
+ .btn-success[disabled]:focus,
619
+ fieldset[disabled] .btn-success:focus,
620
+ .btn-success.disabled:active,
621
+ .btn-success[disabled]:active,
622
+ fieldset[disabled] .btn-success:active,
623
+ .btn-success.disabled.active,
624
+ .btn-success[disabled].active,
625
+ fieldset[disabled] .btn-success.active {
626
+ background-color: #5cb85c;
627
+ border-color: #4cae4c;
628
+ }
629
+
630
+ .btn-info {
631
+ color: #ffffff;
632
+ background-color: #5bc0de;
633
+ border-color: #46b8da;
634
+ }
635
+
636
+ .btn-info:hover,
637
+ .btn-info:focus,
638
+ .btn-info:active,
639
+ .btn-info.active,
640
+ .open .dropdown-toggle.btn-info {
641
+ color: #ffffff;
642
+ background-color: #39b3d7;
643
+ border-color: #269abc;
644
+ }
645
+
646
+ .btn-info:active,
647
+ .btn-info.active,
648
+ .open .dropdown-toggle.btn-info {
649
+ background-image: none;
650
+ }
651
+
652
+ .btn-info.disabled,
653
+ .btn-info[disabled],
654
+ fieldset[disabled] .btn-info,
655
+ .btn-info.disabled:hover,
656
+ .btn-info[disabled]:hover,
657
+ fieldset[disabled] .btn-info:hover,
658
+ .btn-info.disabled:focus,
659
+ .btn-info[disabled]:focus,
660
+ fieldset[disabled] .btn-info:focus,
661
+ .btn-info.disabled:active,
662
+ .btn-info[disabled]:active,
663
+ fieldset[disabled] .btn-info:active,
664
+ .btn-info.disabled.active,
665
+ .btn-info[disabled].active,
666
+ fieldset[disabled] .btn-info.active {
667
+ background-color: #5bc0de;
668
+ border-color: #46b8da;
669
+ }
670
+
671
+ .btn-link {
672
+ font-weight: normal;
673
+ color: #428bca;
674
+ cursor: pointer;
675
+ border-radius: 0;
676
+ }
677
+
678
+ .btn-link,
679
+ .btn-link:active,
680
+ .btn-link[disabled],
681
+ fieldset[disabled] .btn-link {
682
+ background-color: transparent;
683
+ -webkit-box-shadow: none;
684
+ box-shadow: none;
685
+ }
686
+
687
+ .btn-link,
688
+ .btn-link:hover,
689
+ .btn-link:focus,
690
+ .btn-link:active {
691
+ border-color: transparent;
692
+ }
693
+
694
+ .btn-link:hover,
695
+ .btn-link:focus {
696
+ color: #2a6496;
697
+ text-decoration: underline;
698
+ background-color: transparent;
699
+ }
700
+
701
+ .btn-link[disabled]:hover,
702
+ fieldset[disabled] .btn-link:hover,
703
+ .btn-link[disabled]:focus,
704
+ fieldset[disabled] .btn-link:focus {
705
+ color: #999999;
706
+ text-decoration: none;
707
+ }
708
+
709
+ .btn-lg {
710
+ padding: 10px 16px;
711
+ font-size: 18px;
712
+ line-height: 1.33;
713
+ border-radius: 6px;
714
+ }
715
+
716
+ .btn-sm,
717
+ .btn-xs {
718
+ padding: 5px 10px;
719
+ font-size: 12px;
720
+ line-height: 1.5;
721
+ border-radius: 3px;
722
+ }
723
+
724
+ .btn-xs {
725
+ padding: 1px 5px;
726
+ }
727
+
728
+ .btn-block {
729
+ display: block;
730
+ width: 100%;
731
+ padding-right: 0;
732
+ padding-left: 0;
733
+ }
734
+
735
+ .btn-block + .btn-block {
736
+ margin-top: 5px;
737
+ }
738
+
739
+ table {
740
+ max-width: 100%;
741
+ background-color: transparent;
742
+ }
743
+
744
+ th {
745
+ text-align: left;
746
+ }
747
+
748
+ .table {
749
+ width: 100%;
750
+ margin-bottom: 20px;
751
+ }
752
+
753
+ .table thead > tr > th,
754
+ .table tbody > tr > th,
755
+ .table tfoot > tr > th,
756
+ .table thead > tr > td,
757
+ .table tbody > tr > td,
758
+ .table tfoot > tr > td {
759
+ padding: 8px;
760
+ line-height: 1.428571429;
761
+ vertical-align: top;
762
+ border-top: 1px solid #dddddd;
763
+ }
764
+
765
+ .table thead > tr > th {
766
+ vertical-align: bottom;
767
+ border-bottom: 2px solid #dddddd;
768
+ }
769
+
770
+ .table caption + thead tr:first-child th,
771
+ .table colgroup + thead tr:first-child th,
772
+ .table thead:first-child tr:first-child th,
773
+ .table caption + thead tr:first-child td,
774
+ .table colgroup + thead tr:first-child td,
775
+ .table thead:first-child tr:first-child td {
776
+ border-top: 0;
777
+ }
778
+
779
+ .table tbody + tbody {
780
+ border-top: 2px solid #dddddd;
781
+ }
782
+
783
+ .table .table {
784
+ background-color: #ffffff;
785
+ }
786
+
787
+ .table-condensed thead > tr > th,
788
+ .table-condensed tbody > tr > th,
789
+ .table-condensed tfoot > tr > th,
790
+ .table-condensed thead > tr > td,
791
+ .table-condensed tbody > tr > td,
792
+ .table-condensed tfoot > tr > td {
793
+ padding: 5px;
794
+ }
795
+
796
+ .table-bordered {
797
+ border: 1px solid #dddddd;
798
+ }
799
+
800
+ .table-bordered > thead > tr > th,
801
+ .table-bordered > tbody > tr > th,
802
+ .table-bordered > tfoot > tr > th,
803
+ .table-bordered > thead > tr > td,
804
+ .table-bordered > tbody > tr > td,
805
+ .table-bordered > tfoot > tr > td {
806
+ border: 1px solid #dddddd;
807
+ }
808
+
809
+ .table-bordered > thead > tr > th,
810
+ .table-bordered > thead > tr > td {
811
+ border-bottom-width: 2px;
812
+ }
813
+
814
+ .table-striped > tbody > tr:nth-child(odd) > td,
815
+ .table-striped > tbody > tr:nth-child(odd) > th {
816
+ background-color: #f9f9f9;
817
+ }
818
+
819
+ .table-hover > tbody > tr:hover > td,
820
+ .table-hover > tbody > tr:hover > th {
821
+ background-color: #f5f5f5;
822
+ }
823
+
824
+ table col[class*="col-"] {
825
+ display: table-column;
826
+ float: none;
827
+ }
828
+
829
+ table td[class*="col-"],
830
+ table th[class*="col-"] {
831
+ display: table-cell;
832
+ float: none;
833
+ }
834
+
835
+ .table > thead > tr > td.active,
836
+ .table > tbody > tr > td.active,
837
+ .table > tfoot > tr > td.active,
838
+ .table > thead > tr > th.active,
839
+ .table > tbody > tr > th.active,
840
+ .table > tfoot > tr > th.active,
841
+ .table > thead > tr.active > td,
842
+ .table > tbody > tr.active > td,
843
+ .table > tfoot > tr.active > td,
844
+ .table > thead > tr.active > th,
845
+ .table > tbody > tr.active > th,
846
+ .table > tfoot > tr.active > th {
847
+ background-color: #f5f5f5;
848
+ }
849
+
850
+ .table > thead > tr > td.success,
851
+ .table > tbody > tr > td.success,
852
+ .table > tfoot > tr > td.success,
853
+ .table > thead > tr > th.success,
854
+ .table > tbody > tr > th.success,
855
+ .table > tfoot > tr > th.success,
856
+ .table > thead > tr.success > td,
857
+ .table > tbody > tr.success > td,
858
+ .table > tfoot > tr.success > td,
859
+ .table > thead > tr.success > th,
860
+ .table > tbody > tr.success > th,
861
+ .table > tfoot > tr.success > th {
862
+ background-color: #dff0d8;
863
+ border-color: #d6e9c6;
864
+ }
865
+
866
+ .table-hover > tbody > tr > td.success:hover,
867
+ .table-hover > tbody > tr > th.success:hover,
868
+ .table-hover > tbody > tr.success:hover > td {
869
+ background-color: #d0e9c6;
870
+ border-color: #c9e2b3;
871
+ }
872
+
873
+ .table > thead > tr > td.danger,
874
+ .table > tbody > tr > td.danger,
875
+ .table > tfoot > tr > td.danger,
876
+ .table > thead > tr > th.danger,
877
+ .table > tbody > tr > th.danger,
878
+ .table > tfoot > tr > th.danger,
879
+ .table > thead > tr.danger > td,
880
+ .table > tbody > tr.danger > td,
881
+ .table > tfoot > tr.danger > td,
882
+ .table > thead > tr.danger > th,
883
+ .table > tbody > tr.danger > th,
884
+ .table > tfoot > tr.danger > th {
885
+ background-color: #f2dede;
886
+ border-color: #eed3d7;
887
+ }
888
+
889
+ .table-hover > tbody > tr > td.danger:hover,
890
+ .table-hover > tbody > tr > th.danger:hover,
891
+ .table-hover > tbody > tr.danger:hover > td {
892
+ background-color: #ebcccc;
893
+ border-color: #e6c1c7;
894
+ }
895
+
896
+ .table > thead > tr > td.warning,
897
+ .table > tbody > tr > td.warning,
898
+ .table > tfoot > tr > td.warning,
899
+ .table > thead > tr > th.warning,
900
+ .table > tbody > tr > th.warning,
901
+ .table > tfoot > tr > th.warning,
902
+ .table > thead > tr.warning > td,
903
+ .table > tbody > tr.warning > td,
904
+ .table > tfoot > tr.warning > td,
905
+ .table > thead > tr.warning > th,
906
+ .table > tbody > tr.warning > th,
907
+ .table > tfoot > tr.warning > th {
908
+ background-color: #fcf8e3;
909
+ border-color: #fbeed5;
910
+ }
911
+
912
+ .table-hover > tbody > tr > td.warning:hover,
913
+ .table-hover > tbody > tr > th.warning:hover,
914
+ .table-hover > tbody > tr.warning:hover > td {
915
+ background-color: #faf2cc;
916
+ border-color: #f8e5be;
917
+ }
918
+
919
+ @media (max-width: 768px) {
920
+ .table-responsive {
921
+ width: 100%;
922
+ margin-bottom: 15px;
923
+ overflow-x: scroll;
924
+ overflow-y: hidden;
925
+ border: 1px solid #dddddd;
926
+ }
927
+ .table-responsive > .table {
928
+ margin-bottom: 0;
929
+ background-color: #fff;
930
+ }
931
+ .table-responsive > .table > thead > tr > th,
932
+ .table-responsive > .table > tbody > tr > th,
933
+ .table-responsive > .table > tfoot > tr > th,
934
+ .table-responsive > .table > thead > tr > td,
935
+ .table-responsive > .table > tbody > tr > td,
936
+ .table-responsive > .table > tfoot > tr > td {
937
+ white-space: nowrap;
938
+ }
939
+ .table-responsive > .table-bordered {
940
+ border: 0;
941
+ }
942
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
943
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
944
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
945
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
946
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
947
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
948
+ border-left: 0;
949
+ }
950
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
951
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
952
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
953
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
954
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
955
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
956
+ border-right: 0;
957
+ }
958
+ .table-responsive > .table-bordered > thead > tr:last-child > th,
959
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
960
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
961
+ .table-responsive > .table-bordered > thead > tr:last-child > td,
962
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
963
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
964
+ border-bottom: 0;
965
+ }
966
+ }
967
+
968
+ @-webkit-keyframes progress-bar-stripes {
969
+ from {
970
+ background-position: 40px 0;
971
+ }
972
+ to {
973
+ background-position: 0 0;
974
+ }
975
+ }
976
+
977
+ @-moz-keyframes progress-bar-stripes {
978
+ from {
979
+ background-position: 40px 0;
980
+ }
981
+ to {
982
+ background-position: 0 0;
983
+ }
984
+ }
985
+
986
+ @-o-keyframes progress-bar-stripes {
987
+ from {
988
+ background-position: 0 0;
989
+ }
990
+ to {
991
+ background-position: 40px 0;
992
+ }
993
+ }
994
+
995
+ @keyframes progress-bar-stripes {
996
+ from {
997
+ background-position: 40px 0;
998
+ }
999
+ to {
1000
+ background-position: 0 0;
1001
+ }
1002
+ }
1003
+
1004
+ .progress {
1005
+ height: 20px;
1006
+ margin-bottom: 20px;
1007
+ overflow: hidden;
1008
+ background-color: #f5f5f5;
1009
+ border-radius: 4px;
1010
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
1011
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
1012
+ }
1013
+
1014
+ .progress-bar {
1015
+ float: left;
1016
+ width: 0;
1017
+ height: 100%;
1018
+ font-size: 12px;
1019
+ color: #ffffff;
1020
+ text-align: center;
1021
+ background-color: #428bca;
1022
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
1023
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
1024
+ -webkit-transition: width 0.6s ease;
1025
+ transition: width 0.6s ease;
1026
+ }
1027
+
1028
+ .progress-striped .progress-bar {
1029
+ 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));
1030
+ 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);
1031
+ 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);
1032
+ 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);
1033
+ background-size: 40px 40px;
1034
+ }
1035
+
1036
+ .progress.active .progress-bar {
1037
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
1038
+ -moz-animation: progress-bar-stripes 2s linear infinite;
1039
+ -ms-animation: progress-bar-stripes 2s linear infinite;
1040
+ -o-animation: progress-bar-stripes 2s linear infinite;
1041
+ animation: progress-bar-stripes 2s linear infinite;
1042
+ }
1043
+
1044
+ .progress-bar-success {
1045
+ background-color: #5cb85c;
1046
+ }
1047
+
1048
+ .progress-striped .progress-bar-success {
1049
+ 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));
1050
+ 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);
1051
+ 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);
1052
+ 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);
1053
+ }
1054
+
1055
+ .progress-bar-info {
1056
+ background-color: #5bc0de;
1057
+ }
1058
+
1059
+ .progress-striped .progress-bar-info {
1060
+ 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));
1061
+ 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);
1062
+ 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);
1063
+ 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);
1064
+ }
1065
+
1066
+ .progress-bar-warning {
1067
+ background-color: #f0ad4e;
1068
+ }
1069
+
1070
+ .progress-striped .progress-bar-warning {
1071
+ 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));
1072
+ 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);
1073
+ 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);
1074
+ 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);
1075
+ }
1076
+
1077
+ .progress-bar-danger {
1078
+ background-color: #d9534f;
1079
+ }
1080
+
1081
+ .progress-striped .progress-bar-danger {
1082
+ 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));
1083
+ 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);
1084
+ 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);
1085
+ 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);
1086
+ }
1087
+
1088
+
1089
+ .fade {
1090
+ opacity: 0;
1091
+ -webkit-transition: opacity 0.15s linear;
1092
+ transition: opacity 0.15s linear;
1093
+ }
1094
+
1095
+ .fade.in {
1096
+ opacity: 1;
1097
+ }
1098
+
1099
+ #uploader {
1100
+ margin: 10px 30px 10px 30px;
1101
+ }
1102
+
1103
+ .fileinput-button {
1104
+ margin-top: 2px;
1105
+ }