You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 09d2b9b
Browse filesBrowse the repository at this point in the historyBrowse files
- **The storage plan — racks are placed by hand instead of packed in creation order.** Moving a rack needs no mode: grab its header and drag, at any time. "Arrange" is kept for what is neither frequent nor harmless — the resize grips, which edit the rack itself and can send spools back to Not stored — plus a permanent grid and Tidy up. Positions are stored in pixels as `plan: {x, y, z}` on the rack (the first version's cell-based `bento: {x, y}` is still read as a fallback, so no arrangement is lost). **Nothing on the plan moves except the rack you are holding**: every version that pushed neighbours aside wrote other racks' positions to the database behind their back. Free placement, kept tidy by magnetism — a dragged rack looks for a nearby edge (flush against a neighbour, or aligned on its left / right / centre) and falls back to the grid when nothing is within 8 px; a thin guide shows which edge it caught. Overlap is allowed but never silent: the card outlines in red, and the rack moved last sits in front, the stacking order stored with the position. While a grip is held, a dashed outline shows the footprint the resize is heading for. The width observer on the racks column is gone — it re-packed on every width change, and the width is now something the plan itself writes, so zooming past the window edge fed back into a full re-pack; a window resize re-applies stored positions instead of packing. Only "Tidy up" re-packs — `renderer/inventory.js`, `renderer/css/30-racks.css`.
15
15
- **Colour range filter, shared by every view that shows material.** A rainbow bar carrying a hue window plus a second bar running white → grey → black for colours below 15 % saturation, on their own row under the search band. Drag the middle to change the shade, pull either edge to widen it, wheel inside to widen or narrow around the centre; spools in range stay lit and the rest fade, so the rack keeps its shape and you see *where* the colour is. Neither bar is ever dimmed or tinted — the choice is marked by **height**: the selection is a bubble sitting on the bar, carrying a copy of its bar's gradient sized to the whole bar and slid into place. Approach an edge and the bubble's own border thickens; double-click inside it to put that bar back to sleep. Only ever one selector on screen — it moves to whichever bar you touch, since a spool cannot be "that orange AND that grey". The hue window wraps red (360°/0°) as one range and never narrows past 10°. Matching runs on the colours a spool is actually painted with, in `colorBg`'s precedence (a mono spool's two spare chip slots read back as a valid `#000000`, which had every spool answering to "show me the blacks"), on a product identity's colour, and on a catalogue entry's whole `color_info.colors` list — through one shared rule over a single hex normaliser, since colours arrive as `#RRGGBB` **and** `#RRGGBBAA` and the second is the common shape (9 548 of 12 211 catalogue entries; 16 brands had no six-digit colour at all and could never match). Wired once at boot from the page shell, so the window survives switching views. Hidden in the printer views and Lists, where it could filter nothing — `renderer/inventory.js`, `renderer/css/30-racks.css`.
16
16
-**A filter field inside the long filter dropdowns** (Brand, Material, Aspect, Type, Tag, and the Search views' own selectors). Replacing a native `<select>` with a styled popup had quietly cost type-to-reach; with 124 brands that meant scrolling past a hundred names. Matches **anywhere** in the name, not just the start ("sun" finds Sunlu and eSun), ignores case and accents, lands the cursor on the first survivor so Enter means "the obvious one", and the arrow keys walk what is left. Rendered only for lists of 8 or more — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
17
+
-**Two more masterspool containers** — Elegoo White (232 g) and eSun eSpool+ 2.0 (210 g), each with its artwork — `data/container_spool/spools_filament.json` (PRs #15 and #14, @Ptitlouis6012).
17
18
-**Three new synthesised cues** — a bright rising two-note when a spool joins the inventory (hung off the inventory subscription, so it fires however the spool arrived: scanned, typed, imported, or pushed from another device; never on the first snapshot, once per snapshot, and announced ids are remembered since a local write surfaces twice), a light tick when a rack is picked up off the plan, and a low thunk when it is set down — pitched well below the spool cues so a whole rack landing does not sound like one spool clicking into a slot — `renderer/inventory.js`.
-**"Not stored" lists the most recently added spool first**, empties still sinking to the bottom and ordered newest-first among themselves. The date is the one the card already shows, carried by every spool: a chipless TigerData entry gets the same `timestamp` at creation — `renderer/inventory.js`.
23
24
-**Racks are no longer reordered by dragging a grip** — where a rack sits is where you put it on the plan, not its rank in a list. The `⋮⋮` handle, the reorder writer and their styles are gone; `order` survives as the iteration order used when tidying up — `renderer/inventory.js`, `renderer/css/30-racks.css`.
24
25
- Legacy `lockedSlots` keys (`"level:position"`) are read as "locked at every depth" while new locks are written as `"level:position:depth"`. Unlocking one row of a legacy-locked column keeps the others locked. No document is rewritten — `renderer/inventory.js`.
26
+
- The TigerPOD glyph in the header is redrawn from new artwork, its mask cropped to the icon's own bounding box and sized to 34 px of ink so it matches the TigerScale glyph beside it — `assets/svg/icons/Icon_tigerpod_3d.svg`, `renderer/css/60-modals.css` (PR #12, @Ptitlouis6012).
27
+
- Sunlu Midnight Blue masterspools are relabelled one generation up (V1→V2, V2→V3). The container ids and image filenames are deliberately left alone: ids are stored on users' spools, and renaming one would orphan every spool referencing it — `data/container_spool/spools_filament.json` (PR #13, @Ptitlouis6012).
28
+
- README points at both TigerPOD models (Standard and Mini) and centres its images — `README.md` (PR #11, @Ptitlouis6012).
25
29
- The "To order" filter keeps one glyph whether on or off — a plain cart. It swapped between cart-with-a-plus and plain cart, making the same button look like two controls; colour alone marks it now — `renderer/inventory.html`, `renderer/css/70-detail-misc.css`.
Copy file name to clipboardExpand all lines: data/release-notes/v2.21.0.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,7 @@
6
6
-**Arrange your racks where you actually keep them.** Grab a rack by its header and drag it anywhere — no mode to switch on. Racks snap to each other as you move them, and a thin guide shows what they caught. Nothing else on the board moves. **Arrange** mode is still there for resizing a rack, with a dashed outline showing the size you are heading for while you drag.
7
7
-**Find a colour by pointing at it.** Two bars above your inventory — a rainbow, and a white-to-black ramp for greys — with a bubble you drag along them. Spools in range stay lit, the rest fade, so you see *where* on the shelf that orange actually is. Pull an edge to widen the range, roll the wheel inside the bubble to fine-tune it, double-click it to let go. It works in Inventory, Favorites, the order list, Search and Storage, and it remembers your choice as you move between them.
8
8
-**Type to find in the filter menus.** Brand, Material, Aspect, Type and Tag now open with a search field: type a few letters and the list narrows. It matches anywhere in the name, so "sun" finds both Sunlu and eSun.
9
+
-**Two more spool containers** — Elegoo White and eSun eSpool+ 2.0, with their weights and pictures (thanks @Ptitlouis6012).
9
10
-**A few new sounds** — a chime when a spool joins your inventory, and a tick and a thunk when you pick a rack up and set it down.
10
11
11
12
## Changed
@@ -15,6 +16,9 @@
15
16
-**Not stored** now lists your most recent spools first — what you have just scanned is what you are about to put away. Empty spools still sit at the bottom.
16
17
- Racks are no longer reordered by dragging a handle: where a rack sits is where you put it on the plan.
17
18
19
+
- Sunlu **Midnight Blue** masterspools are relabelled one generation up — what the app called V1 is Sunlu's V2 (thanks @Ptitlouis6012). Spools already using them keep their container.
20
+
- The **TigerPOD** icon in the top bar is redrawn, and the README now links both models (thanks @Ptitlouis6012).
21
+
18
22
## Fixed
19
23
20
24
- Fixed an issue where a spool's chip was written with its remaining weight multiplied by a thousand — a 1 kg spool showing as 1 000 000 g. Anything read from a chip is now also capped at the spool's own capacity, so an impossible figure can never enter your stock.
0 commit comments