Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/components/Universal/TransmissionTree.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -137,7 +137,7 @@ const TransmissionTree = props => {
<div className="card-label">
<ListItemLabel description="Status">
{node.deleted ? "Origin/Tempr has been deleted"
: "No Transmission made for this tempr / Tempr no longer associated"}
: "No Transmission made for this tempr"}
</ListItemLabel>
</div>
</ListItem>
Expand Down
82 changes: 70 additions & 12 deletions src/components/View/Message.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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,
Expand All @@ -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 => {
Expand Down Expand Up @@ -256,6 +294,26 @@ const Message = props => {
</div>
</ListItem>
</FlexGridItem>
<FlexGridItem {...itemProps}>
<ListItem>
<div className="card-label">
<ListItemLabel description="State">
{message && message.state ? message.state :
"No data available"}
</ListItemLabel>
</div>
</ListItem>
</FlexGridItem>
<FlexGridItem {...itemProps}>
<ListItem>
<div className="card-label">
<ListItemLabel description="Transmission Count">
{message && message.transmissionCount ? message.transmissionCount :
"No data available"}
</ListItemLabel>
</div>
</ListItem>
</FlexGridItem>
</FlexGrid>
<FlexGrid
flexGridColumnCount={3}
Expand Down
11 changes: 10 additions & 1 deletion src/components/View/Messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const Messages = props => {
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([
Expand Down Expand Up @@ -94,6 +95,12 @@ const Messages = props => {
type: "text",
hasFilter: true,
},
{
id: "state",
name: "State",
type: "text",
hasFilter: true,
},
{
id: "transmissionCount",
name: "Transmission Count",
Expand Down Expand Up @@ -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":
Expand All @@ -136,6 +143,8 @@ const Messages = props => {
return setIpAddress(value);
case "createdAt":
return setCreatedAt(value);
case "state":
return setState(value);
default:
return null;
}
Expand Down