import React, { useEffect, useState } from 'react'; import { addActiveElement, removeFocusedElement } from "../../../actions/MainNavigation/mainNavigationActions"; import Password from '../../../components/ControlPanel/AddItemLayout/Form/Password/Password'; import SelectInput from '../../ControlPanel/AddItemLayout/Form/SelectInput/SelectInput'; import NameServers from '../../ControlPanel/AddItemLayout/Form/NameServers/NameServers'; import TextInput from '../../ControlPanel/AddItemLayout/Form/TextInput/TextInput'; import { updateUser, getUserInfo } from '../../../ControlPanelService/Users'; import AddItemLayout from '../../ControlPanel/AddItemLayout/AddItemLayout'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Spinner from '../../../components/Spinner/Spinner'; import Toolbar from '../../MainNav/Toolbar/Toolbar'; import { useHistory } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; import QS from 'qs'; import './EditUser.scss'; import { Helmet } from 'react-helmet'; import { checkAuthHandler } from 'src/actions/Session/sessionActions'; import { refreshCounters } from 'src/actions/MenuCounters/menuCounterActions'; import HtmlParser from 'react-html-parser'; const EditUser = props => { const token = localStorage.getItem("token"); const { i18n } = useSelector(state => state.session); const history = useHistory(); const dispatch = useDispatch(); const [state, setState] = useState({ data: {}, loading: false, username: '', errorMessage: '', okMessage: '' }); useEffect(() => { let queryParams = QS.parse(history.location.search, { ignoreQueryPrefix: true }); const { user } = queryParams; dispatch(addActiveElement('/list/user/')); dispatch(removeFocusedElement()); if (user) { setState({ ...state, loading: true }); getUserInfo(user) .then(response => { setState({ ...state, username: user, data: response.data, errorMessage: response.data['error_msg'], okMessage: response.data['ok_msg'], loading: false }); }) .catch(err => console.error(err)); } }, []); const submitFormHandler = event => { event.preventDefault(); let updatedUser = {}; for (var [name, value] of (new FormData(event.target)).entries()) { updatedUser[name] = value; } updatedUser['v_username'] = state.username; if (Object.keys(updatedUser).length !== 0 && updatedUser.constructor === Object) { setState({ ...state, loading: true }); updateUser(updatedUser, state.username) .then(result => { if (result.status === 200) { const { error_msg: errorMessage, ok_msg: okMessage } = result.data; if (errorMessage) { setState({ ...state, errorMessage, okMessage, loading: false }); } else { dispatch(refreshCounters()).then(() => { setState({ ...state, okMessage, errorMessage: '', loading: false }); }); } } }) .catch(err => console.error(err)); } } const convertObjectOfObjectsToArrayOfObjects = object => { let result = []; for (let i in object) { result.push(i); } return result; } return (
{`Vesta - ${i18n.USER}`}
{i18n['Editing User']}
{state.data.errorMessage ? : ''} {state.errorMessage}
{state.okMessage ? : ''} {HtmlParser(state.okMessage)}
{state.loading ? :
submitFormHandler(event)} id="add-user">
}
); } export default EditUser;