From a2b3cebdb3d9e6177df37d7290c5f514b03fa5e9 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sat, 1 Jul 2023 15:45:30 -0600 Subject: [PATCH] finish contact selection for gives --- src/components/GiftedDialog.vue | 20 ++++++++++------- src/libs/endorserServer.ts | 7 +++++- src/views/HomeView.vue | 17 ++++++++------- src/views/ProjectViewView.vue | 38 ++++++++++++++++++++++++++------- 4 files changed, 57 insertions(+), 25 deletions(-) diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue index c48ce3cc..c158cc36 100644 --- a/src/components/GiftedDialog.vue +++ b/src/components/GiftedDialog.vue @@ -2,13 +2,12 @@

- Received from {{ contact?.name || "nobody in particular" }} + {{ message }} {{ giver?.name || "somebody not specified" }}

-

{{ message }}

@@ -27,9 +26,10 @@
+

Sign & Send to publish to the world

 
@@ -71,7 +72,7 @@ @@ -268,13 +269,13 @@ export default class HomeView extends Vue { return unitCode === "HUR" ? (single ? "hour" : "hours") : unitCode; } - openDialog(contact) { - this.$refs.customDialog.open(contact); + openDialog(giver) { + this.$refs.customDialog.open(giver); } handleDialogResult(result) { if (result.action === "confirm") { return new Promise((resolve) => { - this.recordGive(result.contact, result.description, result.hours); + this.recordGive(result.contact?.did, result.description, result.hours); resolve(); }); } else { @@ -284,11 +285,11 @@ export default class HomeView extends Vue { /** * - * @param contact may be null + * @param giverDid may be null * @param description may be an empty string * @param hours may be 0 */ - recordGive(contact, description, hours) { + recordGive(giverDid, description, hours) { if (this.activeDid == null) { this.alertTitle = "Error"; this.alertMessage = @@ -308,7 +309,7 @@ export default class HomeView extends Vue { this.axios, this.apiServer, identity, - contact?.did, + giverDid, this.activeDid, description, hours diff --git a/src/views/ProjectViewView.vue b/src/views/ProjectViewView.vue index 93d87859..d80964f2 100644 --- a/src/views/ProjectViewView.vue +++ b/src/views/ProjectViewView.vue @@ -109,16 +109,35 @@ +
+

... or choose a contact who gave:

+ +
+ +  or  + +
+
+ @@ -171,6 +190,7 @@ import { Options, Vue } from "vue-class-component"; import GiftedDialog from "@/components/GiftedDialog.vue"; import { accountsDB, db } from "@/db"; +import { Contact } from "@/db/tables/contacts"; import { MASTER_SETTINGS_KEY } from "@/db/tables/settings"; import { createAndSubmitGive } from "@/libs/endorserServer"; import { accessToken } from "@/libs/crypto"; @@ -181,6 +201,7 @@ import { IIdentifier } from "@veramo/core"; }) export default class ProjectViewView extends Vue { activeDid = ""; + allContacts: Array = []; apiServer = ""; expanded = false; name = ""; @@ -253,6 +274,7 @@ export default class ProjectViewView extends Vue { const settings = await db.settings.get(MASTER_SETTINGS_KEY); this.activeDid = settings?.activeDid || ""; this.apiServer = settings?.apiServer || ""; + this.allContacts = await db.contacts.toArray(); await accountsDB.open(); const num_accounts = await accountsDB.accounts.count(); @@ -275,21 +297,21 @@ export default class ProjectViewView extends Vue { handleDialogResult(result) { if (result.action === "confirm") { return new Promise((resolve) => { - this.recordGive(result.contact, result.description, result.hours); + this.recordGive(result.contact?.did, result.description, result.hours); resolve(); }); } else { - // action was "cancel" so do nothing + // action was not "confirm" so do nothing } } /** * - * @param contact may be null + * @param giverDid may be null * @param description may be an empty string * @param hours may be 0 */ - async recordGive(contact, description, hours) { + async recordGive(giverDid, description, hours) { if (this.activeDid == null) { this.alertTitle = "Error"; this.alertMessage = @@ -306,7 +328,7 @@ export default class ProjectViewView extends Vue { this.axios, this.apiServer, identity, - contact?.did, + giverDid, this.activeDid, description, hours,