Преглед изворни кода

Merge pull request #496 from chatch/master

sort routes alphabetically (254)
bubble
Tony Tam пре 10 година
родитељ
комит
c948b40d34
4 измењених фајлова са 18 додато и 4 уклоњено
  1. +1
    -0
      README.md
  2. +1
    -1
      src/main/coffeescript/SwaggerUi.coffee
  3. +14
    -2
      src/main/coffeescript/view/MainView.coffee
  4. +2
    -1
      src/main/html/index.html

+ 1
- 0
README.md Прегледај датотеку

@@ -59,6 +59,7 @@ To use swagger-ui you should take a look at the [source of swagger-ui html page]
* *dom_id parameter* is the the id of a dom element inside which SwaggerUi will put the user interface for swagger
* *booleanValues* SwaggerUI renders boolean data types as a dropdown. By default it provides a 'true' and 'false' string as the possible choices. You can use this parameter to change the values in dropdown to be something else, for example 0 and 1 by setting booleanValues to new Array(0, 1)
* *docExpansion* controls how the API listing is displayed. It can be set to 'none' (default), 'list' (shows operations for each resource), or 'full' (fully expanded: shows operations and their details)
* *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.
* *onFailure* is a callback function parameter which can be passed to be notified of when SwaggerUI encountered a failure was unable to render.
* All other parameters are explained in greater detail below


+ 1
- 1
src/main/coffeescript/SwaggerUi.coffee Прегледај датотеку

@@ -55,7 +55,7 @@ class SwaggerUi extends Backbone.Router
# so it gets called when SwaggerApi completes loading
render:() ->
@showMessage('Finished Loading Resource Information. Rendering Swagger UI...')
@mainView = new MainView({model: @api, el: $('#' + @dom_id)}).render()
@mainView = new MainView({model: @api, el: $('#' + @dom_id), swaggerOptions: @options}).render()
@showMessage()
switch @options.docExpansion
when "full" then Docs.expandOperationsForResource('')


+ 14
- 2
src/main/coffeescript/view/MainView.coffee Прегледај датотеку

@@ -1,6 +1,18 @@
class MainView extends Backbone.View
initialize: ->
sorters = {
'alpha' : (a,b) -> return a.path.localeCompare(b.path),
'method' : (a,b) -> return a.method.localeCompare(b.method),
}

initialize: (opts={}) ->
if opts.swaggerOptions.sorter
sorterName = opts.swaggerOptions.sorter
sorter = sorters[sorterName]
for route in @model.apisArray
route.operationsArray.sort sorter
if (sorterName == "alpha") # sort top level paths if alpha
@model.apisArray.sort sorter
render: ->
# Render the outer container for resources
$(@el).html(Handlebars.templates.main(@model))
@@ -25,4 +37,4 @@ class MainView extends Backbone.View
$('#resources').append resourceView.render().el

clear: ->
$(@el).html ''
$(@el).html ''

+ 2
- 1
src/main/html/index.html Прегледај датотеку

@@ -47,7 +47,8 @@
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
docExpansion: "none"
docExpansion: "none",
sorter : "alpha"
});
$('#input_apiKey').change(function() {


Loading…
Откажи
Сачувај