From e407d33aa8ba834f8caf29c2bf046ffd342b82ce Mon Sep 17 00:00:00 2001 From: bourquecharles Date: Tue, 18 May 2021 18:23:19 -0400 Subject: [PATCH] Added now behaviour to upgrade and now is '' --- src/components/FirmwareUpgradeModal.js | 60 ++++++++++++++++---------- src/widgets/ActionModalWidget.js | 4 +- src/widgets/BlinkModalWidget.js | 4 +- src/widgets/TraceModalWidget.js | 2 +- 4 files changed, 44 insertions(+), 26 deletions(-) diff --git a/src/components/FirmwareUpgradeModal.js b/src/components/FirmwareUpgradeModal.js index 91be5a5..accd173 100644 --- a/src/components/FirmwareUpgradeModal.js +++ b/src/components/FirmwareUpgradeModal.js @@ -6,7 +6,6 @@ import { CModalBody, CModalFooter, CSpinner, - CBadge, CCol, CRow, CInput, @@ -26,10 +25,12 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { const [waiting, setWaiting] = useState(false); const [chosenDate, setChosenDate] = useState(new Date().toString()); const [firmware, setFirmware] = useState(''); + const [doingNow, setDoingNow] = useState(false); const [validFirmware, setValidFirmware] = useState(true); const [validDate, setValidDate] = useState(true); const [responseBody, setResponseBody] = useState(''); const [checkingIfSure, setCheckingIfSure] = useState(false); + const [checkingIfNow, setCheckingIfNow] = useState(false); const selectedDeviceId = useSelector((state) => state.selectedDeviceId); const formValidation = () => { @@ -45,12 +46,6 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { } return valid; }; - - const setDateToNow = () => { - const now = new Date().toString(); - setChosenDate(now); - }; - const setDateToLate = () => { const date = convertDateToUtc(new Date()); if (date.getHours() >= 3) { @@ -72,6 +67,10 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { setCheckingIfSure(true); }; + const confirmingIfNow = () => { + setCheckingIfNow(true); + } + useEffect(() => { setHadSuccess(false); setHadFailure(false); @@ -81,6 +80,8 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { setValidFirmware(true); setResponseBody(''); setCheckingIfSure(false); + setDoingNow(false); + setCheckingIfNow(false); }, [show]); useEffect(() => { @@ -88,7 +89,8 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { setValidDate(true); }, [firmware, chosenDate]); - const postUpgrade = () => { + const postUpgrade = (isNow) => { + setDoingNow(isNow); setHadFailure(false); setHadSuccess(false); setWaiting(true); @@ -105,19 +107,22 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { const parameters = { serialNumber: selectedDeviceId, - when: utcDateString, + when: isNow ? '' : utcDateString, uri: firmware, }; axiosInstance .post(`/device/${selectedDeviceId}/upgrade`, parameters, { headers }) - .then((response) => { - setResponseBody(JSON.stringify(response.data, null, 4)); + .then(() => { + setResponseBody('Command submitted successfully'); setHadSuccess(true); }) .catch(() => { + setResponseBody('Error while submitting command'); setHadFailure(true); }) .finally(() => { + setCheckingIfNow(false); + setDoingNow(false); setCheckingIfSure(false); setWaiting(false); }); @@ -132,9 +137,25 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => {
Choose a time and a firmware version for this device
- setDateToNow()}> - Now - + formValidation() ? confirmingIfNow() : null} + disabled={waiting} + hidden={checkingIfNow} + block + > + Do Now! + + formValidation() ? postUpgrade(true) : null} + disabled={waiting} + hidden={!checkingIfNow} + block + > + {waiting && doingNow ? 'Loading...' : 'Confirm'} + setDateToLate()}> @@ -184,6 +205,7 @@ const FirmwareUpgradeModal = ({ show, toggleModal }) => { Cancel diff --git a/src/widgets/ActionModalWidget.js b/src/widgets/ActionModalWidget.js index 361d95f..d961bb8 100644 --- a/src/widgets/ActionModalWidget.js +++ b/src/widgets/ActionModalWidget.js @@ -62,6 +62,7 @@ const ActionModalWidget = ({ show, toggleModal, title, directions, action, extra setHadSuccess(false); setHadFailure(false); setWaiting(false); + setDoingNow(false); setChosenDate(new Date().toString()); setResponseBody(''); setValidDate(true); @@ -81,7 +82,7 @@ const ActionModalWidget = ({ show, toggleModal, title, directions, action, extra const parameters = { ...{ serialNumber: selectedDeviceId, - when: isNow ? 0 : utcDateString, + when: isNow ? '' : utcDateString, }, ...extraParameters, }; @@ -102,6 +103,7 @@ const ActionModalWidget = ({ show, toggleModal, title, directions, action, extra setHadFailure(true); }) .finally(() => { + setDoingNow(false); setCheckingIfSure(false); setWaiting(false); }); diff --git a/src/widgets/BlinkModalWidget.js b/src/widgets/BlinkModalWidget.js index a9d5323..0ba768e 100644 --- a/src/widgets/BlinkModalWidget.js +++ b/src/widgets/BlinkModalWidget.js @@ -76,7 +76,7 @@ const BlinkModalWidget = ({show, toggleModal}) => { const parameters = { serialNumber: selectedDeviceId, - when: isNow ? 0 : utcDateString, + when: isNow ? '' : utcDateString, pattern: chosenPattern, duration: 30 }; @@ -189,7 +189,7 @@ const BlinkModalWidget = ({show, toggleModal}) => { onClick={() => doAction(false)} > {waiting && !doingNow ? 'Loading...' : 'Yes'} {' '} - Cancel diff --git a/src/widgets/TraceModalWidget.js b/src/widgets/TraceModalWidget.js index efcc6e9..af13c52 100644 --- a/src/widgets/TraceModalWidget.js +++ b/src/widgets/TraceModalWidget.js @@ -71,7 +71,7 @@ const TraceModalWidget = ({ show, toggleModal }) => { const parameters = { serialNumber: selectedDeviceId, - when: utcDateString, + when: dateChosen <= now ? '' : utcDateString, network: 'lan' };