Files
modoboa/frontend/src/mixins/importExport.js
T

46 lines
1.3 KiB
JavaScript

import { useBusStore } from '@/stores'
export const importExportMixin = () => {
function exportContent(content, name, $gettext) {
if (!content && !content.length) {
const busStore = useBusStore()
busStore.displayNotification({
msg: $gettext('No data to export'),
type: 'warning',
})
return
}
const blob = new Blob([content], { type: 'text/csv' })
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = `modoboa-${name}.csv`
link.click()
URL.revokeObjectURL(link.href)
}
function importContent(api, data, importForm, $gettext) {
api
.importFromCSV(data)
.then((resp) => {
const busStore = useBusStore()
if (resp.data.status) {
busStore.displayNotification({ msg: resp.data.message })
importForm.value.close()
} else {
busStore.displayNotification({
msg: resp.data.message,
type: 'error',
})
}
})
.catch(() => {
const busStore = useBusStore()
busStore.displayNotification({
msg: $gettext('CSV seems to be badly formatted'),
type: 'error',
})
})
}
return { exportContent, importContent }
}