diff --git a/modules/webgui/web/src/api/Actions/actionTypes.js b/modules/webgui/web/src/api/Actions/actionTypes.js index b93e3d8dd6..ea153b726c 100644 --- a/modules/webgui/web/src/api/Actions/actionTypes.js +++ b/modules/webgui/web/src/api/Actions/actionTypes.js @@ -31,4 +31,5 @@ export const actionTypes = { // action types for data loader setDataLoaderActivated: 'DATA_LOADER_TOGGLE_ACTIVATED', + setSelectedFilesPathName: 'DATA_LOADER_SET_FILEPATH', }; diff --git a/modules/webgui/web/src/api/Actions/dataLoaderActions.js b/modules/webgui/web/src/api/Actions/dataLoaderActions.js index b0c7da4c4a..0e1b9c75c7 100644 --- a/modules/webgui/web/src/api/Actions/dataLoaderActions.js +++ b/modules/webgui/web/src/api/Actions/dataLoaderActions.js @@ -6,3 +6,10 @@ export const setActivated = (isActivated) => ({ activated: isActivated } }); + +export const setFilePaths = (filePaths) => ({ + type: actionTypes.setSelectedFilesPathName, + payload: { + filePaths: filePaths + } +}); diff --git a/modules/webgui/web/src/api/Reducers/dataLoader.js b/modules/webgui/web/src/api/Reducers/dataLoader.js index cdc73fee73..e9a601ba53 100644 --- a/modules/webgui/web/src/api/Reducers/dataLoader.js +++ b/modules/webgui/web/src/api/Reducers/dataLoader.js @@ -10,6 +10,14 @@ export const dataLoader = (state = {}, action) => { activated } + case actionTypes.setSelectedFilesPathName: + const { filePaths } = action.payload; + + return { + ...state, + filePaths + } + default: return state; } diff --git a/modules/webgui/web/src/components/DataLoader/DataLoader.jsx b/modules/webgui/web/src/components/DataLoader/DataLoader.jsx index 60a9b2d96c..78307e9607 100644 --- a/modules/webgui/web/src/components/DataLoader/DataLoader.jsx +++ b/modules/webgui/web/src/components/DataLoader/DataLoader.jsx @@ -4,28 +4,75 @@ import { connect } from 'react-redux'; import Proptypes from 'prop-types'; import styles from './DataLoader.scss'; import Window from '../common/Window/Window'; -import { toggleActivated } from '../../api/Actions/dataLoaderActions'; - +import { setActivated, setFilePaths } from '../../api/Actions/dataLoaderActions'; +import Button from '../common/Input/Button/Button'; +import SmallLabel from '../common/SmallLabel/SmallLabel'; class DataLoader extends Component { constructor(props) { super(props); + this.state={activeDataType: ''}; } + // handleChange(event) { + // let filePathString = event.target.value; + // }; + render() { - const {toggleActivated, activated } = this.props + const {setActivated, activated } = this.props + let buttonArray = ["Volume", "Fieldlines"]; + + let dataTypeButtons = () => { + return( +
+ + Select data type you wish to load + +
+ {buttonArray.map((element) => + + )} +
+
+ ); + }; + + let uploadDataButton = () => { + return( +
+
+ ); + }; + return(
{ this.props.activated && (
toggleActivated(!activated)} + closeCallback={() => setActivated(false)} > - {/* Array-list to be read from. Buttons selecting what data type to load */} + { dataTypeButtons() } + { uploadDataButton() }
)} @@ -39,9 +86,13 @@ const mapStateToProps = state => ({ }); const mapDispatchToProps = dispatch => ({ - toggleActivated: (activated) => { - dispatch(toggleActivated(activated)); - } + setFilePaths: (filePaths) => { + dispatch(setFilePaths(filePaths)) + }, + + setActivated: (isActivated) => { + dispatch(setActivated(isActivated)); + }, }); DataLoader = connect( diff --git a/modules/webgui/web/src/components/DataLoader/DataLoader.scss b/modules/webgui/web/src/components/DataLoader/DataLoader.scss index e1b4c8c424..31d2e05cc4 100644 --- a/modules/webgui/web/src/components/DataLoader/DataLoader.scss +++ b/modules/webgui/web/src/components/DataLoader/DataLoader.scss @@ -5,4 +5,27 @@ width: 50%; height: 50%; padding: 10px; +} + +.dataButtons { + display: table; + height: 50%; + padding: 10px; +} + +.block { + width: 100%; + height: 30px; + margin: auto; +} + +input[type="file"] { + display: none; +} + +.custom-file-upload { + border: 1px solid #ccc; + display: inline-block; + padding: 6px 12px; + cursor: pointer; } \ No newline at end of file