diff --git a/docs/screenshots/admin.png b/docs/screenshots/admin.png index 244e64f..33571bb 100644 Binary files a/docs/screenshots/admin.png and b/docs/screenshots/admin.png differ diff --git a/docs/screenshots/board.png b/docs/screenshots/board.png index 1638200..3755794 100644 Binary files a/docs/screenshots/board.png and b/docs/screenshots/board.png differ diff --git a/docs/screenshots/calendar-light.png b/docs/screenshots/calendar-light.png new file mode 100644 index 0000000..1d2bd5c Binary files /dev/null and b/docs/screenshots/calendar-light.png differ diff --git a/docs/screenshots/delegated.png b/docs/screenshots/delegated.png index 0715438..195a9b9 100644 Binary files a/docs/screenshots/delegated.png and b/docs/screenshots/delegated.png differ diff --git a/docs/screenshots/detail.png b/docs/screenshots/detail.png index 784fa93..fb3e089 100644 Binary files a/docs/screenshots/detail.png and b/docs/screenshots/detail.png differ diff --git a/docs/screenshots/history.png b/docs/screenshots/history.png index 78ef54e..71caee8 100644 Binary files a/docs/screenshots/history.png and b/docs/screenshots/history.png differ diff --git a/docs/screenshots/notes-shared-light.png b/docs/screenshots/notes-shared-light.png new file mode 100644 index 0000000..7a216f1 Binary files /dev/null and b/docs/screenshots/notes-shared-light.png differ diff --git a/docs/screenshots/notes-source.png b/docs/screenshots/notes-source.png index 4faf0ae..8f59fca 100644 Binary files a/docs/screenshots/notes-source.png and b/docs/screenshots/notes-source.png differ diff --git a/docs/screenshots/notes.png b/docs/screenshots/notes.png index f36b4b6..2b553ea 100644 Binary files a/docs/screenshots/notes.png and b/docs/screenshots/notes.png differ diff --git a/docs/screenshots/sections.png b/docs/screenshots/sections.png index 3214963..24f1bb2 100644 Binary files a/docs/screenshots/sections.png and b/docs/screenshots/sections.png differ diff --git a/docs/screenshots/settings.png b/docs/screenshots/settings.png index 9b1d08d..87f1350 100644 Binary files a/docs/screenshots/settings.png and b/docs/screenshots/settings.png differ diff --git a/docs/screenshots/themes.png b/docs/screenshots/themes.png index c2882e8..2ef213d 100644 Binary files a/docs/screenshots/themes.png and b/docs/screenshots/themes.png differ diff --git a/docs/screenshots/today-light.png b/docs/screenshots/today-light.png index 32d6078..be36856 100644 Binary files a/docs/screenshots/today-light.png and b/docs/screenshots/today-light.png differ diff --git a/docs/screenshots/today.png b/docs/screenshots/today.png index e28abea..9188993 100644 Binary files a/docs/screenshots/today.png and b/docs/screenshots/today.png differ diff --git a/docs/screenshots/upcoming.png b/docs/screenshots/upcoming.png index eb94dbd..a69d23e 100644 Binary files a/docs/screenshots/upcoming.png and b/docs/screenshots/upcoming.png differ diff --git a/docs/screenshots/week.png b/docs/screenshots/week.png index 05fa78a..b78b3a3 100644 Binary files a/docs/screenshots/week.png and b/docs/screenshots/week.png differ diff --git a/site/index.html b/site/index.html index 2e7a0cc..3ba03ba 100644 --- a/site/index.html +++ b/site/index.html @@ -926,6 +926,26 @@
+
+ A week in the calendar: timed tasks drawn to their length, a fifteen-minute stand-up short and a ninety-minute planning block tall, each on the day and at the time it is due. +
The calendar draws a task to its length — drag its foot to change it.
+
+
+ Notes with a Shared with me group at the top of the list, holding a note somebody else shared, marked with whose it is, open on the right. +
A note shared with you, gathered under Shared with me.
+
+
+

Share a note, or a page

+

+ Hand a single note to a person — to read or to edit — without standing up + a project for it. Notes other people share with you gather under + Shared with me, each marked with whose it is. File it in a project + instead and everyone who can read the project reads the note. +

+
+
+

How long it takes

+

+ A task can carry a length, and the calendar draws it to scale. Drag the + foot of a task to make it longer or shorter, or drag its body to another + day or time — the length comes along. +

+

Waiting on others

diff --git a/site/screenshots/admin.webp b/site/screenshots/admin.webp index 32082b7..e8bbf1f 100644 Binary files a/site/screenshots/admin.webp and b/site/screenshots/admin.webp differ diff --git a/site/screenshots/board.webp b/site/screenshots/board.webp index d24030a..287c767 100644 Binary files a/site/screenshots/board.webp and b/site/screenshots/board.webp differ diff --git a/site/screenshots/calendar-light.webp b/site/screenshots/calendar-light.webp new file mode 100644 index 0000000..cdfb6dc Binary files /dev/null and b/site/screenshots/calendar-light.webp differ diff --git a/site/screenshots/delegated.webp b/site/screenshots/delegated.webp index e8cb87d..664f297 100644 Binary files a/site/screenshots/delegated.webp and b/site/screenshots/delegated.webp differ diff --git a/site/screenshots/detail.webp b/site/screenshots/detail.webp index 0e138cd..34926bb 100644 Binary files a/site/screenshots/detail.webp and b/site/screenshots/detail.webp differ diff --git a/site/screenshots/history.webp b/site/screenshots/history.webp index 15d92e4..0fc0ac7 100644 Binary files a/site/screenshots/history.webp and b/site/screenshots/history.webp differ diff --git a/site/screenshots/notes-shared-light.webp b/site/screenshots/notes-shared-light.webp new file mode 100644 index 0000000..682dc87 Binary files /dev/null and b/site/screenshots/notes-shared-light.webp differ diff --git a/site/screenshots/notes-source.webp b/site/screenshots/notes-source.webp index b2d29ea..2639340 100644 Binary files a/site/screenshots/notes-source.webp and b/site/screenshots/notes-source.webp differ diff --git a/site/screenshots/notes.webp b/site/screenshots/notes.webp index f1ea12d..4b013a2 100644 Binary files a/site/screenshots/notes.webp and b/site/screenshots/notes.webp differ diff --git a/site/screenshots/sections.webp b/site/screenshots/sections.webp index 0e07240..e3d8b51 100644 Binary files a/site/screenshots/sections.webp and b/site/screenshots/sections.webp differ diff --git a/site/screenshots/settings.webp b/site/screenshots/settings.webp index 5e38b43..3ed61f4 100644 Binary files a/site/screenshots/settings.webp and b/site/screenshots/settings.webp differ diff --git a/site/screenshots/themes.webp b/site/screenshots/themes.webp index 95a339e..2125131 100644 Binary files a/site/screenshots/themes.webp and b/site/screenshots/themes.webp differ diff --git a/site/screenshots/today-light.webp b/site/screenshots/today-light.webp index dca1f14..5679019 100644 Binary files a/site/screenshots/today-light.webp and b/site/screenshots/today-light.webp differ diff --git a/site/screenshots/today.webp b/site/screenshots/today.webp index 0447cd7..524e75c 100644 Binary files a/site/screenshots/today.webp and b/site/screenshots/today.webp differ diff --git a/site/screenshots/upcoming.webp b/site/screenshots/upcoming.webp index 1eb3399..ee3627f 100644 Binary files a/site/screenshots/upcoming.webp and b/site/screenshots/upcoming.webp differ diff --git a/site/screenshots/week.webp b/site/screenshots/week.webp index c0d5fad..778850e 100644 Binary files a/site/screenshots/week.webp and b/site/screenshots/week.webp differ diff --git a/web/scripts/generate-screenshots.js b/web/scripts/generate-screenshots.js index ab7b8d9..278a008 100644 --- a/web/scripts/generate-screenshots.js +++ b/web/scripts/generate-screenshots.js @@ -73,6 +73,11 @@ const SHOTS = [ { name: 'detail', path: (ids) => `/opgave/${ids.detail}`, theme: 'dark' }, { name: 'notes', path: '/noter', theme: 'dark', prepare: openMeetingNote }, { name: 'notes-source', path: '/noter', theme: 'dark', prepare: showNoteSource }, + // The new work, and in the light theme, which is what most people want to look + // at a landing page in. The calendar drawing tasks to their length, and a note + // somebody shared into the "Shared with me" group. + { name: 'calendar-light', path: '/kalender', theme: 'light', prepare: showWeek }, + { name: 'notes-shared-light', path: '/noter', theme: 'light', prepare: openSharedNote }, { name: 'delegated', path: '/uddelegeret', theme: 'dark' }, { name: 'settings', path: '/indstillinger/integrationer', theme: 'dark' }, // Scrolled, because the themes are the second panel on the page and a picture @@ -114,6 +119,13 @@ async function showNoteSource(page) { await page.waitForTimeout(600); } +async function openSharedNote(page) { + // The note Mette shared in, so the "Shared with me" group and its owner chip are + // what the picture is of rather than something the group happens to sit above. + await page.locator('button.row', { hasText: 'Packaging quotes' }).first().click(); + await page.waitForTimeout(600); +} + async function showThemes(page) { // scrollIntoView rather than Playwright's scrollIntoViewIfNeeded: the heading is // already a few pixels inside the viewport when the page loads, so "if needed" @@ -340,6 +352,23 @@ async function handOver(ids) { await api(`/tasks/${ids.detail}/comments`, { body: 'Room is booked for ten. Summer numbers are in the shared folder — the labels are still with the printer, I chase them Thursday.' }); + + // A note of Mette's own, handed to the owner — so their Notes page has a + // "Shared with me" group with a real note in it, marked as hers. This is the + // other half of sharing: not the project path, but a page passed to a person. + const note = await api('/notes', { + body: `# Packaging quotes + +Three back, one still to come: + +- **Nordfelt** — 79 øre a bag at 2,000, plates included +- **Kolding Karton** — 84 øre, faster, kinder about small runs +- Bruun still owes me a number + +I'd lean Kolding for the first run and revisit at volume. #Autumn launch` + }); + await api(`/notes/${note.id}/shares`, { user_id: ids.owner, role: 'editor' }); + return { colleague: me.id }; } @@ -373,6 +402,8 @@ async function seed({ colleague, noteTitle }) { ).padStart(2, '0')}`; }; + const me = await api('/auth/me', null, 'GET'); + // Two headings over the projects, which is what the sidebar grew for. const work = await api('/project-groups', { name: 'Work' }); const home = await api('/project-groups', { name: 'Home' }); @@ -420,6 +451,17 @@ async function seed({ colleague, noteTitle }) { { content: 'Water the greenhouse', due_date: day(0), recurrence_rule: 'FREQ=DAILY', project_id: garden.id }, { content: 'Collect the parcel from the post office', due_date: day(0), labels: ['errands'] }, + // A handful given a time and a length, so the calendar's week draws them to + // scale rather than as a row of identical blocks — a stand-up, a long + // planning block, a call, a review. Spread across the day and the days, so + // the picture is a week that has a shape. + { content: 'Stand-up', due_date: day(0), due_time: '09:00', duration_min: 15, project_id: launch.id, section_id: inFlight.id }, + { content: 'Planning block', due_date: day(0), due_time: '10:00', duration_min: 90, priority: 2, project_id: launch.id, section_id: planning.id, labels: ['meeting'] }, + { content: 'Call with the printer', due_date: day(0), due_time: '13:30', duration_min: 30, project_id: launch.id, labels: ['waiting'] }, + { content: 'Interview: designer', due_date: day(1), due_time: '11:00', duration_min: 60, priority: 1, project_id: launch.id, section_id: inFlight.id }, + { content: 'Budget review', due_date: day(2), due_time: '14:00', duration_min: 45, priority: 1, project_id: launch.id, section_id: inFlight.id }, + { content: 'One-to-one with Mette', due_date: day(3), due_time: '15:30', duration_min: 30, project_id: launch.id }, + // The next couple of weeks, so Upcoming and the month grid have something in // them rather than a row of empty cells. { content: 'Book a plumber for the bathroom', due_date: day(1), priority: 2, project_id: house.id }, @@ -560,6 +602,7 @@ The opening notes are a task, so they can be ticked off: task:${detail.id}` await api('/users', { email: 'anders@example.dk' }); return { + owner: me.id, work: launch.id, detail: detail.id, invite: invite.link,