Conflicts: dist/index.html dist/swagger-ui.js dist/swagger-ui.min.js src/main/coffeescript/view/MainView.coffee src/main/coffeescript/view/OperationView.coffee src/main/coffeescript/view/ParameterView.coffee src/main/coffeescript/view/ResourceView.coffee src/main/coffeescript/view/SignatureView.coffee src/main/html/index.html
2308 lines
107 KiB
JavaScript
2308 lines
107 KiB
JavaScript
/**
|
|
* swagger-ui - Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API
|
|
* @version v2.1.8-M1
|
|
* @link http://swagger.io
|
|
* @license Apache 2.0
|
|
*/
|
|
(function(){'use strict';
|
|
|
|
window.SwaggerUi = Backbone.Router.extend({
|
|
|
|
dom_id: 'swagger_ui',
|
|
|
|
// Attributes
|
|
options: null,
|
|
api: null,
|
|
headerView: null,
|
|
mainView: null,
|
|
|
|
// SwaggerUi accepts all the same options as SwaggerApi
|
|
initialize: function(options) {
|
|
options = options || {};
|
|
|
|
// Allow dom_id to be overridden
|
|
if (options.dom_id) {
|
|
this.dom_id = options.dom_id;
|
|
delete options.dom_id;
|
|
}
|
|
|
|
if (!options.supportedSubmitMethods){
|
|
options.supportedSubmitMethods = [
|
|
'get',
|
|
'put',
|
|
'post',
|
|
'delete',
|
|
'head',
|
|
'options',
|
|
'patch'
|
|
];
|
|
}
|
|
|
|
// Create an empty div which contains the dom_id
|
|
if (! $('#' + this.dom_id).length){
|
|
$('body').append('<div id="' + this.dom_id + '"></div>') ;
|
|
}
|
|
|
|
this.options = options;
|
|
|
|
// set marked options
|
|
marked.setOptions({gfm: true});
|
|
|
|
// Set the callbacks
|
|
var that = this;
|
|
this.options.success = function() { return that.render(); };
|
|
this.options.progress = function(d) { return that.showMessage(d); };
|
|
this.options.failure = function(d) { return that.onLoadFailure(d); };
|
|
|
|
// Create view to handle the header inputs
|
|
this.headerView = new SwaggerUi.Views.HeaderView({el: $('#header')});
|
|
|
|
// Event handler for when the baseUrl/apiKey is entered by user
|
|
this.headerView.on('update-swagger-ui', function(data) {
|
|
return that.updateSwaggerUi(data);
|
|
});
|
|
},
|
|
|
|
// Set an option after initializing
|
|
setOption: function(option, value) {
|
|
this.options[option] = value;
|
|
},
|
|
|
|
// Get the value of a previously set option
|
|
getOption: function(option) {
|
|
return this.options[option];
|
|
},
|
|
|
|
// Event handler for when url/key is received from user
|
|
updateSwaggerUi: function(data){
|
|
this.options.url = data.url;
|
|
this.load();
|
|
},
|
|
|
|
// Create an api and render
|
|
load: function(){
|
|
// Initialize the API object
|
|
if (this.mainView) {
|
|
this.mainView.clear();
|
|
}
|
|
var url = this.options.url;
|
|
if (url && url.indexOf('http') !== 0) {
|
|
url = this.buildUrl(window.location.href.toString(), url);
|
|
}
|
|
|
|
this.options.url = url;
|
|
this.headerView.update(url);
|
|
|
|
this.api = new SwaggerClient(this.options);
|
|
},
|
|
|
|
// collapse all sections
|
|
collapseAll: function(){
|
|
Docs.collapseEndpointListForResource('');
|
|
},
|
|
|
|
// list operations for all sections
|
|
listAll: function(){
|
|
Docs.collapseOperationsForResource('');
|
|
},
|
|
|
|
// expand operations for all sections
|
|
expandAll: function(){
|
|
Docs.expandOperationsForResource('');
|
|
},
|
|
|
|
// This is bound to success handler for SwaggerApi
|
|
// so it gets called when SwaggerApi completes loading
|
|
render: function(){
|
|
this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...');
|
|
this.mainView = new SwaggerUi.Views.MainView({
|
|
model: this.api,
|
|
el: $('#' + this.dom_id),
|
|
swaggerOptions: this.options,
|
|
router: this
|
|
}).render();
|
|
this.showMessage();
|
|
switch (this.options.docExpansion) {
|
|
case 'full':
|
|
this.expandAll(); break;
|
|
case 'list':
|
|
this.listAll(); break;
|
|
default:
|
|
break;
|
|
}
|
|
this.renderGFM();
|
|
|
|
if (this.options.onComplete){
|
|
this.options.onComplete(this.api, this);
|
|
}
|
|
|
|
setTimeout(Docs.shebang.bind(this), 100);
|
|
},
|
|
|
|
buildUrl: function(base, url){
|
|
if (url.indexOf('/') === 0) {
|
|
var parts = base.split('/');
|
|
base = parts[0] + '//' + parts[2];
|
|
return base + url;
|
|
} else {
|
|
var 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;
|
|
}
|
|
},
|
|
|
|
// Shows message on topbar of the ui
|
|
showMessage: function(data){
|
|
if (data === undefined) {
|
|
data = '';
|
|
}
|
|
$('#message-bar').removeClass('message-fail');
|
|
$('#message-bar').addClass('message-success');
|
|
$('#message-bar').html(data);
|
|
},
|
|
|
|
// shows message in red
|
|
onLoadFailure: function(data){
|
|
if (data === undefined) {
|
|
data = '';
|
|
}
|
|
$('#message-bar').removeClass('message-success');
|
|
$('#message-bar').addClass('message-fail');
|
|
|
|
var val = $('#message-bar').html(data);
|
|
|
|
if (this.options.onFailure) {
|
|
this.options.onFailure(data);
|
|
}
|
|
|
|
return val;
|
|
},
|
|
|
|
// Renders GFM for elements with 'markdown' class
|
|
renderGFM: function(){
|
|
$('.markdown').each(function(){
|
|
$(this).html(marked($(this).html()));
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
window.SwaggerUi.Views = {};
|
|
|
|
// don't break backward compatibility with previous versions and warn users to upgrade their code
|
|
(function(){
|
|
window.authorizations = {
|
|
add: function() {
|
|
warn('using window.authorizations is depreciated. Please use waggerUi.api.clientAuthorizations.add().');
|
|
|
|
if (typeof window.swaggerUi === 'undefined') {
|
|
throw new TypeError('window.swaggerUi is not defined');
|
|
}
|
|
|
|
if (window.swaggerUi instanceof SwaggerUi) {
|
|
window.swaggerUi.api.clientAuthorizations.add.apply(window.swaggerUi.api.clientAuthorizations, arguments);
|
|
}
|
|
}
|
|
};
|
|
|
|
window.ApiKeyAuthorization = function() {
|
|
warn('window.ApiKeyAuthorization is depreciated. Please use SwaggerClient.ApiKeyAuthorization.');
|
|
SwaggerClient.ApiKeyAuthorization.apply(window, arguments);
|
|
};
|
|
|
|
window.PasswordAuthorization = function() {
|
|
warn('window.PasswordAuthorization is depreciated. Please use SwaggerClient.PasswordAuthorization.');
|
|
SwaggerClient.PasswordAuthorization.apply(window, arguments);
|
|
};
|
|
|
|
function warn(message) {
|
|
if ('console' in window && typeof window.console.warn === 'function') {
|
|
console.warn(message);
|
|
}
|
|
}
|
|
})();
|
|
this["Handlebars"] = this["Handlebars"] || {};
|
|
this["Handlebars"]["templates"] = this["Handlebars"]["templates"] || {};
|
|
this["Handlebars"]["templates"]["apikey_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return "<!--div class='auth_button' id='apikey_button'><img class='auth_icon' alt='apply api key' src='images/apikey.jpeg'></div-->\n<div class='auth_container' id='apikey_container'>\n <div class='key_input_container'>\n <div class='auth_label'>"
|
|
+ escapeExpression(((helper = (helper = helpers.keyName || (depth0 != null ? depth0.keyName : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"keyName","hash":{},"data":data}) : helper)))
|
|
+ "</div>\n <input placeholder=\"api_key\" class=\"auth_input\" id=\"input_apiKey_entry\" name=\"apiKey\" type=\"text\"/>\n <div class='auth_submit'><a class='auth_submit_button' id=\"apply_api_key\" href=\"#\">apply</a></div>\n </div>\n</div>\n\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["basic_auth_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
return "<div class='auth_button' id='basic_auth_button'><img class='auth_icon' src='images/password.jpeg'></div>\n<div class='auth_container' id='basic_auth_container'>\n <div class='key_input_container'>\n <div class=\"auth_label\">Username</div>\n <input placeholder=\"username\" class=\"auth_input\" id=\"input_username\" name=\"username\" type=\"text\"/>\n <div class=\"auth_label\">Password</div>\n <input placeholder=\"password\" class=\"auth_input\" id=\"input_password\" name=\"password\" type=\"password\"/>\n <div class='auth_submit'><a class='auth_submit_button' id=\"apply_basic_auth\" href=\"#\">apply</a></div>\n </div>\n</div>\n\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, buffer = " <option value=\"";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\">";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</option>\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
return " <option value=\"application/json\">application/json</option>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "<label for=\"contentType\"></label>\n<select name=\"contentType\">\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</select>\n";
|
|
},"useData":true});
|
|
'use strict';
|
|
|
|
|
|
$(function() {
|
|
|
|
// Helper function for vertically aligning DOM elements
|
|
// http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/
|
|
$.fn.vAlign = function() {
|
|
return this.each(function(){
|
|
var ah = $(this).height();
|
|
var ph = $(this).parent().height();
|
|
var mh = (ph - ah) / 2;
|
|
$(this).css('margin-top', mh);
|
|
});
|
|
};
|
|
|
|
$.fn.stretchFormtasticInputWidthToParent = function() {
|
|
return this.each(function(){
|
|
var p_width = $(this).closest("form").innerWidth();
|
|
var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest('form').css('padding-right'), 10);
|
|
var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10);
|
|
$(this).css('width', p_width - p_padding - this_padding);
|
|
});
|
|
};
|
|
|
|
$('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent();
|
|
|
|
// Vertically center these paragraphs
|
|
// Parent may need a min-height for this to work..
|
|
$('ul.downplayed li div.content p').vAlign();
|
|
|
|
// When a sandbox form is submitted..
|
|
$("form.sandbox").submit(function(){
|
|
|
|
var error_free = true;
|
|
|
|
// Cycle through the forms required inputs
|
|
$(this).find("input.required").each(function() {
|
|
|
|
// Remove any existing error styles from the input
|
|
$(this).removeClass('error');
|
|
|
|
// Tack the error style on if the input is empty..
|
|
if ($(this).val() === '') {
|
|
$(this).addClass('error');
|
|
$(this).wiggle();
|
|
error_free = false;
|
|
}
|
|
|
|
});
|
|
|
|
return error_free;
|
|
});
|
|
|
|
});
|
|
|
|
function clippyCopiedCallback() {
|
|
$('#api_key_copied').fadeIn().delay(1000).fadeOut();
|
|
|
|
// var b = $("#clippy_tooltip_" + a);
|
|
// b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() {
|
|
// b.attr("title", "copy to clipboard")
|
|
// },
|
|
// 500))
|
|
}
|
|
|
|
// Logging function that accounts for browsers that don't have window.console
|
|
function log(){
|
|
log.history = log.history || [];
|
|
log.history.push(arguments);
|
|
if(this.console){
|
|
console.log( Array.prototype.slice.call(arguments)[0] );
|
|
}
|
|
}
|
|
|
|
// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913)
|
|
if (Function.prototype.bind && console && typeof console.log === "object") {
|
|
[
|
|
"log","info","warn","error","assert","dir","clear","profile","profileEnd"
|
|
].forEach(function (method) {
|
|
console[method] = this.bind(console[method], console);
|
|
}, Function.prototype.call);
|
|
}
|
|
|
|
window.Docs = {
|
|
|
|
shebang: function() {
|
|
|
|
// If shebang has an operation nickname in it..
|
|
// e.g. /docs/#!/words/get_search
|
|
var fragments = $.param.fragment().split('/');
|
|
fragments.shift(); // get rid of the bang
|
|
|
|
switch (fragments.length) {
|
|
case 1:
|
|
// Expand all operations for the resource and scroll to it
|
|
var dom_id = 'resource_' + fragments[0];
|
|
|
|
Docs.expandEndpointListForResource(fragments[0]);
|
|
$("#"+dom_id).slideto({highlight: false});
|
|
break;
|
|
case 2:
|
|
// Refer to the endpoint DOM element, e.g. #words_get_search
|
|
|
|
// Expand Resource
|
|
Docs.expandEndpointListForResource(fragments[0]);
|
|
$("#"+dom_id).slideto({highlight: false});
|
|
|
|
// Expand operation
|
|
var li_dom_id = fragments.join('_');
|
|
var li_content_dom_id = li_dom_id + "_content";
|
|
|
|
|
|
Docs.expandOperation($('#'+li_content_dom_id));
|
|
$('#'+li_dom_id).slideto({highlight: false});
|
|
break;
|
|
}
|
|
|
|
},
|
|
|
|
toggleEndpointListForResource: function(resource) {
|
|
var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints');
|
|
if (elem.is(':visible')) {
|
|
Docs.collapseEndpointListForResource(resource);
|
|
} else {
|
|
Docs.expandEndpointListForResource(resource);
|
|
}
|
|
},
|
|
|
|
// Expand resource
|
|
expandEndpointListForResource: function(resource) {
|
|
var resource = Docs.escapeResourceName(resource);
|
|
if (resource == '') {
|
|
$('.resource ul.endpoints').slideDown();
|
|
return;
|
|
}
|
|
|
|
$('li#resource_' + resource).addClass('active');
|
|
|
|
var elem = $('li#resource_' + resource + ' ul.endpoints');
|
|
elem.slideDown();
|
|
},
|
|
|
|
// Collapse resource and mark as explicitly closed
|
|
collapseEndpointListForResource: function(resource) {
|
|
var resource = Docs.escapeResourceName(resource);
|
|
if (resource == '') {
|
|
$('.resource ul.endpoints').slideUp();
|
|
return;
|
|
}
|
|
|
|
$('li#resource_' + resource).removeClass('active');
|
|
|
|
var elem = $('li#resource_' + resource + ' ul.endpoints');
|
|
elem.slideUp();
|
|
},
|
|
|
|
expandOperationsForResource: function(resource) {
|
|
// Make sure the resource container is open..
|
|
Docs.expandEndpointListForResource(resource);
|
|
|
|
if (resource == '') {
|
|
$('.resource ul.endpoints li.operation div.content').slideDown();
|
|
return;
|
|
}
|
|
|
|
$('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {
|
|
Docs.expandOperation($(this));
|
|
});
|
|
},
|
|
|
|
collapseOperationsForResource: function(resource) {
|
|
// Make sure the resource container is open..
|
|
Docs.expandEndpointListForResource(resource);
|
|
|
|
if (resource == '') {
|
|
$('.resource ul.endpoints li.operation div.content').slideUp();
|
|
return;
|
|
}
|
|
|
|
$('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {
|
|
Docs.collapseOperation($(this));
|
|
});
|
|
},
|
|
|
|
escapeResourceName: function(resource) {
|
|
return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&");
|
|
},
|
|
|
|
expandOperation: function(elem) {
|
|
elem.slideDown();
|
|
},
|
|
|
|
collapseOperation: function(elem) {
|
|
elem.slideUp();
|
|
}
|
|
};
|
|
|
|
'use strict';
|
|
|
|
Handlebars.registerHelper('sanitize', function(html) {
|
|
// Strip the script tags from the html, and return it as a Handlebars.SafeString
|
|
html = html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
|
|
return new Handlebars.SafeString(html);
|
|
});
|
|
this["Handlebars"]["templates"]["main"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div class=\"info_title\">"
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0))
|
|
+ "</div>\n <div class=\"info_description markdown\">";
|
|
stack1 = lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</div>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.externalDocs : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += " ";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n ";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), {"name":"if","hash":{},"fn":this.program(6, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n ";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), {"name":"if","hash":{},"fn":this.program(8, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n ";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n ";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1), {"name":"if","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "\n";
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return " <h5>More documentations</h5>\n <p>"
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.description : stack1), depth0))
|
|
+ "</p>\n <a href=\""
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0))
|
|
+ "\" target=\"_blank\">"
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0))
|
|
+ "</a>\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return "<div class=\"info_tos\"><a href=\""
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), depth0))
|
|
+ "\">Terms of service</a></div>";
|
|
},"6":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return "<div class='info_name'>Created by "
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), depth0))
|
|
+ "</div>";
|
|
},"8":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return "<div class='info_url'>See more at <a href=\""
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0))
|
|
+ "\">"
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0))
|
|
+ "</a></div>";
|
|
},"10":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return "<div class='info_email'><a href=\"mailto:"
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), depth0))
|
|
+ "?subject="
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0))
|
|
+ "\">Contact the developer</a></div>";
|
|
},"12":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return "<div class='info_license'><a href='"
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.url : stack1), depth0))
|
|
+ "'>"
|
|
+ escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.name : stack1), depth0))
|
|
+ "</a></div>";
|
|
},"14":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return " , <span style=\"font-variant: small-caps\">api version</span>: "
|
|
+ escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), depth0))
|
|
+ "\n ";
|
|
},"16":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <span style=\"float:right\"><a href=\""
|
|
+ escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper)))
|
|
+ "/debug?url="
|
|
+ escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper)))
|
|
+ "\"><img id=\"validator\" src=\""
|
|
+ escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper)))
|
|
+ "?url="
|
|
+ escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper)))
|
|
+ "\"></a>\n </span>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div class='info' id='api_info'>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.info : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</div>\n<div class='container' id='resources_container'>\n <ul id='resources'></ul>\n\n <div class=\"footer\">\n <br>\n <br>\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: "
|
|
+ escapeExpression(((helper = (helper = helpers.basePath || (depth0 != null ? depth0.basePath : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"basePath","hash":{},"data":data}) : helper)))
|
|
+ "\n";
|
|
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), {"name":"if","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "]\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.validatorUrl : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + " </h4>\n </div>\n</div>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["operation"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
return "deprecated";
|
|
},"3":function(depth0,helpers,partials,data) {
|
|
return " <h4>Warning: Deprecated</h4>\n";
|
|
},"5":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, buffer = " <h4>Implementation Notes</h4>\n <div class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</div>\n";
|
|
},"7":function(depth0,helpers,partials,data) {
|
|
return " <div class=\"auth\">\n <span class=\"api-ic ic-error\"></span>";
|
|
},"9":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = " <div id=\"api_information_panel\" style=\"top: 526px; left: 776px; display: none;\">\n";
|
|
stack1 = helpers.each.call(depth0, depth0, {"name":"each","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + " </div>\n";
|
|
},"10":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div title='";
|
|
stack1 = lambda((depth0 != null ? depth0.description : depth0), depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "'>"
|
|
+ escapeExpression(lambda((depth0 != null ? depth0.scope : depth0), depth0))
|
|
+ "</div>\n";
|
|
},"12":function(depth0,helpers,partials,data) {
|
|
return "</div>";
|
|
},"14":function(depth0,helpers,partials,data) {
|
|
return " <div class='access'>\n <span class=\"api-ic ic-off\" title=\"click to authenticate\"></span>\n </div>\n";
|
|
},"16":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <h4>Response Class (Status "
|
|
+ escapeExpression(((helper = (helper = helpers.successCode || (depth0 != null ? depth0.successCode : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"successCode","hash":{},"data":data}) : helper)))
|
|
+ ")</h4>\n <p><span class=\"model-signature\" /></p>\n <br/>\n <div class=\"response-content-type\" />\n";
|
|
},"18":function(depth0,helpers,partials,data) {
|
|
return " <h4>Parameters</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th style=\"width: 100px; max-width: 100px\">Parameter</th>\n <th style=\"width: 310px; max-width: 310px\">Value</th>\n <th style=\"width: 200px; max-width: 200px\">Description</th>\n <th style=\"width: 100px; max-width: 100px\">Parameter Type</th>\n <th style=\"width: 220px; max-width: 230px\">Data Type</th>\n </tr>\n </thead>\n <tbody class=\"operation-params\">\n\n </tbody>\n </table>\n";
|
|
},"20":function(depth0,helpers,partials,data) {
|
|
return " <div style='margin:0;padding:0;display:inline'></div>\n <h4>Response Messages</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th>HTTP Status Code</th>\n <th>Reason</th>\n <th>Response Model</th>\n <th>Headers</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n\n </tbody>\n </table>\n";
|
|
},"22":function(depth0,helpers,partials,data) {
|
|
return "";
|
|
},"24":function(depth0,helpers,partials,data) {
|
|
return " <div class='sandbox_header'>\n <input class='submit' name='commit' type='button' value='Try it out!' />\n <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n <span class='response_throbber' style='display:none'></span>\n </div>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "\n <ul class='operations' >\n <li class='"
|
|
+ escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper)))
|
|
+ " operation' id='"
|
|
+ escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper)))
|
|
+ "_"
|
|
+ escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper)))
|
|
+ "'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/"
|
|
+ escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper)))
|
|
+ "/"
|
|
+ escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper)))
|
|
+ "' class=\"toggleOperation\">"
|
|
+ escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper)))
|
|
+ "</a>\n </span>\n <span class='path'>\n <a href='#!/"
|
|
+ escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper)))
|
|
+ "/"
|
|
+ escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper)))
|
|
+ "' class=\"toggleOperation ";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\">"
|
|
+ escapeExpression(((helper = (helper = helpers.path || (depth0 != null ? depth0.path : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"path","hash":{},"data":data}) : helper)))
|
|
+ "</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/"
|
|
+ escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper)))
|
|
+ "/"
|
|
+ escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper)))
|
|
+ "' class=\"toggleOperation\">";
|
|
stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</a>\n </li>\n </ul>\n </div>\n <div class='content' id='"
|
|
+ escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper)))
|
|
+ "_"
|
|
+ escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper)))
|
|
+ "_content' style='display:none'>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.description : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(7, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper));
|
|
if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n";
|
|
stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.oauth : depth0), {"name":"each","hash":{},"fn":this.program(9, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += " ";
|
|
stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper));
|
|
if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n";
|
|
stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper));
|
|
if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.type : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += " <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.parameters : depth0), {"name":"if","hash":{},"fn":this.program(18, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.responseMessages : depth0), {"name":"if","hash":{},"fn":this.program(20, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isReadOnly : depth0), {"name":"if","hash":{},"fn":this.program(22, data),"inverse":this.program(24, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + " </form>\n <div class='response' style='display:none'>\n <h4>Request URL</h4>\n <div class='block request_url'></div>\n <h4>Response Body</h4>\n <div class='block response_body'></div>\n <h4>Response Code</h4>\n <div class='block response_code'></div>\n <h4>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["param"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input type=\"file\" name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'/>\n <div class=\"parameter-content-type\" />\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"5":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <div class=\"editor_holder\"></div>\n <textarea class='body-textarea' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n";
|
|
},"7":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <textarea class='body-textarea' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'></textarea>\n <div class=\"editor_holder\"></div>\n <br />\n <div class=\"parameter-content-type\" />\n";
|
|
},"9":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(10, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"10":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(11, data),"inverse":this.program(13, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"11":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input class='parameter' minlength='0' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "' placeholder='' type='text' value='"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "'/>\n";
|
|
},"13":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input class='parameter' minlength='0' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "' placeholder='' type='text' value=''/>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>\n\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n</td>\n<td class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</td>\n<td>\n <span class=\"model-signature\"></span>\n</td>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["param_list"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return "<td class='code required'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n";
|
|
},"3":function(depth0,helpers,partials,data) {
|
|
return " multiple='multiple'";
|
|
},"5":function(depth0,helpers,partials,data) {
|
|
return "";
|
|
},"7":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(8, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"8":function(depth0,helpers,partials,data) {
|
|
var stack1, helperMissing=helpers.helperMissing, buffer = "";
|
|
stack1 = ((helpers.isArray || (depth0 && depth0.isArray) || helperMissing).call(depth0, depth0, {"name":"isArray","hash":{},"fn":this.program(5, data),"inverse":this.program(9, data),"data":data}));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"9":function(depth0,helpers,partials,data) {
|
|
return " <option selected=\"\" value=''></option>\n";
|
|
},"11":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isDefault : depth0), {"name":"if","hash":{},"fn":this.program(12, data),"inverse":this.program(14, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"12":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <option selected=\"\" value='"
|
|
+ escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper)))
|
|
+ " (default)</option>\n";
|
|
},"14":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <option value='"
|
|
+ escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper)))
|
|
+ "</option>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "<td class='code'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>\n <select ";
|
|
stack1 = ((helpers.isArray || (depth0 && depth0.isArray) || helperMissing).call(depth0, depth0, {"name":"isArray","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += " class='parameter' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = helpers.each.call(depth0, ((stack1 = (depth0 != null ? depth0.allowableValues : depth0)) != null ? stack1.descriptiveValues : stack1), {"name":"each","hash":{},"fn":this.program(11, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += " </select>\n</td>\n<td class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["param_readonly"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <textarea class='body-textarea' readonly='readonly' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "</textarea>\n";
|
|
},"3":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " "
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "\n";
|
|
},"6":function(depth0,helpers,partials,data) {
|
|
return " (empty)\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["param_readonly_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "</textarea>\n";
|
|
},"3":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " "
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "\n";
|
|
},"6":function(depth0,helpers,partials,data) {
|
|
return " (empty)\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["param_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input type=\"file\" name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'/>\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"5":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <textarea class='body-textarea required' placeholder='(required)' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'>"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n";
|
|
},"7":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <textarea class='body-textarea required' placeholder='(required)' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n";
|
|
},"9":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.program(12, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"10":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input class='parameter' class='required' type='file' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "'/>\n";
|
|
},"12":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(13, data),"inverse":this.program(15, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"13":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input class='parameter required' minlength='1' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "' placeholder='(required)' type='text' value='"
|
|
+ escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper)))
|
|
+ "'/>\n";
|
|
},"15":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <input class='parameter required' minlength='1' name='"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "' placeholder='(required)' type='text' value=''/>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'>"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td>\n <strong><span class=\"markdown\">";
|
|
stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</span></strong>\n</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["parameter_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, buffer = " <option value=\"";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\">";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</option>\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
return " <option value=\"application/json\">application/json</option>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "<label for=\"parameterContentType\"></label>\n<select name=\"parameterContentType\">\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</select>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["resource"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
return " : ";
|
|
},"3":function(depth0,helpers,partials,data) {
|
|
var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
return " <li>\n <a href='"
|
|
+ escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper)))
|
|
+ "'>Raw</a>\n </li>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "<div class='heading'>\n <h2>\n <a href='#!/"
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "' class=\"toggleEndpointList\" data-id=\""
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "\">"
|
|
+ escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper)))
|
|
+ "</a> ";
|
|
stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(options={"name":"summary","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper));
|
|
if (!helpers.summary) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
|
|
if (stack1 != null) { buffer += stack1; }
|
|
stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/"
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "' id='endpointListTogger_"
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "' class=\"toggleEndpointList\" data-id=\""
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "\">Show/Hide</a>\n </li>\n <li>\n <a href='#' class=\"collapseResource\" data-id=\""
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "\">\n List Operations\n </a>\n </li>\n <li>\n <a href='#' class=\"expandResource\" data-id=\""
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "\">\n Expand Operations\n </a>\n </li>\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.url : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + " </ul>\n</div>\n<ul class='endpoints' id='"
|
|
+ escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper)))
|
|
+ "_endpoint_list' style='display:none'>\n\n</ul>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["response_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "";
|
|
stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer;
|
|
},"2":function(depth0,helpers,partials,data) {
|
|
var stack1, lambda=this.lambda, buffer = " <option value=\"";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "\">";
|
|
stack1 = lambda(depth0, depth0);
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</option>\n";
|
|
},"4":function(depth0,helpers,partials,data) {
|
|
return " <option value=\"application/json\">application/json</option>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, buffer = "<label for=\"responseContentType\"></label>\n<select name=\"responseContentType\">\n";
|
|
stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "</select>\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["signature"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div>\n<ul class=\"signature-nav\">\n <li><a class=\"description-link\" href=\"#\">Model</a></li>\n <li><a class=\"snippet-link\" href=\"#\">Model Schema</a></li>\n</ul>\n<div>\n\n<div class=\"signature-container\">\n <div class=\"description\">\n ";
|
|
stack1 = ((helper = (helper = helpers.signature || (depth0 != null ? depth0.signature : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"signature","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + "\n </div>\n\n <div class=\"snippet\">\n <pre><code>"
|
|
+ escapeExpression(((helper = (helper = helpers.sampleJSON || (depth0 != null ? depth0.sampleJSON : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"sampleJSON","hash":{},"data":data}) : helper)))
|
|
+ "</code></pre>\n <small class=\"notice\"></small>\n </div>\n</div>\n\n";
|
|
},"useData":true});
|
|
this["Handlebars"]["templates"]["status_code"] = Handlebars.template({"1":function(depth0,helpers,partials,data) {
|
|
var lambda=this.lambda, escapeExpression=this.escapeExpression;
|
|
return " <tr>\n <td>"
|
|
+ escapeExpression(lambda((data && data.key), depth0))
|
|
+ "</td>\n <td>"
|
|
+ escapeExpression(lambda((depth0 != null ? depth0.description : depth0), depth0))
|
|
+ "</td>\n <td>"
|
|
+ escapeExpression(lambda((depth0 != null ? depth0.type : depth0), depth0))
|
|
+ "</td>\n </tr>\n";
|
|
},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) {
|
|
var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td width='15%' class='code'>"
|
|
+ escapeExpression(((helper = (helper = helpers.code || (depth0 != null ? depth0.code : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"code","hash":{},"data":data}) : helper)))
|
|
+ "</td>\n<td>";
|
|
stack1 = ((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"message","hash":{},"data":data}) : helper));
|
|
if (stack1 != null) { buffer += stack1; }
|
|
buffer += "</td>\n<td width='50%'><span class=\"model-signature\" /></td>\n<td class=\"headers\">\n <table>\n <tbody>\n";
|
|
stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.headers : depth0), {"name":"each","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data});
|
|
if (stack1 != null) { buffer += stack1; }
|
|
return buffer + " </tbody>\n </table>\n</td>";
|
|
},"useData":true});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ApiKeyButton = Backbone.View.extend({ // TODO: append this to global SwaggerUi
|
|
|
|
events:{
|
|
'click #apikey_button' : 'toggleApiKeyContainer',
|
|
'click #apply_api_key' : 'applyApiKey'
|
|
},
|
|
|
|
initialize: function(opts){
|
|
this.options = opts || {};
|
|
this.router = this.options.router;
|
|
},
|
|
|
|
render: function(){
|
|
var template = this.template();
|
|
$(this.el).html(template(this.model));
|
|
|
|
return this;
|
|
},
|
|
|
|
|
|
applyApiKey: function(){
|
|
var keyAuth = new SwaggerClient.ApiKeyAuthorization(
|
|
this.model.name,
|
|
$('#input_apiKey_entry').val(),
|
|
this.model.in
|
|
);
|
|
this.router.api.clientAuthorizations.add(this.model.name, keyAuth);
|
|
this.router.load();
|
|
$('#apikey_container').show();
|
|
},
|
|
|
|
toggleApiKeyContainer: function(){
|
|
if ($('#apikey_container').length) {
|
|
|
|
var elem = $('#apikey_container').first();
|
|
|
|
if (elem.is(':visible')){
|
|
elem.hide();
|
|
} else {
|
|
|
|
// hide others
|
|
$('.auth_container').hide();
|
|
elem.show();
|
|
}
|
|
}
|
|
},
|
|
|
|
template: function(){
|
|
return Handlebars.templates.apikey_button_view;
|
|
}
|
|
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.BasicAuthButton = Backbone.View.extend({
|
|
|
|
|
|
initialize: function (opts) {
|
|
this.options = opts || {};
|
|
this.router = this.options.router;
|
|
},
|
|
|
|
render: function(){
|
|
var template = this.template();
|
|
$(this.el).html(template(this.model));
|
|
|
|
return this;
|
|
},
|
|
|
|
events: {
|
|
'click #basic_auth_button' : 'togglePasswordContainer',
|
|
'click #apply_basic_auth' : 'applyPassword'
|
|
},
|
|
|
|
applyPassword: function(){
|
|
var username = $('.input_username').val();
|
|
var password = $('.input_password').val();
|
|
var basicAuth = new SwaggerClient.PasswordAuthorization('basic', username, password);
|
|
this.router.api.clientAuthorizations.add(this.model.type, basicAuth);
|
|
this.router.load();
|
|
$('#basic_auth_container').hide();
|
|
},
|
|
|
|
togglePasswordContainer: function(){
|
|
if ($('#basic_auth_container').length) {
|
|
var elem = $('#basic_auth_container').show();
|
|
if (elem.is(':visible')){
|
|
elem.slideUp();
|
|
} else {
|
|
// hide others
|
|
$('.auth_container').hide();
|
|
elem.show();
|
|
}
|
|
}
|
|
},
|
|
|
|
template: function(){
|
|
return Handlebars.templates.basic_auth_button_view;
|
|
}
|
|
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ContentTypeView = Backbone.View.extend({
|
|
initialize: function() {},
|
|
|
|
render: function(){
|
|
$(this.el).html(Handlebars.templates.content_type(this.model));
|
|
|
|
$('label[for=contentType]', $(this.el)).text('Response Content Type');
|
|
|
|
return this;
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.HeaderView = Backbone.View.extend({
|
|
events: {
|
|
'click #show-pet-store-icon' : 'showPetStore',
|
|
'click #show-wordnik-dev-icon' : 'showWordnikDev',
|
|
'click #explore' : 'showCustom',
|
|
'keyup #input_baseUrl' : 'showCustomOnKeyup',
|
|
'keyup #input_apiKey' : 'showCustomOnKeyup'
|
|
},
|
|
|
|
initialize: function(){},
|
|
|
|
showPetStore: function(){
|
|
this.trigger('update-swagger-ui', {
|
|
url:'http://petstore.swagger.wordnik.com/api/api-docs'
|
|
});
|
|
},
|
|
|
|
showWordnikDev: function(){
|
|
this.trigger('update-swagger-ui', {
|
|
url: 'http://api.wordnik.com/v4/resources.json'
|
|
});
|
|
},
|
|
|
|
showCustomOnKeyup: function(e){
|
|
if (e.keyCode === 13) {
|
|
this.showCustom();
|
|
}
|
|
},
|
|
|
|
showCustom: function(e){
|
|
if (e) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
this.trigger('update-swagger-ui', {
|
|
url: $('#input_baseUrl').val(),
|
|
apiKey: $('#input_apiKey').val()
|
|
});
|
|
},
|
|
|
|
update: function(url, apiKey, trigger){
|
|
if (trigger === undefined) {
|
|
trigger = false;
|
|
}
|
|
|
|
$('#input_baseUrl').val(url);
|
|
|
|
//$('#input_apiKey').val(apiKey);
|
|
if (trigger) {
|
|
this.trigger('update-swagger-ui', {url:url});
|
|
}
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.MainView = Backbone.View.extend({
|
|
|
|
// TODO: sorters were not used in any place, do we need them?
|
|
// sorters = {
|
|
// alpha : function(a,b){ return a.path.localeCompare(b.path); },
|
|
// method : function(a,b){ return a.method.localeCompare(b.method); },
|
|
// },
|
|
|
|
initialize: function(opts){
|
|
opts = opts || {};
|
|
|
|
this.router = opts.router;
|
|
|
|
// set up the UI for input
|
|
this.model.auths = [];
|
|
var key, value;
|
|
|
|
for (key in this.model.securityDefinitions) {
|
|
value = this.model.securityDefinitions[key];
|
|
|
|
this.model.auths.push({
|
|
name: key,
|
|
type: value.type,
|
|
value: value
|
|
});
|
|
}
|
|
|
|
if (this.model.swaggerVersion === '2.0') {
|
|
if ('validatorUrl' in opts.swaggerOptions) {
|
|
|
|
// Validator URL specified explicitly
|
|
this.model.validatorUrl = opts.swaggerOptions.validatorUrl;
|
|
|
|
} else if (this.model.url.indexOf('localhost') > 0) {
|
|
|
|
// Localhost override
|
|
this.model.validatorUrl = null;
|
|
|
|
} else {
|
|
|
|
// Default validator
|
|
this.model.validatorUrl = 'http://online.swagger.io/validator';
|
|
}
|
|
}
|
|
|
|
// JSonEditor requires type='object' to be present on defined types, we add it if it's missing
|
|
// is there any valid case were it should not be added ?
|
|
var def;
|
|
for(def in this.model.definitions){
|
|
this.model.definitions[def].type = 'object';
|
|
}
|
|
|
|
},
|
|
|
|
render: function(){
|
|
if (this.model.securityDefinitions) {
|
|
for (var name in this.model.securityDefinitions) {
|
|
var auth = this.model.securityDefinitions[name];
|
|
var button;
|
|
|
|
if (auth.type === 'apiKey' && $('#apikey_button').length === 0) {
|
|
button = new SwaggerUi.Views.ApiKeyButton({model: auth, router: this.router}).render().el;
|
|
$('.auth_main_container').append(button);
|
|
}
|
|
|
|
if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) {
|
|
button = new SwaggerUi.Views.BasicAuthButton({model: auth, router: this.router}).render().el;
|
|
$('.auth_main_container').append(button);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Render the outer container for resources
|
|
$(this.el).html(Handlebars.templates.main(this.model));
|
|
|
|
// Render each resource
|
|
|
|
var resources = {};
|
|
var counter = 0;
|
|
for (var i = 0; i < this.model.apisArray.length; i++) {
|
|
var resource = this.model.apisArray[i];
|
|
var id = resource.name;
|
|
while (typeof resources[id] !== 'undefined') {
|
|
id = id + '_' + counter;
|
|
counter += 1;
|
|
}
|
|
resource.id = id;
|
|
resources[id] = resource;
|
|
this.addResource(resource, this.model.auths);
|
|
}
|
|
|
|
$('.propWrap').hover(function onHover(){
|
|
$('.optionsWrapper', $(this)).show();
|
|
}, function offhover(){
|
|
$('.optionsWrapper', $(this)).hide();
|
|
});
|
|
return this;
|
|
},
|
|
|
|
addResource: function(resource, auths){
|
|
// Render a resource and add it to resources li
|
|
resource.id = resource.id.replace(/\s/g, '_');
|
|
|
|
// Make all definitions available at the root of the resource so that they can
|
|
// be loaded by the JSonEditor
|
|
resource.definitions = this.model.definitions
|
|
|
|
var resourceView = new SwaggerUi.Views.ResourceView({
|
|
model: resource,
|
|
router: this.router,
|
|
tagName: 'li',
|
|
id: 'resource_' + resource.id,
|
|
className: 'resource',
|
|
auths: auths,
|
|
swaggerOptions: this.options.swaggerOptions
|
|
});
|
|
$('#resources').append(resourceView.render().el);
|
|
},
|
|
|
|
clear: function(){
|
|
$(this.el).html('');
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.OperationView = Backbone.View.extend({
|
|
invocationUrl: null,
|
|
|
|
events: {
|
|
'submit .sandbox' : 'submitOperation',
|
|
'click .submit' : 'submitOperation',
|
|
'click .response_hider' : 'hideResponse',
|
|
'click .toggleOperation' : 'toggleOperationContent',
|
|
'mouseenter .api-ic' : 'mouseEnter',
|
|
'mouseout .api-ic' : 'mouseExit',
|
|
},
|
|
|
|
initialize: function(opts) {
|
|
opts = opts || {};
|
|
this.router = opts.router;
|
|
this.auths = opts.auths;
|
|
this.parentId = this.model.parentId;
|
|
this.nickname = this.model.nickname;
|
|
this.model.encodedParentId = encodeURIComponent(this.parentId);
|
|
return this;
|
|
},
|
|
|
|
mouseEnter: function(e) {
|
|
var elem = $(this.el).find('.content');
|
|
var x = e.pageX;
|
|
var y = e.pageY;
|
|
var scX = $(window).scrollLeft();
|
|
var scY = $(window).scrollTop();
|
|
var scMaxX = scX + $(window).width();
|
|
var scMaxY = scY + $(window).height();
|
|
var wd = elem.width();
|
|
var hgh = elem.height();
|
|
|
|
if (x + wd > scMaxX) {
|
|
x = scMaxX - wd;
|
|
}
|
|
|
|
if (x < scX) {
|
|
x = scX;
|
|
}
|
|
|
|
if (y + hgh > scMaxY) {
|
|
y = scMaxY - hgh;
|
|
}
|
|
|
|
if (y < scY) {
|
|
y = scY;
|
|
}
|
|
|
|
var pos = {};
|
|
pos.top = y;
|
|
pos.left = x;
|
|
elem.css(pos);
|
|
$(e.currentTarget.parentNode).find('#api_information_panel').show();
|
|
},
|
|
|
|
mouseExit: function(e) {
|
|
$(e.currentTarget.parentNode).find('#api_information_panel').hide();
|
|
},
|
|
|
|
// Note: copied from CoffeeScript compiled file
|
|
// TODO: redactor
|
|
render: function() {
|
|
var a, auth, auths, code, contentTypeModel, isMethodSubmissionSupported, k, key, l, len, len1, len2, len3, len4, m, modelAuths, n, o, p, param, q, ref, ref1, ref2, ref3, ref4, ref5, responseContentTypeView, responseSignatureView, schema, schemaObj, scopeIndex, signatureModel, statusCode, successResponse, type, v, value;
|
|
isMethodSubmissionSupported = jQuery.inArray(this.model.method, this.model.supportedSubmitMethods()) >= 0;
|
|
if (!isMethodSubmissionSupported) {
|
|
this.model.isReadOnly = true;
|
|
}
|
|
this.model.description = this.model.description || this.model.notes;
|
|
this.model.oauth = null;
|
|
modelAuths = this.model.authorizations || this.model.security;
|
|
if (modelAuths) {
|
|
if (Array.isArray(modelAuths)) {
|
|
for (l = 0, len = modelAuths.length; l < len; l++) {
|
|
auths = modelAuths[l];
|
|
for (key in auths) {
|
|
auth = auths[key];
|
|
for (a in this.auths) {
|
|
auth = this.auths[a];
|
|
if (auth.type === 'oauth2') {
|
|
this.model.oauth = {};
|
|
this.model.oauth.scopes = [];
|
|
ref1 = auth.value.scopes;
|
|
for (k in ref1) {
|
|
v = ref1[k];
|
|
scopeIndex = auths[key].indexOf(k);
|
|
if (scopeIndex >= 0) {
|
|
o = {
|
|
scope: k,
|
|
description: v
|
|
};
|
|
this.model.oauth.scopes.push(o);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
for (k in modelAuths) {
|
|
v = modelAuths[k];
|
|
if (k === 'oauth2') {
|
|
if (this.model.oauth === null) {
|
|
this.model.oauth = {};
|
|
}
|
|
if (this.model.oauth.scopes === void 0) {
|
|
this.model.oauth.scopes = [];
|
|
}
|
|
for (m = 0, len1 = v.length; m < len1; m++) {
|
|
o = v[m];
|
|
this.model.oauth.scopes.push(o);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (typeof this.model.responses !== 'undefined') {
|
|
this.model.responseMessages = [];
|
|
ref2 = this.model.responses;
|
|
for (code in ref2) {
|
|
value = ref2[code];
|
|
schema = null;
|
|
schemaObj = this.model.responses[code].schema;
|
|
if (schemaObj && schemaObj.$ref) {
|
|
schema = schemaObj.$ref;
|
|
if (schema.indexOf('#/definitions/') === 0) {
|
|
schema = schema.substring('#/definitions/'.length);
|
|
}
|
|
}
|
|
this.model.responseMessages.push({
|
|
code: code,
|
|
message: value.description,
|
|
responseModel: schema
|
|
});
|
|
}
|
|
}
|
|
if (typeof this.model.responseMessages === 'undefined') {
|
|
this.model.responseMessages = [];
|
|
}
|
|
signatureModel = null;
|
|
if (this.model.successResponse) {
|
|
successResponse = this.model.successResponse;
|
|
for (key in successResponse) {
|
|
value = successResponse[key];
|
|
this.model.successCode = key;
|
|
if (typeof value === 'object' && typeof value.createJSONSample === 'function') {
|
|
signatureModel = {
|
|
sampleJSON: JSON.stringify(value.createJSONSample(), void 0, 2),
|
|
isParam: false,
|
|
signature: value.getMockSignature()
|
|
};
|
|
}
|
|
}
|
|
} else if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') {
|
|
signatureModel = {
|
|
sampleJSON: this.model.responseSampleJSON,
|
|
isParam: false,
|
|
signature: this.model.responseClassSignature
|
|
};
|
|
}
|
|
$(this.el).html(Handlebars.templates.operation(this.model));
|
|
if (signatureModel) {
|
|
responseSignatureView = new SwaggerUi.Views.SignatureView({
|
|
model: signatureModel,
|
|
router: this.router,
|
|
tagName: 'div'
|
|
});
|
|
$('.model-signature', $(this.el)).append(responseSignatureView.render().el);
|
|
} else {
|
|
this.model.responseClassSignature = 'string';
|
|
$('.model-signature', $(this.el)).html(this.model.type);
|
|
}
|
|
contentTypeModel = {
|
|
isParam: false
|
|
};
|
|
contentTypeModel.consumes = this.model.consumes;
|
|
contentTypeModel.produces = this.model.produces;
|
|
ref3 = this.model.parameters;
|
|
for (n = 0, len2 = ref3.length; n < len2; n++) {
|
|
param = ref3[n];
|
|
type = param.type || param.dataType || '';
|
|
if (typeof type === 'undefined') {
|
|
schema = param.schema;
|
|
if (schema && schema.$ref) {
|
|
ref = schema.$ref;
|
|
if (ref.indexOf('#/definitions/') === 0) {
|
|
type = ref.substring('#/definitions/'.length);
|
|
} else {
|
|
type = ref;
|
|
}
|
|
}
|
|
}
|
|
if (type && type.toLowerCase() === 'file') {
|
|
if (!contentTypeModel.consumes) {
|
|
contentTypeModel.consumes = 'multipart/form-data';
|
|
}
|
|
}
|
|
param.type = type;
|
|
}
|
|
responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({
|
|
model: contentTypeModel,
|
|
router: this.router
|
|
});
|
|
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
|
|
ref4 = this.model.parameters;
|
|
for (p = 0, len3 = ref4.length; p < len3; p++) {
|
|
param = ref4[p];
|
|
this.addParameter(param, contentTypeModel.consumes);
|
|
}
|
|
ref5 = this.model.responseMessages;
|
|
for (q = 0, len4 = ref5.length; q < len4; q++) {
|
|
statusCode = ref5[q];
|
|
this.addStatusCode(statusCode);
|
|
}
|
|
return this;
|
|
},
|
|
|
|
addParameter: function(param, consumes) {
|
|
// Render a parameter
|
|
param.consumes = consumes;
|
|
|
|
|
|
// Copy this param JSON spec so that it will be available for JsonEditor
|
|
if(param.schema){
|
|
$.extend(true, param.schema, this.model.definitions[param.type]);
|
|
param.schema.definitions = this.model.definitions;
|
|
// This is required for JsonEditor to display the root properly
|
|
param.schema.type = "object";
|
|
// This is the title that will be used by JsonEditor for the root
|
|
// Since we already display the parameter's name in the Parameter column
|
|
// We set this to space, we can't set it to null or space otherwise JsonEditor
|
|
// will replace it with the text "root" which won't look good on screen
|
|
param.schema.title = " ";
|
|
}
|
|
|
|
|
|
var paramView = new SwaggerUi.Views.ParameterView({
|
|
model: param,
|
|
tagName: 'tr',
|
|
readOnly: this.model.isReadOnly,
|
|
swaggerOptions: this.options.swaggerOptions
|
|
});
|
|
$('.operation-params', $(this.el)).append(paramView.render().el);
|
|
},
|
|
|
|
addStatusCode: function(statusCode) {
|
|
// Render status codes
|
|
var statusCodeView = new SwaggerUi.Views.StatusCodeView({
|
|
model: statusCode,
|
|
tagName: 'tr',
|
|
router: this.router
|
|
});
|
|
$('.operation-status', $(this.el)).append(statusCodeView.render().el);
|
|
},
|
|
|
|
// Note: copied from CoffeeScript compiled file
|
|
// TODO: redactor
|
|
submitOperation: function(e) {
|
|
var error_free, form, isFileUpload, l, len, len1, len2, m, map, n, o, opts, ref1, ref2, ref3, val;
|
|
if (e !== null) {
|
|
e.preventDefault();
|
|
}
|
|
form = $('.sandbox', $(this.el));
|
|
error_free = true;
|
|
form.find('input.required').each(function() {
|
|
$(this).removeClass('error');
|
|
if (jQuery.trim($(this).val()) === '') {
|
|
$(this).addClass('error');
|
|
$(this).wiggle({
|
|
callback: (function(_this) {
|
|
return function() {
|
|
$(_this).focus();
|
|
};
|
|
})(this)
|
|
});
|
|
error_free = false;
|
|
}
|
|
});
|
|
form.find('textarea.required').each(function() {
|
|
$(this).removeClass('error');
|
|
if (jQuery.trim($(this).val()) === '') {
|
|
$(this).addClass('error');
|
|
$(this).wiggle({
|
|
callback: (function(_this) {
|
|
return function() {
|
|
return $(_this).focus();
|
|
};
|
|
})(this)
|
|
});
|
|
error_free = false;
|
|
}
|
|
});
|
|
if (error_free) {
|
|
map = {};
|
|
opts = {
|
|
parent: this
|
|
};
|
|
isFileUpload = false;
|
|
ref1 = form.find('input');
|
|
for (l = 0, len = ref1.length; l < len; l++) {
|
|
o = ref1[l];
|
|
if ((o.value !== null) && jQuery.trim(o.value).length > 0) {
|
|
map[o.name] = o.value;
|
|
}
|
|
if (o.type === 'file') {
|
|
map[o.name] = o.files[0];
|
|
isFileUpload = true;
|
|
}
|
|
}
|
|
ref2 = form.find('textarea');
|
|
for (m = 0, len1 = ref2.length; m < len1; m++) {
|
|
o = ref2[m];
|
|
if ((o.value !== null) && jQuery.trim(o.value).length > 0) {
|
|
map[o.name] = o.value;
|
|
}
|
|
}
|
|
ref3 = form.find('select');
|
|
for (n = 0, len2 = ref3.length; n < len2; n++) {
|
|
o = ref3[n];
|
|
val = this.getSelectedValue(o);
|
|
if ((val !== null) && jQuery.trim(val).length > 0) {
|
|
map[o.name] = val;
|
|
}
|
|
}
|
|
|
|
var pi;
|
|
for(pi = 0; pi < this.model.parameters.length; pi++){
|
|
var p = this.model.parameters[pi];
|
|
if( p.jsonEditor && p.jsonEditor.isEnabled()){
|
|
var json = p.jsonEditor.getValue();
|
|
map[p.name] = JSON.stringify(json);
|
|
}
|
|
}
|
|
|
|
opts.responseContentType = $('div select[name=responseContentType]', $(this.el)).val();
|
|
opts.requestContentType = $('div select[name=parameterContentType]', $(this.el)).val();
|
|
$('.response_throbber', $(this.el)).show();
|
|
if (isFileUpload) {
|
|
return this.handleFileUpload(map, form);
|
|
} else {
|
|
return this.model['do'](map, opts, this.showCompleteStatus, this.showErrorStatus, this);
|
|
}
|
|
}
|
|
},
|
|
|
|
success: function(response, parent) {
|
|
parent.showCompleteStatus(response);
|
|
},
|
|
|
|
// Note: This is compiled code
|
|
// TODO: Refactor
|
|
handleFileUpload: function(map, form) {
|
|
var bodyParam, el, headerParams, l, len, len1, len2, len3, m, n, o, obj, p, param, params, ref1, ref2, ref3, ref4;
|
|
ref1 = form.serializeArray();
|
|
for (l = 0, len = ref1.length; l < len; l++) {
|
|
o = ref1[l];
|
|
if ((o.value !== null) && jQuery.trim(o.value).length > 0) {
|
|
map[o.name] = o.value;
|
|
}
|
|
}
|
|
bodyParam = new FormData();
|
|
params = 0;
|
|
ref2 = this.model.parameters;
|
|
for (m = 0, len1 = ref2.length; m < len1; m++) {
|
|
param = ref2[m];
|
|
if (param.paramType === 'form' || param['in'] === 'formData') {
|
|
if (param.type.toLowerCase() !== 'file' && map[param.name] !== void 0) {
|
|
bodyParam.append(param.name, map[param.name]);
|
|
}
|
|
}
|
|
}
|
|
headerParams = {};
|
|
ref3 = this.model.parameters;
|
|
for (n = 0, len2 = ref3.length; n < len2; n++) {
|
|
param = ref3[n];
|
|
if (param.paramType === 'header') {
|
|
headerParams[param.name] = map[param.name];
|
|
}
|
|
}
|
|
ref4 = form.find('input[type~="file"]');
|
|
for (p = 0, len3 = ref4.length; p < len3; p++) {
|
|
el = ref4[p];
|
|
if (typeof el.files[0] !== 'undefined') {
|
|
bodyParam.append($(el).attr('name'), el.files[0]);
|
|
params += 1;
|
|
}
|
|
}
|
|
this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), delete headerParams['Content-Type'], this.model.urlify(map, false)) : this.model.urlify(map, true);
|
|
$('.request_url', $(this.el)).html('<pre></pre>');
|
|
$('.request_url pre', $(this.el)).text(this.invocationUrl);
|
|
obj = {
|
|
type: this.model.method,
|
|
url: this.invocationUrl,
|
|
headers: headerParams,
|
|
data: bodyParam,
|
|
dataType: 'json',
|
|
contentType: false,
|
|
processData: false,
|
|
error: (function(_this) {
|
|
return function(data) {
|
|
return _this.showErrorStatus(_this.wrap(data), _this);
|
|
};
|
|
})(this),
|
|
success: (function(_this) {
|
|
return function(data) {
|
|
return _this.showResponse(data, _this);
|
|
};
|
|
})(this),
|
|
complete: (function(_this) {
|
|
return function(data) {
|
|
return _this.showCompleteStatus(_this.wrap(data), _this);
|
|
};
|
|
})(this)
|
|
};
|
|
if (window.authorizations) {
|
|
window.authorizations.apply(obj);
|
|
}
|
|
jQuery.ajax(obj);
|
|
return false;
|
|
// end of file-upload nastiness
|
|
},
|
|
// wraps a jquery response as a shred response
|
|
|
|
wrap: function(data) {
|
|
var h, headerArray, headers, i, l, len, o;
|
|
headers = {};
|
|
headerArray = data.getAllResponseHeaders().split('\r');
|
|
for (l = 0, len = headerArray.length; l < len; l++) {
|
|
i = headerArray[l];
|
|
h = i.match(/^([^:]*?):(.*)$/);
|
|
if (!h) {
|
|
h = [];
|
|
}
|
|
h.shift();
|
|
if (h[0] !== void 0 && h[1] !== void 0) {
|
|
headers[h[0].trim()] = h[1].trim();
|
|
}
|
|
}
|
|
o = {};
|
|
o.content = {};
|
|
o.content.data = data.responseText;
|
|
o.headers = headers;
|
|
o.request = {};
|
|
o.request.url = this.invocationUrl;
|
|
o.status = data.status;
|
|
return o;
|
|
},
|
|
|
|
getSelectedValue: function(select) {
|
|
if (!select.multiple) {
|
|
return select.value;
|
|
} else {
|
|
var options = [];
|
|
for (var l = 0, len = select.options.length; l < len; l++) {
|
|
var opt = select.options[l];
|
|
if (opt.selected) {
|
|
options.push(opt.value);
|
|
}
|
|
}
|
|
if (options.length > 0) {
|
|
return options;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
},
|
|
|
|
// handler for hide response link
|
|
hideResponse: function(e) {
|
|
if (e) { e.preventDefault(); }
|
|
$('.response', $(this.el)).slideUp();
|
|
$('.response_hider', $(this.el)).fadeOut();
|
|
},
|
|
|
|
// Show response from server
|
|
showResponse: function(response) {
|
|
var prettyJson = JSON.stringify(response, null, '\t').replace(/\n/g, '<br>');
|
|
$('.response_body', $(this.el)).html(_.escape(prettyJson));
|
|
},
|
|
|
|
// Show error from server
|
|
showErrorStatus: function(data, parent) {
|
|
parent.showStatus(data);
|
|
},
|
|
|
|
// show the status codes
|
|
showCompleteStatus: function(data, parent){
|
|
parent.showStatus(data);
|
|
},
|
|
|
|
// Adapted from http://stackoverflow.com/a/2893259/454004
|
|
// Note: directly ported from CoffeeScript
|
|
// TODO: Cleanup CoffeeScript artifacts
|
|
formatXml: function(xml) {
|
|
var contexp, fn, formatted, indent, l, lastType, len, lines, ln, pad, reg, transitions, wsexp;
|
|
reg = /(>)(<)(\/*)/g;
|
|
wsexp = /[ ]*(.*)[ ]+\n/g;
|
|
contexp = /(<.+>)(.+\n)/g;
|
|
xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2');
|
|
pad = 0;
|
|
formatted = '';
|
|
lines = xml.split('\n');
|
|
indent = 0;
|
|
lastType = 'other';
|
|
transitions = {
|
|
'single->single': 0,
|
|
'single->closing': -1,
|
|
'single->opening': 0,
|
|
'single->other': 0,
|
|
'closing->single': 0,
|
|
'closing->closing': -1,
|
|
'closing->opening': 0,
|
|
'closing->other': 0,
|
|
'opening->single': 1,
|
|
'opening->closing': 0,
|
|
'opening->opening': 1,
|
|
'opening->other': 1,
|
|
'other->single': 0,
|
|
'other->closing': -1,
|
|
'other->opening': 0,
|
|
'other->other': 0
|
|
};
|
|
fn = function(ln) {
|
|
var fromTo, j, key, padding, type, types, value;
|
|
types = {
|
|
single: Boolean(ln.match(/<.+\/>/)),
|
|
closing: Boolean(ln.match(/<\/.+>/)),
|
|
opening: Boolean(ln.match(/<[^!?].*>/))
|
|
};
|
|
type = ((function() {
|
|
var results;
|
|
results = [];
|
|
for (key in types) {
|
|
value = types[key];
|
|
if (value) {
|
|
results.push(key);
|
|
}
|
|
}
|
|
return results;
|
|
})())[0];
|
|
type = type === void 0 ? 'other' : type;
|
|
fromTo = lastType + '->' + type;
|
|
lastType = type;
|
|
padding = '';
|
|
indent += transitions[fromTo];
|
|
padding = ((function() {
|
|
var m, ref1, results;
|
|
results = [];
|
|
for (j = m = 0, ref1 = indent; 0 <= ref1 ? m < ref1 : m > ref1; j = 0 <= ref1 ? ++m : --m) {
|
|
results.push(' ');
|
|
}
|
|
return results;
|
|
})()).join('');
|
|
if (fromTo === 'opening->closing') {
|
|
formatted = formatted.substr(0, formatted.length - 1) + ln + '\n';
|
|
} else {
|
|
formatted += padding + ln + '\n';
|
|
}
|
|
};
|
|
for (l = 0, len = lines.length; l < len; l++) {
|
|
ln = lines[l];
|
|
fn(ln);
|
|
}
|
|
return formatted;
|
|
},
|
|
|
|
// puts the response data in UI
|
|
showStatus: function(response) {
|
|
var url, content;
|
|
if (response.content === undefined) {
|
|
content = response.data;
|
|
url = response.url;
|
|
} else {
|
|
content = response.content.data;
|
|
url = response.request.url;
|
|
}
|
|
var headers = response.headers;
|
|
|
|
// if server is nice, and sends content-type back, we can use it
|
|
var contentType = null;
|
|
if (headers) {
|
|
contentType = headers['Content-Type'] || headers['content-type'];
|
|
if (contentType) {
|
|
contentType = contentType.split(';')[0].trim();
|
|
}
|
|
}
|
|
$('.response_body', $(this.el)).removeClass('json');
|
|
$('.response_body', $(this.el)).removeClass('xml');
|
|
|
|
var supportsAudioPlayback = function(contentType){
|
|
var audioElement = document.createElement('audio');
|
|
return !!(audioElement.canPlayType && audioElement.canPlayType(contentType).replace(/no/, ''));
|
|
};
|
|
|
|
var pre;
|
|
var code;
|
|
if (!content) {
|
|
code = $('<code />').text('no content');
|
|
pre = $('<pre class="json" />').append(code);
|
|
} else if (contentType === 'application/json' || /\+json$/.test(contentType)) {
|
|
var json = null;
|
|
try {
|
|
json = JSON.stringify(JSON.parse(content), null, ' ');
|
|
} catch (_error) {
|
|
json = 'can\'t parse JSON. Raw result:\n\n' + content;
|
|
}
|
|
code = $('<code />').text(json);
|
|
pre = $('<pre class="json" />').append(code);
|
|
} else if (contentType === 'application/xml' || /\+xml$/.test(contentType)) {
|
|
code = $('<code />').text(this.formatXml(content));
|
|
pre = $('<pre class="xml" />').append(code);
|
|
} else if (contentType === 'text/html') {
|
|
code = $('<code />').html(_.escape(content));
|
|
pre = $('<pre class="xml" />').append(code);
|
|
} else if (/^image\//.test(contentType)) {
|
|
pre = $('<img>').attr('src', url);
|
|
} else if (/^audio\//.test(contentType) && supportsAudioPlayback(contentType)) {
|
|
pre = $('<audio controls>').append($('<source>').attr('src', url).attr('type', contentType));
|
|
} else {
|
|
code = $('<code />').text(content);
|
|
pre = $('<pre class="json" />').append(code);
|
|
}
|
|
var response_body = pre;
|
|
$('.request_url', $(this.el)).html('<pre></pre>');
|
|
$('.request_url pre', $(this.el)).text(url);
|
|
$('.response_code', $(this.el)).html('<pre>' + response.status + '</pre>');
|
|
$('.response_body', $(this.el)).html(response_body);
|
|
$('.response_headers', $(this.el)).html('<pre>' + _.escape(JSON.stringify(response.headers, null, ' ')).replace(/\n/g, '<br>') + '</pre>');
|
|
$('.response', $(this.el)).slideDown();
|
|
$('.response_hider', $(this.el)).show();
|
|
$('.response_throbber', $(this.el)).hide();
|
|
var response_body_el = $('.response_body', $(this.el))[0];
|
|
|
|
// only highlight the response if response is less than threshold, default state is highlight response
|
|
var opts = this.options.swaggerOptions;
|
|
if (opts.highlightSizeThreshold && response.data.length > opts.highlightSizeThreshold) {
|
|
return response_body_el;
|
|
} else {
|
|
return hljs.highlightBlock(response_body_el);
|
|
}
|
|
},
|
|
|
|
toggleOperationContent: function() {
|
|
var elem = $('#' + Docs.escapeResourceName(this.parentId + '_' + this.nickname + '_content'));
|
|
if (elem.is(':visible')){
|
|
Docs.collapseOperation(elem);
|
|
} else {
|
|
Docs.expandOperation(elem);
|
|
}
|
|
}
|
|
});
|
|
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ParameterContentTypeView = Backbone.View.extend({
|
|
initialize: function () {},
|
|
|
|
render: function(){
|
|
$(this.el).html(Handlebars.templates.parameter_content_type(this.model));
|
|
|
|
$('label[for=parameterContentType]', $(this.el)).text('Parameter content type:');
|
|
|
|
return this;
|
|
}
|
|
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ParameterView = Backbone.View.extend({
|
|
initialize: function(){
|
|
Handlebars.registerHelper('isArray', function(param, opts) {
|
|
if (param.type.toLowerCase() === 'array' || param.allowMultiple) {
|
|
opts.fn(this);
|
|
} else {
|
|
opts.inverse(this);
|
|
}
|
|
});
|
|
},
|
|
|
|
render: function() {
|
|
var type = this.model.type || this.model.dataType;
|
|
|
|
if (typeof type === 'undefined') {
|
|
var schema = this.model.schema;
|
|
if (schema && schema.$ref) {
|
|
var ref = schema.$ref;
|
|
if (ref.indexOf('#/definitions/') === 0) {
|
|
type = ref.substring('#/definitions/'.length);
|
|
} else {
|
|
type = ref;
|
|
}
|
|
}
|
|
}
|
|
|
|
this.model.type = type;
|
|
this.model.paramType = this.model.in || this.model.paramType;
|
|
this.model.isBody = this.model.paramType === 'body' || this.model.in === 'body';
|
|
this.model.isFile = type && type.toLowerCase() === 'file';
|
|
this.model.default = (this.model.default || this.model.defaultValue);
|
|
|
|
if (this.model.allowableValues) {
|
|
this.model.isList = true;
|
|
}
|
|
|
|
var template = this.template();
|
|
$(this.el).html(template(this.model));
|
|
|
|
var signatureModel = {
|
|
sampleJSON: this.model.sampleJSON,
|
|
isParam: true,
|
|
signature: this.model.signature
|
|
};
|
|
|
|
if (this.model.sampleJSON) {
|
|
var signatureView = new SwaggerUi.Views.SignatureView({model: signatureModel, tagName: 'div'});
|
|
$('.model-signature', $(this.el)).append(signatureView.render().el);
|
|
}
|
|
else {
|
|
$('.model-signature', $(this.el)).html(this.model.signature);
|
|
}
|
|
|
|
var isParam = false;
|
|
|
|
if( this.options.swaggerOptions.jsonEditor && this.model.isBody && this.model.schema){
|
|
var $self = $(this.el);
|
|
this.model.jsonEditor =
|
|
new JSONEditor($('.editor_holder', $self)[0],
|
|
{schema: this.model.schema, startval : this.model.default, ajax:true });
|
|
// This is so that the signature can send back the sample to the json editor
|
|
// TODO: SignatureView should expose an event "onSampleClicked" instead
|
|
signatureModel.jsonEditor = this.model.jsonEditor;
|
|
$('.body-textarea', $self).hide();
|
|
$('.editor_holder', $self).show();
|
|
$('.parameter-content-type', $self)
|
|
.change(function(e){
|
|
if(e.target.value == "application/xml"){
|
|
$('.body-textarea', $self).show();
|
|
$('.editor_holder', $self).hide();
|
|
this.model.jsonEditor.disable();
|
|
}
|
|
else {
|
|
$('.body-textarea', $self).hide();
|
|
$('.editor_holder', $self).show();
|
|
this.model.jsonEditor.enable();
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
if (this.model.isBody) {
|
|
isParam = true;
|
|
}
|
|
|
|
var contentTypeModel = {
|
|
isParam: isParam
|
|
};
|
|
|
|
contentTypeModel.consumes = this.model.consumes;
|
|
|
|
if (isParam) {
|
|
var parameterContentTypeView = new SwaggerUi.Views.ParameterContentTypeView({model: contentTypeModel});
|
|
$('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el);
|
|
}
|
|
|
|
else {
|
|
var responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({model: contentTypeModel});
|
|
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
|
|
}
|
|
|
|
return this;
|
|
},
|
|
|
|
// Return an appropriate template based on if the parameter is a list, readonly, required
|
|
template: function(){
|
|
if (this.model.isList) {
|
|
return Handlebars.templates.param_list;
|
|
} else {
|
|
if (this.options.readOnly) {
|
|
if (this.model.required) {
|
|
return Handlebars.templates.param_readonly_required;
|
|
} else {
|
|
return Handlebars.templates.param_readonly;
|
|
}
|
|
} else {
|
|
if (this.model.required) {
|
|
return Handlebars.templates.param_required;
|
|
} else {
|
|
return Handlebars.templates.param;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ResourceView = Backbone.View.extend({
|
|
initialize: function(opts) {
|
|
opts = opts || {};
|
|
this.router = opts.router;
|
|
this.auths = opts.auths;
|
|
if ('' === this.model.description) {
|
|
this.model.description = null;
|
|
}
|
|
if (this.model.description) {
|
|
this.model.summary = this.model.description;
|
|
}
|
|
},
|
|
|
|
render: function(){
|
|
var methods = {};
|
|
|
|
|
|
$(this.el).html(Handlebars.templates.resource(this.model));
|
|
|
|
// Render each operation
|
|
for (var i = 0; i < this.model.operationsArray.length; i++) {
|
|
var operation = this.model.operationsArray[i];
|
|
var counter = 0;
|
|
var id = operation.nickname;
|
|
|
|
while (typeof methods[id] !== 'undefined') {
|
|
id = id + '_' + counter;
|
|
counter += 1;
|
|
}
|
|
|
|
methods[id] = operation;
|
|
|
|
operation.nickname = id;
|
|
operation.parentId = this.model.id;
|
|
operation.definitions = this.model.definitions // make Json Schema available for JSonEditor in this operation
|
|
this.addOperation(operation);
|
|
}
|
|
|
|
$('.toggleEndpointList', this.el).click(this.callDocs.bind(this, 'toggleEndpointListForResource'));
|
|
$('.collapseResource', this.el).click(this.callDocs.bind(this, 'collapseOperationsForResource'));
|
|
$('.expandResource', this.el).click(this.callDocs.bind(this, 'expandOperationsForResource'));
|
|
|
|
return this;
|
|
},
|
|
|
|
addOperation: function(operation) {
|
|
|
|
operation.number = this.number;
|
|
|
|
// Render an operation and add it to operations li
|
|
var operationView = new SwaggerUi.Views.OperationView({
|
|
model: operation,
|
|
router: this.router,
|
|
tagName: 'li',
|
|
className: 'endpoint',
|
|
swaggerOptions: this.options.swaggerOptions,
|
|
auths: this.auths
|
|
});
|
|
|
|
$('.endpoints', $(this.el)).append(operationView.render().el);
|
|
|
|
this.number++;
|
|
|
|
},
|
|
// Generic Event handler (`Docs` is global)
|
|
|
|
|
|
callDocs: function(fnName, e) {
|
|
e.preventDefault();
|
|
Docs[fnName](e.currentTarget.getAttribute('data-id'));
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.ResponseContentTypeView = Backbone.View.extend({
|
|
initialize: function(){},
|
|
|
|
render: function(){
|
|
$(this.el).html(Handlebars.templates.response_content_type(this.model));
|
|
|
|
$('label[for=responseContentType]', $(this.el)).text('Response Content Type');
|
|
|
|
return this;
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.SignatureView = Backbone.View.extend({
|
|
events: {
|
|
'click a.description-link' : 'switchToDescription',
|
|
'click a.snippet-link' : 'switchToSnippet',
|
|
'mousedown .snippet' : 'snippetToTextArea'
|
|
},
|
|
|
|
initialize: function () {
|
|
|
|
},
|
|
|
|
render: function(){
|
|
|
|
$(this.el).html(Handlebars.templates.signature(this.model));
|
|
|
|
this.switchToSnippet();
|
|
|
|
this.isParam = this.model.isParam;
|
|
|
|
if (this.isParam) {
|
|
$('.notice', $(this.el)).text('Click to set as parameter value');
|
|
}
|
|
|
|
return this;
|
|
},
|
|
|
|
// handler for show signature
|
|
switchToDescription: function(e){
|
|
if (e) { e.preventDefault(); }
|
|
|
|
$('.snippet', $(this.el)).hide();
|
|
$('.description', $(this.el)).show();
|
|
$('.description-link', $(this.el)).addClass('selected');
|
|
$('.snippet-link', $(this.el)).removeClass('selected');
|
|
},
|
|
|
|
// handler for show sample
|
|
switchToSnippet: function(e){
|
|
if (e) { e.preventDefault(); }
|
|
|
|
$('.description', $(this.el)).hide();
|
|
$('.snippet', $(this.el)).show();
|
|
$('.snippet-link', $(this.el)).addClass('selected');
|
|
$('.description-link', $(this.el)).removeClass('selected');
|
|
},
|
|
|
|
// handler for snippet to text area
|
|
snippetToTextArea: function(e) {
|
|
if (this.isParam) {
|
|
if (e) { e.preventDefault(); }
|
|
|
|
var textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode));
|
|
if ($.trim(textArea.val()) === '') {
|
|
textArea.val(this.model.sampleJSON);
|
|
// TODO move this code outside of the view and expose an event instead
|
|
if( this.model.jsonEditor && this.model.jsonEditor.isEnabled()){
|
|
this.model.jsonEditor.setValue(JSON.parse(this.model.sampleJSON));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
'use strict';
|
|
|
|
SwaggerUi.Views.StatusCodeView = Backbone.View.extend({
|
|
initialize: function (opts) {
|
|
this.options = opts || {};
|
|
this.router = this.options.router;
|
|
},
|
|
|
|
render: function(){
|
|
$(this.el).html(Handlebars.templates.status_code(this.model));
|
|
|
|
if (this.router.api.models.hasOwnProperty(this.model.responseModel)) {
|
|
var responseModel = {
|
|
sampleJSON: JSON.stringify(this.router.api.models[this.model.responseModel].createJSONSample(), null, 2),
|
|
isParam: false,
|
|
signature: this.router.api.models[this.model.responseModel].getMockSignature(),
|
|
};
|
|
|
|
var responseModelView = new SwaggerUi.Views.SignatureView({model: responseModel, tagName: 'div'});
|
|
$('.model-signature', this.$el).append(responseModelView.render().el);
|
|
} else {
|
|
$('.model-signature', this.$el).html('');
|
|
}
|
|
return this;
|
|
}
|
|
});}).call(this); |