Fix user form

* fix issue with checkbox on user form
* use consistent style for const char pointers
* use unique hostname by default
This commit is contained in:
rjwats 2020-11-21 23:40:31 +00:00 committed by GitHub
parent 7aed5c0eb2
commit 6e22893051
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 18 deletions

View File

@ -3,7 +3,8 @@ build_flags =
; WiFi settings ; WiFi settings
-D FACTORY_WIFI_SSID=\"\" -D FACTORY_WIFI_SSID=\"\"
-D FACTORY_WIFI_PASSWORD=\"\" -D FACTORY_WIFI_PASSWORD=\"\"
-D FACTORY_WIFI_HOSTNAME=\"esp-react\" ; if unspecified the devices hardware ID will be used
; -D FACTORY_WIFI_HOSTNAME=\"esp-react\"
; Access point settings ; Access point settings
-D FACTORY_AP_PROVISION_MODE=AP_MODE_DISCONNECTED -D FACTORY_AP_PROVISION_MODE=AP_MODE_DISCONNECTED

View File

@ -13,7 +13,7 @@ import SaveIcon from '@material-ui/icons/Save';
import PersonAddIcon from '@material-ui/icons/PersonAdd'; import PersonAddIcon from '@material-ui/icons/PersonAdd';
import { withAuthenticatedContext, AuthenticatedContextProps } from '../authentication'; import { withAuthenticatedContext, AuthenticatedContextProps } from '../authentication';
import { RestFormProps, FormActions, FormButton } from '../components'; import { RestFormProps, FormActions, FormButton, extractEventValue } from '../components';
import UserForm from './UserForm'; import UserForm from './UserForm';
import { SecuritySettings, User } from './types'; import { SecuritySettings, User } from './types';
@ -93,13 +93,9 @@ class ManageUsersForm extends React.Component<ManageUsersFormProps, ManageUsersF
}; };
handleUserValueChange = (name: keyof User) => (event: React.ChangeEvent<HTMLInputElement>) => { handleUserValueChange = (name: keyof User) => (event: React.ChangeEvent<HTMLInputElement>) => {
this.setState({ user: { ...this.state.user!, [name]: event.target.value } }); this.setState({ user: { ...this.state.user!, [name]: extractEventValue(event) } });
}; };
handleUserCheckboxChange = (name: keyof User) => (event: React.ChangeEvent<HTMLInputElement>) => {
this.setState({ user: { ...this.state.user!, [name]: event.target.checked } });
}
onSubmit = () => { onSubmit = () => {
this.props.saveData(); this.props.saveData();
this.props.authenticatedContext.refresh(); this.props.authenticatedContext.refresh();

View File

@ -11,7 +11,7 @@ class FSPersistence {
JsonStateUpdater<T> stateUpdater, JsonStateUpdater<T> stateUpdater,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
FS* fs, FS* fs,
char const* filePath, const char* filePath,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
_stateReader(stateReader), _stateReader(stateReader),
_stateUpdater(stateUpdater), _stateUpdater(stateUpdater),
@ -81,7 +81,7 @@ class FSPersistence {
JsonStateUpdater<T> _stateUpdater; JsonStateUpdater<T> _stateUpdater;
StatefulService<T>* _statefulService; StatefulService<T>* _statefulService;
FS* _fs; FS* _fs;
char const* _filePath; const char* _filePath;
size_t _bufferSize; size_t _bufferSize;
update_handler_id_t _updateHandlerId; update_handler_id_t _updateHandlerId;

View File

@ -20,7 +20,7 @@ class WebSocketConnector {
WebSocketConnector(StatefulService<T>* statefulService, WebSocketConnector(StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
SecurityManager* securityManager, SecurityManager* securityManager,
AuthenticationPredicate authenticationPredicate, AuthenticationPredicate authenticationPredicate,
size_t bufferSize) : size_t bufferSize) :
@ -40,7 +40,7 @@ class WebSocketConnector {
WebSocketConnector(StatefulService<T>* statefulService, WebSocketConnector(StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
size_t bufferSize) : size_t bufferSize) :
_statefulService(statefulService), _server(server), _webSocket(webSocketPath), _bufferSize(bufferSize) { _statefulService(statefulService), _server(server), _webSocket(webSocketPath), _bufferSize(bufferSize) {
_webSocket.onEvent(std::bind(&WebSocketConnector::onWSEvent, _webSocket.onEvent(std::bind(&WebSocketConnector::onWSEvent,
@ -77,7 +77,7 @@ class WebSocketTx : virtual public WebSocketConnector<T> {
WebSocketTx(JsonStateReader<T> stateReader, WebSocketTx(JsonStateReader<T> stateReader,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
SecurityManager* securityManager, SecurityManager* securityManager,
AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN, AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
@ -95,7 +95,7 @@ class WebSocketTx : virtual public WebSocketConnector<T> {
WebSocketTx(JsonStateReader<T> stateReader, WebSocketTx(JsonStateReader<T> stateReader,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize), _stateReader(stateReader) { WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize), _stateReader(stateReader) {
WebSocketConnector<T>::_statefulService->addUpdateHandler( WebSocketConnector<T>::_statefulService->addUpdateHandler(
@ -166,7 +166,7 @@ class WebSocketRx : virtual public WebSocketConnector<T> {
WebSocketRx(JsonStateUpdater<T> stateUpdater, WebSocketRx(JsonStateUpdater<T> stateUpdater,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
SecurityManager* securityManager, SecurityManager* securityManager,
AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN, AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
@ -182,7 +182,7 @@ class WebSocketRx : virtual public WebSocketConnector<T> {
WebSocketRx(JsonStateUpdater<T> stateUpdater, WebSocketRx(JsonStateUpdater<T> stateUpdater,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize), _stateUpdater(stateUpdater) { WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize), _stateUpdater(stateUpdater) {
} }
@ -221,7 +221,7 @@ class WebSocketTxRx : public WebSocketTx<T>, public WebSocketRx<T> {
JsonStateUpdater<T> stateUpdater, JsonStateUpdater<T> stateUpdater,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
SecurityManager* securityManager, SecurityManager* securityManager,
AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN, AuthenticationPredicate authenticationPredicate = AuthenticationPredicates::IS_ADMIN,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
@ -251,7 +251,7 @@ class WebSocketTxRx : public WebSocketTx<T>, public WebSocketRx<T> {
JsonStateUpdater<T> stateUpdater, JsonStateUpdater<T> stateUpdater,
StatefulService<T>* statefulService, StatefulService<T>* statefulService,
AsyncWebServer* server, AsyncWebServer* server,
char const* webSocketPath, const char* webSocketPath,
size_t bufferSize = DEFAULT_BUFFER_SIZE) : size_t bufferSize = DEFAULT_BUFFER_SIZE) :
WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize), WebSocketConnector<T>(statefulService, server, webSocketPath, bufferSize),
WebSocketTx<T>(stateReader, statefulService, server, webSocketPath, bufferSize), WebSocketTx<T>(stateReader, statefulService, server, webSocketPath, bufferSize),

View File

@ -19,7 +19,7 @@
#endif #endif
#ifndef FACTORY_WIFI_HOSTNAME #ifndef FACTORY_WIFI_HOSTNAME
#define FACTORY_WIFI_HOSTNAME "" #define FACTORY_WIFI_HOSTNAME ESPUtils::defaultDeviceValue("esp-react-")
#endif #endif
class WiFiSettings { class WiFiSettings {