diff --git a/src/components/DeviceActions.js b/src/components/DeviceActions.js
index 57897aa..7d57118 100644
--- a/src/components/DeviceActions.js
+++ b/src/components/DeviceActions.js
@@ -3,12 +3,14 @@ import { CButton, CCard, CCardHeader, CCardBody, CRow, CCol } from '@coreui/reac
import ActionModalWidget from '../widgets/ActionModalWidget';
import FirmwareUpgradeModal from './FirmwareUpgradeModal';
import TraceModalWidget from '../widgets/TraceModalWidget';
+import WifiScanModalWidget from '../widgets/WifiScanModalWidget';
const DeviceActions = () => {
const [showRebootModal, setShowRebootModal] = useState(false);
const [showBlinkModal, setShowBlinkModal] = useState(false);
const [showUpgradeModal, setShowUpgradeModal] = useState(false);
const [showTraceModal, setShowTraceModal] = useState(false);
+ const [showScanModal, setShowScanModal] = useState(false);
const toggleRebootModal = () => {
setShowRebootModal(!showRebootModal);
@@ -26,6 +28,10 @@ const DeviceActions = () => {
setShowTraceModal(!showTraceModal);
};
+ const toggleScanModal = () => {
+ setShowScanModal(!showScanModal);
+ };
+
return (
Device Actions
@@ -54,6 +60,14 @@ const DeviceActions = () => {
+
+
+
+ Wifi Scan
+
+
+
+
{
/>
+
);
};
diff --git a/src/widgets/TraceModalWidget.js b/src/widgets/TraceModalWidget.js
index 5439414..f09491b 100644
--- a/src/widgets/TraceModalWidget.js
+++ b/src/widgets/TraceModalWidget.js
@@ -53,10 +53,6 @@ const TraceModalWidget = ({ show, toggleModal }) => {
setPackets(100);
}, [show]);
- useEffect(() => {
- console.log(`packets: ${packets} duration: ${duration}`);
- }, [duration, packets]);
-
const doAction = () => {
setHadFailure(false);
setHadSuccess(false);
diff --git a/src/widgets/WifiScanModalWidget.js b/src/widgets/WifiScanModalWidget.js
new file mode 100644
index 0000000..de4b329
--- /dev/null
+++ b/src/widgets/WifiScanModalWidget.js
@@ -0,0 +1,126 @@
+import {
+ CButton,
+ CModal,
+ CModalHeader,
+ CModalTitle,
+ CModalBody,
+ CModalFooter,
+ CSpinner,
+ CRow,
+ CFormGroup,
+ CInputRadio,
+ CLabel,
+ CForm
+ } from '@coreui/react';
+ import React, { useState, useEffect } from 'react';
+ import { useSelector } from 'react-redux';
+ import 'react-widgets/styles.css';
+ import { getToken } from '../utils/authHelper';
+ import axiosInstance from '../utils/axiosInstance';
+
+ const WifiScanModalWidget = ({ show, toggleModal }) => {
+ const [hadSuccess, setHadSuccess] = useState(false);
+ const [hadFailure, setHadFailure] = useState(false);
+ const [waiting, setWaiting] = useState(false);
+ const [choseVerbose, setVerbose] = useState(true);
+ const [responseBody, setResponseBody] = useState('');
+ const [checkingIfSure, setCheckingIfSure] = useState(false);
+ const selectedDeviceId = useSelector((state) => state.selectedDeviceId);
+
+ const confirmingIfSure = () => {
+ setCheckingIfSure(true);
+ };
+
+ useEffect(() => {
+ setHadSuccess(false);
+ setHadFailure(false);
+ setWaiting(false);
+ setResponseBody('');
+ setCheckingIfSure(false);
+ setVerbose(true);
+ }, [show]);
+
+ const doAction = () => {
+ setHadFailure(false);
+ setHadSuccess(false);
+ setWaiting(true);
+
+ const token = getToken();
+
+ const parameters = {
+ serialNumber: selectedDeviceId,
+ verbose: choseVerbose
+ };
+ const headers = {
+ Accept: 'application/json',
+ Authorization: `Bearer ${token}`,
+ };
+
+ axiosInstance
+ .post(`/device/${selectedDeviceId}/wifiscan`, parameters, { headers })
+ .then((response) => {
+ setResponseBody(JSON.stringify(response.data, null, 4));
+ setHadSuccess(true);
+ })
+ .catch((error) => {
+ setHadFailure(true);
+ console.log(error);
+ console.log(error.response);
+ })
+ .finally(() => {
+ setCheckingIfSure(false);
+ setWaiting(false);
+ });
+ };
+
+ return (
+
+
+ Wifi Scan
+
+
+
+ Launch a wifi scan of this device, which should take approximately 25 seconds.
+
+
+
+ setVerbose(true)}>
+
+ With verbose
+
+ setVerbose(false)}>
+
+ Without verbose
+
+
+
+
+
+
+ Are you sure?
+ confirmingIfSure()}>
+ Scan
+
+ doAction()}
+ >
+ {waiting ? 'Loading...' : 'Yes'} {' '}
+
+
+
+ Cancel
+
+
+
+ );
+ };
+
+ export default WifiScanModalWidget;
+
\ No newline at end of file