diff --git a/.env.development b/.env.development
new file mode 100644
index 00000000..9e5c0060
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,4 @@
+# Only the variables that start with VUE_APP_ are seen in the application process.env in Vue.
+
+# this won't resolve as a URL on production; it's a URN only found in the test system
+VUE_APP_BVC_MEETUPS_PROJECT_CLAIM_ID=https://endorser.ch/entity/01HNTZYJJXTGT0EZS3VEJGX7AK
diff --git a/.env.production b/.env.production
new file mode 100644
index 00000000..9adc667d
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,4 @@
+# Only the variables that start with VUE_APP_ are seen in the application process.env in Vue.
+VUE_APP_BVC_MEETUPS_PROJECT_CLAIM_ID=https://endorser.ch/entity/01GXYPFF7FA03NXKPYY142PY4H
+VUE_APP_DEFAULT_ENDORSER_API_SERVER=https://api.endorser.ch
+VUE_APP_DEFAULT_IMAGE_API_SERVER=https://image-api.timesafari.app
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 94ec7a56..bab2bbc7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,13 +6,25 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+### Fixed
+- Environment variable for BVC meetings project
+### Changed in DB or environment
+- Test that a new browser session will get the right default API
+- Test that a new browser session will send the right BVC meetings project
+
+
+## [0.2.17] - 2024.03.01 - 3612ea42240c5e1b7d7eff29a39ff18f1b869b36
+### Added
+- Shortcut page for Bountiful Voluntaryist Community
+### Changed
+- More readable, targeted summaries in home-page feed items
### Changed in DB
-- ?
+- Nothing
-## [0.2.14] - 2024.02.14
+## [0.2.14] - 2024.02.14 - 5f9edea1167dbfb64e16648764eed8c09b24eaeb
### Changed
-- Combine all service worker scripts into a single file
+- Combine all service worker scripts into a single file.
### Changed in DB
- Nothing
diff --git a/README.md b/README.md
index fa0569d4..04286a07 100644
--- a/README.md
+++ b/README.md
@@ -32,21 +32,22 @@ npm run lint
* `npx prettier --write ./sw_scripts/`
-* Update the project.task.yaml & CHANGELOG.md & the version in package.json, run `npm install`, and commit.
+* Update the project.task.yaml & CHANGELOG.md & the version in package.json, run `npm install`.
-* [Tag wth the new version.](https://gitea.anomalistdesign.com/trent_larson/crowd-funder-for-time-pwa/releases)
+* If production: change package.json to remove "_Test". Also record what version is on production.
-... though maybe you do that after testing and release, since that isn't used in the build (and you often increment a lot during testing).
-
-* If production: change src/constants/app.ts DEFAULT_*_SERVER to be "PROD" and package.json to remove "_Test". Also record what version is on production.
-
-* `npm run build`
+* `npm run build-dev` for test servers or `npm run build` for production.
* Get on the server and back up the time-safari folder.
* `rsync -azvu -e "ssh -i ~/.ssh/..." dist ubuntutest@test.timesafari.app:time-safari`
-* Revert src/constants/app.ts and package.json (if that was prod), edit package.json to increment version & add "-beta", `npm install`, and commit. Tag if you didn't before. Also record what version is on production.
+* Revert src/constants/app.ts and package.json (if that was prod).
+
+* Commit changes. Record the new hash in the changelog. Edit package.json to increment version & add "-beta", `npm install`, and commit. Also record what version is on production.
+
+* [Tag with the new version.](https://gitea.anomalistdesign.com/trent_larson/crowd-funder-for-time-pwa/releases)
+
diff --git a/package-lock.json b/package-lock.json
index 213d10b3..6be25ee3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "TimeSafari_Test",
- "version": "0.2.15-beta",
+ "version": "0.2.18-beta",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "TimeSafari_Test",
- "version": "0.2.15-beta",
+ "version": "0.2.18-beta",
"dependencies": {
"@dicebear/collection": "^5.3.5",
"@dicebear/core": "^5.3.5",
@@ -17,6 +17,7 @@
"@pvermeer/dexie-encrypted-addon": "^3.0.0",
"@tweenjs/tween.js": "^21.0.0",
"@types/js-yaml": "^4.0.9",
+ "@types/luxon": "^3.4.2",
"@veramo/core": "^5.4.1",
"@veramo/credential-w3c": "^5.4.1",
"@veramo/data-store": "^5.4.1",
@@ -41,7 +42,7 @@
"js-generate-password": "^0.1.9",
"js-yaml": "^4.1.0",
"localstorage-slim": "^2.5.0",
- "luxon": "^3.4.3",
+ "luxon": "^3.4.4",
"merkletreejs": "^0.3.11",
"moment": "^2.29.4",
"notiwind": "^2.0.2",
@@ -9171,6 +9172,11 @@
"@types/geojson": "*"
}
},
+ "node_modules/@types/luxon": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz",
+ "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA=="
+ },
"node_modules/@types/mime": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz",
@@ -20252,9 +20258,9 @@
}
},
"node_modules/luxon": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz",
- "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==",
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz",
+ "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
"engines": {
"node": ">=12"
}
diff --git a/package.json b/package.json
index 80b5bb21..17b4044f 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,11 @@
{
"name": "TimeSafari_Test",
- "version": "0.2.15-beta",
+ "version": "0.2.18-beta",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
+ "build-dev": "vue-cli-service build --mode development",
"lint": "vue-cli-service lint"
},
"dependencies": {
@@ -17,6 +18,7 @@
"@pvermeer/dexie-encrypted-addon": "^3.0.0",
"@tweenjs/tween.js": "^21.0.0",
"@types/js-yaml": "^4.0.9",
+ "@types/luxon": "^3.4.2",
"@veramo/core": "^5.4.1",
"@veramo/credential-w3c": "^5.4.1",
"@veramo/data-store": "^5.4.1",
@@ -41,7 +43,7 @@
"js-generate-password": "^0.1.9",
"js-yaml": "^4.1.0",
"localstorage-slim": "^2.5.0",
- "luxon": "^3.4.3",
+ "luxon": "^3.4.4",
"merkletreejs": "^0.3.11",
"moment": "^2.29.4",
"notiwind": "^2.0.2",
diff --git a/project.task.yaml b/project.task.yaml
index 4ed2a306..4bb16bd8 100644
--- a/project.task.yaml
+++ b/project.task.yaml
@@ -5,43 +5,40 @@ tasks :
- .1 on ideas, put an "x" to close it
- .2 fix give dialog from "more contacts" off home page to allow giving to this user
-- 01 in the feed, group by project or contact or topic or time/$ (via BC)
-- .2 anchor hash into BTC
-
-- .1 when gave to a project, say "gave to project"
- .2 fix bottom of project selection map, where the icons are hidden but a tap goes to the icon's page
-- 01 separate not-on-platform vs totally anonymous; terminology "unidentified"?
+- .5 stop from seeing an error on the first page when browser doesn't support service workers (which I've seen on iPhone; visible in Firefox private window)
+- .2 don't show a warning on a totally new project when the authorized agent is set
+- .2 anchor hash into BTC
+- .2 list the "show more" contacts alphabetically
-- 01 page for BVC
+- 32 image on give :
+ - Show a camera to take a picture
+ - Scale the image to a reasonable size
+ - Upload to a public readable place
+ - check the rate limits
+ - use CID (hash?)
+ - put the image URL in the claim
+ - Rates - images erased?
+ - image not associated with JWT ULID since that's assigned later
- 24 compelling UI for credential presentations
- discover who in my network has activity on a project
+
- 24 compelling UI for statistics (eg. World?)
-- .5 stop from seeing an error on the first page when browser doesn't support service workers (which I've seen on iPhone; visible in Firefox private window)
+- 01 in the feed, group by project or contact or topic or time/$ (via BC)
+- 01 separate not-on-platform vs totally anonymous; terminology "unidentified"?
- .2 add links between projects
-- 32 image on give :
- - Show a camera to take a picture
- - Scale the image to a reasonable size
- - Upload to a public readable place - restrict size, catch all errors, multiple file types
- - check the rate limits
- - use CID (hash?)
- - put the image URL in the claim
- - Rates - images erased?
- - image not associated with JWT ULID since that's assigned later
-
- 24 make the contact browsing on the front page something that invites more action
-- .2 list the "show more" contacts alphabetically
- .5 change server plan & project endpoints to use jwtId as identifier rather than rowid
- 16 edit offers & gives, or revoke allowing re-creation
- .1 When available in the server, give message for 'nonAmountGiven' on offers on ProjectsView page.
- .1 Add help instructions for "Encryption key has changed" error. (It is a problem if localStorage is cleared, but the contacts & settings remain and they have to restore their seeds.)
-- .5 add more detail on TimeSafari.org
- .1 show better error when user with no ID goes to the "My Project" page
-- 08 add button to front page to prompt for ideas for gratitude :
- - show previous on "Your" screen
- - checkboxes - randomize vs show in order, show non-person-oriented messages, show only contacts, show only projects
+- 01 in front page prompt for ideas for gratitude :
+ - randomize (not show in order)
+ - checkboxes - show non-person-oriented messages, show only contacts, show only projects
- .5 add a notice on the front page if their notifications are off
- 08 allow user to add a time when they want their daily notification
@@ -80,6 +77,7 @@ tasks :
- create a help-desk document & add screenshots
- .1 update "offer" units to have same functionality as "give" units
+- .5 add a link to any 'give' records that fulfill an offer on ClaimView
- 01 on home page, prompt for install check in addition to "supports notifications" check (since they won't get notified if Chrome is closed)
- 01 on Mac (& Windows?) desktop, add a help blurb so that they can find it again (since it doesn't show in Application list)
- bug (that is hard to reproduce) - got error adding on Firefox user #0 as contact for themselves
diff --git a/src/App.vue b/src/App.vue
index 2d8935fa..484d0153 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -288,21 +288,14 @@ interface VapidResponse {
};
}
-import { DEFAULT_PUSH_SERVER } from "@/constants/app";
+import { DEFAULT_PUSH_SERVER, NotificationIface } from "@/constants/app";
import { db } from "@/db/index";
import { MASTER_SETTINGS_KEY } from "@/db/tables/settings";
import { sendTestThroughPushServer } from "@/libs/util";
-interface Notification {
- group: string;
- type: string;
- title: string;
- text: string;
-}
-
@Component
export default class App extends Vue {
- $notify!: (notification: Notification, timeout?: number) => void;
+ $notify!: (notification: NotificationIface, timeout?: number) => void;
b64 = "";
serviceWorkerReady = false;
@@ -589,7 +582,7 @@ export default class App extends Vue {
}
})
.catch((error) => {
- console.log("Push provider server communication failed:", error);
+ console.error("Push provider server communication failed:", error);
return false;
});
@@ -604,7 +597,7 @@ export default class App extends Vue {
return response.ok;
})
.catch((error) => {
- console.log("Push server communication failed:", error);
+ console.error("Push server communication failed:", error);
return false;
});
diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue
index fbc103d9..8583dd5d 100644
--- a/src/components/GiftedDialog.vue
+++ b/src/components/GiftedDialog.vue
@@ -75,6 +75,8 @@
diff --git a/src/views/QuickActionBvcEndView.vue b/src/views/QuickActionBvcEndView.vue
new file mode 100644
index 00000000..f158fbb0
--- /dev/null
+++ b/src/views/QuickActionBvcEndView.vue
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ End of BVC Saturday Meeting
+
+
+
+
Confirm
+
+
+
+
+ There are no claims yet today for you to confirm.
+
+
+ {{
+ claimCountWithHidden === 1
+ ? "There is 1 other claim with hidden details,"
+ : `There are ${claimCountWithHidden} other claims with hidden details,`
+ }}
+ so if you expected but do not see details from someone then ask them to
+ check that their activity is visible to you on their Contacts
+
+ page.
+
+