diff --git a/frontend/src/components/metadata/DisplayListenerMetadata.tsx b/frontend/src/components/metadata/DisplayListenerMetadata.tsx index 93fea5a24..0ad1db1fa 100644 --- a/frontend/src/components/metadata/DisplayListenerMetadata.tsx +++ b/frontend/src/components/metadata/DisplayListenerMetadata.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from "react"; -import { Grid } from "@mui/material"; +import { Box, Grid } from "@mui/material"; import { useDispatch, useSelector } from "react-redux"; import { RootState } from "../../types/data"; import { @@ -104,29 +104,47 @@ export const DisplayListenerMetadata = (props: MetadataType) => { metadataList = publicFileMetadataList; else if (resourceType === "dataset" && publicView) metadataList = publicDatasetMetadataList; - return ( - - {metadataList.map((metadata, idx) => { - if (metadata.agent.listener !== null) { - return ( - - - - - - - - ); - } - })} - - ); + let hasAgentMetadata = false; + metadataList.map((metadata, idx) => { + if (metadata.agent.listener !== null) { + hasAgentMetadata = true; + } + }); + if (hasAgentMetadata) { + return ( + + {metadataList.map((metadata, idx) => { + if (metadata.agent.listener !== null) { + return ( + + + + + + + + ); + } + })} + + ); + } else { + return ( + +

+ Currently there is no machine metadata. This means either no + listeners are enabled for this resource, or that this resource + has not been submitted to any listeners. +

+
+ ); + } })()} ); diff --git a/frontend/src/components/metadata/DisplayMetadata.tsx b/frontend/src/components/metadata/DisplayMetadata.tsx index 501345572..ad27b50f8 100644 --- a/frontend/src/components/metadata/DisplayMetadata.tsx +++ b/frontend/src/components/metadata/DisplayMetadata.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from "react"; -import { Box, Grid, Typography } from "@mui/material"; +import { Box, Button, Grid, Typography } from "@mui/material"; import { metadataConfig } from "../../metadata.config"; import { useDispatch, useSelector } from "react-redux"; import { RootState } from "../../types/data"; @@ -120,69 +120,89 @@ export const DisplayMetadata = (props: MetadataType) => { metadataList = publicDatasetMetadataList; if (publicView) currentMetadataDefList = publicMetadataDefinitionList; else currentMetadataDefList = metadataDefinitionList; - - return currentMetadataDefList.map((metadataDef) => { - return metadataList.map((metadata, idx) => { - if (metadataDef.name === metadata.definition) { - return ( - - {metadata.definition} - - {metadata.description} - - { - // construct metadata using its definition - metadataDef.fields.map((field, idxx) => { - return React.cloneElement( - metadataConfig[field.widgetType ?? "NA"] ?? - metadataConfig["NA"], - { - widgetName: metadataDef.name, - fieldName: field.name, - options: field.config.options ?? [], - updateMetadata: updateMetadata, - initialReadOnly: true, - resourceId: resourceId, - content: metadata.content ?? null, - metadataId: metadata.id ?? null, - isRequired: field.required, - key: idxx, - datasetRole: datasetRole, - frozen: about.frozen, - frozenVersionNum: about.frozen_version_num, - } - ); - }) - } - - - - - { + if (metadata.agent.listener === null) { + hasUserMetadata = true; + } + }); + if (hasUserMetadata) { + return currentMetadataDefList.map((metadataDef) => { + return metadataList.map((metadata, idx) => { + if (metadataDef.name === metadata.definition) { + return ( + + {metadata.definition} + + {metadata.description} + + { + // construct metadata using its definition + metadataDef.fields.map((field, idxx) => { + return React.cloneElement( + metadataConfig[field.widgetType ?? "NA"] ?? + metadataConfig["NA"], + { + widgetName: metadataDef.name, + fieldName: field.name, + options: field.config.options ?? [], + updateMetadata: updateMetadata, + initialReadOnly: true, + resourceId: resourceId, + content: metadata.content ?? null, + metadataId: metadata.id ?? null, + isRequired: field.required, + key: idxx, + datasetRole: datasetRole, + frozen: about.frozen, + frozenVersionNum: about.frozen_version_num, + } + ); + }) + } + + + + - - - + + + + + - - - ); - } + + ); + } + }); }); - }); + } else { + return ( + +

+ Currently there is no user metadata provided for this resource. + To start adding some click on the Add metadata button. User + metadata is metadata about the dataset added by any user who has + write permission to the dataset. The list of available field is + defined by the administrators of the system. If you would like + to add a new entry please contact one of the administrators. +

+
+ ); + } })()} );