Add defaultModelsExpandDepth
This change separates: the Model (the one on the model-example section) from the Models (the ones at the bottom)
This commit is contained in:
@@ -77,6 +77,10 @@
|
|||||||
const ui = SwaggerUIBundle({
|
const ui = SwaggerUIBundle({
|
||||||
url: "http://petstore.swagger.io/v2/swagger.json",
|
url: "http://petstore.swagger.io/v2/swagger.json",
|
||||||
dom_id: '#swagger-ui',
|
dom_id: '#swagger-ui',
|
||||||
|
deepLinking: true,
|
||||||
|
defaultModelsExpandDepth: 1,
|
||||||
|
defaultModelExpandDepth: 1,
|
||||||
|
docExpansion: "list",
|
||||||
presets: [
|
presets: [
|
||||||
SwaggerUIBundle.presets.apis,
|
SwaggerUIBundle.presets.apis,
|
||||||
SwaggerUIStandalonePreset
|
SwaggerUIStandalonePreset
|
||||||
|
|||||||
3
dist/index.html
vendored
3
dist/index.html
vendored
@@ -77,6 +77,9 @@ window.onload = function() {
|
|||||||
url: "http://petstore.swagger.io/v2/swagger.json",
|
url: "http://petstore.swagger.io/v2/swagger.json",
|
||||||
dom_id: '#swagger-ui',
|
dom_id: '#swagger-ui',
|
||||||
deepLinking: true,
|
deepLinking: true,
|
||||||
|
defaultModelsExpandDepth: 1,
|
||||||
|
defaultModelExpandDepth: 1,
|
||||||
|
docExpansion: "list",
|
||||||
presets: [
|
presets: [
|
||||||
SwaggerUIBundle.presets.apis,
|
SwaggerUIBundle.presets.apis,
|
||||||
SwaggerUIStandalonePreset
|
SwaggerUIStandalonePreset
|
||||||
|
|||||||
@@ -49,8 +49,9 @@ Parameter Name | Description
|
|||||||
--- | ---
|
--- | ---
|
||||||
`deepLinking` | `Boolean=false`. If set to `true`, enables deep linking for tags and operations. See the [Deep Linking documentation](/docs/usage/deep-linking.md) for more information.
|
`deepLinking` | `Boolean=false`. If set to `true`, enables deep linking for tags and operations. See the [Deep Linking documentation](/docs/usage/deep-linking.md) for more information.
|
||||||
`displayOperationId` | `Boolean=false`. Controls the display of operationId in operations list. The default is `false`.
|
`displayOperationId` | `Boolean=false`. Controls the display of operationId in operations list. The default is `false`.
|
||||||
`defaultModelExpandDepth` | `Number=1`. The default expansion depth for models.
|
`defaultModelsExpandDepth` | `Number=1`. The default expansion depth for models (set to -1 completely hide the models).
|
||||||
`defaultModelRendering` | `String=["example"*, "model"]`. Controls how models are shown when the API is first rendered. (The user can always switch the rendering for a given model by clicking the 'Model' and 'Example Value' links.)
|
`defaultModelExpandDepth` | `Number=1`. The default expansion depth for the model on the model-example section.
|
||||||
|
`defaultModelRendering` | `String=["example"*, "model"]`. Controls how the model is shown when the API is first rendered. (The user can always switch the rendering for a given model by clicking the 'Model' and 'Example Value' links.)
|
||||||
`displayRequestDuration` | `Boolean=false`. Controls the display of the request duration (in milliseconds) for Try-It-Out requests.
|
`displayRequestDuration` | `Boolean=false`. Controls the display of the request duration (in milliseconds) for Try-It-Out requests.
|
||||||
`docExpansion` | `String=["list"*, "full", "none"]`. Controls the default expansion setting for the operations and tags. It can be 'list' (expands only the tags), 'full' (expands the tags and operations) or 'none' (expands nothing).
|
`docExpansion` | `String=["list"*, "full", "none"]`. Controls the default expansion setting for the operations and tags. It can be 'list' (expands only the tags), 'full' (expands the tags and operations) or 'none' (expands nothing).
|
||||||
`filter` | `Boolean=false OR String`. If set, enables filtering. The top bar will show an edit box that you can use to filter the tagged operations that are shown. Can be Boolean to enable or disable, or a string, in which case filtering will be enabled using that string as the filter expression. Filtering is case sensitive matching the filter expression anywhere inside the tag.
|
`filter` | `Boolean=false OR String`. If set, enables filtering. The top bar will show an edit box that you can use to filter the tagged operations that are shown. Can be Boolean to enable or disable, or a string, in which case filtering will be enabled using that string as the filter expression. Filtering is case sensitive matching the filter expression anywhere inside the tag.
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ export default class Models extends Component {
|
|||||||
render(){
|
render(){
|
||||||
let { specSelectors, getComponent, layoutSelectors, layoutActions, getConfigs } = this.props
|
let { specSelectors, getComponent, layoutSelectors, layoutActions, getConfigs } = this.props
|
||||||
let definitions = specSelectors.definitions()
|
let definitions = specSelectors.definitions()
|
||||||
let { docExpansion, defaultModelExpandDepth } = getConfigs()
|
let { docExpansion, defaultModelsExpandDepth } = getConfigs()
|
||||||
let showModels = layoutSelectors.isShown("models", docExpansion === "full" || docExpansion === "list" )
|
if (!definitions.size || defaultModelsExpandDepth < 0) return null
|
||||||
|
|
||||||
|
let showModels = layoutSelectors.isShown("models", defaultModelsExpandDepth > 0 && docExpansion !== "none")
|
||||||
const specPathBase = specSelectors.isOAS3() ? ["components", "schemas"] : ["definitions"]
|
const specPathBase = specSelectors.isOAS3() ? ["components", "schemas"] : ["definitions"]
|
||||||
|
|
||||||
const ModelWrapper = getComponent("ModelWrapper")
|
const ModelWrapper = getComponent("ModelWrapper")
|
||||||
const Collapse = getComponent("Collapse")
|
const Collapse = getComponent("Collapse")
|
||||||
|
|
||||||
if (!definitions.size) return null
|
|
||||||
|
|
||||||
return <section className={ showModels ? "models is-open" : "models"}>
|
return <section className={ showModels ? "models is-open" : "models"}>
|
||||||
<h4 onClick={() => layoutActions.show("models", !showModels)}>
|
<h4 onClick={() => layoutActions.show("models", !showModels)}>
|
||||||
@@ -34,7 +34,7 @@ export default class Models extends Component {
|
|||||||
definitions.entrySeq().map( ( [ name, model ])=>{
|
definitions.entrySeq().map( ( [ name, model ])=>{
|
||||||
return <div className="model-container" key={ `models-section-${name}` }>
|
return <div className="model-container" key={ `models-section-${name}` }>
|
||||||
<ModelWrapper name={ name }
|
<ModelWrapper name={ name }
|
||||||
expandDepth={ defaultModelExpandDepth }
|
expandDepth={ defaultModelsExpandDepth }
|
||||||
schema={ model }
|
schema={ model }
|
||||||
specPath={[...specPathBase, name]}
|
specPath={[...specPathBase, name]}
|
||||||
getComponent={ getComponent }
|
getComponent={ getComponent }
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ module.exports = function SwaggerUI(opts) {
|
|||||||
showMutatedRequest: true,
|
showMutatedRequest: true,
|
||||||
defaultModelRendering: "example",
|
defaultModelRendering: "example",
|
||||||
defaultModelExpandDepth: 1,
|
defaultModelExpandDepth: 1,
|
||||||
|
defaultModelsExpandDepth: 1,
|
||||||
showExtensions: false,
|
showExtensions: false,
|
||||||
|
|
||||||
// Initial set of plugins ( TODO rename this, or refactor - we don't need presets _and_ plugins. Its just there for performance.
|
// Initial set of plugins ( TODO rename this, or refactor - we don't need presets _and_ plugins. Its just there for performance.
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ describe("<Models/>", function(){
|
|||||||
layoutActions: {},
|
layoutActions: {},
|
||||||
getConfigs: () => ({
|
getConfigs: () => ({
|
||||||
docExpansion: "list",
|
docExpansion: "list",
|
||||||
defaultModelExpandDepth: 0
|
defaultModelsExpandDepth: 0
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
it("passes defaultModelExpandDepth to ModelWrapper", function(){
|
it("passes defaultModelsExpandDepth to ModelWrapper", function(){
|
||||||
// When
|
// When
|
||||||
let wrapper = shallow(<Models {...props}/>)
|
let wrapper = shallow(<Models {...props}/>)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user