Skip to content

feat: add native filaman widget#1852

Open
ManuelW77 wants to merge 28 commits into
fluidd-core:developfrom
ManuelW77:develop
Open

feat: add native filaman widget#1852
ManuelW77 wants to merge 28 commits into
fluidd-core:developfrom
ManuelW77:develop

Conversation

@ManuelW77

@ManuelW77 ManuelW77 commented May 24, 2026

Copy link
Copy Markdown

I implemented a Widget for my FilaMan (Filamentmanagement Tool)

You can contact me:
Manuel Weiser
manuelw@filaman.app

https://www.filaman.app

ManuelW77 added 10 commits May 24, 2026 10:19
- 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.
Copilot AI review requested due to automatic review settings May 24, 2026 09:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/components/widgets/filaman/SpoolSelectionDialog.vue
Comment thread src/components/settings/SpoolmanSettings.vue Outdated
Comment thread src/components/layout/AppSettingsNav.vue Outdated
Comment thread src/components/widgets/filaman/FilamanCard.vue
Comment thread src/store/spoolman/actions.ts
Comment thread src/store/spoolman/actions.ts
Comment thread src/store/spoolman/actions.ts
Comment thread src/api/socketActions.ts Outdated
Comment thread src/views/Dashboard.vue Outdated
@thijstriemstra

Copy link
Copy Markdown
Contributor

FilaMan? Never heard of it? Maybe a link would be useful?

@ManuelW77

Copy link
Copy Markdown
Author

Ah, sorry i forgot :)

https://www.filaman.app

Comment thread src/views/Settings.vue
get supportsSpoolTracking (): boolean {
return (
this.$typedGetters['server/componentSupport']('spoolman') ||
this.$typedGetters['server/componentSupport']('filaman')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, found it! 😁
Arksine/moonraker#1074

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@pedrolamas pedrolamas added GH - Upstream First Temporarily impossible because of other factors Upstream - Moonraker For everything API related labels May 27, 2026
@pedrolamas pedrolamas requested a review from Copilot May 30, 2026 20:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 22 changed files in this pull request and generated 2 comments.

Comment thread src/store/server/actions.ts
Comment thread src/api/socketActions.ts
Comment thread src/api/socketActions.ts
Comment thread src/store/spoolman/actions.ts Outdated
ManuelW77 and others added 2 commits May 31, 2026 06:09
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>
@pedrolamas

Copy link
Copy Markdown
Member

Hi @ManuelW77 thank you for sending this Pull Request.

I've done a quick review of these changes, and the bit I am not clear is on the changes from "Spoolman" to something generic - if the user configured with [spoolman] module in Moonraker and is just pointing to the Spoolman compatible API in Filaman, that should still be identified as Spoolman (just like it happens with Moonraker and the compatible Octoprint API exposed by it).

If the user is using a [filaman] module in Moonraker, then it should be identified as Filaman.

@ManuelW77

Copy link
Copy Markdown
Author

Hi @pedrolamas,

I’ve also implemented additional features. For example, Spoolman only supports a single toolhead in Fluidd, whereas Filaman supports multiple toolheads. I think this is especially important for newer printers like the Snapmaker U1 or Prusa models with multiple toolheads.

@pedrolamas

Copy link
Copy Markdown
Member

Spoolman only supports a single toolhead in Fluidd, whereas Filaman supports multiple toolheads.

I assume that requires the [filaman] Moonraker module, correct?

@ManuelW77

Copy link
Copy Markdown
Author

Yes, that's right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GH - Upstream First Temporarily impossible because of other factors Upstream - Moonraker For everything API related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants