Skip to content

Commit effc595

Browse files
committed
feat(web): rename bookmarks to saves
1 parent 1787adf commit effc595

41 files changed

Lines changed: 153 additions & 145 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎docs/tutorials/01-configure-app.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ The build fails when:
135135

136136
With `functions` on, every Cloud Function always deploys. When its feature is off, it logs an error that names the `site.json` key and does nothing. `sendGeneralNotification` needs `notifications`, and `scheduleNotifications` needs `notifications` and `mySchedule`. The functions read the flags and `event.timezone` from `site-config.json`, which their build copies from `site.json`, so deploy the functions again after changing these values.
137137

138-
When `feedback` is off, the feedback dialog is still in the build, but nothing opens it. Bookmark buttons show only when `mySchedule` is on.
138+
When `feedback` is off, the feedback dialog is still in the build, but nothing opens it. Save buttons show only when `mySchedule` is on.
139139

140140
`socialImages` builds a share image for each session and speaker page, which social networks and chat apps show with a link to the page. A session's image has its title, speakers, day, time and track. A speaker's image has their photo, name, company and the event's dates. Both have the logo from `packages/web/public/images/logo.svg`, the venue and the site's address, in the theme's colors and fonts. The build downloads speaker photos for them, and a photo that fails to download shows the speaker's initials, with a warning in the build output. With `socialImages` off, those pages share the first speaker's photo or `image` from `site.json`.
141141

‎docs/tutorials/03-styling.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Hoverboard has four built-in themes. Each has light and dark colors.
2222

2323
- `colorScheme` is `system`, `light` or `dark`. With `system`, the site follows the visitor's device setting, and visitors can pick System, Light or Dark under Appearance in the footer. Their browser remembers the choice. `light` and `dark` lock the site to one scheme and hide the footer choice.
2424
- `density` is `compact`, `default` or `roomy`. It scales the spacing, not the text or button sizes.
25-
- `decorations` turns the playful details on or off: dot patterns, tilted stickers and photos, confetti when a visitor bookmarks a session, and the home page illustration. With `false`, the layout stays the same, with plain colors and straight labels. Visitors who ask their device for reduced motion never see the motion.
25+
- `decorations` turns the playful details on or off: dot patterns, tilted stickers and photos, confetti when a visitor saves a session, and the home page illustration. With `false`, the layout stays the same, with plain colors and straight labels. Visitors who ask their device for reduced motion never see the motion.
2626

2727
The themes are in `packages/web/src/themes/`. `./hb init` asks which one to use.
2828

‎docs/tutorials/05-notifications.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ To get a notification an attendee has to:
1616

1717
1. Be authenticated
1818
1. Have enabled "My Schedule notifications"
19-
1. Have bookmarked the session that is about to start
19+
1. Have saved the session that is about to start
2020

2121
### General notifications
2222

‎docs/tutorials/06-security.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ What Hoverboard protects for you, and what you set in your own Firebase project
44

55
## What Hoverboard does
66

7-
- **Firestore rules.** Visitors can only read your content. You change it in the Firebase console or with `./hb firestore-*`. Signed-in visitors can write only their own bookmarks, notification settings and feedback. The subscribe and partner forms can only add documents, with checked fields and sizes, and nobody can read them from the site. Export them with [`./hb firestore-csv`](01-configure-app.md#subscribers-and-partner-leads).
7+
- **Firestore rules.** Visitors can only read your content. You change it in the Firebase console or with `./hb firestore-*`. Signed-in visitors can write only their own saved sessions, notification settings and feedback. The subscribe and partner forms can only add documents, with checked fields and sizes, and nobody can read them from the site. Export them with [`./hb firestore-csv`](01-configure-app.md#subscribers-and-partner-leads).
88
- **Storage rules.** The site can't read or write your Storage bucket.
99
- **Content.** Links in your config and content can only be `https:`, `http:`, `mailto:` or a path on your site. The site drops other links, such as `javascript:` ones, even when they come straight from the Firebase console. Markdown is sanitized before it is shown, and the build sanitizes the hero illustration.
1010
- **Headers.** `firebase.json` sends `Strict-Transport-Security`, `Referrer-Policy`, `Permissions-Policy` and other headers on every page, and every page has a [Content Security Policy](01-configure-app.md#content-security-policy).

‎docs/tutorials/firebase-utils.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ The safe fixes are:
5353
- Fields Hoverboard stopped reading, such as `extend` and `shortDescription` on sessions and `timezone` on `config/notifications`, are removed.
5454
- A missing `updatedAt`, such as on push subscriptions from before the rules required it, is set to the time of the fix.
5555
- A `subscribers` or `potentialPartners` document without a valid email is deleted, since nobody can answer it. These are usually tests and spam.
56-
- A `null` entry in `featuredSessions`, which older sites wrote for a removed bookmark, is removed. The site removes the entry now.
56+
- A `null` entry in `featuredSessions`, which older sites wrote for a session that was unsaved, is removed. The site removes the entry now.
5757

58-
Other problems need an edit in the Firebase console. What visitors wrote is never changed: their data only gets the three fixes above, which add a missing time, drop empty bookmarks or delete the whole document. The plan counts those documents by collection, without their IDs, since they can be push tokens or user IDs.
58+
Other problems need an edit in the Firebase console. What visitors wrote is never changed: their data only gets the three fixes above, which add a missing time, drop empty saved sessions or delete the whole document. The plan counts those documents by collection, without their IDs, since they can be push tokens or user IDs.
5959

6060
Each write only happens if the document hasn't changed since it was read. A document someone edited in the meantime is left alone and named. Run `--fix` again for it.
6161

‎packages/cli/src/lib/fixes.test.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@ describe('documentFixes', () => {
9191
]);
9292
});
9393

94-
it('removes null bookmarks, and keeps the others', () => {
95-
const bookmarks = { '101': null, '102': true, '103': null };
96-
const fixes = documentFixes('featuredSessions/uid', bookmarks, options);
94+
it('removes null saved sessions, and keeps the others', () => {
95+
const saved = { '101': null, '102': true, '103': null };
96+
const fixes = documentFixes('featuredSessions/uid', saved, options);
9797

9898
expect(fixes.map(({ segments, value }) => [segments.join('/'), value])).toEqual([
9999
['101', DELETE],
100100
['103', DELETE],
101101
]);
102-
expect(fieldUpdates(bookmarks, fixes)).toEqual({ '101': DELETE, '103': DELETE });
102+
expect(fieldUpdates(saved, fixes)).toEqual({ '101': DELETE, '103': DELETE });
103103
});
104104

105105
it('sets a missing updatedAt to the current time, in visitor data too', () => {

‎packages/cli/src/lib/fixes.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ const emailError = (error: ErrorObject) =>
100100

101101
/**
102102
* The fix for an error of a document. Visitor data only gets fixes that add a missing time, drop
103-
* empty bookmarks or delete a sign-up without a valid email, never ones that change what a visitor wrote.
103+
* empty saved sessions or delete a sign-up without a valid email, never ones that change what a visitor wrote.
104104
*/
105105
const fixIn = (
106106
documentPath: string,
@@ -115,7 +115,7 @@ const fixIn = (
115115
description: 'deleted, since its email isn\u2019t valid',
116116
};
117117
}
118-
// Older sites wrote null for a removed bookmark. The site now removes the entry.
118+
// Older sites wrote null for an unsaved session. The site now removes the entry.
119119
if (segments[0] === 'featuredSessions' && error.keyword === 'type' && error.data === null) {
120120
return {
121121
segments: pointer(error.instancePath),

‎packages/storage/firestore.rules‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ service cloud.firestore {
8888
allow list: if request.auth != null && resource.data.userId == request.auth.uid;
8989
}
9090

91-
// Bookmarked sessions: a map of session IDs to booleans.
91+
// Saved sessions: a map of session IDs to booleans.
9292
match /featuredSessions/{userId} {
9393
allow get, delete: if isOwner(userId);
9494
allow create, update: if isOwner(userId) && request.resource.data.size() <= 500;

‎packages/storage/schemas/firestore.schema.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@
410410
}
411411
},
412412
"featuredSessions": {
413-
"description": "A signed-in visitor's bookmarked sessions, by session ID. Firestore: `featuredSessions/{userId}`.",
413+
"description": "A signed-in visitor's saved sessions, by session ID. Firestore: `featuredSessions/{userId}`.",
414414
"type": "object",
415415
"maxProperties": 500,
416416
"additionalProperties": { "type": "boolean" }

‎packages/translations/source/en.xlf‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -269,14 +269,14 @@
269269
<trans-unit id="markdown.toc.title">
270270
<source>On this page</source>
271271
</trans-unit>
272-
<trans-unit id="pages.session.bookmarked">
273-
<source>Bookmarked</source>
272+
<trans-unit id="pages.session.saved">
273+
<source>Saved</source>
274274
</trans-unit>
275-
<trans-unit id="pages.session.bookmark">
276-
<source>Bookmark</source>
275+
<trans-unit id="pages.session.save">
276+
<source>Save</source>
277277
</trans-unit>
278-
<trans-unit id="schedule.session.bookmark">
279-
<source>Bookmark <x id="0" equiv-text="${session.title}"/></source>
278+
<trans-unit id="schedule.session.save">
279+
<source>Save <x id="0" equiv-text="${session.title}"/></source>
280280
</trans-unit>
281281
<trans-unit id="common.save-sessions-signed-out">
282282
<source>Sign in to save sessions</source>
@@ -468,7 +468,7 @@
468468
<source>Dismiss</source>
469469
</trans-unit>
470470
<trans-unit id="shell.sync.help">
471-
<source>Bookmarks, feedback and reminders you change are saved on this device, and sync when you are online. Signing in, subscribing and turning on notifications need the internet.</source>
471+
<source>Saved sessions, feedback and reminders are kept on this device, and sync when you are online. Signing in, subscribing and turning on notifications need the internet.</source>
472472
</trans-unit>
473473
<trans-unit id="common.close">
474474
<source>Close</source>
@@ -641,8 +641,8 @@
641641
<trans-unit id="pages.offline.visited">
642642
<source>Pages you have visited before</source>
643643
</trans-unit>
644-
<trans-unit id="pages.offline.bookmarks">
645-
<source>Your bookmarked sessions, in My Schedule</source>
644+
<trans-unit id="pages.offline.saved">
645+
<source>Your saved sessions, in My Schedule</source>
646646
</trans-unit>
647647
<trans-unit id="pages.post.all-posts">
648648
<source>All posts</source>
@@ -669,7 +669,7 @@
669669
<source>Show my time zone, <x id="0" equiv-text="${zoneName(visitorZone)}"/></source>
670670
</trans-unit>
671671
<trans-unit id="schedule.my-schedule.empty">
672-
<source>Bookmark sessions in the schedule to see them here.</source>
672+
<source>Save sessions in the schedule to see them here.</source>
673673
</trans-unit>
674674
<trans-unit id="schedule.day.no-results">
675675
<source>No sessions match these filters.</source>

0 commit comments

Comments
 (0)