summaryrefslogtreecommitdiff
path: root/app/src/pages
diff options
context:
space:
mode:
authorDaniel Weipert <code@drogueronin.de>2021-07-01 16:07:08 +0200
committerDaniel Weipert <code@drogueronin.de>2021-07-01 16:07:08 +0200
commit6563602fb39db8ae9a976784b62538cbcf3de108 (patch)
tree6cd93aec2513278d4e9ed6a14c5551ed2a70c634 /app/src/pages
parent9863e78cc9e80661f03b4332754f9f1bd026b5fd (diff)
Adds progress log and ui enhancements
Diffstat (limited to 'app/src/pages')
-rw-r--r--app/src/pages/Home.vue66
1 files changed, 47 insertions, 19 deletions
diff --git a/app/src/pages/Home.vue b/app/src/pages/Home.vue
index bfe92bf..8385a46 100644
--- a/app/src/pages/Home.vue
+++ b/app/src/pages/Home.vue
@@ -1,22 +1,38 @@
<template>
<div class="wrap">
<div class="panels">
- <Panel v-model="from" @connect="connectFrom" />
- <Panel v-model="to" @connect="connectTo" />
+ <div>
+ <h1>FROM</h1>
+ {{ from.error }}
+ <Panel v-model="from" @connect="connectFrom" />
+ <ul v-if="from.folders">
+ <Folders :folder="from.folders" />
+ </ul>
+ </div>
+
+ <div>
+ <h1>TO</h1>
+ {{ to.error }}
+ <Panel v-model="to" @connect="connectTo" />
+ <ul v-if="to.folders">
+ <Folders :folder="to.folders" />
+ </ul>
+ </div>
</div>
- <button @click="migrate">
+
+ <button class="button" @click="migrate">
Migrate!
</button>
- <h1>FROM</h1>
- <ul v-if="from.folders">
- <Folders :folder="from.folders" />
- </ul>
-
- <h1>TO</h1>
- <ul v-if="to.folders">
- <Folders :folder="to.folders" />
- </ul>
+ <div class="progress-screen">
+ <b>{{ progress }}</b>
+ <br>
+ <div class="progress-screen__log">
+ <div v-for="(msg, idx) in log" :key="idx">
+ {{ msg }}
+ </div>
+ </div>
+ </div>
</div>
</template>
@@ -31,7 +47,10 @@ export default {
},
data () {
- return {};
+ return {
+ progress: '',
+ log: [],
+ };
},
computed: {
@@ -61,6 +80,18 @@ export default {
this.$electron.ipcRenderer.on('imap:listTree:to:reply', (event, folders) => {
this.to.folders = folders;
});
+
+ this.$electron.ipcRenderer.on('imap:from:error', (event, error) => {
+ this.from.error = error;
+ });
+ this.$electron.ipcRenderer.on('imap:to:error', (event, error) => {
+ this.to.error = error;
+ });
+
+ this.$electron.ipcRenderer.on('imap:migrate:progress', (event, progress) => {
+ this.progress = progress;
+ this.log.push(progress);
+ });
},
methods: {
@@ -73,6 +104,9 @@ export default {
},
async migrate () {
+ this.progress = '';
+ this.log = [];
+
this.$electron.ipcRenderer.send('imap:migrate', {
from: JSON.parse(JSON.stringify(this.from)),
to: JSON.parse(JSON.stringify(this.to)),
@@ -83,12 +117,6 @@ export default {
</script>
<style lang="scss">
-body {
- margin: 0;
- font-size: 1rem;
- font-family: Helvetica, sans-serif;
-}
-
.panels {
display: flex;
justify-content: space-between;