diff --git a/README.md b/README.md
index e8376d83..a4c4908a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# ReDoc
-[![Build Status](https://travis-ci.org/Rebilly/ReDoc.svg?branch=master)](https://travis-ci.org/Rebilly/ReDoc) [![Coverage Status](https://coveralls.io/repos/Rebilly/ReDoc/badge.svg?branch=master&service=github)](https://coveralls.io/github/Rebilly/ReDoc?branch=master) [![Code Climate](https://codeclimate.com/github/Rebilly/ReDoc/badges/gpa.svg)](https://codeclimate.com/github/Rebilly/ReDoc) [![David](https://david-dm.org/Rebilly/ReDoc/dev-status.svg)](https://david-dm.org/Rebilly/ReDoc#info=devDependencies) [![Stories in Ready](https://badge.waffle.io/Rebilly/ReDoc.png?label=ready&title=Ready)](https://waffle.io/Rebilly/ReDoc)
+[![Build Status](https://travis-ci.org/Rebilly/ReDoc.svg?branch=master)](https://travis-ci.org/Rebilly/ReDoc) [![Coverage Status](https://coveralls.io/repos/Rebilly/ReDoc/badge.svg?branch=master&service=github)](https://coveralls.io/github/Rebilly/ReDoc?branch=master) [![Tested on APIs.guru](http://apis-guru.github.io/api-models/banners/tested_on_banner.svg)](https://github.com/APIs-guru/api-models) [![Code Climate](https://codeclimate.com/github/Rebilly/ReDoc/badges/gpa.svg)](https://codeclimate.com/github/Rebilly/ReDoc) [![David](https://david-dm.org/Rebilly/ReDoc/dev-status.svg)](https://david-dm.org/Rebilly/ReDoc#info=devDependencies) [![Stories in Ready](https://badge.waffle.io/Rebilly/ReDoc.png?label=ready&title=Ready)](https://waffle.io/Rebilly/ReDoc)
[![npm](http://img.shields.io/npm/v/redoc.svg)](https://www.npmjs.com/package/redoc) [![Bower](http://img.shields.io/bower/v/redoc.svg)](http://bower.io/) [![License](https://img.shields.io/npm/l/redoc.svg)](https://github.com/Rebilly/ReDoc/blob/master/LICENSE)
diff --git a/build/prepare_deploy.sh b/build/prepare_deploy.sh
index 71a8562b..1854e62c 100755
--- a/build/prepare_deploy.sh
+++ b/build/prepare_deploy.sh
@@ -14,7 +14,7 @@ cd -
# build
gulp build
cd demo
-cp -R ../dist ./dist
+cp -R ../dist/* ./dist/
mkdir -p releases
cp -R ../.ghpages-tmp/* ./releases/
cd -
diff --git a/lib/components/JsonSchema/json-schema-lazy.js b/lib/components/JsonSchema/json-schema-lazy.js
index d532ef6a..b03b66ec 100644
--- a/lib/components/JsonSchema/json-schema-lazy.js
+++ b/lib/components/JsonSchema/json-schema-lazy.js
@@ -14,7 +14,7 @@ var cache = {};
@Component({
selector: 'json-schema-lazy',
- inputs: ['pointer', 'auto', 'skipReadOnly'],
+ inputs: ['pointer', 'auto', 'isRequestSchema'],
template: '',
directives: [CORE_DIRECTIVES]
})
@@ -91,7 +91,7 @@ export class JsonSchemaLazy {
initComponent(compRef) {
compRef.instance.pointer = this.pointer;
- compRef.instance.skipReadOnly = this.skipReadOnly;
+ compRef.instance.isRequestSchema = this.isRequestSchema;
}
ngAfterViewInit() {
diff --git a/lib/components/JsonSchema/json-schema.html b/lib/components/JsonSchema/json-schema.html
index 17f56144..b0d735e8 100644
--- a/lib/components/JsonSchema/json-schema.html
+++ b/lib/components/JsonSchema/json-schema.html
@@ -1,4 +1,13 @@
-
+
+ file
+
+ Produces: {{ schema._produces | json }}
+
+
+ Consumes: {{ schema._consumes | json }}
+
+
+
{{schema._displayType}} {{schema._displayFormat}}
@@ -43,7 +52,7 @@
+ [nestOdd]="!nestOdd" [isRequestSchema]="isRequestSchema" [attr.nesteven]="!nestOdd">
|
@@ -52,7 +61,7 @@
+ pointer="{{derived.$ref}}" [final]="derived.final" [isRequestSchema]="isRequestSchema">
|
diff --git a/lib/components/JsonSchema/json-schema.js b/lib/components/JsonSchema/json-schema.js
index a4deef6c..2b399a10 100644
--- a/lib/components/JsonSchema/json-schema.js
+++ b/lib/components/JsonSchema/json-schema.js
@@ -11,7 +11,7 @@ import JsonPointer from '../../utils/JsonPointer';
templateUrl: './lib/components/JsonSchema/json-schema.html',
styleUrls: ['./lib/components/JsonSchema/json-schema.css'],
directives: [JsonSchema, DropDown],
- inputs: ['isArray', 'final', 'nestOdd', 'childFor', 'skipReadOnly']
+ inputs: ['isArray', 'final', 'nestOdd', 'childFor', 'isRequestSchema']
})
@Reflect.metadata('parameters', [[SchemaManager], [ElementRef]])
export class JsonSchema extends BaseComponent {
@@ -53,8 +53,8 @@ export class JsonSchema extends BaseComponent {
let schema = this.componentSchema;
BaseComponent.joinAllOf(schema, {omitParent: true});
- schema = this.unwrapArray(schema);
- runInjectors(schema, schema, schema._pointer || this.pointer);
+ this.schema = schema = this.unwrapArray(schema);
+ runInjectors(schema, schema, schema._pointer || this.pointer, this.pointer);
schema.derived = schema.derived || [];
@@ -62,7 +62,6 @@ export class JsonSchema extends BaseComponent {
this.prepareObjectPropertiesData(schema);
}
- this.schema = schema;
this.initDerived();
}
@@ -119,7 +118,8 @@ export class JsonSchema extends BaseComponent {
let discrProp = props.splice(discriminatorFieldIdx, 1);
props.push(discrProp[0]);
}
- if (this.skipReadOnly) {
+ // filter readOnly props for request schemas
+ if (this.isRequestSchema) {
props = props.filter(prop => !prop.readOnly);
}
schema.properties = props;
@@ -131,21 +131,21 @@ export class JsonSchema extends BaseComponent {
JsonPointer.join(addProps._pointer || schema._pointer || this.pointer, ['additionalProperties']));
}
- static injectPropertyData(propertySchema, propertyName, propPointer) {
+ static injectPropertyData(propertySchema, propertyName, propPointer, hostPointer) {
propertySchema = Object.assign({}, propertySchema);
propertySchema._name = propertyName;
- runInjectors(propertySchema, propertySchema, propPointer);
+ runInjectors(propertySchema, propertySchema, propPointer, hostPointer);
return propertySchema;
}
}
-function runInjectors(injectTo, propertySchema, propertyPointer) {
+function runInjectors(injectTo, propertySchema, propertyPointer, hostPointer) {
for (var injName in injectors) {
let injector = injectors[injName];
if (injector.check(propertySchema)) {
- injector.inject(injectTo, propertySchema, propertyPointer);
+ injector.inject(injectTo, propertySchema, propertyPointer, hostPointer);
}
}
}
@@ -183,7 +183,6 @@ const injectors = {
runInjectors(injectTo, propertySchema.items, propPointer);
}
},
-
object: {
check: (propertySchema) => {
return propertySchema.type === 'object' && propertySchema.properties;
@@ -201,7 +200,6 @@ const injectors = {
injectTo.isTrivial = true;
}
},
-
simpleType: {
check: (propertySchema) => {
if (propertySchema.type === 'object') {
@@ -258,5 +256,23 @@ const injectors = {
injectTo._range = range + ' characters';
}
}
+ },
+ file: {
+ check: propertySchema => (propertySchema.type === 'file'),
+ inject: (injectTo, propertySchema = injectTo, propPointer, hostPointer) => {
+ injectTo.isFile = true;
+ let parentPtr;
+ if (propertySchema.in === 'formData') {
+ parentPtr = JsonPointer.dirName(hostPointer, 1);
+ } else {
+ parentPtr = JsonPointer.dirName(hostPointer, 3);
+ }
+
+ let parentParam = SchemaManager.instance().byPointer(parentPtr);
+ let root = SchemaManager.instance().schema;
+ injectTo._produces = parentParam && parentParam.produces || root.produces;
+ injectTo._consumes = parentParam && parentParam.consumes || root.consumes;
+
+ }
}
};
diff --git a/lib/components/ParamsList/params-list.html b/lib/components/ParamsList/params-list.html
index fa673090..62117c4c 100644
--- a/lib/components/ParamsList/params-list.html
+++ b/lib/components/ParamsList/params-list.html
@@ -31,7 +31,7 @@
-
+
diff --git a/lib/components/ParamsList/params-list.js b/lib/components/ParamsList/params-list.js
index 51486cfc..99b147c2 100644
--- a/lib/components/ParamsList/params-list.js
+++ b/lib/components/ParamsList/params-list.js
@@ -27,7 +27,7 @@ export class ParamsList extends BaseComponent {
paramsList = paramsList.map((paramData) => {
let propPointer = paramData._pointer;
if (paramData.in === 'body') return paramData;
- return JsonSchema.injectPropertyData(paramData, paramData.name, propPointer);
+ return JsonSchema.injectPropertyData(paramData, paramData.name, propPointer, this.pointer);
});
let paramsMap = this.orderParams(paramsList);
diff --git a/package.json b/package.json
index 718acfda..51f333c6 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "redoc",
"description": "Swagger-generated API Reference Documentation",
- "version": "0.9.0",
+ "version": "0.10.0",
"repository": {
"type": "git",
"url": "git://github.com/Rebilly/ReDoc"