diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d188b8..234a762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- **Save ink into file works into a different board copy in Chrome** (v36, HTML overlay). Saving from `pet_board_inked.html` into `pet_board_clean.html` now asks Chrome's "allow editing?" question straight after you pick the file, before OverBoard's own "different file name" question (which used up the tap Chrome needs). If the browser still won't ask, the button stays in view and says **Tap again to allow**. +- **Ink saved into a file always shows when that file opens** (v36). The file now notes when the ink was written into it, so a browser that had used that copy before (even just to try it and clear it) no longer shows its own older, empty copy instead. - **Tested: old board copies upgrade cleanly** (v35). Dropping an older `_board.html` on the PDF app keeps its name (no `_board_board`), puts in the newest toolbar, and the ink saved inside it still opens. A test now checks this end to end, starting from a v13 board copy. - **Select** (v34, PDF app and HTML overlay): a new **Select** button beside ⏱ Timer. Circle ink with the pen (or tap one mark) and a dashed blue box shows what's picked, with a menu beside it: - **Send a copy to** another class period (P2, P3…): the copy lands in the same spot in that period's ink. Tap more than one period to send it to each. diff --git a/app/index.html b/app/index.html index fa8e43e..57ac23b 100644 --- a/app/index.html +++ b/app/index.html @@ -5,7 +5,7 @@
Your PDF and your ink stay in this browser on this computer. Nothing is uploaded.
Have a Word file? In Word, choose File → Save as PDF, then drop the PDF here.
Have an HTML worksheet? Drop it here to get a _board.html copy you can write on.
-
Back to the HTML worksheet demo · About OverBoard · Board not working? · v35
If something doesn't work the way the page asks, that's fine. That's exactly what I need to know. Just keep going.
Nothing is sent until you press Send at the very end, and you'll see everything first. No worksheets, PDFs or ink are ever included.
-OverBoard v35
+OverBoard v36
diff --git a/app/sw.js b/app/sw.js index e4d38bb..b49c960 100644 --- a/app/sw.js +++ b/app/sw.js @@ -1,9 +1,9 @@ // ===== GENERATED by tools/build.py: every file the app needs, with the start of its SHA-256. Do not edit by hand. ===== -const VERSION = '9b25193c784a'; +const VERSION = '471e7c21ebea'; const FILES = { - "../overlay/ink_overlay.html": "0e27675d1ec4908f", + "../overlay/ink_overlay.html": "42bade453c738a0a", "../shared/ink-core.js": "84be8f49eeb4d2d3", - "../shared/strings.js": "e84c83bf93320729", + "../shared/strings.js": "d85fbc3cf3f1c436", "../shared/toolbar.css": "55e88770a7c0f1c2", "app.css": "eb0f282d02685caf", "embed.js": "ea50a9ff4e960dd4", @@ -14,14 +14,14 @@ const FILES = { "icons/icon-192.png": "d245e15b36475003", "icons/icon-512.png": "17c1021fe2a0ade1", "icons/maskable-512.png": "0c58f1bdccc9eda9", - "index.html": "74f77552bac14322", + "index.html": "c03b8fc0802c288d", "ink.js": "253f8d907ccfbc1b", "libs.js": "c09f60186ab9029a", "main.js": "48ecaa409acb49b9", "manifest.json": "f7ee4a6c6f83cd40", "notebook.js": "47bcfd4f80712344", "offline.js": "6504935b2738711a", - "report/index.html": "720cab90cc9b146f", + "report/index.html": "9c8cd50b68eafb8c", "store.js": "66af54cd32e6cbd2", "textlayer.js": "1911308ed3e2a8b5", "vendor/pdf-lib@1.17.1/LICENSE.md": "f2c9fc00fdb66eb9", @@ -214,7 +214,7 @@ const FILES = { "vendor/pdfjs-dist@4.10.38/standard_fonts/LiberationSans-BoldItalic.ttf": "a224075ac17495ad", "vendor/pdfjs-dist@4.10.38/standard_fonts/LiberationSans-Italic.ttf": "832b4406dbef2362", "vendor/pdfjs-dist@4.10.38/standard_fonts/LiberationSans-Regular.ttf": "f8ace1f892b2bd9d", - "version.json": "f2e202f1f6845553", + "version.json": "0c4d0798795a815b", "viewer.js": "648b4479c5b68b93" }; // ===== END GENERATED ===== diff --git a/app/version.json b/app/version.json index 3dd3e1d..19641e2 100644 --- a/app/version.json +++ b/app/version.json @@ -1,5 +1,5 @@ { - "v": "a1a6d509158d", + "v": "38fc581fca25", "js": [ "embed.js", "export.js", diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index bc932c2..8c92d8f 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -12,7 +12,7 @@ Notes for contributors: how each part is built and why. What's planned next is i - **Layers.** Pen ink on `#ink-canvas`; highlights on `#ink-hl` underneath with `mix-blend-mode: multiply`; eraser strokes cut through both. - **Rendering.** Strokes are quadratic curves through sample midpoints, with an exponential smoothing filter on input (`SMOOTHING` level 0–8). Live drawing renders the identical curve piece by piece. - **Input (SMART Board on macOS, observed with `tools/board-probe.html`).** Pen tip → `pointerType: "pen"`, `buttons: 1`. Palm/fist/side of hand → `"pen"` with `buttons: 32` (eraser). Finger and the pen's round end → `"mouse"`. Contact size is always 1×1. Only one pointer reaches the browser at a time. A still finger is held back by the driver until it moves. -- **Saving.** Browser IndexedDB (database `ink-data`, store `ink`, key `ink-v2: