All Downloads are FREE. Search and download functionalities are using the official Maven repository.

swagger-ui.swagger-ui.js Maven / Gradle / Ivy

There is a newer version: 3
Show newest version
// swagger-ui.js
// version 2.0.23
$(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(i){
		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(i){
		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(a) {
  $('#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
log = function(){
  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);
}

var 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
				log('shebang resource:' + fragments[0]);
				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
				log('shebang endpoint: ' + fragments.join('_'));

        // 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";

        log("li_dom_id " + li_dom_id);
        log("li_content_dom_id " + li_content_dom_id);

				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);
		$('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);

		$('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();
	}
};(function() {
  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
templates['content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
  this.compilerInfo = [4,'>= 1.0.0'];
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
  var buffer = "", stack1, functionType="function", self=this;

function program1(depth0,data) {
  
  var buffer = "", stack1;
  buffer += "\n  ";
  stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
  if(stack1 || stack1 === 0) { buffer += stack1; }
  buffer += "\n";
  return buffer;
  }
function program2(depth0,data) {
  
  var buffer = "", stack1;
  buffer += "\n	\n	";
  return buffer;
  }

function program4(depth0,data) {
  
  
  return "\n  \n";
  }

  buffer += "\n\n";
  return buffer;
  });
})();

(function() {
  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
templates['main'] = template(function (Handlebars,depth0,helpers,partials,data) {
  this.compilerInfo = [4,'>= 1.0.0'];
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;

function program1(depth0,data) {
  
  var buffer = "", stack1, stack2;
  buffer += "\n    
" + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.title)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + "
\n
"; stack2 = ((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.description)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1); if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "
\n "; stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.termsOfServiceUrl), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data}); if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n "; stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.contact), {hash:{},inverse:self.noop,fn:self.program(4, program4, data),data:data}); if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n "; stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.license), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data}); if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n "; return buffer; } function program2(depth0,data) { var buffer = "", stack1; buffer += ""; return buffer; } function program4(depth0,data) { var buffer = "", stack1; buffer += ""; return buffer; } function program6(depth0,data) { var buffer = "", stack1; buffer += ""; return buffer; } function program8(depth0,data) { var buffer = "", stack1; buffer += "\n , api version: "; if (stack1 = helpers.apiVersion) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.apiVersion; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n "; return buffer; } buffer += "
\n "; stack1 = helpers['if'].call(depth0, depth0.info, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n
\n
\n
    \n
\n\n
\n
\n
\n

[ base url: "; if (stack1 = helpers.basePath) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.basePath; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n "; stack1 = helpers['if'].call(depth0, depth0.apiVersion, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "]

\n
\n
\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['operation'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, options, functionType="function", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n

Implementation Notes

\n

"; if (stack1 = helpers.notes) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.notes; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "

\n "; return buffer; } function program3(depth0,data) { return "\n
\n "; } function program5(depth0,data) { var buffer = "", stack1; buffer += "\n
\n "; stack1 = helpers.each.call(depth0, depth0, {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n
\n "; return buffer; } function program6(depth0,data) { var buffer = "", stack1, stack2; buffer += "\n
" + escapeExpression(((stack1 = depth0.scope),typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + "
\n "; return buffer; } function program8(depth0,data) { return "
"; } function program10(depth0,data) { return "\n
\n \n
\n "; } function program12(depth0,data) { return "\n

Response Class

\n

\n
\n
\n "; } function program14(depth0,data) { return "\n

Parameters

\n \n \n \n \n \n \n \n \n \n \n \n\n \n
ParameterValueDescriptionParameter TypeData Type
\n "; } function program16(depth0,data) { return "\n
\n

Response Messages

\n \n \n \n \n \n \n \n \n \n \n \n
HTTP Status CodeReasonResponse Model
\n "; } function program18(depth0,data) { return "\n "; } function program20(depth0,data) { return "\n
\n \n \n \n
\n "; } buffer += "\n \n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['param'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program2(depth0,data) { var buffer = "", stack1; buffer += "\n \n
\n "; return buffer; } function program4(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program5(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program7(depth0,data) { var buffer = "", stack1; buffer += "\n \n
\n
\n "; return buffer; } function program9(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(10, program10, data),fn:self.program(2, program2, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program10(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(13, program13, data),fn:self.program(11, program11, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program11(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program13(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } buffer += ""; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n\n\n "; stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n\n"; if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n \n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['param_list'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, stack2, options, self=this, helperMissing=helpers.helperMissing, functionType="function", escapeExpression=this.escapeExpression; function program1(depth0,data) { return " multiple='multiple'"; } function program3(depth0,data) { return "\n "; } function program5(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(8, program8, data),fn:self.program(6, program6, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program6(depth0,data) { return "\n "; } function program8(depth0,data) { var buffer = "", stack1, stack2, options; buffer += "\n "; options = {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data}; stack2 = ((stack1 = helpers.isArray || depth0.isArray),stack1 ? stack1.call(depth0, depth0, options) : helperMissing.call(depth0, "isArray", depth0, options)); if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n "; return buffer; } function program9(depth0,data) { return "\n "; } function program11(depth0,data) { return "\n \n "; } function program13(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.isDefault, {hash:{},inverse:self.program(16, program16, data),fn:self.program(14, program14, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program14(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program16(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } buffer += ""; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n\n \n\n"; if (stack2 = helpers.description) { stack2 = stack2.call(depth0, {hash:{},data:data}); } else { stack2 = depth0.description; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; } if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n"; if (stack2 = helpers.paramType) { stack2 = stack2.call(depth0, {hash:{},data:data}); } else { stack2 = depth0.paramType; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; } if(stack2 || stack2 === 0) { buffer += stack2; } buffer += "\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['param_readonly'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program3(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program4(depth0,data) { var buffer = "", stack1; buffer += "\n "; if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n "; return buffer; } function program6(depth0,data) { return "\n (empty)\n "; } buffer += ""; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n\n "; stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['param_readonly_required'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program3(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program4(depth0,data) { var buffer = "", stack1; buffer += "\n "; if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n "; return buffer; } function program6(depth0,data) { return "\n (empty)\n "; } buffer += ""; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n\n "; stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['param_required'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program2(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program4(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program5(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program7(depth0,data) { var buffer = "", stack1; buffer += "\n \n
\n
\n "; return buffer; } function program9(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(12, program12, data),fn:self.program(10, program10, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program10(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program12(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(15, program15, data),fn:self.program(13, program13, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n "; return buffer; } function program13(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program15(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } buffer += ""; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n\n "; stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n\n "; if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['parameter_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers.each.call(depth0, depth0.consumes, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; return buffer; } function program2(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program4(depth0,data) { return "\n \n"; } buffer += "\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['resource'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, options, functionType="function", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing; function program1(depth0,data) { return " : "; } buffer += "
\n

\n "; if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + " "; options = {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data}; if (stack1 = helpers.description) { stack1 = stack1.call(depth0, options); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if (!helpers.description) { stack1 = blockHelperMissing.call(depth0, stack1, options); } if(stack1 || stack1 === 0) { buffer += stack1; } if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n

\n \n
\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['response_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", self=this; function program1(depth0,data) { var buffer = "", stack1; buffer += "\n "; stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data}); if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; return buffer; } function program2(depth0,data) { var buffer = "", stack1; buffer += "\n \n "; return buffer; } function program4(depth0,data) { return "\n \n"; } buffer += "\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['signature'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression; buffer += "
\n\n
\n\n
\n
\n "; if (stack1 = helpers.signature) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.signature; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n
\n\n
\n
";
  if (stack1 = helpers.sampleJSON) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
  else { stack1 = depth0.sampleJSON; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
  buffer += escapeExpression(stack1)
    + "
\n \n
\n
\n\n"; return buffer; }); })(); (function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['status_code'] = template(function (Handlebars,depth0,helpers,partials,data) { this.compilerInfo = [4,'>= 1.0.0']; helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression; buffer += ""; if (stack1 = helpers.code) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.code; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } buffer += escapeExpression(stack1) + "\n"; if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); } else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; } if(stack1 || stack1 === 0) { buffer += stack1; } buffer += "\n"; return buffer; }); })(); // Generated by CoffeeScript 1.6.3 (function() { var ContentTypeView, HeaderView, MainView, OperationView, ParameterContentTypeView, ParameterView, ResourceView, ResponseContentTypeView, SignatureView, StatusCodeView, SwaggerUi, _ref, _ref1, _ref10, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; SwaggerUi = (function(_super) { __extends(SwaggerUi, _super); function SwaggerUi() { _ref = SwaggerUi.__super__.constructor.apply(this, arguments); return _ref; } SwaggerUi.prototype.dom_id = "swagger_ui"; SwaggerUi.prototype.options = null; SwaggerUi.prototype.api = null; SwaggerUi.prototype.headerView = null; SwaggerUi.prototype.mainView = null; SwaggerUi.prototype.initialize = function(options) { var _this = this; if (options == null) { options = {}; } if (options.dom_id != null) { this.dom_id = options.dom_id; delete options.dom_id; } if ($('#' + this.dom_id) == null) { $('body').append('
'); } this.options = options; this.options.success = function() { return _this.render(); }; this.options.progress = function(d) { return _this.showMessage(d); }; this.options.failure = function(d) { return _this.onLoadFailure(d); }; this.headerView = new HeaderView({ el: $('#header') }); return this.headerView.on('update-swagger-ui', function(data) { return _this.updateSwaggerUi(data); }); }; SwaggerUi.prototype.updateSwaggerUi = function(data) { this.options.url = data.url; return this.load(); }; SwaggerUi.prototype.load = function() { var url, _ref1; if ((_ref1 = this.mainView) != null) { _ref1.clear(); } url = this.options.url; if (url.indexOf("http") !== 0) { url = this.buildUrl(window.location.href.toString(), url); } this.options.url = url; this.headerView.update(url); this.api = new SwaggerApi(this.options); this.api.build(); return this.api; }; SwaggerUi.prototype.render = function() { var _this = this; this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...'); this.mainView = new MainView({ model: this.api, el: $('#' + this.dom_id), swaggerOptions: this.options }).render(); this.showMessage(); switch (this.options.docExpansion) { case "full": Docs.expandOperationsForResource(''); break; case "list": Docs.collapseOperationsForResource(''); } if (this.options.onComplete) { this.options.onComplete(this.api, this); } return setTimeout(function() { return Docs.shebang(); }, 400); }; SwaggerUi.prototype.buildUrl = function(base, url) { var endOfPath, parts; log("base is " + base); if (url.indexOf("/") === 0) { parts = base.split("/"); base = parts[0] + "//" + parts[2]; return base + url; } else { endOfPath = base.length; if (base.indexOf("?") > -1) { endOfPath = Math.min(endOfPath, base.indexOf("?")); } if (base.indexOf("#") > -1) { endOfPath = Math.min(endOfPath, base.indexOf("#")); } base = base.substring(0, endOfPath); if (base.indexOf("/", base.length - 1) !== -1) { return base + url; } return base + "/" + url; } }; SwaggerUi.prototype.showMessage = function(data) { if (data == null) { data = ''; } $('#message-bar').removeClass('message-fail'); $('#message-bar').addClass('message-success'); return $('#message-bar').html(data); }; SwaggerUi.prototype.onLoadFailure = function(data) { var val; if (data == null) { data = ''; } $('#message-bar').removeClass('message-success'); $('#message-bar').addClass('message-fail'); val = $('#message-bar').html(data); if (this.options.onFailure != null) { this.options.onFailure(data); } return val; }; return SwaggerUi; })(Backbone.Router); window.SwaggerUi = SwaggerUi; HeaderView = (function(_super) { __extends(HeaderView, _super); function HeaderView() { _ref1 = HeaderView.__super__.constructor.apply(this, arguments); return _ref1; } HeaderView.prototype.events = { 'click #show-pet-store-icon': 'showPetStore', 'click #show-wordnik-dev-icon': 'showWordnikDev', 'click #explore': 'showCustom', 'keyup #input_baseUrl': 'showCustomOnKeyup', 'keyup #input_apiKey': 'showCustomOnKeyup' }; HeaderView.prototype.initialize = function() {}; HeaderView.prototype.showPetStore = function(e) { return this.trigger('update-swagger-ui', { url: "http://petstore.swagger.wordnik.com/api/api-docs" }); }; HeaderView.prototype.showWordnikDev = function(e) { return this.trigger('update-swagger-ui', { url: "http://api.wordnik.com/v4/resources.json" }); }; HeaderView.prototype.showCustomOnKeyup = function(e) { if (e.keyCode === 13) { return this.showCustom(); } }; HeaderView.prototype.showCustom = function(e) { if (e != null) { e.preventDefault(); } return this.trigger('update-swagger-ui', { url: $('#input_baseUrl').val(), apiKey: $('#input_apiKey').val() }); }; HeaderView.prototype.update = function(url, apiKey, trigger) { if (trigger == null) { trigger = false; } $('#input_baseUrl').val(url); if (trigger) { return this.trigger('update-swagger-ui', { url: url }); } }; return HeaderView; })(Backbone.View); MainView = (function(_super) { var sorters; __extends(MainView, _super); function MainView() { _ref2 = MainView.__super__.constructor.apply(this, arguments); return _ref2; } sorters = { 'alpha': function(a, b) { return a.path.localeCompare(b.path); }, 'method': function(a, b) { return a.method.localeCompare(b.method); } }; MainView.prototype.initialize = function(opts) { var route, sorter, sorterName, _i, _len, _ref3; if (opts == null) { opts = {}; } if (opts.swaggerOptions.sorter) { sorterName = opts.swaggerOptions.sorter; sorter = sorters[sorterName]; _ref3 = this.model.apisArray; for (_i = 0, _len = _ref3.length; _i < _len; _i++) { route = _ref3[_i]; route.operationsArray.sort(sorter); } if (sorterName === "alpha") { return this.model.apisArray.sort(sorter); } } }; MainView.prototype.render = function() { var counter, id, resource, resources, _i, _len, _ref3; $(this.el).html(Handlebars.templates.main(this.model)); resources = {}; counter = 0; _ref3 = this.model.apisArray; for (_i = 0, _len = _ref3.length; _i < _len; _i++) { resource = _ref3[_i]; id = resource.name; while (typeof resources[id] !== 'undefined') { id = id + "_" + counter; counter += 1; } resource.id = id; resources[id] = resource; this.addResource(resource); } return this; }; MainView.prototype.addResource = function(resource) { var resourceView; resourceView = new ResourceView({ model: resource, tagName: 'li', id: 'resource_' + resource.id, className: 'resource', swaggerOptions: this.options.swaggerOptions }); return $('#resources').append(resourceView.render().el); }; MainView.prototype.clear = function() { return $(this.el).html(''); }; return MainView; })(Backbone.View); ResourceView = (function(_super) { __extends(ResourceView, _super); function ResourceView() { _ref3 = ResourceView.__super__.constructor.apply(this, arguments); return _ref3; } ResourceView.prototype.initialize = function() {}; ResourceView.prototype.render = function() { var counter, id, methods, operation, _i, _len, _ref4; $(this.el).html(Handlebars.templates.resource(this.model)); methods = {}; _ref4 = this.model.operationsArray; for (_i = 0, _len = _ref4.length; _i < _len; _i++) { operation = _ref4[_i]; counter = 0; id = operation.nickname; while (typeof methods[id] !== 'undefined') { id = id + "_" + counter; counter += 1; } methods[id] = operation; operation.nickname = id; operation.parentId = this.model.id; 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, 'expandOperationsForResoruce')); return this; }; ResourceView.prototype.addOperation = function(operation) { var operationView; operation.number = this.number; operationView = new OperationView({ model: operation, tagName: 'li', className: 'endpoint', swaggerOptions: this.options.swaggerOptions }); $('.endpoints', $(this.el)).append(operationView.render().el); return this.number++; }; ResourceView.prototype.callDocs = function(fnName, e) { e.preventDefault(); return Docs[fnName](e.currentTarget.getAttribute('data-id')); }; return ResourceView; })(Backbone.View); OperationView = (function(_super) { __extends(OperationView, _super); function OperationView() { _ref4 = OperationView.__super__.constructor.apply(this, arguments); return _ref4; } OperationView.prototype.invocationUrl = null; OperationView.prototype.events = { 'submit .sandbox': 'submitOperation', 'click .submit': 'submitOperation', 'click .response_hider': 'hideResponse', 'click .toggleOperation': 'toggleOperationContent', 'mouseenter .api-ic': 'mouseEnter', 'mouseout .api-ic': 'mouseExit' }; OperationView.prototype.initialize = function() {}; OperationView.prototype.mouseEnter = function(e) { var elem, hgh, pos, scMaxX, scMaxY, scX, scY, wd, x, y; elem = $(e.currentTarget.parentNode).find('#api_information_panel'); x = e.pageX; y = e.pageY; scX = $(window).scrollLeft(); scY = $(window).scrollTop(); scMaxX = scX + $(window).width(); scMaxY = scY + $(window).height(); wd = elem.width(); 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; } pos = {}; pos.top = y; pos.left = x; elem.css(pos); return $(e.currentTarget.parentNode).find('#api_information_panel').show(); }; OperationView.prototype.mouseExit = function(e) { return $(e.currentTarget.parentNode).find('#api_information_panel').hide(); }; OperationView.prototype.render = function() { var contentTypeModel, isMethodSubmissionSupported, k, o, param, responseContentTypeView, responseSignatureView, signatureModel, statusCode, type, v, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8; isMethodSubmissionSupported = true; if (!isMethodSubmissionSupported) { this.model.isReadOnly = true; } this.model.oauth = null; if (this.model.authorizations) { _ref5 = this.model.authorizations; for (k in _ref5) { v = _ref5[k]; if (k === "oauth2") { if (this.model.oauth === null) { this.model.oauth = {}; } if (this.model.oauth.scopes === void 0) { this.model.oauth.scopes = []; } for (_i = 0, _len = v.length; _i < _len; _i++) { o = v[_i]; this.model.oauth.scopes.push(o); } } } } $(this.el).html(Handlebars.templates.operation(this.model)); if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') { signatureModel = { sampleJSON: this.model.responseSampleJSON, isParam: false, signature: this.model.responseClassSignature }; responseSignatureView = new SignatureView({ model: signatureModel, tagName: 'div' }); $('.model-signature', $(this.el)).append(responseSignatureView.render().el); } else { $('.model-signature', $(this.el)).html(this.model.type); } contentTypeModel = { isParam: false }; contentTypeModel.consumes = this.model.consumes; contentTypeModel.produces = this.model.produces; _ref6 = this.model.parameters; for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) { param = _ref6[_j]; type = param.type || param.dataType; if (type.toLowerCase() === 'file') { if (!contentTypeModel.consumes) { log("set content type "); contentTypeModel.consumes = 'multipart/form-data'; } } } responseContentTypeView = new ResponseContentTypeView({ model: contentTypeModel }); $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); _ref7 = this.model.parameters; for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) { param = _ref7[_k]; this.addParameter(param, contentTypeModel.consumes); } _ref8 = this.model.responseMessages; for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) { statusCode = _ref8[_l]; this.addStatusCode(statusCode); } return this; }; OperationView.prototype.addParameter = function(param, consumes) { var paramView; param.consumes = consumes; paramView = new ParameterView({ model: param, tagName: 'tr', readOnly: this.model.isReadOnly }); return $('.operation-params', $(this.el)).append(paramView.render().el); }; OperationView.prototype.addStatusCode = function(statusCode) { var statusCodeView; statusCodeView = new StatusCodeView({ model: statusCode, tagName: 'tr' }); return $('.operation-status', $(this.el)).append(statusCodeView.render().el); }; OperationView.prototype.submitOperation = function(e) { var error_free, form, isFileUpload, map, o, opts, val, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7; if (e != null) { e.preventDefault(); } form = $('.sandbox', $(this.el)); error_free = true; form.find("input.required").each(function() { var _this = this; $(this).removeClass("error"); if (jQuery.trim($(this).val()) === "") { $(this).addClass("error"); $(this).wiggle({ callback: function() { return $(_this).focus(); } }); return error_free = false; } }); if (error_free) { map = {}; opts = { parent: this }; isFileUpload = false; _ref5 = form.find("input"); for (_i = 0, _len = _ref5.length; _i < _len; _i++) { o = _ref5[_i]; if ((o.value != null) && jQuery.trim(o.value).length > 0) { map[o.name] = o.value; } if (o.type === "file") { isFileUpload = true; } } _ref6 = form.find("textarea"); for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) { o = _ref6[_j]; if ((o.value != null) && jQuery.trim(o.value).length > 0) { map["body"] = o.value; } } _ref7 = form.find("select"); for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) { o = _ref7[_k]; val = this.getSelectedValue(o); if ((val != null) && jQuery.trim(val).length > 0) { map[o.name] = val; } } 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); } } }; OperationView.prototype.success = function(response, parent) { return parent.showCompleteStatus(response); }; OperationView.prototype.handleFileUpload = function(map, form) { var bodyParam, el, headerParams, o, obj, param, params, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8, _this = this; _ref5 = form.serializeArray(); for (_i = 0, _len = _ref5.length; _i < _len; _i++) { o = _ref5[_i]; if ((o.value != null) && jQuery.trim(o.value).length > 0) { map[o.name] = o.value; } } bodyParam = new FormData(); params = 0; _ref6 = this.model.parameters; for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) { param = _ref6[_j]; if (param.paramType === 'form') { if (param.type.toLowerCase() !== 'file' && map[param.name] !== void 0) { bodyParam.append(param.name, map[param.name]); } } } headerParams = {}; _ref7 = this.model.parameters; for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) { param = _ref7[_k]; if (param.paramType === 'header') { headerParams[param.name] = map[param.name]; } } log(headerParams); _ref8 = form.find('input[type~="file"]'); for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) { el = _ref8[_l]; 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), this.model.urlify(map, false)) : this.model.urlify(map, true); $(".request_url", $(this.el)).html("
");
      $(".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(data, textStatus, error) {
          return _this.showErrorStatus(_this.wrap(data), _this);
        },
        success: function(data) {
          return _this.showResponse(data, _this);
        },
        complete: function(data) {
          return _this.showCompleteStatus(_this.wrap(data), _this);
        }
      };
      if (window.authorizations) {
        window.authorizations.apply(obj);
      }
      if (params === 0) {
        obj.data.append("fake", "true");
      }
      jQuery.ajax(obj);
      return false;
    };

    OperationView.prototype.wrap = function(data) {
      var h, headerArray, headers, i, o, _i, _len;
      headers = {};
      headerArray = data.getAllResponseHeaders().split("\r");
      for (_i = 0, _len = headerArray.length; _i < _len; _i++) {
        i = headerArray[_i];
        h = i.split(':');
        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;
    };

    OperationView.prototype.getSelectedValue = function(select) {
      var opt, options, _i, _len, _ref5;
      if (!select.multiple) {
        return select.value;
      } else {
        options = [];
        _ref5 = select.options;
        for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
          opt = _ref5[_i];
          if (opt.selected) {
            options.push(opt.value);
          }
        }
        if (options.length > 0) {
          return options.join(",");
        } else {
          return null;
        }
      }
    };

    OperationView.prototype.hideResponse = function(e) {
      if (e != null) {
        e.preventDefault();
      }
      $(".response", $(this.el)).slideUp();
      return $(".response_hider", $(this.el)).fadeOut();
    };

    OperationView.prototype.showResponse = function(response) {
      var prettyJson;
      prettyJson = JSON.stringify(response, null, "\t").replace(/\n/g, "
"); return $(".response_body", $(this.el)).html(escape(prettyJson)); }; OperationView.prototype.showErrorStatus = function(data, parent) { return parent.showStatus(data); }; OperationView.prototype.showCompleteStatus = function(data, parent) { return parent.showStatus(data); }; OperationView.prototype.formatXml = function(xml) { var contexp, formatted, indent, lastType, lines, ln, pad, reg, transitions, wsexp, _fn, _i, _len; 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 _j, _ref5, _results; _results = []; for (j = _j = 0, _ref5 = indent; 0 <= _ref5 ? _j < _ref5 : _j > _ref5; j = 0 <= _ref5 ? ++_j : --_j) { _results.push(' '); } return _results; })()).join(''); if (fromTo === 'opening->closing') { return formatted = formatted.substr(0, formatted.length - 1) + ln + '\n'; } else { return formatted += padding + ln + '\n'; } }; for (_i = 0, _len = lines.length; _i < _len; _i++) { ln = lines[_i]; _fn(ln); } return formatted; }; OperationView.prototype.showStatus = function(response) { var code, content, contentType, headers, opts, pre, response_body, response_body_el, url; if (response.content === void 0) { content = response.data; url = response.url; } else { content = response.content.data; url = response.request.url; } headers = response.headers; contentType = headers && headers["Content-Type"] ? headers["Content-Type"].split(";")[0].trim() : null; if (!content) { code = $('').text("no content"); pre = $('
').append(code);
      } else if (contentType === "application/json" || /\+json$/.test(contentType)) {
        code = $('').text(JSON.stringify(JSON.parse(content), null, "  "));
        pre = $('
').append(code);
      } else if (contentType === "application/xml" || /\+xml$/.test(contentType)) {
        code = $('').text(this.formatXml(content));
        pre = $('
').append(code);
      } else if (contentType === "text/html") {
        code = $('').html(content);
        pre = $('
').append(code);
      } else if (/^image\//.test(contentType)) {
        pre = $('').attr('src', url);
      } else {
        code = $('').text(content);
        pre = $('
').append(code);
      }
      response_body = pre;
      $(".request_url", $(this.el)).html("
");
      $(".request_url pre", $(this.el)).text(url);
      $(".response_code", $(this.el)).html("
" + response.status + "
"); $(".response_body", $(this.el)).html(response_body); $(".response_headers", $(this.el)).html("
" + _.escape(JSON.stringify(response.headers, null, "  ")).replace(/\n/g, "
") + "
"); $(".response", $(this.el)).slideDown(); $(".response_hider", $(this.el)).show(); $(".response_throbber", $(this.el)).hide(); response_body_el = $('.response_body', $(this.el))[0]; opts = this.options.swaggerOptions; if (opts.highlightSizeThreshold && response.data.length > opts.highlightSizeThreshold) { return response_body_el; } else { return hljs.highlightBlock(response_body_el); } }; OperationView.prototype.toggleOperationContent = function() { var elem; elem = $('#' + Docs.escapeResourceName(this.model.parentId) + "_" + this.model.nickname + "_content"); if (elem.is(':visible')) { return Docs.collapseOperation(elem); } else { return Docs.expandOperation(elem); } }; return OperationView; })(Backbone.View); StatusCodeView = (function(_super) { __extends(StatusCodeView, _super); function StatusCodeView() { _ref5 = StatusCodeView.__super__.constructor.apply(this, arguments); return _ref5; } StatusCodeView.prototype.initialize = function() {}; StatusCodeView.prototype.render = function() { var responseModel, responseModelView, template; template = this.template(); $(this.el).html(template(this.model)); if (swaggerUi.api.models.hasOwnProperty(this.model.responseModel)) { responseModel = { sampleJSON: JSON.stringify(swaggerUi.api.models[this.model.responseModel].createJSONSample(), null, 2), isParam: false, signature: swaggerUi.api.models[this.model.responseModel].getMockSignature() }; responseModelView = new SignatureView({ model: responseModel, tagName: 'div' }); $('.model-signature', this.$el).append(responseModelView.render().el); } else { $('.model-signature', this.$el).html(''); } return this; }; StatusCodeView.prototype.template = function() { return Handlebars.templates.status_code; }; return StatusCodeView; })(Backbone.View); ParameterView = (function(_super) { __extends(ParameterView, _super); function ParameterView() { _ref6 = ParameterView.__super__.constructor.apply(this, arguments); return _ref6; } ParameterView.prototype.initialize = function() { return Handlebars.registerHelper('isArray', function(param, opts) { if (param.type.toLowerCase() === 'array' || param.allowMultiple) { return opts.fn(this); } else { return opts.inverse(this); } }); }; ParameterView.prototype.render = function() { var contentTypeModel, isParam, parameterContentTypeView, responseContentTypeView, signatureModel, signatureView, template, type; type = this.model.type || this.model.dataType; if (this.model.paramType === 'body') { this.model.isBody = true; } if (type.toLowerCase() === 'file') { this.model.isFile = true; } template = this.template(); $(this.el).html(template(this.model)); signatureModel = { sampleJSON: this.model.sampleJSON, isParam: true, signature: this.model.signature }; if (this.model.sampleJSON) { signatureView = new SignatureView({ model: signatureModel, tagName: 'div' }); $('.model-signature', $(this.el)).append(signatureView.render().el); } else { $('.model-signature', $(this.el)).html(this.model.signature); } isParam = false; if (this.model.isBody) { isParam = true; } contentTypeModel = { isParam: isParam }; contentTypeModel.consumes = this.model.consumes; if (isParam) { parameterContentTypeView = new ParameterContentTypeView({ model: contentTypeModel }); $('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el); } else { responseContentTypeView = new ResponseContentTypeView({ model: contentTypeModel }); $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); } return this; }; ParameterView.prototype.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; } } } }; return ParameterView; })(Backbone.View); SignatureView = (function(_super) { __extends(SignatureView, _super); function SignatureView() { _ref7 = SignatureView.__super__.constructor.apply(this, arguments); return _ref7; } SignatureView.prototype.events = { 'click a.description-link': 'switchToDescription', 'click a.snippet-link': 'switchToSnippet', 'mousedown .snippet': 'snippetToTextArea' }; SignatureView.prototype.initialize = function() {}; SignatureView.prototype.render = function() { var template; template = this.template(); $(this.el).html(template(this.model)); this.switchToSnippet(); this.isParam = this.model.isParam; if (this.isParam) { $('.notice', $(this.el)).text('Click to set as parameter value'); } return this; }; SignatureView.prototype.template = function() { return Handlebars.templates.signature; }; SignatureView.prototype.switchToDescription = function(e) { if (e != null) { e.preventDefault(); } $(".snippet", $(this.el)).hide(); $(".description", $(this.el)).show(); $('.description-link', $(this.el)).addClass('selected'); return $('.snippet-link', $(this.el)).removeClass('selected'); }; SignatureView.prototype.switchToSnippet = function(e) { if (e != null) { e.preventDefault(); } $(".description", $(this.el)).hide(); $(".snippet", $(this.el)).show(); $('.snippet-link', $(this.el)).addClass('selected'); return $('.description-link', $(this.el)).removeClass('selected'); }; SignatureView.prototype.snippetToTextArea = function(e) { var textArea; if (this.isParam) { if (e != null) { e.preventDefault(); } textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode)); if ($.trim(textArea.val()) === '') { return textArea.val(this.model.sampleJSON); } } }; return SignatureView; })(Backbone.View); ContentTypeView = (function(_super) { __extends(ContentTypeView, _super); function ContentTypeView() { _ref8 = ContentTypeView.__super__.constructor.apply(this, arguments); return _ref8; } ContentTypeView.prototype.initialize = function() {}; ContentTypeView.prototype.render = function() { var template; template = this.template(); $(this.el).html(template(this.model)); $('label[for=contentType]', $(this.el)).text('Response Content Type'); return this; }; ContentTypeView.prototype.template = function() { return Handlebars.templates.content_type; }; return ContentTypeView; })(Backbone.View); ResponseContentTypeView = (function(_super) { __extends(ResponseContentTypeView, _super); function ResponseContentTypeView() { _ref9 = ResponseContentTypeView.__super__.constructor.apply(this, arguments); return _ref9; } ResponseContentTypeView.prototype.initialize = function() {}; ResponseContentTypeView.prototype.render = function() { var template; template = this.template(); $(this.el).html(template(this.model)); $('label[for=responseContentType]', $(this.el)).text('Response Content Type'); return this; }; ResponseContentTypeView.prototype.template = function() { return Handlebars.templates.response_content_type; }; return ResponseContentTypeView; })(Backbone.View); ParameterContentTypeView = (function(_super) { __extends(ParameterContentTypeView, _super); function ParameterContentTypeView() { _ref10 = ParameterContentTypeView.__super__.constructor.apply(this, arguments); return _ref10; } ParameterContentTypeView.prototype.initialize = function() {}; ParameterContentTypeView.prototype.render = function() { var template; template = this.template(); $(this.el).html(template(this.model)); $('label[for=parameterContentType]', $(this.el)).text('Parameter content type:'); return this; }; ParameterContentTypeView.prototype.template = function() { return Handlebars.templates.parameter_content_type; }; return ParameterContentTypeView; })(Backbone.View); }).call(this);