mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-28 06:28:43 +01:00
46 lines
1.3 KiB
JavaScript
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 }
|
|
}
|