From abefb06dd5dbd47ff4ad5273de35fb8c178f8f4c Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Sat, 16 Jan 2016 23:24:05 +0200 Subject: [PATCH] schema ui fixes --- lib/components/JsonSchema/json-schema.html | 2 +- lib/components/JsonSchema/json-schema.js | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/components/JsonSchema/json-schema.html b/lib/components/JsonSchema/json-schema.html index e1a55ac9..58e947c5 100644 --- a/lib/components/JsonSchema/json-schema.html +++ b/lib/components/JsonSchema/json-schema.html @@ -22,7 +22,7 @@
- + diff --git a/lib/components/JsonSchema/json-schema.js b/lib/components/JsonSchema/json-schema.js index b50c92a2..dee18747 100644 --- a/lib/components/JsonSchema/json-schema.js +++ b/lib/components/JsonSchema/json-schema.js @@ -33,6 +33,9 @@ export default class JsonSchema extends BaseComponent { if (schema.type === 'array') { this.isArray = true; + if (schema._pointer) { + this.pointer = JsonPointer.join(schema._pointer, 'items'); + } schema = schema.items; } let normPtr = schema._pointer || this.pointer; @@ -43,9 +46,7 @@ export default class JsonSchema extends BaseComponent { } this.joinAllOf(schema, {omitParent: true}); - if (!schema.type) { - schema.type = 'object'; - } + if (schema.type !== 'object') { this.isTrivial = true; this._displayType = schema.type; @@ -69,7 +70,7 @@ export default class JsonSchema extends BaseComponent { let discriminatorFieldIdx = -1; let props = Object.keys(schema.properties).map((prop, idx) => { let propData = schema.properties[prop]; - this.injectPropData(prop, propData); + this.injectPropData(prop, propData, schema); if (propData.isDiscriminator) discriminatorFieldIdx = idx; return propData; }); @@ -95,11 +96,11 @@ export default class JsonSchema extends BaseComponent { if (discrValues) discrValues.style.paddingLeft = maxWidth + 'px'; } - injectPropData(prop, propData) { + injectPropData(prop, propData, schema) { propData._name = prop; propData.isRequired = this.requiredMap[prop]; propData._displayType = propData.type; - propData.isDiscriminator = (this.componentSchema.discriminator === prop); + propData.isDiscriminator = (schema.discriminator === prop); if (propData.type === 'array') { let itemType = propData.items.type; let itemFormat = propData.items.format;