From f36ecfd8db1c744f1729cf151b591bfc48c0c494 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Fri, 17 Nov 2023 13:54:32 -0700 Subject: [PATCH 01/31] misc look-and-feel tweaks --- src/views/AccountViewView.vue | 4 ++-- src/views/ContactAmountsView.vue | 14 +++++++++----- src/views/ContactsView.vue | 2 +- src/views/TestView.vue | 6 +++--- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue index f222fc3..a04dae8 100644 --- a/src/views/AccountViewView.vue +++ b/src/views/AccountViewView.vue @@ -655,11 +655,11 @@ export default class AccountViewView extends Vue { this.$notify( { group: "alert", - type: "toast", + type: "success", title: "Download Started", text: "See your downloads directory for the backup.", }, - 5000, + -1, ); } diff --git a/src/views/ContactAmountsView.vue b/src/views/ContactAmountsView.vue index 385a285..34aa8f3 100644 --- a/src/views/ContactAmountsView.vue +++ b/src/views/ContactAmountsView.vue @@ -2,8 +2,11 @@
-
-

+
+

+ +

+ Given with {{ contact?.name }} +

-

- Given with {{ contact?.name }} -

(Only 50 most recent) diff --git a/src/views/ContactsView.vue b/src/views/ContactsView.vue index fc3d33f..39ec057 100644 --- a/src/views/ContactsView.vue +++ b/src/views/ContactsView.vue @@ -218,7 +218,7 @@
-

This identity has no contacts.

+

There are no contacts.

diff --git a/src/views/TestView.vue b/src/views/TestView.vue index 10a4973..d6bc860 100644 --- a/src/views/TestView.vue +++ b/src/views/TestView.vue @@ -16,14 +16,14 @@ { group: 'alert', type: 'toast', - text: 'I\'m a toast. Don\'t mind me.', + text: 'I\'m a toast. Without a timeout, I\'m stuck.', }, 5000, ) " - class="font-bold uppercase bg-slate-400 text-white px-3 py-2 rounded-md mr-2" + class="font-bold uppercase bg-slate-900 text-white px-3 py-2 rounded-md mr-2" > - Toast (self-dismiss) + Toast
+
+
+ +
+
+
@@ -214,6 +235,7 @@ import { IIdentifier } from "@veramo/core"; import { Component, Vue } from "vue-facing-decorator"; import GiftedDialog from "@/components/GiftedDialog.vue"; +import OfferDialog from "@/components/OfferDialog.vue"; import { accountsDB, db } from "@/db/index"; import { Contact } from "@/db/tables/contacts"; import { MASTER_SETTINGS_KEY, Settings } from "@/db/tables/settings"; @@ -236,7 +258,7 @@ interface Notification { } @Component({ - components: { GiftedDialog, QuickNav, EntityIcon }, + components: { EntityIcon, GiftedDialog, OfferDialog, QuickNav }, }) export default class ProjectViewView extends Vue { $notify!: (notification: Notification, timeout?: number) => void; @@ -533,8 +555,12 @@ export default class ProjectViewView extends Vue { ); } - openDialog(contact: GiverInputInfo) { - (this.$refs.customDialog as GiftedDialog).open(contact); + openGiftDialog(contact: GiverInputInfo) { + (this.$refs.customGiveDialog as GiftedDialog).open(contact); + } + + openOfferDialog() { + (this.$refs.customOfferDialog as OfferDialog).open(); } } From 607666a2f997e4a736ab6e913920e00394fd809d Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 19 Nov 2023 19:44:11 -0700 Subject: [PATCH 12/31] add display of offers on project page --- src/libs/endorserServer.ts | 16 ++++++-- src/views/ProjectViewView.vue | 69 +++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/libs/endorserServer.ts b/src/libs/endorserServer.ts index e48aa1a..8db51eb 100644 --- a/src/libs/endorserServer.ts +++ b/src/libs/endorserServer.ts @@ -59,12 +59,22 @@ export interface GiveServerRecord { unit: string; } +export interface OfferServerRecord { + amount: number; + amountGiven: number; + offeredByDid: string; + recipientDid: string; + requirementsMet: boolean; + unit: string; + validThrough: string; +} + export interface GiveVerifiableCredential { "@context"?: string; // optional when embedded, eg. in an Agree "@type": "GiveAction"; agent?: { identifier: string }; description?: string; - fulfills?: { "@type": string; identifier: string }; + fulfills?: { "@type": string; identifier?: string; lastClaimId?: string }; identifier?: string; object?: { amountOfThisGood: number; unitCode: string }; recipient?: { identifier: string }; @@ -77,7 +87,7 @@ export interface OfferVerifiableCredential { includesObject?: { amountOfThisGood: number; unitCode: string }; itemOffered?: { description?: string; - isPartOf?: { handleId?: string; lastClaimId?: string; "@type"?: string }; + isPartOf?: { identifier?: string; lastClaimId?: string; "@type"?: string }; }; offeredBy?: { identifier: string }; validThrough?: string; @@ -242,7 +252,7 @@ export async function createAndSubmitOffer( vcClaim.itemOffered = vcClaim.itemOffered || {}; vcClaim.itemOffered.isPartOf = { "@type": "PlanAction", - handleId: fulfillsProjectHandleId, + identifier: fulfillsProjectHandleId, }; } return createAndSubmitClaim( diff --git a/src/views/ProjectViewView.vue b/src/views/ProjectViewView.vue index b270c3a..3a2f4d5 100644 --- a/src/views/ProjectViewView.vue +++ b/src/views/ProjectViewView.vue @@ -146,13 +146,38 @@
-

@@ -244,6 +269,7 @@ import { didInfo, GiverInputInfo, GiveServerRecord, + OfferServerRecord, PlanServerRecord, } from "@/libs/endorserServer"; import QuickNav from "@/components/QuickNav.vue"; @@ -272,10 +298,11 @@ export default class ProjectViewView extends Vue { fulfilledByThis: PlanServerRecord | null = null; fulfillersToThis: Array = []; givesToThis: Array = []; + issuer = ""; latitude = 0; longitude = 0; name = ""; - issuer = ""; + offersToThis: Array = []; projectId = localStorage.getItem("projectId") || ""; // handle ID timeSince = ""; truncatedDesc = ""; @@ -455,6 +482,42 @@ export default class ProjectViewView extends Vue { ); } + const offersToUrl = + this.apiServer + + "/api/v2/report/offersToPlans?planIds=" + + encodeURIComponent(JSON.stringify([projectId])); + try { + const resp = await this.axios.get(offersToUrl, { headers }); + if (resp.status === 200 && resp.data.data) { + this.offersToThis = resp.data.data; + } else { + this.$notify( + { + group: "alert", + type: "danger", + title: "Error", + text: "Failed to retrieve offers to this project.", + }, + -1, + ); + } + } catch (error: unknown) { + const serverError = error as AxiosError; + this.$notify( + { + group: "alert", + type: "danger", + title: "Error", + text: "Something went wrong retrieving offers to this project.", + }, + -1, + ); + console.error( + "Error retrieving offers to this project:", + serverError.message, + ); + } + const fulfilledByUrl = this.apiServer + "/api/v2/report/planFulfilledByPlan?planHandleId=" + From 7e819ea4dea48f27f9f3a907fefe8433094b2f57 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Mon, 20 Nov 2023 19:23:22 -0700 Subject: [PATCH 13/31] fix location checkbox so that we can uncheck it --- src/views/NewEditProjectView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/NewEditProjectView.vue b/src/views/NewEditProjectView.vue index 6c95386..e02427a 100644 --- a/src/views/NewEditProjectView.vue +++ b/src/views/NewEditProjectView.vue @@ -45,7 +45,7 @@ type="checkbox" class="mr-2" v-model="includeLocation" - @change="includeLocation = true" + @click="includeLocation = !includeLocation" />

From 7311d36726f3667ec4c68f241f91d404273ad4db Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Mon, 20 Nov 2023 19:28:36 -0700 Subject: [PATCH 14/31] bump to v 0.1.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c96b1bf..02e3e7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kickstart-for-time-pwa", - "version": "0.1.3", + "version": "0.1.4", "private": true, "scripts": { "serve": "vue-cli-service serve", From 8a33ccfdcfd1dc3b633a3f31cc2f21554e0a9516 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Mon, 20 Nov 2023 20:41:26 -0700 Subject: [PATCH 15/31] add checkbox for given-to-user since sometimes it's to someone else --- sample.txt | 177 ------------------------------- src/components/GiftedDialog.vue | 33 ++++-- src/views/ContactGiftingView.vue | 6 +- src/views/HomeView.vue | 6 +- 4 files changed, 35 insertions(+), 187 deletions(-) delete mode 100644 sample.txt diff --git a/sample.txt b/sample.txt deleted file mode 100644 index efe20be..0000000 --- a/sample.txt +++ /dev/null @@ -1,177 +0,0 @@ - -> kickstart-for-time-pwa@0.1.0 build -> vue-cli-service build - -All browser targets in the browserslist configuration have supported ES module. -Therefore we don't build two separate bundles for differential loading. - - - WARNING Compiled with 5 warnings6:06:43 PM - -[eslint] -/home/matthew/projects/kick-starter-for-time-pwa/src/components/World/components/objects/landmarks.js - 98:11 warning Unexpected console statement no-console - 133:7 warning Unexpected console statement no-console - 144:5 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/router/index.ts - 210:3 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/AccountViewView.vue - 362:7 warning Unexpected console statement no-console - 375:7 warning Unexpected console statement no-console - 404:7 warning Unexpected console statement no-console - 516:7 warning Unexpected console statement no-console - 536:7 warning Unexpected console statement no-console - 630:5 warning Unexpected console statement no-console - 682:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactAmountsView.vue - 206:9 warning Unexpected console statement no-console - 233:9 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactGiftingView.vue - 244:9 warning Unexpected console statement no-console - 267:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ContactsView.vue - 340:9 warning Unexpected console statement no-console - 577:9 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/DiscoverView.vue - 315:9 warning Unexpected console statement no-console - 343:7 warning Unexpected console statement no-console - 390:9 warning Unexpected console statement no-console - 423:7 warning Unexpected console statement no-console - 532:9 warning Unexpected console statement no-console - 575:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/HomeView.vue - 349:9 warning Unexpected console statement no-console - 498:9 warning Unexpected console statement no-console - 521:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/IdentitySwitcherView.vue - 142:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ImportAccountView.vue - 123:9 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ImportDerivedAccountView.vue - 159:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/NewEditProjectView.vue - 183:9 warning Unexpected console statement no-console - 215:7 warning Unexpected console statement no-console - 297:13 warning Unexpected console statement no-console - 320:11 warning Unexpected console statement no-console - 345:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ProjectViewView.vue - 387:9 warning Unexpected console statement no-console - 421:7 warning Unexpected console statement no-console - 457:7 warning Unexpected console statement no-console - 552:9 warning Unexpected console statement no-console - 554:11 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/ProjectsView.vue - 131:9 warning Unexpected console statement no-console - 144:7 warning Unexpected console statement no-console - 221:9 warning Unexpected console statement no-console - 237:7 warning Unexpected console statement no-console - -/home/matthew/projects/kick-starter-for-time-pwa/src/views/SeedBackupView.vue - 94:7 warning Unexpected console statement no-console - -✖ 44 problems (0 errors, 44 warnings) - - -You may use special comments to disable some warnings. -Use // eslint-disable-next-line to ignore the next line. -Use /* eslint-disable */ to ignore all warnings in a file. - warning - -/models/lupine_plant/textures/lambert2SG_baseColor.png is 3.75 MB, and won't be precached. Configure maximumFileSizeToCacheInBytes to change this limit. - - warning - -/models/lupine_plant/textures/lambert2SG_normal.png is 4.91 MB, and won't be precached. Configure maximumFileSizeToCacheInBytes to change this limit. - - warning - -asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). -This can impact web performance. -Assets: - js/project.44f30c9f.js (318 KiB) - js/statistics.8a97010a.js (586 KiB) - js/chunk-vendors.a4845bfb.js (411 KiB) - js/705.f6a6ce2a.js (252 KiB) - img/textures/leafy-autumn-forest-floor.jpg (705 KiB) - models/lupine_plant/textures/lambert2SG_baseColor.png (3.58 MiB) - models/lupine_plant/textures/lambert2SG_normal.png (4.69 MiB) - - warning - -entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance. -Entrypoints: - app (447 KiB) - js/chunk-vendors.a4845bfb.js - css/app.8f21529c.css - js/app.8833cebc.js - - - File Size Gzipped - - dist/js/statistics.8a97010a.js 585.72 KiB 148.80 KiB - dist/js/chunk-vendors.a4845bfb.js 411.44 KiB 137.82 KiB - dist/js/project.44f30c9f.js 317.61 KiB 78.67 KiB - dist/js/705.f6a6ce2a.js 251.66 KiB 87.12 KiB - dist/js/891.33615e4f.js 147.32 KiB 42.09 KiB - dist/js/153.e2c8e249.js 146.26 KiB 42.21 KiB - dist/js/820.13565d16.js 66.10 KiB 18.33 KiB - dist/js/contact-qr.e170ec33.js 54.85 KiB 15.63 KiB - dist/js/772.7b4c53a7.js 30.29 KiB 7.21 KiB - dist/js/361.898a4525.js 27.40 KiB 8.19 KiB - dist/js/account.77d86130.js 17.51 KiB 5.93 KiB - dist/js/app.8833cebc.js 17.31 KiB 5.84 KiB - dist/js/contacts.3fc90ff8.js 16.94 KiB 5.52 KiB - dist/js/discover.24106939.js 15.30 KiB 5.22 KiB - dist/js/536.3bb13201.js 15.23 KiB 4.84 KiB - dist/workbox-5b385ed2.js 14.11 KiB 4.93 KiB - dist/js/home.218b99dd.js 13.89 KiB 4.97 KiB - dist/js/help.50d3117b.js 12.49 KiB 4.38 KiB - dist/js/projects.417a6cb7.js 8.71 KiB 3.00 KiB - dist/js/contact-amounts.a32b0ccd.js 8.44 KiB 3.25 KiB - dist/js/229.120e09bf.js 7.99 KiB 2.72 KiB - dist/js/identity-switcher.c7937333.js 7.44 KiB 2.52 KiB - dist/js/new-edit-project.0552181b.js 7.36 KiB 3.11 KiB - dist/js/300.dcaeb2a3.js 6.56 KiB 3.24 KiB - dist/js/seed-backup.76a0f7b3.js 3.99 KiB 1.97 KiB - dist/js/import-derive.c688d4b8.js 3.81 KiB 1.82 KiB - dist/js/import-account.c3fa35fd.js 3.54 KiB 1.66 KiB - dist/js/new-edit-account.bb763be2.js 3.39 KiB 1.51 KiB - dist/js/431.5a6d64e0.js 3.38 KiB 2.56 KiB - dist/service-worker.js 3.37 KiB 1.38 KiB - dist/js/scan-contact.46be989a.js 2.79 KiB 1.18 KiB - dist/js/start.091a7740.js 2.70 KiB 1.30 KiB - dist/js/new-identifier.bb379420.js 2.12 KiB 1.18 KiB - dist/js/93.b873dbbf.js 2.08 KiB 1.61 KiB - dist/js/new-edit-commitment.9248d367.j 1.96 KiB 1.05 KiB - s - dist/js/confirm-contact.02004d1d.js 1.89 KiB 1.04 KiB - dist/js/858.ae4c08ec.js 0.97 KiB 0.78 KiB - dist/css/app.8f21529c.css 18.41 KiB 4.39 KiB - dist/css/discover.73ee9bd3.css 14.77 KiB 6.25 KiB - dist/css/new-edit-project.73ee9bd3.css 14.77 KiB 6.25 KiB - dist/css/contacts.abb5e493.css 0.40 KiB 0.23 KiB - dist/css/contact-amounts.5b26ccd4.css 0.31 KiB 0.20 KiB - dist/css/home.828bc66e.css 0.25 KiB 0.19 KiB - dist/css/project.828bc66e.css 0.25 KiB 0.19 KiB - dist/css/statistics.828bc66e.css 0.25 KiB 0.19 KiB - - Images and other types of assets omitted. - Build at: 2023-09-07T10:06:43.972Z - Hash: 2b39fcd4d0e78263 - Time: 32016ms - - DONE Build complete. The dist directory is ready to be deployed. - INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html - diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue index f803046..c4cca05 100644 --- a/src/components/GiftedDialog.vue +++ b/src/components/GiftedDialog.vue @@ -10,7 +10,7 @@ placeholder="What was received" v-model="description" /> -
+
Hours
-

Sign & Send to publish to the world

+
+ + +
+

+ Sign & Send to publish to the world +

- +

Latest Activity

From 85405317eed002794f936283ac4978dad63976ee Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Thu, 23 Nov 2023 11:15:48 -0700 Subject: [PATCH 16/31] update name of the app, and update version to 0.1.4 --- README.md | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7c0950d..111fde6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# kickstart-for-time-pwa +# TimeSafari.app - Crowd-Funder for Time - PWA ## Project setup diff --git a/package-lock.json b/package-lock.json index 1745080..75f460e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "kickstart-for-time-pwa", - "version": "0.1.3", + "name": "crowd-funder-for-time-pwa", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "kickstart-for-time-pwa", - "version": "0.1.3", + "name": "crowd-funder-for-time-pwa", + "version": "0.1.4", "dependencies": { "@ethersproject/hdnode": "^5.7.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", diff --git a/package.json b/package.json index 02e3e7e..aa4a188 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "kickstart-for-time-pwa", + "name": "crowd-funder-for-time-pwa", "version": "0.1.4", "private": true, "scripts": { From 1be10b1511e4e1f1a5e4c8c53c39e529a1802f75 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 26 Nov 2023 18:20:15 -0700 Subject: [PATCH 17/31] add ability to copy the QR code (even though we don't have a way to read it in yet) --- src/views/ContactQRScanShowView.vue | 40 +++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/src/views/ContactQRScanShowView.vue b/src/views/ContactQRScanShowView.vue index f7a2999..7b42337 100644 --- a/src/views/ContactQRScanShowView.vue +++ b/src/views/ContactQRScanShowView.vue @@ -20,16 +20,18 @@
- - +
+ + +

Scan Contact Info

@@ -40,6 +42,7 @@ import QRCodeVue3 from "qr-code-generator-vue3"; import { Component, Vue } from "vue-facing-decorator"; import { QrcodeStream } from "vue-qrcode-reader"; +import { useClipboard } from "@vueuse/core"; import { accountsDB, db } from "@/db/index"; import { MASTER_SETTINGS_KEY } from "@/db/tables/settings"; @@ -179,5 +182,22 @@ export default class ContactQRScanShow extends Vue { -1, ); } + + onCopyToClipboard() { + useClipboard() + .copy(this.qrValue) + .then(() => { + console.log("Contact URL:", this.qrValue); + this.$notify( + { + group: "alert", + type: "toast", + title: "Copied", + text: "Contact URL was copied to clipboard.", + }, + 2000, + ); + }); + } } From 889b6d5737c6cad307344a07c163996617a5e21a Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 26 Nov 2023 18:22:35 -0700 Subject: [PATCH 18/31] update tasks --- project.task.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/project.task.yaml b/project.task.yaml index 6312fb5..7595acb 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -1,13 +1,14 @@ tasks: +- on project view screen, 'contributions' to & from shouldn't fall to next line (eg. Alpha Barbados Beach Cleanup Test) + - in endorser-push-server - mount folder for persistent sqlite DB outside of container - 40 notifications : - push, where we trigger a ServiceWorker(?) in the app to reach out and check for new data assignee:matthew - .5 add project ID to the URL of the project-view, to make a project publicly-accessible - .5 add link to further project / people when a project pays ahead -- .5 show checkbox on "gave" modal to say that user is recipient (so it could be uncheked for someone unspecified) - .5 allow to manage their notifications even without an identity - .5 bug - on the discover page, enter a search term and search and see a duplicate project show at the end of the list @@ -32,8 +33,9 @@ tasks: - .5 Display a more appealing confirmation on the map when erasing the marker - .5 make a VC details page, or link to endorser.ch - .1 Add units or different icon to the coins (to distinguish $, BTC, hours, etc) -- .5 include the hash of the latest commit on help page next to version +- .5 include the hash of the latest commit on help page next to version (maybe Trent's git-hash branch) - .5 remove references to localStorage for projectId (now that it's pulling from the path) +- bug (that is hard to reproduce) - on the second 'give' recorded on prod it showed me as the agent - contacts v+ : - 01 Import all the non-sensitive data (ie. contacts & settings). From 69576784742e6131faf103957b1cd11e2354ee22 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 26 Nov 2023 18:42:28 -0700 Subject: [PATCH 19/31] include project ID in the URLs to the project-details page --- project.task.yaml | 2 +- src/components/GiftedDialog.vue | 2 +- src/views/DiscoverView.vue | 2 +- src/views/ProjectsView.vue | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/project.task.yaml b/project.task.yaml index 7595acb..dd1b192 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -7,7 +7,6 @@ tasks: - 40 notifications : - push, where we trigger a ServiceWorker(?) in the app to reach out and check for new data assignee:matthew -- .5 add project ID to the URL of the project-view, to make a project publicly-accessible - .5 add link to further project / people when a project pays ahead - .5 allow to manage their notifications even without an identity @@ -36,6 +35,7 @@ tasks: - .5 include the hash of the latest commit on help page next to version (maybe Trent's git-hash branch) - .5 remove references to localStorage for projectId (now that it's pulling from the path) - bug (that is hard to reproduce) - on the second 'give' recorded on prod it showed me as the agent +- make identicons for contacts into more-memorable faces (and maybe change project identicons, too) - contacts v+ : - 01 Import all the non-sensitive data (ie. contacts & settings). diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue index c4cca05..079116f 100644 --- a/src/components/GiftedDialog.vue +++ b/src/components/GiftedDialog.vue @@ -81,7 +81,7 @@ export default class GiftedDialog extends Vue { activeDid = ""; apiServer = ""; - giver?: GiverInputInfo; + giver?: GiverInputInfo; // undefined means no identified giver agent description = ""; givenToUser = false; hours = "0"; diff --git a/src/views/DiscoverView.vue b/src/views/DiscoverView.vue index 891a62a..7af51f1 100644 --- a/src/views/DiscoverView.vue +++ b/src/views/DiscoverView.vue @@ -376,7 +376,7 @@ export default class DiscoverView extends Vue { onClickLoadProject(id: string) { localStorage.setItem("projectId", id); const route = { - name: "project", + path: "/project/" + encodeURIComponent(id), }; this.$router.push(route); } diff --git a/src/views/ProjectsView.vue b/src/views/ProjectsView.vue index 6d2810e..2c2c6e3 100644 --- a/src/views/ProjectsView.vue +++ b/src/views/ProjectsView.vue @@ -174,7 +174,7 @@ export default class ProjectsView extends Vue { onClickLoadProject(id: string) { localStorage.setItem("projectId", id); const route = { - name: "project", + path: "/project/" + encodeURIComponent(id), }; this.$router.push(route); } From 1cf6660e6c0953cb138514e8f0ccc1aef30ebf5a Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 26 Nov 2023 18:49:48 -0700 Subject: [PATCH 20/31] move both the contributions to & from this project to the last column (for when they both show) --- project.task.yaml | 2 -- src/views/ProjectViewView.vue | 56 ++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/project.task.yaml b/project.task.yaml index dd1b192..054fec6 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -7,8 +7,6 @@ tasks: - 40 notifications : - push, where we trigger a ServiceWorker(?) in the app to reach out and check for new data assignee:matthew -- .5 add link to further project / people when a project pays ahead - - .5 allow to manage their notifications even without an identity - .5 bug - on the discover page, enter a search term and search and see a duplicate project show at the end of the list - 01 Ensure each action sent to the server has a confirmation - eg registration (ie a toast something that dismisses after 5-10s) diff --git a/src/views/ProjectViewView.vue b/src/views/ProjectViewView.vue index 3a2f4d5..0bd1471 100644 --- a/src/views/ProjectViewView.vue +++ b/src/views/ProjectViewView.vue @@ -210,35 +210,37 @@ -
-

- Contributions By This Project -

- -
+

+ Contributions To This Project +

+
    +
  • + +
  • +
+ -
-

- Contributions To This Project -

-
    -
  • - -
  • -
+
+

+ Contributions By This Project +

+ +
From c1176fa24d36fd3ca0e06ac6192ccd38f6751312 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 26 Nov 2023 20:08:30 -0700 Subject: [PATCH 21/31] clear search results on restarting search --- project.task.yaml | 2 ++ src/views/DiscoverView.vue | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/project.task.yaml b/project.task.yaml index 054fec6..6c7d3ac 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -7,6 +7,7 @@ tasks: - 40 notifications : - push, where we trigger a ServiceWorker(?) in the app to reach out and check for new data assignee:matthew +- .3 on DiscoverView QuickSearch, the 'keyup.enter' only runs searchAll, so do the right thing for searchLocal - .5 allow to manage their notifications even without an identity - .5 bug - on the discover page, enter a search term and search and see a duplicate project show at the end of the list - 01 Ensure each action sent to the server has a confirmation - eg registration (ie a toast something that dismisses after 5-10s) @@ -49,6 +50,7 @@ tasks: - 08 convert to cleaner implementation (maybe Drie -- https://github.com/janvorisek/drie) - Release Minimum Viable Product : + - .5 deploy endorser.ch server above v 3.4.3 (to get plan searches by names as well as descriptions) - 08 thorough testing for errors & edge cases - 01 ensure ability to recover server remotely, and add redundant access - Turn off stats-world or ensure it's usable (eg. cannot zoom out too far and lose world, cannot screenshot). diff --git a/src/views/DiscoverView.vue b/src/views/DiscoverView.vue index 7af51f1..637e71d 100644 --- a/src/views/DiscoverView.vue +++ b/src/views/DiscoverView.vue @@ -213,6 +213,11 @@ export default class DiscoverView extends Vue { } public async searchAll(beforeId?: string) { + if (!beforeId) { + // this was an initial search so clear any previous results + this.projects = []; + } + let queryParams = "claimContents=" + encodeURIComponent(this.searchTerms); if (beforeId) { @@ -280,8 +285,14 @@ export default class DiscoverView extends Vue { return; } + if (!beforeId) { + // this was an initial search so clear any previous results + this.projects = []; + } + const claimContents = "claimContents=" + encodeURIComponent(this.searchTerms); + let queryParams = [ claimContents, "minLocLat=" + this.searchBox.bbox.minLat, From 7a3bd069b8cc5a4bb5bd66b943bf5c083227150f Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Thu, 30 Nov 2023 20:15:54 -0700 Subject: [PATCH 22/31] fix keyword search to work for both local and everywhere searches --- project.task.yaml | 9 +++++---- src/views/DiscoverView.vue | 12 ++++++++++-- src/views/HelpView.vue | 9 +++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/project.task.yaml b/project.task.yaml index 6c7d3ac..6e89a80 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -1,15 +1,14 @@ tasks: -- on project view screen, 'contributions' to & from shouldn't fall to next line (eg. Alpha Barbados Beach Cleanup Test) +- don't show "Give" & "Offer" on project screen if they don't have an identifier +- allow some gives even if they aren't registered - in endorser-push-server - mount folder for persistent sqlite DB outside of container - 40 notifications : - push, where we trigger a ServiceWorker(?) in the app to reach out and check for new data assignee:matthew -- .3 on DiscoverView QuickSearch, the 'keyup.enter' only runs searchAll, so do the right thing for searchLocal - .5 allow to manage their notifications even without an identity -- .5 bug - on the discover page, enter a search term and search and see a duplicate project show at the end of the list - 01 Ensure each action sent to the server has a confirmation - eg registration (ie a toast something that dismisses after 5-10s) - .3 fix the Project-location-selection map display to not show on top of bottom icons (and any other UI tweaks on the map flow) assignee-group:ui @@ -20,6 +19,7 @@ tasks: - .5 fix where user 0 sees no txns from user 1 on contacts page but sees them on list page - .1 remove the logic to exclude beforeId in list of plans after server has commit 26b25af605e715600d4f12b6416ed9fd7142d164 assignee:trent - .2 in SeedBackupView, don't load the mnemonic and keep it in memory; only load it when they click "show" +- fix cert generation (since it didn't happen automatically for Nov 30) - Discuss whether the remaining tasks are worthwhile before MVP release. @@ -35,6 +35,7 @@ tasks: - .5 remove references to localStorage for projectId (now that it's pulling from the path) - bug (that is hard to reproduce) - on the second 'give' recorded on prod it showed me as the agent - make identicons for contacts into more-memorable faces (and maybe change project identicons, too) +- allow download of each VC (to show that they can actually own their data) - contacts v+ : - 01 Import all the non-sensitive data (ie. contacts & settings). @@ -50,7 +51,7 @@ tasks: - 08 convert to cleaner implementation (maybe Drie -- https://github.com/janvorisek/drie) - Release Minimum Viable Product : - - .5 deploy endorser.ch server above v 3.4.3 (to get plan searches by names as well as descriptions) + - .5 deploy endorser.ch server above Dec 1 (to get plan searches by names as well as descriptions) - 08 thorough testing for errors & edge cases - 01 ensure ability to recover server remotely, and add redundant access - Turn off stats-world or ensure it's usable (eg. cannot zoom out too far and lose world, cannot screenshot). diff --git a/src/views/DiscoverView.vue b/src/views/DiscoverView.vue index 637e71d..5735017 100644 --- a/src/views/DiscoverView.vue +++ b/src/views/DiscoverView.vue @@ -9,7 +9,7 @@ -
+