From 60c5097d820f8885f9265ea7a33f3fdd82e258d3 Mon Sep 17 00:00:00 2001 From: konrad Date: Thu, 17 Dec 2020 13:44:22 +0000 Subject: [PATCH] Add trello migration (#336) Reload namespaces and lists after migrating Add trello logo Add trello migration Co-authored-by: kolaente Reviewed-on: https://kolaente.dev/vikunja/frontend/pulls/336 Co-Authored-By: konrad Co-Committed-By: konrad --- public/images/migration/trello.png | Bin 0 -> 4829 bytes src/components/migrator/migration.vue | 28 +++++++++++++++++++------- src/views/migrator/MigrateService.vue | 4 ++++ 3 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 public/images/migration/trello.png diff --git a/public/images/migration/trello.png b/public/images/migration/trello.png new file mode 100644 index 0000000000000000000000000000000000000000..02cfa114048a94290d2e60b67889a77a336ad5df GIT binary patch literal 4829 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 E1GtkiSO5S3 literal 0 HcmV?d00001 diff --git a/src/components/migrator/migration.vue b/src/components/migrator/migration.vue index ac3998114..84c36c5a3 100644 --- a/src/components/migrator/migration.vue +++ b/src/components/migrator/migration.vue @@ -64,7 +64,7 @@ export default { isMigrating: false, lastMigrationDate: null, message: '', - wunderlistCode: '', + migratorAuthCode: '', } }, props: { @@ -82,13 +82,25 @@ export default { this.getAuthUrl() this.message = '' - if (typeof this.$route.query.code !== 'undefined') { - this.wunderlistCode = this.$route.query.code + if (typeof this.$route.query.code !== 'undefined' || location.hash.startsWith('#token=')) { + if (location.hash.startsWith('#token=')) { + this.migratorAuthCode = location.hash.substring(7) + console.log(location.hash.substring(7)) + } else { + this.migratorAuthCode = this.$route.query.code + } this.migrationService.getStatus() .then(r => { if (r.time) { - this.lastMigrationDate = new Date(r.time) - return + if (typeof r.time === 'string' && r.time.startsWith('0001-')) { + this.lastMigrationDate = null + } else { + this.lastMigrationDate = new Date(r.time) + } + + if (this.lastMigrationDate) { + return + } } this.migrate() }) @@ -109,10 +121,12 @@ export default { }, migrate() { this.isMigrating = true - this.lastMigrationDate = 0 - this.migrationService.migrate({code: this.wunderlistCode}) + this.lastMigrationDate = null + this.message = '' + this.migrationService.migrate({code: this.migratorAuthCode}) .then(r => { this.message = r.message + this.$store.dispatch('namespaces/loadNamespaces') }) .catch(e => { this.error(e, this) diff --git a/src/views/migrator/MigrateService.vue b/src/views/migrator/MigrateService.vue index f09d8a214..e126485cc 100644 --- a/src/views/migrator/MigrateService.vue +++ b/src/views/migrator/MigrateService.vue @@ -33,6 +33,10 @@ export default { this.name = 'Todoist' this.identifier = 'todoist' break + case 'trello': + this.name = 'Trello' + this.identifier = 'trello' + break default: router.push({name: '404'}) }