Updating swagger-ui code to the latest version and removing the 'Try it out' buttons

This commit is contained in:
nikhiljindal 2015-02-04 15:01:18 -08:00
parent 0474c49b07
commit 6684d962df
12 changed files with 22941 additions and 5812 deletions

File diff suppressed because one or more lines are too long

View File

@ -16,6 +16,7 @@ https://github.com/swagger-api/swagger-ui#how-to-use-it
- Updated the url to "../../swaggerapi" as per instructions at: - Updated the url to "../../swaggerapi" as per instructions at:
https://github.com/swagger-api/swagger-ui#how-to-use-it https://github.com/swagger-api/swagger-ui#how-to-use-it
- Modified swagger-ui.js to list resources and operations in sorted order. - Modified swagger-ui.js to list resources and operations in sorted order.
- Set supportedSubmitMethods: [] in index.html to remove "Try it out" buttons.
LICENSE file has been created for compliance purposes. LICENSE file has been created for compliance purposes.
Not included in original distribution. Not included in original distribution.

View File

@ -294,7 +294,13 @@
.swagger-section .swagger-ui-wrap .message-fail { .swagger-section .swagger-ui-wrap .message-fail {
color: #cc0000; color: #cc0000;
} }
.swagger-section .swagger-ui-wrap .info_contact { .swagger-section .swagger-ui-wrap .info_url {
padding-bottom: 5px;
}
.swagger-section .swagger-ui-wrap .info_email {
padding-bottom: 5px;
}
.swagger-section .swagger-ui-wrap .info_name {
padding-bottom: 5px; padding-bottom: 5px;
} }
.swagger-section .swagger-ui-wrap .info_description { .swagger-section .swagger-ui-wrap .info_description {
@ -391,6 +397,32 @@
font-weight: bold; font-weight: bold;
color: #000; color: #000;
} }
.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper {
border-spacing: 0;
position: absolute;
background-color: #ffffff;
border: 1px solid #bbbbbb;
display: none;
font-size: 11px;
max-width: 400px;
line-height: 30px;
color: black;
padding: 5px;
margin-left: 10px;
}
.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th {
text-align: center;
background-color: #eeeeee;
border: 1px solid #bbbbbb;
font-size: 11px;
color: #666666;
font-weight: bold;
padding: 5px;
line-height: 15px;
}
.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName {
font-weight: bold;
}
.swagger-section .swagger-ui-wrap .model-signature .propName { .swagger-section .swagger-ui-wrap .model-signature .propName {
font-weight: bold; font-weight: bold;
} }

View File

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>Swagger UI</title> <title>Swagger UI</title>
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/> <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
@ -12,13 +12,13 @@
<script src='lib/jquery.slideto.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> <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='lib/handlebars-1.0.0.js' type='text/javascript'></script> <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script>
<script src='lib/underscore-min.js' type='text/javascript'></script> <script src='lib/underscore-min.js' type='text/javascript'></script>
<script src='lib/backbone-min.js' type='text/javascript'></script> <script src='lib/backbone-min.js' type='text/javascript'></script>
<script src='lib/swagger.js' type='text/javascript'></script>
<script src='lib/swagger-client.js' type='text/javascript'></script> <script src='lib/swagger-client.js' type='text/javascript'></script>
<script src='swagger-ui.js' type='text/javascript'></script> <script src='swagger-ui.js' type='text/javascript'></script>
<script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
<script src='lib/marked.js' type='text/javascript'></script>
<!-- enabling this will enable oauth2 implicit scope support --> <!-- enabling this will enable oauth2 implicit scope support -->
<script src='lib/swagger-oauth.js' type='text/javascript'></script> <script src='lib/swagger-oauth.js' type='text/javascript'></script>
@ -26,16 +26,15 @@
$(function () { $(function () {
var url = window.location.search.match(/url=([^&]+)/); var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) { if (url && url.length > 1) {
url = url[1]; url = decodeURIComponent(url[1]);
} else { } else {
url = "../../swaggerapi/"; url = "../../swaggerapi";
} }
window.swaggerUi = new SwaggerUi({ window.swaggerUi = new SwaggerUi({
url: url, url: url,
dom_id: "swagger-ui-container", dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'], supportedSubmitMethods: [],
onComplete: function(swaggerApi, swaggerUi){ onComplete: function(swaggerApi, swaggerUi){
log("Loaded SwaggerUI");
if(typeof initOAuth == "function") { if(typeof initOAuth == "function") {
/* /*
initOAuth({ initOAuth({

File diff suppressed because one or more lines are too long

View File

@ -1723,7 +1723,7 @@ var zlib = null;
try { try {
zlib = require('zlib'); zlib = require('zlib');
} catch (e) { } catch (e) {
console.warn("no zlib library"); // console.warn("no zlib library");
} }
// Iconv doesn't work in browser // Iconv doesn't work in browser
@ -1731,7 +1731,7 @@ var Iconv = null;
try { try {
Iconv = require('iconv-lite'); Iconv = require('iconv-lite');
} catch (e) { } catch (e) {
console.warn("no iconv library"); // console.warn("no iconv library");
} }
// Construct a `Response` object. You should never have to do this directly. The // Construct a `Response` object. You should never have to do this directly. The
@ -2207,7 +2207,7 @@ module.exports = {
constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); }; constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); };
constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); }; constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); };
constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); }; constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); };
}, }
}; };
}); });

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@ var popupMask;
var popupDialog; var popupDialog;
var clientId; var clientId;
var realm; var realm;
var oauth2KeyName;
function handleLogin() { function handleLogin() {
var scopes = []; var scopes = [];
@ -14,6 +15,7 @@ function handleLogin() {
for(key in defs) { for(key in defs) {
var auth = defs[key]; var auth = defs[key];
if(auth.type === 'oauth2' && auth.scopes) { if(auth.type === 'oauth2' && auth.scopes) {
oauth2KeyName = key;
var scope; var scope;
if(Array.isArray(auth.scopes)) { if(Array.isArray(auth.scopes)) {
// 1.2 support // 1.2 support
@ -86,6 +88,7 @@ function handleLogin() {
popupDialog = []; popupDialog = [];
}); });
$('button.api-popup-authbtn').unbind();
popupDialog.find('button.api-popup-authbtn').click(function() { popupDialog.find('button.api-popup-authbtn').click(function() {
popupMask.hide(); popupMask.hide();
popupDialog.hide(); popupDialog.hide();
@ -98,10 +101,13 @@ function handleLogin() {
for (var key in authSchemes) { for (var key in authSchemes) {
if (authSchemes.hasOwnProperty(key)) { if (authSchemes.hasOwnProperty(key)) {
if(authSchemes[key].type === 'oauth2' && authSchemes[key].flow === 'implicit') { var flow = authSchemes[key].flow;
if(authSchemes[key].type === 'oauth2' && flow && (flow === 'implicit' || flow === 'accessCode')) {
var dets = authSchemes[key]; var dets = authSchemes[key];
url = dets.authorizationUrl + '?response_type=token'; url = dets.authorizationUrl + '?response_type=' + (flow === 'implicit' ? 'token' : 'code');
window.swaggerUi.tokenName = dets.tokenUrl || 'access_token'; window.swaggerUi.tokenName = dets.tokenName || 'access_token';
window.swaggerUi.tokenUrl = (flow === 'accessCode' ? dets.tokenUrl : null);
} }
else if(authSchemes[key].grantTypes) { else if(authSchemes[key].grantTypes) {
// 1.2 support // 1.2 support
@ -113,6 +119,12 @@ function handleLogin() {
url = dets.loginEndpoint.url + '?response_type=token'; url = dets.loginEndpoint.url + '?response_type=token';
window.swaggerUi.tokenName = dets.tokenName; window.swaggerUi.tokenName = dets.tokenName;
} }
else if (o.hasOwnProperty(t) && t === 'accessCode') {
var dets = o[t];
var ep = dets.tokenRequestEndpoint.url;
url = dets.tokenRequestEndpoint.url + '?response_type=code';
window.swaggerUi.tokenName = dets.tokenName;
}
} }
} }
} }
@ -121,7 +133,10 @@ function handleLogin() {
var o = $('.api-popup-scopes').find('input:checked'); var o = $('.api-popup-scopes').find('input:checked');
for(k =0; k < o.length; k++) { for(k =0; k < o.length; k++) {
scopes.push($(o[k]).attr('scope')); var scope = $(o[k]).attr('scope');
if (scopes.indexOf(scope) === -1)
scopes.push(scope);
} }
window.enabledScopes=scopes; window.enabledScopes=scopes;
@ -169,6 +184,7 @@ function initOAuth(opts) {
} }
$('pre code').each(function(i, e) {hljs.highlightBlock(e)}); $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
$('.api-ic').unbind();
$('.api-ic').click(function(s) { $('.api-ic').click(function(s) {
if($(s.target).hasClass('ic-off')) if($(s.target).hasClass('ic-off'))
handleLogin(); handleLogin();
@ -179,6 +195,28 @@ function initOAuth(opts) {
}); });
} }
function processOAuthCode(data) {
var params = {
'client_id': clientId,
'code': data.code,
'grant_type': 'authorization_code'
}
$.ajax(
{
url : window.swaggerUi.tokenUrl,
type: "POST",
data: params,
success:function(data, textStatus, jqXHR)
{
onOAuthComplete(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
onOAuthComplete("");
}
});
}
function onOAuthComplete(token) { function onOAuthComplete(token) {
if(token) { if(token) {
if(token.error) { if(token.error) {
@ -230,7 +268,7 @@ function onOAuthComplete(token) {
} }
} }
}); });
window.authorizations.add('oauth2', new ApiKeyAuthorization('Authorization', 'Bearer ' + b, 'header')); window.authorizations.add(oauth2KeyName, new ApiKeyAuthorization('Authorization', 'Bearer ' + b, 'header'));
} }
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -10,6 +10,11 @@ qp = qp ? JSON.parse('{"' + qp.replace(/&/g, '","').replace(/=/g,'":"') + '"}',
function(key, value) { function(key, value) {
return key===""?value:decodeURIComponent(value) } return key===""?value:decodeURIComponent(value) }
):{} ):{}
if (window.opener.swaggerUi.tokenUrl)
window.opener.processOAuthCode(qp);
else
window.opener.onOAuthComplete(qp); window.opener.onOAuthComplete(qp);
window.close(); window.close();
</script> </script>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long