aboutsummaryrefslogtreecommitdiff
path: root/modern/src/common
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-07-18 18:44:15 -0700
committerAnton Tananaev <anton@traccar.org>2022-07-18 18:44:15 -0700
commit5c5648dea3a80b0135b579706f5e1ff1dedb47dd (patch)
treefb87e0b24e3b5e519ef55f685c274442a43b07ec /modern/src/common
parentef09d6ace123487692261c7b571f1dfe508b114a (diff)
downloadtrackermap-web-5c5648dea3a80b0135b579706f5e1ff1dedb47dd.tar.gz
trackermap-web-5c5648dea3a80b0135b579706f5e1ff1dedb47dd.tar.bz2
trackermap-web-5c5648dea3a80b0135b579706f5e1ff1dedb47dd.zip
Show media links
Diffstat (limited to 'modern/src/common')
-rw-r--r--modern/src/common/attributes/usePositionAttributes.js12
-rw-r--r--modern/src/common/components/PositionValue.js7
2 files changed, 19 insertions, 0 deletions
diff --git a/modern/src/common/attributes/usePositionAttributes.js b/modern/src/common/attributes/usePositionAttributes.js
index 1eb9d067..1919b862 100644
--- a/modern/src/common/attributes/usePositionAttributes.js
+++ b/modern/src/common/attributes/usePositionAttributes.js
@@ -340,4 +340,16 @@ export default (t) => useMemo(() => ({
name: t('attributeColor'),
type: 'string',
},
+ image: {
+ name: t('positionImage'),
+ type: 'string',
+ },
+ video: {
+ name: t('positionVideo'),
+ type: 'string',
+ },
+ audio: {
+ name: t('positionAudio'),
+ type: 'string',
+ },
}), [t]);
diff --git a/modern/src/common/components/PositionValue.js b/modern/src/common/components/PositionValue.js
index 7255c888..6dd1f50d 100644
--- a/modern/src/common/components/PositionValue.js
+++ b/modern/src/common/components/PositionValue.js
@@ -1,4 +1,5 @@
import React from 'react';
+import { useSelector } from 'react-redux';
import { Link } from '@mui/material';
import { Link as RouterLink } from 'react-router-dom';
import {
@@ -14,6 +15,8 @@ const PositionValue = ({ position, property, attribute }) => {
const admin = useAdministrator();
+ const device = useSelector((state) => state.devices.items[position.deviceId]);
+
const key = property || attribute;
const value = property ? position[property] : position.attributes[attribute];
@@ -59,6 +62,10 @@ const PositionValue = ({ position, property, attribute }) => {
};
switch (key) {
+ case 'image':
+ case 'video':
+ case 'audio':
+ return (<Link href={`/api/media/${device.uniqueId}/${value}`} target="_blank">{value}</Link>);
case 'totalDistance':
case 'hours':
return (