diff --git a/src/components/Universal/TransmissionTree.js b/src/components/Universal/TransmissionTree.js index 7d73989d..ac5b40b0 100644 --- a/src/components/Universal/TransmissionTree.js +++ b/src/components/Universal/TransmissionTree.js @@ -20,7 +20,7 @@ const TransmissionTree = props => { const cleanData = props.initialData.map((node) => { if (!node) { emptyCounter++; - return {id: emptyCounter, deleted:true} + return {id: emptyCounter, deleted:true } } else { return node } @@ -137,7 +137,7 @@ const TransmissionTree = props => {
{node.deleted ? "Origin/Tempr has been deleted" - : "No Transmission made for this tempr / Tempr no longer associated"} + : "No Transmission made for this tempr"}
diff --git a/src/components/View/Message.js b/src/components/View/Message.js index 42cf8921..48a62e4b 100644 --- a/src/components/View/Message.js +++ b/src/components/View/Message.js @@ -73,35 +73,35 @@ const Message = props => { var originTemprs; if (originType === "Device") { originTemprs = await OopCore.getDeviceTemprs({ - "filter[device_id]": originId, + filter: { deviceId: originId }, + "page[size]": -1, }); } else { originTemprs = await OopCore.getScheduleTemprs({ - "filter[schedule_id]": originId, + filter: { scheduleId: originId }, + "page[size]": -1, }); } var children = originTemprs.data; + var transmissionsFound = []; const transmissionObject = arrayToObject( transmissionArray.data, "temprId", ); - if (children.length === 0) { - return null; - } - async function getChildren(child, depth) { if (!child.name) { try { var temprObject = await OopCore.getTempr(child.temprId); child = temprObject; } catch (err) { - return null; + return false; } } var childrenOfChild = await OopCore.getTemprs({ - "filter[tempr_id]": child.id, + filter: { temprId: child.id }, + "page[size]": -1, }); var allChildren = null; @@ -128,6 +128,7 @@ const Message = props => { transmissionId: transmissionObject[child.id].id, messageId: props.match.params.messageId, }; + transmissionsFound.push(transmissionObject[child.id].id); } else { node = { id: child.id, @@ -146,11 +147,48 @@ const Message = props => { return node; } - var temprHierarchy = await Promise.all( - children.map(child => getChildren(child, 1)), - ); + if (children.length === 0) { + return await Promise.all(transmissionArray.data.map((node) => { + return getNode(node); + })); + } else { + var temprHierarchy = await Promise.all( + children.map(child => getChildren(child, 1)), + ); + const extraTransmissions = await Promise.all(transmissionArray.data.map((node) => { + if (!transmissionsFound.includes(node.id)) { + return getNode(node); + } + })); + temprHierarchy.push(...extraTransmissions); + var filtered = temprHierarchy.filter(Boolean); + return filtered; + } - return temprHierarchy; + } + + async function getNode(node) { + var name = 'Unavailable'; + try { + const tempr = await OopCore.getTempr(node.temprId); + if (tempr) { + name = tempr.name; + } + } catch (err) { + console.log(err); + } + return { + id: node.id, + name: name, + depth: 1, + isExpanded: false, + transmissionMade: true, + messageUuid: node.transmissionUuid, + status: node.status, + transmittedAt: node.transmittedAt, + transmissionId: node.id, + messageId: node.messageId, + }; } const TransmissionsDisplay = props => { @@ -256,6 +294,26 @@ const Message = props => { + + +
+ + {message && message.state ? message.state : + "No data available"} + +
+
+
+ + +
+ + {message && message.transmissionCount ? message.transmissionCount : + "No data available"} + +
+
+
{ const [originType, setOriginType] = useQueryParam("originType", StringParam); const [ipAddress, setIpAddress] = useQueryParam("ipAddress", StringParam); const [createdAt, setCreatedAt] = useQueryParam("createdAt", ObjectParam); + const [state, setState] = useQueryParam("state", StringParam); const getData = (pagination) => { return Promise.all([ @@ -94,6 +95,12 @@ const Messages = props => { type: "text", hasFilter: true, }, + { + id: "state", + name: "State", + type: "text", + hasFilter: true, + }, { id: "transmissionCount", name: "Transmission Count", @@ -123,7 +130,7 @@ const Messages = props => { } return columnName; }} - filters={{ uuid, originId, originType, ipAddress, createdAt }} + filters={{ uuid, originId, originType, ipAddress, createdAt, state }} updateFilters={(key, value) => { switch (key) { case "uuid": @@ -136,6 +143,8 @@ const Messages = props => { return setIpAddress(value); case "createdAt": return setCreatedAt(value); + case "state": + return setState(value); default: return null; }