diff --git a/src/app.js b/src/app.js
index 92bb42c..9d2e063 100644
--- a/src/app.js
+++ b/src/app.js
@@ -31,7 +31,7 @@ import { Hidden } from 'react-grid-system'
import AppDispatcher from './common/app-dispatcher';
import ScenarioStore from './scenario/scenario-store';
import SimulatorStore from './simulator/simulator-store';
-import UserStore from './user/user-store';
+import LoginStore from './user/login-store';
import NotificationsDataManager from './common/data-managers/notifications-data-manager';
import Home from './common/home';
@@ -40,12 +40,8 @@ import Footer from './common/footer';
import SidebarMenu from './common/menu-sidebar';
import HeaderMenu from './common/header-menu';
-//import Projects from './project/projects';
-//import Project from './project/project';
import Simulators from './simulator/simulators';
import Dashboard from './dashboard/dashboard';
-//import Simulations from './simulation/simulations';
-//import Simulation from './simulation/simulation';
import Scenarios from './scenario/scenarios';
import Scenario from './scenario/scenario';
import SimulationModel from './simulationmodel/simulation-model';
@@ -57,19 +53,16 @@ import './styles/app.css';
class App extends React.Component {
static getStores() {
- return [ SimulatorStore, UserStore, ScenarioStore];
+ return [ SimulatorStore, LoginStore, ScenarioStore];
}
static calculateState(prevState) {
- let currentUser = UserStore.getState().currentUser;
return {
simulators: SimulatorStore.getState(),
scenarios: ScenarioStore.getState(),
- currentRole: currentUser ? currentUser.role : '',
- currentUsername: currentUser ? currentUser.username: '',
- currentUserID: UserStore.getState().userid,
- token: UserStore.getState().token,
+ currentUser: LoginStore.getState().currentUser,
+ token: LoginStore.getState().token,
showSidebarMenu: false,
};
@@ -77,17 +70,13 @@ class App extends React.Component {
componentWillMount() {
// if token stored locally, request user
- const token = localStorage.getItem('token');
- const userid = localStorage.getItem('userid');
-
+ let token = localStorage.getItem("token");
+ let currentUser = JSON.parse(localStorage.getItem("currentUser"));
if (token != null && token !== '') {
- // save token so we dont logout
- this.setState({ token });
-
AppDispatcher.dispatch({
type: 'users/logged-in',
token: token,
- userid: userid
+ currentUser: currentUser
});
}
}
@@ -128,7 +117,7 @@ class App extends React.Component {
*/}
- You are logged in as user {this.state.currentUsername} with ID {this.state.currentUserID} and role {this.state.currentRole}. + You are logged in as user {this.state.currentUser.username} with ID {this.state.currentUser.id} and role {this.state.currentUser.role}.
{/*diff --git a/src/dashboard/dashboard.js b/src/dashboard/dashboard.js index 4999aeb..968f141 100644 --- a/src/dashboard/dashboard.js +++ b/src/dashboard/dashboard.js @@ -34,7 +34,7 @@ import WidgetToolbox from './widget-toolbox'; import WidgetArea from './widget-area'; import DashboardButtonGroup from './dashboard-button-group'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import DashboardStore from './dashboard-store'; import ProjectStore from '../project/project-store'; import SimulationStore from '../simulation/simulation-store'; @@ -49,14 +49,14 @@ class Dashboard extends React.Component { static lastWidgetKey = 0; static getStores() { - return [ DashboardStore, ProjectStore, SimulationStore, SimulationModelStore, FileStore, UserStore, WidgetStore ]; + return [ DashboardStore, ProjectStore, SimulationStore, SimulationModelStore, FileStore, LoginStore, WidgetStore ]; } static calculateState(prevState, props) { if (prevState == null) { prevState = {}; } - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; let dashboard = Map(); console.log("dashboard calculate state was called: " + props.match.params.dashboard); let dashboards = DashboardStore.getState() diff --git a/src/file/select-file.js b/src/file/select-file.js index fafe98f..8c05cac 100644 --- a/src/file/select-file.js +++ b/src/file/select-file.js @@ -24,19 +24,19 @@ import { Container } from 'flux/utils'; import { FormGroup, FormControl, FormLabel, Button, ProgressBar, Col } from 'react-bootstrap'; import FileStore from './file-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import AppDispatcher from '../common/app-dispatcher'; class SelectFile extends React.Component { static getStores() { - return [ FileStore, UserStore ]; + return [ FileStore, LoginStore ]; } static calculateState() { return { files: FileStore.getState(), - sessionToken: UserStore.getState().token, + sessionToken: LoginStore.getState().token, selectedFile: '', uploadFile: null, uploadProgress: 0 diff --git a/src/project/project.js b/src/project/project.js index f6c9530..61bb390 100644 --- a/src/project/project.js +++ b/src/project/project.js @@ -26,7 +26,7 @@ import FileSaver from 'file-saver'; import AppDispatcher from '../common/app-dispatcher'; import ProjectStore from './project-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import DashboardStore from '../dashboard/dashboard-store'; import SimulationStore from '../simulation/simulation-store'; @@ -41,14 +41,14 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Dashboards extends Component { static getStores() { - return [ ProjectStore, DashboardStore, UserStore, SimulationStore ]; + return [ ProjectStore, DashboardStore, LoginStore, SimulationStore ]; } static calculateState(prevState, props) { prevState = prevState || {}; // load project - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; let project = ProjectStore.getState().find(project => project._id === props.match.params.project); if (project == null) { diff --git a/src/project/projects.js b/src/project/projects.js index 4aba7cf..389ce1f 100644 --- a/src/project/projects.js +++ b/src/project/projects.js @@ -25,7 +25,7 @@ import { Button } from 'react-bootstrap'; import AppDispatcher from '../common/app-dispatcher'; import ProjectStore from './project-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import SimulationStore from '../simulation/simulation-store'; import Icon from '../common/icon'; @@ -38,14 +38,14 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Projects extends React.Component { static getStores() { - return [ ProjectStore, SimulationStore, UserStore ]; + return [ ProjectStore, SimulationStore, LoginStore ]; } static calculateState() { return { projects: ProjectStore.getState(), simulations: SimulationStore.getState(), - sessionToken: UserStore.getState().token, + sessionToken: LoginStore.getState().token, newModal: false, editModal: false, diff --git a/src/scenario/scenario-store.js b/src/scenario/scenario-store.js index cd45335..4ab7ae4 100644 --- a/src/scenario/scenario-store.js +++ b/src/scenario/scenario-store.js @@ -22,42 +22,5 @@ import ScenariosDataManager from './scenarios-data-manager'; import ArrayStore from '../common/array-store'; -//import UsersDataManager from "../user/users-data-manager"; -//import SimulatorDataDataManager from "../simulator/simulator-data-data-manager"; -//import AppDispatcher from "../common/app-dispatcher"; export default new ArrayStore('scenarios', ScenariosDataManager); - - -// class ScenariosStore extends ReduceStore { -// constructor() { -// super('scenarios', ScenariosDataManager); -// } -// -// getInitialState() { -// return { -// scenarios: [], -// -// }; -// } -// -// reduce(state, action) { -// switch (action.type) { -// case 'scenarios/load-models': -// // request simulation model data of scenario -// ScenariosDataManager.getSimulationModels(action.token, action.scenarioID); -// -// return Object.assign({}, state, { token: action.token, simulationmodels: action.simulationmodels}); -// -// case 'scenarios/load-dashboards': -// // request dashboard data of scenario -// ScenariosDataManager.getDashboards(action.token, action.scenarioID); -// -// return Object.assign({}, state, { token: action.token, dashboards: action.dashboards}); -// default: -// return state; -// } -// } -// } -// -// export default new ScenariosStore(); diff --git a/src/scenario/scenario.js b/src/scenario/scenario.js index 85fee67..931dc3b 100644 --- a/src/scenario/scenario.js +++ b/src/scenario/scenario.js @@ -29,7 +29,7 @@ import ScenarioStore from './scenario-store'; import SimulatorStore from '../simulator/simulator-store'; import DashboardStore from '../dashboard/dashboard-store'; import SimulationModelStore from '../simulationmodel/simulation-model-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import AppDispatcher from '../common/app-dispatcher'; import Icon from '../common/icon'; @@ -44,12 +44,12 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Scenario extends React.Component { static getStores() { - return [ ScenarioStore, SimulationModelStore, DashboardStore, SimulatorStore]; + return [ ScenarioStore, SimulationModelStore, DashboardStore, SimulatorStore, LoginStore]; } static calculateState(prevState, props) { // get selected scenario - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; const scenario = ScenarioStore.getState().find(s => s.id === parseInt(props.match.params.scenario, 10)); if (scenario == null) { @@ -187,7 +187,6 @@ class Scenario extends React.Component { type: 'dashboards/start-add', data, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } @@ -203,7 +202,6 @@ class Scenario extends React.Component { type: 'dashboards/start-remove', data: this.state.modalDashboardData, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } @@ -215,7 +213,6 @@ class Scenario extends React.Component { type: 'dashboards/start-add', data, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } diff --git a/src/scenario/scenarios.js b/src/scenario/scenarios.js index 912abe5..2c985d7 100644 --- a/src/scenario/scenarios.js +++ b/src/scenario/scenarios.js @@ -26,7 +26,7 @@ import FileSaver from 'file-saver'; import AppDispatcher from '../common/app-dispatcher'; import ScenarioStore from './scenario-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import Icon from '../common/icon'; import Table from '../common/table'; @@ -39,12 +39,12 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Scenarios extends Component { static getStores() { - return [ ScenarioStore, UserStore ]; + return [ ScenarioStore, LoginStore ]; } static calculateState() { const scenarios = ScenarioStore.getState(); - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; console.log(scenarios); return { diff --git a/src/simulation/simulation.js b/src/simulation/simulation.js index db49b0f..6cc3ebf 100644 --- a/src/simulation/simulation.js +++ b/src/simulation/simulation.js @@ -28,7 +28,7 @@ import _ from 'lodash'; import SimulationStore from './simulation-store'; import SimulatorStore from '../simulator/simulator-store'; import SimulationModelStore from '../simulationmodel/simulation-model-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import AppDispatcher from '../common/app-dispatcher'; import Icon from '../common/icon'; @@ -41,12 +41,12 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Simulation extends React.Component { static getStores() { - return [ SimulationStore, SimulatorStore, SimulationModelStore, UserStore ]; + return [ SimulationStore, SimulatorStore, SimulationModelStore, LoginStore ]; } static calculateState(prevState, props) { // get selected simulation - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; let simulation = SimulationStore.getState().find(s => s._id === props.match.params.simulation); if (simulation == null) { diff --git a/src/simulation/simulations.js b/src/simulation/simulations.js index c74801c..6a8879d 100644 --- a/src/simulation/simulations.js +++ b/src/simulation/simulations.js @@ -26,7 +26,7 @@ import FileSaver from 'file-saver'; import AppDispatcher from '../common/app-dispatcher'; import SimulationStore from './simulation-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import SimulatorStore from '../simulator/simulator-store'; import SimulationModelStore from '../simulationmodel/simulation-model-store'; @@ -42,7 +42,7 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Simulations extends Component { static getStores() { - return [ SimulationStore, UserStore, SimulatorStore, SimulationModelStore ]; + return [ SimulationStore, LoginStore, SimulatorStore, SimulationModelStore ]; } static calculateState() { @@ -50,7 +50,7 @@ class Simulations extends Component { const simulationModels = SimulationModelStore.getState(); const simulators = SimulatorStore.getState(); - const sessionToken = UserStore.getState().token; + const sessionToken = LoginStore.getState().token; return { simulations, diff --git a/src/simulationmodel/simulation-model.js b/src/simulationmodel/simulation-model.js index e716191..15ba7ea 100644 --- a/src/simulationmodel/simulation-model.js +++ b/src/simulationmodel/simulation-model.js @@ -24,7 +24,7 @@ import { Container } from 'flux/utils'; import { Button, Col, Form, FormLabel } from 'react-bootstrap'; import SimulationModelStore from './simulation-model-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import AppDispatcher from '../common/app-dispatcher'; import SelectSimulator from '../simulator/select-simulator'; @@ -35,7 +35,7 @@ import ParametersEditor from '../common/parameters-editor'; class SimulationModel extends React.Component { static getStores() { - return [ SimulationModelStore, UserStore ]; + return [ SimulationModelStore, LoginStore ]; } static calculateState(prevState, props) { @@ -43,7 +43,7 @@ class SimulationModel extends React.Component { return { simulationModel: simulationModel || {}, - sessionToken: UserStore.getState().token + sessionToken: LoginStore.getState().token }; } diff --git a/src/simulator/simulators.js b/src/simulator/simulators.js index d0d8e4f..354979a 100644 --- a/src/simulator/simulators.js +++ b/src/simulator/simulators.js @@ -27,7 +27,7 @@ import _ from 'lodash'; import AppDispatcher from '../common/app-dispatcher'; import SimulatorStore from './simulator-store'; -import UserStore from '../user/user-store'; +import LoginStore from '../user/login-store'; import Icon from '../common/icon'; import Table from '../common/table'; @@ -41,7 +41,7 @@ import DeleteDialog from '../common/dialogs/delete-dialog'; class Simulators extends Component { static getStores() { - return [ UserStore, SimulatorStore ]; + return [ LoginStore, SimulatorStore ]; } static statePrio(state) { @@ -78,8 +78,7 @@ class Simulators extends Component { }); return { - sessionToken: UserStore.getState().token, - sessionUserID: UserStore.getState().userid, + sessionToken: LoginStore.getState().token, simulators, modalSimulator: {}, deleteModal: false, @@ -92,7 +91,6 @@ class Simulators extends Component { AppDispatcher.dispatch({ type: 'simulators/start-load', token: this.state.sessionToken, - userid: this.state.sessionUserID }); // Start timer for periodic refresh @@ -112,7 +110,6 @@ class Simulators extends Component { AppDispatcher.dispatch({ type: 'simulators/start-load', token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } @@ -126,7 +123,6 @@ class Simulators extends Component { type: 'simulators/start-add', data, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } @@ -146,7 +142,6 @@ class Simulators extends Component { type: 'simulators/start-edit', data: simulator, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } @@ -162,7 +157,6 @@ class Simulators extends Component { type: 'simulators/start-remove', data: this.state.modalSimulator, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } @@ -184,7 +178,6 @@ class Simulators extends Component { type: 'simulators/start-add', data, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } @@ -221,7 +214,6 @@ class Simulators extends Component { simulator: this.state.simulators[index], data: action.data, token: this.state.sessionToken, - userid: this.state.sessionUserID }); } } diff --git a/src/user/edit-own-user.js b/src/user/edit-own-user.js index bb37f50..66f5324 100644 --- a/src/user/edit-own-user.js +++ b/src/user/edit-own-user.js @@ -23,7 +23,7 @@ import React from 'react'; import {FormGroup, FormControl, FormLabel, Col} from 'react-bootstrap'; import Dialog from '../common/dialogs/dialog'; -import UserStore from './user-store'; +//import LoginStore from './login-store'; class EditOwnUserDialog extends React.Component { @@ -34,17 +34,15 @@ class EditOwnUserDialog extends React.Component { this.state = { username: '', - mail: '', - role: '', id: '', + mail: '', password: '', oldPassword: '', - active: '', confirmpassword: '' } } - + onClose(canceled) { if (canceled === false) { @@ -56,18 +54,15 @@ class EditOwnUserDialog extends React.Component { } } - + handleChange(e) { - let user = UserStore.getState().currentUser; this.setState({ [e.target.id]: e.target.value }); // check all controls var username = true; - var role = true; var mail = true; var pw = true; - var active = true; var oldPassword = true; var confirmpassword = true; @@ -75,7 +70,6 @@ class EditOwnUserDialog extends React.Component { username = false; } - if(this.state.mail === ''){ mail = false; } @@ -84,10 +78,6 @@ class EditOwnUserDialog extends React.Component { pw = false; } - if(this.state.active === ''){ - active = false; - } - if(this.state.oldPassword === ''){ oldPassword = false; } @@ -96,23 +86,26 @@ class EditOwnUserDialog extends React.Component { confirmpassword = false; } - - this.setState({ - role: user.role, - id: user.id - }); - // form is valid if any of the fields contain somethig - this.valid = username || role || active || oldPassword || mail || pw || confirmpassword; + /*this.setState({ + role: user.role, + id: user.id, + active: user.active + });*/ + + // form is valid if the following condition is met + this.valid = username || mail || (oldPassword && pw && confirmpassword); } resetState() { this.setState({ - //username: this.props.user.username, - //mail: this.props.user.mail, - role: this.props.user.role, - id: this.props.user.id + username: '', + mail: '', + oldPassword: '', + confirmpassword: '', + password: '', + id: this.props.user.id, }); } @@ -122,12 +115,12 @@ class EditOwnUserDialog extends React.Component {