detect whitespaces and return readable filename
This commit is contained in:
parent
c85c96468c
commit
bde430dd40
@ -3,6 +3,8 @@ import PropTypes from 'prop-types';
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { workspaceName } from '../actions/workspaceActions';
|
import { workspaceName } from '../actions/workspaceActions';
|
||||||
|
|
||||||
|
import { detectWhitespacesAndReturnReadableResult } from '../helpers/whitespace';
|
||||||
|
|
||||||
import { withStyles } from '@material-ui/core/styles';
|
import { withStyles } from '@material-ui/core/styles';
|
||||||
import Button from '@material-ui/core/Button';
|
import Button from '@material-ui/core/Button';
|
||||||
import Backdrop from '@material-ui/core/Backdrop';
|
import Backdrop from '@material-ui/core/Backdrop';
|
||||||
@ -83,9 +85,9 @@ class Compile extends Component {
|
|||||||
|
|
||||||
download = () => {
|
download = () => {
|
||||||
const id = this.state.id;
|
const id = this.state.id;
|
||||||
const filename = this.state.name;
|
const filename = detectWhitespacesAndReturnReadableResult(this.state.name);
|
||||||
this.toggleDialog();
|
this.toggleDialog();
|
||||||
this.props.workspaceName(filename);
|
this.props.workspaceName(this.state.name);
|
||||||
window.open(`${process.env.REACT_APP_COMPILER_URL}/download?id=${id}&board=${process.env.REACT_APP_BOARD}&filename=${filename}`, '_self');
|
window.open(`${process.env.REACT_APP_COMPILER_URL}/download?id=${id}&board=${process.env.REACT_APP_BOARD}&filename=${filename}`, '_self');
|
||||||
this.setState({ progress: false });
|
this.setState({ progress: false });
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import { withRouter } from 'react-router-dom';
|
|||||||
import Compile from '../Compile';
|
import Compile from '../Compile';
|
||||||
|
|
||||||
import tutorials from './tutorials.json';
|
import tutorials from './tutorials.json';
|
||||||
import { checkXml } from './compareXml';
|
import { checkXml } from '../../helpers/compareXml';
|
||||||
|
|
||||||
import { withStyles } from '@material-ui/core/styles';
|
import { withStyles } from '@material-ui/core/styles';
|
||||||
import IconButton from '@material-ui/core/IconButton';
|
import IconButton from '@material-ui/core/IconButton';
|
||||||
|
@ -11,6 +11,8 @@ import Instruction from './Instruction';
|
|||||||
import Assessment from './Assessment';
|
import Assessment from './Assessment';
|
||||||
import NotFound from '../NotFound';
|
import NotFound from '../NotFound';
|
||||||
|
|
||||||
|
import { detectWhitespacesAndReturnReadableResult } from '../../helpers/whitespace';
|
||||||
|
|
||||||
import tutorials from './tutorials.json';
|
import tutorials from './tutorials.json';
|
||||||
|
|
||||||
import Card from '@material-ui/core/Card';
|
import Card from '@material-ui/core/Card';
|
||||||
@ -38,7 +40,7 @@ class Tutorial extends Component {
|
|||||||
var tutorial = tutorials.filter(tutorial => tutorial.id === currentTutorialId)[0];
|
var tutorial = tutorials.filter(tutorial => tutorial.id === currentTutorialId)[0];
|
||||||
var steps = tutorial ? tutorial.steps : null;
|
var steps = tutorial ? tutorial.steps : null;
|
||||||
var step = steps ? steps[this.props.activeStep] : null;
|
var step = steps ? steps[this.props.activeStep] : null;
|
||||||
var name = step ? `${tutorial.title.replace(/\s/g,'')}_${step.headline.replace(/\s/g,'')}` : null;
|
var name = step ? `${detectWhitespacesAndReturnReadableResult(tutorial.title)}_${detectWhitespacesAndReturnReadableResult(step.headline)}` : null;
|
||||||
return (
|
return (
|
||||||
!Number.isInteger(currentTutorialId) || currentTutorialId < 1 || currentTutorialId > tutorials.length ?
|
!Number.isInteger(currentTutorialId) || currentTutorialId < 1 || currentTutorialId > tutorials.length ?
|
||||||
<NotFound button={{title: 'Zurück zur Tutorials-Übersicht', link: '/tutorial'}}/>
|
<NotFound button={{title: 'Zurück zur Tutorials-Übersicht', link: '/tutorial'}}/>
|
||||||
|
@ -7,6 +7,7 @@ import * as Blockly from 'blockly/core';
|
|||||||
|
|
||||||
import { saveAs } from 'file-saver';
|
import { saveAs } from 'file-saver';
|
||||||
|
|
||||||
|
import { detectWhitespacesAndReturnReadableResult } from '../helpers/whitespace';
|
||||||
import { initialXml } from './Blockly/initialXml.js';
|
import { initialXml } from './Blockly/initialXml.js';
|
||||||
|
|
||||||
import Compile from './Compile';
|
import Compile from './Compile';
|
||||||
@ -78,8 +79,8 @@ class WorkspaceFunc extends Component {
|
|||||||
saveXmlFile = () => {
|
saveXmlFile = () => {
|
||||||
var code = this.props.xml;
|
var code = this.props.xml;
|
||||||
this.toggleDialog();
|
this.toggleDialog();
|
||||||
var fileName = this.state.name;
|
var fileName = detectWhitespacesAndReturnReadableResult(this.state.name);
|
||||||
this.props.workspaceName(fileName);
|
this.props.workspaceName(this.state.name);
|
||||||
fileName = `${fileName}.xml`
|
fileName = `${fileName}.xml`
|
||||||
var blob = new Blob([code], { type: 'text/xml' });
|
var blob = new Blob([code], { type: 'text/xml' });
|
||||||
saveAs(blob, fileName);
|
saveAs(blob, fileName);
|
||||||
|
15
src/helpers/whitespace.js
Normal file
15
src/helpers/whitespace.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
export const detectWhitespacesAndReturnReadableResult = (word) => {
|
||||||
|
var readableResult = '';
|
||||||
|
var space = false;
|
||||||
|
for(var i = 0; i < word.length; i++){
|
||||||
|
var letter = word[i];
|
||||||
|
if(/\s/g.test(letter)){
|
||||||
|
space = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
readableResult += space ? letter.toUpperCase() : letter;
|
||||||
|
space = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return readableResult;
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user