Skip to content

Commit 05588bb

Browse files
committed
fix for upload with no files
1 parent f7694d8 commit 05588bb

File tree

5 files changed

+20
-8
lines changed

5 files changed

+20
-8
lines changed

dist/lib/swagger.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,7 @@ SwaggerOperation.prototype.pathXml = function() {
904904

905905
SwaggerOperation.prototype.encodePathParam = function(pathParam) {
906906
var encParts, part, parts, _i, _len;
907+
pathParam = pathParam.toString();
907908
if (pathParam.indexOf("/") === -1) {
908909
return encodeURIComponent(pathParam);
909910
} else {
@@ -1524,4 +1525,3 @@ e.SwaggerModel = SwaggerModel;
15241525
e.SwaggerModelProperty = SwaggerModelProperty;
15251526
e.SwaggerResource = SwaggerResource;
15261527
e.SwaggerApi = SwaggerApi;
1527-

dist/swagger-ui.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// swagger-ui.js
2+
23
$(function() {
34

45
// Helper function for vertically aligning DOM elements
@@ -1731,9 +1732,8 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
17311732
};
17321733

17331734
OperationView.prototype.handleFileUpload = function(map, form) {
1734-
var bodyParam, el, headerParams, o, obj, param, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8,
1735+
var bodyParam, el, headerParams, o, obj, param, params, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8,
17351736
_this = this;
1736-
log("it's a file upload");
17371737
_ref5 = form.serializeArray();
17381738
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
17391739
o = _ref5[_i];
@@ -1742,6 +1742,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
17421742
}
17431743
}
17441744
bodyParam = new FormData();
1745+
params = 0;
17451746
_ref6 = this.model.parameters;
17461747
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
17471748
param = _ref6[_j];
@@ -1763,7 +1764,10 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
17631764
_ref8 = form.find('input[type~="file"]');
17641765
for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) {
17651766
el = _ref8[_l];
1766-
bodyParam.append($(el).attr('name'), el.files[0]);
1767+
if (typeof el.files[0] !== 'undefined') {
1768+
bodyParam.append($(el).attr('name'), el.files[0]);
1769+
params += 1;
1770+
}
17671771
}
17681772
log(bodyParam);
17691773
this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), this.model.urlify(map, false)) : this.model.urlify(map, true);
@@ -1789,6 +1793,9 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
17891793
if (window.authorizations) {
17901794
window.authorizations.apply(obj);
17911795
}
1796+
if (params === 0) {
1797+
obj.data.append("fake", "true");
1798+
}
17921799
jQuery.ajax(obj);
17931800
return false;
17941801
};

dist/swagger-ui.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/swagger.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,7 @@ SwaggerOperation.prototype.pathXml = function() {
904904

905905
SwaggerOperation.prototype.encodePathParam = function(pathParam) {
906906
var encParts, part, parts, _i, _len;
907+
pathParam = pathParam.toString();
907908
if (pathParam.indexOf("/") === -1) {
908909
return encodeURIComponent(pathParam);
909910
} else {
@@ -1524,4 +1525,3 @@ e.SwaggerModel = SwaggerModel;
15241525
e.SwaggerModelProperty = SwaggerModelProperty;
15251526
e.SwaggerResource = SwaggerResource;
15261527
e.SwaggerApi = SwaggerApi;
1527-

src/main/coffeescript/view/OperationView.coffee

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ class OperationView extends Backbone.View
151151
parent.showCompleteStatus response
152152

153153
handleFileUpload: (map, form) ->
154-
log "it's a file upload"
155154
for o in form.serializeArray()
156155
if(o.value? && jQuery.trim(o.value).length > 0)
157156
map[o.name] = o.value
158157

159158
# requires HTML5 compatible browser
160159
bodyParam = new FormData()
160+
params = 0
161161

162162
# add params
163163
for param in @model.parameters
@@ -175,7 +175,9 @@ class OperationView extends Backbone.View
175175

176176
# add files
177177
for el in form.find('input[type~="file"]')
178-
bodyParam.append($(el).attr('name'), el.files[0])
178+
if typeof el.files[0] isnt 'undefined'
179+
bodyParam.append($(el).attr('name'), el.files[0])
180+
params += 1
179181

180182
log(bodyParam)
181183

@@ -207,6 +209,9 @@ class OperationView extends Backbone.View
207209
if window.authorizations
208210
window.authorizations.apply obj
209211

212+
if params is 0
213+
obj.data.append("fake", "true");
214+
210215
jQuery.ajax(obj)
211216
false
212217
# end of file-upload nastiness

0 commit comments

Comments
 (0)