diff --git a/packages/data-portal-explore/src/components/FileTable.tsx b/packages/data-portal-explore/src/components/FileTable.tsx index 09260f9a..573e36c1 100644 --- a/packages/data-portal-explore/src/components/FileTable.tsx +++ b/packages/data-portal-explore/src/components/FileTable.tsx @@ -93,10 +93,14 @@ function generateCdsManifestFile(files: Entity[]): string | undefined { 'parent_data_file_id', ]; const data = _(files) - .filter((f) => !!f.viewers?.cds) + .filter((f) => !!f.viewers?.cds || f.downloadSource === DownloadSourceCategory.synapse) .map((f) => [ - getDrsUri(f.viewers?.cds?.drs_uri, false, true), - f.viewers?.cds?.name, + f.viewers?.cds?.drs_uri + ? getDrsUri(f.viewers.cds.drs_uri, true) + : f.downloadSource === DownloadSourceCategory.synapse + ? `drs://repo-prod.prod.sagebase.org/${f.synapseId}` + : undefined, + f.viewers?.cds?.name ?? getFileBase(f.Filename), f.atlas_name, _.uniq(f.biospecimen.map((b) => b.BiospecimenID)).join(' '), f.assayName, @@ -313,8 +317,10 @@ const CDSInstructions: React.FunctionComponent<{ files: Entity[] }> = ({ (f) => f.downloadSource !== DownloadSourceCategory.dbgap ); - const manifestFile = generateCdsManifestFile(files); - const gen3manifestFile = generateGen3ManifestFile(files); + // Combine dbgap and open access files for manifest generation + const cdsEligibleFiles = dbgapFiles.concat(openAccessFiles); + const manifestFile = generateCdsManifestFile(cdsEligibleFiles); + const gen3manifestFile = generateGen3ManifestFile(cdsEligibleFiles); return (
@@ -520,6 +526,7 @@ const FileDownloadModal: React.FunctionComponent = ( (f.level === 'Level 1' || f.level == 'Level 2') && !f.viewers?.cds) ); + const cgcFiles = cdsFiles.concat(synapseFiles) const availabilityMessage = () => { const messages = []; @@ -538,27 +545,59 @@ const FileDownloadModal: React.FunctionComponent = ( }; return ( - + Download Selected Files - {/* Summary Section */} -

Your selection include files that are:

-
    - {availabilityMessage().map((message, index) => ( -
  • {message}
  • - ))} -
+ {/* User-centered summary table */} + + + + + + + + + + + {cdsFiles.length > 0 && ( + + + + + + + )} + {synapseFiles.length > 0 && ( + + + + + + + )} + {notDownloadableFiles.length > 0 && ( + + + + + + + )} + +
Access TypeNumber of filesDownload methodCloud compute options
CDS (Controlled access){cdsFiles.length}Gen3 client + dbGaP credentials + manifestSevenBridges CGC, Terra
Synapse{synapseFiles.length} Open in Synapse web UI or use Synapse python client✅ SevenBridges CGC, Terra
Coming Soon{notDownloadableFiles.length}Metadata available now. File access in progress.

- Follow the instructions below on how to access data from - each of these sources. Further details are avaliable in the{' '} - HTAN Manual. + Files can be downloaded or launched in cloud platforms depending on their access method. + Instructions below are grouped by source. More detail is available in the{' '} + + HTAN Manual + .

{/* CDS Section */} - {cdsFiles.length > 0 && } + {cgcFiles.length > 0 && } {/* Synapse Section */} {synapseFiles.length > 0 && ( diff --git a/packages/data-portal-explore/src/components/fileTable.module.scss b/packages/data-portal-explore/src/components/fileTable.module.scss index 18196155..0a7ed2fc 100644 --- a/packages/data-portal-explore/src/components/fileTable.module.scss +++ b/packages/data-portal-explore/src/components/fileTable.module.scss @@ -16,3 +16,7 @@ .filenameTooltipContent { word-break: break-word; } + +.wide-modal { + max-width: 75% !important; +} \ No newline at end of file