64 lines
1.5 KiB
Vue
64 lines
1.5 KiB
Vue
<template>
|
|
<div ref="injectionHTMLElement"></div>
|
|
</template>
|
|
|
|
<script>
|
|
import MamufasImportView from 'dashboard/components/mamufas-import/mamufas-import-view';
|
|
|
|
export default {
|
|
name: 'MamufasImportView',
|
|
inject: ['backboneViews'],
|
|
mounted () {
|
|
this.mamufasView = this.initView();
|
|
},
|
|
beforeDestroy () {
|
|
this.mamufasView.clean();
|
|
},
|
|
methods: {
|
|
initView () {
|
|
const mamufasView = new MamufasImportView({
|
|
el: document.body,
|
|
userModel: this.$cartoModels.user
|
|
});
|
|
|
|
mamufasView.on('dialogOpened', () => {
|
|
this.$cartoModels.backgroundPolling.stopPollings();
|
|
});
|
|
|
|
mamufasView.on('dialogClosed', () => {
|
|
this.$cartoModels.backgroundPolling.startPollings();
|
|
});
|
|
|
|
mamufasView.on('fileDropped', files => {
|
|
const backgroundPollingView = this.backboneViews.backgroundPollingView.getBackgroundPollingView();
|
|
const filesToUpload = files.length ? Array.from(files) : [files];
|
|
|
|
filesToUpload.forEach(file => {
|
|
this.addVisPropertyToFile(file);
|
|
backgroundPollingView._onDroppedFile(file);
|
|
});
|
|
});
|
|
|
|
mamufasView.enable();
|
|
|
|
return mamufasView;
|
|
},
|
|
|
|
getView () {
|
|
return this.mamufasView;
|
|
},
|
|
|
|
addVisPropertyToFile (file) {
|
|
if (this.isCARTOFile(file.name)) {
|
|
file._createVis = true;
|
|
}
|
|
},
|
|
|
|
isCARTOFile (filename) {
|
|
return filename.indexOf('.carto') > -1 ||
|
|
filename.indexOf('.zip') > -1;
|
|
}
|
|
}
|
|
};
|
|
</script>
|