s3_cors_fileupload 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -0
  3. data/CHANGELOG.md +10 -3
  4. data/Gemfile +11 -9
  5. data/Gemfile.lock +86 -65
  6. data/README.md +8 -4
  7. data/lib/generators/s3_cors_fileupload/install/install_generator.rb +5 -2
  8. data/lib/generators/s3_cors_fileupload/install/templates/s3_uploads_controller.rb +3 -1
  9. data/lib/generators/s3_cors_fileupload/install/templates/source_file.rb +4 -3
  10. data/lib/generators/s3_cors_fileupload/install/templates/views/erb/_template_download.html.erb +18 -7
  11. data/lib/generators/s3_cors_fileupload/install/templates/views/erb/_template_upload.html.erb +4 -4
  12. data/lib/generators/s3_cors_fileupload/install/templates/views/erb/_template_uploaded.html.erb +17 -6
  13. data/lib/generators/s3_cors_fileupload/install/templates/views/erb/index.html.erb +1 -1
  14. data/lib/generators/s3_cors_fileupload/install/templates/views/haml/_template_download.html.haml +14 -4
  15. data/lib/generators/s3_cors_fileupload/install/templates/views/haml/_template_upload.html.haml +5 -5
  16. data/lib/generators/s3_cors_fileupload/install/templates/views/haml/_template_uploaded.html.haml +12 -1
  17. data/lib/generators/s3_cors_fileupload/install/templates/views/haml/index.html.haml +1 -1
  18. data/lib/s3_cors_fileupload.rb +6 -0
  19. data/lib/s3_cors_fileupload/rails.rb +1 -1
  20. data/lib/s3_cors_fileupload/rails/form_helper.rb +15 -12
  21. data/lib/s3_cors_fileupload/version.rb +3 -3
  22. data/s3_cors_fileupload.gemspec +3 -4
  23. data/spec/dummy/Rakefile +0 -1
  24. data/spec/dummy/app/assets/javascripts/application.js +4 -3
  25. data/spec/dummy/app/assets/javascripts/s3_uploads.js +92 -0
  26. data/spec/dummy/app/assets/stylesheets/application.css +1 -0
  27. data/spec/dummy/app/controllers/application_controller.rb +3 -1
  28. data/spec/dummy/app/controllers/s3_uploads_controller.rb +56 -0
  29. data/spec/dummy/app/models/source_file.rb +54 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +2 -2
  31. data/spec/dummy/app/views/s3_uploads/_template_download.html.erb +43 -0
  32. data/spec/dummy/app/views/s3_uploads/_template_upload.html.erb +36 -0
  33. data/spec/dummy/app/views/s3_uploads/_template_uploaded.html.erb +41 -0
  34. data/spec/dummy/app/views/s3_uploads/index.html.erb +41 -0
  35. data/spec/dummy/bin/bundle +3 -0
  36. data/spec/dummy/bin/rails +4 -0
  37. data/spec/dummy/bin/rake +4 -0
  38. data/spec/dummy/config.ru +1 -1
  39. data/spec/dummy/config/application.rb +2 -33
  40. data/spec/dummy/config/boot.rb +4 -9
  41. data/spec/dummy/config/environment.rb +2 -2
  42. data/spec/dummy/config/environments/development.rb +14 -19
  43. data/spec/dummy/config/environments/production.rb +40 -27
  44. data/spec/dummy/config/environments/test.rb +14 -12
  45. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  46. data/spec/dummy/config/initializers/inflections.rb +6 -5
  47. data/spec/dummy/config/initializers/secret_token.rb +7 -2
  48. data/spec/dummy/config/initializers/session_store.rb +0 -5
  49. data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
  50. data/spec/dummy/config/locales/en.yml +20 -2
  51. data/spec/dummy/config/routes.rb +27 -24
  52. data/spec/dummy/db/migrate/20131001201535_create_source_files.rb +14 -0
  53. data/spec/dummy/db/schema.rb +27 -0
  54. data/spec/dummy/public/404.html +43 -11
  55. data/spec/dummy/public/422.html +43 -11
  56. data/spec/dummy/public/500.html +43 -11
  57. data/spec/features/uploads_spec.rb +37 -0
  58. data/spec/lib/s3_cors_fileupload/rails/engine_spec.rb +8 -0
  59. data/spec/lib/s3_cors_fileupload/rails/form_helper_spec.rb +30 -0
  60. data/spec/lib/s3_cors_fileupload/rails/policy_helper_spec.rb +95 -0
  61. data/spec/s3_cors_fileupload_spec.rb +8 -4
  62. data/spec/spec_helper.rb +8 -8
  63. data/spec/support/dummy.pdf +0 -0
  64. data/vendor/assets/javascripts/s3_cors_fileupload/index.js +1 -0
  65. data/vendor/assets/javascripts/s3_cors_fileupload/jquery.fileupload-image.js +111 -32
  66. data/vendor/assets/javascripts/s3_cors_fileupload/jquery.fileupload-ui.js +24 -18
  67. data/vendor/assets/javascripts/s3_cors_fileupload/jquery.fileupload-validate.js +7 -6
  68. data/vendor/assets/javascripts/s3_cors_fileupload/jquery.fileupload.js +22 -15
  69. data/vendor/assets/javascripts/s3_cors_fileupload/vendor/load-image-meta.js +137 -0
  70. data/vendor/assets/javascripts/s3_cors_fileupload/vendor/tmpl.js +8 -8
  71. data/vendor/assets/stylesheets/jquery.fileupload-ui.css.erb +2 -1
  72. metadata +56 -28
  73. data/spec/dummy/script/rails +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1663604ff16d796357b7403b636742f6e24918bb
4
- data.tar.gz: e57aa2433e8b7bc6d9dd2310eef4d3c618e0fb54
3
+ metadata.gz: 4b847b99b1ab87ff28551afbc29835bae6d05ade
4
+ data.tar.gz: d9329093fdede0b711a306514b69304b85ad2b8e
5
5
  SHA512:
6
- metadata.gz: 5151172fdf0783b98a8a5f49230387c7bdc1856ccdf6840c4a657b814ed127af593e2e3ad2265bf76361fb9728f17b05935fbe5eb6dda2d89309c6dac462eaae
7
- data.tar.gz: 1c609d8679a456000135604c3f008b1986290529fabf70e6b840ef08903a86d2399e345b77525afcd72e0f8373cfa76b733932af298070a99c215ea4ddae892d
6
+ metadata.gz: f5aec54483c76bf143514a86f90c0ba792838635b7e4744f3c71099d6116a179f201b879add769631f11ed45bf2ea8364930cb50df5223d6ec2d76bee4e0ec87
7
+ data.tar.gz: 63a8cc7ec0cd76e0d287e3b1f16bd5ddc9e2063170da7e953ea1856bbace1dcfb903076ba86390986a8dbd056985963c601f6b88a1a10a71b5632436b6ed73dd
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
@@ -1,11 +1,18 @@
1
- ## 0.3.0 (Unreleased)
2
-
1
+ ## 0.3.0
2
+
3
+ - Rails 4 compatibility.
4
+ - Upgraded jQuery-File-Upload and corresponding JavaScript dependencies to most recent releases
5
+ (see [lib/s3\_cors\_fileupload/version.rb](https://github.com/fullbridge-batkins/s3_cors_fileupload/blob/master/lib/s3_cors_fileupload/version.rb) for the current version #'s)
6
+ - Updated to [Twitter Bootstrap](http://twitter.github.com/bootstrap/) 3.
7
+ - Added new `:secure` option that can be passed into the `FormHelper`'s `s3_cors_fileupload_form_tag` method to set the protocol to `http` or `https` (defaults to `https`).
8
+ - Removed dependency on [jquery-rails](https://github.com/rails/jquery-rails), since there are other valid solutions for including it to a Rails app.
3
9
  - Added a lot more spec coverage.
4
10
 
5
11
  ## 0.2.1
6
12
 
7
13
  - Adjusted FormHelper module so that the 'Add files...' button is a `span` tag instead of a `button` tag (fixes compatibility with FireFox)
8
- - Upgraded jQuery-File-Upload and the other JavaScript files it is dependent upon to the most recent releases (see [lib/s3\_cors\_fileupload/version.rb](https://github.com/fullbridge-batkins/s3_cors_fileupload/blob/master/lib/s3_cors_fileupload/version.rb) for the current version #'s)
14
+ - Upgraded jQuery-File-Upload and the other JavaScript files it is dependent upon to the most recent releases
15
+ (see [lib/s3\_cors\_fileupload/version.rb](https://github.com/fullbridge-batkins/s3_cors_fileupload/blob/v0.2.1/lib/s3_cors_fileupload/version.rb) for the current version #'s)
9
16
  - Added new Process and Validation plugins from the jQuery-File-Upload package.
10
17
  - Minor stability enhancements.
11
18
 
data/Gemfile CHANGED
@@ -1,19 +1,21 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  group :development do
4
- gem 'rdoc', '~> 3.12'
4
+ gem 'rdoc', '~> 4.0'
5
5
  gem 'gem-release', '~> 0.6'
6
6
  end
7
7
 
8
8
  group :test do
9
- gem 'rspec-rails', '~> 2.13'
10
- gem 'shoulda-matchers', '~> 2.0'
11
- gem 'generator_spec'
12
- gem 'ffaker'
13
-
14
9
  # dependencies for S3CorsFileUpload
15
- gem 'rails', '~> 3.2'
16
- # gem 'jquery-rails' # would be necessary to do UI testing on the dummy app
17
- gem 'sqlite3' # the database driver for rails
10
+ gem 'rails', '~> 4.0'
18
11
  gem 'aws-s3'
12
+ gem 'sqlite3' # the database driver for rails
13
+ gem 'jquery-rails' # for including jQuery into the dummy app
14
+
15
+ gem 'rspec-rails', '~> 2.14'
16
+ gem 'shoulda-matchers', '~> 2.4'
17
+ gem 'generator_spec'
18
+ gem 'ffaker'
19
+ gem 'capybara'
20
+ gem 'poltergeist' # to use as JS driver for Capybara
19
21
  end
@@ -1,86 +1,95 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- actionmailer (3.2.13)
5
- actionpack (= 3.2.13)
4
+ actionmailer (4.0.0)
5
+ actionpack (= 4.0.0)
6
6
  mail (~> 2.5.3)
7
- actionpack (3.2.13)
8
- activemodel (= 3.2.13)
9
- activesupport (= 3.2.13)
10
- builder (~> 3.0.0)
7
+ actionpack (4.0.0)
8
+ activesupport (= 4.0.0)
9
+ builder (~> 3.1.0)
11
10
  erubis (~> 2.7.0)
12
- journey (~> 1.0.4)
13
- rack (~> 1.4.5)
14
- rack-cache (~> 1.2)
15
- rack-test (~> 0.6.1)
16
- sprockets (~> 2.2.1)
17
- activemodel (3.2.13)
18
- activesupport (= 3.2.13)
19
- builder (~> 3.0.0)
20
- activerecord (3.2.13)
21
- activemodel (= 3.2.13)
22
- activesupport (= 3.2.13)
23
- arel (~> 3.0.2)
24
- tzinfo (~> 0.3.29)
25
- activeresource (3.2.13)
26
- activemodel (= 3.2.13)
27
- activesupport (= 3.2.13)
28
- activesupport (3.2.13)
29
- i18n (= 0.6.1)
30
- multi_json (~> 1.0)
31
- arel (3.0.2)
11
+ rack (~> 1.5.2)
12
+ rack-test (~> 0.6.2)
13
+ activemodel (4.0.0)
14
+ activesupport (= 4.0.0)
15
+ builder (~> 3.1.0)
16
+ activerecord (4.0.0)
17
+ activemodel (= 4.0.0)
18
+ activerecord-deprecated_finders (~> 1.0.2)
19
+ activesupport (= 4.0.0)
20
+ arel (~> 4.0.0)
21
+ activerecord-deprecated_finders (1.0.3)
22
+ activesupport (4.0.0)
23
+ i18n (~> 0.6, >= 0.6.4)
24
+ minitest (~> 4.2)
25
+ multi_json (~> 1.3)
26
+ thread_safe (~> 0.1)
27
+ tzinfo (~> 0.3.37)
28
+ arel (4.0.0)
29
+ atomic (1.1.14)
32
30
  aws-s3 (0.6.3)
33
31
  builder
34
32
  mime-types
35
33
  xml-simple
36
- builder (3.0.4)
34
+ builder (3.1.4)
35
+ capybara (2.1.0)
36
+ mime-types (>= 1.16)
37
+ nokogiri (>= 1.3.3)
38
+ rack (>= 1.0.0)
39
+ rack-test (>= 0.5.4)
40
+ xpath (~> 2.0)
41
+ cliver (0.2.2)
37
42
  diff-lcs (1.2.4)
38
43
  erubis (2.7.0)
39
- ffaker (1.16.2)
44
+ ffaker (1.19.0)
40
45
  gem-release (0.6.0)
41
46
  generator_spec (0.9.0)
42
47
  activerecord (>= 3.0, <= 4.0)
43
48
  railties (>= 3.0, <= 4.0)
44
49
  hike (1.2.3)
45
- i18n (0.6.1)
46
- journey (1.0.4)
50
+ i18n (0.6.5)
51
+ jquery-rails (3.0.4)
52
+ railties (>= 3.0, < 5.0)
53
+ thor (>= 0.14, < 2.0)
47
54
  json (1.8.0)
48
- mail (2.5.3)
49
- i18n (>= 0.4.0)
55
+ mail (2.5.4)
50
56
  mime-types (~> 1.16)
51
57
  treetop (~> 1.4.8)
52
- mime-types (1.23)
53
- multi_json (1.7.7)
58
+ mime-types (1.25)
59
+ mini_portile (0.5.1)
60
+ minitest (4.7.5)
61
+ multi_json (1.8.0)
62
+ nokogiri (1.6.0)
63
+ mini_portile (~> 0.5.0)
64
+ poltergeist (1.4.1)
65
+ capybara (~> 2.1.0)
66
+ cliver (~> 0.2.1)
67
+ multi_json (~> 1.0)
68
+ websocket-driver (>= 0.2.0)
54
69
  polyglot (0.3.3)
55
- rack (1.4.5)
56
- rack-cache (1.2)
57
- rack (>= 0.4)
58
- rack-ssl (1.3.3)
59
- rack
70
+ rack (1.5.2)
60
71
  rack-test (0.6.2)
61
72
  rack (>= 1.0)
62
- rails (3.2.13)
63
- actionmailer (= 3.2.13)
64
- actionpack (= 3.2.13)
65
- activerecord (= 3.2.13)
66
- activeresource (= 3.2.13)
67
- activesupport (= 3.2.13)
68
- bundler (~> 1.0)
69
- railties (= 3.2.13)
70
- railties (3.2.13)
71
- actionpack (= 3.2.13)
72
- activesupport (= 3.2.13)
73
- rack-ssl (~> 1.3.2)
73
+ rails (4.0.0)
74
+ actionmailer (= 4.0.0)
75
+ actionpack (= 4.0.0)
76
+ activerecord (= 4.0.0)
77
+ activesupport (= 4.0.0)
78
+ bundler (>= 1.3.0, < 2.0)
79
+ railties (= 4.0.0)
80
+ sprockets-rails (~> 2.0.0)
81
+ railties (4.0.0)
82
+ actionpack (= 4.0.0)
83
+ activesupport (= 4.0.0)
74
84
  rake (>= 0.8.7)
75
- rdoc (~> 3.4)
76
- thor (>= 0.14.6, < 2.0)
85
+ thor (>= 0.18.1, < 2.0)
77
86
  rake (10.1.0)
78
- rdoc (3.12.2)
87
+ rdoc (4.0.1)
79
88
  json (~> 1.4)
80
- rspec-core (2.14.3)
81
- rspec-expectations (2.14.0)
89
+ rspec-core (2.14.5)
90
+ rspec-expectations (2.14.3)
82
91
  diff-lcs (>= 1.1.3, < 2.0)
83
- rspec-mocks (2.14.1)
92
+ rspec-mocks (2.14.3)
84
93
  rspec-rails (2.14.0)
85
94
  actionpack (>= 3.0)
86
95
  activesupport (>= 3.0)
@@ -88,32 +97,44 @@ GEM
88
97
  rspec-core (~> 2.14.0)
89
98
  rspec-expectations (~> 2.14.0)
90
99
  rspec-mocks (~> 2.14.0)
91
- shoulda-matchers (2.2.0)
100
+ shoulda-matchers (2.4.0)
92
101
  activesupport (>= 3.0.0)
93
- sprockets (2.2.2)
102
+ sprockets (2.10.0)
94
103
  hike (~> 1.2)
95
104
  multi_json (~> 1.0)
96
105
  rack (~> 1.0)
97
106
  tilt (~> 1.1, != 1.3.0)
98
- sqlite3 (1.3.7)
107
+ sprockets-rails (2.0.0)
108
+ actionpack (>= 3.0)
109
+ activesupport (>= 3.0)
110
+ sprockets (~> 2.8)
111
+ sqlite3 (1.3.8)
99
112
  thor (0.18.1)
113
+ thread_safe (0.1.3)
114
+ atomic
100
115
  tilt (1.4.1)
101
- treetop (1.4.12)
116
+ treetop (1.4.15)
102
117
  polyglot
103
118
  polyglot (>= 0.3.1)
104
119
  tzinfo (0.3.37)
120
+ websocket-driver (0.3.0)
105
121
  xml-simple (1.1.2)
122
+ xpath (2.0.0)
123
+ nokogiri (~> 1.3)
106
124
 
107
125
  PLATFORMS
108
126
  ruby
109
127
 
110
128
  DEPENDENCIES
111
129
  aws-s3
130
+ capybara
112
131
  ffaker
113
132
  gem-release (~> 0.6)
114
133
  generator_spec
115
- rails (~> 3.2)
116
- rdoc (~> 3.12)
117
- rspec-rails (~> 2.13)
118
- shoulda-matchers (~> 2.0)
134
+ jquery-rails
135
+ poltergeist
136
+ rails (~> 4.0)
137
+ rdoc (~> 4.0)
138
+ rspec-rails (~> 2.14)
139
+ shoulda-matchers (~> 2.4)
119
140
  sqlite3
data/README.md CHANGED
@@ -1,19 +1,23 @@
1
- # S3CorsFileupload
1
+ # S3CorsFileupload [![Gem Version](https://badge.fury.io/rb/s3_cors_fileupload.png)](http://badge.fury.io/rb/s3_cors_fileupload) [![Build Status](https://travis-ci.org/fullbridge-batkins/s3_cors_fileupload.png?branch=master)](https://travis-ci.org/fullbridge-batkins/s3_cors_fileupload)
2
2
 
3
3
  A gem to allow for uploading of files to directly AWS-S3 via [CORS](http://www.w3.org/TR/cors/) using the
4
4
  [jQuery-File-Upload javascript](http://blueimp.github.com/jQuery-File-Upload/) for Rails 3.1 and greater.
5
5
 
6
+ *Note: your application must include [jQuery](http://jquery.com/) for the plugin to work properly,
7
+ either through the [`jquery-rails` gem](https://github.com/rails/jquery-rails), or some other means.*
8
+
6
9
  ### Included JavaScript plugin versions
7
10
 
8
- * jQuery File Upload User Interface Plugin 8.5.0
9
- * jQuery File Upload Plugin 5.32.0
11
+ * jQuery File Upload User Interface Plugin 8.8.5
12
+ * jQuery File Upload Plugin 5.32.6
10
13
  * jQuery UI Widget 1.10.3+amd
11
14
 
12
15
  ### Upgrade notes for `0.2` (and higher) releases
13
16
 
14
17
  If you are upgrading from an older version, please re-run the install generator with the `--skip-migration` option.
15
18
  The view templates (`_template_download`, `_template_upload`, `_template_uploaded`) often change to stay compatible with
16
- the new version(s) of the jQuery-File-Upload UI JavaScript.
19
+ the new version(s) of the jQuery-File-Upload UI JavaScript. You will also need to re-compile your asset pipeline assets to
20
+ get the latest versions of the javascript plugins if you precompile your assets.
17
21
 
18
22
  ## Installation
19
23
  Add this line to your application's Gemfile:
@@ -1,12 +1,11 @@
1
1
  require 'rails/generators'
2
2
  require 'rails/generators/migration'
3
- require 'rails/generators/active_record/migration'
3
+ require 'rails/generators/active_record'
4
4
 
5
5
  module S3CorsFileupload
6
6
  module Generators
7
7
  class InstallGenerator < ::Rails::Generators::Base
8
8
  include ::Rails::Generators::Migration
9
- extend ActiveRecord::Generators::Migration
10
9
 
11
10
  VALID_TEMPLATE_LANGS = [:erb, :haml]
12
11
 
@@ -50,6 +49,10 @@ module S3CorsFileupload
50
49
  )
51
50
  end
52
51
 
52
+ def self.next_migration_number(dirname)
53
+ ActiveRecord::Generators::Base.next_migration_number(dirname)
54
+ end
55
+
53
56
  end
54
57
  end
55
58
  end
@@ -13,7 +13,9 @@ class S3UploadsController < ApplicationController
13
13
  # POST /source_files
14
14
  # POST /source_files.json
15
15
  def create
16
- @source_file = SourceFile.new(params[:source_file])
16
+ # this line allows for compatibility with `ProtectedAttributes` or `StrongParameters`
17
+ parameters = S3CorsFileupload.active_record_protected_attributes? ? params[:source_file] : params.require(:source_file).permit(:url, :bucket, :key)
18
+ @source_file = SourceFile.new(parameters)
17
19
  respond_to do |format|
18
20
  if @source_file.save
19
21
  format.html {
@@ -1,7 +1,8 @@
1
1
  require 'aws/s3'
2
2
 
3
3
  class SourceFile < ActiveRecord::Base
4
- attr_accessible :url, :bucket, :key
4
+ # This line can be removed for Rails 4 apps that are using Strong Parameters
5
+ attr_accessible :url, :bucket, :key if S3CorsFileupload.active_record_protected_attributes?
5
6
 
6
7
  validates_presence_of :file_name, :file_content_type, :file_size, :key, :bucket
7
8
 
@@ -9,8 +10,8 @@ class SourceFile < ActiveRecord::Base
9
10
  self.file_name = key.split('/').last if key
10
11
  # for some reason, the response from AWS seems to escape the slashes in the keys, this line will unescape the slash
11
12
  self.url = url.gsub(/%2F/, '/') if url
12
- self.file_size ||= s3_object.try(:size)
13
- self.file_content_type ||= s3_object.try(:content_type)
13
+ self.file_size ||= s3_object.size rescue nil
14
+ self.file_content_type ||= s3_object.content_type rescue nil
14
15
  end
15
16
  # make all attributes readonly after creating the record (not sure we need this?)
16
17
  after_create { readonly! }
@@ -11,21 +11,32 @@
11
11
  </td>
12
12
  <td>
13
13
  <p class="name">
14
- <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl ? 'data-gallery' : ''%}>{%=file.name%}</a>
14
+ {% if (file.url) { %}
15
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl ? 'data-gallery' : ''%}>{%=file.name%}</a>
16
+ {% } else { %}
17
+ <span>{%=file.name%}</span>
18
+ {% } %}
15
19
  </p>
16
20
  {% if (file.error) { %}
17
- <div><span class="label label-important">Error</span> {%=file.error%}</div>
21
+ <div><span class="label label-danger">Error</span> {%=file.error%}</div>
18
22
  {% } %}
19
23
  </td>
20
24
  <td>
21
25
  <span class="size">{%=o.formatFileSize(file.size)%}</span>
22
26
  </td>
23
27
  <td>
24
- <button class="btn btn-danger delete" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}" data-confirmation="Are you sure?" {% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
25
- <i class="icon-trash icon-white"></i>
26
- <span>Delete</span>
27
- </button>
28
- <input type="checkbox" name="delete" value="1" class="toggle">
28
+ {% if (file.deleteUrl) { %}
29
+ <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}" data-confirmation="Are you sure?" {% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
30
+ <i class="glyphicon glyphicon-trash"></i>
31
+ <span>Delete</span>
32
+ </button>
33
+ <input type="checkbox" name="delete" value="1" class="toggle">
34
+ {% } else { %}
35
+ <button class="btn btn-warning cancel">
36
+ <i class="glyphicon glyphicon-ban-circle"></i>
37
+ <span>Cancel</span>
38
+ </button>
39
+ {% } %}
29
40
  </td>
30
41
  </tr>
31
42
  {% } %}
@@ -8,25 +8,25 @@
8
8
  <td>
9
9
  <p class="name">{%=file.name%}</p>
10
10
  {% if (file.error) { %}
11
- <div><span class="label label-important">Error</span> {%=file.error%}</div>
11
+ <div><span class="label label-danger">Error</span> {%=file.error%}</div>
12
12
  {% } %}
13
13
  </td>
14
14
  <td>
15
15
  <p class="size">{%=o.formatFileSize(file.size)%}</p>
16
16
  {% if (!o.files.error) { %}
17
- <div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div>
17
+ <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
18
18
  {% } %}
19
19
  </td>
20
20
  <td>
21
21
  {% if (!o.files.error && !i && !o.options.autoUpload) { %}
22
22
  <button class="btn btn-primary start">
23
- <i class="icon-upload icon-white"></i>
23
+ <i class="glyphicon glyphicon-upload"></i>
24
24
  <span>Start</span>
25
25
  </button>
26
26
  {% } %}
27
27
  {% if (!i) { %}
28
28
  <button class="btn btn-warning cancel">
29
- <i class="icon-ban-circle icon-white"></i>
29
+ <i class="glyphicon glyphicon-ban-circle"></i>
30
30
  <span>Cancel</span>
31
31
  </button>
32
32
  {% } %}
@@ -13,18 +13,29 @@
13
13
  </td>
14
14
  <td>
15
15
  <p class="name">
16
- <a href="{%=o.url%}" title="{%=o.name%}" download="{%=o.name%}" {%=o.image ? 'data-gallery' : ''%}>{%=o.name%}</a>
16
+ {% if (o.url) { %}
17
+ <a href="{%=o.url%}" title="{%=o.name%}" download="{%=o.name%}" {%=o.image ? 'data-gallery' : ''%}>{%=o.name%}</a>
18
+ {% } else { %}
19
+ <span>{%=o.name%}</span>
20
+ {% } %}
17
21
  </p>
18
22
  </td>
19
23
  <td>
20
24
  <span class="size">{%=formatFileSize(o.size)%}</span>
21
25
  </td>
22
26
  <td>
23
- <button class="btn btn-danger delete" data-type="DELETE" data-url="{%=o.delete_url%}" data-object_id="{%=o.id%}" data-confirmation="Are you sure?" {% if (o.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
24
- <i class="icon-trash icon-white"></i>
25
- <span>Delete</span>
26
- </button>
27
- <input type="checkbox" name="delete" value="1" class="toggle">
27
+ {% if (o.delete_url) { %}
28
+ <button class="btn btn-danger delete" data-type="DELETE" data-url="{%=o.delete_url%}" data-object_id="{%=o.id%}" data-confirmation="Are you sure?" {% if (o.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
29
+ <i class="glyphicon glyphicon-trash"></i>
30
+ <span>Delete</span>
31
+ </button>
32
+ <input type="checkbox" name="delete" value="1" class="toggle">
33
+ {% } else { %}
34
+ <button class="btn btn-warning cancel">
35
+ <i class="glyphicon glyphicon-ban-circle"></i>
36
+ <span>Cancel</span>
37
+ </button>
38
+ {% } %}
28
39
  </td>
29
40
  </tr>
30
41
  </script>