66 lines
2.2 KiB
Vue
66 lines
2.2 KiB
Vue
<template>
|
|
<Modal class="bd-installModal" :headertext="modal.title" :closing="modal.closing" @close="modal.close" :noheader="true" :class="{'bd-err': err, 'bd-installModalFail': err}">
|
|
<template v-if="err">
|
|
<div slot="body" class="bd-installModalBody">
|
|
<h3>Something went wrong :(</h3>
|
|
<MiError />
|
|
</div>
|
|
<div slot="footer" class="bd-installModalFooter bd-installModalErrMsg">
|
|
{{err.message || err}}
|
|
<span>Ctrl+Shift+I</span>
|
|
</div>
|
|
</template>
|
|
<div v-else-if="loadingInfo" class="bd-spinnerContainer" slot="body">
|
|
<span>Loading Remote Package</span>
|
|
<div class="bd-spinner7"></div>
|
|
</div>
|
|
</Modal>
|
|
</template>
|
|
|
|
<script>
|
|
// Imports
|
|
import { Modal, MiExtension, MiSuccessCircle, MiError } from '../../common';
|
|
import { PluginManager, ThemeManager, PackageInstaller, Settings } from 'modules';
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
loadingInfo: true,
|
|
upToDate: true,
|
|
allowUnsafe: Settings.getSetting('security', 'default', 'unsafe-content').value,
|
|
installed: false,
|
|
err: null,
|
|
closeHandler: null,
|
|
closed: false
|
|
}
|
|
},
|
|
props: ['modal'],
|
|
components: {
|
|
Modal, MiExtension, MiSuccessCircle, MiError
|
|
},
|
|
methods: {
|
|
async loadRemote() {
|
|
try {
|
|
const info = await PackageInstaller.downloadRemotePackage(this.modal.remoteLocation);
|
|
if (this.closed) {
|
|
PackageInstaller.clearTemp(info);
|
|
return;
|
|
}
|
|
this.modal.confirm(info.outputPath);
|
|
this.modal.close();
|
|
} catch (err) {
|
|
this.err = err;
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.modal.on('close', this.closeHandler = force => {
|
|
this.closed = true;
|
|
});
|
|
},
|
|
mounted() {
|
|
this.loadRemote();
|
|
}
|
|
}
|
|
</script>
|