diff --git a/src/components/Icon/IconDownload.global.vue b/src/components/Icon/IconDownload.global.vue new file mode 100644 index 0000000..0099b27 --- /dev/null +++ b/src/components/Icon/IconDownload.global.vue @@ -0,0 +1,15 @@ + diff --git a/src/modules/otus/components/DWCDownload.vue b/src/modules/otus/components/DWCDownload.vue new file mode 100644 index 0000000..86864f8 --- /dev/null +++ b/src/modules/otus/components/DWCDownload.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/modules/otus/services/TaxonWorks.js b/src/modules/otus/services/TaxonWorks.js index f0cb21e..601759b 100644 --- a/src/modules/otus/services/TaxonWorks.js +++ b/src/modules/otus/services/TaxonWorks.js @@ -64,4 +64,8 @@ export default class TaxonWorks { extend: ['depiction'] }) } + + static getDwC(otuId) { + return makeAPIRequest.get(`/otus/${otuId}/inventory/dwc`) + } } diff --git a/src/modules/otus/utils/files.js b/src/modules/otus/utils/files.js new file mode 100644 index 0000000..449b666 --- /dev/null +++ b/src/modules/otus/utils/files.js @@ -0,0 +1,29 @@ +function downloadTextFile(text, fileType, fileName) { + const blob = new Blob([text], { type: fileType }) + const a = document.createElement('a') + + a.download = fileName + a.href = URL.createObjectURL(blob) + a.dataset.downloadurl = [fileType, a.download, a.href].join(':') + a.style.display = 'none' + document.body.appendChild(a) + a.click() + document.body.removeChild(a) + setTimeout(() => { + URL.revokeObjectURL(a.href) + }, 1500) +} + +function blobToArrayBuffer(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + + reader.addEventListener('loadend', (_) => { + resolve(reader.result) + }) + reader.addEventListener('error', reject) + reader.readAsArrayBuffer(blob) + }) +} + +export { blobToArrayBuffer, downloadTextFile } diff --git a/src/modules/otus/utils/index.js b/src/modules/otus/utils/index.js index 1094c15..9fe8130 100644 --- a/src/modules/otus/utils/index.js +++ b/src/modules/otus/utils/index.js @@ -1,3 +1,4 @@ +export * from './files' export * from './isRankGroup' export * from './makeGeoJSONFeature' export * from './removeDuplicateShapes' diff --git a/src/modules/otus/views/Index.vue b/src/modules/otus/views/Index.vue index 8686f3e..34cb26f 100644 --- a/src/modules/otus/views/Index.vue +++ b/src/modules/otus/views/Index.vue @@ -24,7 +24,7 @@ /> -
+
+
+ +