diff --git a/src/components/query/VOServiceResults.js b/src/components/query/VOServiceResults.js index dd530e739a9dacaade01de1a1a2f3171d600dcbb..d5496b8fb48b25232783a8dd297d08a5724de1c1 100644 --- a/src/components/query/VOServiceResults.js +++ b/src/components/query/VOServiceResults.js @@ -23,6 +23,7 @@ export default function VORegistryResults({ catalog }) { return <Alert variant="warning">No matching results found!</Alert>; const numPages = queryMap.get(catalog).results.pages; + let indice = []; return ( <div> @@ -38,10 +39,19 @@ export default function VORegistryResults({ catalog }) { <Table className="mt-3" responsive> <thead> <tr className="bg-light"> - {queryMap.get(catalog).vo_table_schema.fields.map((field) => { - return ( - <th>{field.name}</th> - ); + {queryMap.get(catalog).vo_table_schema.fields.map((field, index) => { + if ((field.name === "dataproduct_type") || (field.name === "dataproduct_subtype") || + (field.name === "calib_level") || (field.name === "obs_collection") || + (field.name === "obs_id") || + (field.name === "calib_level") || (field.name === "access_url") || + (field.name === "access_estsize") || (field.name === "target_name") || + (field.name === "s_ra") || (field.name === "s_dec") || + (field.name === "s_fov") || + (field.name === "instrument_name") || (field.name === "preview") + ) { + indice.push(index); + return (<th>{field.name}</th>); + } })} </tr> </thead> @@ -49,38 +59,46 @@ export default function VORegistryResults({ catalog }) { {queryMap.get(catalog).results.results.map((result) => { let queryResult = result.result.split(","); - console.log(queryResult); + return ( <> <tr key={queryResult[queryMap.get(catalog).vo_table_schema.fields.findIndex((item) => item.name === "access_url")]}> {queryResult.map((field, index) => { - if (queryMap.get(catalog).vo_table_schema.fields[index].name === "access_url") { - return (<td><a href={field} rel="noopener noreferrer" download>Download data</a></td>); - } - if (queryMap.get(catalog).vo_table_schema.fields[index].name === "obs_publisher_did") { - return (<td><a href={field} rel="noopener noreferrer">Obs Publisher DID</a></td>); - } - if (queryMap.get(catalog).vo_table_schema.fields[index].name === "preview") { - return (<td> - { - <Button - onClick={()=>{ - setPreview(field); - setURL(field); - }} - > - View Thumbnail - </Button> - } - </td> ); + if (indice.includes(index)) { + if (queryMap.get(catalog).vo_table_schema.fields[index].name === "access_url") { + return (<td><a href={field} rel="noopener noreferrer" download>Download data</a></td>); + } + if (queryMap.get(catalog).vo_table_schema.fields[index].name === "preview") { + return (<td> + { + <Button + onClick={()=>{ + setPreview(field); + setURL(field); + }} + > + View Thumbnail + </Button> + } + </td> ); + } + if ((queryMap.get(catalog).vo_table_schema.fields[index].name === "s_ra") || + (queryMap.get(catalog).vo_table_schema.fields[index].name === "s_dec") || + (queryMap.get(catalog).vo_table_schema.fields[index].name === "s_fov") + ) { + return (<td>{Number(field).toFixed(1)}</td>) + } + return (<td>{field}</td>) ; } - return (<td>{field}</td>) ; })} </tr> { preview === queryResult[queryMap.get(catalog).vo_table_schema.fields.findIndex((item) => item.name === "preview")] && <tr key={queryResult.preview}> - <td colSpan={queryResult.length} ><Preview /></td> + <td></td> + <td></td> + <td></td> + <td colSpan={queryResult.length-3} ><Preview /></td> </tr> } </>