update project
This commit is contained in:
parent
a30747c608
commit
c5fd5c6239
@ -60,9 +60,33 @@ export const getProjects = (type) => (dispatch) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const updateProject = () => (dispatch, getState) => {
|
||||||
|
var workspace = getState().workspace;
|
||||||
|
var body = {
|
||||||
|
xml: workspace.code.xml,
|
||||||
|
title: workspace.name
|
||||||
|
}
|
||||||
|
var id = getState().project.projects[0]._id;
|
||||||
|
axios.put(`${process.env.REACT_APP_BLOCKLY_API}/project/${id}`, body)
|
||||||
|
.then(res => {
|
||||||
|
var project = res.data.project;
|
||||||
|
dispatch({
|
||||||
|
type: GET_PROJECT,
|
||||||
|
payload: project
|
||||||
|
});
|
||||||
|
dispatch(returnSuccess(res.data.message, res.status, 'PROJECT_UPDATE_SUCCESS'));
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
if(err.response){
|
||||||
|
dispatch(returnErrors(err.response.data.message, err.response.status, 'PROJECT_UPDATE_FAIL'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export const resetProject = () => (dispatch) => {
|
export const resetProject = () => (dispatch) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: GET_PROJECTS,
|
type: GET_PROJECTS,
|
||||||
payload: []
|
payload: []
|
||||||
});
|
});
|
||||||
|
dispatch(setType(''));
|
||||||
};
|
};
|
||||||
|
@ -2,6 +2,7 @@ import React, { Component } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { clearStats, onChangeCode, workspaceName } from '../actions/workspaceActions';
|
import { clearStats, onChangeCode, workspaceName } from '../actions/workspaceActions';
|
||||||
|
import { updateProject } from '../actions/projectActions';
|
||||||
|
|
||||||
import * as Blockly from 'blockly/core';
|
import * as Blockly from 'blockly/core';
|
||||||
|
|
||||||
@ -87,6 +88,14 @@ class WorkspaceFunc extends Component {
|
|||||||
if (props.name !== this.props.name) {
|
if (props.name !== this.props.name) {
|
||||||
this.setState({ name: this.props.name });
|
this.setState({ name: this.props.name });
|
||||||
}
|
}
|
||||||
|
if(this.props.message !== props.message){
|
||||||
|
if(this.props.message.id === 'PROJECT_UPDATE_SUCCESS'){
|
||||||
|
this.setState({ snackbar: true, key: Date.now(), message: `Das Projekt wurde erfolgreich aktualisiert.`, type: 'success' });
|
||||||
|
}
|
||||||
|
else if (this.props.message.id === 'PROJECT_UPDATE_FAIL'){
|
||||||
|
this.setState({ snackbar: true, key: Date.now(), message: `Fehler beim Aktualisieren des Projektes. Versuche es noch einmal.`, type: 'error' });
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleDialog = () => {
|
toggleDialog = () => {
|
||||||
@ -265,10 +274,10 @@ class WorkspaceFunc extends Component {
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
: null}
|
: null}
|
||||||
{this.props.assessment ? <SolutionCheck /> : <Compile iconButton />}
|
{this.props.assessment ? <SolutionCheck /> : <Compile iconButton />}
|
||||||
<Tooltip title='Projekt speichern' arrow style={{ marginRight: '5px' }}>
|
<Tooltip title={this.props.projectType === 'project'? 'Projekt aktualisieren':'Projekt speichern'} arrow style={{ marginRight: '5px' }}>
|
||||||
<IconButton
|
<IconButton
|
||||||
className={this.props.classes.button}
|
className={this.props.classes.button}
|
||||||
onClick={() => this.saveProject()}
|
onClick={this.props.projectType === 'project' ? () => this.props.updateProject() : () => this.saveProject()}
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon icon={faSave} size="xs" />
|
<FontAwesomeIcon icon={faSave} size="xs" />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -376,18 +385,23 @@ class WorkspaceFunc extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
WorkspaceFunc.propTypes = {
|
WorkspaceFunc.propTypes = {
|
||||||
|
clearStats: PropTypes.func.isRequired,
|
||||||
|
onChangeCode: PropTypes.func.isRequired,
|
||||||
|
workspaceName: PropTypes.func.isRequired,
|
||||||
|
updateProject: PropTypes.func.isRequired,
|
||||||
arduino: PropTypes.string.isRequired,
|
arduino: PropTypes.string.isRequired,
|
||||||
xml: PropTypes.string.isRequired,
|
xml: PropTypes.string.isRequired,
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
clearStats: PropTypes.func.isRequired,
|
projectType: PropTypes.string.isRequired,
|
||||||
onChangeCode: PropTypes.func.isRequired,
|
message: PropTypes.object.isRequired
|
||||||
workspaceName: PropTypes.func.isRequired
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
arduino: state.workspace.code.arduino,
|
arduino: state.workspace.code.arduino,
|
||||||
xml: state.workspace.code.xml,
|
xml: state.workspace.code.xml,
|
||||||
name: state.workspace.name
|
name: state.workspace.name,
|
||||||
|
projectType: state.project.type,
|
||||||
|
message: state.message
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(mapStateToProps, { clearStats, onChangeCode, workspaceName })(withStyles(styles, { withTheme: true })(withWidth()(withRouter(WorkspaceFunc))));
|
export default connect(mapStateToProps, { clearStats, onChangeCode, workspaceName, updateProject })(withStyles(styles, { withTheme: true })(withWidth()(withRouter(WorkspaceFunc))));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user