Compare commits

..
36 Commits
Author SHA1 Message Date
Tony Tam 65a5bc34eb updated swagger-js per https://github.com/wordnik/swagger-ui/pull/394#issuecomment-35181116 https://github.com/wordnik/swagger-ui/pull/394#issuecomment-35181116 2014-02-16 07:58:18 -08:00
Tony Tam cc49093471 updated swagger-js versions 2014-02-13 14:11:31 -08:00
Tony Tam b336076a19 updated version 2014-02-12 07:38:49 -08:00
Tony Tam b8943665a2 updated client to 2.0.13 2014-02-12 07:37:41 -08:00
Tony Tam 0c0ffc569f updated swagger-client 2014-02-03 22:25:57 -08:00
Tony Tam 18ce470f12 merge of #369, https://github.com/wordnik/swagger-js/issues/74 2014-02-03 17:51:05 -08:00
Tony Tam 53593b796e fix for #387 2014-02-03 16:20:07 -08:00
Tony Tam 2378b176f5 fix for #388 2014-02-03 08:28:22 -08:00
Tony Tam 7dd5142df2 fix for #381 2014-01-27 07:13:12 -08:00
Tony Tam 6b400b22fe updated version 2014-01-23 20:40:40 -08:00
Tony Tam c22d94b940 updated swagger-js client, support for IE8 2014-01-23 20:40:10 -08:00
Tony Tam e7b9525911 updated swagger-js version to address #377, #72 2014-01-21 18:31:26 -08:00
Tony Tam ede80844a5 Merge pull request #376 from ilesm/mediatypes2
Added support for pretty-printing responses that use extended media type subtypes
2014-01-19 15:53:39 -08:00
Michael Iles eea0d72a85 Added support for pretty-printing responses for media types with
extended subtypes. For example the media type
'application/vnd.myresource+json; version=1.2' will be correctly
recognized as JSON and pretty-printed. Conforms to RFC 6838, 6839.
2014-01-19 14:46:55 -05:00
Tony Tam 15acb15af6 fix for #248 2014-01-02 19:54:10 -08:00
Tony Tam 54d0a8ec09 Update README.md 2014-01-02 09:28:35 -08:00
Tony Tam 105c516f5f Merge pull request #365 from xinvincible21/master
safe-JSON-parsing-check-for-type-undefined
2013-12-29 05:44:43 -08:00
invincible 542d4fe478 safe-JSON-parsing-check-for-type-undefined 2013-12-27 13:51:50 -05:00
Tony Tam 97e96ba3d9 rebuilt client 2013-12-20 17:37:55 -08:00
Tony Tam 73eaf9f564 Merge pull request #364 from bmatsuo/dont-upload-all-files
restrict uploaded file inputs to those in the form being submitted
2013-12-20 17:36:26 -08:00
Bryan Matsuo fc0ccd4486 restrict uploaded file inputs to those in the form being submitted 2013-12-20 17:17:06 -08:00
Tony Tam 7f68c35742 Merge pull request #358 from autayeu/selfclosingtag
removed selfclosing tag #332 - reapplied e4d01c5 by thadudexx
2013-12-19 12:02:29 -08:00
Aliaksandr Autayeu dc1bc43a19 removed selfclosing tag #332 - reapplied e4d01c5 by thadudexx 2013-12-14 16:13:06 +01:00
Tony Tam c32f6e836d updated version 2013-11-29 22:08:07 -08:00
Tony Tam 34bd474bff fix for #288 2013-11-29 22:07:37 -08:00
Tony Tam 4601f62702 fix for #334 2013-11-06 21:06:27 -08:00
Tony Tam 2bddfb688a Merge pull request #327 from georgeOsdDev/master
Add image contents type resopnse handler
2013-11-04 09:57:57 -08:00
Tony Tam b7458010f1 Merge pull request #326 from aerotech/upstream
Request URL updates for all operations in our resource
2013-11-04 09:21:57 -08:00
Tony Tam 49f480440b Merge pull request #332 from thadudexx/master
Small cosmetic update index.html
2013-10-18 16:31:54 -07:00
thadudexx e4d01c57bf Update index.html
removed selfclosing tag
2013-10-15 17:24:05 +02:00
Tony Tam 187517dfe3 fixed package to include less 2013-10-10 11:41:23 -07:00
Takeharu Oshida 846628f1f3 Match all image types 2013-10-08 16:44:28 +09:00
Takeharu Oshida 355380a5c4 Add image contents type resopnse handler 2013-10-08 14:30:48 +09:00
Pavel Puchkarev 6db63006a6 fixing request_url updates for all operations in one resource 2013-10-07 18:14:58 -04:00
Pavel 0505d6cadf Merge pull request #1 from wordnik/master
Update to latest swagger-ui code
2013-10-07 15:06:13 -07:00
Tony Tam fcb82bdac4 merged https://github.com/wordnik/swagger-ui/pull/323 2013-10-06 15:47:13 -07:00
17 changed files with 5939 additions and 5896 deletions
+16 -2
View File
@@ -1,6 +1,7 @@
fs = require 'fs'
path = require 'path'
{exec} = require 'child_process'
less = require 'less'
sourceFiles = [
'SwaggerUi'
@@ -71,13 +72,25 @@ task 'dist', 'Build a distribution', ->
console.log ' : Minifying all...'
exec 'java -jar "./bin/yuicompressor-2.4.7.jar" --type js -o ' + 'dist/swagger-ui.min.js ' + 'dist/swagger-ui.js', (err, stdout, stderr) ->
throw err if err
pack()
lessc()
lessc = ->
# Someone who knows CoffeeScript should make this more Coffee-licious
console.log ' : Compiling LESS...'
less.render fs.readFileSync("src/main/less/screen.less", 'utf8'), (err, css) ->
console.log err
fs.writeFileSync("src/main/html/css/screen.css", css)
pack()
pack = ->
console.log ' : Packaging...'
exec 'cp -r lib dist'
console.log ' : Copied swagger-ui libs'
exec 'cp -r node_modules/swagger-client/lib/swagger.js dist/lib'
console.log ' : Copied swagger dependencies'
exec 'cp -r src/main/html/* dist'
console.log ' : Copied html dependencies'
console.log ' !'
task 'spec', "Run the test suite", ->
@@ -107,6 +120,7 @@ task 'watch', 'Watch source files for changes and autocompile', ->
watchFiles("src/main/template")
watchFiles("src/main/javascript")
watchFiles("src/main/html")
watchFiles("src/main/less")
watchFiles("src/test")
notify = (message) ->
@@ -115,4 +129,4 @@ notify = (message) ->
# options =
# title: 'CoffeeScript'
# image: 'bin/CoffeeScript.png'
# try require('growl') message, options
# try require('growl') message, options
+2
View File
@@ -92,6 +92,8 @@ Create your own fork of [wordnik/swagger-ui](https://github.com/wordnik/swagger-
To share your changes, [submit a pull request](https://github.com/wordnik/swagger-ui/pull/new/master).
Since the javascript files are compiled from coffeescript, please submit changes in the *.coffee files! We have to reject changes only in the .js files as they will be lost on each build of the ui.
License
-------
+1043 -1755
View File
File diff suppressed because it is too large Load Diff
+6 -11
View File
@@ -2,10 +2,10 @@
<html>
<head>
<title>Swagger UI</title>
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='css/highlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<script type="text/javascript" src="lib/shred.bundle.js" /></script>
<script type="text/javascript" src="lib/shred.bundle.js"></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
@@ -23,25 +23,20 @@
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
if(console) {
console.log("Loaded SwaggerUI")
}
log("Loaded SwaggerUI")
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
},
onFailure: function(data) {
if(console) {
console.log("Unable to Load SwaggerUI");
console.log(data);
}
log("Unable to Load SwaggerUI");
},
docExpansion: "none"
});
$('#input_apiKey').change(function() {
var key = $('#input_apiKey')[0].value;
console.log("key: " + key);
log("key: " + key);
if(key && key.trim() != "") {
console.log("added key " + key);
log("added key " + key);
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
}
})
+1231 -1157
View File
File diff suppressed because it is too large Load Diff
+120 -20
View File
@@ -1281,13 +1281,24 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
};
SwaggerUi.prototype.buildUrl = function(base, url) {
var parts;
console.log("base is " + base);
parts = base.split("/");
base = parts[0] + "//" + parts[2];
var endOfPath, parts;
log("base is " + base);
if (url.indexOf("/") === 0) {
parts = base.split("/");
base = parts[0] + "//" + parts[2];
return base + url;
} else {
endOfPath = base.length;
if (base.indexOf("?") > -1) {
endOfPath = Math.min(endOfPath, base.indexOf("?"));
}
if (base.indexOf("#") > -1) {
endOfPath = Math.min(endOfPath, base.indexOf("#"));
}
base = base.substring(0, endOfPath);
if (base.indexOf("/", base.length - 1) !== -1) {
return base + url;
}
return base + "/" + url;
}
};
@@ -1435,7 +1446,6 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
ResourceView.prototype.render = function() {
var operation, _i, _len, _ref4;
console.log(this.model.description);
$(this.el).html(Handlebars.templates.resource(this.model));
this.number = 0;
_ref4 = this.model.operationsArray;
@@ -1470,6 +1480,8 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
return _ref4;
}
OperationView.prototype.invocationUrl = null;
OperationView.prototype.events = {
'submit .sandbox': 'submitOperation',
'click .submit': 'submitOperation',
@@ -1511,7 +1523,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
type = param.type || param.dataType;
if (type.toLowerCase() === 'file') {
if (!contentTypeModel.consumes) {
console.log("set content type ");
log("set content type ");
contentTypeModel.consumes = 'multipart/form-data';
}
}
@@ -1554,7 +1566,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
};
OperationView.prototype.submitOperation = function(e) {
var error_free, form, map, o, opts, val, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
var error_free, form, isFileUpload, map, o, opts, val, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
if (e != null) {
e.preventDefault();
}
@@ -1578,12 +1590,16 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
opts = {
parent: this
};
isFileUpload = false;
_ref5 = form.find("input");
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
o = _ref5[_i];
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
map[o.name] = o.value;
}
if (o.type === "file") {
isFileUpload = true;
}
}
_ref6 = form.find("textarea");
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
@@ -1603,7 +1619,11 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
opts.responseContentType = $("div select[name=responseContentType]", $(this.el)).val();
opts.requestContentType = $("div select[name=parameterContentType]", $(this.el)).val();
$(".response_throbber", $(this.el)).show();
return this.model["do"](map, opts, this.showCompleteStatus, this.showErrorStatus, this);
if (isFileUpload) {
return this.handleFileUpload(map, form);
} else {
return this.model["do"](map, opts, this.showCompleteStatus, this.showErrorStatus, this);
}
}
};
@@ -1611,6 +1631,84 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
return parent.showCompleteStatus(response);
};
OperationView.prototype.handleFileUpload = function(map, form) {
var bodyParam, el, headerParams, o, obj, param, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8,
_this = this;
log("it's a file upload");
_ref5 = form.serializeArray();
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
o = _ref5[_i];
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
map[o.name] = o.value;
}
}
bodyParam = new FormData();
_ref6 = this.model.parameters;
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
param = _ref6[_j];
if (param.paramType === 'form') {
bodyParam.append(param.name, map[param.name]);
}
}
headerParams = {};
_ref7 = this.model.parameters;
for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
param = _ref7[_k];
if (param.paramType === 'header') {
headerParams[param.name] = map[param.name];
}
}
log(headerParams);
_ref8 = form.find('input[type~="file"]');
for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) {
el = _ref8[_l];
bodyParam.append($(el).attr('name'), el.files[0]);
}
log(bodyParam);
this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), this.model.urlify(map, false)) : this.model.urlify(map, true);
$(".request_url", $(this.el)).html("<pre>" + this.invocationUrl + "</pre>");
obj = {
type: this.model.method,
url: this.invocationUrl,
headers: headerParams,
data: bodyParam,
dataType: 'json',
contentType: false,
processData: false,
error: function(data, textStatus, error) {
return _this.showErrorStatus(_this.wrap(data), _this);
},
success: function(data) {
return _this.showResponse(data, _this);
},
complete: function(data) {
return _this.showCompleteStatus(_this.wrap(data), _this);
}
};
if (window.authorizations) {
window.authorizations.apply(obj);
}
jQuery.ajax(obj);
return false;
};
OperationView.prototype.wrap = function(data) {
var headerArray, headers, i, o, _i, _ref5, _ref6;
headers = {};
headerArray = data.getAllResponseHeaders().split(":");
for (i = _i = 0, _ref5 = headerArray.length / 2, _ref6 = 2.; _ref6 > 0 ? _i <= _ref5 : _i >= _ref5; i = _i += _ref6) {
headers[headerArray[i]] = headerArray[i + 1];
}
o = {};
o.content = {};
o.content.data = data.responseText;
o.headers = headers;
o.request = {};
o.request.url = this.invocationUrl;
o.status = data.status;
return o;
};
OperationView.prototype.getSelectedValue = function(select) {
var opt, options, _i, _len, _ref5;
if (!select.multiple) {
@@ -1727,32 +1825,34 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
return formatted;
};
OperationView.prototype.showStatus = function(data) {
OperationView.prototype.showStatus = function(response) {
var code, content, contentType, headers, pre, response_body;
content = data.content.data;
headers = data.getHeaders();
contentType = headers["Content-Type"];
if (content === void 0) {
content = response.data;
headers = response.headers;
contentType = headers && headers["Content-Type"] ? headers["Content-Type"].split(";")[0].trim() : null;
if (!content) {
code = $('<code />').text("no content");
pre = $('<pre class="json" />').append(code);
} else if (contentType.indexOf("application/json") === 0 || contentType.indexOf("application/hal+json") === 0) {
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, 2));
} else if (contentType === "application/json" || /\+json$/.test(contentType)) {
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, " "));
pre = $('<pre class="json" />').append(code);
} else if (contentType.indexOf("application/xml") === 0) {
} else if (contentType === "application/xml" || /\+xml$/.test(contentType)) {
code = $('<code />').text(this.formatXml(content));
pre = $('<pre class="xml" />').append(code);
} else if (contentType.indexOf("text/html") === 0) {
} else if (contentType === "text/html") {
code = $('<code />').html(content);
pre = $('<pre class="xml" />').append(code);
} else if (/^image\//.test(contentType)) {
pre = $('<img>').attr('src', response.url);
} else {
code = $('<code />').text(content);
pre = $('<pre class="json" />').append(code);
}
response_body = pre;
$(".request_url").html("<pre>" + data.request.url + "</pre>");
$(".response_code", $(this.el)).html("<pre>" + data.status + "</pre>");
$(".request_url", $(this.el)).html("<pre>" + response.url + "</pre>");
$(".response_code", $(this.el)).html("<pre>" + response.status + "</pre>");
$(".response_body", $(this.el)).html(response_body);
$(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(data.getHeaders()) + "</pre>");
$(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(response.headers, null, " ").replace(/\n/g, "<br>") + "</pre>");
$(".response", $(this.el)).slideDown();
$(".response_hider", $(this.el)).show();
$(".response_throbber", $(this.el)).hide();
+1 -1
View File
File diff suppressed because one or more lines are too long
+1231 -1157
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -1,6 +1,6 @@
{
"name": "swagger-ui",
"version": "2.0.2",
"version": "2.0.9",
"description": "Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API",
"scripts": {
"build": "PATH=$PATH:./node_modules/.bin cake dist",
@@ -19,6 +19,8 @@
"readmeFilename": "README.md",
"dependencies": {
"coffee-script": "~1.5.0",
"handlebars": "~1.0.10"
"swagger-client": "2.0.14",
"handlebars": "~1.0.10",
"less": "~1.4.2"
}
}
+12 -5
View File
@@ -68,14 +68,21 @@ class SwaggerUi extends Backbone.Router
)
buildUrl: (base, url) ->
console.log "base is " + base
parts = base.split("/")
base = parts[0] + "//" + parts[2]
log "base is " + base
if url.indexOf("/") is 0
parts = base.split("/")
base = parts[0] + "//" + parts[2]
base + url
else
base + "/" + url
endOfPath = base.length
if base.indexOf("?") > -1
endOfPath = Math.min(endOfPath, base.indexOf("?"))
if base.indexOf("#") > -1
endOfPath = Math.min(endOfPath, base.indexOf("#"))
base = base.substring(0, endOfPath);
if base.indexOf( "/", base.length - 1 ) isnt -1
return base + url
return base + "/" + url
# Shows message on topbar of the ui
showMessage: (data = '') ->
+103 -19
View File
@@ -1,4 +1,6 @@
class OperationView extends Backbone.View
invocationUrl: null
events: {
'submit .sandbox' : 'submitOperation'
'click .submit' : 'submitOperation'
@@ -35,7 +37,7 @@ class OperationView extends Backbone.View
type = param.type || param.dataType
if type.toLowerCase() == 'file'
if !contentTypeModel.consumes
console.log "set content type "
log "set content type "
contentTypeModel.consumes = 'multipart/form-data'
responseContentTypeView = new ResponseContentTypeView({model: contentTypeModel})
@@ -77,13 +79,14 @@ class OperationView extends Backbone.View
if error_free
map = {}
opts = {parent: @}
#for o in form.serializeArray()
#if(o.value? && jQuery.trim(o.value).length > 0)
#map[o.name] = o.value
isFileUpload = false
for o in form.find("input")
if(o.value? && jQuery.trim(o.value).length > 0)
map[o.name] = o.value
if o.type is "file"
isFileUpload = true
for o in form.find("textarea")
if(o.value? && jQuery.trim(o.value).length > 0)
@@ -98,12 +101,91 @@ class OperationView extends Backbone.View
opts.requestContentType = $("div select[name=parameterContentType]", $(@el)).val()
$(".response_throbber", $(@el)).show()
@model.do(map, opts, @showCompleteStatus, @showErrorStatus, @)
if isFileUpload
@handleFileUpload map, form
else
@model.do(map, opts, @showCompleteStatus, @showErrorStatus, @)
success: (response, parent) ->
parent.showCompleteStatus response
handleFileUpload: (map, form) ->
log "it's a file upload"
for o in form.serializeArray()
if(o.value? && jQuery.trim(o.value).length > 0)
map[o.name] = o.value
# requires HTML5 compatible browser
bodyParam = new FormData()
# add params
for param in @model.parameters
if param.paramType is 'form'
bodyParam.append(param.name, map[param.name])
# headers in operation
headerParams = {}
for param in @model.parameters
if param.paramType is 'header'
headerParams[param.name] = map[param.name]
log headerParams
# add files
for el in form.find('input[type~="file"]')
bodyParam.append($(el).attr('name'), el.files[0])
log(bodyParam)
@invocationUrl =
if @model.supportHeaderParams()
headerParams = @model.getHeaderParams(map)
@model.urlify(map, false)
else
@model.urlify(map, true)
$(".request_url", $(@el)).html "<pre>" + @invocationUrl + "</pre>"
obj =
type: @model.method
url: @invocationUrl
headers: headerParams
data: bodyParam
dataType: 'json'
contentType: false
processData: false
error: (data, textStatus, error) =>
@showErrorStatus(@wrap(data), @)
success: (data) =>
@showResponse(data, @)
complete: (data) =>
@showCompleteStatus(@wrap(data), @)
# apply authorizations
if window.authorizations
window.authorizations.apply obj
jQuery.ajax(obj)
false
# end of file-upload nastiness
# wraps a jquery response as a shred response
wrap: (data) ->
headers = {}
headerArray = data.getAllResponseHeaders().split(":")
for i in [0..headerArray.length/2] by (2)
headers[headerArray[i]] = headerArray[i+1]
o = {}
o.content = {}
o.content.data = data.responseText
o.headers = headers
o.request = {}
o.request.url = @invocationUrl
o.status = data.status
o
getSelectedValue: (select) ->
if !select.multiple
select.value
@@ -195,35 +277,37 @@ class OperationView extends Backbone.View
# puts the response data in UI
showStatus: (data) ->
content = data.content.data
headers = data.getHeaders()
showStatus: (response) ->
content = response.data
headers = response.headers
# if server is nice, and sends content-type back, we can use it
contentType = headers["Content-Type"]
contentType = if headers && headers["Content-Type"] then headers["Content-Type"].split(";")[0].trim() else null
if content == undefined
if !content
code = $('<code />').text("no content")
pre = $('<pre class="json" />').append(code)
else if contentType.indexOf("application/json") == 0 || contentType.indexOf("application/hal+json") == 0
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, 2))
else if contentType is "application/json" || /\+json$/.test(contentType)
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, " "))
pre = $('<pre class="json" />').append(code)
else if contentType.indexOf("application/xml") == 0
else if contentType is "application/xml" || /\+xml$/.test(contentType)
code = $('<code />').text(@formatXml(content))
pre = $('<pre class="xml" />').append(code)
else if contentType.indexOf("text/html") == 0
else if contentType is "text/html"
code = $('<code />').html(content)
pre = $('<pre class="xml" />').append(code)
else if /^image\//.test(contentType)
pre = $('<img>').attr('src',response.url)
else
# don't know what to render!
code = $('<code />').text(content)
pre = $('<pre class="json" />').append(code)
response_body = pre
$(".request_url").html "<pre>" + data.request.url + "</pre>"
$(".response_code", $(@el)).html "<pre>" + data.status + "</pre>"
$(".request_url", $(@el)).html "<pre>" + response.url + "</pre>"
$(".response_code", $(@el)).html "<pre>" + response.status + "</pre>"
$(".response_body", $(@el)).html response_body
$(".response_headers", $(@el)).html "<pre>" + JSON.stringify(data.getHeaders()) + "</pre>"
$(".response_headers", $(@el)).html "<pre>" + JSON.stringify(response.headers, null, " ").replace(/\n/g, "<br>") + "</pre>"
$(".response", $(@el)).slideDown()
$(".response_hider", $(@el)).show()
$(".response_throbber", $(@el)).hide()
@@ -2,7 +2,6 @@ class ResourceView extends Backbone.View
initialize: ->
render: ->
console.log @model.description
$(@el).html(Handlebars.templates.resource(@model))
@number = 0
+1043 -1755
View File
File diff suppressed because it is too large Load Diff
+6 -11
View File
@@ -2,10 +2,10 @@
<html>
<head>
<title>Swagger UI</title>
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='css/highlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<script type="text/javascript" src="lib/shred.bundle.js" /></script>
<script type="text/javascript" src="lib/shred.bundle.js"></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
@@ -23,25 +23,20 @@
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
if(console) {
console.log("Loaded SwaggerUI")
}
log("Loaded SwaggerUI")
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
},
onFailure: function(data) {
if(console) {
console.log("Unable to Load SwaggerUI");
console.log(data);
}
log("Unable to Load SwaggerUI");
},
docExpansion: "none"
});
$('#input_apiKey').change(function() {
var key = $('#input_apiKey')[0].value;
console.log("key: " + key);
log("key: " + key);
if(key && key.trim() != "") {
console.log("added key " + key);
log("added key " + key);
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
}
})
+50
View File
@@ -0,0 +1,50 @@
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
+67
View File
@@ -0,0 +1,67 @@
@import 'src/main/less/reset.less';
@import 'src/main/less/specs.less';
#header {
background-color: #89bf04;
padding: 14px;
a#logo {
font-size: 1.5em;
font-weight: bold;
text-decoration: none;
background: transparent url(../images/logo_small.png) no-repeat left center;
padding: 20px 0 20px 40px;
color: white;
}
form#api_selector {
display: block;
clear: none;
float: right;
.input {
display: block;
clear: none;
float: left;
margin: 0 10px 0 0;
input#input_apiKey {
width: 200px;
}
input#input_baseUrl {
width: 400px;
}
a#explore {
display: block;
text-decoration: none;
font-weight: bold;
padding: 6px 8px;
font-size: 0.9em;
color: white;
background-color: #547f00;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-o-border-radius: 4px;
-ms-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
}
a#explore:hover {
background-color: #547f00;
}
input {
font-size: 0.9em;
padding: 3px;
margin: 0;
}
}
}
}
#content_message {
margin: 10px 15px;
font-style: italic;
color: #999999;
}
#message-bar {
min-height: 30px;
text-align: center;
padding-top: 10px;
}
File diff suppressed because it is too large Load Diff