diff --git a/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts index ec436ff31169ecf5e1b1df5f236a2cff09d8db27..5ca6f26651ad766580a85130228dfce81ecbb392 100644 --- a/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts +++ b/src/app/dataset-detail/components/dataset-detail/dataset-detail.component.ts @@ -105,15 +105,43 @@ export class DatasetDetailComponent implements OnInit, OnDestroy { return formatted; } + // Get the formats available to download get datasetFormatsList() { const links = this._datasetDetailService.datasetMetadata.link; - let list = links.map(l => l.formats); + + let list = links.map((link) => { + let filteredList = link.formats; + if (link.formats) { + filteredList = link.formats.filter((f) => { + let validFormat = true; + if (!f) { + validFormat = false; + } + // If nongeographical dataset, there is no shapefile format + // tslint:disable-next-line: ter-indent + // tslint:disable-next-line: brace-style + else if (this._datasetDetailService.datasetMetadata.type === 'nonGeographicDataset' + && f === 'ShapeFile') { + validFormat = false; + } else if (f === 'PDF' && link.name.includes('Licence')) { // Remove PDF because it's Licence + validFormat = false; + } + return validFormat; + }); + } + return filteredList; + }); + // Flat the arrays list = [].concat(...list); // Remove duplicates list = [...new Set(list)]; + list = list.filter((el) => { + return el !== undefined; + }); + let formatted: string; if (list.length > 4) { @@ -122,10 +150,6 @@ export class DatasetDetailComponent implements OnInit, OnDestroy { formatted = list.join(', '); } - if (links.length === 1 && links[0].name.includes('Licence')) { - formatted = null; - } - return formatted; }