Provide option highlightSizeThreshold to allow conditional syntax highlighting based on response size

This commit is contained in:
John Bryson
2014-07-31 11:56:13 -04:00
parent c948b40d34
commit 28c7597138
4 changed files with 7 additions and 3 deletions

View File

@@ -62,6 +62,7 @@ To use swagger-ui you should take a look at the [source of swagger-ui html page]
* *sorter* apply a sort to the API list. It can be 'alpha' (sort paths alphanumerically) or 'method' (sort operations by HTTP method). Default is the order returned by the server unchanged. * *sorter* apply a sort to the API list. It can be 'alpha' (sort paths alphanumerically) or 'method' (sort operations by HTTP method). Default is the order returned by the server unchanged.
* *onComplete* is a callback function parameter which can be passed to be notified of when SwaggerUI has completed rendering successfully. * *onComplete* is a callback function parameter which can be passed to be notified of when SwaggerUI has completed rendering successfully.
* *onFailure* is a callback function parameter which can be passed to be notified of when SwaggerUI encountered a failure was unable to render. * *onFailure* is a callback function parameter which can be passed to be notified of when SwaggerUI encountered a failure was unable to render.
* *highlightSizeThreshold* any size response below this threshold will be highlighted syntactically, attempting to highlight large responses can lead to browser hangs, not including a threshold will default to highlight all returned responses
* All other parameters are explained in greater detail below * All other parameters are explained in greater detail below

View File

@@ -33,7 +33,7 @@ class MainView extends Backbone.View
addResource: (resource) -> addResource: (resource) ->
# Render a resource and add it to resources li # Render a resource and add it to resources li
resourceView = new ResourceView({model: resource, tagName: 'li', id: 'resource_' + resource.id, className: 'resource'}) resourceView = new ResourceView({model: resource, tagName: 'li', id: 'resource_' + resource.id, className: 'resource', swaggerOptions: @options.swaggerOptions})
$('#resources').append resourceView.render().el $('#resources').append resourceView.render().el
clear: -> clear: ->

View File

@@ -365,7 +365,10 @@ class OperationView extends Backbone.View
$(".response", $(@el)).slideDown() $(".response", $(@el)).slideDown()
$(".response_hider", $(@el)).show() $(".response_hider", $(@el)).show()
$(".response_throbber", $(@el)).hide() $(".response_throbber", $(@el)).hide()
hljs.highlightBlock($('.response_body', $(@el))[0]) response_body_el = $('.response_body', $(@el))[0]
# only highlight the response if response is less than threshold, default state is highlight response
opts = @options.swaggerOptions
if opts.highlightSizeThreshold && response.data.length > opts.highlightSizeThreshold then response_body_el else hljs.highlightBlock(response_body_el)
toggleOperationContent: -> toggleOperationContent: ->
elem = $('#' + Docs.escapeResourceName(@model.parentId) + "_" + @model.nickname + "_content") elem = $('#' + Docs.escapeResourceName(@model.parentId) + "_" + @model.nickname + "_content")

View File

@@ -27,7 +27,7 @@ class ResourceView extends Backbone.View
operation.number = @number operation.number = @number
# Render an operation and add it to operations li # Render an operation and add it to operations li
operationView = new OperationView({model: operation, tagName: 'li', className: 'endpoint'}) operationView = new OperationView({model: operation, tagName: 'li', className: 'endpoint', swaggerOptions: @options.swaggerOptions})
$('.endpoints', $(@el)).append operationView.render().el $('.endpoints', $(@el)).append operationView.render().el
@number++ @number++