aboutsummaryrefslogtreecommitdiff
path: root/modern/src/reports/RouteReportPage.js
diff options
context:
space:
mode:
Diffstat (limited to 'modern/src/reports/RouteReportPage.js')
-rw-r--r--modern/src/reports/RouteReportPage.js16
1 files changed, 12 insertions, 4 deletions
diff --git a/modern/src/reports/RouteReportPage.js b/modern/src/reports/RouteReportPage.js
index fb05f1b1..d60b241c 100644
--- a/modern/src/reports/RouteReportPage.js
+++ b/modern/src/reports/RouteReportPage.js
@@ -1,4 +1,5 @@
import React, { useState } from 'react';
+import { useSelector } from 'react-redux';
import {
IconButton, Table, TableBody, TableCell, TableHead, TableRow,
} from '@mui/material';
@@ -26,13 +27,16 @@ const RouteReportPage = () => {
const positionAttributes = usePositionAttributes(t);
+ const devices = useSelector((state) => state.devices.items);
+
const [columns, setColumns] = usePersistedState('routeColumns', ['fixTime', 'latitude', 'longitude', 'speed', 'address']);
const [items, setItems] = useState([]);
const [loading, setLoading] = useState(false);
const [selectedItem, setSelectedItem] = useState(null);
- const handleSubmit = useCatch(async ({ deviceId, from, to, type }) => {
- const query = new URLSearchParams({ deviceId, from, to });
+ const handleSubmit = useCatch(async ({ deviceIds, from, to, type }) => {
+ const query = new URLSearchParams({ from, to });
+ deviceIds.forEach((deviceId) => query.append('deviceId', deviceId));
if (type === 'export') {
window.location.assign(`/api/reports/route/xlsx?${query.toString()}`);
} else if (type === 'mail') {
@@ -63,7 +67,9 @@ const RouteReportPage = () => {
{selectedItem && (
<div className={classes.containerMap}>
<MapView>
- <MapRoutePath positions={items} />
+ {[...new Set(items.map((it) => it.deviceId))].map((deviceId) => (
+ <MapRoutePath key={deviceId} positions={items.filter((position) => position.deviceId === deviceId)} />
+ ))}
<MapPositions positions={[selectedItem]} />
</MapView>
<MapCamera positions={items} />
@@ -71,7 +77,7 @@ const RouteReportPage = () => {
)}
<div className={classes.containerMain}>
<div className={classes.header}>
- <ReportFilter handleSubmit={handleSubmit}>
+ <ReportFilter handleSubmit={handleSubmit} multiDevice>
<ColumnSelect
columns={columns}
setColumns={setColumns}
@@ -83,6 +89,7 @@ const RouteReportPage = () => {
<TableHead>
<TableRow>
<TableCell className={classes.columnAction} />
+ <TableCell>{t('sharedDevice')}</TableCell>
{columns.map((key) => (<TableCell key={key}>{positionAttributes[key].name}</TableCell>))}
</TableRow>
</TableHead>
@@ -100,6 +107,7 @@ const RouteReportPage = () => {
</IconButton>
)}
</TableCell>
+ <TableCell>{devices[item.deviceId].name}</TableCell>
{columns.map((key) => (
<TableCell key={key}>
<PositionValue