attache_rails 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 932312b847166dad18dae52549e4c073146459dd
4
- data.tar.gz: 0fba6572f2b42e787e3bc233bff0c1d3f90e99b4
3
+ metadata.gz: 7c05f1c9700fcff236abe554ee5bff029d799dff
4
+ data.tar.gz: 688d2432bdb57cfa15cedafe56d0dec0deb461b5
5
5
  SHA512:
6
- metadata.gz: 59b6a2f58079769e9672cc78ba92d18201a1bf5afbf88ae7f4b3e5ef8bd987f06a48aa6eb7002701cca70f26f21757d79a2b4d16c6c536b267b503372a1cca9e
7
- data.tar.gz: e983776f2a327a6677c9c3f7a13373c0b1647974391274a606814cb2a8d241a7ec283c81199c1e61e8f327aa1813404ffbbeae219a0170b2118ca4a2c8f6096a
6
+ metadata.gz: 48a55b14c595316bd139959a225f6d5e9d93b5da87ca5fd95089c7b1b144f482af0143b6ff995e32d88fb4a30c2974b7f446c3845a783e25a080cbebf807eca6
7
+ data.tar.gz: 81d5d5005af6e89b301852a0af93a1aa3315d6f733ae64aa7bc6c7da323d8bb95dc5b894ef78799ef7da0b90ff44c87a0bc0e7491448022eb11e0b4360ad98b5
@@ -113,8 +113,9 @@ var AttacheFileInput = React.createClass({displayName: "AttacheFileInput",
113
113
  result.src = that.props['data-downloadurl'] + '/' + parts.join('/');
114
114
  result.filename = result.src.split('/').pop().split(/[#?]/).shift();
115
115
  }
116
+ var previewKey = "preview" + key;
116
117
  previews.push(
117
- React.createElement("div", {className: "attache-file-input"},
118
+ React.createElement("div", {key: previewKey, className: "attache-file-input"},
118
119
  React.createElement("input", {type: "hidden", name: that.props.name, value: json, readOnly: "true"}),
119
120
  React.createElement(Preview, React.__spread({}, result, {key: key, onRemove: that.onRemove.bind(that, key)}))
120
121
  )
@@ -124,14 +125,15 @@ var AttacheFileInput = React.createClass({displayName: "AttacheFileInput",
124
125
  var placeholders = [];
125
126
  if (previews.length == 0 && that.props['data-placeholder']) $.each(JSON.parse(that.props['data-placeholder']), function(uid, src) {
126
127
  placeholders.push(
127
- React.createElement(Placeholder, React.__spread({}, that.props, {src: src}))
128
+ React.createElement(Placeholder, React.__spread({key: "placeholder"}, that.props, {src: src}))
128
129
  );
129
130
  });
130
131
 
131
132
  var discards = [];
132
133
  $.each(that.state.attaches_discarded, function(index, discard) {
134
+ var discardKey = "discard" + discard.path;
133
135
  discards.push(
134
- React.createElement("input", {type: "hidden", name: discard.fieldname, value: discard.path})
136
+ React.createElement("input", {key: discardKey, type: "hidden", name: discard.fieldname, value: discard.path})
135
137
  );
136
138
  });
137
139
 
@@ -113,8 +113,9 @@ var AttacheFileInput = React.createClass({
113
113
  result.src = that.props['data-downloadurl'] + '/' + parts.join('/');
114
114
  result.filename = result.src.split('/').pop().split(/[#?]/).shift();
115
115
  }
116
+ var previewKey = "preview" + key;
116
117
  previews.push(
117
- <div className="attache-file-input">
118
+ <div key={previewKey} className="attache-file-input">
118
119
  <input type="hidden" name={that.props.name} value={json} readOnly="true" />
119
120
  <Preview {...result} key={key} onRemove={that.onRemove.bind(that, key)}/>
120
121
  </div>
@@ -124,14 +125,15 @@ var AttacheFileInput = React.createClass({
124
125
  var placeholders = [];
125
126
  if (previews.length == 0 && that.props['data-placeholder']) $.each(JSON.parse(that.props['data-placeholder']), function(uid, src) {
126
127
  placeholders.push(
127
- <Placeholder {...that.props} src={src} />
128
+ <Placeholder key="placeholder" {...that.props} src={src} />
128
129
  );
129
130
  });
130
131
 
131
132
  var discards = [];
132
133
  $.each(that.state.attaches_discarded, function(index, discard) {
134
+ var discardKey = "discard" + discard.path;
133
135
  discards.push(
134
- <input type="hidden" name={discard.fieldname} value={discard.path} />
136
+ <input key={discardKey} type="hidden" name={discard.fieldname} value={discard.path} />
135
137
  );
136
138
  });
137
139
 
@@ -21,7 +21,10 @@ module AttacheRails
21
21
 
22
22
  def attache_upload_and_get_json(readable)
23
23
  uri = URI.parse(ATTACHE_UPLOAD_URL)
24
- uri.query = { file: (readable.try(:original_filename) || 'noname'), **attache_auth_options }.collect {|k,v|
24
+ original_filename = readable.try(:original_filename) ||
25
+ readable.try(:path) && File.basename(readable.try(:path)) ||
26
+ 'noname'
27
+ uri.query = { file: original_filename, **attache_auth_options }.collect {|k,v|
25
28
  CGI.escape(k.to_s) + "=" + CGI.escape(v.to_s)
26
29
  }.join('&')
27
30
  attache_retry_doing(3) { HTTPClient.post(uri, readable, {'Content-Type' => 'binary/octet-stream'}).body }
@@ -30,7 +33,7 @@ module AttacheRails
30
33
  def attache_url_for(json_string, geometry)
31
34
  JSON.parse(json_string).tap do |attrs|
32
35
  prefix, basename = File.split(attrs['path'])
33
- attrs['url'] = [ATTACHE_DOWNLOAD_URL, prefix, CGI.escape(geometry), basename].join('/')
36
+ attrs['url'] = [ATTACHE_DOWNLOAD_URL, prefix, CGI.escape(geometry), CGI.escape(basename)].join('/')
34
37
  end
35
38
  end
36
39
 
@@ -1,3 +1,3 @@
1
1
  module AttacheRails
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attache_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - choonkeat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-15 00:00:00.000000000 Z
11
+ date: 2015-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails