diff --git a/src/encoded/static/components/filegallery.js b/src/encoded/static/components/filegallery.js index 6167526e5a4..a9fc762eb8d 100644 --- a/src/encoded/static/components/filegallery.js +++ b/src/encoded/static/components/filegallery.js @@ -302,6 +302,18 @@ const filterDownloadableFilesByStatus = (context, files) => { return []; }; +const getElementReferencesFiles = (elementsReferences) => { + let elementsReferenceFiles = []; + if (elementsReferences) { + elementsReferenceFiles = elementsReferences.map((elementsReference) => elementsReference.files) + .reduce((acc, val) => acc.concat(val), []) + .map((elementReferenceFile) => { + elementReferenceFile.isElementReferenceFile = true; + return elementReferenceFile; + }); + } + return elementsReferenceFiles; +}; export class FileTable extends React.Component { static rowClasses() { @@ -453,7 +465,7 @@ export class FileTable extends React.Component { } return 'rawArray'; } - if (file.output_category === 'reference') { + if (file.output_category === 'reference' || file.isElementReferenceFile) { return 'ref'; } @@ -1470,14 +1482,16 @@ export const FileGallery = ({ }); React.useEffect(() => { + const elementsReferenceFiles = getElementReferencesFiles(context.elements_references); + if (files) { // Array of files provided, so set without a request to the server. - setData(files); + setData([...files, ...elementsReferenceFiles]); } else { // Request files from the server. const query = fileQuery || `limit=all&type=File&dataset=${context['@id']}`; requestSearch(query).then((requestedData) => { - setData(requestedData['@graph']); + setData([...requestedData['@graph'], ...elementsReferenceFiles]); }); } }, [fileQuery, files]); diff --git a/src/encoded/types/dataset.py b/src/encoded/types/dataset.py index 8c8b3bde388..624f043399e 100644 --- a/src/encoded/types/dataset.py +++ b/src/encoded/types/dataset.py @@ -1370,6 +1370,7 @@ class FunctionalCharacterizationSeries(Series): 'related_datasets.elements_references.examined_loci', 'elements_references', 'elements_references.examined_loci', + 'elements_references.files', ] @calculated_property(condition='related_datasets', schema={ diff --git a/src/encoded/types/functional_characterization_experiment.py b/src/encoded/types/functional_characterization_experiment.py index aeacb221c07..0c5d6754c65 100644 --- a/src/encoded/types/functional_characterization_experiment.py +++ b/src/encoded/types/functional_characterization_experiment.py @@ -54,6 +54,7 @@ class FunctionalCharacterizationExperiment( 'biosample_ontology', 'examined_loci', 'examined_loci.gene', + 'elements_references.files', 'elements_references.examined_loci', 'elements_references.examined_regions', 'files.platform',