Merge branch 'develop_2.0' into JSONEditor
Conflicts: dist/swagger-ui.js dist/swagger-ui.min.js
This commit is contained in:
@@ -599,6 +599,8 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
|
|||||||
if (!content) {
|
if (!content) {
|
||||||
code = $('<code />').text('no content');
|
code = $('<code />').text('no content');
|
||||||
pre = $('<pre class="json" />').append(code);
|
pre = $('<pre class="json" />').append(code);
|
||||||
|
|
||||||
|
// JSON
|
||||||
} else if (contentType === 'application/json' || /\+json$/.test(contentType)) {
|
} else if (contentType === 'application/json' || /\+json$/.test(contentType)) {
|
||||||
var json = null;
|
var json = null;
|
||||||
try {
|
try {
|
||||||
@@ -608,16 +610,53 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
|
|||||||
}
|
}
|
||||||
code = $('<code />').text(json);
|
code = $('<code />').text(json);
|
||||||
pre = $('<pre class="json" />').append(code);
|
pre = $('<pre class="json" />').append(code);
|
||||||
|
|
||||||
|
// XML
|
||||||
} else if (contentType === 'application/xml' || /\+xml$/.test(contentType)) {
|
} else if (contentType === 'application/xml' || /\+xml$/.test(contentType)) {
|
||||||
code = $('<code />').text(this.formatXml(content));
|
code = $('<code />').text(this.formatXml(content));
|
||||||
pre = $('<pre class="xml" />').append(code);
|
pre = $('<pre class="xml" />').append(code);
|
||||||
|
|
||||||
|
// HTML
|
||||||
} else if (contentType === 'text/html') {
|
} else if (contentType === 'text/html') {
|
||||||
code = $('<code />').html(_.escape(content));
|
code = $('<code />').html(_.escape(content));
|
||||||
pre = $('<pre class="xml" />').append(code);
|
pre = $('<pre class="xml" />').append(code);
|
||||||
|
|
||||||
|
// Image
|
||||||
} else if (/^image\//.test(contentType)) {
|
} else if (/^image\//.test(contentType)) {
|
||||||
pre = $('<img>').attr('src', url);
|
pre = $('<img>').attr('src', url);
|
||||||
|
|
||||||
|
// Audio
|
||||||
} else if (/^audio\//.test(contentType) && supportsAudioPlayback(contentType)) {
|
} else if (/^audio\//.test(contentType) && supportsAudioPlayback(contentType)) {
|
||||||
pre = $('<audio controls>').append($('<source>').attr('src', url).attr('type', contentType));
|
pre = $('<audio controls>').append($('<source>').attr('src', url).attr('type', contentType));
|
||||||
|
|
||||||
|
// Download
|
||||||
|
} else if (headers['Content-Disposition'].test(/attachment/) ||
|
||||||
|
headers['content-disposition'].test(/attachment/) ||
|
||||||
|
headers['Content-Description'].test(/File Transfer/) ||
|
||||||
|
headers['content-description'].test(/File Transfer/)) {
|
||||||
|
|
||||||
|
if ('Blob' in window) {
|
||||||
|
var type = contentType || 'text/html';
|
||||||
|
var blob = new Blob([content], {type: type});
|
||||||
|
var a = document.createElement('a');
|
||||||
|
var href = window.URL.createObjectURL(blob);
|
||||||
|
var fileName = response.url.substr(response.url.lastIndexOf('/') + 1);
|
||||||
|
var download = [type, fileName, href].join(':');
|
||||||
|
|
||||||
|
a.setAttribute('href', href);
|
||||||
|
a.setAttribute('download', download);
|
||||||
|
a.innerText = 'Download ' + fileName;
|
||||||
|
|
||||||
|
pre = $('<div/>').append(a);
|
||||||
|
} else {
|
||||||
|
pre = $('<pre class="json" />').append('Download headers detected but your browser does not support downloading binary via XHR (Blob).');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Location header based redirect download
|
||||||
|
} else if(headers.location || headers.Location) {
|
||||||
|
window.location = response.url;
|
||||||
|
|
||||||
|
// Anything else (CORS)
|
||||||
} else {
|
} else {
|
||||||
code = $('<code />').text(content);
|
code = $('<code />').text(content);
|
||||||
pre = $('<pre class="json" />').append(code);
|
pre = $('<pre class="json" />').append(code);
|
||||||
|
|||||||
Reference in New Issue
Block a user