feat: add native filaman widget#1852
Conversation
- Renamed variables and methods to reflect the new FilaMan support in FileSystem, MmuEditGateMapDialog, PrinterStatusCard, and SpoolSelectionDialog components. - Updated localization files to include FilaMan titles and messages in both English and German. - Enhanced the SpoolSelectionDialog to manage spools from both spoolman and FilaMan, including new computed properties for dynamic titles and labels. - Modified actions in the Vuex store to handle FilaMan spools, including new interfaces for FilaMan responses and normalization logic. - Adjusted the Dashboard and Settings views to conditionally render components based on the availability of spoolman or FilaMan. - Updated mixins to check for FilaMan support alongside spoolman.
…ight percentage calculation
…ion and update fetchAllFilamanSpools action
…oved user experience
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR adds FilaMan (“filaman” component) support by treating it as an alternative spool-tracking backend alongside Spoolman, updating UI visibility rules, and introducing Filaman-specific UI elements and API calls.
Changes:
- Add Filaman component support checks and update settings/dashboard visibility logic to prefer Filaman where applicable.
- Extend spoolman store/actions and socket actions to fetch/normalize Filaman spool data and set active spool via new Moonraker methods.
- Add Filaman UI (card + assets) and new i18n strings (EN/DE), plus adjustments to existing spool selection/QR behavior.
Reviewed changes
Copilot reviewed 17 out of 20 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/views/Settings.vue | Show spool tracking settings when either Spoolman or Filaman is supported. |
| src/views/Dashboard.vue | Swap Spoolman card for Filaman card when Filaman is supported; update filtering logic. |
| src/typings/moonraker.spoolman.d.ts | Add Filaman response interfaces for typed normalization. |
| src/store/spoolman/actions.ts | Add Filaman init + pagination fetch, and normalize Filaman spools into Spoolman-shaped spools. |
| src/mixins/afc.ts | Treat Filaman as valid spool tracking support for AFC UI. |
| src/locales/en.yaml | Add Filaman translations. |
| src/locales/de.yaml | Add Filaman translations. |
| src/globals.ts | Register “filaman” component to dispatch spoolman/init. |
| src/components/widgets/status/PrinterStatusCard.vue | Rename variables to “spool tracking” wording for broader backend support. |
| src/components/widgets/spoolman/SpoolSelectionDialog.vue | Add Filaman-aware labeling and disable QR scanning for Filaman. |
| src/components/widgets/mmu/MmuEditGateMapDialog.vue | Rename handlers/watchers to “spool tracking” terminology. |
| src/components/widgets/filesystem/FileSystem.vue | Rename variables to “spool tracking” wording for broader backend support. |
| src/components/widgets/filaman/SpoolSelectionDialog.vue | Add a Filaman-specific spool selection dialog component. |
| src/components/widgets/filaman/FilamanCard.vue | Add a Filaman dashboard card using the existing spoolman store/dialog state. |
| src/components/widgets/afc/AfcCardUnitLaneBody.vue | Rename state flags/watchers to “spool tracking” wording and accept Filaman support. |
| src/components/settings/SpoolmanSettings.vue | Make settings header Filaman-aware, and hide QR settings when Filaman is active. |
| src/components/layout/AppSettingsNav.vue | Make settings nav entry Filaman-aware and visible for either backend. |
| src/api/socketActions.ts | Add Filaman Moonraker methods for get/post spool id and proxy spool listing. |
| public/img/icons/filaman-spool.svg | Add Filaman spool icon asset. |
…alization support
|
FilaMan? Never heard of it? Maybe a link would be useful? |
|
Ah, sorry i forgot :) |
| get supportsSpoolTracking (): boolean { | ||
| return ( | ||
| this.$typedGetters['server/componentSupport']('spoolman') || | ||
| this.$typedGetters['server/componentSupport']('filaman') |
There was a problem hiding this comment.
Does this module actually exist? From what I can see in your code and your website, you are using the [spoolman] module and then have a Spoolman compatible API in Filaman, is that correct?
There was a problem hiding this comment.
Hey there, FilaMan is used by a lot of people and they wish a native implementation, because it can have more features than Spoolman.
Yes, i build a spoolman api plugin to make the switch für the user easier. But, it can do all the things that FilaMan can do and I won't be bind FilaMan to a other system, because of complexity.
So it would be nice, if I can implement FilaMan natively and get the development forward.
Co-authored-by: Pedro Lamas <pedrolamas@gmail.com> Signed-off-by: ManuelW <manuel.weiser@me.com>
Co-authored-by: Pedro Lamas <pedrolamas@gmail.com> Signed-off-by: ManuelW <manuel.weiser@me.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Manuel Weiser <manuel.weiser@me.com>
I implemented a Widget for my FilaMan (Filamentmanagement Tool)
You can contact me:
Manuel Weiser
manuelw@filaman.app
https://www.filaman.app