Browse Source

Post work PR #3208

maziggy 14 hours ago
parent
commit
4ac4e5d494

+ 10 - 0
CHANGELOG.md

@@ -23,6 +23,16 @@ All notable changes to Bambuddy will be documented in this file.
 - **A link can open one batch order** — `/queue?batch=<id>` opens the Batches tab with that order highlighted and scrolled into view, whatever its status.
 - **The streaming overlay can show the printer model (#3080, requested and contributed by @adamspicedev in #3099 and #3134)** — Settings → API Keys → Streaming Overlay has a new **Printer model** checkbox, which adds `model` to the overlay URL's `show=` list. It can be picked together with the printer name or on its own. With both, the overlay shows `Big Mumma · H2D`; with only the model, `H2D`. A printer with no model stored shows the name alone, without a stray separator. The model is off by default, so every overlay URL already set up in OBS looks the same after upgrading. The token-authenticated feed that OBS reads (`/printers/{id}/overlay-status`) now returns `model` for connected and disconnected printers; it exposes nothing else new. A long name plus model in a narrow OBS source is now cut off with an ellipsis instead of running past the edge of the panel. A printer saved by an older version under a discovery code such as `BL-P001` or `O1D` shows its model name (`X1C`, `H2D`), as on the Printers page, instead of the code.
 - **A second streaming overlay design, for portrait and landscape sources (#3177, requested and contributed by @adamspicedev in #3183)** — Settings → API Keys → Streaming Overlay has a new **Artwork** choice: **Classic**, the overlay as it has always looked, or **Version 2**, which adds `artwork=2` to the overlay URL. Version 2 lays itself out for the browser source's shape. In a landscape source the camera fills the frame under a translucent panel at the bottom; in a portrait source (1080 × 1920, for vertical streams) the printer name sits in a header, the camera fills the middle and the print data sits in a panel below it. Portrait crops the camera to fit rather than stretching it, so the sides of the build plate can be cut off. The fields, text size, frame rate, camera rotation and Streaming Overlay token all work as before, and a camera turned 90° still fills its space in either layout. It hides progress, layers and temperatures while the printer is offline, and a finished or failed print shows its status instead of "Printer is idle". The URL names a version number rather than something like "new", so a scene set up today keeps its look when a later design arrives. Classic stays the default, so every overlay URL already in an OBS scene looks the same after upgrading.
+- **Your own logo and progress colours on the streaming overlay, and a see-through Version 2 background (#3104, requested and contributed by @adamspicedev in #3208)** — Settings → API Keys → Streaming Overlay has a new **Branding** section below the field checkboxes.
+  - **Logo:** upload a PNG or WebP of up to 2 MiB and 4 million pixels, then tick **Custom logo**. It appears above the Bambuddy logo, which stays, in both Classic and Version 2.
+    - Bambuddy re-saves the upload as a PNG of at most 512 × 512 that keeps its transparency, and rejects SVG and animated images.
+    - There is one logo per installation. After you replace or remove it, refresh the browser sources in OBS.
+    - Uploading or removing it needs `settings:update`. OBS loads it with the same Streaming Overlay token as the status feed. Camera stream and Cam Wall tokens can't read it.
+    - The logo is included in backup and restore.
+  - **Colours:** set **From colour** and **To colour** with the pickers or as six-digit hex codes. The progress bar, the Progress label and the percentage then run from one to the other; set both to the same colour for a solid one. In Version 2 this replaces the colours that change with the printer state, until you click **Reset colours**.
+  - **Transparency (Version 2 only):** a **Background transparency** slider from 0 to 100% fades the dark backgrounds, so another OBS source can show through. Text, logos and the camera stay fully visible.
+  - **URLs:** the settings are added to the overlay URL as `logo=1`, `progressFrom`, `progressTo` and `backgroundTransparency`. URLs without them look as before.
+  - **Preview:** it now waits until you stop dragging a colour picker or the slider before reloading, so it no longer opens a new camera stream on every step.
 - **Queue cards show the filament each job will print with (#3132, requested and contributed by @bgrr74 in #3184)** — Each job in the print queue now shows a colour swatch and name for every filament it uses, so you can check the next colours without opening each job. When a job is mapped to AMS slots on a specific printer, the card names the slot, the spool bound to it and its colour, for example "A1 · eSUN PLA Basic · Bone White", read from the printer's current AMS contents. Jobs without a slot mapping yet, such as "Any P2S", show the colour chosen when queueing, or the colour from the 3MF for the selected plate. Jobs with more than two filaments show just a row of swatches, with the full list on hover. If a mapped slot has been emptied since the job was queued, the card says so in yellow ("A3 · Empty · Caramel"); a spool without an RFID tag is never reported as empty.
 - **An app shown in the sidebar can match Bambuddy's theme** — An external link that opens inside Bambuddy now tells the framed page which theme is showing: light or dark, background, style and accent. It sends this when the page loads, whenever the theme changes, and when the page asks with a `bambuddy:theme-request` message. The message is `{type: "bambuddy:theme", mode, style, background, accent}` and goes only to the link's own origin. It carries nothing but those names. Pages that don't listen are unaffected.
 - **An app shown in the sidebar can open a Bambuddy page in place** — The frame Bambuddy shows an external link in can't navigate the Bambuddy window, so a link such as Bambuddy Orders' "In Bambuddy" did nothing when clicked inside the sidebar. The framed page can now ask with `{type: "bambuddy:navigate", path: "/queue?batch=12"}`, and Bambuddy opens that page as if its own menu had been used. The request is accepted only from the frame, only from the link's own origin, and only for a path inside Bambuddy; anything else, such as another site or a `javascript:` address, is ignored. The theme message now carries `canNavigate: true`, so a page can tell this Bambuddy from older ones and open a new tab there instead. The frame's sandbox is unchanged.

File diff suppressed because it is too large
+ 0 - 0
static/assets/ImagePreviewModal-Cpg4wnqs.js


File diff suppressed because it is too large
+ 0 - 1
static/assets/PdfPreviewModal-CKqPOK_d.js


File diff suppressed because it is too large
+ 0 - 0
static/assets/SpreadsheetPreviewModal-DNvI9563.js


File diff suppressed because it is too large
+ 1 - 0
static/assets/index-Bgo1crq7.css


File diff suppressed because it is too large
+ 0 - 1
static/assets/index-BpBVgnaG.js


File diff suppressed because it is too large
+ 0 - 1
static/assets/index-BuOpsCFB.css


File diff suppressed because it is too large
+ 0 - 0
static/assets/pdf-CbcA-ZGz.js


+ 2 - 2
static/index.html

@@ -26,9 +26,9 @@
 
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-CVWOD2Ju.js"></script>
+    <script type="module" crossorigin src="/assets/index-BpBVgnaG.js"></script>
     <link rel="modulepreload" crossorigin href="/assets/chunk-aKtaBQYM.js">
-    <link rel="stylesheet" crossorigin href="/assets/index-BuOpsCFB.css">
+    <link rel="stylesheet" crossorigin href="/assets/index-Bgo1crq7.css">
   </head>
   <body>
     <div id="root"></div>

Some files were not shown because too many files changed in this diff