|
|
@ -122,29 +122,34 @@ |
|
|
|
<router-link |
|
|
|
:to="{ name: 'new-edit-account' }" |
|
|
|
class="block text-center text-lg font-bold uppercase bg-blue-600 text-white px-2 py-3 rounded-md mb-8" |
|
|
|
>Edit Identity</router-link |
|
|
|
> |
|
|
|
Edit Identity |
|
|
|
</router-link> |
|
|
|
|
|
|
|
<h3 class="text-sm uppercase font-semibold mb-3">Contact Actions</h3> |
|
|
|
|
|
|
|
<a |
|
|
|
href="contact-scan.html" |
|
|
|
class="block w-full text-center text-md uppercase bg-slate-500 text-white px-1.5 py-2 rounded-md mb-6" |
|
|
|
>Scan New Contact</a |
|
|
|
> |
|
|
|
Scan New Contact |
|
|
|
</a> |
|
|
|
|
|
|
|
<h3 class="text-sm uppercase font-semibold mb-3">Identity Actions</h3> |
|
|
|
<h3 class="text-sm uppercase font-semibold mb-3">Data</h3> |
|
|
|
|
|
|
|
<a |
|
|
|
href="" |
|
|
|
class="block w-full text-center text-md uppercase bg-slate-500 text-white px-1.5 py-2 rounded-md mb-2" |
|
|
|
>Backup Seed</a |
|
|
|
> |
|
|
|
Backup Identifier Seed |
|
|
|
</a> |
|
|
|
<a |
|
|
|
href="" |
|
|
|
class="block w-full text-center text-md uppercase bg-slate-500 text-white px-1.5 py-2 rounded-md mb-6" |
|
|
|
>Backup Other Data</a |
|
|
|
@click="exportDatabase()" |
|
|
|
> |
|
|
|
Download Settings & Contacts (excluding Identifier Data) |
|
|
|
</a> |
|
|
|
<a ref="downloadLink" /> |
|
|
|
|
|
|
|
<!-- QR code popup --> |
|
|
|
<dialog id="dlgQR" class="backdrop:bg-black/75 rounded-md"> |
|
|
@ -198,6 +203,7 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script lang="ts"> |
|
|
|
import "dexie-export-import"; |
|
|
|
import { Options, Vue } from "vue-class-component"; |
|
|
|
import { useClipboard } from "@vueuse/core"; |
|
|
|
import { db, accountsDB } from "@/db"; |
|
|
@ -299,6 +305,30 @@ export default class AccountViewView extends Vue { |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
public async exportDatabase() { |
|
|
|
try { |
|
|
|
const blob = await db.export({ prettyJson: true }); |
|
|
|
const url = URL.createObjectURL(blob); |
|
|
|
|
|
|
|
console.log("typeof", typeof this.$refs.downloadLink); |
|
|
|
const downloadAnchor = this.$refs.downloadLink as HTMLAnchorElement; |
|
|
|
downloadAnchor.href = url; |
|
|
|
downloadAnchor.download = db.name + "-backup.json"; |
|
|
|
downloadAnchor.click(); |
|
|
|
|
|
|
|
URL.revokeObjectURL(url); |
|
|
|
|
|
|
|
this.alertTitle = "Download Started"; |
|
|
|
this.alertMessage = "See your downloads directory for the backup."; |
|
|
|
this.isAlertVisible = true; |
|
|
|
} catch (error) { |
|
|
|
this.alertTitle = "Export Error"; |
|
|
|
this.alertMessage = "See console logs for more info."; |
|
|
|
this.isAlertVisible = true; |
|
|
|
console.error("Export Error:", error); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
alertMessage = ""; |
|
|
|
alertTitle = ""; |
|
|
|
isAlertVisible = false; |
|
|
|