CEC-4455: Add GMT conversion (#345)
adds a checkbox to show time/date in GMT+0 regardless of the users timezone.
This commit is contained in:
@@ -292,6 +292,47 @@ exports[`Render Render 1`] = `
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-md-3"
|
||||||
|
>
|
||||||
|
<label
|
||||||
|
class="MuiFormControlLabel-root"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
aria-disabled="false"
|
||||||
|
class="MuiButtonBase-root MuiIconButton-root PrivateSwitchBase-root-0 MuiCheckbox-root MuiCheckbox-colorSecondary MuiIconButton-colorSecondary"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="MuiIconButton-label"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
class="PrivateSwitchBase-input-0"
|
||||||
|
data-indeterminate="false"
|
||||||
|
type="checkbox"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
class="MuiSvgIcon-root"
|
||||||
|
focusable="false"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="MuiTouchRipple-root"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"
|
||||||
|
>
|
||||||
|
GMT
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import DateFnsUtils from '@date-io/date-fns';
|
import DateFnsUtils from '@date-io/date-fns';
|
||||||
import { Button, Checkbox, Chip, CircularProgress, FormControl, Grid, InputLabel, ListItemText, MenuItem, Select } from "@material-ui/core";
|
import { Button, Checkbox, Chip, CircularProgress, FormControl, FormControlLabel, Grid, InputLabel, ListItemText, MenuItem, Select } from "@material-ui/core";
|
||||||
import { KeyboardDatePicker, KeyboardTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
|
import { KeyboardDatePicker, KeyboardTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { logger } from "../../../services/monitoring";
|
import { logger } from "../../../services/monitoring";
|
||||||
@@ -17,6 +17,7 @@ const MainForm = ({ id }) => {
|
|||||||
const [selectedEndDate, setSelectedEndDate] = useState(new Date());
|
const [selectedEndDate, setSelectedEndDate] = useState(new Date());
|
||||||
const [selectedCanSignals, setSelectedCanSignals] = useState([]);
|
const [selectedCanSignals, setSelectedCanSignals] = useState([]);
|
||||||
const [selectAllCanSignals, setSelectAllCanSignals] = useState(false);
|
const [selectAllCanSignals, setSelectAllCanSignals] = useState(false);
|
||||||
|
const [gmtTimezone, setGmtTimezone] = useState(false);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
token: {
|
token: {
|
||||||
@@ -86,6 +87,12 @@ const MainForm = ({ id }) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const displayTimeAsGMT = (date) => {
|
||||||
|
return gmtTimezone
|
||||||
|
? date.toLocaleString("en-US", {timeZone: "Etc/GMT"})
|
||||||
|
: date;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classes.paper}>
|
<div className={classes.paper}>
|
||||||
@@ -102,7 +109,7 @@ const MainForm = ({ id }) => {
|
|||||||
margin="normal"
|
margin="normal"
|
||||||
id="date-picker-inline"
|
id="date-picker-inline"
|
||||||
label="Date From"
|
label="Date From"
|
||||||
value={selectedStartDate}
|
value={displayTimeAsGMT(selectedStartDate)}
|
||||||
onChange={(value) => handleDateChange(value, "start")}
|
onChange={(value) => handleDateChange(value, "start")}
|
||||||
KeyboardButtonProps={{
|
KeyboardButtonProps={{
|
||||||
'aria-label': 'change date',
|
'aria-label': 'change date',
|
||||||
@@ -116,7 +123,7 @@ const MainForm = ({ id }) => {
|
|||||||
variant="inline"
|
variant="inline"
|
||||||
id="time-picker"
|
id="time-picker"
|
||||||
label="Time From"
|
label="Time From"
|
||||||
value={selectedStartDate}
|
value={displayTimeAsGMT(selectedStartDate)}
|
||||||
onChange={handleTimeFromChange}
|
onChange={handleTimeFromChange}
|
||||||
KeyboardButtonProps={{
|
KeyboardButtonProps={{
|
||||||
'aria-label': 'change time',
|
'aria-label': 'change time',
|
||||||
@@ -132,7 +139,7 @@ const MainForm = ({ id }) => {
|
|||||||
margin="normal"
|
margin="normal"
|
||||||
id="date-picker-inline"
|
id="date-picker-inline"
|
||||||
label="Date To"
|
label="Date To"
|
||||||
value={selectedEndDate}
|
value={displayTimeAsGMT(selectedEndDate)}
|
||||||
onChange={(value) => handleDateChange(value, "end")}
|
onChange={(value) => handleDateChange(value, "end")}
|
||||||
KeyboardButtonProps={{
|
KeyboardButtonProps={{
|
||||||
'aria-label': 'change date',
|
'aria-label': 'change date',
|
||||||
@@ -146,13 +153,24 @@ const MainForm = ({ id }) => {
|
|||||||
id="time-picker"
|
id="time-picker"
|
||||||
variant="inline"
|
variant="inline"
|
||||||
label="Time To"
|
label="Time To"
|
||||||
value={selectedEndDate}
|
value={displayTimeAsGMT(selectedEndDate)}
|
||||||
onChange={handleTimeToChange}
|
onChange={handleTimeToChange}
|
||||||
KeyboardButtonProps={{
|
KeyboardButtonProps={{
|
||||||
'aria-label': 'change time',
|
'aria-label': 'change time',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<Grid item xs={6} md={3}>
|
||||||
|
<FormControlLabel
|
||||||
|
label="GMT"
|
||||||
|
control={
|
||||||
|
<Checkbox
|
||||||
|
checked={gmtTimezone}
|
||||||
|
onChange={() => setGmtTimezone((current) => !current)}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</MuiPickersUtilsProvider>
|
</MuiPickersUtilsProvider>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
Reference in New Issue
Block a user