From 3ba35751ea8c4a9e25b9f86c0fc117d5d64c86d1 Mon Sep 17 00:00:00 2001 From: Delucse <46593742+Delucse@users.noreply.github.com> Date: Sun, 20 Sep 2020 00:09:05 +0200 Subject: [PATCH] fix bugs concerning uploading json --- src/actions/tutorialBuilderActions.js | 21 +++++++- .../Tutorial/Builder/BlocklyExample.js | 53 +++++++++---------- src/components/Tutorial/Builder/Builder.js | 37 ++----------- 3 files changed, 49 insertions(+), 62 deletions(-) diff --git a/src/actions/tutorialBuilderActions.js b/src/actions/tutorialBuilderActions.js index 03f7662..25304c8 100644 --- a/src/actions/tutorialBuilderActions.js +++ b/src/actions/tutorialBuilderActions.js @@ -1,5 +1,7 @@ import { PROGRESS, BUILDER_CHANGE, BUILDER_ERROR, BUILDER_TITLE, BUILDER_ID, BUILDER_ADD_STEP, BUILDER_DELETE_STEP, BUILDER_CHANGE_STEP, BUILDER_CHANGE_ORDER, BUILDER_DELETE_PROPERTY } from './types'; +import data from '../data/hardware.json'; + export const changeTutorialBuilder = () => (dispatch) => { dispatch({ type: BUILDER_CHANGE @@ -162,8 +164,23 @@ export const setSubmitError = () => (dispatch, getState) => { } for(var i = 0; i < builder.steps.length; i++){ builder.steps[i].id = i+1; - if(i === 0 && (builder.steps[i].hardware === undefined || builder.steps[i].hardware.length < 1)){ - dispatch(setError(i, 'hardware')); + if(i === 0){ + if(builder.steps[i].requirements && builder.steps[i].requirements.length > 0){ + var requirements = builder.steps[i].requirements.filter(requirement => typeof(requirement)==='number'); + if(requirements.length < builder.steps[i].requirements.length){ + dispatch(changeContent(i, 'requirements', requirements)); + } + } + if(builder.steps[i].hardware === undefined || builder.steps[i].hardware.length < 1){ + dispatch(setError(i, 'hardware')); + } + else{ + var hardwareIds = data.map(hardware => hardware.id); + var hardware = builder.steps[i].hardware.filter(hardware => hardwareIds.includes(hardware)); + if(hardware.length < builder.steps[i].hardware.length){ + dispatch(changeContent(i, 'hardware', hardware)); + } + } } if(builder.steps[i].headline === undefined || builder.steps[i].headline === ''){ dispatch(setError(i, 'headline')); diff --git a/src/components/Tutorial/Builder/BlocklyExample.js b/src/components/Tutorial/Builder/BlocklyExample.js index 9c64bf4..be7d6f5 100644 --- a/src/components/Tutorial/Builder/BlocklyExample.js +++ b/src/components/Tutorial/Builder/BlocklyExample.js @@ -79,8 +79,18 @@ class BlocklyExample extends Component { } } + render() { moment.locale('de', localization); + var initialXml = this.props.value; + // check if value is valid xml; + try{ + Blockly.Xml.textToDom(initialXml); + } + catch(err){ + initialXml = null; + this.props.setError(this.props.index, 'xml'); + } return (