diff --git a/packages/nc-gui/components/base/shareBase.vue b/packages/nc-gui/components/base/shareBase.vue index e4747b8e76..83cb3444de 100644 --- a/packages/nc-gui/components/base/shareBase.vue +++ b/packages/nc-gui/components/base/shareBase.vue @@ -53,6 +53,9 @@ mdi-open-in-new + + mdi-xml + @@ -120,6 +123,16 @@ export default { }, navigateToSharedBase() { window.open(this.url, '_blank') + }, + generateEmbeddableIframe() { + copyTextToClipboard(``) + this.$toast.success('Copied embeddable html code!').goAway(3000) } } diff --git a/packages/nc-gui/components/import/CSVTemplateAdapter.js b/packages/nc-gui/components/import/CSVTemplateAdapter.js new file mode 100644 index 0000000000..a721f6261d --- /dev/null +++ b/packages/nc-gui/components/import/CSVTemplateAdapter.js @@ -0,0 +1,28 @@ +import Papaparse from 'papaparse' +import TemplateGenerator from '~/components/import/TemplateGenerator' + +export default class CSVTemplateAdapter extends TemplateGenerator { + constructor(name, data) { + super() + this.name = name + this.csv = Papaparse.parse(data, { header: true }) + this.project = { + title: this.name, + tables: [] + } + this.data = {} + } + + parseData() { + this.columns = this.csv.meta.fields + this.data = this.csv.data + } + + getColumns() { + return this.columns + } + + getData() { + return this.data + } +} diff --git a/packages/nc-gui/components/import/TemplateGenerator.js b/packages/nc-gui/components/import/TemplateGenerator.js index 8561541020..1b844134b5 100644 --- a/packages/nc-gui/components/import/TemplateGenerator.js +++ b/packages/nc-gui/components/import/TemplateGenerator.js @@ -3,6 +3,18 @@ export default class TemplateGenerator { throw new Error('\'parse\' method is not implemented') } + parseData() { + throw new Error('\'parseData\' method is not implemented') + } + + parseTemplate() { + throw new Error('\'parseTemplate\' method is not implemented') + } + + getColumns() { + throw new Error('\'getColumns\' method is not implemented') + } + getTemplate() { throw new Error('\'getTemplate\' method is not implemented') } diff --git a/packages/nc-gui/components/import/dropOrSelectFileModal.vue b/packages/nc-gui/components/import/dropOrSelectFileModal.vue new file mode 100644 index 0000000000..a54c73086e --- /dev/null +++ b/packages/nc-gui/components/import/dropOrSelectFileModal.vue @@ -0,0 +1,109 @@ + + + + + + + mdi-file-plus-outline + + + Select {{ text }} file to Upload + + + or drag and drop {{ text }} file + + + + + + + + + + + diff --git a/packages/nc-gui/components/import/excelImport.vue b/packages/nc-gui/components/import/excelImport.vue index f83d5d3a03..2229564fbb 100644 --- a/packages/nc-gui/components/import/excelImport.vue +++ b/packages/nc-gui/components/import/excelImport.vue @@ -1,10 +1,10 @@ - - + + - mdi-upload + mdi-file-plus-outline + + Select Files to Upload + + + or drag and drop files + @@ -175,6 +181,10 @@ export default { } else if (ev.dataTransfer.files.length) { file = ev.dataTransfer.files[0] } + + if (file.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' && file.type !== 'application/vnd.ms-excel') { + return this.$toast.error('Dropped file is not an accepted file type. The accepted file types are .xlsx,.xls!').goAway(3000) + } if (file) { this._file(file) } diff --git a/packages/nc-gui/components/loader.vue b/packages/nc-gui/components/loader.vue new file mode 100644 index 0000000000..94435651b3 --- /dev/null +++ b/packages/nc-gui/components/loader.vue @@ -0,0 +1,40 @@ + + + + + {{ progress }}% + + + + {{ message }} + + + + + + + diff --git a/packages/nc-gui/components/project/spreadsheet/components/columnMappingModal.vue b/packages/nc-gui/components/project/spreadsheet/components/columnMappingModal.vue new file mode 100644 index 0000000000..ac66df2a81 --- /dev/null +++ b/packages/nc-gui/components/project/spreadsheet/components/columnMappingModal.vue @@ -0,0 +1,118 @@ + + + + + + Table : {{ meta._tn }} + + + + + mdi-database-import-outline + Import + + + + + + + + + + Source column + + + Destination column + + + + + + + + + + {{ r.sourceCn }} + + + + + + {{ getIcon(item.uidt) }} + + {{ item._cn }} + + + + {{ getIcon(item.uidt) }} + + {{ item._cn }} + + + + + + + + + + + + + + diff --git a/packages/nc-gui/components/project/spreadsheet/components/csvExport.vue b/packages/nc-gui/components/project/spreadsheet/components/csvExportImport.vue similarity index 58% rename from packages/nc-gui/components/project/spreadsheet/components/csvExport.vue rename to packages/nc-gui/components/project/spreadsheet/components/csvExportImport.vue index 16507a3eb3..0d5317852c 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/csvExport.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/csvExportImport.vue @@ -1,66 +1,79 @@ - - - - - mdi-flash-outline - - Actions - - - mdi-menu-down - - - - - - - - - mdi-download-outline + + + + + + mdi-flash-outline - - Download as CSV - - - - - - - mdi-upload-outline + Actions + + + mdi-menu-down - - Upload CSV - - - - - + + + + + + + + mdi-download-outline + + + Download as CSV + + + + + + + mdi-upload-outline + + + Upload CSV + + + + + + + +
+ Select {{ text }} file to Upload +
+ or drag and drop {{ text }} file +
+ Select Files to Upload +
+ or drag and drop files +