Colour-coded config edits, match sorting, expanded by default

- Unsaved edits: yellow = changed, green = added, red = removed on save;
  removed rows stay visible with an undo button, with a legend by Save
- Current matches: sort by departure or newest first (remembered);
  expanded by default, collapsed state remembered per watch
- Status "since" is when a flight last became bookable; tooltips spell
  out seats left vs taken

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Måns SivertssonandClaude Opus 5.5 committed 2026-10-13 08:44:16 +02:00
1 parent cb3528d8b0
commit bb7a0e6a1b
2 files changed
+75 -35

No files matched your search

+7 -6
View File
@@ -60,15 +60,16 @@ Under the tables, **JSON – export / import / reset** holds the same config as
*Download .json* for a backup, *Load file…* or paste + *Apply JSON to tables* to restore,
*Reset to example* to start over. Nothing takes effect until you press **Save & restart**.
Fields that differ from the saved config are highlighted in yellow until you save or discard; new rows are
highlighted in full.
Unsaved edits are colour-coded until you save or discard: **yellow** = changed field, **green** = new row,
**red** = row that will be removed on save (click ↺ to keep it).
## Dashboard
- **Current matches** per watch, collapsed to a summary row by default (click the header or the summary to expand):
- **Current matches** per watch, sorted *By departure* or *Newest first* (most recently appeared seats on top).
Click a watch's header or summary row to collapse it; this is remembered across browser restarts:
- summary: number of flights, bookable seats per cabin with how many were lost in red (`Economy ×30 −6`), and
when the most recent flight appeared
- `Economy ×8 −2` – bookable now; the red number is how many seats were taken since the highest count seen
- `Economy ×8 −2` – 8 seats left now; the red number is how many were taken since the highest count seen (10)
- red, struck through, *gone 12 okt 13:42* – sold out (or below your seat count); kept for two weeks or until departure
- grey, *no matching return* – still has seats, but its return disappeared (with Both legs)
- **Recent changes**: `+` new / back, `▲` more seats, `▼` fewer seats, `−` gone, `○` lost its return
@@ -103,7 +104,7 @@ Only one tab polls at a time, so opening the dashboard twice does not double the
The script header points Tampermonkey at this repo:
```
// @version 1.2.0
// @version 1.3.0
// @updateURL https://gitea.mscloud.site/mans/sas-bonus-watch/raw/branch/main/sas-bonus-watch.user.js
// @downloadURL https://gitea.mscloud.site/mans/sas-bonus-watch/raw/branch/main/sas-bonus-watch.user.js
```
@@ -126,7 +127,7 @@ Requirements:
1. Edit `sas-bonus-watch.user.js`.
2. Run the tests: `node --test` (Node 20+).
3. **Bump `@version`** (e.g. 1.2.0 → 1.2.1). Without this, nobody gets the update.
3. **Bump `@version`** (e.g. 1.3.0 → 1.3.1). Without this, nobody gets the update.
4. Commit and push to `main`.
## Development