diff --git a/interface/src/components/RestComponent.js b/interface/src/components/RestComponent.js
index d633761..5bcd8ec 100644
--- a/interface/src/components/RestComponent.js
+++ b/interface/src/components/RestComponent.js
@@ -52,10 +52,11 @@ export const restComponent = (endpointUrl, FormComponent) => {
})
.then(json => { this.setState({ data: json, fetched: true }) })
.catch(error => {
- this.props.enqueueSnackbar("Problem fetching: " + error.message, {
+ const errorMessage = error.message || "Unknown error";
+ this.props.enqueueSnackbar("Problem fetching: " + errorMessage, {
variant: 'error',
});
- this.setState({ data: null, fetched: true, errorMessage: error.message });
+ this.setState({ data: null, fetched: true, errorMessage });
});
}
@@ -80,10 +81,11 @@ export const restComponent = (endpointUrl, FormComponent) => {
});
this.setState({ data: json, fetched: true });
}).catch(error => {
- this.props.enqueueSnackbar("Problem saving: " + error.message, {
+ const errorMessage = error.message || "Unknown error";
+ this.props.enqueueSnackbar("Problem saving: " + errorMessage, {
variant: 'error',
});
- this.setState({ data: null, fetched: true, errorMessage: error.message });
+ this.setState({ data: null, fetched: true, errorMessage });
});
}
diff --git a/interface/src/containers/APSettings.js b/interface/src/containers/APSettings.js
index 0ca9c53..3e8cab2 100644
--- a/interface/src/containers/APSettings.js
+++ b/interface/src/containers/APSettings.js
@@ -1,7 +1,8 @@
import React, { Component } from 'react';
-import { AP_SETTINGS_ENDPOINT } from '../constants/Endpoints';
+import { AP_SETTINGS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
import APSettingsForm from '../forms/APSettingsForm';
@@ -12,17 +13,20 @@ class APSettings extends Component {
}
render() {
- const { data, fetched, errorMessage } = this.props;
+ const { fetched, errorMessage, data, saveData, loadData, handleValueChange } = this.props;
return (
-
+
+
+
)
}
diff --git a/interface/src/containers/APStatus.js b/interface/src/containers/APStatus.js
index afd019c..354a1da 100644
--- a/interface/src/containers/APStatus.js
+++ b/interface/src/containers/APStatus.js
@@ -2,8 +2,6 @@ import React, { Component, Fragment } from 'react';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import Typography from '@material-ui/core/Typography';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
@@ -15,6 +13,7 @@ import DeviceHubIcon from '@material-ui/icons/DeviceHub';
import ComputerIcon from '@material-ui/icons/Computer';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent'
import * as Highlight from '../constants/Highlight';
@@ -27,10 +26,6 @@ const styles = theme => ({
["apStatus_" + Highlight.IDLE]: {
backgroundColor: theme.palette.highlight_idle
},
- fetching: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
button: {
marginRight: theme.spacing(2),
marginTop: theme.spacing(2),
@@ -106,30 +101,15 @@ class APStatus extends Component {
}
render() {
- const { data, fetched, errorMessage, classes } = this.props;
-
+ const { fetched, errorMessage, data, loadData, classes } = this.props;
return (
- {
- !fetched ?
-
-
-
- Loading...
-
-
- :
- data ? this.renderAPStatus(data, classes)
- :
-
-
- {errorMessage}
-
-
-
- }
+
+ {this.renderAPStatus(data, classes)}
+
)
}
diff --git a/interface/src/containers/ManageUsers.js b/interface/src/containers/ManageUsers.js
index 478dcae..63727cd 100644
--- a/interface/src/containers/ManageUsers.js
+++ b/interface/src/containers/ManageUsers.js
@@ -2,8 +2,9 @@ import React, { Component } from 'react';
import { SECURITY_SETTINGS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
-import ManageUsersForm from '../forms/ManageUsersForm';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
+import ManageUsersForm from '../forms/ManageUsersForm';
class ManageUsers extends Component {
@@ -12,18 +13,21 @@ class ManageUsers extends Component {
}
render() {
- const { data, fetched, errorMessage } = this.props;
+ const { fetched, errorMessage, data, saveData, loadData, setData, handleValueChange } = this.props;
return (
-
+
+
+
)
}
diff --git a/interface/src/containers/NTPSettings.js b/interface/src/containers/NTPSettings.js
index 2e291a9..2b903a8 100644
--- a/interface/src/containers/NTPSettings.js
+++ b/interface/src/containers/NTPSettings.js
@@ -1,28 +1,32 @@
import React, { Component } from 'react';
-import { NTP_SETTINGS_ENDPOINT } from '../constants/Endpoints';
-import {restComponent} from '../components/RestComponent';
+import { NTP_SETTINGS_ENDPOINT } from '../constants/Endpoints';
+import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
import NTPSettingsForm from '../forms/NTPSettingsForm';
class NTPSettings extends Component {
componentDidMount() {
- this.props.loadData();
+ this.props.loadData();
}
render() {
- const { data, fetched, errorMessage } = this.props;
+ const { fetched, errorMessage, data, saveData, loadData, handleValueChange } = this.props;
return (
-
+
+
+
)
}
diff --git a/interface/src/containers/NTPStatus.js b/interface/src/containers/NTPStatus.js
index a9b5270..195f5fa 100644
--- a/interface/src/containers/NTPStatus.js
+++ b/interface/src/containers/NTPStatus.js
@@ -2,8 +2,6 @@ import React, { Component, Fragment } from 'react';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import Typography from '@material-ui/core/Typography';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
@@ -22,6 +20,7 @@ import * as Highlight from '../constants/Highlight';
import { unixTimeToTimeAndDate } from '../constants/TimeFormat';
import { NTP_STATUS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
import moment from 'moment';
@@ -36,10 +35,6 @@ const styles = theme => ({
["ntpStatus_" + Highlight.WARN]: {
backgroundColor: theme.palette.highlight_warn
},
- fetching: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
button: {
marginRight: theme.spacing(2),
marginTop: theme.spacing(2),
@@ -131,32 +126,17 @@ class NTPStatus extends Component {
}
render() {
- const { data, fetched, errorMessage, classes } = this.props;
-
+ const { data, fetched, errorMessage, loadData, classes } = this.props;
return (
- {
- !fetched ?
-
-
-
- Loading...
-
-
- :
- data ? this.renderNTPStatus(data, classes)
- :
-
-
- {errorMessage}
-
-
-
- }
+
+ {this.renderNTPStatus(data, classes)}
+
- )
+ );
}
}
diff --git a/interface/src/containers/OTASettings.js b/interface/src/containers/OTASettings.js
index 95be458..189e620 100644
--- a/interface/src/containers/OTASettings.js
+++ b/interface/src/containers/OTASettings.js
@@ -1,29 +1,33 @@
import React, { Component } from 'react';
-import { OTA_SETTINGS_ENDPOINT } from '../constants/Endpoints';
-import {restComponent} from '../components/RestComponent';
+import { OTA_SETTINGS_ENDPOINT } from '../constants/Endpoints';
+import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
import OTASettingsForm from '../forms/OTASettingsForm';
class OTASettings extends Component {
componentDidMount() {
- this.props.loadData();
+ this.props.loadData();
}
render() {
- const { data, fetched, errorMessage } = this.props;
+ const { fetched, errorMessage, data, saveData, loadData, handleValueChange, handleCheckboxChange } = this.props;
return (
-
+
+
+
)
}
diff --git a/interface/src/containers/SecuritySettings.js b/interface/src/containers/SecuritySettings.js
index 0ceb890..e1c70a6 100644
--- a/interface/src/containers/SecuritySettings.js
+++ b/interface/src/containers/SecuritySettings.js
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
import { SECURITY_SETTINGS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SecuritySettingsForm from '../forms/SecuritySettingsForm';
import SectionContent from '../components/SectionContent';
@@ -15,14 +16,17 @@ class SecuritySettings extends Component {
const { data, fetched, errorMessage, saveData, loadData, handleValueChange } = this.props;
return (
-
+ fetched={fetched}
+ errorMessage={errorMessage}>
+
+
)
}
diff --git a/interface/src/containers/SystemStatus.js b/interface/src/containers/SystemStatus.js
index 20728f5..b9c1410 100644
--- a/interface/src/containers/SystemStatus.js
+++ b/interface/src/containers/SystemStatus.js
@@ -2,8 +2,6 @@ import React, { Component, Fragment } from 'react';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import Typography from '@material-ui/core/Typography';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
@@ -16,16 +14,12 @@ import ShowChartIcon from '@material-ui/icons/ShowChart';
import SdStorageIcon from '@material-ui/icons/SdStorage';
import DataUsageIcon from '@material-ui/icons/DataUsage';
-
import { SYSTEM_STATUS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
const styles = theme => ({
- fetching: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
button: {
marginRight: theme.spacing(2),
marginTop: theme.spacing(2),
@@ -85,7 +79,7 @@ class SystemStatus extends Component {
-
+
);
}
@@ -104,29 +98,15 @@ class SystemStatus extends Component {
}
render() {
- const { data, fetched, errorMessage, classes } = this.props;
+ const { data, fetched, errorMessage, loadData, classes } = this.props;
return (
- {
- !fetched ?
-
-
-
- Loading...
-
-
- :
- data ? this.renderNTPStatus(data, classes)
- :
-
-
- {errorMessage}
-
-
-
- }
+
+ {this.renderNTPStatus(data, classes)}
+
)
}
diff --git a/interface/src/containers/WiFiNetworkScanner.js b/interface/src/containers/WiFiNetworkScanner.js
index 4b3d126..4cdb9be 100644
--- a/interface/src/containers/WiFiNetworkScanner.js
+++ b/interface/src/containers/WiFiNetworkScanner.js
@@ -1,10 +1,10 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
+import { withSnackbar } from 'notistack';
import { SCAN_NETWORKS_ENDPOINT, LIST_NETWORKS_ENDPOINT } from '../constants/Endpoints';
import SectionContent from '../components/SectionContent';
import WiFiNetworkSelector from '../forms/WiFiNetworkSelector';
-import { withSnackbar } from 'notistack';
import { redirectingAuthorizedFetch } from '../authentication/Authentication';
const NUM_POLLS = 10
diff --git a/interface/src/containers/WiFiSettings.js b/interface/src/containers/WiFiSettings.js
index 17f913c..fb0bfb0 100644
--- a/interface/src/containers/WiFiSettings.js
+++ b/interface/src/containers/WiFiSettings.js
@@ -1,8 +1,9 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
-import { WIFI_SETTINGS_ENDPOINT } from '../constants/Endpoints';
+import { WIFI_SETTINGS_ENDPOINT } from '../constants/Endpoints';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
import SectionContent from '../components/SectionContent';
import WiFiSettingsForm from '../forms/WiFiSettingsForm';
@@ -18,10 +19,10 @@ class WiFiSettings extends Component {
const { selectedNetwork } = this.props;
if (selectedNetwork) {
var wifiSettings = {
- ssid:selectedNetwork.ssid,
- password:"",
- hostname:"esp8266-react",
- static_ip_config:false,
+ ssid: selectedNetwork.ssid,
+ password: "",
+ hostname: "esp8266-react",
+ static_ip_config: false,
}
this.props.setData(wifiSettings);
} else {
@@ -35,20 +36,23 @@ class WiFiSettings extends Component {
}
render() {
- const { data, fetched, errorMessage, selectedNetwork } = this.props;
+ const { data, fetched, errorMessage, saveData, loadData, handleValueChange, handleCheckboxChange, selectedNetwork, deselectNetwork } = this.props;
return (
-
+
+
+
)
}
diff --git a/interface/src/containers/WiFiStatus.js b/interface/src/containers/WiFiStatus.js
index 773e958..4c47f2c 100644
--- a/interface/src/containers/WiFiStatus.js
+++ b/interface/src/containers/WiFiStatus.js
@@ -2,14 +2,10 @@ import React, { Component, Fragment } from 'react';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import Typography from '@material-ui/core/Typography';
-
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
-
import Avatar from '@material-ui/core/Avatar';
import Divider from '@material-ui/core/Divider';
import WifiIcon from '@material-ui/icons/Wifi';
@@ -23,6 +19,7 @@ import { WIFI_STATUS_ENDPOINT } from '../constants/Endpoints';
import { isConnected, connectionStatus, connectionStatusHighlight } from '../constants/WiFiConnectionStatus';
import * as Highlight from '../constants/Highlight';
import { restComponent } from '../components/RestComponent';
+import LoadingNotification from '../components/LoadingNotification';
const styles = theme => ({
["wifiStatus_" + Highlight.IDLE]: {
@@ -37,10 +34,6 @@ const styles = theme => ({
["wifiStatus_" + Highlight.WARN]: {
backgroundColor: theme.palette.highlight_warn
},
- fetching: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
button: {
marginRight: theme.spacing(2),
marginTop: theme.spacing(2),
@@ -145,32 +138,19 @@ class WiFiStatus extends Component {
}
render() {
- const { data, fetched, errorMessage, classes } = this.props;
+ const { data, fetched, errorMessage, loadData, classes } = this.props;
return (
- {
- !fetched ?
-
-
-
- Loading...
-
-
- :
- data ? this.renderWiFiStatus(data, classes)
- :
-
-
- {errorMessage}
-
-
-
- }
+
+ {this.renderWiFiStatus(data, classes)}
+
- )
+ );
}
+
}
export default restComponent(WIFI_STATUS_ENDPOINT, withStyles(styles)(WiFiStatus));
diff --git a/interface/src/forms/APSettingsForm.js b/interface/src/forms/APSettingsForm.js
index bdd9191..e708884 100644
--- a/interface/src/forms/APSettingsForm.js
+++ b/interface/src/forms/APSettingsForm.js
@@ -1,29 +1,19 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
+import { TextValidator, ValidatorForm, SelectValidator } from 'react-material-ui-form-validator';
+
+import { isAPEnabled } from '../constants/WiFiAPModes';
+import PasswordValidator from '../components/PasswordValidator';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import Typography from '@material-ui/core/Typography';
import MenuItem from '@material-ui/core/MenuItem';
-import { TextValidator, ValidatorForm, SelectValidator } from 'react-material-ui-form-validator';
-
-import {isAPEnabled} from '../constants/WiFiAPModes';
-import PasswordValidator from '../components/PasswordValidator';
-
const styles = theme => ({
- loadingSettings: {
- margin: theme.spacing(0.5),
- },
- loadingSettingsDetails: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
textField: {
width: "100%"
},
- selectField:{
+ selectField: {
width: "100%",
marginTop: theme.spacing(2),
marginBottom: theme.spacing(0.5)
@@ -37,86 +27,54 @@ const styles = theme => ({
class APSettingsForm extends React.Component {
render() {
- const { classes, apSettingsFetched, apSettings, errorMessage, handleValueChange, onSubmit, onReset } = this.props;
+ const { classes, apSettings, handleValueChange, onSubmit, onReset } = this.props;
return (
-
+
+
+
+
+
+
{
- !apSettingsFetched ?
-
-
-
-
- Loading...
-
-
-
- : apSettings ?
-
-
-
-
-
-
-
-
-
- {
- isAPEnabled(apSettings.provision_mode) &&
-
-
-
-
- }
-
-
-
-
-
-
- :
-
-
-
- {errorMessage}
-
-
-
- }
-
+ isAPEnabled(apSettings.provision_mode) &&
+
+
+
+
+ }
+
+
+
);
}
}
APSettingsForm.propTypes = {
classes: PropTypes.object.isRequired,
- apSettingsFetched: PropTypes.bool.isRequired,
apSettings: PropTypes.object,
- errorMessage: PropTypes.string,
onSubmit: PropTypes.func.isRequired,
onReset: PropTypes.func.isRequired,
handleValueChange: PropTypes.func.isRequired
diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js
index c2e2768..bdae121 100644
--- a/interface/src/forms/ManageUsersForm.js
+++ b/interface/src/forms/ManageUsersForm.js
@@ -5,7 +5,6 @@ import { ValidatorForm } from 'react-material-ui-form-validator';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
import Typography from '@material-ui/core/Typography';
import Table from '@material-ui/core/Table';
import TableBody from '@material-ui/core/TableBody';
@@ -14,7 +13,6 @@ import TableFooter from '@material-ui/core/TableFooter';
import TableHead from '@material-ui/core/TableHead';
import TableRow from '@material-ui/core/TableRow';
import Box from '@material-ui/core/Box';
-
import EditIcon from '@material-ui/icons/Edit';
import DeleteIcon from '@material-ui/icons/Delete';
import CloseIcon from '@material-ui/icons/Close';
@@ -25,22 +23,12 @@ import UserForm from './UserForm';
import { withAuthenticationContext } from '../authentication/Context';
const styles = theme => ({
- loadingSettings: {
- margin: theme.spacing(0.5),
- },
- loadingSettingsDetails: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
button: {
marginRight: theme.spacing(2),
marginTop: theme.spacing(2),
},
table: {
'& td, & th': { padding: theme.spacing(0.5) }
- },
- actions: {
- whiteSpace: "nowrap"
}
});
@@ -134,98 +122,80 @@ class ManageUsersForm extends React.Component {
}
render() {
- const { classes, userData, userDataFetched, errorMessage, onReset } = this.props;
+ const { classes, userData, onReset } = this.props;
const { user, creating } = this.state;
return (
- !userDataFetched ?
-
-
-
- Loading...
-
-
- :
- userData ?
-
-
-
-
-
- Username
- Admin?
-
-
-
-
- {userData.users.sort(compareUsers).map(user => (
-
-
- {user.username}
-
-
- {
- user.admin ? :
- }
-
-
- this.removeUser(user)}>
-
-
- this.startEditingUser(user)}>
-
-
-
-
- ))}
-
-
-
-
-
-
-
-
-
-
- {
- this.noAdminConfigured() &&
-
-
- You must have at least one admin user configured.
-
-
- }
-
-
-
- {
- user &&
-
- }
-
- :
-
-
- {errorMessage}
+
+
+
+
+
+ Username
+ Admin?
+
+
+
+
+ {userData.users.sort(compareUsers).map(user => (
+
+
+ {user.username}
+
+
+ {
+ user.admin ? :
+ }
+
+
+ this.removeUser(user)}>
+
+
+ this.startEditingUser(user)}>
+
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+ {
+ this.noAdminConfigured() &&
+
+
+ You must have at least one admin user configured.
+
-
-
+ }
+
+
+
+ {
+ user &&
+
+ }
+
);
}
@@ -234,8 +204,6 @@ class ManageUsersForm extends React.Component {
ManageUsersForm.propTypes = {
classes: PropTypes.object.isRequired,
userData: PropTypes.object,
- userDataFetched: PropTypes.bool.isRequired,
- errorMessage: PropTypes.string,
onSubmit: PropTypes.func.isRequired,
onReset: PropTypes.func.isRequired,
setData: PropTypes.func.isRequired,
diff --git a/interface/src/forms/NTPSettingsForm.js b/interface/src/forms/NTPSettingsForm.js
index ba89b9c..8214825 100644
--- a/interface/src/forms/NTPSettingsForm.js
+++ b/interface/src/forms/NTPSettingsForm.js
@@ -1,24 +1,15 @@
import React from 'react';
import PropTypes from 'prop-types';
+import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
-import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator';
-import Typography from '@material-ui/core/Typography';
import isIP from '../validators/isIP';
import isHostname from '../validators/isHostname';
import or from '../validators/or';
const styles = theme => ({
- loadingSettings: {
- margin: theme.spacing(0.5),
- },
- loadingSettingsDetails: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
textField: {
width: "100%"
},
@@ -35,76 +26,44 @@ class NTPSettingsForm extends React.Component {
}
render() {
- const { classes, ntpSettingsFetched, ntpSettings, errorMessage, handleValueChange, onSubmit, onReset } = this.props;
+ const { classes, ntpSettings, handleValueChange, onSubmit, onReset } = this.props;
return (
-
- {
- !ntpSettingsFetched ?
-
-
-
-
- Loading...
-
-
-
- : ntpSettings ?
-
-
-
-
-
-
-
-
-
-
-
-
- :
-
-
-
- {errorMessage}
-
-
-
- }
-
+
+
+
+
+
+
);
}
}
NTPSettingsForm.propTypes = {
classes: PropTypes.object.isRequired,
- ntpSettingsFetched: PropTypes.bool.isRequired,
ntpSettings: PropTypes.object,
- errorMessage: PropTypes.string,
onSubmit: PropTypes.func.isRequired,
onReset: PropTypes.func.isRequired,
handleValueChange: PropTypes.func.isRequired,
diff --git a/interface/src/forms/OTASettingsForm.js b/interface/src/forms/OTASettingsForm.js
index 31bb411..29ee5b8 100644
--- a/interface/src/forms/OTASettingsForm.js
+++ b/interface/src/forms/OTASettingsForm.js
@@ -4,9 +4,7 @@ import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
import Switch from '@material-ui/core/Switch';
-import LinearProgress from '@material-ui/core/LinearProgress';
import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator';
-import Typography from '@material-ui/core/Typography';
import FormControlLabel from '@material-ui/core/FormControlLabel';
import isIP from '../validators/isIP';
@@ -15,13 +13,6 @@ import or from '../validators/or';
import PasswordValidator from '../components/PasswordValidator';
const styles = theme => ({
- loadingSettings: {
- margin: theme.spacing(0.5),
- },
- loadingSettingsDetails: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
switchControl: {
width: "100%",
marginTop: theme.spacing(2),
@@ -43,88 +34,55 @@ class OTASettingsForm extends React.Component {
}
render() {
- const { classes, otaSettingsFetched, otaSettings, errorMessage, handleValueChange, handleCheckboxChange, onSubmit, onReset } = this.props;
+ const { classes, otaSettings, handleValueChange, handleCheckboxChange, onSubmit, onReset } = this.props;
return (
-
- {
- !otaSettingsFetched ?
-
-
-
-
- Loading...
-
-
-
- : otaSettings ?
-
-
-
-
- }
- label="Enable OTA Updates?"
- />
-
-
-
-
-
-
-
-
-
-
- :
-
-
-
- {errorMessage}
-
-
-
- }
-
+
+
+ }
+ label="Enable OTA Updates?"
+ />
+
+
+
+
+
);
}
}
OTASettingsForm.propTypes = {
classes: PropTypes.object.isRequired,
- otaSettingsFetched: PropTypes.bool.isRequired,
otaSettings: PropTypes.object,
- errorMessage: PropTypes.string,
onSubmit: PropTypes.func.isRequired,
onReset: PropTypes.func.isRequired,
handleValueChange: PropTypes.func.isRequired,
diff --git a/interface/src/forms/SecuritySettingsForm.js b/interface/src/forms/SecuritySettingsForm.js
index 00a339c..16d74a3 100644
--- a/interface/src/forms/SecuritySettingsForm.js
+++ b/interface/src/forms/SecuritySettingsForm.js
@@ -4,7 +4,6 @@ import { ValidatorForm } from 'react-material-ui-form-validator';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
import Typography from '@material-ui/core/Typography';
import Box from '@material-ui/core/Box';
@@ -12,13 +11,6 @@ import PasswordValidator from '../components/PasswordValidator';
import { withAuthenticationContext } from '../authentication/Context';
const styles = theme => ({
- loadingSettings: {
- margin: theme.spacing(0.5),
- },
- loadingSettingsDetails: {
- margin: theme.spacing(4),
- textAlign: "center"
- },
textField: {
width: "100%"
},
@@ -36,58 +28,38 @@ class SecuritySettingsForm extends React.Component {
}
render() {
- const { classes, securitySettingsFetched, securitySettings, errorMessage, handleValueChange, onReset } = this.props;
+ const { classes, securitySettings, handleValueChange, onReset } = this.props;
return (
- !securitySettingsFetched ?
-
-
-
- Loading...
-
-
- :
- securitySettings ?
-
-
-
-
- If you modify the JWT Secret, all users will be logged out.
-
-
-
-
-
- :
-
-
- {errorMessage}
-
-
-
+
+
+
+
+ If you modify the JWT Secret, all users will be logged out.
+
+
+
+
+
);
}
}
SecuritySettingsForm.propTypes = {
classes: PropTypes.object.isRequired,
- securitySettingsFetched: PropTypes.bool.isRequired,
securitySettings: PropTypes.object,
- errorMessage: PropTypes.string,
onSubmit: PropTypes.func.isRequired,
onReset: PropTypes.func.isRequired,
handleValueChange: PropTypes.func.isRequired,
diff --git a/interface/src/forms/WiFiSettingsForm.js b/interface/src/forms/WiFiSettingsForm.js
index fd7b453..b59ddda 100644
--- a/interface/src/forms/WiFiSettingsForm.js
+++ b/interface/src/forms/WiFiSettingsForm.js
@@ -3,10 +3,8 @@ import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
-import LinearProgress from '@material-ui/core/LinearProgress';
import Checkbox from '@material-ui/core/Checkbox';
import FormControlLabel from '@material-ui/core/FormControlLabel';
-import Typography from '@material-ui/core/Typography';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
@@ -80,157 +78,124 @@ class WiFiSettingsForm extends React.Component {
}
render() {
- const { classes, wifiSettingsFetched, wifiSettings, errorMessage, selectedNetwork, handleValueChange, handleCheckboxChange, onSubmit, onReset } = this.props;
+ const { classes, wifiSettings, selectedNetwork, handleValueChange, handleCheckboxChange, onSubmit, onReset } = this.props;
return (
-
+
{
- !wifiSettingsFetched ?
-
-
-
-
- Loading...
-
-
-
- : wifiSettings ?
-
-
- {
- selectedNetwork ? this.renderSelectedNetwork() :
-
- }
- {
- !isNetworkOpen(selectedNetwork) &&
-
- }
-
-
-
-
- }
- label="Static IP Config?"
- />
-
- {
- wifiSettings.static_ip_config &&
-
-
-
-
-
-
-
- }
-
-
-
-
-
-
- :
-
-
-
- {errorMessage}
-
-
-
+ selectedNetwork ? this.renderSelectedNetwork() :
+
}
-
+ {
+ !isNetworkOpen(selectedNetwork) &&
+
+ }
+
+
+ }
+ label="Static IP Config?"
+ />
+ {
+ wifiSettings.static_ip_config &&
+
+
+
+
+
+
+
+ }
+
+
+
);
}
}
WiFiSettingsForm.propTypes = {
classes: PropTypes.object.isRequired,
- wifiSettingsFetched: PropTypes.bool.isRequired,
wifiSettings: PropTypes.object,
- errorMessage: PropTypes.string,
deselectNetwork: PropTypes.func,
selectedNetwork: PropTypes.object,
onSubmit: PropTypes.func.isRequired,