1
0
Fork 0

Handle incorrect data in mapped inputs

Dieser Commit ist enthalten in:
Angus McLeod 2020-04-15 15:41:27 +10:00
Ursprung e285674c8f
Commit 92bd7953f1
3 geänderte Dateien mit 26 neuen und 8 gelöschten Zeilen

Datei anzeigen

@ -1,17 +1,26 @@
import { getOwner } from 'discourse-common/lib/get-owner';
import { newInput, selectionTypes } from '../lib/wizard-mapper';
import { default as discourseComputed, observes, on } from 'discourse-common/utils/decorators';
import { later } from "@ember/runloop";
import Component from "@ember/component";
import { A } from "@ember/array";
export default Component.extend({
classNames: 'wizard-mapper',
didReceiveAttrs() {
if (this.inputs && this.inputs.constructor !== Array) {
later(() => this.set('inputs', null));
}
},
@discourseComputed('inputs.@each.type')
canAdd(inputs) {
return !inputs || inputs.every(i => {
return ['assignment','association'].indexOf(i.type) === -1;
});
return !inputs ||
inputs.constructor !== Array ||
inputs.every(i => {
return ['assignment','association'].indexOf(i.type) === -1;
});
},
@discourseComputed('options.@each.inputType')

Datei anzeigen

@ -22,11 +22,16 @@ function castCase(property, value) {
return property.indexOf('_type') > -1 ? camelCase(value) : value;
}
function buildProperty(json, property, type) {
if (mapped(property, type) && present(json[property])) {
let inputs = [];
function buildProperty(json, property, type) {
let value = json[property];
if (mapped(property, type) &&
present(value) &&
value.constructor === Array) {
json[property].forEach(inputJson => {
let inputs = [];
value.forEach(inputJson => {
let input = {}
Object.keys(inputJson).forEach(inputKey => {
@ -61,7 +66,7 @@ function buildProperty(json, property, type) {
return A(inputs);
} else {
return json[property];
return value;
}
}

Datei anzeigen

@ -34,6 +34,10 @@
.wizard-submissions {
overflow: scroll;
table td {
min-width: 150px;
}
}
.admin-wizards-logs {